Deep Learning Basic
- Gradient Descent Methods

Deep Learning Basic <br>- Gradient Descent Methods

Deep Learning Basic

ํ•ด๋‹น ์ธ๋„ค์ผ์€ Wonkook Lee ๋‹˜์ด ๋งŒ๋“œ์‹  Thumbnail-Maker ๋ฅผ ์ด์šฉํ•˜์˜€์Šต๋‹ˆ๋‹ค

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}}\]

๋ฐ‘๋ฐ”๋‹ฅ๋ถ€ํ„ฐ ์‹œ์ž‘ํ•˜๋Š” ๋”ฅ๋Ÿฌ๋‹1

์—ฌ๊ธฐ์„œ W๋Š” ๊ฐฑ์‹ ํ•  ๊ฐ€์ค‘์น˜ ๋งค๊ฐœ๋ณ€์ˆ˜์ด๊ณ  \(\frac{\partial L}{\partial \mathbf{W}}\) ๋Š” W ์— ๋Œ€ํ•œ ์†์‹ค ํ•จ์ˆ˜์˜ ๊ธฐ์šธ๊ธฐ์ด๊ณ  \(\eta\) ๋Š” ํ•™์Šต๋ฅ ์„ ์˜๋ฏธํ•œ๋‹ค. ์ด ์‹์˜ ํ•ด์„์€ ๊ธฐ์šธ์–ด์ง„ ๋ฐฉํ–ฅ์œผ๋กœ ์ผ์ • ๊ฑฐ๋ฆฌ๋งŒ ์ด๋™ํ•˜๊ฒ ๋‹ค๋Š” ๋‹จ์ˆœํ•œ ๋ฐฉ๋ฒ•์„ ์ฑ„ํƒํ•˜๊ณ  ์žˆ๋‹ค.

SGD ์˜ ๋‹จ์ 

๊ฝค๋‚˜ ๊ตฌํ˜„์ด ๊ฐ„๋‹จํ•˜๊ณ  ๋‹จ์ˆœํ•˜์ง€๋งŒ, ๊ฐ€๋” ๋น„ํšจ์œจ์ ์ผ ๋•Œ๊ฐ€ ์žˆ๋‹ค. ๊ฐ„๋‹จํ•œ ์˜ˆ์‹œ๋กœ ์•„๋ž˜์™€ ๊ฐ™์€ ์ƒํ™ฉ์ด ์žˆ๋‹ค.

IMG_0007

๋ฐ‘๋ฐ”๋‹ฅ๋ถ€ํ„ฐ ์‹œ์ž‘ํ•˜๋Š” ๋”ฅ๋Ÿฌ๋‹1

์œ„ ๊ทธ๋ฆผ์„ ๋ณด๋ฉด ์ตœ์ ์˜ ๊ฐ’์„ ์ฐพ์•„๊ฐ€๋ฉด์„œ ๋งŽ์ด ๊ฟˆํ‹€๋Œ€๋ฉด์„œ ๊ฐ€๋Š” ๊ฒƒ์„ ๋ณผ ์ˆ˜ ์žˆ๋‹ค. ์ด๋ ‡๊ฒŒ ์ง€๊ทธ์žฌ๊ทธ๋กœ ๊ฐ€๋Š” ๊ทผ๋ณธ์ ์ธ ์ด์œ ๋Š” ๊ธฐ์šธ์–ด์ง„ ๋ฐฉํ–ฅ์ด ๋ณธ๋ž˜์˜ ์ตœ์†Ÿ๊ฐ’๊ณผ ๋‹ค๋ฅธ ๋ฐฉํ–ฅ์„ ๊ฐ€๋ฅด์ผœ์„œ๋ผ๋Š” ์ ๋„ ์žˆ๋‹ค. ๊ทธ๋ ‡๋‹ค๋ฉด ์กฐ๊ธˆ ๋” ๊ดœ์ฐฎ์€ ๋ฐฉ๋ฒ•์€ ์—†์„๊นŒ?

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}\]

๋ฐ‘๋ฐ”๋‹ฅ๋ถ€ํ„ฐ ์‹œ์ž‘ํ•˜๋Š” ๋”ฅ๋Ÿฌ๋‹1

