최적화 방법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에 대해서 정리해보려고 한다.
참고문헌
- 사이토 고키, 『밑바닥부터 시작하는 딥러닝』, Chapter 6: 학습 관련 기술들, 한빛미디어, 2017.
- 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.
'기본기 다지기 > 최적화' 카테고리의 다른 글
[기본이론] 최적화 방법6- Adam (수식o) (4) | 2024.11.08 |
---|---|
[기본이론] 최적화 방법5- RMSProp (수식o, 그래프o) (0) | 2024.11.06 |
[기본이론] 최적화 방법3- Momentum (수식o) (4) | 2024.11.03 |
[기본이론] 최적화 방법2- Stochastic Gradient Descent (수식o) (4) | 2024.11.02 |
[기본이론] 최적화 방법1- Gradient Descent (수식o) (8) | 2024.11.01 |