๐ ๋ณธ ๋ด์ฉ์ Michigan University์ 'Deep Learning for Computer Vision' ๊ฐ์๋ฅผ ๋ฃ๊ณ ๊ฐ์ธ์ ์ผ๋ก ํ๊ธฐํ ๋ด์ฉ์
๋๋ค. ๋ด์ฉ์ ์ค๋ฅ๋ ํผ๋๋ฐฑ์ด ์์ผ๋ฉด ๋ง์ํด์ฃผ์๋ฉด ๊ฐ์ฌํ ๋ฐ์ํ๊ฒ ์ต๋๋ค.
(Stanford์ cs231n๊ณผ ๋ด์ฉ์ด ๊ฑฐ์ ์ ์ฌํ๋ ์ฐธ๊ณ ํ์๋ฉด ๋์ ๋์ค ๊ฒ ๊ฐ์ต๋๋ค)๐
0. ์ด์ ์๊ฐ + ํ๋ฆ
- Loss function์ข
๋ฅ
- cross entropy loss
- SVM loss
- Full loss : regularizaton ๋ํ loss
- ์ ์ฒด ํ๋ฆ
- w์ xi, yi๋ก ๊ฐ๊ฐ์ ๋ํ ์ ์ ๋ด๊ณ โ f(xi,w) โ ๊ฐ class๋ณ loss๊ณ์ฐ (์ด๋ regularization์ผ๋ก ๊ณผ์ ํฉ ๋ฐฉ์ง)
- ์ด๋ฒ ๊ฐ์ = train data์ ๋ง๊ณ , loss ์ต์ํ ํ๋ W๊ฐ ์ฐพ๋ ๋ฐฉ๋ฒ ๊ตฌํ๊ธฐ!
1. Optimization
1) ๊ฐ๋
2) ํน์ง
- optimization์ ์ง๊ด์ ์๊ฐ (= ๋งค์ฐ ํฐ ๊ณ ์ฐจ์ ํ๊ฒฝ ๊ฐ๋ก์ง๋ฅด๊ธฐ)
- (x,y)point = W height = Loss๊ฐ
- ์ ์ผ ์ข์ ๋ฐฉ๋ฒ: ์ ๋ต ์๊ธฐ โ๋์ โ๋ฐ๋ณต์ ๊ฐ์ (๋งจ ์๋๋ก ์ด๋)
3) Idea
a. Idea#1 : Random Search (๋งค์ฐ ๋ณ๋ก)
-
๋ฐฉ๋ฒ
-
weight ํ๋ ฌ์ random๊ฐ์ผ๋ก ์์ฑ
โ ๊ฐ๊ฐ์ ๋ํ loss๊ตฌํ๊ธฐ
โ ์ ์ฒด ์ถ์
โ ๊ฐ์ฅ ๋ฎ์ loss์ฐพ๊ธฐ
-
๊ฐ์ฅ loss๊ฐ ์์ W๋ก input๊ณผ ๋ด์ ํด์ score์ป๊ธฐ
โ ์ป์ ์ ์๋ค ์ค ์ ค ํฐ์ ๋ฅผ predict๊ฐ์ผ๋ก ์ค์
โ ์ ํ๋ ๊ณ์ฐ(์ต์ข
์์ธก ์ ์)
b. Idea#2 : Follow the Slope
-
๋ฐฉ๋ฒ
- ๋ฎ์ ๊ธฐ์ธ๊ธฐ ๋ฐ๋ผ๊ฐ๊ธฐ โ ๊ณ์ ๋ฐ๋ผ๊ฐ๋ค๋ณด๋ฉด โ ๊ฐ์ฅ ๋ฎ์ ์ง์ ์ ๋๋ฌ ํ ๊ฒ
-
1์ฐจ์ ๋ํจ์
- input & output ๋ชจ๋ single scalar
- ๋ฏธ๋ถ ์ ์ ๊ฐ๋ฅ
- ์ด๋ ์ง์ ์์ ๋ค ๊ธฐ์ธ๊ธฐ ์์ O
- dL/dw๊ฐ์ ์์์ผ๋ก ์ ์ฒด loss์ ๋ํ w์ ๋ฏธ๋ถ๊ฐ ๊ตฌํ๊ธฐ
-
๋ค์ฐจ์ ๋ํจ์
- input: vector, output: scalar
- ์ฌ๊ธฐ๋ก ๊ฐ๋ฉด ๋ด๋ ค๊ฐ ์ ์๋ค๋ ๊ฐ์ฅ ํฐ ๊ฐ์ ๋ฐฉํฅ ์์ O
- gradient ํฌ๊ธฐ=๊ฒฝ์ฌ์ ๋ฐฉํฅ ์๊ณ ๋ฆฌ์ฆ
* Numeric Gradient (๊ทธ๋ฅ ๊ธฐ์ธ๊ธฐ ๋ฒกํฐ)
ex. ์์์ ์
๋ ฅ ๊ฐ์ ๋ํ ๊ธฐ์ธ๊ธฐ ์ด์ผ ๊ณ์ฐํ๋์ง ํ์ธ
- ๊ฐ์ค์น ํ๋ ฌ์ ํ ์์๋ฅผ ์กฐ๊ธ๋ง ๋ณ๊ฒฝ โ ๊ธฐ์ธ๊ธฐ ์ ์ O
= W์ ํ๋์ ๊ฐ์ ๋ณํ์์ผฐ์๋, ์ ์ฒด loss ๋ณํจ
ex. ์์ ๋ํ ์์
- ํน์ง
- ์์ ๊ฐ์ด ํ๋์ฉ ๋ฐ๋ณตํด์ ๊ตฌํ๋ ๋ฐฉ๋ฒ
- ๋จ์
- ๋งค์ฐ ๋๋ฆผ (์ต๋ ์์ต๊ฐ์ data๋ฅผ train์ํจ๋คํ๋ฉด, ๋งค์ฐ ๋น์ค์ฉ์ )
- ์ ํX, ๊ทผ์ฌ์นO
* Analytic Gradient (back prop)
- ํน์ง
- (๊ฐ๊ฐ ๋ฐ๋ณตํ์ง ์๊ณ ) ์ํ์ ์ผ๋ก ์์ ํ ๋ฏธ๋ถ ๊ฐ๋จํ ํจ
- (๋ฒกํฐ ๋ฏธ์ ํ์ ๋ฐ๋ผ) W์ ๋ํด ์ ํํ gradient์ ๋ํ ์ํ์ ๋ถ์ , ํํ์ ์์ฑ ๊ฐ๋ฅ
* ๋ Gradient ๋ฐฉ๋ฒ ๋น๊ต (์ค์ ๋ก ๋๋ค ์ฌ์ฉ)
2. Vanilla Gradient Descent (Full batch)
๐ฅ Full batch
: ๋ฐฉํฅ์ด optimal ํจ (full batch์ฌ์)
: ๊ธฐ์ธ๊ธฐ (gradient)ํ์ฉํ์ฌ Loss์ ์ต์๋ฅผ ๊ตฌํ๋ ์๊ณ ๋ฆฌ์ฆ
: L(w)์ ๊ฐ์ฅ ๋ฎ์ ์ ์ gradient negativeํ ๋ฐฉํฅ์ ๋ฐ๋ผ๊ฐ๋ ์๊ณ ๋ฆฌ์ฆ
(gradient negative๋ผ๊ณ ํํํ ์ด์ : )
1) Vanilla gradient descent
a. ์ ์ฒด ๋ฐฉ๋ฒ (์์คํจ์ ์ต์ ํ ์ํ ๋ฐฉ๋ฒ)
- ๊ฐ์ค์น ์ด๊ธฐํ โ ์ผ์ ๋ฐ๋ณตํ์๋์ ๋ฃจํ ์งํ โํ์ฌ ์์น์์ dw(๊ธฐ์ธ๊ธฐ) ๊ณ์ฐ โ ์์ gradient๋ฐฉํฅ์ผ๋ก ์ด๋ํ๋ฉฐ w update (-์ธ ์ด์ : ๋ด๋ ค๊ฐ๋ ๋ฐฉํฅ ์ฐพ์์ผํด์(gradient negative))
b. ํ์ดํผํ๋ผ๋ฏธํฐ
(KNN๊ณผ ๋ฌ๋ฆฌ ์ค์ ์กฐ์ ๋ง์ดX, NN์์ ์ข์ or ๋์ ์ญํ ํ ์๋)
- Weight initialization method: random value (๋งค์ฐ ์ค์)
- number of steps (๋ช๋ฒ ๋๋ฆด๊ฑด์ง)
- stopping๊ธฐ์ค์ด ์ฌ๋ฌ๊ฐ ์์ง๋ง, ๋ฅ๋ฌ๋์์ ๊ทธ๋ฅ ๊ณ ์ ๋ ์๋งํผ ๋ฐ๋ณต
- ๋ฐ๋ผ์ ์์ฐ or ๊ธฐ๋ค๋ฆด์์๋ ์๊ฐ์ ์ํด ์ ์ฝ๋จ
- Learning Rate (=step size)
- ์ด gradient๋ฅผ ์ผ๋ง๋ ์ ๋ขฐํ ์์๋๊ฐ
- (LRํฌ๋ฉด) ์ ๋ขฐ๋ง์ด ํ๋ฉด โ ๋ณดํญ ํฌ๊ฒ ๋์ถฉ ํ์ธ
- (LR์์ผ๋ฉด) ์ ๋ขฐ ๋ง์ด ์ํ๋ฉด โ ๋ณดํญ ์๊ฒ ์ธ๋ฐํ๊ฒ ํ์ธ
- ์ฐ๋ฆฌ๋ ์ต๋ ๊ฐ์๋ฐฉํฅ์ ์ผ๋งํผ์ ๋ณดํญ์ผ๋ก ๋ด๋ ค๊ฐ๊ฒ ํ ๊ฑด์ง ๊ฒฐ์
- ๋์ network๊ฐ ์ผ๋งํผ์ ๋น ๋ฅด๊ธฐ๋ก ํ์ตํ ๊ฑด์ง
- LR๋์ผ๋ฉด โ ์๋ ด์๋ ๋น ๋ฆ
- LR๋ฎ์ผ๋ฉด โ ์๋ ด์๋ ๋๋ฆผ
c. ๊ทธ๋ฆผ์ผ๋ก ์ดํดํ๊ธฐ(1) - Direction of greatest decrease of Loss function
- ํด์
- negative gradient๊ณ์ฐ โ ์ต๋ ๊ฐ์ ๋ฐฉํฅ์ชฝ์ผ๋ก ์ฝ๊ฐ์ step size์ทจํ๊ณ โ ๋ฐ๋ณต์ ์ผ๋ก ๋ด๋ฆฌ๋ง๊ธธ ๋ด๋ ค๊ฐ
d. ๊ทธ๋ฆผ์ผ๋ก ์ดํดํ๊ธฐ(2) - taco ๋ชจ์
- ํด์
- taco ๊ทธ๋ฆ ๋ชจ์์ด๋ผ ๋ฐ๋ฅ์ผ๋ก ๊ณง์ฅ ์๊ฐ
- ๋น์ค๋ฌํ ๊ธฐ์ธ์ฌ์ ธ ์์
- ์์ผ๋ก ๊ณก์ ๊ทธ๋ฆฌ๋ฉฐ ๊ทธ๋ฆผ ์๋ซ์ชฝ์ผ๋ก ๋์์ด
- ๋งค์ฐ ๋น ๋ฅด๊ฒ ์์
- (dw์ LR๊ณฑํ ์ด์ )
- gradient ํฌ๊ธฐ ๋ฐ๋ผ ๋ ํฐ LR(step size)์ทจํ ์๋ ์์
- ๊ทธ๋ฆ์ ๋ฐ๋ฅ์ ์ ๊ทผํ ์๋ก ์์คํจ์ ํ๋ฉด ํํํด์ง๊ณ , gradientํฌ๊ธฐ ์ค์ด๋ค๊ฒ ํด์ผ๋ผ์
- (๊ทธ๋์ LR์ ํ๋ผ๋ฏธํฐํ ํ๋๊ฑฐ โ ํ์ต์์ผ์ ๋ณ๋๋๊ฒ ํ๋ ค๊ณ )
- ์๊ณ ๋ฆฌ์ฆ์ด ํํํ ์์ญ(=์์คํจ์ ์ต์๊ฐ)์ ์ ๊ทผ์ ์์ฐ์ค๋ฝ๊ฒ ์๋ ๊ฐ์(step size ๊ฐ์) ๋์ด LR๋ ์ค์ด๋ค๊ฒ ํ๋ ค๊ณ
2)(Full) Batch Gradient Descent ์์
- ํด์
- ์ฒซ๋ฒ์งธ ์
- ํ๋์ example์์ ์ฐ๋ฆฌ ๋ถ๋ฅ๊ธฐ๊ฐ ์ผ๋ง๋ ์ ์ํ?
- W๋ก ์ ์ ๊ตฌํ๊ณ , ํ๋ฅ ํํด์ L(W)๊ตฌํ๊ธฐ
- ๋๋ฒ์งธ ์
- (Gradient๊ฐ ์ ํ์ด์ฌ์) gradient๋ ๊ฐ๋ณ example์ ํฉ
- ๋ชจ๋ sumํ๋ฉด ๋๋ฌด ์ปค์ ธ์ ๊ณ์ฐ๋น์ฉ ๋ง์์ง
(ex. N=1000๋ง์ด๋ฉด, ๊ฐ๊ฐ์ Li ์ ๋ถ ๊ตฌํด์ ๋ํด์ผ๋จ)
โ N์ด ์์ฒญ ํด๋ ์คํ๊ฐ๋ฅ์ฑ X
โ> ํด๊ฒฐ: Stochastic Gradient Descent (SGD)
3. Stochastic Gradient Descent (Mini batch)
๐ฅ์์ฒญ ํฐ N์ ๋ํด์๋ ํ์ต ๊ฐ๋ฅํด์ง_minibatch
1) ๊ฐ๋
- ๋ฐฉํฅ์ด optimal ํ์ง X (full batch์๋์ฌ์)
- ์ ์ฒด์ ๋ํ ์์ sub sample (mini batch)๋ก ์์คํจ์๋ฅผ ๊ทผ์ฌํ๊ณ , gradient๋ฅผ ๊ทผ์ฌํจ
- ์ ์ฒด dataset์ ๋ํ loss ๊ณ์ฐ ๋์ , dataset์์ ์์ minibatch๋ฅผ samplingํ๊ฑธ๋ก ๋ค์ ๊ธฐ์ธ๊ธฐ ๊ณ์ฐํ๋๋ก ์์ ์ ์ฒด ๋ฐฐ์น์์ ํ๋ฅ ์ ์ผ๋ก ๋ฏธ๋๋ฐฐ์น ์ ์
2) ๋ฐฉ๋ฒ
3) ํ์ดํผํ๋ผ๋ฏธํฐ
- ์์ 3๊ฐ - ๊ธฐ์กด์ ์๋๊ฑฐ
- Batch size: ๊ฐ mini batch์ ๋ช ๊ฐ์ ์์๋ค์ด ์๋๊ฐ
- ๋ณ๋ก ์ค์X
- (GPU๋ฉ๋ชจ๋ฆฌ๊ฐ ๊ฐ๋นํ ๋งํผ) ์ต๋ํ ํฌ๊ฒ ๋ง๋ค๊ธฐ (GPU์ฌ๋ฌ๊ฐ & ์ฌ๋ฌ ์์คํ
์ด๋ฉด ์์ฒญ ํฌ๊ฒ batch sizeํด๋๋จ)
- Data Sampling๋ฐฉ๋ฒ
- ์ด๋ฏธ์ง ๋ถ๋ฅ์์๋ ๊ฑฐ์ ์๋ค๋ฃธ (๊ตฌ์กฐํ๋ ์์ธก, ์ผ์คํญ ์ผ์น, ์์ ๋ฌธ์ โ ์ฌ๊ธฐ์ ์ค์ํ ์O)
- ์ต์ข
๊ฒฐ๊ณผ์ ์ค์์ํฅX
4) Stochastic์ธ ์ด์
- Loss function์ ํ๋ฅ ์ ์ผ๋ก ๋ณด๊ธฐ ๋๋ฌธ (์ด๋ป๊ฒ ํ๋ฅ ์ ์ผ๋ก ๋ณด๋์ง?)
5) SGD์ ๋ฌธ์ ์
-
Q1) (์๋์ ๊ฐ์ ์ํฉ๊ฐ์ด) ํ ๋ฐฉํฅ์ผ๋ก ๋งค์ฐ ๋น ๋ฅด๊ฒ ๋ณํ or ๋งค์ฐ ๋๋ฆฌ๊ฒ ๋ณํ์, Gradient Descent์ ์ด๋ ํ ๋ฌธ์ ๊ฐ ๋ฐ์ํ๋๊ฐ?
A) (๊ฒฐ๋ก ) ์ ์ฐจ์์์๋ ๋งค์ฐ ๋๋ฆฌ๊ณ , ๊ฐํ๋ฅธ ๋ฐฉํฅ์์๋ ๋ถ์์ ํ๊ฒ ์ง๋ํ๋ค.
-
Stepsize๊ฐ ๋๋ฌด ํฌ๋ฉด โ step์ด ์ง๋ํจ
โ gradient๊ณ์ฐ์, ๋น ๋ฅด๊ฒ ์์ง์ด๋ ์ฐจ์์์ overshootํ ์ ์์
โ overshoot์์ ํ๊ณ ๋ค๋ฅธ ๋ฐฉํฅ์ผ๋ก ๋ค์ ๋์์์ผ ํจ
โ ์ง๊ทธ์ฌ๊ทธ ํจํด ์ ๋ฐ
โ ์ต์๊ฐ์ผ๋ก ์ง๊ทธ์ฌ๊ทธ ์ด๋ํ๋ฉด ์๋ ด์๋ ๋ฎ์์ง
-
(์ ์ถฉ์) stepsize ์ค์ด๊ธฐ โ overshoot ์ง๊ทธ์ฌ๊ทธ๋ ํผํ ์์์ง๋ง ์๋ ด์๋ ๋ฎ์์ง
=โ (๋ฌธ์ ์ ) taco๋ชจ์์ฒ๋ผ ํ์ชฝ์ ๋นจ๋ฆฌ ๋ณํ๊ณ , ํ์ชฝ์ ๋๋ฆฌ๊ฒ ๋ณํ๋ฉด stepsize๊ฐ ํฌ๋ ์๋ ์ด์จ๋ ๋ฌธ์ ๋ฐ์ํจ(gradient๊ฐ ์ฐจ์ด๊ฐ ๋งค์ฐ ํผ)
-
(ํด๊ฒฐ์ฑ
) condition number๋ฎ์ถ๊ธฐ โ ํค์์ ํ๋ ฌ ์กฐ์ or ์ต์ ํ ์๊ณ ๋ฆฌ์ฆ ์กฐ์ (=์๋ ด์๋ ๋์ผ์์์)
-
*(๊ธฐ์กด ๋ฌธ์ ์ ) Loss function์ high condition number์ ๊ฐ์ง๊ณ ์์*
= ํค์์ ํ๋ ฌ์ (๊ฐ์ฅ ํฐ ํน์ด๊ฐ & ๊ฐ์ฅ ์์ ํน์ด๊ฐ ๊ฐ ๋น์จ์ด ํผ) =high condition number
: ์์คํจ์์ ๋ฏธ๋ถ๊ฐ๋ค๋ก ๊ตฌ์ฑ๋ ํ๋ ฌ, ์ต์ ํ ์๊ณ ๋ฆฌ์ฆ์์ ์ฌ์ฉ
: ํค์์ํ๋ ฌ ํน์ด๊ฐ = ํ๋ ฌ์ ์ค์ผ์ผ๋ง ์ ๋ณด
= ํค์์ ํ๋ ฌ์ ์ค์ผ์ผ๋ง ์ฐจ์ด๊ฐ ํผ (taco๋ชจ์์ ํ์ชฝ์ ๊ฐํ๋ฅด๊ณ , ํ์ชฝ์ ํํ)
: ์ต์ ํ ์๊ณ ๋ฆฌ์ฆ์ด Gradient Descent๋ณด๋ค ์๋ ด์๋ ์์
: Gradient Descent๊ฐ ํจ์จ์ ์๋X โ ์๋ ด์๋ ๋ฎ์์ง
-
Q2) loss function์ด local minimum or saddle point์ ์๊ฒ ๋๋ฉด ๋ฐ์๋๋ ๋ฌธ์ ์ ๊ทธ ํด๊ฒฐ์ฑ
?
A) (๊ณตํต ๋ฌธ์ ์ ) zero gradient, gradient descent gets stuck - ๊ณ ์ฐจ์์ผ์๋ก ๋ ์์ฃผ ๋ฐ์ (์ด์ : ์ด๋ค ํ ๊ณณ์ ์ฆ๊ฐ, ๋ค๋ฅธ ๊ณณ์ ๊ฐ์ํ ๋ถ๋ถ์ด ๋ ๋ง์ํ
๋๊น)
-
local minimum : ํจ์ ๊ธฐ์ธ๊ธฐ=0์ด์ง๋ง, ์ค์ ๋ก๋ ์ต์ ์ ์ด ์๋
-
saddle point: ๊ณ ์ฐจ์ ์ต์ ํ์์ ๋ ์์ฃผ ๋ฐ์, ํ๋ฐฉํฅ ์ฆ๊ฐ, ๋๋จธ์ง ํ ๋ฐฉํฅ ๊ฐ์
(์์ฅ์ ๋ ๊ธฐ์ธ๊ธฐ =0)
- Q3) ๋ชจ๋ ๋จ๊ณ์์ updateํ๋๋ฐ ์ฌ์ฉํ๋ ๊ธฐ์ธ๊ธฐ๊ฐ ๊ฐ๋ ค๋ ๋ฐฉํฅ์ผ๋ก ๊ณง์ฅ ์๊ฐ(ํ๋ฅ ์ ๋ถ๋ถ)
A) ๋ช
ํํ ๊ฐ์ด ์๋๊ณ ๊ทผ์ฌ์น์ด๊ธฐ ๋๋ฌธ์ ์ก์์ด ๋ง์์๋ฐ์ ์์ โ ์๋ ด ์๊ฐ ์ค๋๊ฑธ๋ฆผ
4. SGD + Momentum
๐ฅ์๋ ์ฒจ์ผ๋ก ๊ฐ์ง โ local minma, ์ก์ ๊ทน๋ณต_v, rho
1) ๊ธฐ์กด SGD
- ํด์
- ๊ฐ์ค์น ์ด๊ธฐํ ์๋ต(๋ชจ๋ ์๊ณ ๋ฆฌ์ฆ ๊ณตํต ๊ธฐ์ด๋ผ์)
2) ๊ฐ๋
- SGD๋ง ์ฌ์ฉํ์๋์ ๋ฌธ์ ์ (์ง๋ํ๋ ๋ฌธ์ , local minima, saddle point) ๊ทน๋ณต ์ํด Momentum๊ณผ ํจ๊ป ์ฌ์ฉ
- ๊ณผ๊ฑฐ์ ๋ฐฉํฅ ๊ธฐ์ตํ์ฌ ํ์ฌ ๋ฐฉํฅ์ ๋ฐ์
- ์ด์ ์ด๋๊ฐ ๊ณ ๋ คํ์ฌ ์ผ์ ๋น์จ๋งํผ๋ง ๋ค์๊ฐ ๊ฒฐ์ (๊ด์ฑ ํจ๊ณผ)
- ๋ณ์๋ฅผ ๊ฐ๋ ๋ฐฉํฅ์ผ๋ก ๊ณ์ ๊ฐ๊ฒ ํจ
- ๊ฐ์ ๋ฐฉํฅ ์ด๋์, ๋ ๋ง์ด ๋ณํ โ ํ์ต ์๋ ๋นจ๋ผ์ง
- ์ค๋ฅธ์ชฝ ํด์
- dw = w์ gradient๊ณ์ฐ
- (๋ฐฉํฅ์ก๊ธฐ) v(์๋)=rho(๋ง์ฐฐ๊ณ์ <1: ๊ณผ๊ฑฐ ์๋๊ฐ rho๋ก ์ธํด ์กฐ๊ธ์ฉ ๋ ๋ผ๊ฐ) + dw โ v(ํ์ฌ์๋)์ gradient(dw) ๋์ ๋๋ฉด์, rho๋ก ์ธํด ๊ณผ๊ฑฐ gradient ์ํ์ง
- (๊ทธ ๋ฐฉํฅ์ผ๋ก ์ผ๋งํผ ๊ฐ์ง) ํ์ฌ ๋ฐฉํฅ์ผ๋ก ์ผ๋งํผ์ ๋ณดํญ์ผ๋ก ๊ฐ๊ฑด์ง์ ๋ฐ๋ผ w update์ํด
3) SGD์ ๋ฌธ์ ์ ๋ค์ Momentum์ด ํด๊ฒฐํ ๋ฐฉ๋ฒ๋ค
a. local minima, saddle point, poor conditioning, gradient noise
- local minima, saddle point
- v๋ก ์ธํด ์๋๋ฅผ ์ฌ์ ํ ๊ฐ์ ธ์, local minima์ ๊ฐํ์ง ์๋๋ก
- poor conditioning
- gradient noise
- SGD(๊ฒ) : ๋ชจ๋ ์ง์ ์์ random noise์ถ๊ฐ๋จ
- SGD + Momentum (ํ)
- ๋์ผ sequence of gradient update
- noise ๋ถ๋๋ฝ๊ฒ
- ๋ชฉํ์ ๋ ์ง์ ์ ๊ฒฝ๋ก
4) Momentum update (v update)
- ๊ฐ๋
- velocity: ๋ฐฉํฅ ์ ๊ณต ( train์์ gradient์์ ๊ณผ๊ฑฐ ํ๊ท )
- gradient: ์๊ฐ ๋ณํ์จ
- ํ์ฌ ์
๋ ฅ๊ฐ (๋นจ๊ฐ์ )์์ ๊ตฌํ gradient์ velocity๋ํ์ฌ ๋ค์ v(step) ๊ตฌํจ
5. Nesterov Momentum
1) ๊ฐ๋
- ๊ธฐ์กด๊ณผ ์์๋ง ๋ค๋ฆ
- ๋ฏธ๋๋ฅผ ๋ณด๊ณ gradient ๋ฐฉํฅ์ด ์ด๋จ์ง ๊ณ์ฐ
- convex function(๋ณผ๋กํจ์) ์ฑ๋ฅ good, but ๊ณ ์ฐจ์ ํจ์์์ ์ฑ๋ฅ bad
- ํ์ฌ ์
๋ ฅ๊ฐ์์ velocity๋งํผ ์ด๋ ํ, gradient๊ตฌํ๊ณ ์ด๋ฅผ ๋ํ์ฌ step ๊ตฌํ๊ธฐ
2) ์ํ์ ํํ
- ํด์
- xt + pvt = ํ์ฌ ์
๋ ฅ๊ฐ + rho*v
- ๋ฏธ๋ฆฌ ๊ธฐ์ธ๊ธฐ ๊ณ์ฐ
= v๋ฐฉํฅ์ผ๋ก ๊ฑธ์ด๊ฐ๋์ gradient
= ๊ฑฐ๊ธฐ์ gradient ๊ณ์ฐ
3) ๊ทธ๋ฆผ์ผ๋ก ๋น๊ต
- ๊ณตํต์
- ์์์์ overshootํ๊ณ ๋ค์ ๋์์ด (v๋ฅผ ๊ณ์ ๋์ ํจ์ ๋ฐ๋ผ ํฐ ์๋ ์ป๊ฒ๋จ)
- train process ๊ฐ์ํ (์๊ฐ ์ง๋จ์ ๋ฐ๋ผ ์๋ ๋ฒกํฐ ๊ตฌ์ถํด์ ์ด์ผ๋ ๋นจ๋ฆฌ ์์ง์ด๊ธฐ ๊ฐ๋ฅ) โ ์๋ ๋ฆ์ถ๊ณ , ๋์ ํฅํด ์๋ ดํ๋๋ก
6. Adagrad
๐ฅLR(step) ์กฐ์ ๊ฐ๋ฅ_grad_squared
1) ๊ฐ๋
- ๊ฐ๊ฐ์ ๋งค๊ฐ๋ณ์์ ๋ง๊ฒ ๋ง์ถคํ ๋งค๊ฐ๋ณ์ ๊ฐฑ์ ์๊ณ ๋ฆฌ์ฆ
- adaptive๋ก ํ์ต๋ฅ (LR, step size) ์กฐ์ (w์
๋ฐ์ดํธ์, w์ ์ ์ฉ๋๋)
- historical sum of gradient values ๋ํ๋ ๋์ gradient ์ ๊ณฑ
- 1e-7: ๋ถ๋ชจ๊ฐ ์์ 0์ผ๋ ๋๋นํด์
2) ์๋ฆฌ
- ์ํฉ: ์ด๋ ํ์ชฝ์ ๊ธฐ์ธ๊ธฐ ๋นจ๋ฆฌ ๋ณํ๊ณ (=๊ธฐ์ธ๊ธฐ(dw)๊ฐ ํด๋),
โ Adagrad๋ ํฐ ๊ฐ์ผ๋ก ๋๋ ์ค = ๋ถ๋ชจ์ ๊ธฐ์ธ๊ธฐ์ ์ ๊ณฑ๋งํผ ๋๋ ์ฃผ๋, ์ ์ฒด ์๋ ๋ฆ์ถฐ์ง
- ์ด๋ ํ์ชฝ์ ๊ธฐ์ธ๊ธฐ ์ฒ์ฒํ ๋ณํจ(=๊ธฐ์ธ๊ธฐ๊ฐ ์์๋)
โ ์์ ๊ฐ์ผ๋ก ๋๋ ์ค = ๋ถ๋ชจ์ ๊ธฐ์ธ๊ธฐ ์ ๊ณฑ๋งํผ ๋๋ ์ฃผ๋, ์ ์ฒด ์๋ ๋นจ๋ผ์ง
3) ๋ฌธ์ ์
- grad_squared๋ ์ ๊ณฑํ๋๊ฑฐ๋ผ, ์์๋ง ๊ณ์ ๋์ (=๊ณ์ ๋ ํฐ ์ซ์๋ก ๋๋๊ฒ ๋จ)
โ grad_squared๋ ๊ณ์ ์ปค์ง โ step_size๊ฐ์ = LR ๊ฐ์
โ ์ํ๋ ๋ฐฉํฅ์ผ๋ก ๊ฐ๋ ์งํ ๋์ค์ ๋ฉ์ถ์O = ๋ฐ๋ฅ์ ๋๋ฌ ์ ๋ฉ์ถ์O
7. RMSProp: Leak Adagrad
๐ฅLR(step)์ ์๋ ์กฐ์ ๊น์ง ๊ฐ๋ฅ_decay_rate
1) ๊ฐ๋
- gradient ์ ๊ณฑ ๊ฐ ๊ทธ๋๋ก ๋์ X, decay_rate ๊ณฑํจ
- step์ ์๋๋ฅผ ์กฐ์ ๊ฐ๋ฅ (๋ง์ฐฐ(decay_rate)์ถ๊ฐ)
- ๋ง์ฐฐ(decay_rate)์ ์ฉ์์ผ์, ์๋๊ฐ ์ค์ด๋๋ ๋ฌธ์ ํด๊ฒฐ
2) ๊ทธ๋ฆผ์ผ๋ก ๋น๊ต
- SGD: ๋๋ฌด ๋๋ฆผ
- SGD+Momentum: Overshoot
- RMSProp: ์ด๋์ ๋ ์ด์์ ๋ฐฉํฅ
8. Adam: RMSProp + Momentum
๐ฅ์ ์ํ LR + ์๋์กฐ์
1) ๊ธฐ์กด์์ ๊ฐ์ ธ์จ ๋ถ๋ถ
2) Bias correction
-
๋ฐ์ ๊ฐ๋ฅ ๋ฌธ์ ์
- ์ต์ ํ ์ด๊ธฐ์์ ๋ฐ์๊ฐ๋ฅ ๋ฌธ์ ? (beta2 = 0.999)
= moment2 ๊ฐ์ด ์ด๊ธฐ์ ๊ต์ฅํ ์์ ๊ฐ์ผ์๋
โ ์ด ๊ฐ์ด ๋ถ๋ชจ์ ์๊ธฐ์, update์ ๊ฐ์ด ์ด์ํ๊ฒ ํ์๋
-
ํด๊ฒฐ
- bias correction์ผ๋ก ํด๊ฒฐํ๊ธฐ (ex. 1e-7)
- update์, ํ์ฌ step์ ๋ง๋ ์ ์ ํ bias์ถ๊ฐํ์ฌ ๊ฐ์ด ์ด๊ธฐ์ 0์ด ๋์ง ์๋๋ก
- ์ต์ํ์ ํ๋ผ๋ฏธํฐ ์กฐ์ ์ผ๋ก ๋ค์ํ task์ํ๊ฐ๋ฅํด์ ์ข์
3) ๊ทธ๋ฆผ์ผ๋ก ์ดํดํ๊ธฐ
- ๊ฒฐ๋ก ) ํ๋์ ์ overshoot์ ์ด์ง๊ณ ,
๋นจ๊ฐ์ ์ ์ ์ ํ stepsize๋ก ์ค๊ฐ์ ๋ฉ์ถ์ง ์๊ณ ๋๊น์ง ์ต์๊ฐ ์ฐพ๊ธฐ ๊ฐ๋ฅ
9. ์ต์ข
๋น๊ต