본문으로 바로가기

최적화 알고리즘(Optimizer)

category AI/딥러닝 기초 2019. 10. 12. 17:26
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.






[최적화 알고리즘 (Optimizer)]


효율적이고 정확하게 전역 최적해에 도착하기 위해 최적화 알고리즘의 선택은 중요.



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


수정할 때마다 샘플을 무작위로 선택.



장점

기울기 수정 시 훈련 데이터 중에서 무작위로 샘플을 선택하기 때문에 국소 최적해에 잘 빠지지 않음.

또한 식이 매우 간단.


단점

다른 알고리즘처럼 학습률을 자동으로 조정해주는 파라미터가 없어 수정량의 유연한 조정이 불가함.





2. 모멘텀(Momentum)


SGD에 관성을 더한 알고리즘.




는 관성의 크기를 결정하는 모멘텀 상수.

는 이전 회차의 수정량.



장점

관성항을 더함으로써 새로운 수정량은 이전까지의 수정량으로부터 영향을 받게 됨.

그렇기에 수정량이 급격하게 변화하는 것을 막고 조금 더 부드럽게 수정.


단점

달리 설정해야하는 상수  두 개가 더 늘어나 조정이 조금 더 어려움.





3. 아다그라드(AdaGrad, Adaptive Gradient)


2011년 John Duchi가 처음 제안한 알고리즘.

수정량이 자동으로 조정되는 것이 강점 -> 알고리즘에 의해 학습률이 조금씩 



h는 반드시 증가함. w에서 h는 분모에 있기때문에 수정량은 반드시 감소됨.

총 수정량이 적은 가중치는 새로운 수정량이 커짐.

이를 통해 처음에는 넓은 영역에서 탐색하여 점차 범위를 좁혀가는 효율성을 보임.



장점

효율성이 좋음.

아다그라드에서 설정해야하는 상수는 밖에 없으므로 상수 조정 번거로움이 없음.


단점

계속되는 수정량 감소로 도중에 수정량이 0이 되어버려 최적화가 더이상 진행되지 않는 단점이 존재.





4. RMSProp


정식 논문은 없지만 Geoffrey Hinton이 코세라 강의에서 제안.

아다그라드에서 수정량 감소를 통해 학습이 정체되는 단점을 극복한 방법.



h를 구하는 식에 가 존재함으로써 이전 시점의 h를 적당한 비율로 감소시킴.

이를 통해 아다그라드의 단점을 해결함.

Geoffrey Hinton은 값으로 0.9를 추천. 





5. 아담(Adam, ADaptive Moment estimation)


2014년 Diederik P.kingma가 제안한 알고리즘.

수정식이 다소 복잡하여 작성하지 않음.


상수도 4개가 존재하는 수식을 통해 다른 최적화 알고리즘의 장점을 모두 겸비하고 있음. 





[정리]


 고급 경사 하강법

 개요

 효과 

 확률적 경사 하강법(SGD)

랜덤하게 추출한 일부 데이터를 사용해 더 빨리, 자주 업데이트를 하게 하는 것 

 속도 개선 

 모멘텀(Momentum)

관성의 방향을 고려해 진동과 폭을 줄이는 효과 

 정확도 개선

 아다그라드(AdaGrad)

변수의 업데이트가 잦으면 학습률을 적게하여 이동 보폭을 조절하는 방법 

 보폭 크기 개선 

 RMSProp

아다그라드의 보폭 민감도를 보완 

 보폭 크기 개선 

 아담(Adam) 

모멘텀 + RMSProp 

 정확도와 보폭 크기 개선 









'AI > 딥러닝 기초' 카테고리의 다른 글

에포크와 배치(Epoch and Batch)  (0) 2019.10.12
은닉층 기울기 구하기  (0) 2019.10.12
출력층 기울기 구하기  (0) 2019.10.12
경사 하강법(Gradient Descent)  (0) 2019.10.12
손실함수(Loss function)  (1) 2019.10.11