Week 9. CNN ๊ธฐ์ด โ ํฉ์ฑ๊ณฑ ์ ๊ฒฝ๋ง
์ด๋ฏธ์ง๋ฅผ ์ํด ํ์ด๋ ์ ๊ฒฝ๋ง. ํฉ์ฑ๊ณฑ์ด๋ผ๋ ๋จ์ํ ์ฐ์ฐ์ด ์ด๋ป๊ฒ ๋ชจ์๋ฆฌยท์ง๊ฐยท๋ฌผ์ฒด๋ฅผ ์ฐจ๋ก๋ก ํ์ตํ๋์ง ๋ด ๋๋ค.
์ด๋ฒ ์ฃผ์ ๋ฐฐ์ฐ๋ ๊ฒ
- ์์ ์ฐ๊ฒฐ๋ง์ ํ๊ณ โ ์ด๋ฏธ์ง์๋ ๋ถ์ ํฉ
- ํฉ์ฑ๊ณฑ ์ฐ์ฐ
- ์คํธ๋ผ์ด๋์ ํจ๋ฉ
- ํ๋ง โ ๋ค์ด์ํ๋ง
- LeNet โ ์ต์ด์ ์ฑ๊ณต ์ฌ๋ก
1. ์์ ์ฐ๊ฒฐ๋ง์ ์ ์ด๋ฏธ์ง์ ๋ถ์ ํฉํ๊ฐ
W7 MLP์์ ๋ฐฐ์ด ์์ ์ฐ๊ฒฐ๋ง์ ์ด๋ฏธ์ง์ ๊ทธ๋๋ก ์ฐ๋ฉด ๋ ๊ฐ์ง ์ฌ๊ฐํ ๋ฌธ์ ๊ฐ ์๊น๋๋ค.
๋ฌธ์ 1 โ ํ๋ผ๋ฏธํฐ ํญ๋ฐ. $28 \times 28$ ํฝ์ MNIST ์ด๋ฏธ์ง๋ฅผ 1์ฐจ์์ผ๋ก ํด๋ฉด 784๊ฐ ์ ๋ ฅ์ด ๋ฉ๋๋ค. ์๋์ธต์ 256๊ฐ ๋ด๋ฐ๋ง ๋ฌ๋ ์ฒซ ์ธต ๊ฐ์ค์น ์๋ $784 \times 256 \approx 200{,}000$๊ฐ. ์ด๋ฏธ์ง๊ฐ $224 \times 224$ ์ปฌ๋ฌ๋ผ๋ฉด ์ ๋ ฅ์ด $224 \times 224 \times 3 = 150{,}528$๊ฐ๊ฐ ๋๊ณ , ๊ฐ์ ์๋์ธต ํฌ๊ธฐ๋ก 4์ฒ๋ง ๊ฐ ๊ฐ์ค์น๊ฐ ๋์ต๋๋ค. ์ค์ฉ์ ์ด๋ฏธ์ง ํฌ๊ธฐ์์ ์์ ์ฐ๊ฒฐ๋ง์ ๋ฉ๋ชจ๋ฆฌ์ ๊ณ์ฐ ๋น์ฉ ๋ชจ๋ ๊ฐ๋น ๋ถ๊ฐ๋ฅํฉ๋๋ค.
๋ฌธ์ 2 โ ๊ตฌ์กฐ ์ ๋ณด ์์ค. ๋ ์ฌ๊ฐํ ๋ฌธ์ ๋ "์ด๋ฏธ์ง๋ฅผ 1์ฐจ์์ผ๋ก ํธ๋ค"๋ ํ์ ์์ฒด์ ๋๋ค. ํฝ์ $(5, 5)$์ $(5, 6)$์ ์ด์์ด๋ผ ์๋ฏธ์ ์ผ๋ก ์ฐ๊ด์ด ๊น์ง๋ง, 1์ฐจ์์ผ๋ก ํด๋ฉด $(5, 5)$๋ ์ธ๋ฑ์ค 145์ด๊ณ $(5, 6)$์ 146์ด ๋์ด ์๋ฌด ๊ด๊ณ ์๋ ์ซ์๊ฐ ๋ฉ๋๋ค. ๊ฒ๋ค๊ฐ $(5, 5)$์ $(6, 5)$ (๋ฐ๋ก ์๋)๋ ์ธ๋ฑ์ค 145์ 173์ด ๋์ด "์ด์"์ด๋ผ๋ ์ ๋ณด๊ฐ ์์ ํ ์ฌ๋ผ์ง๋๋ค. ์์ ์ฐ๊ฒฐ๋ง์ ์ด ์ ๋ณด๋ฅผ 0๋ถํฐ ์ฌ๋ฐ๊ฒฌํด์ผ ํ๋ฏ๋ก ์์ฒญ๋ ๋ฐ์ดํฐ์ ์๊ฐ์ด ๋ญ๋น๋ฉ๋๋ค.
๋ํ "๊ณ ์์ด๊ฐ ์ด๋ฏธ์ง ์ผ์ชฝ์ ์์ ๋"์ "์ค๋ฅธ์ชฝ์ ์์ ๋"๋ ํฝ์ ํจํด์ด ์์ ํ ๋ค๋ฅด๋ฏ๋ก, ์์ ์ฐ๊ฒฐ๋ง์ ์ด ๋ ๊ฒฝ์ฐ๋ฅผ ๋ ๋ฆฝ์ ์ผ๋ก ํ์ตํด์ผ ํฉ๋๋ค. ์ฌ๋์๊ฒ "์ผ์ชฝ ๊ณ ์์ด"์ "์ค๋ฅธ์ชฝ ๊ณ ์์ด"๋ฅผ ๋ณ๊ฐ์ ํ๋ จ ๋ฐ์ดํฐ๋ก ์ ๊ณตํด์ผ ํ๋ค๋ ๋ป์ธ๋ฐ, ๋ง์ด ์ ๋ฉ๋๋ค.
์ด ๋ ๋ฌธ์ ๋ฅผ ํ ๋ฒ์ ํด๊ฒฐํ๋ ์์ด๋์ด ๋ ๊ฐ์ง๊ฐ CNN์ ํต์ฌ์ ๋๋ค:
- ์ง์ญ ์ฐ๊ฒฐ(Local connectivity) โ ๋ด๋ฐ์ด ์ ๋ ฅ์ ๋ชจ๋ ํฝ์ ์ด ์๋๋ผ ์์ ๊ตญ์ ์์ญ๋ง ๋ณธ๋ค. ์๊ฐ ํผ์ง์ ์์ฉ์ฅ(receptive field) ๊ตฌ์กฐ์์ ์๊ฐ.
- ๊ฐ์ค์น ๊ณต์ (Weight sharing) โ ๊ฐ์ ํํฐ๋ฅผ ์ด๋ฏธ์ง ์ ์ฒด์ ์ ์ฉํ๋ค. "์ผ์ชฝ ๊ณ ์์ด"์ "์ค๋ฅธ์ชฝ ๊ณ ์์ด"๊ฐ ๊ฐ์ ํํฐ ๋ฐ์์ ๋ง๋ค์ด ํํ์ด๋ ๋ถ๋ณ์ฑ์ ์ป์.
๋ ์์ด๋์ด๋ฅผ ๊ฒฐํฉํ ์ฐ์ฐ์ด ๋ฐ๋ก ํฉ์ฑ๊ณฑ(convolution)์ ๋๋ค.
2. ํฉ์ฑ๊ณฑ ์ฐ์ฐ โ ์ด๋ฏธ์ง์ ์ธ์ด
์ํ์์ ํฉ์ฑ๊ณฑ์ ๋ ํจ์์ "๋ฐ์ด ๊ณฑํ๊ธฐ ์ ๋ถ"์ด์ง๋ง, ๋ฅ๋ฌ๋ ์ค๋ฌด์์๋ ๋ ๋จ์ํ๊ฒ "์์ ํํฐ๋ฅผ ์ด๋ฏธ์ง ์๋ก ๋ฏธ๋๋ฌ๋จ๋ฆฌ๋ฉฐ ์์๋ณ ๊ณฑ์ ํฉ์ ๊ตฌํ๋ ์ฐ์ฐ"์ผ๋ก ์ดํดํ๋ฉด ๋ฉ๋๋ค:
$$ S(i,j) = \sum_{m=-k}^{k} \sum_{n=-k}^{k} I(i+m, j+n) \cdot K(m,n) $$์ฌ๊ธฐ์ $I$๋ ์ ๋ ฅ ์ด๋ฏธ์ง, $K$๋ $(2k+1) \times (2k+1)$ ํฌ๊ธฐ์ ํํฐ(์ปค๋), $S$๋ ์ถ๋ ฅ(ํน์ง ๋งต, feature map)์ ๋๋ค. ํํฐ์ ๊ฐ ์์๋ ํ์ต ๊ฐ๋ฅํ ๊ฐ์ค์น. 3ร3 ํํฐ๋ผ๋ฉด 9๊ฐ ๊ฐ์ค์น + 1๊ฐ ํธํฅ = 10๊ฐ ํ๋ผ๋ฏธํฐ๋ก ํ ํน์ง์ ํํํฉ๋๋ค.
๊ฐ์ ํํฐ๋ฅผ ๋ชจ๋ ์์น์ ์ฐ๋ฏ๋ก ๊ฐ์ค์น๊ฐ ๊ณต์ ๋๊ณ , ๊ทธ ๋๋ถ์ ๋ ๊ฐ์ง ์ข์ ์ฑ์ง์ด ์๋์ผ๋ก ์๊น๋๋ค:
- ํํ์ด๋ ๋ฑ๋ณ์ฑ(translation equivariance) โ ์ ๋ ฅ์ด 10ํฝ์ ์ค๋ฅธ์ชฝ์ผ๋ก ์ด๋ํ๋ฉด ์ถ๋ ฅ๋ ์ ํํ 10ํฝ์ ์ค๋ฅธ์ชฝ์ผ๋ก ์ด๋.
- ํ๋ผ๋ฏธํฐ ํจ์จ โ ๊ฐ์ ํํฐ๊ฐ ๋ฐ๋ณต ์ฌ์ฉ๋๋ฏ๋ก ์๋ฐฑ๋ง ๊ฐ ํฝ์ ์ด๋ฏธ์ง๋ ์์ญ ๊ฐ์ ๊ฐ์ค์น๋ก ์ฒ๋ฆฌ ๊ฐ๋ฅ.
2.1 ๋ํ ํํฐ์ ์๋ฏธ
์์ผ๋ก ์ค๊ณํ ๊ณ ์ ์ ํํฐ๋ค์ ๋ณด๋ฉด ํฉ์ฑ๊ณฑ์ด ๋ฌด์์ ํ ์ ์๋์ง ์ง๊ด์ด ์กํ๋๋ค.
- Sobel X $\begin{bmatrix}-1 & 0 & 1\\ -2 & 0 & 2\\ -1 & 0 & 1\end{bmatrix}$ โ ์์ง ๋ฐฉํฅ ๋ฐ๊ธฐ ๋ณํ๋ฅผ ๊ฐ์ง. ์ธ๋ก ๋ชจ์๋ฆฌ์ ๊ฐํ๊ฒ ๋ฐ์.
- Sobel Y โ ์ํ ๋ฐฉํฅ ๋ฐ๊ธฐ ๋ณํ. ๊ฐ๋ก ๋ชจ์๋ฆฌ์ ๋ฐ์.
- Gaussian blur โ ์ฃผ๋ณ ํฝ์ ๊ณผ ํ๊ท ์ ๋ด์ด ๋ถ๋๋ฝ๊ฒ. ์ก์ ์ ๊ฑฐ์ ์ ์ฉ.
- Laplacian $\begin{bmatrix}0 & -1 & 0\\ -1 & 4 & -1\\ 0 & -1 & 0\end{bmatrix}$ โ 2์ฐจ ๋ฏธ๋ถ, ๋ชจ๋ ๋ฐฉํฅ์ ๋ชจ์๋ฆฌ.
CNN์ด ๋๋ผ์ด ์ด์ : ์ด๋ฐ ํํฐ๋ค์ ์ฌ๋์ด ์ค๊ณํ๋ ๊ฒ ์๋๋ผ ๋ฐ์ดํฐ๋ก๋ถํฐ ํ์ตํฉ๋๋ค. ํ๋ จ๋ CNN์ ์ฒซ ์ธต ํํฐ๋ฅผ ์๊ฐํํด๋ณด๋ฉด Sobel๊ณผ ๋น์ทํ ๋ชจ์๋ฆฌ ๊ฒ์ถ๊ธฐ, ์ ๋๋น ๊ฒ์ถ๊ธฐ, ์ง๊ฐ ๊ฒ์ถ๊ธฐ ๋ฑ์ด ์๋์ผ๋ก ๋ํ๋ฉ๋๋ค. ๋ค์ชฝ ์ธต๋ค๋ก ๊ฐ์๋ก ๋ ์ถ์์ ์ธ ํน์ง(๋, ๋ฐํด, ์ผ๊ตด ์ผ๋ถ)์ด ํ์ต๋ฉ๋๋ค. ์ด ๊ณ์ธต์ ํน์ง ํ์ต์ด ๋ฅ๋ฌ๋์ ๋ณธ์ง์ด์ W10 ์ ์ดํ์ต์ด ๊ฐ๋ฅํ ์ด์ ์ ๋๋ค.
๐ฎ ์ธํฐ๋ํฐ๋ธ: 3ร3 ํํฐ ํธ์ง๊ธฐ
์ด๋ฏธ์ง์ ์ ์ฉํ 3ร3 ์ปค๋์ ์ง์ ๊ณ ๋ฅด์ธ์. ์๋ฒจ XยทY๋ ๋ชจ์๋ฆฌ๋ฅผ, ๋ธ๋ฌ๋ ๋ถ๋๋ฌ์์, ์คํ๋์ ๊ฐ์กฐ๋ฅผ ๋ง๋ญ๋๋ค.
3. ์คํธ๋ผ์ด๋์ ํจ๋ฉ
์คํธ๋ผ์ด๋(stride)๋ ํํฐ๊ฐ ํ ๋ฒ์ ๋ฏธ๋๋ฌ์ง๋ ์นธ ์. ๋ณดํต 1์ด์ง๋ง 2๋ก ๋๋ฉด ์ถ๋ ฅ ํฌ๊ธฐ๊ฐ ๋ฐ์ผ๋ก ์ค์ด๋ญ๋๋ค.
ํจ๋ฉ(padding)์ ์ ๋ ฅ ๊ฐ์ฅ์๋ฆฌ์ 0์ ๋๋ฌ์ฃผ๋ ๊ฒ. "same" ํจ๋ฉ์ด๋ฉด ์ถ๋ ฅ ํฌ๊ธฐ๊ฐ ์ ๋ ฅ๊ณผ ๊ฐ์์ง๋๋ค.
$$ \text{out} = \left\lfloor \frac{\text{in} + 2p - k}{s} \right\rfloor + 1 $$4. ํ๋ง
ํฉ์ฑ๊ณฑ ๋ค์ ๋ณดํต ๋งฅ์คํ๋ง์ ๋ก๋๋ค. 2ร2 ์์ญ์์ ์ต๋๊ฐ๋ง ๊ณจ๋ผ ์ถ๋ ฅ ํฌ๊ธฐ๋ฅผ ์ ๋ฐ์ผ๋ก ์ค์ ๋๋ค. ์ด๋ก์จ โ ๊ณ์ฐ๋์ ์ค์ด๊ณ , โก ์์ ์์น ๋ณํ์ ๊ฐ์ธํด์ง๋๋ค.
๐ฎ ์ธํฐ๋ํฐ๋ธ: 2ร2 ํ๋ง
๊ฐ์ ์ ๋ ฅ์ ๋งฅ์คํ๋ง๊ณผ ํ๊ท ํ๋ง์ ์ ์ฉํด ๊ฒฐ๊ณผ๋ฅผ ๋น๊ตํฉ๋๋ค.
3.1 ์คํธ๋ผ์ด๋ยทํจ๋ฉยท์ถ๋ ฅ ํฌ๊ธฐ ๊ณต์
ํฉ์ฑ๊ณฑ ์ฐ์ฐ์ ์ค์ ์ฝ๋๋ก ๊ตฌํํ ๋ ํ์ํ ํ์ดํผํ๋ผ๋ฏธํฐ:
- ์ปค๋ ํฌ๊ธฐ(kernel size) $k$ โ ํํฐ์ ๊ฐ๋ก/์ธ๋ก ํฌ๊ธฐ. ์ฃผ๋ก 3, 5, 7 ๋ฑ ํ์.
- ์คํธ๋ผ์ด๋(stride) $s$ โ ํํฐ๊ฐ ํ ๋ฒ์ ๋ช ํฝ์ ์ฉ ์ด๋ํ๋๊ฐ. $s=1$์ด๋ฉด ๋ชจ๋ ์์น, $s=2$๋ฉด ๊ฒฉ์นธ.
- ํจ๋ฉ(padding) $p$ โ ์ ๋ ฅ ๊ฐ์ฅ์๋ฆฌ์ 0์ ๋ช ํฝ์ ๋๋ฅผ์ง. ํ ๋๋ฆฌ ํฝ์ ๋ ํํฐ ์ค์ฌ์ ์ฌ ์ ์๊ฒ ํจ.
์ ๋ ฅ ํฌ๊ธฐ $W_\text{in}$์ ๋ํด ์ถ๋ ฅ ํฌ๊ธฐ๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค:
$$ W_\text{out} = \left\lfloor \frac{W_\text{in} + 2p - k}{s} \right\rfloor + 1 $$์๋ฅผ ๋ค์ด $28 \times 28$ ์ ๋ ฅ์ $3 \times 3$ ์ปค๋, $s=1$, $p=1$์ ์ฐ๋ฉด ์ถ๋ ฅ์ $28 \times 28$ ๊ทธ๋๋ก. ์ด๋ฅผ "same padding"์ด๋ผ ๋ถ๋ฅด๊ณ , ํฌ๊ธฐ๋ฅผ ์ ์งํ๋ฉด์ ํฉ์ฑ๊ณฑ์ ์ ์ฉํฉ๋๋ค. $s=2$๋ก ๋ฐ๊พธ๋ฉด ์ถ๋ ฅ์ $14 \times 14$๋ก ์ ๋ฐ.
3.2 ํ๋ง โ ํด์๋ ์ค์ด๊ธฐ์ ๋ถ๋ณ์ฑ ์ป๊ธฐ
ํ๋ง(pooling)์ ํฉ์ฑ๊ณฑ์ ์ง๊ฟ์ ๋๋ค. ํน์ง ๋งต์ ์์ ์์ญ(๋ณดํต $2 \times 2$)์ผ๋ก ๋๋๊ณ , ๊ฐ ์์ญ์์ ๋ํ๊ฐ ํ๋๋ง ๋จ๊น๋๋ค.
- ๋งฅ์ค ํ๋ง(Max pooling) โ ์์ญ ๋ด ์ต๋๊ฐ. "์ด ์์ญ์ ๊ฐํ ํน์ง์ด ์ด๋์๋ ์๋๊ฐ?"๋ฅผ ์บก์ฒ. ๊ฐ์ฅ ๋๋ฆฌ ์ฐ์.
- ํ๊ท ํ๋ง(Average pooling) โ ์์ญ ๋ด ํ๊ท . ๋ถ๋๋ฌ์ด ๋ค์ด์ํ๋ง.
- ์ ์ญ ํ๊ท ํ๋ง(Global Average Pooling, GAP) โ ์ ์ฒด ๋งต์ ํ๋์ ์ซ์๋ก. ResNet, Inception์์ ์์ ์ฐ๊ฒฐ์ธต ๋์ฒด.
$2 \times 2$ ํ๋ง์ ๊ณต๊ฐ ํด์๋๋ฅผ 4๋ถ์ 1๋ก ์ค์ ๋๋ค. ํด์๋๊ฐ ๋ฎ์์ง ๋งํผ ๋ค์ ์ธต์ ํํฐ๋ ๋ ๋์ ์ค์ ์์ญ์ ๋ณด๊ฒ ๋ฉ๋๋ค. ์ด๋ฅผ "์์ฉ์ฅ(receptive field)์ด ์ปค์ง๋ค"๊ณ ํํํฉ๋๋ค. ์ด ๊ณ์ธต์ ํ๋ ๋๋ถ์, ๊น์ ์ธต์ ์ ์ฒด ์ด๋ฏธ์ง ์์ค์ ํฐ ๊ตฌ์กฐ(์ผ๊ตด ์ ์ฒด, ์๋์ฐจ ์ ์ฒด)๋ฅผ ๋ณผ ์ ์๊ฒ ๋ฉ๋๋ค.
ํ๋ง์ ๋ ๋ค๋ฅธ ์ฅ์ ์ ์์ ํํ์ด๋์ ๋ํ ๋ถ๋ณ์ฑ์ ๋๋ค. ์ ๋ ฅ์ด 1ํฝ์ ์์ง์ฌ๋ $2 \times 2$ ํ๋ง์ ์ถ๋ ฅ์ ๋๊ฐ ๋ฐ๋์ง ์์ต๋๋ค โ "๋๋ต ์ด ์์ญ์ ํน์ง์ด ์๋ค"๋ง ์ค์ํ๊ธฐ ๋๋ฌธ. ์ด๋ CNN์ด ์ ํํ ์์น ๋์ "์์/์์"์ ์ง์คํ๊ฒ ๋ง๋ญ๋๋ค.
5. LeNet โ ์ต์ด์ ์ฑ๊ณต ์ฌ๋ก
1989~1998๋ ์ ๊ฑธ์ณ Bell Labs์ Yann LeCun์ด ๊ฐ๋ฐํ LeNet-5๋ CNN์ ํ๋์ ์ํ์ ๋๋ค. 1998๋ ๋ ผ๋ฌธ "Gradient-Based Learning Applied to Document Recognition"์์ ์ฐํธ๋ฒํธ ์๊ธ์จ ์ธ์๊ณผ ์ํ ๊ธ์ก ํ๋ ์ ์ฐ์๊ณ , ์ค์ ๋ก 1990๋ ๋ ํ๋ฐ ๋ฏธ๊ตญ ์ํ์ ์ํ ์ฒ๋ฆฌ ์์คํ ์ ๋ฐฐ์น๋์ด ์ ์ฒด ์ํ ์ฒ๋ฆฌ๋์ 10-20%๋ฅผ ์๋ ์ฒ๋ฆฌํ์ต๋๋ค. ์ด๋ ๋ฅ๋ฌ๋ ์ด์ ์ CNN์ด ์ค์ฉํ๋ ๊ฑฐ์ ์ ์ผํ ์ฌ๋ก๋ก ๊ธฐ๋ก๋ฉ๋๋ค.
LeNet-5์ ๊ตฌ์กฐ: [Conv5โPool2โConv5โPool2โFCโFCโOut]. ํ๋ผ๋ฏธํฐ ์๋ ์ฝ 6๋ง ๊ฐ, ํ๋ ๊ธฐ์ค์ผ๋ก ๋ณด๋ฉด ๊ทน๋๋ก ์์ง๋ง ๋น์ ํ๋์จ์ด๋ก๋ ํฐ ํธ์ด์์ต๋๋ค. ์ด ๋จ์ํ ๊ตฌ์กฐ๊ฐ ์ค๋๋ ResNet, Inception ๊ฐ์ ๊ฑฐ๋ ๋ชจ๋ธ์ ๊ธฐ๋ณธ ๋ ์ด์์์ ์ด๋ฏธ ๋ณด์ฌ์ฃผ๊ณ ์์ต๋๋ค โ "ํฉ์ฑ๊ณฑ์ผ๋ก ํน์ง ์ถ์ถ, ํ๋ง์ผ๋ก ๊ณต๊ฐ ์ถ์, ๋ง์ง๋ง์ ์์ ์ฐ๊ฒฐ์ธต์ผ๋ก ๋ถ๋ฅ".
LeNet ์ดํ 14๋ ๊ฐ CNN ์ฐ๊ตฌ๋ ๊ฑฐ์ ์ ์ฒด๋์ต๋๋ค. ์์ธ์ ๋ ๊ฐ์ง: ๋ฐ์ดํฐ๊ฐ ๋ถ์กฑํ๊ณ (๋น์ MNIST ์ธ์ ์ ๋๋ก ๋ ๋ฒค์น๋งํฌ๊ฐ ์์์), ํ๋์จ์ด๊ฐ ๋๋ ธ์ต๋๋ค. ์ด ์นจ๋ฌต์ 2012๋ Alex Krizhevsky์ AlexNet์ด ImageNet ๋ํ์์ 2๋ฑ๊ณผ 10%p ์ด์์ ๊ฒฉ์ฐจ๋ก ์๋์ ์ฐ์น์ ๊ฑฐ๋๋ฉด์ ํ ๋ฒ์ ๊นจ์ง๋๋ค. GPU, ๋น ๋ฐ์ดํฐ, ๊ทธ๋ฆฌ๊ณ Hinton์ ๋์ง๊ธด ๋ฏฟ์ โ ์ด ์ ์ด ๋ง๋ ์๊ฐ์ด ํ๋ ๋ฅ๋ฌ๋์ ์์์ ๋๋ค. ์์ธํ ์ด์ผ๊ธฐ๋ W10์์.
5.1 MNIST์์ LeNet์ด ๋ณธ ๊ฒ โ ํ ์ ๋ชจ์ ๋ฐ๋ผ๊ฐ๊ธฐ
ํ ์ด๋ฏธ์ง๊ฐ LeNet์ ํต๊ณผํ๋ฉฐ ์ด๋ป๊ฒ ๋ณํ๋๋์ง ๋จ๊ณ๋ณ๋ก ๋ด ์๋ค. ์ ๋ ฅ์ $28 \times 28$ ํ์์กฐ ์ด๋ฏธ์ง ํ ์ฅ, ํ ์ ๋ชจ์ $[1, 28, 28]$ (์ฑ๋, ๋์ด, ๋๋น).
- Conv1: $5 \times 5$ ํํฐ 6๊ฐ, stride=1, padding=0 โ ์ถ๋ ฅ $[6, 24, 24]$. ์ 24? $(28 - 5)/1 + 1 = 24$.
- Pool1: $2 \times 2$ max pooling, stride=2 โ $[6, 12, 12]$.
- Conv2: $5 \times 5$ ํํฐ 16๊ฐ โ $[16, 8, 8]$.
- Pool2: $2 \times 2$ โ $[16, 4, 4]$.
- Flatten: $16 \times 4 \times 4 = 256$์ฐจ์ ๋ฒกํฐ.
- FC1: 256 โ 120.
- FC2: 120 โ 84.
- Out: 84 โ 10 (ํด๋์ค ๊ฐ์).
๊ณต๊ฐ ํด์๋๋ $28 \to 24 \to 12 \to 8 \to 4$๋ก ์ค๊ณ , ์ฑ๋ ์(ํน์ง์ ์ข ๋ฅ)๋ $1 \to 6 \to 16$์ผ๋ก ๋์ด๋ฉ๋๋ค. "ํด์๋๋ ์ค์ด๊ณ ์ถ์ํ๋ ๋์ด๋" ์ด ํผ๋ผ๋ฏธ๋ ๊ตฌ์กฐ๊ฐ ํ๋ CNN์ ๋ณดํธ์ ํจํด์ ๋๋ค.
6. ์ฝ๋ ์์ (PyTorch)
import torch.nn as nn
class LeNet(nn.Module):
def __init__(self):
super().__init__()
self.conv1 = nn.Conv2d(1, 6, 5) # 1ch โ 6ch, 5ร5 ํํฐ
self.pool = nn.MaxPool2d(2, 2)
self.conv2 = nn.Conv2d(6, 16, 5)
self.fc1 = nn.Linear(16*4*4, 120)
self.fc2 = nn.Linear(120, 84)
self.fc3 = nn.Linear(84, 10)
def forward(self, x):
x = self.pool(torch.relu(self.conv1(x)))
x = self.pool(torch.relu(self.conv2(x)))
x = x.view(x.size(0), -1)
x = torch.relu(self.fc1(x))
x = torch.relu(self.fc2(x))
return self.fc3(x)
๐ ๋ ๊น์ด ๊ณต๋ถํ๊ธฐ
- Sung Kim Lec 11 โ CNN ํ๊ตญ์ด ๊ฐ์.
- CS231n Convolutional Networks โ Stanford, cs231n.github.io. ๊ฐ์ฅ ๋ช ์พํ ์ค๋ช .
- LeNet ์๋ ผ๋ฌธ โ LeCun ์ธ, "Gradient-Based Learning Applied to Document Recognition" (1998).
- A Guide to Convolution Arithmetic โ DumoulinยทVisin. ์ถ๋ ฅ ํฌ๊ธฐ ๊ณต์์ ๋ชจ๋ ๊ฒ.