데이터 분석/딥러닝

신경망학습 최적화(optimizer)

Aytekin 2021. 8. 9. 20:32
728x90

optimizer란? - 신경망 학습중 손실함수의 값을 낮추는 매개변수를 찾는 것을 의미한다.
4가지 optimizer

1. 확률적 경사 하강법(SGD, Stochastic Gradient Descent)
SGD는 손실함수의 기울기를 계산한 후 그 기울기 값에 학습률(learning rate)를 곱하여 그 값을 기존의 가중치에 적용하여 갱신해준다.
단점은 기울기(미분값)가 0이 되면 가중치를 더이상 업데이트 하지 않는다.
따라서 local 극한값이 있을때에는 global극한값을 찾을 수 없고 안장점(saddle points)에 앉아버려 더 움직이지 못하는 경우도 있습니다.

2. 모멘텀(SGD with Momentum)
SGD를 개선한 알고리즘으로 이동값에 관성으로 인한 업데이트가 추가된 방법이다.
기울기값이 0이 나오더라도 이전의 이동값을 일정 비율 반영시키므로 관성의 효과를 낼 수 있다.
그래프의 세세한 변화에 덜 민감하고 전체적인 경향을 파악할 수 있어 장점이 있다.

3. AdaGrad(Adaptive Gradient)
이 방법은 위의 두가지 방법에서는 건드리지 않았던 학습률을 조정하여 손실함수를 최소화 하는 방법이다.
적당한 학습률을 선정하는 방법은 학습률 감소(learning rate decay)가 있다.
많이 변화했었던 변수들은 optimum에 가까워졌을 확률이 높으므로 학습률 변화 폭을 작게(세밀하게) 하고
적게 변화했었던 변수들은 optimum에 도달하기 위해 많은 이동이 필요할 수 있으므로 변화 폭을 크게 한다.

4. Adam
모멘텀 방식과 AdaGrad 방법을 모두 사용하는 방법을 의미한다.

출처 : https://sacko.tistory.com/42
출처 : https://stellarway.tistory.com/24
출처 : https://my-coding-footprints.tistory.com/101

728x90