Optimizer 발전 역사

DONGJIN IM·2022년 4월 25일
0

AI(NLP) 이론

목록 보기
6/18
post-thumbnail

Gradient Descent Method(Optimizer)의 발전

공부할 때 활용한 사이트들

Stochastic Gradient Method

Wt+1=WtlrgtW_{t+1}=W_t-lr*g_t
  • 수식
    • lr : 학습율
    • gtg_t : Gradient

적절한 Learning Rate를 구하는 것이 어렵다는 문제점이 존재한다.

Momentum

at+1=βat+gtWt+1=Wtlrat+1a_{t+1}=\beta a_t+g_t\newline W_{t+1}=W_t-lr*a_{t+1}
  • 수식
    • ata_t : Accumulation. 관성이 적용되어 계산에 활용될 Gradient
    • lr : 학습율
    • β\beta : Momentum

Gradient의 관성을 이용하자는 생각에서 나온 방식이다.
이전에 특정 방향으로 Gradient가 흘렀다면, 다른 방향으로 이동하더라도 이전에 이동했던 방향성을 조금 활용하는 기법이다.

먼저 Accumulation을 계산한 뒤, 계산한 Accumulation을 활용하여 다음 Parameter를 구하는 방법으로 진행된다.

Nesterov Accelerated Gradient

at+1=βat+L(Wtlrβat)Wt+1=Wtlrat+1a_{t+1}=\beta a_t+∇L(W_t-lr*\beta a_t)\newline W_{t+1}=W_t-lr*a_{t+1}
  • 수식
    • ata_t : Accumulation
    • lr : 학습율
    • β\beta : Momentum
    • L(Wtlrβat)∇L(W_t - lr * \beta a_t) : Lookahead gradient

현재 주어진 좌표에서 Gradient 방향으로 한 번 이동한 뒤, 이동한 지점에서의 Gradient를 활용하는 방법으로, Lookahead Gradient의 활용한다는 특징을 가진다.

Momentum은 Local Minimum 기준 그래프 좌우를 오가는 계산이 될 수도 있어 Local Minimal을 기준으로 양 끝을 이동하며 Converging 하지 못하는 Case 발생한다.

Nestrov Accelerated Gradient는 Local Minimal을 통과하지 않으므로 Converging을 못하는 Case를 없앨 수 있어 이 방법이 고안되었다.

Adagrad

Wt+1=WtlrGt+egtW_{t+1}=W_t-\frac{lr}{\sqrt{G_t+e}}g_t
  • 수식
    • GtG_t : Sum of Gradient Squares
      • Gradient 값을 제곱하여 이전 GtG_t에 더한 값
      • 지금까지의 Gradient 제곱 값을 더한 값
    • e : 분모가 0이 되지 않도록 만드는 상수

Parameter 중 값의 변화가 큰 것에 대해서는 Step size를 작게 하여 근사치로 빠르게 수렴하게 만들고, 값의 변화가 적은 것에 대해서는 Step Size를 크게하여 세밀하게 겂의 변화를 확인하는 방식이다.

하지만, Iterator가 많아질 수록 수식의 분모값이 무한대로 가기 때문에 학습이 멈춘다는 단점을 가지고 있다.

Adadelta

Gt=γGt1+(1γ)gt2Wt+1=WtHt1+eGt+egtHt=γHt1+(1γ)(Wt)2G_t=\gamma G_{t-1}+(1-\gamma )g_t^2\newline W_{t+1}=W_t-\frac{\sqrt{H_{t-1}+e}}{\sqrt{G_t+e}}g_t\newline H_t=\gamma H_{t-1}+(1-\gamma )(△W_t)^2
  • 수식
    • GtG_t : Gradient 가중치 제곱의 평균
    • e : 분모가 0이 되지 않도록 만드는 상수

Adagrad에서 GtG_t가 계속 커지는 것을 막기 위해 도입한 방식으로, Learning Rate가 존재하지 않아 설정할 수 있는 Parameter가 거의 없어 잘 활용되지 않는 방식이다.

RmSprop

Gt=γGt1+(1γ)gt2Wt+1=WtlrGt+egtG_t=\gamma G_{t-1}+(1-\gamma )g_t^2\newline W_{t+1}=W_t-\frac{lr}{\sqrt{G_t+e}}g_t
  • 수식
    • GtG_t : Gradient 가중치 제곱의 평균
    • lr : (글로벌) 학습율

Adagrad + EMA Of gradient Squares를 합쳐 만들어진 방식이다.

Adam(Adaptive Moment Estimation)

mt=β1mt1+(1β1)gtm_t=\beta _1m_{t-1}+(1-\beta _1)g_t\newline
vt=β2vt1+(1β2)gt2v_t=\beta _2v_{t-1}+(1-\beta _2)g_t^2\newline
Wt+1=Wtlrvt+e1β2t1β1tmtW_{t+1}=W_t-\frac{lr}{\sqrt{v_t+e}}\frac{\sqrt{1-\beta _2^t}}{1-\beta _1^t}m_t
  • 수식
    • mtm_t : Gradient 평균의 추정치(1차 모멘트 추정치)
    • vtv_t : Gradient의 집중되지 않은 분산의 추정치(2차 모멘트 추정치)
    • lr : 학습율

Adadelta의 Gradient 제곱을 지수적으로 감소시키는 가중 평균 적용 & Gradient 자체를 지수적으로 감소시키는 가중 평균 적용한 방식으로 가장 많이 활용되는 Optimizer이다.

1차 및 2차 모멘트 추정치를 계산함으로써 Variance를 낮추기 위해 Bias를 방해하는 방식을 활용한 Optimizer이다.

모멘트 추정치를 활용한 식 도출 과정

mt^=mt1β1t\hat{m_t} = \frac{m_t}{1-\beta_1^t}\newline
vt^=vt1β2t\hat{v_t} = \frac{v_t}{1-\beta_2^t}\newline
θt+1=θtlrvt^+emt^\theta_{t+1} = \theta_{t} - \frac{lr}{\sqrt{\hat{v_t}}+e}\hat{m_t}
profile
개념부터 확실히!

0개의 댓글