์ˆ˜์‹์„ ์ดํ•ดํ•˜๊ธฐ ์ „์— momentum ์˜ ์ปจ์…‰์„ ๋ณด์ž๋ฉด ์œ„์—์„œ momentum ์€ ์šด๋™๋Ÿ‰์„ ๋œปํ•œ๋‹ค๊ณ  ํ•˜์˜€๋‹ค. ๊ทธ ๋œป์€ ๊ธฐ์šธ๊ธฐ ๋ฐฉํ–ฅ์œผ๋กœ ํž˜์„ ๋ฐ›์•„ ๋ฌผ์ฒด๊ฐ€ ๊ฐ€์†๋œ๋‹ค๋Š” ์ปจ์…‰์„ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค. ์ฆ‰ ๊ธฐ์šธ๊ธฐ๊ฐ€ ํฌ๋‹ค๋ฉด ๊ฐ€์†์ด ๋†’์•„์ง€๊ณ  ์•„๋‹ˆ๋ผ๋ฉด ๊ทธ์— ๋งž์ถฐ ๊ฐ€์†์ด ์ค„์–ด๋“ ๋‹ค๋Š” ๊ฒƒ์ด๋‹ค.

์ˆ˜์‹์—์„œ W ๋Š” SGD ์™€ ๊ฐ™์€ ์˜๋ฏธ๋ฅผ ์ง€๋‹Œ๋‹ค. ๋‹ค๋งŒ v ๋Š” ๋ฌผ๋ฆฌ์—์„œ ์†๋„๋ฅผ ๋œปํ•˜๋Š” ๋ณ€์ˆ˜๋ฅผ ๋งํ•œ๋‹ค. \(\alpha \mathbf{v}\) ํ•ญ์€ ๋ฌผ์ฒด๊ฐ€ ์•„๋ฌด๋Ÿฐ ํž˜์„ ๋ฐ›์ง€ ์•Š์„ ๋•Œ ์„œ์„œํžˆ ํ•˜๊ฐ•์‹œํ‚ค๋Š” ์—ญํ• ์„ ํ•ด์ฃผ๋Š” ํ•ญ์ด๊ณ  ๋‚˜๋จธ์ง€๋Š” SGD ์™€ ๋˜‘๊ฐ™์€ ์˜๋ฏธ๋ฅผ ์ง€๋‹Œ๋‹ค. \(\alpha \mathbf{v}\) ํ•ญ์ด momentum ์—์„œ ํ•ต์‹ฌ ํ•ญ์ธ๋ฐ ์›€์ง์ž„์„ ์ œํ•œํ•˜๋Š” ์—ญํ• ์„ ํ•˜์—ฌ SGD ์™€ ๋‹ค๋ฅด๊ฒŒ ํฐ ํญ์˜ ์›€์ง์ž„์„ ์ œํ•œํ•ด์ค€๋‹ค.

IMG_55B072DDC76F-1

๋ฐ‘๋ฐ”๋‹ฅ๋ถ€ํ„ฐ ์‹œ์ž‘ํ•˜๋Š” ๋”ฅ๋Ÿฌ๋‹1

\(\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}\]

๋ฐ‘๋ฐ”๋‹ฅ๋ถ€ํ„ฐ ์‹œ์ž‘ํ•˜๋Š” ๋”ฅ๋Ÿฌ๋‹1

\(\epsilon\) ๋Š” 0์œผ๋กœ ๋‚˜๋ˆ ์ง€๋Š” ๊ฒƒ์„ ๋ฐฉ์ง€ํ•˜๊ธฐ ์œ„ํ•ด ๋”ํ•ด์ค€๋‹ค.

์—ฌ๊ธฐ์„œ h ๋ผ๋Š” ๋ณ€์ˆ˜๊ฐ€ ์ƒˆ๋กœ ๋“ฑ์žฅํ•˜๋Š”๋ฐ ์ด๋Š” ๊ธฐ์กด ๊ธฐ์šธ๊ธฐ ๊ฐ’์„ ์ œ๊ณฑํ•˜์—ฌ ๊ณ„์† ๋”ํ•ด์ค€๋‹ค. ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ๊ฐฑ์‹ ํ•  ๋•Œ๋Š” \(\frac{1}{\sqrt{\mathbf{h}}}\) ์„ ๊ณฑํ•ด ํ•™์Šต๋ฅ ์„ ์กฐ์ •ํ•œ๋‹ค.

Key Point

