딥러닝 구동에 사용되는 고급 경사 하강법 개요 및 활용법

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)

아담 함수를 사용합니다.

 

https://thebook.io/006958/

 


'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