DeepFlowest

Gradient Descent_경사 하강법 본문

딥러닝

Gradient Descent_경사 하강법

Orange57 2020. 7. 28. 10:26
728x90
반응형
SMALL

※ 경사 하강법 : learning rate와 cost 함수의 순간 기울기(gradient)를 이용하여 가중치(weight)를 업데이트하는 방법

 

[선형 회귀] 의 경사 하강법

≫≫ cost 함수가 최소가 되는 w와 b를 찾는 알고리즘

 

[인공신경망] 의 경사 하강법

기존의 경사 하강법은 전체 데이터를 모두 사용해서 에러를 계산하기 때문에, 학습하는 데 시간이 오래 걸린다.

==> 확률적 경사 하강법(Stochastic Gradient Descent) 으로 해결 가능하다.

 

확률적 경사하강법(Stochastic Gradient Descent) 이란 전체 데이터를 한 번에 업데이트하는 것이 아니라, 일부분의 데이터를 업데이트하고 다음 일부 데이터를 업데이트하는 방법이다.

 

이 방법의 문제점은 Local minima(지역 최솟값)에 빠질 수 있다는 것이다. 이를 해결하기 위해 나온 것이 모멘텀(Momentum)이다.

 

이런 식으로 기존의 경사 하강법의 문제를 보완한 고급 경사 하강법들이 나왔다. 다음 표는 고급 경사 하강법의 종류와 간단한 설명에 관한 표이다.

 

고급 경사 하강법 개요 효과 케라스 사용법
SGD
(확률적 경사 하강법)
랜덤하게 추출한 일부 데이터를 사용해 더 빨리, 자주 업데이트를 하게 하는 것 속도 개선 keras.optimizers.SGD(lr=0.1)
Momentum
(모멘텀)
관성의 방향을 고려해 진동과 폭을 줄이는 효과 정확도
개선
keras.optimizers.SGD(lr=0.1,momentum=0.9)
NAG
(네스테로프 모멘텀)
Momentum이 이동시킬 방향으로 미리 이동해서 gradient를 계산, 불필요한 이동을 줄이는 효과 정확도
개선
keras.optimizers.SGD(lr=0.1,momentum=0.9, nesterov = True)
Adagrad
(아다그라드)
변수의 업데이트가 잦으면 학습률을 적게하여 이동 보폭을 조절하는 방법 보폭 크기 개선 keras.optimizers.Adagrad(lr=0.01, epsilon = 1e-6
RMSProp
(알엠에스프롭)
Adagrad의 보폭 민감도를 보완한 방법 보폭 크기 개선 keras.optimizers.RMSProp(lr=0.001, rho=0.9, epsilon = 1e-08, decay=0.0)
Adam
(아담)
Momentum과 RMSProp 방법을 합친 방법 정확도와 보폭 크기 개선 keras.optimizers.Adam(lr=0.001, beta_1=0.9, beta_2=0.999, epsilon = 1e-08, decay=0.0)

 

※ 표 출처 : 모두의 딥러닝

728x90
반응형
LIST
Comments