Broccoli's House

#3-(3) 학습 : 경사 하강법 본문

공부/딥러닝

#3-(3) 학습 : 경사 하강법

김콜리 2018. 2. 25. 20:18

※ 이 글의 내용은 O'REILLY의 <밑바닥부터 시작하는 딥러닝> 책을 기반으로 한다.




신경망 학습 : 경사 하강법




  • 경사법
 - 경사법(Gradient Method) : 머신러닝 모델은 학습 시에 최적의 매개변수(가중치와 편향)를 찾는다. 최적이란, 손실 함수가 최솟값이 될 때의 매개변수 값이다. 따라서 기울기를 이용하여 손실 함수의 최솟값을 찾으려는 것이 바로 경사법이다. 일반적으로 기계 학습을 최적화하는데 사용되고, 특히나 신경망 학습에 많이 사용된다.



 - 손실함수의 첫 위치에서 기울기를 구한다. 기울기가 (+)이면 음의 방향으로, (-)이면 양의 방향으로 일정 거리만큼 이동한 다음, 그 위치에서의 기울기를 다시 구한다. 그리고 그것을 토대로 다시 일정 거리를 이동하는 것을 반복하여, 손실 함수의 값을 점차적으로 줄여나가는 것이 바로 경사법이다. 경사를 따라 내려가기 때문에, 기본적으로 손실 함수의 그래프 개형이 볼록한 모양일 때에만(convex function) 경사 하강법이 적용 가능하다.



  • 학습률

 - 학습률(Learning Rate) : 위의 식에서 η 기호가 이동하는 거리를 결정한다. 딥러닝에서는 이 것을 학습률이라고 한다. 한 번의 학습으로 매개변수 값을 얼마나 갱신하는가를 정하는 것이 바로 학습률이다. 이것은 시스템이나 모델이 찾는 값이 아니라, 모델을 구성하는 사람이 지정해주어야 하는 값(초매개변수, hyper-parameter)이다. 정답이 있는 것이 아니기 때문에, 환경 등의 요인에 따라 처음에는 0.01 전후로 정하여 학습을 시도해 보는 것이 좋다.


 - 학습률이 너무 작거나 또 너무 크면 학습이 제대로 이루어지지 않기 때문에, 일반적으로 학습률의 값을 변경해가면서 올바르게 학습하고 있는지를 확인해야한다. 학습률이 너무 크면 손실 함수 값이 줄어들지 않고 오히려 더 커지는 오버슈팅(overshooting) 현상이 발생한다. 반대로 학습률이 너무 작으면 수렴이 늦어지고, 지역 최소점(local minimum)에 걸릴 수 있다. 




  • 데이터 전처리

 - 경사 하강법의 안정적인 적용과 학습의 안정성 및 속도를 높이기 위하여, 학습 전에 데이터를 처리해주는 것이 필요하다. 데이터의 중심이 0이 되게 하거나(zero-centered data), 데이터가 항상 일정한 범위 안에 들어오도록 정규화(normalization)하는 것이 이에 해당한다. 

Comments