본문 바로가기

반응형

AI/DeepLearning

(7)
[밑바닥부터 시작하는 딥러닝1] 밑딥 스터디 CH7 정리 합성곱 신경망 (CNN, Convolutional Neural Network)fully-connected : 인접하는 layer의 모든 뉴런과 결합되어있는 상태Affine layer : 완전히 연결된 layerConvolutional layerAffine layer와 다른 점affine layer 대신 conv,pooling이 추가됨. (‘Affine-ReLU’ → ‘Conv-ReLU-Pooling’)각 layer 사이에는 3/4차원 데이터가 흐름 → 데이터의 차원을 그대로 가져갈 수 있어서 이미지처럼 형상을 가진 데이터를 제대로 이해할 가능성이 있음Affine layer에서는 3차원 데이터를 1차원 데이터로 flatten 시켜줘야 했지만, CNN layer에서는 그럴 필요가 없음feature map :..
[밑바닥부터 시작하는 딥러닝1] 밑딥 스터디 CH6 정리 OptimizationOptimization : parameter의 최적값을 찾는 것SGD (확률적 경사 하강법)class SGD: def __init__(self, lr = 0.01): self.lr = lr def update(self, params, grads): for key in params.keys(): params[key] -= self.lr * grads[key]$\mathbf{W} \leftarrow \mathbf{W} - \eta \frac{\partial L}{\partial \mathbf{W}}$ 단, 식으로는 (0,0)이 최솟값이 되지만, 그래프에서는 대부분이 (0,0)방향을 보이지 않음 이런경우 학습 시 비효율적인 움직임을 보임momentum$\mathbf{v} \lef..
[밑바닥부터 시작하는 딥러닝1] 밑딥 스터디 CH5 정리 Backpropagationbackpropagation가중치 매개변수의 기울기를 효율적으로 계산하는 방법덧셈 노드의 backpropagation값을 그대로 다음 노드로 전달함곱셈 노드의 backpropagation노드에 연결된 다른 노드값을 곱함activation function의 forward/backwardReLUclass Relu: def __init__(self): self.mask = None def forward(self, x): self.mask = (x Sigmoidclass Sigmoid: def __init__(self): self.out = None def forward(self, x): out = 1 / (1 + np.exp(-x)) self.out = out retur..
[밑바닥부터 시작하는 딥러닝1] 밑딥 스터디 CH4 정리 loss function신경망 성능의 ‘나쁨’을 나타내는 지표로, 현재의 신경망이 훈련 데이터를 얼마나 잘 처리하지 못하느냐를 나타냄SSE(오차제곱합, sum of wquares for error)$$ E = \text{\(\frac 1 2\)}\displaystyle\sum_k (y_k - t_k)^2 $$CEE(교차 엔트로피 오차, cross entropy error)$$E = -\sum_{k} t_k \log y_k $$one-hot encoding : 정답 위치의 원소만 1, 나머지는 0❓ 최적의 매개변수를 탐색할 때 정확도를 지표로 삼아서는 안 되는 이유정확도는 비연속적인 함수이므로.ex) 100개 중 95개가 정답이면 95%, 96개가 정답이면 96%. 기울기가 가리키는 쪽 = 각 장소에서 함..
[밑바닥부터 시작하는 딥러닝1] 밑딥 스터디 CH3 정리 활성화함수시그모이드 함수$h(x) = 1/1+exp(-x)$시그모이드와 계단함수의 차이점 : 매끄러움. 계단함수는 0 or 1의 값을 돌려주지만, 시그모이드 함수는 0과 1 사이의 연속적인 값을 가지고 있음.ReLU 함수Rectified linear Unit입력이 0 이상이면 값을 그대로 사용, 0 이하면 0을 출력def relu(x): return np.maximum(0, x)*배열의 차원 수 : np.ndim() 함수로 확인 가능
딥러닝 개념정리 딥러닝이란?- 사람이 직접 기계를 가르치지 않아도, 기계가 스스로 학습할 수 있는 기술크게 세가지 layer로 나눌 수 있다.1. Input layer - 우리가 넣어주는 input으로, 학습할 dataset의 feature를 넣는다.2. Hidden layer - 딥러닝에서 중간 연산을 담당하는 layer들이다.3. Output layer - 정답 layer로, 넣어준 input을 연산한 결과값(output)을 내어준다. 이 결과값은 예측값(prediction)으로, 실제 정답값(label)과 비교해 오차를 줄이는 방향으로 딥러닝을 학습시킨다. 간단히 딥러닝의 연산을 알아보자 한 layer는 이전 layer들의 값*w(weight) + B(bias)의 합으로 이루어진다. 예를 들어 U1층은 a*wa1..
[개념]선형(linearity) 선형 (linearity) : 주기가 반복되는, 인간이 만들어 낼 수 있는 함수 ex) sin, cos 등등의 정현파선형함수 A + 선형함수 B = 선형함수a는 상수라고 가정, aA + B = 선형함수.               (sin, cos 함수 생각하면 이해하기 편함) ** 딥러닝 : 결국 이런 선형함수를 얼마나 똑같이 구현하느냐 의 문제. **  correlation 선형함수 A와 B의 관계-1~1의 범위로, |범위| 값이 클수록 A와 B는 관계성이 짙음. -1이라면 함수의 모양이 대칭으로 똑같은 것 1이라면 함수의 모양 자체가 똑같은 것

반응형