본문 바로가기

IT공부

[머신러닝] 딥러닝 경사 하강법 종류와 비교

반응형

 

경사 하강법 개요 효과 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)
아담 함수를 사용
반응형