yuns

Training the Neural Network 본문

goorm 수업 정리/Deep Learning

Training the Neural Network

yuuuun 2021. 9. 7. 12:41
반응형
  • 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