๐ ๋ณธ ๋ด์ฉ์ Michigan University์ 'Deep Learning for Computer Vision' ๊ฐ์๋ฅผ ๋ฃ๊ณ ๊ฐ์ธ์ ์ผ๋ก ํ๊ธฐํ ๋ด์ฉ์
๋๋ค. ๋ด์ฉ์ ์ค๋ฅ๋ ํผ๋๋ฐฑ์ด ์์ผ๋ฉด ๋ง์ํด์ฃผ์๋ฉด ๊ฐ์ฌํ ๋ฐ์ํ๊ฒ ์ต๋๋ค.
(Stanford์ cs231n๊ณผ ๋ด์ฉ์ด ๊ฑฐ์ ์ ์ฌํ๋ ์ฐธ๊ณ ํ์๋ฉด ๋์ ๋์ค ๊ฒ ๊ฐ์ต๋๋ค)๐
1. Activation Functions : Sigmoid
๐ 3๊ฐ์ง ๋ฌธ์ ์ : saturated gradient, not zero-centered, ์ฐ์ฐ๋น์ฉ
-
์ ์ฒด ํ๋ฆ
- ํด์
- axon from a neuron: ์ด์ ๋ด๋ฐ์์์ ์
๋ ฅ
- cell body์ f: activation function์ผ๋ก ๋น์ ํํ
- ์์ผ๋ฉด ๋จ์ผ ์ ํ layer๋ก ์ถ์๋๋ฏ๋ก ๋ฐ๋์ ํ์
1) ์๊ฐ
- ๊ฐ๋
- ๊ฐ์ฅ classic ํจ
- ์กด์ฌ or ๋ถ์ฌ์ ๋ํ ํ๋ฅ ์ ํด์
- 0~1์ฌ์ด๋ก ๋ง๋ฆ
- โFiring rateโ of neuron
-
๋ค๋ฅธ ๋ค์ด์ค๋ ๋ด๋ฐ์ผ๋ก๋ถํฐ ์ ํธ ๋ฐ์ ํ, ์ผ์ ์๋๋ก ์ ํธ ๋ฐํ
-
๋ชจ๋ ์
๋ ฅ์ ์ด ์๋์ ๋น์ ํ์ฑ ์์กด
โ sigmoid: ๋ฐํ์๋์ ๋ํ ๋น์ ํ ์์กด์ฑ์ ๋ชจ๋ธ๋ง ํ ๊ฒ
-
๋ฌธ์ ์ 3๊ฐ์ง
a. (์ ค ๋ฌธ์ )ํฌํ๋(Saturated) ๋ด๋ฐ๋ค์ด gradient๋ฅผ ์ฃฝ์ (= ๋คํธ์ํฌ ํ๋ จ ์ด๋ ต๊ฒ ๋ง๋ฆ)
- x๊ฐ ๋งค์ฐ ์์๋
- local gradient(dฯ/dx)๊ฐ 0์ ์๋ ด
- downstream gradient(dL/dx)๋ 0์ ์๋ ดํ๊ฒ ๋จ โ ๊ฐ์ค์น update๋ 0์ ๊ฐ๊น์์ง(๊ฐ์ค์น updateํ๋ ฌ๊ณผ ๊ด๋ จ๋ ์์ค์ ๋ชจ๋ ๊ธฐ์ธ๊ธฐ๊ฐ ๋งค์ฐ ๋ฎ์๊ฑฐ๋ผ์) โ ํ์ต ๋๋ ค์ง
- x๊ฐ 0์ผ๋
- x๊ฐ ๋งค์ฐ ํด๋
- gradient๊ฐ 0์ ์๋ ด โ ๋งค์ฐ ๊น์ layer์ผ๋, ํ์ layer์์ gradient ํ๋ จ ์ ํธX (๊ฑ 0์ด๋ผ์)
b. sigmoid output๋ค์ zero-centered๊ฐ ์๋
- (์์ 1๊ฐ์ผ๋) ๊ฐ์
- ๋ชจ๋ input neuron์ด ํญ์ +๋ผ๋ฉด W gradient๋ ์ด๋ป๊ฒ ๋ ๊น?
-
(local gradient)๊ฐ ํญ์ +๊ฐ ๋จ
-
(upstream gradient)๊ฐ ํญ์ +๊ฐ ๋จ (๋ชจ๋ ์์คor ๊ธฐ์ธ๊ธฐ๊ฐ ์์, Wi์ ๋ํ ๋ชจ๋ ์์ค or ๊ธฐ์ธ๊ธฐ๊ฐ ์์)
โ W์ ๋ํ ๋ชจ๋ ๊ธฐ์ธ๊ธฐ๊ฐ ๋์ผ ๋ถํธ ๊ฐ๊ฒ ๋จ
(=๋ชจ๋ ์, ์์ด ๋๋ค๋ ์ ์ฝ ๋๋งค, ๊ฐ์ค์น์ ํน์ ๊ฐ์ ๋๋ฌํ๋ ๊ฒฝ์ฌํ๊ฐ๋ฒ ๋จ๊ณ ๋ง๋ค๊ธฐ ์ด๋ ค์)
-
๋ถ์ฐ์ค๋ช
- W์ด๊ธฐ๊ฐ์ด ์์ ์ด๊ณ , ์์ค ์ต์ํ ์ํ ๊ฐ์ค์น ๊ฐ์ ์์ ์์ ์ค๋ฅธ์ชฝ ํ๋จ์ผ๋ก ์ด๋์ํด W1์ +๋จ๊ณ, W2๋ -๋จ๊ณ์ฌ์ผ ํ๋๋ฐ, ๋๋ค ๊ฐ์ ๋ถํธ๋ฉด ํด๋น ์ฌ๋ถ๋ฉด์ ์ ๋ ฌ๋ ๋จ๊ณ ์ํ๋ฐฉ๋ฒ X
- ๊ฒฝ์ฌํ๊ฐ์ ์ฐจ๊ฐ ํด๋น ๋ฐฉํฅ์ผ๋ก ์งํํ๋ ๋ฐฉ๋ฒ
- ๋ชจ๋ ๊ฒฝ์ฌ๊ฐ ์๋ก ์ด๋ํ๋ ์ง๊ทธ์ฌ๊ทธ ํจํด
โ ๊ฒฐ๋ก ) not zero-centeredํ ๋ฌธ์ ๋๋ฌธ์, train์ ๋งค update๋ง๋ค ํ์ชฝ์ ์น์ฐ์น๋๊น ๋งค์ฐ ๋ถ์์ ํจ
- (์์ ์ฌ๋ฌ๊ฐ์ผ๋) Minibatch์ผ๋
- not zero-centeredํ ๋ฌธ์ ์ํ๋จ
- ๋ฏธ๋๋ฐฐ์น์ ๋ํด ๋ชจ๋๋ฅผ ํ๊ท ๋ด๋ฉด, ๋๋ก๋ ์์, ์์ ๋์ฌ์ ์์ด์
c. ์ง์ํจ์์ ๊ณ์ฐ๋น์ฉ์ด ๋น์
- ์ง์ํจ์๋ ๋ง์ clock cycle์ด ๋์์ ๋น์
- cf) relu์ sigmoid ๋น๊ตํ์๋, sigmoid๊ฐ ํจ ์ค๋๊ฑธ๋ฆผ
2. Activation Functions : Tanh
๐ ๋ฌธ์ ์ : saturated gradient
- ๊ฐ๋
- Scaled & Shifted version of Sigmoid
- [-1,1] ๋ฒ์
- zero-centeredํจ
- ์ฌ์ ํ saturatedํ ๋ gradient๊ฐ ์ฃฝ์
- saturating non-linearity๋ฅผ neural network์ ์ฌ์ฉํด์ผ๋๋ค๋ฉด, tanh>sigmoid ์ฌ์ฉํ๋๊ฒ ํฉ๋ฆฌ์
- ๊ทธ๋๋ saturated ๋ฌธ์ ๋๋งค ์์ฒญ ์ข์ ์ ํX
3. Activation Functions : ReLU, Leaky ReLU
๐ ๋ฌธ์ ์ : not zero-centered, -์ผ๋ gradient vanishing
1) relu
-
๊ฐ๋
- + ์์ญ์์ saturate๋์ง ์์ (=๊ธฐ์ธ๊ธฐ ์์คX, killing gradient X)
- ์ฐ์ฐ ๋น์ฉ ํจ์จ์ (cheapest ๋น์ ํํจ์)
- cf) binary์ ๊ฐ์ด ๊ตฌํ๊ฐ๋ฅ, ๊ฐ๋จํ ์๊ณ๊ฐ๋ง ๊ณ ๋ คํด์ ๊ณ์ฐ๋น์ฉโ
- sigmoid, tanh๋ณด๋ค ๋งค์ฐ ๋นจ๋ฆฌ ์๋ ด
- cf) 5000 layer๊ฐ์ด ๋งค์ฐ ๊น์ layer๋ฉด, sigmoid๋ก ์๋ ดํ๊ธฐ ๋งค์ฐ ํ๋ค๊ฒ (batch norm ์์ธ๋)
-
๋ฌธ์ ์
2) Leaky relu
- ๊ฐ๋
- ์์์ผ๋ ์์ + ๋ฅผ ํฌํจํจ
- 0.01 โ hyperparameter์ (๊ฐ์์ network์ ๋ง๊ฒ ํ์ต ํ์)
- ์ฅ์
- saturate๋์ง ์์
- ํจ์จ์ ์ฐ์ฐ ๋น์ฉ
- sigmoid, tanh๋ณด๋ค ํจ์ฌ ๋น ๋ฅธ ์๋ ด์๋
- gradient vanishing๋์ง ์์ ( local gradient๊ฐ 0์ด ๋ ์ผ์ด ์์ด์; ์, ์ ๋ชจ๋์์)
3) PReLU
- ๊ฐ๋
- leaky relu์์ ์ด์ด์ง ๊ฒ
- ฮฑ ๋ฅผ ํ์ตํด์ ์๋ง๊ฒ ๊ฐ์ ธ์ด (learnable parameter)
- ์ค์ค๋ก ํ์ต ํ๋ผ๋ฏธํฐ๋ฅผ ๊ฐ๊ณ ์๋ ๋น์ ํ ํจ์
- backprop into \alpha
- ฮฑ์ backpropํด์ ฮฑ์ ๋ํ ์์ค ๋ํจ์ ๊ณ์ฐ ํ, ฮฑ์ ๋ํ gradient decent step ๋ง๋ค๊ธฐ
- ๋ฌธ์ ์ ) 0์์ ๋ฏธ๋ถ ๋ถ๊ฐ๋ฅ โ ํด๊ฒฐ) ๋ ๋ฐฉํฅ ์ค ํ ์ชฝ์ ๊ณ ๋ฅด๊ธฐ (์์ฃผ๋ฐ์X์ฌ์ ์ ๊ฒฝ์์จ๋๋จ)
4) ELU (Exponential Linear Unit)
- ๊ฐ๋
- relu๋ณด๋ค ๋ ๋ถ๋๋ฝ๊ณ , zero-centered ๊ฒฝํฅ โ
- ์์
- ฮฑ(exp(x)โ1) (if xโค0)
- (default ฮฑ=1)
- zero-gradient ํผํ๊ธฐ ์ํจ
- ์ฝ๊ฐ sigmoid ๋ชจ์
- ๋ฌธ์ ์
- ์ฌ์ ํ ์ง์ํจ์ ํฌํจ
- ฮฑ ๋๋งค ํ์ตํด์ผ๋จ
5) SELU (Scaled Exponential Linear Unit)
- ๊ฐ๋
- Scaled version of ELU
- batch norm ์ ์ธํ๊ณ , ๊น์ SELU ๋คํธ์ํฌ ํ์ต ๊ฐ๋ฅ
- ์ฅ์
- deep neural network + SELU = self normalizing property
= layer๊ฐ ๊น์ด์ง์๋ก โ ์๊ธฐ ์ ๊ทํ ์์ฑ โ
= ํ์ฑํ ํจ์ ์ ์๋ โ & ์ ํํ ๊ฐ์ผ๋ก ์๋ ด
= batch norm๊ณผ ๊ฐ์ ์ ๊ทํ ์ ์ธ ๊ฐ๋ฅ
4. Activation Functions : ์ ์ฒด ๋น๊ต
5. Data Preprocessing
1) ๊ฐ๋
- ๋ ํจ์จ์ training ์ํด
2) ๋ฐฉ๋ฒ 2๊ฐ์ง
(image data์ธ ๊ฒฝ์ฐ)
a. zero-center : ํ๊ท ์ ๋นผ์ ์์ ์ผ๋ก ๊ฐ์ ธ์ด
- ์ด๋ ๊ฒ ํด์ผ ํ๋ ์ด์ ?
-
์ด์ ์ sigmoid์ ๋ฌธ์ ์ ์ผ๋ก gradient๊ฐ ํญ์ + or -๋ฉด, W update๋ ํญ์ + or - ๋๋ ๋ฌธ์ ์ง๋
-
๋น์ทํ๊ฒ, ์ฌ๊ธฐ์๋ train data๊ฐ ๋ชจ๋ + or - ๋ฉด, W update๋ ๋ชจ๋ ํญ์ + or -.
โ ์ ํ์ ์ผ๋ก update๋ ์ ๋ฐ์ ์์
b. normalized : ๋์ผ ๋ถ์ฐ ๊ฐ๋๋ก ํฌ๊ธฐ scaling (ํ์คํธ์ฐจ๋ก ๋๋ ์)
(input์ด ์ ์ฐจ์, ์ด๋ฏธ์ง ์๋ ๊ฒฝ์ฐ)
3) ๊ด๋ จ ์ง๋ฌธ๋ค
- Q1. ์ด๋ฐ ์ ์ฒ๋ฆฌ๋ฅผ train, test์ ์ ์ฉ?
A1. ํญ์ train์ ์ ์ฉ, test์์๋ ๊ฐ์ ์ ๊ทํ ์ฌ์ฉ
- Q2. batch-norm์ฌ์ฉ์์๋ ์ ์ฒ๋ฆฌ ํ์?
A2. batch norm์ ๋ชจ๋ ์ฒ๋ฆฌ ์ด์ ๋งจ ์ฒซ๋จ๊ณ์์ ์ฌ์ฉ์ ์ํด๋ ๋จ.
but ์ ์ฒ๋ฆฌ๋ฅผ ์ง์ ํ๋๊ฑฐ ๋ณด๋จ ์ฑ๋ฅ ๋ฎ์๋ฏ
โ ์ค๋ฌด์์ ์ ์ฒ๋ฆฌ โ batch norm ๋๋ค ์ฌ์ฉ
6. Weight ์ด๊ธฐํ
๐ Xavier ์ถํ๋ฐฐ๊ฒฝ + Xavier์ ๋ํด
1) ๋ฐฉ๋ฒ 3๊ฐ์ง (๋ชจ๋ ๋ฌธ์ ์์)
a. W=0, b=0์ผ๋ก ์ด๊ธฐํ
c. W๋ฅผ ์กฐ๊ธ ๋ ํฐ ์ซ์๋ก ์ด๊ธฐํ
2) ํด๊ฒฐ ๋ฐฉ๋ฒ
a. Xavier Initialization
7. Weight ์ด๊ธฐํ : Kaiming / MSRA ์ด๊ธฐํ
๐ relu๊ทธ๋๋ก ์ฌ์ฉ๋์ , w์ด๊ธฐํ ๋ฐฉ๋ฒ ๋ณ๊ฒฝ โ resnet์์ ์๋ง๋ ๋ถ๋ถ ํด๊ฒฐ
1) ๋ฐฉ๋ฒ
- relu๊ทธ๋๋ก ์ฌ์ฉ, ๋์ weight์ด๊ธฐํ ๋ณ๊ฒฝ
- (๊ธฐ์กด) std=1/sqrt(Din) โ (๋ณ๊ฒฝ) std=sqrt(2/Din)
- relu๋ ๋ฐ์ ์ฃฝ์ด๋๊น ๊ฑ 2๋ฐฐ๋ฅผ ํด๋ ๋จ (๋ด๋ฐ์ ์ ๋ฐ์ด ์ฃฝ์๊ฑฐ๋ผ๋ ์ฌ์ค์ ๋ํด ์กฐ์ )
2) ๋ฌธ์ ์
3) ํด๊ฒฐ์ฑ
- ์ฒซ๋ฒ์งธ conv๋ฅผ MSRA๋ก ์ด๊ธฐํ
- ๋๋ฒ์งธ conv (last layer)๋ฅผ 0์ผ๋ก ์ด๊ธฐํ
โ Var(x+F(x)) = Var(x) ์ผ์น ๊ฐ๋ฅ
= ๋ถ์ฐ์ด ๋๋ฌด ์ปค์ง์ง ์์์์์
4) ์ง๋ฌธ
- Q. (W ์ด๊ธฐํ ๋ชฉ์ ) ์ด๊ธฐํ์ idea๊ฐ ์์คํจ์์ global minimum์ ๋๋ฌํ๊ธฐ ์ํจ์ธ๊ฐ?
A. ์๋, train ์ ์ ๊ทธ minimum์ด ์ด๋์ง ๋ชจ๋ฆ, ๋์ ๋ชจ๋ gradient๊ฐ ์ด๊ธฐํ๋ฅผ ์ ํํ ์ ์๋๋ก ํ๋ ๊ฒ
= ์๋ชป๋ ์ด๊ธฐํ ํ๋ฉด zero gradient๊ฐ ๋์ด๋ฒ๋ฆด ์ ์์ด์
= lost landscape์์ flatํ ๊ณณ์์ ์์ํ์ฌ ๊ฑธ์ด๊ฐ์ง(train) ์๋๋ก ๋์์ฃผ๋ ์์
8. Regularization : Dropout
1) ์ฌ์ฉ ๋ชฉ์
- ๊ณผ์ ํฉ ๋ฐฉ์ง
2) ๋ฐฉ๋ฒ
a. Loss๋ค์ ฮปR(W) ๋ถ์ด๊ธฐ
- L2 norm โ ์ ค ์ฌ์ฉ ๅค
b. Dropout
- ๋ฐฉ๋ฒ
- ๊ฐ layer๋ง๋ค ์์ ํ ์, ๋๋คํ๊ฒ ๋ช๋ช ๋ด๋ฐ๋ค์ 0์ผ๋ก ์ธํ
- ์ผ๋ง๋ dropํ ๊ฑด์ง๋ hyper parameter์; 0.5๊ฐ ์ผ๋ฐ์
- ๊ตฌํํ๊ธฐ
-
Dropoutํ๋ ์ด์ 2๊ฐ์ง
-
Test Time์์์ Dropout
-
๋ฌธ์ ์
- z=random๋ณ์ (์์ ํ ์ด์ ์ ์ ํจ)
- ๊ฒฐ๋ก ) test์, randomํ๊ฒ ๋ด๋ฐ์ ๋๊ฒ ๋๋ฉด test๋ง๋ค ๊ฒฐ๊ณผ๊ฐ ๋ค ๋ค๋ฅด๊ฒ ๋์ถ ์ด์ ) ๊ฐ forward pass๋ง๋ค randomํ๊ฒ ๋ด๋ฐ ๋จ์ดํธ๋ ค์
-
ํด๊ฒฐ์ฑ
- ์ด๋ฌํ randomness (z) ๋ฅผ ํ๊ท ๋ด์!
-
ํด๊ฒฐ๋ฐฉ๋ฒ
-
๊ตฌํ
- ๋ฐฉ๋ฒ
- test time์์ ๋ชจ๋ ๋ด๋ฐ๋ค ์ฌ์ฉ
- but ๊ฐ ๋ด๋ฐ์ dropํ ๋ dropping ํ๋ฅ (p) ์จ์ layer์ output์ rescaleํจ
-
๊ฒฐ๋ก (์ ์ฒด ๊ตฌํ)
- train: ๊ฑ ๊ทธ๋๋ก dropout
- test: ์ ์ ํ ํ๋ฅ (p) ์ฌ์ฉํด์ output์ rescaleํ๊ณ , randomness์์ฐ
- ๊ฐ ๊ฐ๋ณ layer์๋ง ์ ์ฉ ๊ฐ๋ฅ
- stacking multiple dropout layer์ ์ฌ์ฉX
-
์ผ๋ฐ์ ์ธ ๊ตฌํ ๋ฐฉ๋ฒ (Inverted Dropout)
- ์ผ๋ฐ์ ์ผ๋ก,, train์ drop & scale ๋ชจ๋ ํจ(๋ด๋ฐ์ 1/2๊ฐ dropout์ํค๊ณ ๋จ์ ๋ด๋ฐ๋ค์ 2๋ฐฐํจ ) test์์ ๋ชจ๋ ๋ด๋ฐ ์ฌ์ฉ + ๋ชจ๋ normal weight matrix ์ฌ์ฉ
9. Dropout architectures
๐ Dropout์ด ์ํคํ
์ฒ๋ค์ ์ด์ผ ์ฐ์ด๋์ง
- ๊ฒฐ๋ก
- AlexNet, VGG : ๋งจ ์๋จ ๋ ์ด์ด์ธ FCLayer์์ dropout์ ์ฉ
- ์ด์ธ ์ต์ ์ํคํ
์ฒ: FCLayer๋ฅผ ์ค์๊ธฐ์, dropout ์ฌ์ฉํ ์ผ ๊ฑฐ์ ์์
10. Regularization : A common pattern
11. Regularization : Data Augmentation
๐ ์ข์ฐ๋์นญ, ๋ฐ๊ธฐ์กฐ์ ๋ฑ
-
๊ฐ๋
- input data์ randomness๋ฅผ ๋ถ์ฌํ๋ ๋ฐฉ๋ฒ์ ์ผ์ข
- ๋น์ทํ image์ด์ง๋ง CNN๋ชจ๋ธ์ ๋ค๋ฅธ ์ด๋ฏธ์ง๋ก ์ธ์ํ๋ฉฐ, ๋ฐ๊ธฐ์กฐ์ or ์ข์ฐ ๋์นญ ๋ฑ์ randomness์ ์ผ์ข
์ผ๋ก ๋ณผ ์ ์์
-
๋ฐฉ๋ฒ
12. Regularization : Drop Connect
13. Regularization : Fractional Pooling
14. Regularization : Stochastic Depth
15. Regularization : Cut out
16. Regularization : Mix up