Broccoli's House
#5-(1) 학습 관련 기술 : 매개변수 갱신 본문
※ 이 글의 내용은 O'REILLY의 <밑바닥부터 시작하는 딥러닝> 책을 기반으로 한다.
학습 관련 기술 : 매개변수 갱신
- 매개변수 갱신
- 손실 함수를 최소화하는 매개변수를 찾는 방법에는 여러 가지가 있다. 가장 간단하게는 손실 함수의 그래프에서 가장 낮은 지점을 찾아가도록 손실 함수의 기울기를 구해 최적값을 찾아가는 확률적 경사 하강법(SGD)과 이 방법의 단점을 보완한 모멘텀 및 AdaGrad, Adam 방법 등이 있다. 이것들을 하나하나 알아보도록 한다.
확률적 경사 하강법
- 확률적 경사 하강법(SGD)은 단순하며 구현하기가 쉽다. 그러나 문제에 따라서는 비효율적일 때가 많다. 손실함수 그래프에서 지역 최적점(local minimum)에 갇혀 전역 최적점(global minimum)을 찾지 못하는 경우가 많고, 손실 함수가 비등방성 함수(방향에 따라 기울기가 달라지는 함수)일 때에서는 최적화에 있어 위와 같이 매우 비효율적이고 오래 걸리는 탐색 경로를 보여준다. 이러한 경사 하강법의 단점을 개선해주는 기법 중에서 모멘텀, AdaGrad, Adam을 알아본다.
모멘텀
- 모멘텀 알고리즘의 최적점 탐색 경로를 보면 알 수 있듯이, 공이 구르듯한 모습을 보여준다. 따라서 탐색 경로가 지그재그로 크게 변하는 확률적 경사 하강법(SGD)보다 탐색 경로의 변위가 줄어들어 빠르게 최적점으로 수렴한다.
AdaGrad
- 수식을 보면, h라는 새로운 변수가 등장한다. h는 기존 손실함수의 기울기 값을 제곱하여 계속 더해준다. 그리고 매개변수를 갱신할 때 이 h의 제곱근을 나눠주어 학습률을 조정한다. 매개변수 중에서 크게 갱신된 원소는 h값이 커지고, 따라서 다음 번에는 학습률이 낮아져서 작게 갱신된다. 즉 h가 나눠지기 때문에 모든 가중치들이 학습을 하면서 줄어드는 경향을 보이나, 각 가중치가 이전에 갱신되었던 크기에 맞게 학습률이 결정되는 것이다.
- AdaGrad 기법의 최적점 탐색 경로를 보면, 최적점을 향해 매우 효율적으로 움직이는 것을 볼 수 있다. 처음에는 큰 폭으로 움직이지만, 그 큰 움직임에 비례하여 갱신 정도도 큰 폭으로 작아진다. 따라서 갱신 강도가 빠르게 약해지고, 지그재그 움직임이 눈에 띄게 줄어들어 빠르게 최적점으로 수렴한다.
Adam
- 모멘텀 방식과 AdaGrad 방식을 합친 것 같은 알고리즘이므로, 최적점 탐색 경로 또한 이 두 방식을 합친 것과 비슷한 양상으로 나타난다. 탐색 경로의 전체적인 경향은 모멘텀 방식 처럼 공이 굴러가는 듯하고, AdaGrad로 인해 갱신 강도가 조정되므로 모멘텀 방식보다 좌우 흔들림이 덜 한 것을 볼 수 있다.
기법 비교
- 위의 그림과 같이, 사용한 기법에 따라 갱신 경로가 달라진다. 그러나 모든 문제에서 항상 뛰어난 기법은 아직 존재하지 않고, 문제에 따라 가장 효율적인 기법이 달라진다. 확률적 경사 하강법(SGD)이 가장 좋아보이지 않으나, 아직까지도 많은 상황에서 사용된되는 기법이다.
- 위의 그래프는 각 기법들을 손글씨 숫자 인식 데이터인 MNIST 데이터 세트에 적용한 것이다. 확률적 경사 하강법(SGD)이 가장 느리게 최적점으로 수렴하고, 나머지 세 기법은 비슷한 속도로 수렴한다. 일반적으로 SGD보다 다른 세 기법이 빠르게 학습하고, 때로는 최종 정확도도 높게 나타난다.
'공부 > 딥러닝' 카테고리의 다른 글
#5-(3) 학습 관련 기술 : 배치 정규화 (0) | 2018.03.16 |
---|---|
#5-(2) 학습 관련 기술 : 초기 가중치 설정 (0) | 2018.03.15 |
#4-(2) 오차역전파법 : 역전파 및 예시 (0) | 2018.03.11 |
#4-(1) 오차역전파법 : 소개 (0) | 2018.03.11 |
#3-(3) 학습 : 경사 하강법 (0) | 2018.02.25 |