Gradient Descent Method(Optimizer)의 발전
공부할 때 활용한 사이트들
Stochastic Gradient Method
Wt+1=Wt−lr∗gt
- 수식
- lr : 학습율
- gt : Gradient
적절한 Learning Rate를 구하는 것이 어렵다는 문제점이 존재한다.
Momentum
at+1=βat+gtWt+1=Wt−lr∗at+1
- 수식
- at : Accumulation. 관성이 적용되어 계산에 활용될 Gradient
- lr : 학습율
- β : Momentum
Gradient의 관성을 이용하자는 생각에서 나온 방식이다.
이전에 특정 방향으로 Gradient가 흘렀다면, 다른 방향으로 이동하더라도 이전에 이동했던 방향성을 조금 활용하는 기법이다.
먼저 Accumulation을 계산한 뒤, 계산한 Accumulation을 활용하여 다음 Parameter를 구하는 방법으로 진행된다.
Nesterov Accelerated Gradient
at+1=βat+∇L(Wt−lr∗βat)Wt+1=Wt−lr∗at+1
- 수식
- at : Accumulation
- lr : 학습율
- β : Momentum
- ∇L(Wt−lr∗βat) : Lookahead gradient
현재 주어진 좌표에서 Gradient 방향으로 한 번 이동한 뒤, 이동한 지점에서의 Gradient를 활용하는 방법으로, Lookahead Gradient의 활용한다는 특징을 가진다.
Momentum은 Local Minimum 기준 그래프 좌우를 오가는 계산이 될 수도 있어 Local Minimal을 기준으로 양 끝을 이동하며 Converging 하지 못하는 Case 발생한다.
Nestrov Accelerated Gradient는 Local Minimal을 통과하지 않으므로 Converging을 못하는 Case를 없앨 수 있어 이 방법이 고안되었다.
Adagrad
Wt+1=Wt−Gt+elrgt
- 수식
- Gt : Sum of Gradient Squares
- Gradient 값을 제곱하여 이전 Gt에 더한 값
- 지금까지의 Gradient 제곱 값을 더한 값
- e : 분모가 0이 되지 않도록 만드는 상수
Parameter 중 값의 변화가 큰 것에 대해서는 Step size를 작게 하여 근사치로 빠르게 수렴하게 만들고, 값의 변화가 적은 것에 대해서는 Step Size를 크게하여 세밀하게 겂의 변화를 확인하는 방식이다.
하지만, Iterator가 많아질 수록 수식의 분모값이 무한대로 가기 때문에 학습이 멈춘다는 단점을 가지고 있다.
Adadelta
Gt=γGt−1+(1−γ)gt2Wt+1=Wt−Gt+eHt−1+egtHt=γHt−1+(1−γ)(△Wt)2
- 수식
- Gt : Gradient 가중치 제곱의 평균
- e : 분모가 0이 되지 않도록 만드는 상수
Adagrad에서 Gt가 계속 커지는 것을 막기 위해 도입한 방식으로, Learning Rate가 존재하지 않아 설정할 수 있는 Parameter가 거의 없어 잘 활용되지 않는 방식이다.
RmSprop
Gt=γGt−1+(1−γ)gt2Wt+1=Wt−Gt+elrgt
- 수식
- Gt : Gradient 가중치 제곱의 평균
- lr : (글로벌) 학습율
Adagrad + EMA Of gradient Squares를 합쳐 만들어진 방식이다.
Adam(Adaptive Moment Estimation)
mt=β1mt−1+(1−β1)gt
vt=β2vt−1+(1−β2)gt2
Wt+1=Wt−vt+elr1−β1t1−β2tmt
- 수식
- mt : Gradient 평균의 추정치(1차 모멘트 추정치)
- vt : Gradient의 집중되지 않은 분산의 추정치(2차 모멘트 추정치)
- lr : 학습율
Adadelta의 Gradient 제곱을 지수적으로 감소시키는 가중 평균 적용 & Gradient 자체를 지수적으로 감소시키는 가중 평균 적용한 방식으로 가장 많이 활용되는 Optimizer이다.
1차 및 2차 모멘트 추정치를 계산함으로써 Variance를 낮추기 위해 Bias를 방해하는 방식을 활용한 Optimizer이다.
모멘트 추정치를 활용한 식 도출 과정
mt^=1−β1tmt
vt^=1−β2tvt
θt+1=θt−vt^+elrmt^