CNN์ด ์ง๊ธ๊น์ง ๋ค๋ฃจ์ด ๋ณด์๋ NN ์ฝ๋๋ณด๋ค ๊ตฌ์กฐ๋ ๋ณต์กํ๊ณ ๊ธธ์ด๊ฐ ๊ธธ์ด ์ฒ์ ์ ํ ๊ฒฝ์ฐ ์๋นํ ๋ณต์กํ๋ค๊ณ ๋๋ ์๋ ์์ ๊ฒ์ด๋ค. ์ด๋ฏธ ์์์ ์ซ์ ์ด๋ฏธ์ง ์์ ๋ฅผ ํตํด CNN ์ฝ๋ ๊ตฌ์กฐ ์์ฒด๋ ์๊ฐ๋ฅผ ํ์์ผ๋ ์๋ฌด๋๋ ์์์ ์ซ์ ์ด๋ฏธ์ง๋ผ๊ณ ํ๋ ๊ฒ์ ์ฐ๋ฆฌ ๊ฐ๊ฐ์ ์ ๋ฟ์ง๋ ์๋ ๋ฏํ๋ค.
์์ ํ MNIST ๋ฌธ์ ์ CNN ์ธ์ ์ฝ๋๋ฅผ ์ฌ์ฉํ๊ธฐ ์ ์ MNIST์ ๋ฌธ์ ํ๋๋ฅผ ๋์ง์ด ๋ด์ด ํํฐ๋ฅผ ์ ์ฉํด์ ์ ์ด๋ฏธ์ง๊ฐ ์ด๋ค ํํ๋ก ์ฒ๋ฆฌ๋๋์ง ๊ด์ฐฐํด ๋ณด๊ณ ์์ธ๋ฌ MAX Pooling ๊ธฐ๋ฒ๋ ์ ์ฉํ์ฌ ์ด๋ ์ ๋๊น์ง ์ด๋ฏธ์ง๊ฐ ๋ณํ๋์ด ๋๊ฐ๋์ง ๊ด์ฐฐํด ๋ณด์.
MNIST ๋ฌธ์์ ์ข ๋ฅ๊ฐ ๋ถ๊ณผ 0โผ9 ์ด๋ฏ๋ก ์ด๋ ๋ฌธ์๋ฅผ ํํด๋ ํฐ ๋ฌธ์ ๋ ์๋ค. ํ์ง๋ง MNIST CNN์ ๊ฐ์์ ์ผ๋ก ๋ณผ ์ ์๋ ๋ฐฉ๋ฒ์ ์ด ๋ฐฉ๋ฒ ์ธ์๋ ์์ ์ ์์์ด ์๋ช ํ๋ค.
๋ค์์ TensorFlow ์ฝ๋์์ MNIST ๋ฐ์ดํ๋ฒ ์ด์ค๋ฅผ ๋ถ๋ฌ์ ๊ทธ์ค์์ ํ๋์ ์ํ โ3โ์ ๋ถ๋ฌ์ matplotlib ์ ์ํด ๊ทธ๋ํฝ ์ถ๋ ฅํ๋ ๋ฃจํด์ด๋ค.
๋ค์ ์ฝ๋๋ ์ํ โ3โ์ ๋ํ์ฌ 3x3 2X2๋ก ์คํธ๋ผ์ด๋ฉ ํ์ฌ 5๊ฐ์ ํํฐ๋ฅผ ์ ์ฉํ์ฌ ์ป์ด์ง๋ ์ด๋ฏธ์ง์ด๋ค. padding ์กฐ๊ฑด์ด โSAMEโ์ด๊ธฐ ๋๋ฌธ์ ํํฐ๋ง๋ ์ด๋ฏธ์ง๊ฐ ์ ์ด๋ฏธ์ง์ ๋งคํธ๋ฆญ์ค์ ํฌ๊ธฐ๋ฅผ ๊ทธ๋๋ก ์ ์งํ๋ค. ์์ง๊น์ง๋ โ3โ์ด๋ผ๋ ์ง์ด ๊ทธ๋๋ก ๋ณด์กด๋๊ณ ์์์ ์ ์ ์๋ค.
ํํฐ๋ง์ ์ด์ด Max Pooling ์๊ณ ๋ฆฌ๋ฌ ์ ์ฉ์ด ์ด๋ฃจ์ด์ง๋ค. Padding ์กฐ๊ฑด โSAMEโ ํ์์ ์ด๋ฏธ์ง ํฌ๊ธฐ๋ฅผ ๊ทธ๋๋ก์ ์งํ๋ฉด์ Max Pooling kernel ์ฌ์ด์ฆ 2x2๋ฅผ ๋๋ ค ์ต๋ ๊ฐ์ ๋ฝ์ ์ด๋ฏธ์ง๋ฅผ ๊ตฌ์ฑํด ๋ณด๋ฉด ์์ง โ3โ ์ ํน์ง์ ์ ์งํ๊ธฐ ํ์ง๋ง ์ด์ฐ ๋ณด๋ฉด โFโ ์ ๋น์ทํ๊ธฐ๋ ํ๋ค. ํ์ง๋ง MNIST ํ์ต ๋ฒ์๋ 0โผ9dp ํ์ ํ์ฌ ๋ผ๋ฒจ๋งํ๋ฏ๋ก ์ํ๋ฒณ ๋ฌธ์ โFโ ์ ํผ๋ํ ์ผ์ ์์ ๊ฒ์ด๋ค. ํ์ง๋ง ์ซ์์ ๋ํ์ฌ ์ํ๋ฒณ๊น์ง ์ธ์ ๋ฒ์๋ฅผ ๋ํ๋ ค๋ฉด ํํฐ์ ์ข ๋ฅ์ Pooling ๊ธฐ๋ฒ๋ ํจ๊ป ๊ฐ๋ฐํด์ผ ํ ๊ฒ์ด๋ค.
ํํฐ๋ง ์ด๋ฏธ์ง์ Pooling ์ฒ๋ฆฌ๋ฅผ ์ํ ์ฝ๋๋ ๋ค์์ ์ฃผ์๋ฅผ ์ฐธ์กฐํ๊ธฐ ๋ฐ๋๋ค.
https://github.com/hunkim/DeepLearningZeroToAll
ํฌํจ๋ ํด๋ ์ค์ ipynb์ lab-11-0-cnn_basics.ipynb ์ฅฌํผํฐ ํ์ผ์ ์ฅฌ์นํฐ ๋ถ๋ฌ ์ฌ๋ฆฌ๋ฉด ๊ฐ์ ํ์ผ์ ๋ณผ ์ ์๋ค. ์ฅฌํผํฐ ํธ์ง๊ธฐ์์๋ ์ฝ๋ ๋ธ๋ก ๋ณ ๋ฐฉ์์ผ๋ก๋ ์คํ์ด ๊ฐ๋ฅํ๋ค.
์ฅฌํผํฐ(ํ ์ํ๋ก์ฐ) ๋ชจ๋์ ์๋์ฝ๋ค ์ค์น ์์ ๋ฌป์ด์ค๋ฏ๋ก ํจ๊ป ์คํด ๋๋ ๊ฒ์ด ์ข์ ๋ฏํ๋ค. ๋ค์ ๊ทธ๋ฆผ์ ์๋์ฝ๋ค์ ์ค์น๋ ๋ชจ๋๋ค์ ๋ฉ๋ด์ฌ๋ก๋ค.