๐ฅ Coursera์ "Improving Deep Neural Networks: Hyperparameter Tuning, Regularization and
Optimization" ๊ฐ์ข์ ๋ด์ฉ์ ๋ฐฐ์ฐ๋ฉด์ ๊ฐ์ธ์ ์ผ๋ก ์ ๋ฆฌํ ๋ด์ฉ์
๋๋ค.
Normalizing Inputs
ํ์ต ์๋๋ฅผ ๋์ผ ์ ์๋ ๋ฐฉ๋ฒ ์ค ํ๋๋ Input์ Normalizationํ๋ ๊ฒ์ด๋ค.
์ Normalize๋ฅผ ํ ๊น?
Normalize๋ J ๊ทธ๋ํ์ ๋์ง ์์ J๊ทธ๋ํ๋ฅผ ์ดํด๋ณด์.
Normalize ๋์ง ์์ J๊ทธ๋ํ๋ J์ ์ ๋ฐ์ดํธํ ๋ ๋ง์ ๋จ๊ณ๋ฅผ ๊ฑฐ์ณ์ผ ํ๋ค. ๊ทธ๋ฌ๋ Normalize๋ J ๊ทธ๋ํ๋ฅผ ๋ณด๋ฉด ๋์นญ์ ์ธ ํ์์ ๋๊ธฐ ๋๋ฌธ์ J๋ฅผ ์ ๋ฐ์ดํธํ ๋ ๋น๊ต์ ์ ์ ๋จ๊ณ๋ฅผ ๊ฑฐ์น๋ค.
์ด ๋ ๊ทธ๋ํ์ contour(์ค๊ณฝ) ๊ทธ๋ํ๋ฅผ ๊ทธ๋ฆฌ๊ณ J์ ์ ๋ฐ์ดํธํ๋ ๊ณผ์ ์ ์ดํด๋ณด์.
Normalize ๋์ง ์์ ๊ทธ๋ํ๋ฅผ ๋ณด๋ฉด Learning Rate๋ฅผ ์์ฃผ ์๊ฒ ์ค์ผํ๋ ๊ฒ์ ๋ณผ ์ ์๋ค. ์๋ํ๋ฉด ํฌ๊ฒ ์ค๊ฒฝ์ฐ Global Optima์ ๋๋ฌํ ๋ ๊น์ง ๊ณ์ ์๋ค๊ฐ๋ค ํ ์ ์๊ธฐ ๋๋ฌธ์ด๋ค. ์ด ๊ฒฝ์ฐ๋ ํ์ต์ด ์ค๋๊ฑธ๋ฆฐ๋ค.
๋ฐ๋ฉด์ Normalize๋ ๊ทธ๋ํ๋ฅผ ๋ณด๋ฉด Learning Rate๋ฅผ ํฌ๊ฒ์ฃผ๊ณ ํ์ต์ ๋ช๋ฒ ์งํํ์ง ์์๋ Global Optima์ ๋๋ฌํ๋ ๊ฒ์ ๋ณผ ์ ์๋ค.
์ค์ ๋ก๋ W๊ฐ ๊ณ ์ฐจ์์ matrix์ด๊ธฐ ๋๋ฌธ์ ์์ ๊ทธ๋ฆผ์ฒ๋ผ ์๋ฒฝํ ๊ตฌํ์ ๋ง๋ค ์ ์์ผ๋, ๋ ๊ตฌํ์ด๊ณ feature๋ฅผ ์ ์ฌํ scale๋ก ๋ง์ถฐ์ ํ์ต ์๊ฐ์ ์ค์ธ๋ค.
Vanishing / Exploding Gradients
DNN ํ์ต ์, ๊ฐ์ฅ ํฐ ๋ฌธ์ ์ ์ Gradient๊ฐ ๋งค์ฐ ์์์ง๊ฑฐ๋ ์ฆ๊ฐํ๋ ๊ฒฝ์ฐ์ด๋ค.
- ์ ๊ฒฝ๋ง์ ๋ฏธ๋ถํญ์ด๋ ๊ธฐ์ธ๊ธฐ๊ฐ ๋งค์ฐ ์ปค์ง๊ฑฐ๋ ์์์ง๋๊ฒ์ ์๋ฏธ
- ํ์ต์ด ๋งค์ฐ ๊น๋ค๋ก์
1. unit์ ์๋ ์์ง๋ง, ๋งค์ฐ Deepํ NN์ ๊ฒฝ์ฐ๋ฅผ ์ดํด๋ณด์.(activation function์ g(z) = z๋ก linearํ๋ฉฐ, ํ๋ผ๋ฏธํฐ b=0์ผ๋ก ๋ฌด์)
์ด ๋ ์ด๋ค unit์์์ W์ธ W[L]์ด 1.5์ด๋ผ๊ณ ๊ฐ์ ํ๋ฉด y hat์ 1.5^L ๋ก ๊ธฐํ๊ธ์์ ์ผ๋ก ์ฆ๊ฐํ ๊ฒ์ด๋ค. ๋ฐ๋๋ก 1๋ณด๋ค ์์ ๊ฐ์ธ 0.5๋ผ๋ฉด 0.5^L๋ก ๋งค์ฐ ์์ ๊ฐ์ด ๋ ๊ฒ์ด๋ค.
์์์๋ ๊ฒฐ๊ณผ๊ฐ์ ์์๋ก ๋ค๊ณ ์์ง๋ง ๊ธฐ์ธ๊ธฐ๊ฐ์๋ ๋๊ฐ์ด ์ ์ฉํ ์ ์๋ค. ๊ธฐ์ธ๊ธฐ๋ ๊ธฐํ๊ธ์์ ์ผ๋ก ์ฆ๊ฐํ๊ฑฐ๋ ๊ฐ์ํ๋ค. ์ด ๊ฒฝ์ฐ์๋ ํ์ต์ด ๋งค์ฐ ์ด๋ ต๋ค. ํนํ ๊ธฐ์ธ๊ธฐ๊ฐ ๋งค์ฐ ์์๊ฒฝ์ฐ Gradient Descent์ ๋ง์ ์๊ฐ์ด ๊ฑธ๋ฆฌ๊ธฐ ๋๋ฌธ์ ํ์ต์ด ์ค๋๊ฑธ๋ฆฐ๋ค.
์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด ์์ ํ์ง๋ ์์ง๋ง random ์ด๊ธฐํ๋ฅผ ์ํ๋ฉด ์ด๋ ์ ๋ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ ์ ์๋ค.
์ด๋ Layer์์ Input Feature๊ฐ n๊ฐ์ผ ๋
z(= w * input feature + b, ํ์ฑํ ํจ์์ ์ ๋ ฅ)๋ a(ํ์ฑํ ํจ์๋ฅผ ํต๊ณผํ ๊ฒฐ๊ณผ) = Active func(z)์ ๊ฐ์ด ๋ํ๋ผ ์ ์๋๋ฐ, ์ด ๋๋ ์ ์ ํ z๊ฐ์ ์ฐพ๊ธฐ ์ํด n์ด ๋ง์ ์๋ก, w๋ ์์์ ธ์ผ ํ๋ค.
w[i]๋ฅผ 1/n์ผ๋ก ๋๋ ๊ฒ์ด๋ค.(Xavier Initialization)
# Xavier initialization
# n[l-1] : ์ด์ ๋ ์ด์ด์ ์
๋ ฅ feature์ ์
# shape : ๊ฐ์ค์น ํ๋ ฌ์ ํฌ๊ธฐ
W[l] = np.random.randn(shape) * np.sqrt(1/(n[l-1]))
"""
ํ์ฑํ ํจ์์ ๋ฐ๋ฅธ ์์
ReLU : W[l] = np.random.randn(shape) * np.sqrt(2/n[l-1])
tanh : W[l] = np.random.randn(shape) * np.sqrt(1/n[l-1]) # Xavier ์ด๊ธฐํ
Yousha Benigo ์ฐ๊ตฌ์ง๋ค์ด ์ฐ๊ตฌํ ๋ฐฉ๋ฒ : W[l] = np.random.randn(shape) * np.sqrt(2/(n[l-1]+n[l]))
"""
2. ์์ฒญ Deepํ ์ ๊ฒฝ๋ง์ ๊ฒฝ์ฐ์๋ Backpropagation ๊ณผ์ ์์ ์ถ๋ ฅ์ธต์์ ๋ฉ์ด์ง ์๋ก Gradient ๊ฐ์ด ์์์ ธ ํ์ต์ด ์๋์ง ์๋๋ค.
์ด ๊ฒฝ์ฐ์ ์์ธ์ ํ์ฑํ ํจ์์ ๊ธฐ์ธ๊ธฐ์ ๊ด๋ จ์ด ์๋ค.
๋จผ์ sigmoid ํจ์๋ฅผ ํ์ธํด๋ณด๋ฉด
๋ฏธ๋ถ๊ฐ์ x์ด ํฌ๊ณ ์์์ง์ ๋ฐ๋ผ 0์ ์๋ ดํ๋๋ฐ Backpropagation ๊ณผ์ ์์ Sigmoid์ ๋ฏธ๋ถ๊ฐ์ด ๊ฑฐ๋ญ ๊ณฑํด์ง๊ธฐ ๋๋ฌธ์ ์ ๊ฒฝ๋ง์ด Deepํด์ง ์๋ก Gradient ๊ฐ์ด ๋งค์ฐ ์์์ง ์ ๋ฐ์ ์๋ค.
๊ทธ๋ฆฌ๊ณ ๊ณ์ฐ ๊ณผ์ ์์ ์ปดํจํฐ๋ ์ ํํ ๊ฐ์ด ์๋๋ผ ๊ทผ์ฌ๊ฐ์ผ๋ก ๊ณ์ฐ๋๊ธฐ ๋๋ฌธ์ ํ์ต ์ค์ฐจ๋ ์ฆ๊ฐํ๋ค.
sigmoid ํจ์๋ฅผ ์ด์ฉํ๋ฉด ๋ชจ๋ธ ํ์ต์ด ์ ๋๋ก ์ด๋ฃจ์ด์ง์ง ์๋๋ค.
๋ค์์ tanh ํจ์์ด๋ค.
sigmoid์ ํ๊ณ๋ฅผ ๊ฐ์ ํ๊ธฐ ์ํด ์ ์๋์๋ค.
0์ ๊ธฐ์ค์ผ๋ก ์ต๋ 1, ์ต์ -1 ์ฌ์ด์ ๊ฐ์ ๊ฐ๋๋ก ์ถ๋ ฅ๊ฐ์ ๋ฒ์๋ฅผ 2๋ฐฐ(sigmoid๋ -0.5 ~ 0.5) ๋๋ ธ๋ค.
ํ์ง๋ง ๊ฒฐ๊ตญ tanh๋ x๊ฐ์ด ํฌ๊ฑฐ๋ ์์์ง ์๋ก 0์ผ๋ก ์๋ ดํ๊ธฐ ๋๋ฌธ์ ์ ๊ฒฝ๋ง์ด Deepํด์ง ์๋ก Gradient ๊ฐ์ด ๋งค์ฐ ์์์ง๋ ๊ฒ์ ํผํ ์ ์์๋ค.
์ด ๋ฌธ์ ๋ค์ ํด๊ฒฐํ๊ธฐ ์ํด ์ ์๋ ๊ฒ์ด ReLU ํจ์ ์ด๋ค.
์ ๋ ฅ๊ฐ์ด ์์์ผ๊ฒฝ์ฐ ํญ์ ๋ฏธ๋ถ๊ฐ์ 1์ด๋ค. ๊ทธ๋ฆฌ๊ณ ํน๋ณํ ์ฐ์ฐ์ด ํ์ ์์ด ๋จ์ํ ์๊ณ๊ฐ์ ๋ฐ๋ผ ์ถ๋ ฅ๊ฐ์ด ๊ฒฐ์ ๋๊ธฐ ๋๋ฌธ์ ์ฐ์ฐ์๋๋ ๋น ๋ฅด๋ค.
ํ์ง๋ง ์ ๋ ฅ๊ฐ์ด ์์์ผ ๊ฒฝ์ฐ ๋ฏธ๋ถ๊ฐ์ด ํญ์ 0์ด๊ธฐ ๋๋ฌธ์ ์ ๋ ฅ๊ฐ์ด ์์์ธ ๋ด๋ฐ์ ํ์ ์ํฌ ์ ์๋ค๋ ๋ฌธ์ ๊ฐ ์๋ค.
์ด๋ฌํ ๋ฌด์ ๋ฅผ Dying ReLU(์ฃฝ์ด๊ฐ๋ ReLU)๋ผ๊ณ ๋ถ๋ฅธ๋ค.
Dying ReLU๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด Leaky ReLU๊ฐ ์ ์๋์๋ค.
์ ๋ ฅ๊ฐ์ด ์์์ผ ๋ ์ถ๋ ฅ๊ฐ์ 0์ด ์๋ 0.001๊ณผ ๊ฐ์ ๋งค์ฐ ์์ ๊ฐ์ ์ถ๋ ฅํ๋๋ก ์ค์ ํ๋ค.
max(ax,x)
a๋ ํ๋ผ๋ฏธํฐ๋ก 0.01, 0.001 ๊ฐ์ ์์ ๊ฐ์ด ์ฌ์ฉ๋๋ค.
a๋ 0์ด ์๋ ๊ฐ์ด๊ธฐ ๋๋ฌธ์ ์์๋ผ๋ ๊ธฐ์ธ๊ธฐ๊ฐ 0์ด ๋์ง ์์ ๋ด๋ฐ์ด ์ฃฝ๋ ํ์์ ๋ฐฉ์ง ํ ์ ์๋ค.
Gradient Checking
Backpropagation์ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ Gradient Checking์ด๋ผ๋ ํ ์คํธ๋ฅผ ํตํด BP์ ๊ณผ์ ์ด ์ฌ๋ฐ๋ฅธ์ง ํ์ธํ ์ ์๋ค.
๋จผ์ ์ฐ์ ์ ์ผ๋ก ์ด๋ค ๊ทธ๋ํ์์ f(θ)์ ๊ธฐ์ธ๊ธฐ๋ฅผ ๊ตฌํ๋ ๊ณต์์ ๋ํด ์์์ผ ํ๋ค.
θ = 1 ์ด๊ณ ฯต = 0.01์ผ๋ก ๋๋ค.
์ด ๋ 1~1.01 ์ฌ์ด์ ๊ธฐ์ธ๊ธฐ๋ฅผ ๊ตฌํ๋ ๊ฒ๋ณด๋ค 0.99 ~ 1.01 ์ฌ์ด์ ๊ตฌํ๋ ๊ฒ์ด ๊ทผ์ฌ์น๊ฐ ๋ ์๋์จ๋ค.
๊ฐ์ ๊ตฌํ๋ฉด 3.0001์ด ๋์จ๋ค. f์ ๋ฏธ๋ถ์ f'(θ) = 3θ^2์ผ๋ก 1์์์ ๋ฏธ๋ถ๊ฐ์ 3์ด๊ธฐ ๋๋ฌธ์ ์ค์ฐจ๋ 0.0001์ด๋ค.
๋ฐ๋ฉด 1~1.01๋ก ๊ตฌํ๊ฒ ๋๋ฉด 3.0301์ผ๋ก, ์ค์ฐจ๊ฐ 0.0301์ ์ค์ฐจ๋ฅผ ๊ฐ๊ฒ ๋๋ค.
์ด์ Gradient Checking ์ ์ฉ ๊ณผ์ ์ ์ดํด๋ณด์.
- ๋ชจ๋ ํ๋ผ๋ฏธํฐ๋ฅผ ๋ฒกํฐ๋ก ๋ณํ ํ์ ์ฐ๊ฒฐ์์ผ์ big vector๋ก ๋ง๋ค์ด์ค๋ค.
- dW, db๋ฅผ dθ๋ก ๋ง๋ค์ด์ J(θ)์ ๊ธฐ์ธ๊ธฐ์ ๋น๊ตํ๋ค.
Gradient Checking ์ฌ์ฉ์ ์ฃผ์ํด์ผํ ์
- ๋ชจ๋ i์ ๋ํ์ฌ ๊ธฐ์ธ๊ธฐ์ ๊ทผ์ฌ์น๋ฅผ ๊ตฌํ๋ ๊ฒ์ ๋งค์ฐ ์ค๋ ๊ฑธ๋ฆฌ๋ฏ๋ก ๋๋ฒ๊น ์์๋ง ์ฌ์ฉ
- ์๊ณ ๋ฆฌ์ฆ์ด Gradient check์ ์คํจํ๋ฉด, ๊ฐ์ด ํฌ๊ฒ ๋ค๋ฅธ i๋ฅผ ์ฐพ์์ ์ด๋ layer์์ ๋ฒ๊ทธ ๋ฐ์ํ๋์ง ์ฐพ์ ์ ์๋ค.
- Regularization ํญ์ด ์๋ค๋ฉด dθ์๋ ์ถ๊ฐํด์ผ ํ๋ค.
- dropout์ unit์ ์์๋ก ์ ๊ฑฐํ๊ธฐ ๋๋ฌธ์ GC๊ฐ ๋์ํ์ง ์๋๋ค.
- ํ๋ผ๋ฏธํฐ๊ฐ 0์ ๊ฐ๊น์ธ ๋ GD๊ฐ ์ ๋์ํ ์๋ ์๋ค.
'AI > Coursera' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Coursera] 7. Hyperparameter tuning, Batch Normalization (0) | 2024.01.01 |
---|---|
[Coursera] 6. Opitmization (0) | 2023.12.31 |
[Coursera] 4. Practical Aspects of Deep Learning (0) | 2023.12.27 |
[Coursera] 3. Gradient Descent (0) | 2023.12.27 |
[Coursera] 2. Logistic Regression (0) | 2023.12.17 |