모멘텀은 신경망의 학습 안정성과 속도를 높여 학습이 잘 하려고 사용됩니다. 모멘텀 은 다음과 같이 가중치를 갱신할 때 델타 규칙에 모멘텀을 추가로 더합니다. 모멘텀을 사용하면 가중치 값이 바로 바뀌지 않고 어느 정도 일정한 방향을 유지하면서 움직이게 됩니다. 또한 가속도처럼 같은 방향으로 더 많이 변화시켜 학습속도를 높여줘 빠른 학습을 하게 합니다.
m하이프는 직전의 모멘텀을 의미하며 0으로 초기화합니다. 알파는 가속도 같은 역할을 하는 하이퍼 파라미터로 1보다 작은 양의 상수를 초기화합니다. 마지막 식은 현재 모멘텀이 다음 학습을 위해서 직전의 모멘텀으로 변한다는 의미입니다.
학습이 진행됨에 따라 모멘텀이 어떻게 변하는지 알아보겠습니다.
위 식을 보면 이전 모멘텀이 현재 모멘텀 추가되고 현재 모멘텀은 다음 모멘텀에 더해집니다. 이처럼 모멘텀은 이전의 가중치 갱신 값들이 추가로 더해지기 때문에 가중치 갱신 값이 점점 커집니다. 학습속도가 향상되는 이유입니다.
한편, 이전의 가중치 갱신값들이 암아 계속 반영되기 때문에 어느 특정 가중치 갱신값에 의해 가중치가 좌지우지되지 않습니다. 학습 안정성이 나아지는 이유입니다.
모멘텀 예제를 보면 모멘텀 어떤 역할을 하는지 알아 보겠습니다.
Case1) Gradient descent
Case2) Gradient descent + Momentum
Gradient descent과 Momentum 을 함께 사용할 때 가중치 변화량이 더 크게 변합니다. 같은 방향으로 연속으로 가중치가 변화되었으므로 가중치가 더 크게 변경되었습니다. 역으로, 첫 번째와 두 번째의 가중치 방향이 반대이면 변화량이 감소합니다. 쉽게 플러스(+) 부호에서 마이너스(-) 부호로 변경되므로 변화량이 적아진다고 생각하시면 됩니다.
이는 다음과 같이 그래프로 표시할 수 있습니다.
Gradient Descent with Momentum-1은 가중치가 같은 방향으로 이동하는 경우를 나타낸 그림입니다.
Gradient Descent with Momentum-2은 가중치가 첫 번째 방향과 두 번째 방향이 반대로 이동할 경우를 나타낸 그립니다.
훈련의 방법은 매우 주요한 만큼 훈련을 언제 멈추는지 역시 매우 중요한 일입니다. 대게 훈련 종료 시점은 미리 정해둔 학습 반복 수 또는 MSE의 수치가 주어진 기준보다 낮을 때 훈련을 종료합니다.
검증 방법에 따라 종료하는 방법도 있습니다. Cross validation(교차 검증)에서 Vdatation-sample error(검증 샘플 오차)가 증가하면 조기 종료시킵니다. 이는 모델이 Training-sample에 너무 적합하게 훈련된 모델일 경우 발생하게 됩니다. 이를 Over fitting(과적합)이라고 합니다.
감사합니다.
[참고자료]
딥러닝 첫걸음
haykin.neural-networks.3ed.2009
[Deep Learning-딥러닝]비용함수 및 유사도-Sum of Squared Error, Cross Entropy, Cosine Similarity (5) | 2019.08.10 |
---|---|
[Reinforce Learning]강화학습 정의 (0) | 2019.08.09 |
[Deep Learning-딥러닝]Backpropagation (역전파) 및 Delta Rule을 이용한 가중치 조정 방법 소스 구현 - XOR 연산 (0) | 2019.08.07 |
[Deep Learning-딥러닝]Backpropagation (역전파) 및 Delta Rule을 이용한 가중치 조정 방법 (2) | 2019.08.06 |
[Deep Learning-딥러닝]Solving XOR Problem with MLP (0) | 2019.08.04 |
댓글 영역