옵티마이저 (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를 계속 바꿔보는 시도를 해주는걸 추천한다.
'데이터 스터디 > DL' 카테고리의 다른 글
자연어 처리 - 통계 기반 기법 (0) | 2022.07.16 |
---|---|
자연어처리 입문 (0) | 2022.07.16 |
05. 경사 하강법 (0) | 2022.07.16 |
04. 신경망 학습 - loss function (0) | 2022.07.16 |
03. 신경망 추론 - 활성화 함수, 출력층 함수 (0) | 2022.07.16 |