본문 바로가기
네이버클라우드/AI

AI 3일차 (2023-05-10) 인공지능 기초 - Optimizer

by prometedor 2023. 5. 10.

Optimizer

Gradient Descent (경사 하강법)

https://raw.githubusercontent.com/angeloyeo/angeloyeo.github.io/master/pics/2020-08-16-gradient_descent/pic5.png

 

ㄴ 함수의 기울기(즉, gradient)를 이용해 x의 값을 어디로 옮겼을 때 함수가 최소값을 찾는지 알아보는 방법

= > 문제점

ㄴ 극소값(local minimum)에 도달할 수 있다는 것이 증명되었으나 전체 최소값(global minimum) 으로 갈 수 있다는 보장은 없음
ㄴ 훈련이 느림

 

** 참고

https://angeloyeo.github.io/2020/08/16/gradient_descent.html

 

Momentum

https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbqWYSR%2Fbtq0umC7ImJ%2FZK05n8HfgA29KcewszlhCk%2Fimg.png

 

Gradient Descent 의 문제를 해결하기 위해 보편적으로 사용됨

ㄴ 관성(momentum)을 적용하여 변수가 가던 방향으로 계속 갈 수 있도록 속도(velocity)를 추가한 것
ㄴ global minima에 이르기 전에 기울기가 0이 되는 local minima에 빠지는 것을 방지함

gradient의 방향에 초점을 둠

 

 

AdaGrad

https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FBoGBQ%2Fbtq0qAPFDtU%2FdP4jbshcOtjK2SgBIWlQlK%2Fimg.png

 

ㄴ Momentum은 gradient의 방향에 초점을 두었다면, AdaGrad는 step size에 초점을 둠

이미 학습이 많이 된 변수는 학습을 느리게, 학습이 아직 덜 된 드물게 등장한 변수라면 학습을 더 빨리 훈련함

= > 문제점
학습이 오래 진행이 될 경우 step size가 너무 작아져서 거의 움직이지 않는 상태가 됨

 

 

RMSProp

https://hasty.ai/media/pages/docs/mp-wiki/solvers-optimizers/rmsprop/1f10f11c4c-1639387357/contour.webp

 

ㄴ Root Mean Square Propatation

ㄴ Adagrad의 계산식에 지수 가중 이동 평균(Exponentially weighted average)를 사용하여 최신 기울기들이 더 크게 반영되도록 함

 

 

Adam

https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FrWQXG%2Fbtq0zcMR6wE%2FnbuT43rcJL9aR8Ory8xZS1%2Fimg.png


ㄴ Adaptive Moment Estimation
RMSProp과 Momentum 방식을 융합
ㄴ Momentum과 유사하게 지금까지 계산한 기울기의 지수 평균을 저장하며, RMSProp과 유사하게 기울기의 제곱값의 지수 평균을 저장

ㄴ RMSprop보다 더 넓은 범위의 학습률을 사용할 수 있으며, gradient의 scale이 변할 때에도 학습률을 잘 조절할 수 있음

ㄴ 매우 효과적인 최적화 알고리즘 중 하나임