경사하강법(Gradient Descent Method)

2022. 1. 7. 01:35공부한 내용/머신러닝 이론

0. 최적화 문제 해결하는 방법들

-Gradient descent method

-Newtom method

-Gauss-newton

-Levenberg-marquardt

-BFGS

-Conjugate gradient

...

 

 

1. Gradient Descent 정의

-gradient: 각각의 변수에 대해 함수를 편미분한 값으로 이루어지는 벡터

-learning rate: 단계 별 사이즈(길이)를 조정하는 변수

 

*Gradient Descent 슈도 코드

① 시작점(파라미터) w(t) 무작위로 선택

② 중단하는 조건을 만족할 때까지 다음의 식을 반복

w(t+1) = w(t) + r(dE/dw)   ,E: Error function, r: learning rate, w: parameter

※중단 조건

-w(t+1)-w(t)의 절댓값이 매우 작을 때

-f(w)가 거의 움직이지 않을 때

-반복횟수 사전에 제한

 

※파라미터가 두개 이상 이라면 각각의 파라미터에 대해 병렬적으로 경사하강법 실행

 

 

2. Gradient Descent 종류

1) Batch Gradient Descent

: 전체 데이터를 학습 데이터로 이용

-전체 데이터를 이용하므로 학습 속도가 느림

-상대적으로 local optima에 빠지기 쉬움

 

2) Stocastic Gradient Descent

: 데이터 하나씩만 이용하면서 업데이트

 

3) Mini batch Gradient Descent

: 임의의 수로 데이터 표본 추출한 후 그를 학습 데이터로 이용하여 매번 업데이트

(업데이트 시 매번 표본추출을 거침)

-작은 배치 사이즈는 학습 속도가 빠름

-또한 과적합과 local optima를 방지할 수 있음