11.3. 고속 옵티마이저

아주 큰 심층 신경망의 훈련 속도는 심각하게 느릴 수 있음. 느린 훈련 속도를 개선하기 위해 아래 방법들을 사용해 보았음.

위 방법에 더해, 훈련 속도를 크게 높이기 위해 표준적 경사하강법 옵티마이저를 더 빠른 옵티마이저로 변경해 볼 수 있음. 이 절에서는 다음의 옵티마이저들을 살펴볼 예정임.

모멘텀 최적화

물체가 경사를 따라 내려갈 때, 처음엔 속도가 0이더라도 종단 속도 도달 이전까지는 빠르게 가속될 것임. 이것이 모멘텀 최적화의 핵심 원리.

표준적인 경사하강법의 경우 경사가 완만할 때는 작은 스텝으로 움직이다가 경사가 급할 때 큰 스텝으로 이동함. 다만, 속도가 높아지지는 않음. → 모멘텀 최적화는?

경사하강법은 가중치에 대한 비용 함수의 Gradient에 학습률을 곱한 것을 바로 차감해 가중치를 갱신. 이전 Gradient가 얼마였는지 고려하지 않기에 Gradient가 아주 작다면 매우 느려짐.

모멘텀 최적화는 이전 Gradient가 얼마였는지 상당히 중요하게 생각함. 학습률을 곱하는 것까지는 동일하지만, 이를 모멘텀 벡터에 더하고 이 모멘텀 벡터를 가중치에서 뺌으로써 갱신. 모멘텀 최적화에 있어 Gradient는 속도가 아닌 가속도임. 이 모멘텀 벡터가 너무 커지는 것을 방지하기 위해, 위의 예시에서 경사를 따라 내려가는 물체에 대해 마찰 저항을 주게 됨. 이는 하이퍼파라미터인 모멘텀 $beta$이며 0이 높은 마찰, 1이 마찰 없음을 나타냄. 일반적으로는 0.9를 사용. 종단속도에 대해 1/1-beta임을 확인할 수 있음.

만약 평편한 지역(기울기가 0에 가까운)을 지나갈 때는 Gradient를 속도로 사용하는 경사하강법보다 Gradient 가속도가 누적된 모멘텀 최적화가 훨씬 빠르게 지나갈 것임. 둘 모두 경사진 지역을 지날 땐 빠르게 내려오겠지만, 그래도 모멘텀 최적화가 훨씬 빠를 것.

표준적 경사하강법은 사람이 골짜기를 따라 내려오는 것이고, 모멘텀 최적화는 볼링공이 골짜기를 따라 내려오는 것.