Optimizer란: 경사하강법을 적용할 때 가중치(파라미터)를 어떻게 최적화해 나갈 것인가에 대한 알고리즘
Optimizer 방식
- Non-adaptive learning rate 방식: learning rate를 고정시키는 방식
- Adaptive learning rate 방식: 학습을 진행하면서 learning rate를 조정해나가는 방식
Non-adaptive Optimizer 종류
- SGD: 전체 데이터셋이 아닌 일부 샘플 데이터셋으로 경사하강법을 진행하는 방식
- 샘플 데이터 셋으로 계산을 하기 때문에 계산 속도가 빠름
- 다양한 샘플 데이터로 학습을 하기 때문에 일반 GD 보다 global minimum에 수렴할 가능성이 더 높아짐
- Momentum : 이전 스텝의 기울기 정보들을 사용하여, 현재 진행 방향에 대한 관성을 부여하여 local minima로부터 잘 빠져나올 수 있도록 하는 알고리즘
Adaptive Optimizer 종류
- Adagrad : 안 가본 곳은 빠르게 걸어 훓고, 많이 가본 곳은 보폭을 줄여 세밀히 탐색
- 동일 기준으로 update되던 각각의 parameter에 개별 기준을 적용
- 즉, 지속적으로 변화하던 parameter는 최적값에 가까워졌을것이고 한 번도 변하지 않은 parameter는 더 큰 변화를 줘야한다는 것이 Adagrad의 개념
- RMSProp : Adagrad에서 parameter사이 차별화는 유지하되 학습속도가 지속적으로 줄어들어 0에 수렴하는 것은 방지
- Adam : Momentum과 RMSProp를 결합한 방식