본문 바로가기

프로그래밍 일반/딥러닝

(9)
[딥러닝] 이미지 분류 이론 딥러닝을 할 당시에 사람은 물체를 그림으로 보지만, 컴퓨터는 모든지 숫자로만 이해한다. 이미지를 줘도 숫자로만 확인된다. 이런 문제를 어떻게 해결할 것인지가 중요하게 된다. MLP는 사람의 뇌를 본 따서 만든 것이다. 뉴런처럼 만든것이다. 사람이 무엇인가를 보게한다? 사람이 무엇인가를 인식하고 보는 시스템을 비슷하게 만들면 컴퓨터도 무엇인가를 볼 수 있지 않을까? Convolutional Neural Network가 나오면서 이미지 분석, 음성인식 문제들이 해결되었다. Convolutional Neural Network에서는, 뇌에서는 하나의 이미지를 볼 때 새라고 한 번에 인식하는 것이 아니라 부분적으로 쪼개서 보게 된다. 마찬가지로 이미지를 여러개로 쪼갤 수 있게 된다. 01. Convolution ..
딥러닝 교재
[딥러닝] 케라스실습 03. 당뇨병 01. 문제정의 피그마 인디언 당뇨병 발병 데이터를 딥러닝 해보고 당뇨병을 예측하는 모델입니다. 02. 데이터셋 불러오기 # 1. Pandas 가져오기 import pandas as pd print(pd.__version__) # 2. 데이터 불러오기 dataset = pd.read_csv('diabetes_data.csv') dataset.head(10) # 3. X/y 나누기 X = dataset.iloc[:,:-1] y = dataset.iloc[:,-1] print(X.shape) print(y.shape) # 4. Train set, Test set 나누기 from sklearn.model_selection import train_test_split X_train,X_test,y_train,y_..
[딥러닝] 케라스실습 02. XOR Function 01. 문제 정의 AND Gate는 하나의 Node만으로도 해결할 수 있는 문제였지만, XOR Function이 나오면서 여러개의 노드를 추가시켜야 했다. 02. 데이터셋 설정 #1. Numpy 가져오기 import numpy as np #데이터 셋 설정 X = np.array([[0,0], [0,1], [1,0], [1,1]]) y = np.array([[0], [1], [1], [0]]) print(X) print(y) AND Function과 똑같지만 여기서는 출력값이 다르게 됩니다. 03. 모델 설정 # 케라스 패키지 불러오기 import Keras from keras.model import Sequential from keras.layers.core import Dense, Activation ..
[딥러닝] 케라스 실습 01. AND Function 문제 케라스에서 딥러닝을 하는 과정은 아래와 같습니다. 01. 문제정의 여기서 실습할 AND Function은 AND Gate의 역할을 하는 1의 값이 나오게 만드는 딥러닝을 해 보는 것이다. 02. 데이터셋 준비 #1. Numpy 가져오기 import numpy as np print(np.__version__) #2. 입력/출력 데이터 만들기 X = np.array([[0,0], [1,0], [0,1], [1,1]]) y = np.array([[0], [0], [0], [1]]) 먼저 input output의 데이터 셋을 위해서 numpy를 import합니다. numpy는 행렬이나 일반적으로 대규모 다차원 배열을 쉽게 처리 할 수 있도록지원하는 파이썬의 라이브러리입니다. 03. 모델 설정 # 3. Keras..
[딥러닝] 케라스의 기초 개념 케라스를 이용해서 딥러닝을 설계를 할 때, 설계도 자체를 모델이라고 표현합니다. 이 모델은 네트워크, 목표함수, 최적화기로 구성이 됩니다. 모델, 설계도를 제작하기 위해서 케라스 모델에서 Sequential을 불러옵니다. Sequential의 뜻은 순차적, 연속적이라는 뜻입니다. 이것은 MLP의 레이어가 순차적으로 쌓여가는 것을 의미합니다. from keras.models import Sequential model = Sequential() 네트워크인 머리 층은 뇌, Perceptron을 설계하는 과정입니다. 입력값에 따른 출력값이 있게 됩니다. 어떻게 학습을 할 것이냐는 문제를 설계하는 것입니다. 이 문제를 어떻게 학습할래?라는 알고리즘 설계와 같습니다. from keras.layers. import ..
[딥러닝] 3. 딥러닝시 주의할 점 딥러닝시 주의할 점은 2가지이다. Vanishing Gradient와 Overfitting의 문제이다. 1. Vanishing Gradient 기울기가 사라진다는 뜻이다. 이 전에 출력값으로 0혹은 1을 출력한다고 됬었다. 그런데 실제로는 0혹은 1을 출력하는 경우도 있지만, Sigmoid Function을 써서 0에서 1사이의 특정한 값들을 출력하게 된다. 그런데 문제는 Sigmoid Function을 쓸 시에 Perceptron을 통과하면 통과할 수록 그 값이 희미해지는(Vanishing)의 결과를 가져오게 된다. 처음 출력값은 괜찮지만, 이후 Back Propagation을 하려고 하면 원래의 input값으로 돌아가기 힘든 상황이 발생하게 되는 것이다. 이러한 문제를 해결하기 위해서 sigmoid대..
[딥러닝] 2. 딥러닝의 동작과정 딥러닝에서 배워야 할 기본적인 개념은 Perception MLP Weight Initialization Forward Propagation Cost Function Back Propagation Optimizer 와 같고, 여기서는 Weight Initialization의 개념과 Forward Propagation, Back Propagation을 배울것이다. 1. Weight Initialization Linear Binary Classifier을 처음에 각 노드마다 식을 세운다. 각각의 식은 Perceptron인 f∑wnxn+b라는 식이고, 아래의 식에서 wn이 가중치이고 0과 1이 고정된 feature xn의 값이다. b는 추가되는 값이다. 0과 1을 넣었을 때 1이나오게 가중치를 조정하려면 아래와..