최적화 방법6- Adam
앞에서 RMSProp까지 정리했다. 이어서 Adam에 대해서 정리하려고 한다.
~ 목차 ~
0. 서론- 왜 갑자기 최적화를 공부하고 있는가
1. 최적화란
2. 종류
2.1 경사하강법(GD)
2.2 확률적 경사하강법(SGD)
2.3 Momentum
2.4 AdaGrad
2.5 RMSProp
2.6 Adam
2. 종류
2.6 Adam
- Adam은 Adaptive Moment Estimation의 약자로, ①Momentum의 장점과 ②RMSProp의 장점을 결합한 방법이다.
① Momentum의 장점: 기울기 방향성 보존(안정성)
- Momentum의 기본 수식은 $v \leftarrow \alpha v - \eta \frac{\partial L}{\partial W}$, $W \leftarrow W + v$이다.
$\alpha$를 통해 과거의 기울기가 현재의 기울기에 반영되어서 방향이 보존될 수 있다는 장점이 있다.
- 이러한 장점은 Adam에서 1차 모멘트(기울기의 이동 평균)로 나타난다. Adam의 1차 모멘트 식은 아래와 같다.
$$m_{t} \leftarrow {\beta}_{1}{m_{t}}+(1-{\beta}_{1})g(w_{t})$$
- 이를 통해 과거 기울기의 정보를 누적해서 학습이 일정한 방향으로 빠르고 매끄럽게 이어지도록 도와준다.
② RMSProp의 장점: 적응적 학습률 사용(효율성)
- RMSProp의 기본 수식은 $h \leftarrow \beta h + (1 - \beta) \frac{\partial L}{\partial W} \odot \frac{\partial L}{\partial W}$, $W \leftarrow W - \eta \frac{1}{\sqrt{h + \epsilon}} \frac{\partial L}{\partial W}$이다.
$\frac{\partial L}{\partial W} \odot \frac{\partial L}{\partial W}$를 통해 기울기 제곱의 이동 평균을 계산해서, 기울기의 크기에 따라서 학습률을 조정한다.
- 이러한 장점은 Adam에서 2차 모멘트(기울기 제곱의 이동 평균)로 나타난다. Adam의 2차 모멘트 식은 아래와 같다.
$$v_{t} \leftarrow {\beta}_{2}{v_{t}}+(1-{\beta}_{2}){g(w_{t})}^2$$
- 이를 통해 기울기의 크기에 따라서 학습률이 조절되어 보다 안정적이고 효율적인 학습을 가능하게 한다.
빠른 수렴 속도, 하이퍼파라미터에 덜 민감,
- Adam의 알고리즘은 다음과 같다 [2].
논문[2]에서는 Adam과 관련이 있는 최적화 방법이 RMSProp과 AdaGrad라고 한다.
책[1]에서는 Adam이 Momentum, AdaGrad와 관련이 있다고 하고, 다른 영상들을 보면 Momentum, RMSProp과 관련이 있다고 한다. 하지만 논문[2]에서는 RMSProp에 momentum을 추가한 버전을 RMSProp with momentum이라고 따로 소개하고, RMSProp with momentum과 Adam의 차이점에 대해서 설명한다. 무엇이 관련이 있는지 사실 precise하게 와닿지가 않는다.. 이렇게 곳곳에서 말이 다른 걸 보면 무엇과 연관이 되어있는지는 크게 중요하지 않은 것 같기도 하다.
일단 근본 자료인 논문 [2]를 참고해서 정리해보자면, Adam과 관련이 있는 최적화 방법은 RMSProp과 AdaGrad이다.
- RMSProp with momentum
RMSProp with momentum | Adam |
- Generates its parameter updates using a momentum on the rescaled gradient - no bias-correction term |
- directly estimated using a running average of first and second moment of the gradient - has a bias-correction term |
- AdaGrad
- works well for sparse gradients
Adam의 1차 모멘트와 2차 모멘트는 다음과 같다.
$$m_{t} \leftarrow {\beta}_{1}{m_{t}}+(1-{\beta}_{1})g(w_{t})$$
$$v_{t} \leftarrow {\beta}_{2}{v_{t}}+(1-{\beta}_{2}){g(w_{t})}^2$$
여기서 ${g_{t}}^2$는 그냥 원소곱을 보기 편하게 나타낸 것이라고 명시되어 있다.(첫 번째 문단의 두 번째 줄, "${g_{t}}^2$ indicates the elementwise square $g_{t} \odot g_{t}$")
편향 보정된 1차 모멘트와 2차 모멘트는 다음과 같다.
$$\hat{m}_{t} = \frac{m_{t}}{(1-{{\beta}_1}^{t})} , \hat{v}_{t} = \frac{v_{t}}{(1-{{\beta}_2}^{t})}$$
그래서 최종적으로 업데이트되는 파라미터는 다음과 같다.
$$w_{t} \leftarrow w_{t} - \eta \frac{\hat{m}_{t}}{\sqrt{\hat{v}_{t}} + \epsilon}$$
- 앞에서 든 손실함수 $L$의 예시를 사용해서 가중치 매개변수를 1번 갱신할 때 필요한 행렬식을 알아보자.
e.g. $L={e_1}^2+{e_2}^2+{e_3}^2+{e_4}^2+{e_5}^2$일 때,
GD, SGD, Momentum, AdaGrad, RMSProp에서 가중치 매개변수를 1번 갱신할 때 필요한 행렬식은
각각 아래의 표와 같다. (RMSProp의 학습률은 $\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 | RMSProp |
$$\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}$$ | $$\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}$$ |
Adam | |
$$\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{\hat{m}_1}{\sqrt{\hat{v}_1} + \epsilon} \\ \frac{\hat{m}_2}{\sqrt{\hat{v}_2} + \epsilon} \\ \frac{\hat{m}_3}{\sqrt{\hat{v}_3} + \epsilon} \\ \frac{\hat{m}_4}{\sqrt{\hat{v}_4} + \epsilon} \\ \frac{\hat{m}_5}{\sqrt{\hat{v}_5} + \epsilon} \end{bmatrix}$$ |
- 최적화 정리는 일단 여기까지 하겠다. 이번에는 Adam 논문도 각 잡고 쭉 읽어보고 싶다.
참고문헌
[1] 사이토 고키, 『밑바닥부터 시작하는 딥러닝』, Chapter 6: 학습 관련 기술들, 한빛미디어, 2017.
[2] Kingma, Diederik P. and Jimmy Ba. “Adam: A Method for Stochastic Optimization.” CoRRabs/1412.6980 (2014): n. pag.
[3] 혁펜하임 | AI & 딥러닝 강의, "[Easy! 딥러닝] 3-6강. Adam (Adaptive Moment Estimation) 완벽 정리!", 2024년 4월 29일, 동영상, 13:33, https://www.youtube.com/watch?v=wVBuPlBBbAE
'기본기 다지기 > Optimization' 카테고리의 다른 글
[기본이론] 최적화 방법5- RMSProp (수식o, 그래프o) (0) | 2024.11.06 |
---|---|
[기본이론] 최적화 방법4- AdaGrad (수식o) (0) | 2024.11.04 |
[기본이론] 최적화 방법3- Momentum (수식o) (4) | 2024.11.03 |
[기본이론] 최적화 방법2- Stochastic Gradient Descent (수식o) (4) | 2024.11.02 |
[기본이론] 최적화 방법1- Gradient Descent (수식o) (8) | 2024.11.01 |