본문 바로가기

* [R_Python] 데이터분석 정리/[Python] 딥러닝

[핸즈온] 고속옵티마이저 : AdaGrad

- 경사 하강법 외 다른 최적화 방법 소개

 

고속 옵티마이저

 

(1) 모멘텀 최적화

(2) 네스테로프 가속 경사

(3) AdaGrad (Adaptive Gradient)

- 그레디언트 최적점을 향해 가파른 곳은 빨리가고, 완만한 곳은 느리게 감

Step 1.

 
where : Hadamard Product (같은 행렬 위치끼리 곱해줌)
- 점화식임
- s가 편미분 제곱한 그레디언트만큼 커지면서 업데이트

Step 2.



- 뒤에 항을 빼주며 𝜃조정함 
- 경사하강법과 비슷함
- 차이는  $\sqrt{s+\epsilon}$임
- 여기서 𝜖은 0으로 나누는 걸 방지해주는 용도 (주로 $10^{-10}$ 사용함)
- 잘 뜯어보면, 경사하강법에서 학습률이 $\eta$ $\oslash$ $\sqrt{s+\epsilon}$로 변한 것 밖에 없음
- 단, $\sqrt{s+\epsilon}$는 분모에 있기 때문에 Step1의 s는 크면(큰 변화가 있었으면) 학습률은 작아짐


이를 적응적 학습률 (adaptive learning rate)라 함.
: 경사가 완만한 차원보다 가파른 차원에서 빠르게 감소하는 것


주의점

ㅁ 심층 신경망에서 사용하지 말아야 함
- 신경망 훈련 시 빨리 멈추는 경우 있음 : 학습률이 감소되어 전역 최적점에 도착하기 전에 알고리즘이 멈춤
- 단, 2차방정식에서 잘 작동 (선형회귀)

(4) RMSProp

(5) Adam과 Nadam 최적화

(6) 학습률 스케줄링