ResNet
- ResNet์ด ํ์ํ ์ด์
- ResNet์ ๊ตฌ์กฐ
- ResNet์ ์ฌ์ฉํ๋ฉด ์ฑ๋ฅ์ด ์ข์์ง ์ ์๋ ์ด์
- ResNet ์ต์ข
ResNet
1. ResNet์ด ํ์ํ ์ด์
์ด์ ์ ๋ง์ ์ฐ๊ตฌ๋ค์์ ๋ชจ๋ธ์ layer๊ฐ ๊น์ด์ง์๋ก ์ฑ๋ฅ์ด ๋จ์ด์ง๋ ํ์์ด ๋ฐ์ํจ์ ๋ฐํ๋๋ค.
์ด๊ฒ์ ์์ธ์ vanishing gradient / exploding gradient ๋ฌธ์ ๋๋ฌธ์ ํ์ต์ด ์ ์ด๋ค์ง์ง ์๊ธฐ ๋๋ฌธ์ด๋ค.
์ด๊ฒ์ overfitting๊ณผ๋ ๋ค๋ฅธ "degradation" ๋ฌธ์ ์ด๋ค.
overfitting์ด ์ผ์ด๋ฌ๋ค๋ฉด 20-layer๋ณด๋ค 56-layer์ training error๊ฐ ๋ ๋ฎ์์ผํ์ง๋ง,
์์ ์ฌ์ง์ ๋ณด๋ฉด tranining error, test error ๋ชจ๋ 20-layer๋ณด๋ค 56-layer์์ ๋๊ธฐ ๋๋ฌธ์ด๋ค.
์ธต์ด ๊น์ด์ง์๋ก ํ์ต์ด ์ ๋๋ก ์งํ๋์ง ์๋ degradation ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ ์ ์๋ ๋ฐฉ์์ผ๋ก ResNet์ด ์ ์๋์๋ค.
2. ResNet์ ๊ตฌ์กฐ
$$ z^{[l+1]} = W^{[l+1]}a^{[l]}+b^{[l+1]} $$
$$ a^{[l+1]} = relu(z^{[l+1]}) $$
$$ z^{[l+2]} = W^{[l+2]}a^{[l+1]}+b^{[l+2]} $$
$$ a^{[l+2]} = relu(z^{[l+2]}+a^{[l]}) $$
3. ResNet์ ์ฌ์ฉํ๋ฉด ์ฑ๋ฅ์ด ์ข์์ง ์ ์๋ ์ด์
- ResNet์ ์ฌ์ฉํด๋ ์ฑ๋ฅ์ด ํ๋ฝํ์ง๋ ์๋๋ค. ์๋ํ๋ฉด identity mapping์ ํ์ตํ๋ ๊ฒ์ ๋งค์ฐ ์ฝ๊ธฐ ๋๋ฌธ์ด๋ค.
- $$ a^{[l+2]} = relu(z^{[l+2]}+a^{[l]}) $$
- $$ a^{[l+2]} = relu(W^{[l+2]}a^{[l+1]}+b^{[l+2]}+a^{[l]}) $$
- W, b๊ฐ 0์ด๊ธฐ๋ง ํ๋ฉด a^[l+2] = a^[l]์ด ๋๋ค.
- ์ด๊ฒ์ด ํฐ ์ ๊ฒฝ๋ง์ ์ค๊ฐ์ด๋ ๋ ์ด๋์ธ๊ฐ์ ๋ํด๋ ์ํ๋ฅ๋ ฅ์ด ์ ํด๋์ง ์๋ ์ด์ ์ด๋ค.
- ์ด layer๋ค์ด ํญ๋ฑํจ์๋ฅผ ํ์ตํ๋ ๊ฒ์ด ์ฝ๊ธฐ ๋๋ฌธ์ ์ํ ๋ฅ๋ ฅ์ด ์ ํด๋์ง ์๊ณ , ์ฌ์ง์ด ๋ ์ ์ํํ ์ ์๋ฐ๋ ๊ฒ์ ๋ณด์ฅํ๋ค.
- ์ ๊น, ๊ทธ๋ ๋ค๋ฉด ๊ทธ๋ฅ ์ผ๋ฐ network๋ฅผ ์ฌ์ฉํ๋ฉด identity mapping์ ํ์ตํ๊ธฐ๊ฐ ์ด๋ ค์ด๊ฐ?
- $$ z^{[l+1]} = W^{[l+1]}a^{[l]}+b^{[l+1]} $$
- $$ a^{[l+1]} = relu(z^{[l+1]}) $$
- $$ z^{[l+2]} = W^{[l+2]}a^{[l+1]}+b^{[l+2]} $$
- $$ a^{[l+2]} = relu(z^{[l+2]}) $$
- ์์ a^[l+2] = a^[l]์ด ๋๋๋ก W, b๋ค์ ํ์ตํ๋ ๊ฒ์ ์ด๋ ค์ด ์ผ์ด๋ค.
- residual block ์์ด ํญ๋ฑํจ์๋ฅผ ํ์ตํ๋ ๊ฒ์ ์ด๋ ค์ด ์ผ์ด๊ธฐ์, ์ธต์ ์์์๋ ๋ถ๊ตฌํ๊ณ ์ฑ๋ฅ์ด ๋๋น ์ง๋ ์ด์ ์ด๋ค.
- ResNet์ ์ฌ์ฉํ๋ฉด ์ฑ๋ฅ์ด ํฅ์๋ ์ ์๋ ์ฌ์ง๊ฐ ์กด์ฌํ๋ค.
- ์ฐ๋ฆฌ์ ๋ชฉํ๋ "์ธต์ ์์๋ ์ํ๋ฅ๋ ฅ์ ๋จ์ดํธ๋ฆฌ์ง ๋ง์!"๊ฐ ์๋๋ผ,
"์ธต์ ์์๋ ์ํ๋ฅ๋ ฅ์ ํฅ์์ํค์!"์ด๋ค. - residual block์ ์ถ๊ฐํด์ ์ธต์ ์์ ๋, residual block์ unit๊ฐ ์ ์ฉํ ๊ฒ์ ํ์ตํ๋ค๋ฉด,
์์์ ์ธ๊ธํ ํญ๋ฑํจ์๋ฅผ ํ์ตํ๋ ๊ฒ๋ณด๋ค ํจ์ฌ ์ข์ ๊ฒฐ๊ณผ๋ฅผ ๋ผ ์ ์์ ๊ฒ์ด๋ค.
- ์ฐ๋ฆฌ์ ๋ชฉํ๋ "์ธต์ ์์๋ ์ํ๋ฅ๋ ฅ์ ๋จ์ดํธ๋ฆฌ์ง ๋ง์!"๊ฐ ์๋๋ผ,
+)
- $$ a^{[l+2]} = relu(z^{[l+2]}+a^{[l]}) $$
- ์ฌ๊ธฐ์ z^[l+2]์ a^[l]์ ํฌ๊ธฐ๊ฐ ๋์ผํ์ง ์์ ๊ฒฝ์ฐ์๋
- $$ a^{[l+2]} = relu(z^{[l+2]}+Wa^{[l]}) $$
- ์๋์ ๊ฐ์ด W๋ฅผ ๊ณฑํด์ฃผ์ด ๋์ผํ shape์ผ๋ก ๋ณ๊ฒฝํด์ฃผ๋ฉด ๋๋ค.
- ์ฌ๊ธฐ์ W๋ parameter matrix์ผ์๋ ์๊ณ ,
- a^[l]์ zero padding์ ๋ํด์ฃผ๋ ์ญํ ์ ์ํํด์ค ์๋ ์๋ค.
4. ResNet
3 layer ๋ค์ feature map๊ณผ x์ shape๊ฐ ๋์ผํ ๊ฒฝ์ฐ ๋ค์๊ณผ ๊ฐ์ด skip connection ์ ์ฉ
3 layer ๋ค์ feature map๊ณผ x์ shape๊ฐ ๋ค๋ฅผ ๊ฒฝ์ฐ ๋ค์๊ณผ ๊ฐ์ด skip connection ์ ์ฉ
'๐ > Coursera_DL' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
WEEK6 : convNet ์ฌ์ฉ์ ๋์์ด ๋ ์ง์ (0) | 2020.12.23 |
---|---|
WEEK6 : Inception (googLeNet) (0) | 2020.12.23 |
WEEK5 : CNN (convolutional neural network) (0) | 2020.12.21 |
WEEK5 : end to end DL (0) | 2020.12.21 |
WEEK5 : Multi-Task Learning (0) | 2020.12.20 |