๐ ํด๋น ํฌ์คํ ์ ๊ถ์ฒ ๋ฏผ๋์ CNN Fundamental ์๋ฒฝ ๊ฐ์ด๋ ๊ฐ์๋ฅผ ๋ฃ๊ณ ๋ ํ ๋ฐฐ์ด ๋ด์ฉ์ ์ ๋ฆฌํ๊ณ ์ ํ๋ ๋ชฉ์ ํ์ ์์ฑ๋๋ ํฌ์คํ ์ ๋๋ค. ํ๋จ์ ํฌ์คํ ์์ ์ฌ์ฉ๋๋ ์ค์ต ์ฝ๋ ๋ฐ ์๋ฃ๋ ํ์๊ฐ ์ง์ ์ฌ๊ตฌ์ฑํ ์๋ฃ์ด๋ฉฐ ๊ถ์ฒ ๋ฏผ๋์ ์๋ฃ๋ฅผ ๊ทธ๋๋ก ์ธ์ฉํ์ง ์์์์ ํํ ์๋ ค๋๋ฆฝ๋๋ค.
์ด๋ฒ ํฌ์คํ ์์๋ Skip Connection ์ด๋ผ๋ ๊ฐ๋ ์ ์ต์ด๋ก ํ์ฉํด์ Residual Block์ ์ฐ์์ ์ผ๋ก ์์ ๋งค์ฐ ๊น์ ๋คํธ์ํฌ๋ฅผ ํ์ฑํ์์๋ ๋ถ๊ตฌํ๊ณ ์ด์ CNN ๋ถ๋ฅ ๋ชจ๋ธ์ธ GoogleNet ๋ณด๋ค ๋ ๋์ ์ฑ๋ฅ์ ์ด๋ ResNet์ ๋ํด ์์๋ณด๊ณ ์ ํ๋ค.
1. ResNet์ ์ ๋ฑ์ฅํ์๊น?
์์ด์ ์ธ ์ง๋ฌธ์ผ๋ก ๋์๊ฐ๋ณด์. ์ ๋ฒ ํฌ์คํ ์์ ๋ฐฐ์ด GoogleNet๋ ์ฑ๋ฅ์ด ๋๋ฆ ๊ด์ฐฎ์ ํธ์ด์๋๋ฐ, ์ ์๋ก์ด ResNet์ด ๋ฑ์ฅํ์๊น? ๋น์ฐํ GoogleNet ๋ณด๋ค ๋ ์ข์ ์ฑ๋ฅ์ ๋ง๋ค์ด๋ด๊ธฐ ์ํจ์ด ์ฃผ์์์ ๊ฒ์ด๋ค. ๊ทธ๋ฐ๋ฐ GoogleNet ๋ณด๋ค ๋ ์ข์ ์ฑ๋ฅ์ ์ด๋๊ธฐ ์ํด์ ๊ทธ๋์ ํด์๋ ๋ฐฉ๋ฒ์ธ ์ปค๋ ์ฌ์ด์ฆ๋ฅผ ํ๋ํ๊ฑฐ๋ Dropout, Weight Decay์ ๊ฐ์ ์ฌ๋ฌ๊ฐ์ง ๊ธฐ๋ฒ์ ์ฌ์ฉํด๋ณด์์ง๋ง ํ๊ณ์ ์ ๋๋ฌํ๋ค. ๊ฒฐ๊ตญ GoogleNet ๋ณด๋ค ๋ ๊น์ ๋คํธ์ํฌ๋ฅผ ์์์ผ ์ข์ ์ฑ๋ฅ์ ์ด๋์ด๋ผ ์ ์์ ๊ฒ ๊ฐ์๋ฐ ๊น์ ๋คํธ์ํฌ๋ฅผ ์๊ฒ ๋๋ค๋ฉด Gradient Vanishing(๊ธฐ์ธ๊ธฐ ์์ค)๊ณผ ๊ฐ์ ์น๋ช ์ ์ธ ๋ฌธ์ ๋ฅผ ๋ฐ์์ํจ๋ค. ๊ทธ๋์ ๋คํธ์ํฌ๋ฅผ ๊น๊ฒ ์์ผ๋ฉด์๋ ๊ธฐ์ธ๊ธฐ ์์ค ๋ฌธ์ ๋ฅผ ๋ฐ์์ํค์ง ์๋ ๋ฐฉ๋ฒ์ด ๋ฌด์์ผ๊น ํ๋ ๊ฒ์์ ์ถ๋ฐํด ResNet์ด ๋ฑ์ฅํ๊ฒ ๋์๋ค.
2. Gradient Vanishing์ ๋ง์ผ๋ ค๋ฉด?
๊ทธ๋ ๋ค๋ฉด ๊ธฐ์ธ๊ธฐ ์์ค์ ์ด๋ป๊ฒ ๋ง์ ์ ์์๊น? ์ฐ๊ตฌ์ ๋ถ๋ค์ Identity Mapping์ด๋ผ๋ ๊ฒ์ ์ฃผ๋ชฉํ๋ค. Identity Mapping์ ๊ฐ๋จํ๊ฒ ๋งํด์ ์ ๋ ฅ์ ์ด๋ค ํน์ ํ ํจ์์ ๋ค์ด๊ฐ๊ฒ ํ ํ ๋์จ ์ถ๋ ฅ์ด ์ ๋ ฅ๊ณผ ๋์ผํ ๊ฒ์ ์๋ฏธํ๋ค. ๋ฐ๋ก ์๋์ ๊ฐ์ด ๋ง์ด๋ค.
๊ทธ๋ฐ๋ฐ ์ด๋ฅผ CNN์ ์ ์ฉํ๋ ๊ฒ์ ์ฌ์ค์ ๋ถ๊ฐ๋ฅํ๋ค. ์๋ํ๋ฉด ์ Identity Mapping์ด ๊ฐ๋ฅํ๊ฒ ํ๋ ๊ฒ์ ๋๊ฐ์ $x$๊ฐ์ ๋์ค๊ฒ ํ๋ ํ์ฑํจ์์ธ $f(x)$๊ฐ ์ ์ด๋ ์ ํํจ์์ฌ์ผ ํ๋ค๋ ๊ฒ์ด๋ค. $y = x$ ์ฒ๋ผ ๋ง์ด๋ค. ๊ทธ๋ฐ๋ฐ CNN์ ์๋ค์ํผ ํ์ฑํจ์๋ฅผ Relu ๊ฐ์ ๋น์ ํ ํจ์๋ฅผ ํ์ฉํ ์ ๋ฐ์ ์๋ค. ๊ทธ๋์ผ ํผ์ณ ๋งต์ ๋น์ ํ ํน์ง์ ํ์ตํ์ฌ ๋ค์ํ ํน์ง์ ์ถ์ถํ ์ ์๊ธฐ ๋๋ฌธ์ด๋ค. ๊ทธ๋ ๋ค๋ฉด CNN์์ Identity Mapping์ ๊ฐ๋ฅํ๊ฒ ํ ์ ์๋ ๋ฐฉ๋ฒ์ ์์๊น?
3. Residual์ ํ์ฉํ์
๊ฐ์๊ธฐ Residual์ด ๋ฑ์ฅํ๋ค. ์ด๋ฅผ ์ดํดํ๊ธฐ ์ํด์ ์ฐ์ ์ฐ๋ฆฌ๊ฐ ์์์ ํจ์ $H(x)$๋ฅผ ํ๋ ์ถ๊ฐํด๋ณด์. ๊ทธ๋ฆฌ๊ณ ๋ค์๊ณผ ๊ฐ์ ๋ฑ์์ ๋ง์กฑํ๋ค๊ณ ๊ฐ์ ํ์. $$F(x) = H(x) + x$$
์ ์์์์ $F(x)$๋ $x$๋ผ๋ ์ ๋ ฅ ๋ฐ์ดํฐ๋ฅผ ์ด๋ค ์ปจ๋ณผ๋ฃจ์ ๋ ์ด์ด์ ๋ฃ์์ ๋ ๊ทธ ์ถ๋ ฅ๊ฐ์ ๋์ค๊ฒํ๋ ์ผ์ข ์ ํ๋ผ๋ฏธํฐ ํจ์๋ฅผ ์๋ฏธํ๋ฉฐ $x$๋ฅผ $F(x)$์ ๋ฃ์ด ๋์จ ๊ฐ ์์ฒด๋ ์ปจ๋ถ๋ฃจ์ ๋ ์ด์ด๋ฅผ ํต๊ณผํ ์ถ๋ ฅ๊ฐ ์์ฒด๋ฅผ ์๋ฏธํ๋ค. ๊ทธ๋ฆฌ๊ณ ์ค๋ฅธ์ชฝ์ $H(x)$๋ ์ฐ๋ฆฌ๊ฐ ๋ฐฉ๊ธ ์ถ๊ฐํ ์์์ ํจ์๋ฅผ ์๋ฏธํ๊ณ $x$๋ ์ ๋ ฅ ๋ฐ์ดํฐ๋ฅผ ์๋ฏธํ๋ค.(์ด ๋, $x$๋ ์ ๋ ฅ ๋ฐ์ดํฐ ๋๋ ์ด์ ๋ ์ด์ด๋ฅผ ํต๊ณผํด์ ๋์จ ์ถ๋ ฅ๊ฐ์ด๋ค)
์ ๋ฑ์์์ Identity Mapping์ ๊ฐ๋ฅํ๊ฒ ํ๋ ค๋ฉด ์์๋ก ๋ง๋ ํจ์ $H(x)$๋ฅผ 0์ผ๋ก ๋ง๋ค์ด์ฃผ์ด์ผ ํ๋ค. ๊ทธ๋์ผ $F(x) = x$๊ฐ ๋๋๊น ๋ง์ด๋ค. ์ด ๋, ์ฐ๋ฆฌ๋ $H(x)$๋ฅผ ์ปจ๋ณผ๋ฃจ์ ๋ ์ด์ด๋ง์ ํ๋ผ๋ฏธํฐ ํจ์๋ก ๊ฐ์ฃผํ๊ณ ๊ทธ ์ถ๋ ฅ๊ฐ์ $x$๋ฅผ ๋ํด์ฃผ๋ ๊ทธ๋ฆผ์ ์๊ฐํ ์ ์๋ค. ์ด๋ฅผ ๋์ํํ๋ฉด ๋ค์๊ณผ ๊ฐ๋ค.
์ฌ๊ธฐ์ ์ฃผ์ํด์ผ ํ ์ ์ ๋ณด๋ผ์ ์ ์ addํ ๋ ๋ฐฐ์ด์ ์ฐจ์์๋ฅผ ๋๊ฐ์ด ๋ง์ถ์ด ์ฃผ์ด์ผ ํ๋ค. ์ฆ, Feature Map 1๊ณผ Input or Previous Layer๋ผ๊ณ ๋์ด ์๋ ๋ถ๋ถ์ shape๋ฅผ ๋ง์ถฐ ์ฃผ์ด์ผ ํ๋ค. ๊ทธ๋์ผ ๊ฐ๋ผ๋ฆฌ ๋ํ๋ ์ฐ์ฐ์ ํ๋ add ์ฐ์ฐ์ ํ ์ ์๊ธฐ ๋๋ฌธ์ด๋ค. ์ด add ์ฐ์ฐ์ shortcut ๋๋ skip connection ์ด๋ผ๊ณ ํ๋ค.
์ด์จ๊ฑด ์ฐ๋ฆฌ๋ ์ด์ $H(x)$๊ฐ 0์ด ๋๋๋ก ํ์ต์ ์งํํด์ผ ํ๋ค. ์ด ๋ $F(x) = H(x) + x$์์ $x$๋ฅผ ์ดํญ์์ผ์ฃผ๋ฉด ์์ด ๋ค์๊ณผ ๊ฐ์์ง๋ค. $$H(x) = F(x) - x$$
์ด ๋, $H(x)$๋ ์ ๋ณด๋ฉด ์ผ์ข ์ ์์ฐจ๊ฐ ๋๋ค. ์ฆ, $F(x)$๋ผ๋ ์ปจ๋ณผ๋ฃจ์ ์ ๋ชจ๋ ๊ฑฐ์น๊ณ ๋ ํ์ ์ถ๋ ฅ๊ฐ๊ณผ $x$๋ผ๋ ์ ๋ ฅ๊ฐ์ ์ฐจ์ด๋ ์ถ๋ ฅ๊ฐ๊ณผ ์ ๋ ฅ๊ฐ์ ๋๊ฐ๊ฒ ํด์ผ ํ๋ค๋ Identity Mapping ๊ด์ ์์ $H(x)$๋ ์์ฐจ(Residual)๊ฐ ๋๋ค. ๊ทธ๋์ ResNet์ด Residual Network๋ผ๊ณ ๋ถ๋ฆฌ๋ ์ด์ ๋ค. ๊ทธ๋ฆฌ๊ณ ์์ ๊ฐ์ ๊ณผ์ ์ Residual Block ์ด๋ผ๊ณ ๋ถ๋ฅธ๋ค.
๋ ์ญ์ ํ๋ฅผ ์ํํ๊ฒ ๋๋ฉด $F(x)$๋ฅผ ๋ฏธ๋ถํด์ผ ํ๋ค. $F(x)$๋ฅผ ๋ฏธ๋ถํด์ผ ํ๋ ๊ฒ์ ๊ณง $H(x) + x$๋ฅผ ๋ฏธ๋ถํ๋ ๊ฒ์ธ๋ฐ, ์ด ๋ ์๋ฌด๋ฆฌ ๋ฏธ๋ถ์ ํด๋ 1์ด ๋จ๊ธฐ ๋๋ฌธ์ ๊ธฐ์ธ๊ธฐ ์์ค ๋ฌธ์ ๋ฅผ ์๋ฐฉํ ์ ์๋ค.
4. Residual Block
ResNet์์ ์ฌ์ฉํ๋ Residual Block์ ์ ๋ชฉ์ฐจ์์ ๋ณธ ๊ทธ๋ฆผ์ด๋ ์ฝ๊ฐ์ ๋ค๋ฅด๋ค. ๋ค๋ฅด๋ค๊ณ ํด์ ํฐ ํ์ ๋ฐ๋์ง ์๊ณ Batch Normalization๊ณผ ๊ฐ์ ๊ณผ์ ์ ์ถ๊ฐํ ๊ฒ ๋ฟ์ด๋ค.
ResNet ์ ์ฒด ์ํคํ ์ฒ๋ ์์ ๊ฐ์ Residual Block์ ์ฐ์์ ์ผ๋ก ์ถ๊ฐํ ๋ชจ๋ธ์ด๋ค.
์ ๊ทธ๋ฆผ์์ ํ์ดํ ๊ณก์ ์ผ๋ก ๋์ด ์๋ ๋ถ๋ถ์ด ๋ฐ๋ก Residual Block์์ ๋ฐ์ํ๋ Skip Connection์ ์๋ฏธํ๋ค. ์ฐธ๊ณ ๋ก ResNet์ ์์ Layer ๊ฐ์์ ๋ฐ๋ผ ๋ชจ๋ธ ์ด๋ฆ์ด ResNet50, ResNet101, ResNet152 ๋ฑ์ด ์๋ค. ๊ทธ๋ฐ๋ฐ ResNet50 ์ดํ๋ก ๋ถํฐ๋ ๋ชจ๋ธ์ ๊น์ด๊ฐ ๋งค์ฐ ๊น์ด์ง๊ธฐ ๋๋ฌธ์ ํ๋ผ๋ฏธํฐ ๊ฐ์๋ ๋ง์์ง๋ค. ๊ทธ๋ ๊ธฐ ๋๋ฌธ์ Residual Block ๋ด์์ ์ปจ๋ณผ๋ฃจ์ ํ ๋ 1 x 1 ์ปจ๋ณผ๋ฃจ์ ์ ๋งค๋ฒ ์ ์ฉํด ํ๋ผ๋ฏธํฐ ๊ฐ์๋ฅผ ์ค์ฌ ์ฐ์ฐ๋์ ์ค์ด๊ณ ๊ฒฐ๊ตญ ์ค๋ฒํผํ ๋ ์๋ฐฉํ ์ ์๊ฒ ๋๋ค. 1 x 1 ์ปจ๋ณผ๋ฃจ์ ์ ํจ๊ณผ์ ๋ํด์๋ ์ ๋ฒ ํฌ์คํ ์์ ์ธ๊ธํ์ผ๋ ์ฌ๊ธฐ์๋ ๋์ด๊ฐ๊ฒ ๋ค.
'Data Science > Computer Vision' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[ML] GoogleNet(InceptionNet) CNN ๋ชจ๋ธ (0) | 2021.10.04 |
---|---|
[ML] Explainable AI - CAM & Grad CAM (1) | 2021.07.31 |
[ML] Mask RCNN Instance Segmentation ๋ชจ๋ธ (0) | 2021.05.06 |
[ML] Retina Net Object Detection ๋ชจ๋ธ (0) | 2021.04.26 |
[ML] YOLO(You Only Look Once) Object Detection ๋ชจ๋ธ (5) | 2021.04.22 |