CODEDRAGON ㆍDevelopment/Python
딥러닝 구동에 사용되는 고급 경사 하강법 개요 및 활용법
· 딥러닝 구동에 필요한 고급 경사 하강법과 케라스 내부에서의 활용법
· 각 방법이 개발된 순서대로 정리되어 있습니다. 먼저 나온 방법의 단점을 보완하여 다음 방법이 나온 만큼 나중에 나온 고급 경사 하강법이 좋은 성과를 보여줍니다.
· 맨 마지막에 기재된 아담(Adam)은 현재 가장 많이 사용되는 고급 경사 하강법입니다.
고급 경사 하강법 |
개요 |
효과 |
케라스 사용법 |
확률적 경사 하강법 (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) 아담 함수를 사용합니다. |
'Development > Python' 카테고리의 다른 글
scrapy - Scraping 파이썬 라이브러리 (0) | 2019.11.24 |
---|---|
linspace() (0) | 2019.11.24 |
PyMySQL (0) | 2019.11.22 |
ERROR-raise LookupError(resource_not_found), 해결방법 (0) | 2019.11.21 |
산술 연산자(사칙연산자) (0) | 2019.11.19 |