용어
$$W_{t,i}:\ t\ 시점의\ i\ 번째\ 파라미터$$
$$\\ \nabla _{W_t}J\left(W_{t,\ i}\right)\ =\ g_{t,\ i}\ :\ t\ 시점의\ W_{t,\ i}에\ 대한\ gradient\ 벡터$$
SGD
$$W_{t+1,\ i}=W_{t,\ i}-\eta \cdot g_{t,\ i}$$
Adagrad
$$G_{t,\ ii}=g_{1,\ i}^2+g_{2,\ i}^2\ +\ ..\ +\ g_{t,\ i}^2$$
$$G_t=\begin{bmatrix}G_{t,\ 11}&0&..&00\\0&G_{t,\ 22}&0&..\\..&0&..&0\\0&..&0&G_{t,\ ii}\end{bmatrix}$$
$$W_{t+1,\ i}=W_{t,\ i}-\frac{\eta }{\sqrt{G_{t,\ ii}+\epsilon }}\cdot g_{t,\ i}\ $$
장점: sparse한 데이터 때문에 W요소를 충분히 업데이트하지 못했을 때, 그 W요소의 가중치를 높혀 훈련이 잘 되게 해준다.
단점: t가 점점 커질 때, learning rate가 소실 된다.
RMSprop
$$E\left[g^2\right]_t=rE\left[g^2\right]_{t-1}+\left(1-r\right)g_t^2\ →\ g^2의\ 평균$$
$$Adagrad의\ G_t\ 대신\ E\left[g^2\right]_t$$
$$W_{t+1}=W_t-\frac{\eta }{\sqrt{E\left[g^2\right]+\epsilon }}\cdot g_t$$
저자는 r=0.9, η=0.01을 적절한 값으로 제안했습니다.
장점: Adagrad의 학습률이 작아지는 문제 해결
Adam
$$\\ \\ E\left(X^n\right):\ 확률\ 변수\ X의\ n차\ 모멘텀$$
$$\\ m_t=\beta _1m_{t-1}+\left(1-\beta _1\right)g_t\ →\ g_t의\ 1차\ 모멘텀$$
$$v_t=\beta _2v_{t-1}+\left(1-\beta _2\right)g_t^2\ →\ g_t의\ 2차\ 모멘텀$$
저자는 β₁=0.9, β₂=0.999, ε=10^(-8)을 default로 설정했습니다.
m_t, v_t의 초기값이 0일 때, 가중치가 0으로 편향 되는데 이 편향을 막기 위해 아래와 같이 모멘텀들을 변경했습니다.
$$\hat{m_t}=\frac{m_t}{1-\beta ^t},\ \hat{v_t}=\frac{v_t}{1-\beta _2^t}$$
$$W_{t+1}=W_t-\frac{\eta }{\sqrt{\hat{v_t}+\epsilon }}\hat{m_t}$$
참고:
'통계' 카테고리의 다른 글
LDA fisher analysis (0) | 2022.01.01 |
---|---|
다중공선성 (multicollinearity) (0) | 2021.12.18 |