yuns
Training the Neural Network 본문
반응형
- deep learning이 성공할 수 있었던 이유: computation, data, modularity
- 각 모듈로 이루어진 큰 모델을 만들기
Activation Function
Sigmoid
- $\frac{exp(x)}{1+exp(x)} = \frac{1}{1+1/exp(x)}=\frac{1}{1+exp(-x)}$
- 3개의 문제점
- gradient를 죽여버릴 수 있음
- sigmoid output는 zero-centered가 아니다.
- exp의 연산이 많은 연산을 요구한다.
Softmax
- multi-classification용도
- $\frac{exp(x)}{\sum exp(x)}$
Tanh
- sigmoid함수가 zero-centered가 되지 않아서 사용되는 함수임
- 값이 [-1, 1] 사이에서 존재
ReLU
- $f(x)=max(0, x)$
- not zero-centered output
- computationally efficient - 속도가 매우 빠름
Batch Normalization
- gradient가 죽게된 이유: 특정 값에서 벗어나면 값이 너무 크게 변화하기 때문에
- gradient descent vanishing 현상을 해결하기 위하여
- $x^{(k)} = \frac{x^{(k)}-E[x^{(k)}]}{\sqrt{Var[x^{(k)}]}}$
- 값의 range의 변화의 폭을 줄인다.
- mini-batch
Optimization Methods
Gradient Descent
- 많은 iteration을 돌아야 되서 학습하는데 시간이 오래 걸림
- $x -= learning_rate * dx$
- y축으로 변동 폭이 너무 큼
- 과거일 수록 learning_rate가 제곱되는 형식이라 과거의 영향은 상쇄
- Momentum Update
- $v = mu * v - learning_rate * dx$
- $x += v$
- 과거의 history를 사용하기 때문에 갈팡질팡하고 있던 값들을 더할 경우 상쇄되기 때문에 빨리 수렴
- local minima에 빠질 확률이 적음
- Adagrad
- 학습을 통해 크게 변동이 있었던 가중치에 대해서 학습률 감소시키기
- $cache += dx ** 2$ (모든 값의 제곱의 합)
- $x -= learning_rate * dx / (np.sqrt(cache) + 1e-7)$
- RMsProp
- 사용하지 않을 경우에는 멀어지도록 학습
- AdaGrad의 값이 무한히 커지지 않도록
- Adam
- Momentum과 RMSProp 융합한 방식
- $m=beta1 * m + (1 - beta1) * dx$
- $v = beta2 * v + (1 - beta2) * (dx ** 2)$
- $x -= learning_rate * m / (np.sqrt(v) + 1e-7)$
Regularization
Learning Rate
- 클 경우에는 발산, 작을 경우는 학습 속도가 너무 낮음
- 단위를 늘리고 줄일때는 10의 제곱수로 늘린다.
Ensemble
- 여러 모델을 학습시켜서 해당 결과를 통합하여 더 좋은 성능을 내게 하는 모델
L1-norm and L2-norm
- overfitting될 수가 있음
- loss에 $\lambda * R(W)$
- L2 regularization: weight decay의 제곱의 합
- L1 regularization: weight decay의 크기 차이의 합
Dropout
- 랜덤하게 일부 네트워크의 노드 삭제
Augmentation
- 학습데이터의 개수가 많을수록 학습이 잘 이루어짐
- random crops, scales, translation, rotation, stretching, shearing, ...
반응형
'goorm 수업 정리 > Deep Learning' 카테고리의 다른 글
Generative Adversarial Network (0) | 2021.09.15 |
---|---|
Attention Network (0) | 2021.09.14 |
Recurrent Neural Networks (0) | 2021.09.10 |
Convolution Neural Network (0) | 2021.09.08 |
Comments