IT공부
[머신러닝] 딥러닝 경사 하강법 종류와 비교
서용이
2021. 5. 18. 03:36
반응형
경사 하강법 | 개요 | 효과 | ex) keras |
확률적 경사 하강법 (SGD) |
랜덤하게 추출한 일부 데이터를 사용하여 더 빨리, 자주 업데이트를 하는 것 | 속도 개선 | keras.optimizers.SGD(lr=0.1) 케라스 최적화 함수를 이용 |
모멘텀 (Momentum) |
관성의 방향을 고려해 진동과 폭을 줄이는 효과 | 정확도 개선 | keras.optimizers.SGD(lr=0.1, momentum=0.9) 모멘텀 계수 추가 |
네스테로프 모멘텀 (NAG) |
모멘텀이 이동시킬 방향으로 미리 이동해서 그레이디언트를 계산, 불필요한 이동을 줄이는 효과 | 정확도 개선 | keras.optimizers.SGD(lr=0.1, momentum=0.9, nesterov=True) 네스테로프 옵션 추가 |
아다그라드 (Adagrad) |
변수의 업데이트가 잦으면 학습률을 적게하여 이동 보폭을 조절하는 방법 | 보폭 크기 개선 | keras.optimizers.Adagrad(lr=0.01, epsilon=1e-6) 아다그라드 함수를 사용 (epsilon, rho, decay 같은 파라미터는 바꾸지 않고 그대로 사용하고 lr, 즉 learning rate 학습률 값만 적절히 조절하기를 권장) |
알엠에스프롭 (RMSProp) |
아다그라드의 보폭 민감도를 보완한 방법 | 보폭 크기 개선 | keras.optimizers.RMSprop(lr=0.001, rho=0.9, epsilon=1e-08, decay=0.0) 알엠에스프롭 함수를 사용 |
아담 (Adam) |
모멘텀과 알엠에스프롭 방법을 합친 방법 | 정확도와 보폭 크기 개선 | keras.optimizers.Adam(lr=0.001, beta_1=0.9, beta_2=0.999, epsilon=1e-08, decay=0.0) 아담 함수를 사용 |
반응형