기본기 다지기/최적화

[기본이론] 최적화 방법4- AdaGrad (수식o)

syveany 2024. 11. 4. 18:30

최적화 방법4- AdaGrad

앞에서 모멘텀(Momentum)까지 정리했다. 이어서 AdaGrad에 대해서 정리하려고 한다.

 

~ 목차 ~

0. 서론- 왜 갑자기 최적화를 공부하고 있는가
1. 최적화란
2. 종류
  2.1 경사하강법(GD)
  2.2 확률적 경사하강법(SGD)
  2.3 Momentum
  2.4 AdaGrad
  2.5 RMSProp
  2.6 Adam

 

2. 종류 

  2.4 AdaGrad

  - AdaGrad Adaptive Gradient의 줄임말로, 기울기 제곱의 누적합을 사용해서 학습률을 조절(자주 업데이트되면 학습률 감소, 드물게 업데이트되면 학습률 유지)하는 방법이다.

 

  - 이 역시 수식으로 설명해보고자 한다. AdaGrad의 가중치 매개변수 업데이트 공식은 아래와 같다.

 

$h \leftarrow h + \frac{\partial L}{\partial W} \odot \frac{\partial L}{\partial W}$

(h: 기울기 제곱을 누적한 값)

 

$W \leftarrow W - \eta \frac{1}{\sqrt{h+\epsilon}} \frac{\partial L}{\partial W}$

 

     어라? 어딘가 익숙하지 않은가!

     바로 GD의 가중치 매개변수 업데이트 공식($W \leftarrow W - \eta \frac{\partial L}{\partial W}$)에서  학습률 $\eta$에  $\frac{1}{\sqrt{h+\epsilon}}$을 곱한 형태임을 알 수 있다.

 

  - $\eta \frac{1}{\sqrt{h+\epsilon}}$에서 $h$는 기울기 제곱의 누적합으로, 이전의 기울기들을 모두 학습률에 반영하기 위해서 사용된다.

  - $\eta \frac{1}{\sqrt{h+\epsilon}}$에서 $\epsilon$는 보통 ${10}^{-8}$로 설정된다.

     

 

  - 여기서 잠깐 질문..

 

      Q1: [장점] 기울기 제곱의 누적합을 학습률에 반영할까? 뭐가 좋을까?

       - 기.제.누.를 사용하면 i) 데이터가 거의 없거나 ii) 기울기가 불균형할 때도 안정적인 학습이 가능하다.

 

         i) 데이터가 거의 없을 때

         - 데이터가 적으면 기울기 업데이트 횟수가 적어지므로 $h$가 작게 유지되어서 $\frac{1}{\sqrt{h+\epsilon}}$가 상대적으로 커진다. 

            이에 따라 학습률($\eta \frac{1}{\sqrt{h+\epsilon}}$)이 덜 감소해서 적절한 학습률로 파라미터가 업데이트된다.

기울기에 따른 가중치 업데이트 양

 

        ii) 기울기가 불균형할 때

         - $\frac{\partial L}{\partial W}$가 크면 $h$도 커지므로 $\eta \frac{1}{\sqrt{h+\epsilon}}$이 작아져

             가중치 업데이트가 안정적(∵튀는 상황 방지)으로 이루어진다.

         - $\frac{\partial L}{\partial W}$가 작으면 $h$도 작아지므로 $\eta \frac{1}{\sqrt{h+\epsilon}}$이 커져

             가중치 업데이트가 안정적(∵지지부진 방지)으로 이루어진다.

 

 

      Q2: [단점] 안 좋은 점도 있을까?

       - 학습이 진행될수록 학습률이 작아진다.

       - 학습이 진행될수록 기울기 제곱값이 계속 누적되고, 이에 따라 $h$가 계속 커져$\eta \frac{1}{\sqrt{h+\epsilon}}$가 지나치게 작아진다.

          $\eta \frac{1}{\sqrt{h+\epsilon}}$값이 너무 작아지면 학습 속도가 느려지기 때문에, 이를 보완하기 위해 RMSProp이 제안되었다.

 

 

  - 앞에서 든 손실함수 $L$의 예시를 사용해서 가중치 매개변수를 1번 갱신할 때 필요한 행렬식을 알아보자.

      e.g. $L={e_1}^2+{e_2}^2+{e_3}^2+{e_4}^2+{e_5}^2$일 때,

            GD, SGD, Momentum, AdaGrad에서 가중치 매개변수를 1번 갱신할 때 필요한 행렬식

            각각 아래의 표와 같다. (AdaGrad의 학습률은 $\eta$가 아니라 $\frac{\eta}{\sqrt{h_1+\epsilon}}$임을 알 수 있다.)

