Deep Learning Basic
- Gradient Descent Methods
Deep Learning Basic
DL BASIC ๊ฐ์ข๋ฅผ ๋ค์ผ๋ฉด์ ๋ฐฐ์ด ๊ฒ ์ค Gradient Descent Methdos
์ ๋ํด ํฌ์คํ
ํ๋ ค ํ๋ค.
Optimize parameters
๊ฒฝ์ฌ ํ๊ฐ๋ฒ์ด ํ์ํ ์ด์ ๋ ๋ฌด์์ผ๊น? ์ ๊ฒฝ๋ง ํ์ต์ ๋ชฉ์ ์ ์์ค ํจ์์ ๊ฐ์ ๊ฐ๋ฅํ ํ ๋ฎ์ถ๋ ๋งค๊ฐ๋ณ์(parameters)
๋ฅผ ์ฐพ๋ ๊ฒ์ด๋ค. ์ด๋ฌํ ๋ฌธ์ ๋ฅผ ํธ๋ ๊ฒ์ด ์ต์ ํ(Optimize)
๋ผ ํ๋ค. ์ด ์ต์ ์ ๋งค๊ฐ๋ณ์ ๊ฐ์ ์ฐพ๋ ๋จ์๋ก ๋งค๊ฐ๋ณ์์ ๊ธฐ์ธ๊ธฐ(gradient)
์ ์ด์ฉํ๋ ๊ฒ์ด๋ค.
์ด ๊ธฐ์ธ๊ธฐ๋ฅผ ๊ตฌํด, ๊ธฐ์ธ์ด์ง ๋ฐฉํฅ์ผ๋ก ๋งค๊ฐ๋ณ์ ๊ฐ์ ๊ฐฑ์ ํ๋ ์ผ์ ๋ฐ๋ณตํ์ฌ ์ ์ ์ต์ ์ ๊ฐ์ ๋ค๊ฐ๊ฐ๋ ๊ฒ์ด ๋ชฉํ์ด๋ค. ๊ทธ๋ ๋ค๋ฉด ์ด๋ค ๋ฐฉ๋ฒ์ ํตํด ์ต์ ์ ๊ฐ์ผ๋ก ํฅํ๋ ๊ฒ์ด ์ข์๊น?
Stochastic Gradient Descent
ํ๋ฅ ์ ๊ฒฝ์ฌํ๊ฐ๋ฒ์ ๋ฐ์ดํฐ์
์ค ์ผ๋ถ๋ง ์ฌ์ฉํ๋ Mini-batch
๋ฅผ ํ์ฉํด ์ต์ ์ ํ๋ผ๋ฏธํฐ๋ฅผ ์ฐพ์๊ฐ๋ค. ์์์ ํ๋ฒ ๋ณด์ \[\mathbf{W} \leftarrow \mathbf{W}-\eta \frac{\partial L}{\partial \mathbf{W}}\]
์ฌ๊ธฐ์ W
๋ ๊ฐฑ์ ํ ๊ฐ์ค์น ๋งค๊ฐ๋ณ์์ด๊ณ \(\frac{\partial L}{\partial \mathbf{W}}\) ๋ W
์ ๋ํ ์์ค ํจ์์ ๊ธฐ์ธ๊ธฐ์ด๊ณ \(\eta\) ๋ ํ์ต๋ฅ ์ ์๋ฏธํ๋ค. ์ด ์์ ํด์์ ๊ธฐ์ธ์ด์ง ๋ฐฉํฅ์ผ๋ก ์ผ์ ๊ฑฐ๋ฆฌ๋ง ์ด๋ํ๊ฒ ๋ค๋ ๋จ์ํ ๋ฐฉ๋ฒ์ ์ฑํํ๊ณ ์๋ค.
SGD ์ ๋จ์
๊ฝค๋ ๊ตฌํ์ด ๊ฐ๋จํ๊ณ ๋จ์ํ์ง๋ง, ๊ฐ๋ ๋นํจ์จ์ ์ผ ๋๊ฐ ์๋ค. ๊ฐ๋จํ ์์๋ก ์๋์ ๊ฐ์ ์ํฉ์ด ์๋ค.
์ ๊ทธ๋ฆผ์ ๋ณด๋ฉด ์ต์ ์ ๊ฐ์ ์ฐพ์๊ฐ๋ฉด์ ๋ง์ด ๊ฟํ๋๋ฉด์ ๊ฐ๋ ๊ฒ์ ๋ณผ ์ ์๋ค. ์ด๋ ๊ฒ ์ง๊ทธ์ฌ๊ทธ๋ก ๊ฐ๋ ๊ทผ๋ณธ์ ์ธ ์ด์ ๋ ๊ธฐ์ธ์ด์ง ๋ฐฉํฅ์ด ๋ณธ๋์ ์ต์๊ฐ๊ณผ ๋ค๋ฅธ ๋ฐฉํฅ์ ๊ฐ๋ฅด์ผ์๋ผ๋ ์ ๋ ์๋ค. ๊ทธ๋ ๋ค๋ฉด ์กฐ๊ธ ๋ ๊ด์ฐฎ์ ๋ฐฉ๋ฒ์ ์์๊น?
Momentum
momentum
์ ์ด๋๋์ ๋ปํ๋ค. ์์ ๋จผ์ ๋ณด๋๋ก ํ์. \[\begin{gathered} \mathbf{v} \leftarrow \alpha \mathbf{v}-\eta \frac{\partial L}{\partial \mathbf{W}} \\ \mathbf{W} \leftarrow \mathbf{W}+\mathbf{v} \end{gathered}\]
์์์ ์ดํดํ๊ธฐ ์ ์ momentum
์ ์ปจ์
์ ๋ณด์๋ฉด ์์์ momentum
์ ์ด๋๋์ ๋ปํ๋ค๊ณ ํ์๋ค. ๊ทธ ๋ป์ ๊ธฐ์ธ๊ธฐ ๋ฐฉํฅ์ผ๋ก ํ์ ๋ฐ์ ๋ฌผ์ฒด๊ฐ ๊ฐ์๋๋ค๋ ์ปจ์
์ ๊ฐ์ง๊ณ ์๋ค. ์ฆ ๊ธฐ์ธ๊ธฐ๊ฐ ํฌ๋ค๋ฉด ๊ฐ์์ด ๋์์ง๊ณ ์๋๋ผ๋ฉด ๊ทธ์ ๋ง์ถฐ ๊ฐ์์ด ์ค์ด๋ ๋ค๋ ๊ฒ์ด๋ค.
์์์์ W
๋ SGD ์ ๊ฐ์ ์๋ฏธ๋ฅผ ์ง๋๋ค. ๋ค๋ง v
๋ ๋ฌผ๋ฆฌ์์ ์๋๋ฅผ ๋ปํ๋ ๋ณ์๋ฅผ ๋งํ๋ค. \(\alpha \mathbf{v}\) ํญ์ ๋ฌผ์ฒด๊ฐ ์๋ฌด๋ฐ ํ์ ๋ฐ์ง ์์ ๋ ์์ํ ํ๊ฐ์ํค๋ ์ญํ ์ ํด์ฃผ๋ ํญ์ด๊ณ ๋๋จธ์ง๋ SGD ์ ๋๊ฐ์ ์๋ฏธ๋ฅผ ์ง๋๋ค. \(\alpha \mathbf{v}\) ํญ์ด momentum
์์ ํต์ฌ ํญ์ธ๋ฐ ์์ง์์ ์ ํํ๋ ์ญํ ์ ํ์ฌ SGD ์ ๋ค๋ฅด๊ฒ ํฐ ํญ์ ์์ง์์ ์ ํํด์ค๋ค.
\(\alpha\) ๋ ๊ธฐ๋ณธ์ ์ผ๋ก 0.9 ๊ฐ์ ์ ํํ๋ค.
AdaGrad
์ ๊ฒฝ๋ง ํ์ต์์๋ ํ์ต๋ฅ ์ ์ ํ๋ ๊ฒ์ ๊ฝค ์ค์ํ ์ผ์ด๋ค. ๊ฐ์ด ๋๋ฌด ์์ผ๋ฉด ํ์ต ์๊ฐ์ด ๋๋ฌด ๊ธธ์ด์ง๊ณ , ๋ฐ๋๋ก ๋๋ฌด ํฌ๋ฉด ํ์ต์ด ์ ๋๋ก ์ด๋ค์ง์ง ์๋๋ค. Hyperparameter
์ธ ํ์ต๋ฅ ์ ์ด๋ป๊ฒ ์กฐ์ ํ๋ฉด ์ข์๊น?
์ด๋ฅผ ์ ํ๋๋ฐ ํจ๊ณผ์ ์ธ ๊ธฐ์ ๋ก Learning Rate Decay
๋ฐฉ๋ฒ์ด ์๋ค. ํ์ต์ ์งํํ๋ฉด์ ํ์ต๋ฅ ์ ์ ์ฐจ ์ค์ฌ๊ฐ๋ ๋ฐฉ๋ฒ์ด๋ค. ์ด๋ฅผ ๋ฐ์ ์ํจ ๊ฒ์ด AdaGrad
์ด๋ค. ๊ฐ๊ฐ์ ๋งค๊ฐ๋ณ์์ ๋ง์ถคํ ๊ฐ์ ๋ง๋ค์ด์ค๋ค.
AdaGrad ๋ Adaptive Gradient
๋ก ๊ฐ๋ณ ๋งค๊ฐ๋ณ์์ ์ ์์ ์ผ๋ก ํ์ต๋ฅ ์ ์กฐ์ ํ๋ฉด์ ํ์ต์ ์งํํฉ๋๋ค. ์์์ ํ๋ฒ ๊ฐ์ด ๋ณด์. \[\begin{aligned} &\mathbf{h} \leftarrow \mathbf{h}+\frac{\partial L}{\partial \mathbf{W}} \odot \frac{\partial L}{\partial \mathbf{W}} \\ &\mathbf{W} \leftarrow \mathbf{W}-\eta \frac{1}{\sqrt{\mathbf{h}+\epsilon}} \frac{\partial L}{\partial \mathbf{W}} \end{aligned}\]
\(\epsilon\) ๋ 0์ผ๋ก ๋๋ ์ง๋ ๊ฒ์ ๋ฐฉ์งํ๊ธฐ ์ํด ๋ํด์ค๋ค.
์ฌ๊ธฐ์ h
๋ผ๋ ๋ณ์๊ฐ ์๋ก ๋ฑ์ฅํ๋๋ฐ ์ด๋ ๊ธฐ์กด ๊ธฐ์ธ๊ธฐ ๊ฐ์ ์ ๊ณฑํ์ฌ ๊ณ์ ๋ํด์ค๋ค. ๋งค๊ฐ๋ณ์๋ฅผ ๊ฐฑ์ ํ ๋๋ \(\frac{1}{\sqrt{\mathbf{h}}}\) ์ ๊ณฑํด ํ์ต๋ฅ ์ ์กฐ์ ํ๋ค.
Key Point
h
๊ฐ์ ๊ธฐ์ธ๊ธฐ ๊ฐ์ ๋น๋กํ๋ค. ๊ทธ๋ ๊ฒ ๊ฐฑ์ ๋ h
๋ ๊ฐ์ค์น๋ฅผ ๊ฐฑ์ ํ ๋ ๊ธฐ์ธ๊ธฐ๋ฅผ ๋๋ ์ฃผ๋ ์ญํ ์ ํ๋๋ฐ ๊ทธ ์๋ฏธ๋ ์๋์ ๊ฐ๋ค
๋ง์ด ๋ณํ๋(ํฌ๊ฒ ๊ฐฑ์ ๋) ๊ฐ์ค์น์๋ ํ์ต๋ฅ ์ ๋ฎ์ถ๋ค๋ ๋ป
ํ์ต์ ์งํํ ์๋ก ๊ฐฑ์ ๊ฐ๋๊ฐ ์ฝํด์ง
Optimization Visual Log
๊ทธ๋ฆผ์ ๋ณด๋ฉด ์ต์๊ฐ์ ํฅํด ์์ ๋ ๋ฐฉ๋ฒ๋ค๋ณด๋ค ํจ์จ์ ์ผ๋ก ์์ง์ด๋ ๊ฒ์ ๋ณผ ์ ์๋ค. ํฐ ์์ง์์ ๋น๋กํด ๊ฐฑ์ ์ ๋๋ ํฐ ํญ์ผ๋ก ์์์ง๋๋ก ์กฐ์ ๋๋ค.
Adam
์ด ๊ธฐ๋ฒ์ momentum
๊ณผ AdaGrad
๋ฅผ ์ตํฉํ ๊ธฐ์ ์ด๋ค. Adam
์์๋ ๊ธฐ์ธ๊ธฐ ๊ฐ๊ณผ ๊ธฐ์ธ๊ธฐ์ ์ ๊ณฑ๊ฐ์ ์ง์์ด๋ํ๊ท ์ ํ์ฉํ์ฌ step ๋ณํ๋์ ์กฐ์ ํ๋ค.
์์์ ํจ๊ป ๋ณด์ \[\begin{aligned} m_{t} &=\beta_{1} m_{t=1}+\left(1-\beta_{1}\right) g_{t} \\ v_{t} &=\beta_{2} v_{t-1}+\left(1-\beta_{2}\right) g_{t}^{2} \\ W_{t+1} &=W_{t}-\frac{\eta}{\sqrt{v_{t}+\epsilon}} \frac{\sqrt{1-\beta_{2}^{t}}}{1-\beta_{1}^{t}} m_{t} \end{aligned}\]
์ ์์์๋ EMA
๊ธฐ๋ฒ์ด ์ ์ฉ๋ ๊ฒ์ ๋ณผ ์ ์๋ค. EMA
๋ Learning Rate
์ ๊ณ์๋๋ ๊ฐ์๋ฅผ ๋ฐฉ์งํ๊ธฐ ์ํด exponential moving average
๋ผ๋ ๋ป์ด๋ค.
\(\mathbf{y}\) ์ \(\mathbf{1-y}\)๋ฅผ ํตํด ๊ฐ์ updateํ๋ ๋ฐฉ์
์ด ๊ธฐ๋ฒ์ ํน์ง์ผ๋ก๋ ํ์ดํผํ๋ผ๋ฏธํฐ์ ํธํฅ๋ณด์ ์ด ์งํ๋๋ค๋ ์ ์ด๋ค. Adam
์ ํ์ดํผํ๋ผ๋ฏธํฐ๋ฅผ 3๊ฐ ์ค์ ํ๋ค. ํ๋๋ ํ์ต๋ฅ , ๋๋จธ์ง ๋ ๊ฐ๋ ์ผ์ฐจ ๋ชจ๋ฉํ
์ฉ \(\beta_{1}\) ๊ณผ ์ด์ฐจ ๋ชจ๋ฉํ
์ฉ \(\beta_{2}\) ์ด๋ค. ๋
ผ๋ฌธ์ ๋ฐ๋ฅด๋ฉด ๊ธฐ๋ณธ ์ค์ ๊ฐ์ \(\beta_{1}\) 0.9, \(\beta_{2}\) ๋ 0.999๋ก ์ค์ ํ๋ฉด ์ข์ ๊ฐ์ ์ป์ ์ ์๋ค๊ณ ์ ํด์ง๋ค.
Optimization Visual Log
๊ทธ๋ฆผ์์ ๋ณด๋ฉด momentum
๊ณผ ๋น์ทํ๊ฒ ๋ฐ๋ฅ์ ๊ตฌ๋ฅด๋ฏ ๊ฐฑ์ ๊ณผ์ ์ด ์ผ์ด๋๋ค. ๋จ ์ข์ฐ ํ๋ค๋ฆผ์ด ์ ์ ๊ฒ์ ๋ณผ ์ ์๋๋ฐ ์ด๋ Adagrad
์์ ํ์ต๋ฅ ๊ฐฑ์ ์ ์ ์์ ์ผ๋ก ํ๋ ๊ฒ์ ์ตํฉํ๊ธฐ ๋๋ฌธ์ด๋ค.
๊ธ ๋ง๋ฌด๋ฆฌ
์ด๋ค ์ต์ ํ ๊ธฐ๋ฒ์ ์ฐ๋์ง๋ ๋ฌธ์ ๋ง๋ค ์ํฉ๋ง๋ค ๋ค๋ฅด๋ค. ๊ฐ์์ ์ฅ๋จ์ ์ด ์๊ธฐ ๋๋ฌธ์ ๊ทธ์ ๋ง๋ ๊ธฐ๋ฒ์ ์ ํํด์ผ๋๋ค. ๋ค๋ง ์์ฆ ์ฐ๊ตฌ์๋ Adam
์ ๋ง์ด ์ฐ๊ณ ์๋ค๋ ๊ฒ์ ์์๋๋ฉด ์ข์ ๊ฒ ๊ฐ๋ค.