Optimizer๋?
- Optimization(์ต์ ํ) ๊ธฐ๋ฅ์ ํ๋ ์๊ณ ๋ฆฌ์ฆ์ ๋งํ๋ค.
Optimization์ด๋?
- ์ด๋ค ์ ์ฝ์กฐ๊ฑด์ด ์์ ์๋ ์๋ ์ํฉ์์ ํจ์์ ์ต๋์น์ ์ต์์น๋ฅผ ์ฐพ๋ ๊ฒ์ด๋ค.
- ์ต์ ํ๋ฌธ์ ๋ ์์(๋ฉ๋ชจ๋ฆฌ, ์๊ฐ ๋ฑ)์ ํ๊ณ ๋ด์์ ๊ฐ๋ฅํ ํ ์ต์ ์ ๊ฐ์ ์ฐพ์๋ด๋ ๊ฒ์ด๋ค.
์ต์ ํ ๊ณผ์
{: .center}
- ํ๋ จ์ธํธ์์ Neural Network๋ฅผ ๊ฑฐ์ณ Output์ ์ฐ์ถํ๋ค.
- Output๊ณผ ์ค์ ๊ฐ ์ฌ์ด์ Loss Function์ ์ ์ํ๊ณ Loss๊ฐ์ ๊ตฌํ๋ค.
- Loss๊ฐ์ ์ค์ฌ์ฃผ๋ Gradient๋ฅผ ๊ตฌํ๊ณ Weight์ ์ ๋ฐ์ดํธ ํด์ค๋ค.
- 1~3๊ณผ์ ์ ๋ฐ๋ณตํ์ฌ ์ฃผ์ด์ง ์์ ๋ด์์ ์ต์ ์ ๊ฐ์ ์ฐพ์๋ธ๋ค.
โ ์์ ๊ณผ์ ์ ์ต์ ํ ๊ณผ์ ์ด๋ผ ํ๋ค.
Optimizer ์ข ๋ฅ
{: .center}
Gradient Descent (๊ฒฝ์ฌํ๊ฐ๋ฒ)
- ๊ฐ์ฅ ๊ธฐ๋ณธ์ด ๋๋ Optimizer์ด๋ค.
- ๊ฒฝ์ฌ๋ฅผ ๋ฐ๋ผ ๋ด๋ ค๊ฐ๋ฉด์ Weight๋ฅผ ์ ๋ฐ์ดํธํด ์ต์๊ฐ์ ์ฐพ๋ ๋ฐฉ์์ด๋ค.
Gradient Descent ํ์ด์ง ์ฐธ๊ณ
- ์ ๋ฐ์ดํธ ๊ฐ์ ํ์ต๋ฅ ๊ณผ gradient์ ๊ณฑ์ผ๋ก ์ด๋ฃจ์ด์ง๋ค.
๋จ์
-
Global Minima, Local Minima ๋ฌธ์ ๊ฐ ๋ฐ์ํ๋ค.
-
Saddle Point(์์ฅ์ ) ๋ฌธ์ ๊ฐ ๋ฐ์ํ๋ค.
Momentum
- Global Minima๋ฅผ ๊ตฌํ๊ธฐ ์ํด์ ๊ด์ฑ์ ๋ฒ์น์ ์ ์ฉ์ํจ Optimizer์ด๋ค.
Local Minima์ ๋น ์ก์ ๋ ์ด์ ์ ๋จ์ด์ง๋ ์๋๋ฅผ ์ด๋ ค ๋น ์ ธ๋๊ฐ๋ณด์! ๋ผ๋ ์์ด๋์ด๋ฅผ ๊ฐ๋๋ค.
- SGD์ Momentum์ ํฉ์ณ์ ์ ์ฉ์ํจ๋ค.
{: width=โ600โ}{: .center}
์ถ์ฒ : https://ratsgo.github.io/deep learning/2017/04/22/NNtricks/
- ๋ง์ฐฐ๋ ฅ์ ์๋ฏธํ๋ค. ์ผ๋ฐ์ ์ผ๋ก 0.9 ๋๋ 0.99์ ๊ฐ์ ์ด์ฉํ๋ค. - gradient์ ์ด์ ์๋๊ฐ์ ์ ์๋ ๋ฐ์์์ผ Momentum์ ๊ตฌํ๋ค.
- Momentum์ ํ์ต๋ฅ ์ ์ ์ฉ์์ผ ์ ๋ฐ์ดํธ ์ํจ๋ค.
์ถ์ฒ : CS231n Lecture7 Training Neural Net 2
Nesterov Momentum
-
Momentum์ ๊ฒฝ์ฐ ํ์ฌ ์์น์์ gradient์ ๊ธฐ์กด์ ๊ฐ์ง๊ณ ์๋ momentum์ ํฉ์น Optimizer์ด๋ค.
-
Momentum์ ์๋ ๊ทธ๋ฆผ์ -10์์ ์ธ๋์ ๋ด๋ ค๊ฐ๋ ๊ณต์ด๋ผ ๋น์ ํด๋ณด์.
Momentum์ ์ญ์ผ๊ฐํ์ ๊ฑฐ์ณ ์ธ๋์ ๋ค ๋ด๋ ค๊ฐ๊ณ ๋์ ์ต์ ์ ์ธ 0์ ์ง๋ ๋ค์ ์ฌ๋ผ๊ฐ๋ค ์๋๋ฅผ ์ค์ด๋ฉฐ ๋ค์ ์ต์ ์ ์ผ๋ก ํฅํ๋ค.
{: width=โ400โ}{: .center}
-
Nesterov Momentum์ ์ฌ๋ผ๊ฐ๋ค ๋ค์ ๋ด๋ ค์ค์ง ๋ง๊ณ ๋ฏธ๋ฆฌ ์๋๋ฅผ ์ค์ด์๋ ์์ด๋์ด๋ฅผ ๊ฐ๋๋ค.
Nesterov Momentum์ ๋ฏธ๋ ์์น๋ฅผ ์ถ์ ํ์ฌ ๊ทธ ์์น์์ ๊ธฐ์ธ๊ธฐ๋ฅผ ๊ตฌํ๋ค.
- ํ์ฌ momentum๊ณผ ์์น๋ฅผ ํฉ์น ๋ฏธ๋ ์์น๋ฅผ ์ฐพ์ gradient๋ฅผ ๊ตฌํ๋ค. (ํ ๊ฑธ์ ๋ฏธ๋ฆฌ ๊ฐ๋ณธ ์์น์ gradient)
- ๊ตฌํ gradient๋ฅผ ํ์ฌ momentum๊ณผ ๋นผ์ momentum์ ์ ๋ฐ์ดํธํ๋ค.
- momentum๊ณผ์ ํฉ์ผ๋ก ๋ฏธ๋ ์์น๋ฅผ ์ ๋ฐ์ดํธํ๋ค.
{: width=โ600โ}{: .center}
Adagrad(Adaptive Gradient)
- ์ ์์ ์ผ๋ก Gradient๋ฅผ ์ ์ฉํ๋ ๊ฒ์ learning rate์ ๋ฐ๋ผ์ ์กฐ์ ํ๋ Optimizer์ด๋ค.
- ์ง๊ธ๊น์ง ๋น๊ต์ ๋ง์ด ์ ๋ฐ์ดํธ๋ ๋ณ์๋ ์ ๊ฒ, ์ ๊ฒ ์ ๋ฐ์ดํธ๋ ๋ณ์๋ ๋ง์ด ์ ๋ฐ์ดํธํ๋ ์์ด๋์ด๋ฅผ ๊ฐ๋๋ค.
: t์์์ gradient : t๊น์ง ์ ๋ฐ์ดํธ๋ ์ด๋ - ์ด์ gradient์ ์ ์ฉ์ ๊ณ์ ์ถ์ ์์ผ ๋ฃจํธ๋ฅผ ์์ ๋ถ๋ชจ๋ก ๋์ด ๊ณ์ฐํ๋ค.
- ์ด์ ๊น์ง ์ ๋ฐ์ดํธ๋ ์ด๋์ด ํฌ๋ค๋ฉด ๋ถ๋ชจ๊ฐ ์ปค์ ธ ์ ๋ฐ์ดํธํ๋ ์์ด ๊ฐ์ํ๊ณ ๋ฐ๋ณต์ด ๊ณ์๋ ์๋ก G๊ฐ ๊ณ์ ์ฆ๊ฐํ๋ฉด์ ๊ฐ์ค์น ๋ณํ์ ๋๊ฐ ๋งค์ฐ ์์์ง๋ค.
RMSProp
Adagrad์ ๋จ์ ์ ๋ณด์ํ optimizer๋ค. Adagrad์ ๊ฒฝ์ฐ gradient๋ฅผ ์ ๊ณฑํด ๋์ ํ๊ณ ์ ๋ฐ์ดํธ๊ฐ ๊ณ์๋ ์๋ก ์ ๋ฐ์ดํธ ํฌ๊ธฐ๋ 0์ ์๋ ดํ๋ค. ์ด๋ฅผ RMSProp์ ๊ณผ๊ฑฐ๊ฐ์ ๋ฐ์์ ์ ์ฐจ ์ค์ด๊ณ ์ต๊ทผ๊ฐ์ ๋ฐ์์ ๋์ด๋ **์ง์์ด๋ํ๊ท (Exponential Moving Average)**์ ์ด์ฉํ์ฌ ๋ณด์ํ๋ค.
- ๋์ ๋ ์ ๋ฐ์ดํธ์ ์ด๋๊ณผ ์ต๊ทผ ์ ๋ฐ์ดํธํ ์์ ๊ณ ๋ คํด ๊ฐ์ค์น๋ฅผ ์กฐ์ ํ๋ค.
: ์ด๋ค ๊ฐ์ ๋ ๊ณ ๋ คํ ์ง ์กฐ์ ํ๋ค. : ํ์ต๋ฅ : ๋ถ๋ชจ๊ฐ 0์ด ๋๋ ๊ฒ์ ๋ฐฉ์งํ๊ธฐ ์ํ ๊ฐ - ์ง๊ธ๊น์ง ์ ๋ฐ์ดํธํ ๋์ ์๋ ๊ณ ๋ คํ์ง๋ง ์ต๊ทผ ์ ๋ฐ์ดํธํ ์์ ๋ ๋ง์ด ๊ณ ๋ คํ๋ค.
๋ก ๋๋ ์ฃผ๋ฉด์ gradient์ ํฌ๊ธฐ๋ฅผ ๊ณ ๋ คํด ํธํฅ๋์ด ํ์ํ์ง ์๋๋ก ํ๋ค.(ํ์คํํ์ฌ ๊ณตํํ๊ฒ ํ์ํ๋ค.)
Adam(Adaptive Moment Estimation)
- RMSProp + Momentum์ ํํ๋ก ๋ ์๊ณ ๋ฆฌ์ฆ์ ์ฅ์ ์ ๋ชจ์ ๋ง๋ Optimizer์ด๋ค.
- ๊ฐ์ฅ ํํ๊ฒ ์ด์ฉ๋๋ค.
- Adam์ ๋ํด ์ ์ค๋ช ํด๋์ ๋ธ๋ก๊ทธ๊ฐ ์์ด ์ฒจ๋ถํ๋ค. (์ถํ ์ ๋ฆฌ)
- https://velog.io/@yookyungkho/๋ฅ๋ฌ๋-์ตํฐ๋ง์ด์ -์ ๋ณต๊ธฐ๋ถ์ -CS231n-Lecture7-Review