Gradient Descent Stochastic Gradient Descent
$$\begin{bmatrix} w_1 \\ w_2 \\ w_3 \\ w_4 \\ w_5 \end{bmatrix} \leftarrow \begin{bmatrix} w_1 \\ w_2 \\ w_3 \\ w_4 \\ w_5 \end{bmatrix} - \eta \begin{bmatrix} 2 e_1 \frac{\partial e_1}{\partial w_1} \\ 2 e_2 \frac{\partial e_2}{\partial w_2} \\ 2 e_3 \frac{\partial e_3}{\partial w_3} \\ 2 e_4 \frac{\partial e_4}{\partial w_4} \\ 2 e_5 \frac{\partial e_5}{\partial w_5} \end{bmatrix}$$ $$\begin{bmatrix} w_1 \\ w_2 \\ w_3 \\ w_4 \\ w_5 \end{bmatrix} \leftarrow \begin{bmatrix} w_1 \\ w_2 \\ w_3 \\ w_4 \\ w_5 \end{bmatrix} - \eta \begin{bmatrix} 0 \\ \vdots \\ 2 e_i\frac{\partial e_i}{\partial w_i} \\ \vdots \\ 0 \end{bmatrix}$$
Momentum
$$\begin{bmatrix} w_1 \\ w_2 \\ w_3 \\ w_4 \\ w_5 \end{bmatrix} \leftarrow \begin{bmatrix} w_1 \\ w_2 \\ w_3 \\ w_4 \\ w_5 \end{bmatrix} + \begin{bmatrix} \alpha v_1 - \eta \cdot 2 e_1 \frac{\partial e_1}{\partial w_1} \\ \alpha v_2 - \eta \cdot 2 e_2 \frac{\partial e_2}{\partial w_2} \\ \alpha v_3 - \eta \cdot 2 e_3 \frac{\partial e_3}{\partial w_3} \\ \alpha v_4 - \eta \cdot 2 e_4 \frac{\partial e_4}{\partial w_4} \\ \alpha v_5 - \eta \cdot 2 e_5 \frac{\partial e_5}{\partial w_5} \end{bmatrix}$$
AdaGrad
$$\begin{bmatrix} w_1 \\ w_2 \\ w_3 \\ w_4 \\ w_5 \end{bmatrix} \leftarrow \begin{bmatrix} w_1 \\ w_2 \\ w_3 \\ w_4 \\ w_5 \end{bmatrix} - \eta \begin{bmatrix} \frac{1}{\sqrt{h_1 + \epsilon}} \cdot \frac{\partial L}{\partial w_1} \\ \frac{1}{\sqrt{h_2 + \epsilon}} \cdot \frac{\partial L}{\partial w_2} \\ \frac{1}{\sqrt{h_3 + \epsilon}} \cdot \frac{\partial L}{\partial w_3} \\ \frac{1}{\sqrt{h_4 + \epsilon}} \cdot \frac{\partial L}{\partial w_4} \\ \frac{1}{\sqrt{h_5 + \epsilon}} \cdot \frac{\partial L}{\partial w_5} \end{bmatrix}$$

 

  - AdaGrad의 학습률GD($W \leftarrow W - \eta \frac{\partial L}{\partial W}$)의 학습률 $\eta$에  $\frac{1}{\sqrt{h+\epsilon}}$을 곱한 형태임을 알 수 있다.

  - 다음 포스팅에서는 AdaGrad의 단점인 방법인 학습 진행에 따른 학습률 감소를 개선한 RMSProp에 대해서 정리해보려고 한다.

 

 

참고문헌

  1. 사이토 고키, 『밑바닥부터 시작하는 딥러닝』, Chapter 6: 학습 관련 기술들, 한빛미디어, 2017.
  2. Duchi, J., Hazan, E., & Singer, Y., "Adaptive Subgradient Methods for Online Learning and Stochastic Optimization," Journal of Machine Learning Research, vol. 12, pp. 2121-2159, 2011.