매개변수 갱신(최적화) 기법

가장 좋은 기법은 없고, 풀어야 할 문제가 어떤 것이냐에 따라 좋은 기법이 다르다. 각각의 장단이 있다.
그러나 보통은 기본 SGD보다는 나머지 방법이 좋은 결과를 보인다.
일반적으로 Adam이 가장 좋은 결과를 보이기 때문에 기본 optimizer로 사용한다.

1. 확률적 경사 하강법(SGD, Stochastic Gradient Descent)

단점

z = x^2/4 + y^2 인 그래프는 단면이 타원이며 z가 증가할 수록 타원이 넓어지는 모양이다.
이 함수의 최솟값은 (0, 0, 0)이다.
단면이 타원이니까 등고선도 타원인데, ▽g의 방향은 등고선에 수직인 방향(접선에 수직)이기 때문에 원점을 가리키지 않는다.


2. 모멘텀(Momentum)

모멘텀은 운동량을 뜻한다.

기울기가 음수이면 속도가 증가하고(내리막)

기울기가 양수이면 속도가 감소한다(오르막)

α는 보통 0.9로 설정한다.

모멘텀의 갱신 경로는 공이 바닥을 구르는 듯한 움직임을 보인다.


3. Nesterov(NAG)

모멘텀을 발전시킨 기법.


4. AdaGrad

학습률 감소(learning rate delay)를 적용했다. ⊙는 행렬의 원소별 곱셈을 의미한다.

h의 원소가 각각의 매개변수 원소 변화량에 의해 결정되기 때문에 각각의 매개변수 원소가 갱신되는 값이 다르다.

많이 움직인 원소일 수록 누적 h값이 크니까, 갱신 정도가 그만큼 감소한다.


과거의 기울기를 제곱해서 계속 더해가므로 학습을 진행할 수록 갱신 정도가 감소한다.

무한히 학습하면 어느 순간 갱신량이 0이 되는 문제점이 있으며 이를 개선한 기법 RMSProp이 있다.


5. RMSProp

AdaGrad에서 갱신량이 0이 되는 문제점을 개선한 기법.

non-stationary가 심한 강화학습 등에서 사용되는 경우가 많다.


6. Adam

https://arxiv.org/abs/1412.6980v8

하이퍼 파라미터의 편향 보정이 진행된다.

학습의 갱신 강도를 적응적으로 조정한다.