데이터 스터디/DL

06. 옵티마이저 (optimizer)

케이와이엠 2022. 7. 16. 17:01

옵티마이저 (optimizer)

경사하강법 알고리즘에 변화를 살짝 추가해줄 있는 요소로 optimizer 등장을 합니다.

 

1. 모멘텀

먼저 모멘텀은 경사 하강법에 관성을 더해주는 요소로, 계산된 접선의 기울기에 시점 전의(t-1) 접선의 기울기 값을 일정한 비율만큼 반영해주는 것이다.

만약 로컬 미니멈에 도달했을 때에 글로벌 미니멈으로 잘못 인식해 탈출하지 못하는 과정에서 모멘텀의 힘을 빌릴 있는 것이다.

 

2. 아다그라드

다른 optimizer 아다그라드는 매개변수에 서로 다른 학습률 learning rate 적용해주는 기능을 갖고 있다.

이때 갱신이 많이 매개변수에는 학습률을 작게 만들어 작게 변화하도록 만들고, 갱신이 조금 변수에는 학습률을 크게 만들어 크게 변화하도록 해준다

 

3. RMSprop

이때 아다그라드로 학습을 진행 , learning rate 다르게 적용시켰었다. 그래서 학습을 진행할수록 learning rate 한번에 지나치게 작아질 수가 있다, 갱신정도가 0 되서 전혀 갱신되지 않는 일도 발생할 있다

그래서 이전 시점의 학습률을 %만큼은 유지하겠다라고 조정할 있게 RMS prop를 사용한다. 

 

4. Adam

그리고 Adam 가중치 변화때 썼던 관성이랑 학습률 조정 기능, 이렇게 2가지 기능을 모두 가진 방법으로 Momentum + RMSprop 합친 옵티마이저이다. 따라서 방향과 학습률을 모두 잡았다고 있다.

 

하지만, 어떤 optimizer 가장 좋다고는 말할 수는 없다.

따라서 모델링을 진행할 때마다 optimizer 계속 바꿔보는 시도를 해주는걸 추천한다.