h ๊ฐ’์€ ๊ธฐ์šธ๊ธฐ ๊ฐ’์— ๋น„๋ก€ํ•œ๋‹ค. ๊ทธ๋ ‡๊ฒŒ ๊ฐฑ์‹ ๋œ h ๋Š” ๊ฐ€์ค‘์น˜๋ฅผ ๊ฐฑ์‹ ํ•  ๋•Œ ๊ธฐ์šธ๊ธฐ๋ฅผ ๋‚˜๋ˆ ์ฃผ๋Š” ์—ญํ• ์„ ํ•˜๋Š”๋ฐ ๊ทธ ์˜๋ฏธ๋Š” ์•„๋ž˜์™€ ๊ฐ™๋‹ค

๋งŽ์ด ๋ณ€ํ™”๋œ(ํฌ๊ฒŒ ๊ฐฑ์‹ ๋œ) ๊ฐ€์ค‘์น˜์—๋Š” ํ•™์Šต๋ฅ ์„ ๋‚ฎ์ถ˜๋‹ค๋Š” ๋œป
ํ•™์Šต์„ ์ง„ํ–‰ํ• ์ˆ˜๋ก ๊ฐฑ์‹  ๊ฐ•๋„๊ฐ€ ์•ฝํ•ด์ง

Optimization Visual Log

IMG_92091F4B1811-1

๋ฐ‘๋ฐ”๋‹ฅ๋ถ€ํ„ฐ ์‹œ์ž‘ํ•˜๋Š” ๋”ฅ๋Ÿฌ๋‹1

๊ทธ๋ฆผ์„ ๋ณด๋ฉด ์ตœ์†Ÿ๊ฐ’์„ ํ–ฅํ•ด ์œ„์— ๋‘ ๋ฐฉ๋ฒ•๋“ค๋ณด๋‹ค ํšจ์œจ์ ์œผ๋กœ ์›€์ง์ด๋Š” ๊ฒƒ์„ ๋ณผ ์ˆ˜ ์žˆ๋‹ค. ํฐ ์›€์ง์ž„์— ๋น„๋ก€ํ•ด ๊ฐฑ์‹  ์ •๋„๋„ ํฐ ํญ์œผ๋กœ ์ž‘์•„์ง€๋„๋ก ์กฐ์ •๋œ๋‹ค.

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

IMG_F4321803BFDA-1

๋ฐ‘๋ฐ”๋‹ฅ๋ถ€ํ„ฐ ์‹œ์ž‘ํ•˜๋Š” ๋”ฅ๋Ÿฌ๋‹1

๊ทธ๋ฆผ์—์„œ ๋ณด๋ฉด momentum ๊ณผ ๋น„์Šทํ•˜๊ฒŒ ๋ฐ”๋‹ฅ์„ ๊ตฌ๋ฅด๋“ฏ ๊ฐฑ์‹  ๊ณผ์ •์ด ์ผ์–ด๋‚œ๋‹ค. ๋‹จ ์ขŒ์šฐ ํ”๋“ค๋ฆผ์ด ์ ์€ ๊ฒƒ์„ ๋ณผ ์ˆ˜ ์žˆ๋Š”๋ฐ ์ด๋Š” Adagrad ์—์„œ ํ•™์Šต๋ฅ  ๊ฐฑ์‹ ์„ ์ ์‘์ ์œผ๋กœ ํ•˜๋Š” ๊ฒƒ์„ ์œตํ•ฉํ–ˆ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.

๊ธ€ ๋งˆ๋ฌด๋ฆฌ

์–ด๋–ค ์ตœ์ ํ™” ๊ธฐ๋ฒ•์„ ์“ฐ๋Š”์ง€๋Š” ๋ฌธ์ œ๋งˆ๋‹ค ์ƒํ™ฉ๋งˆ๋‹ค ๋‹ค๋ฅด๋‹ค. ๊ฐ์ž์˜ ์žฅ๋‹จ์ ์ด ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ๊ทธ์— ๋งž๋Š” ๊ธฐ๋ฒ•์„ ์„ ํƒํ•ด์•ผ๋œ๋‹ค. ๋‹ค๋งŒ ์š”์ฆ˜ ์—ฐ๊ตฌ์—๋Š” Adam ์„ ๋งŽ์ด ์“ฐ๊ณ  ์žˆ๋‹ค๋Š” ๊ฒƒ์„ ์•Œ์•„๋‘๋ฉด ์ข‹์„ ๊ฒƒ ๊ฐ™๋‹ค.