Gradient Descent(경사 하강법)
θt+1=θt−η∇θJ(θ)
- Batch gradient descent(BGD)
- Stochastic gradient descent(SGD)
- Mini-batch Stochastic gradient descent(MSGD)
- Momentum
vt=γvt−1+η∇θtJ(θt)
θt+1=θt−vt
SGD가 낮은 local minimum에서 벗어나 손실함수를 더 탐험할 수 있게 만들어 준다.
- NAG(Nesterov accelerated gradient)
vt=γvt−1+η∇θt(θt−γvt−1)
θt+1=θt−vt
NAG는 Momentum이 관성에 의해 수렴 지점에서 요동치는 것을 방지해 준다.
- Adagrad(Adaptive Gradient)파라미터에 대해서 서로 다른 learning rate를 적용한다.
θt+1,i=θt,i−η√Gt,ii+ϵgt,iGt,ii=g21,i+g22,i+⋯+g2t,i
Adagrad는 parameter의 이전 gradient를 저장한다.
업데이트 빈도 수가 높았던 파라미터는 learning rate가 감소하게 된다.
t가 증가함에 따라 learning rate가 점점 소실되는 문제점이 있다.
- Adadelta
Δθt=−RMS[Δθ]tRMS[g]tgtθt+1=θt+Δθt
Adagrad에서 발생한 iteration 마다 leearning rate가 작아지는 문제를 개선
- RMSprop
E[g2]t=0.9E[g2]t−1+0.1g2tθt+1=θt−η√E[g2]+ϵg
Adagra와 AdadeltaDML learning rate가 작아지는 문제를 개선
- Adam(Adaptive Moment Estimation)Adagrad, Adadelta, RMSprop처럼 각 파라미터마다 다른 크기의 업데이트를 적용한다.
vt=β2vt−1+(1−β2)g2t
θt+1=θt−η√^vt+ϵ^mt
적절한 파라미터 값(default)
β1=0.9, β2=0,999, ϵ=10−8
- AdaMaxAdam의 v_t 텀에 다른 norm을 사용
Adam과 다르게 max operation은 0으로의 편향이 없기 때문에 편향 보정을 해줄 필요가 없다.
θt+1=θt−ηut^m
적절한 파라미터 값(default)
η=0.002, β1=0.9, β2=0,999
- NAdam(Nesterov-accelerated Adaptive Moment Adam)NAdam은 Adam에 NAG의 momentum을 보완해주는 기능을 적용하였다.
θt+1=θt−η√^vt+ϵ(β1^mt+(1−β1)gt1−βt1)