๐ํด๋น ์๋ฃ ๋ด์ฉ์ ์์ฒํฅ๋ํ๊ต ๋น ๋ฐ์ดํฐ๊ณตํ๊ณผ ๊น์ ํ ๊ต์๋์ ์์ ์๋ฃ์ ๊ธฐ๋ฐํ์์ผ๋ฉฐ ์์ ์๋ฃ์ ์ ์๊ถ ๋ฌธ์ ๋ก ์ธํด ์์ ์๋ฃ๋ฅผ ์ง์ ์ด์ฉํ์ง ์๊ณ ์์ ์๋ฃ์ ๋ด์ฉ์ ์ฐธ๊ณ ํ์ฌ ๋ณธ์ธ์ด ์ง์ ์์ฑํ์์ผ๋ฏ๋ก ์ ์๊ถ ๋ฌธ์ ๊ฐ ๋ฐ์ํ์ง ์์์ ํํ ์๋ ค๋๋ฆฝ๋๋ค.
์ปดํจํฐ ๋น์ ผ ์ฆ, ์ด๋ฏธ์ง ๋ฐ์ดํฐ๋ฅผ ๋ถ๋ฅํ๋ ๋ฐ ๊ฐ์ฅ ํฐ ์ผ์กฐ๋ฅผ ํ ๋ชจ๋ธ์ด ์๋ค๊ณ ํ๋ค๋ฉด ๋ฐ๋ก CNN(Convolutional Neural Network) ๋ชจ๋ธ์ด๋ค.(์ ์ํ๊ฒ๋ ์ฌ๊ธฐ์์ CNN์ ๋ฏธ๊ตญ์ ์๋ฐฉ์ก ๋ด์ค ์ ๋ฌธ ํ ๋ ๋น์ ๐บ๋ฐฉ์ก์ฌ CNN๊ณผ๋ ๋ค๋ฅด๋ค.) ์ต๊ทผ์ CNN์ ์ด๋ฏธ์ง ๋ถ๋ฅ๋ฅผ ๋์ด์ RNN์ Seq2Seq ๋ชจ๋ธ๊ณผ ๊ฒฐํฉํ์ฌ Image Captioning ์ฆ, ๊ธฐ๊ณ๊ฐ ์ด๋ฏธ์ง๋ฅผ ๋ณด๊ณ ํ ์คํธ๋ก ์ค๋ช ํ ์ ์๋ ๋ฅ๋ ฅ๊น์ง ๋ณด์ฌ์ฃผ๊ณ ์๋ค. ์ด์ ๋ํด์๋ ํฅ๋ฏธ๋ก์ด ๋ฐ์งํธ๋์ ํฌ์คํ ๊ธ์ด ์๋๋ฐ, ๊ถ๊ธํ๋ค๋ฉด ์ฌ๊ธฐ๋ฅผ ์ฐธ๊ณ ํ์. ์์ ์์ด ์ต๋ํ ์ฝ๊ฒ ์ค๋ช ํด์ฃผ์ ์ ์ง์ค์ด ์๋๋ค๋ฉด ์ ํฌ์คํ ์ ํตํด ๋จธ๋ฆฌ๋ฅผ ๋ฆฌํ๋ ์ฌ ์์ผ๋ณด์!๐
์์ผ๋ก ์๊ฐํ ๋ด์ฉ๋ค์ ๋ชฉ์ฐจ๋ ๋ค์๊ณผ ๊ฐ๋ค.
1. CNN์ ์ ๋ฑ์ฅํ์๋๊ฐ?
2. CNN์ 'C'๋ ์ง์ง 'Convolution'์ธ๊ฐ?
3. CNN์ ํน์ฑ
4. CNN์ด ๋์ํ๋ ๊ณผ์
1. CNN์ ์ ๋ฑ์ฅํ์๋๊ฐ?
๋ณธ๊ฒฉ์ ์ผ๋ก ๋ค์ด๊ฐ๊ธฐ์ ์์ ๊ฐ๋จํ๊ฒ CNN์ด ๋ฑ์ฅํ ์ด์ ๋ฅผ ์๊ฐํด๋ณด์. ์ฐ๋ฆฌ๋ ๊ทธ๋์ ๋ฅ๋ฌ๋์ด๋ผ๊ณ ๋ถ๋ฆฌ๋ DNN(Deep Neural Network)์ ๋ํด ๋ฐฐ์์๊ณ ํ ์ํ๋ก์ฐ๋ก ๊ตฌํํด๋ณด๋ ๊ณผ์ ๊น์ง ์งํํด๋ณด์๋ค. ๊ทธ๋ฌ๋ฉด ์ด๋ฏธ์ง ๋ฐ์ดํฐ์๋ ์ด DNN์ ์ฌ์ฉํ๋ฉด ์๋ ๊น?
๊ฒฐ๋ก ๋ถํฐ ๋งํ๋ฉด, ์๋๋ค๊ธฐ ๋ณด๋ค๋ DNN์ ์ด์ฉํ๊ฒ ๋๋ฉด ๋นํจ์จ์ ์ด๋ค. ์๋ํ๋ฉด ์ผ๋ฐ ์์นํ, ๋ฒ์ฃผํ ๋ณ์๋ก ์ด๋ฃจ์ด์ ธ ์๋ Tabular ๋ฐ์ดํฐ๋ ๋ชจ๋ ํ๋ผ๋ฏธํฐ๋ฅผ ๋ค ๊ณ ๋ คํ์ฌ ๋ชจ๋ธ๋ง์ ํ๋ ๊ฒ์ด ์ข์ ์๋ ์๊ฒ ์ง๋ง, ์ด๋ฏธ์ง์ ๊ฐ์ ๊ฒฝ์ฐ, ์ ์ฒด ์ด๋ฏธ์ง๋ฅผ ๋ง์น ์์ ์๋ง์ ์ ์ฌ๊ฐํ์ ๋ชจ์์ผ๋ก ๊ฐ์ ํ์ ๋,(์ด๋ฅผ ํฝ์ ๋ก ์ด๋ฃจ์ด์ ธ์๋ค๊ณ ํ๋ค) ์ค์ํ์ง ์์ ์๋ฏธ๋ฅผ ๊ฐ๊ณ ์๋ ๋ค๋ชจ์นธ(ํฝ์ )๋ค์ด ์กด์ฌํ๊ธฐ ๋๋ฌธ์ด๋ค.
์ ์ง๊ตฌ ์ฌ์ง์ ๋จธ์ ๋ฌ๋ ๋ชจ๋ธ์ด ํ์ตํด์ผ ํ๋ค๊ณ ๊ฐ์ ํด๋ณด์. ์ฌ์ง ์ ์ ์ฒด ์ด๋ฏธ์ง๋ฅผ ์๋ง์ ์ ์ฌ๊ฐํ๋ค(ํฝ์ ๋ค)๋ก ๋๋์ด ๋ณธ๋ค๊ณ ํ ๋, ์ง๊ตฌ๋ฅผ ๋ถ๋ถ์ ์ผ๋ก ๋ด๊ณ ์๋ ๋ง์ ํฝ์ ๋ค์ด ์กด์ฌํ ๊ฒ์ด์ง๋ง, ๋ฐ๋ฉด์ ๋๋ถ๋ถ์ ์ ์ฌ๊ฐํ๋ค์ ์ฌ์ง ์ ๊ฒ์ ๋ฐฐ๊ฒฝ์ ๋ด๊ณ ์๋ ํฝ์ ๋ค์ผ ๊ฒ์ด๋ค. ๋ฐ๋ผ์ ์ด๋ฅผ ์์๋ก ๋ค์์ ๋, ๋ง์ฝ DNN์ ์ฌ์ฉํ๊ฒ ๋๋ค๋ฉด ๊ฒ์ ๋ฐฐ๊ฒฝ์ ๋ด๊ณ ์๋ ํฝ์ ์ ํ๋ผ๋ฏธํฐ๋ค๋ ๋ชจ๋ ํ์ต์ ํ๊ฒ ๋๋ค. ํ์ง๋ง ์ฐ๋ฆฌ์ ํ์ฌ ๋ชฉ์ ์ด ๋ฌด์์ธ๊ฐ? ์ฌ์ง ์ ์ด๋ฏธ์ง๊ฐ '์ง๊ตฌ'๋ผ๋ ๊ฒ์ ์ธ์ํ๋ ๊ฒ์ด ๋ชฉ์ ์ด ์๋๊ฐ? ๊ทธ๋ ๋ค๋ฉด ๊ฒ์ ๋ฐฐ๊ฒฝ์ ๋ด๊ณ ์๋ ํฝ์ ๋ค์ ํ์ตํ ํ์๊ฐ ์๋ค๋ ๊ฒ์ด๋ค.
๋ฐ๋ผ์ ์ด๋ฌํ ์ด์ ๋ก ์ธํด DNN์ ์ฌ์ฉํ๊ฒ ๋๋ฉด ํ์ต ์ ๋นํจ์จ์ ์ธ ๋ฌธ์ ๊ฐ ๋ฐ์ํ์ฌ Convolution์ ํ์ฉํ CNN ๋ชจ๋ธ์ ์ฌ์ฉํ๋ ๊ฒ์ด๋ค. ๊ทธ๋ ๋ค๋ฉด Convolution์ด๋ ๋ฌด์์ธ๊ฐ?
2. CNN์ 'C'๋ ์ง์ง 'Convolution'์ธ๊ฐ?
์ ๋ชฉ์ ๋ณด๊ณ ์์ํด ํ ์ง๋ ๋ชจ๋ฅธ๋ค. ๋ฐฉ๊ธ๊น์ง Convolution์ ์ฌ์ฉํ๋ค๊ณ ํ๋๋ฐ ์ด๊ฒ ์ง์ง Convolution์ด๋ผ๋ ๋ง์ด ๋์ฒด ๋ฌด์จ ์ด์ผ๊ธฐ์ธ๊ฐ?
๊ฒฐ๋ก ๋ถํฐ ๋งํ๋ฉด ํ์ฌ ๋ฅ๋ฌ๋ ๊ตฌํ ํ๋ ์์ํฌ๋ค์ CNN ๊ตฌํ ์ Convolution์ด ์๋ Cross-Correlation์ ์ฌ์ฉํ๋ค. ๊ทธ๋ผ ์ด์ Convolution๊ณผ Cross-Correlation์ ์ฐจ์ด์ ๋ํด์ ์์๋ณด์.
2-1. Convolution(ํฉ์ฑ๊ณฑ)
์ฐ์ ์ปจ๋ณผ๋ฃจ์ ์ ์ํ์ ์์์ ๋ค์๊ณผ ๊ฐ๋ค.
์ ์์์์ f(T)์ ์ ๋ ฅ๋ฐ์ดํฐ(x), g(t-T)์ ํํฐ(Filter)ํจ์๋ฅผ, ์ ๋ ฅ ๋ฐ์ดํฐ์ ํํฐํจ์์ ํฉ์ฑ๊ณฑ(Convolution)์ธ (f*g)(t)๋ y ์ฆ, ์ถ๋ ฅ์ ๋ํ๋ธ๋ค. ํํฐ ํจ์์ ๋ํด์๋ ์ดํ ๋ชฉ์ฐจ์ธ 4. CNN์ด ๋์ํ๋ ๊ณผ์ ์์ ์์ธํ ์ดํด๋ณด์. ์ฐ์ ์ ๊ฐ๋จํ๊ฒ ํํฐํจ์์ ๋ํด ์ ์ํ์๋ฉด, ์ ์ฒด ์ด๋ฏธ์ง๋ฅผ ํํฐํจ์๋ผ๋ ๊ฒ์ ํตํด ๋ถ๋ถ์ ์ผ๋ก ํ์ด๊ฐ๋ฉด์ ํด๋น ์ด๋ฏธ์ง์ ํน์ง์ ์ถ์ถํ๊ธฐ ์ํด ์ฌ์ฉ๋๋ ํจ์์ด๋ค.
2-2. Cross-Correlation(๊ต์ฐจ์๊ด)
์ ์์์์ ๊ฐ ํจ์์ ์๋ฏธ๋ ์ปจ๋ณผ๋ฃจ์ ์ผ ๋์ ๋์ผํ๋ค. ๋ ์์์ ๋๊ณ ๋ณด์์ ๋, ํ ๊ฐ์ง ์ฐจ์ด์ ์ด ๋ณด์ธ๋ค. ๋ฐ๋ก ํํฐ ํจ์ g()์์ ์๋ ๋ถํธ๊ฐ ๋ฌ๋ผ์ง๋ค๋ ์ ์ด๋ค.
Convolution์์ ํํฐํจ์ g()๋ ์ ๋ ฅ๋ฐ์ดํฐ ํจ์ f()์์ -๋ฅผ ๋ถ์ฌ ๋ค์ง์ด(y์ถ ๋์นญ) t๋งํผ ํํ์ด๋์ ์์ผฐ๋ค. ๋ฐ๋ฉด์ Cross-Correlation์ ํํฐ ํจ์ g()๋ฅผ ๋ค์ง์ง ์๊ณ t๋งํผ ํํ์ด๋์ ์์ผฐ๋ค. ๊ทธ๋ฆฌ๊ณ ๊ฐ๊ฐ์ ์ํ๋ก ์ ๋ ฅํจ์์ ํํฐํจ์์ ๊ฒน์น๋ ๋ถ๋ถ์ -๋ฌดํ๋ ~ +๋ฌดํ๋๋ก ์ด๋ํ๋ฉด์ ์ ๋ถ์์ผ ๋ฉด์ ์ ๊ตฌํ๋ ๊ฒ์ด๋ค. ์ด ๊ฒน์น๋ ๋ฉด์ ์ ๊ตฌํ๋ ๋์์์ ํ๋จ์ ์ฐธ๊ณ ํด๋ณด์. ์ดํดํ๊ธฐ ๋งค์ฐ ์ง๊ด์ ์ด๋ค.
https://www.youtube.com/watch?v=O9-HN-yzsFQ
๋ฐ๋ผ์ ํํฐํจ์๋ฅผ ๋ค์ง์๋์ง ์๋์ง๊ฐ ๋ ๊ฐ์ ์ฐจ์ด์ ์ด๋ค. ํ์ง๋ง CNN์ ๋ชฉ์ ์ ์ด ํํฐํจ์ ๊ฐ๋ค(ํ๋ผ๋ฏธํฐ=CNN์์์ Weight)์ ํ์ตํ๊ธฐ ์ํ ๊ฒ์ด๋ค. ๋ค์ ๋งํด์ ๊ฒน์น๋ ๋ถ๋ถ์ ๋ฉด์ ์ ๊ตฌํ๊ธฐ๋ง ํ๋ฉด ๋๋ค. ๊ทธ๋ ๊ธฐ ๋๋ฌธ์ ํํฐํจ์๋ฅผ ๋ค์ง์๋์ง ์ฌ๋ถ๋ ์๊ด์ด ์๋ค. ๊ทธ๋์ ๋ฅ๋ฌ๋ ํ๋ ์์ํฌ์์๋ ํํฐํจ์๋ฅผ ๋ค์ง๋ ์ฐ์ฐ์ ์ถ๊ฐํ๋ ๊ฒ์ ์คํ๋ ค ์ฐ์ฐ๋์ ๋๋ฆฌ๋ ๊ฒ์ด๊ธฐ ๋๋ฌธ์ ํํฐํจ์๋ฅผ ๋ค์ง์ง ์๋ Cross-Correlation์ ์ค์ง์ ์ผ๋ก ์ฌ์ฉํด ๊ตฌํ๋์ด ์๋ค.
3. CNN์ ํน์ฑ
CNN์ Convolution์ ๋ํด์๋ ๊ฐ๋จํ ์์๋ณด์๋ค. ๊ทธ๋ ๋ค๋ฉด ์ด๋ฏธ์ง ๋ฐ์ดํฐ์ ๋ํด์ DNN์ ๋นํด CNN์ ์ฅ์ ์ ๋ฌด์์ผ๊น?
- DNN์ ๋นํด ํ๋ผ๋ฏธํฐ ๊ฐ์๊ฐ ํ์ ํ ์ ๋ค. ์ฆ DNN๋ณด๋ค ๊ณผ๋์ ํฉ ๋ฌธ์ ๋ฅผ ๋ ๋ฐ์์ํจ๋ค.
- ํํฐํจ์๋ฅผ ์ฌ์ฉํด ์ด๋ฏธ์ง์์ ๋ถ๋ถ์ ์ธ ํน์ฑ์ ์ถ์ถํ๋ค. ์ด ๋ ์ด ํํฐํจ์๋ ์ฌ๋ฌ๊ฐ๋ฅผ ์ฌ์ฉํ ์ ์๋ค. ์ฌ๋ฌ๊ฐ์ ํํฐ๋ฅผ ์ฌ์ฉํ๋ค๋ ๊ฒ์ ์ด๋ฏธ์ง์ ์ฌ๋ฌ๊ฐ ํน์ง์ ์ถ์ถํ๋ค๋ ๊ฒ๊ณผ ๋์ผํ ์๋ฏธ์ด๋ค.
- Weight Sharing: ํํฐ์ Weight๊ฐ์ ๊ณ ์ ์ํจ ํํฐํจ์๋ฅผ ์ด๋(shift)์์ผ์ ์ด๋ฏธ์ง์ ์ง์ญ์ ์ธ ํน์ฑ์ ์ถ์ถํ๋ค. ๊ทธ๋ฐ๋ฐ ํํฐ๋ฅผ shift ํ๋ฉด์ ๊ฒน์ณ์ง๋ ๋ถ๋ถ์ด ๋ฐ์ํ๊ธฐ๋ ํ๋ฉฐ ์ด ๋ ํํฐ๊ฐ๋ค์ ๊ณต์ ํ๋ค๊ณ ํ์ฌ Weight Sharing ํน์ฑ์ด ์กด์ฌํ๋ค.
- Pooling(SubSampling) : ์ผ์ข ์ Downsampling์ด๋ค. ํํฐํจ์๋ก ์ถ์ถํ ํน์ง ๊ฐ๋ค ์ค ์ผ์ ํ ๊ธฐ์ค(max, average ๋ฑ)์ผ๋ก ๋ํฏ๊ฐ์ ์ถ์ถํ๋ค.(์ฐธ๊ณ ๋ก Pooling๋ ํํฐํจ์์ฒ๋ผ size๊ฐ ์กด์ฌ) ๋ํ Downsampling์ด๊ธฐ ๋๋ฌธ์ ํ๋ผ๋ฏธํฐ์ ๊ฐ์(์ฐจ์์ ๊ฐ์) ์ญํ ์ ํ๊ธฐ๋ ํ๋ค.
4. CNN์ด ๋์ํ๋ ๊ณผ์
CNN์ ๊ทธ๋ ๋ค๋ฉด ์ด๋ป๊ฒ ๋์ํ๋ ๊ฑธ๊น? ๋จ๊ณ์ ์ผ๋ก ํ๋์ฉ ์์๊ฐ๋ณด์.(์ด๋ฏธ์ง ์ถ์ฒ)
#์ค์ ๋ก ๋ฅ๋ฌ๋ ํ๋ ์์ํฌ์์๋ Cross-Correlation ๊ณผ์ ์ด์ง๋ง ํธ์์, ๊ทธ๋ฆฌ๊ณ ๋ชจ๋ธ ์ด๋ฆ ์์ฒด๊ฐ Convolutional Neural Network์ด๊ธฐ ๋๋ฌธ์ ์์ผ๋ก๋ ํท๊ฐ๋ฆฌ์ง ์๋๋ก Cross-Correlation์ Convolution์ด๋ผ๊ณ ๋ถ๋ฅด๊ฒ ์ต๋๋ค.
4-1. Filter(=Kernel) ๊ณผ์
๊ฐ์ฅ ๋จผ์ ํ๋ ๋จ๊ณ๋ ์ ๊ทธ๋ฆผ์ฒ๋ผ '๋นํ๊ธฐ'๋ผ๋ ์ด๋ฏธ์ง ๋ฐ์ดํฐ๊ฐ input์ผ๋ก ์ ๋ ฅ๋์์ ๋ ์ฌ์ฉ์๊ฐ ์์๋ก ์ค์ ํ ๋๋ค๊ฐ๋ค๋ก ์ด๋ฃจ์ด์ง ํํฐํจ์๋ก ์ด๋ฏธ์ง์ ํน์ง์ ์ถ์ถํ๋ค. ๋ณดํต ์ ๋ ฅ ๋ฐ์ดํฐ ์ฌ์ด์ฆ๊ฐ ํํฐ ์ฌ์ด์ฆ๋ณด๋ค ํฌ๋ฉฐ ๋ง์ฝ "์ ๋ ฅ ๋ฐ์ดํฐ ์ฌ์ด์ฆ = ํํฐ ์ฌ์ด์ฆ" ๊ฐ ๋๋ค๋ฉด FNN(Feed-forward Neural Network) ์ฆ, ์ผ๋ฐ์ ์ธ DNN ๋ฐฉ์๊ณผ ๋์ผํด์ง๋ค.
๋ํ ์์์๋ ์ธ๊ธํ๋ฏ์ด ํํฐ ๊ฐ์๋ ์ฌ๋ฌ๊ฐ๋ฅผ ์ฌ์ฉํ ์ ์์ผ๋ฉฐ ์ค์ ๋ก ์ฌ๋ฌ๊ฐ์ ํํฐ๋ฅผ ์ฌ์ฉํด ์ด๋ฏธ์ง์ ์ฌ๋ฌ ํน์ฑ์ ๋์์ ์ถ์ถํ๋ ๊ฒฝ์ฐ๊ฐ ๋น๋ฒํ๋ค. ๊ทธ๋ ๋ค๋ฉด ์ด๋ฏธ์ง์ ๋ถ๋ถ๊ณผ ํํฐ๊ฐ ์ด๋ป๊ฒ Convolutionํ๋ ๊ฒ์ผ๊น?
์ ์์ง์ด๋ ๊ทธ๋ฆผ์์ ์ผ์ชฝ 5*5 ์ฌ์ด์ฆ์ Image์์ ๋นจ๊ฐ์ ๊ธ์จ๋ก ์ค๋ฅธ์ชฝ ์๋ ์กฐ๊ทธ๋งฃ๊ฒ ์จ์๋ ๊ฒ์ด ๋ฐ๋ก ํํฐ์ด๋ค. ์ฆ ํํฐ๋ 3*3 ์ฌ์ด์ฆ๋ก [[1,0,1], [0,1,0], [1,0,1]] ๊ณผ ๊ฐ์ด ๊ตฌ์ฑ๋์ด ์๋ค.
๋ฐ๋ผ์ ์ด๋ฐ 3*3 ์ฌ์ด์ฆ์ ํํฐ๋ก 5*5 ์ ๋ ฅ ์ด๋ฏธ์ง์ ๋ถ๋ถ์ ํ๋ํ๋์ฉ ํ๊ธฐ ์์ํ๋ค. ๊ทธ๋ฆฌ๊ณ ํ ๋ฒ ํ์ ๋๋ง๋ค ์ฆ, ์ด๋ฏธ์ง์ 3*3 ์ฌ์ด์ฆ์ ํ ๋ถ๋ถ์ ํ์ ๋๋ง๋ค Convolved Feature์ด๋ผ๋ ์ถ์ถ๋ ํน์ง ๋งคํธ๋ฆญ์ค์ ๊ฐ์ด ํ๋์ฉ ๊ณ์ฐ๋๋ค.
์ข ๋ ์์ธํ ์ฐ์ฐ์ด ์ด๋ป๊ฒ ์ด๋ฃจ์ด์ง๋์ง ๋ณด๊ธฐ ์ํด ๊ทธ๋ฆผ ํ๋๋ฅผ ๋ ์ดํด๋ณด์.
์ ๊ทธ๋ฆผ์ฒ๋ผ ํ๋์ ๋ค๋ชจ์นธ์ผ๋ก ๋์ด ์๋ ์ ๋ ฅ ๋ฐ์ดํฐ์์ ํํฐ ์ฌ์ด์ฆ๋งํผ์ ๋ถ๋ถ ๋ฐ์ดํฐ๊ฐ๊ณผ ๋ณด๋ผ์ ํํฐ๊ฐ์ ์ฐ์ฐํด์ค๋ค. ์ฐ์ฐํ๋ ๋ฐฉ๋ฒ์ ๋ถ๋ถ ์ ๋ ฅ ๋ฐ์ดํฐ๊ฐ๊ณผ ํํฐ๊ฐ ๊ฐ๊ฐ ๋์ผํ ์์น์ ๋งคํ๋๋ ๊ฐ๋ค๋ผ๋ฆฌ ๊ณฑํด์ ํฉ(summation)ํด์ฃผ๋ฉด ๋๋ค. ์ค์ 31์ด ๋์ค๋์ง ๊ถ๊ธํ๋ค๋ฉด ์ง์ ์ข ์ด์ ํ ๋ฒ ๊ณ์ฐํด๋ณด์.
์ฌ๊ธฐ์ ์ค์ํ๊ฒ ์ง๊ณ ๋์ด๊ฐ์ผ ํ ์ ์ด ์๋ค. ์ด์ฐ๋์๋ CNN๋ ๋ฅ๋ฌ๋ ๋ชจ๋ธ์ ํ ๊ฐ์ง ์ข ๋ฅ์ด๋ฉฐ DNN์ฒ๋ผ ํ๋ผ๋ฏธํฐ๊ฐ์ ์ ๋ฐ์ดํธํด ๋๊ฐ๋ฉฐ ํ์ตํด๋๊ฐ๋ค. CNN์ ๊ทธ ์ ๋ฐ์ดํธํ๋ ํ๋ผ๋ฏธํฐ๊ฐ์ด ๋ฐ๋ก ์ง๊ธ ๋ฐฐ์ ๋ ํํฐ์ ๊ฐ๋ค์ด๋ผ๋ ์ ์ด๋ค. ๋ฐ๋ผ์ CNN์ ์ฒ์ ํ์ต ์, ์ฌ์ฉ์๊ฐ ํํฐ์ ๊ฐ๋ค์ ์์์ ๋๋ค๊ฐ์ผ๋ก ์ด๊ธฐํ ์ธํ ์ ํด์ฃผ๋ฉฐ ๋ค์๋ถํฐ๋ CNN ๋ชจ๋ธ์ด ํ์ต ๋ฐ์ดํฐ์ ๊ธฐ๋ฐํด ์ด๊ธฐํ์ํจ ๋๋ค๊ฐ๋ค์ ์ต์ ์ ๊ฐ์ผ๋ก ์ ๋ฐ์ดํธ ์์ผ๋๊ฐ๋ค.
์ฐธ๊ณ ๋ก, ๋ถ๊ฐ์ ์ธ ์ด์ผ๊ธฐ์ง๋ง ์ ๋ช ํ ์๋ณธ ์ด๋ฏธ์ง๋ฅผ ๋ธ๋ฌ๋ง(ํ๋ฆฟํ๊ฒ ํ๋ ๊ฒ)์์ผ์ฃผ๊ธฐ ์ํด์ ํํฐ ์ด๊ธฐ๊ฐ์ Gaussian ๋ถํฌ๋ก ์ค์ ํ์ฌ ์๋ณธ ์ด๋ฏธ์ง๋ฅผ ํ๋ฆฟํ ์ด๋ฏธ์ง๋ก ๋ณํ์ํค๊ธฐ๋ ํ๋ค.
4-2. Convolution + Pooling
๋ค์์ ์ปจ๋ณผ๋ฃจ์ ๊ณผ Pooling ๊ณผ์ ์ด๋ค. ๋ณดํต ํ ๋ฒ์ Convolution๊ณผ Pooling์ ์ํํ๊ณ ๋๋ฉด CNN์์ ํ ๊ฐ์ ์ธต(layer)์ด ์์ฑ๋๋ค. ์ฌ๊ธฐ์๋ ์ฌ๋ฌ๋ฒ์ ์ปจ๋ณผ๋ฃจ์ ๊ณผ ํ๋ง ๊ณผ์ ์์ ๋ณํ๊ฐ ์๊ธฐ๋ ์ฐจ์ ์์ ๋ํด์ ์์๋ณด๋ ค ํ๋ค.
์ฐ์ ์ ๊ทธ๋ฆผ์์ f๋ ํํฐ ์ฌ์ด์ฆ, s๋ stride, p๋ padding(padding์ ๋ํ ๊ฐ๋ ์ ํ๋จ์์ ๋ค๋ฃจ๊ฒ ๋ค. ์ ๊ทธ๋ฆผ์์ padding=0์ด๊ธฐ ๋๋ฌธ์ ์ ๊ฒฝ์ฐ์ง ์์๋ ๋๋ค.)
๊ทธ๋ฆผ ์ 32*32 ์ฌ์ด์ฆ์ ์ ๋ ฅ ๋ฐ์ดํฐ์์ 6๊ฐ์ ํํฐ๋ฅผ ์ ์ฉํด ํน์ง์ ์ถ์ถํ๋ค. ์ถ์ถํ ํน์ง ์ด๋ฏธ์ง์ size๋ 28*28์ด๋ฉฐ ์ถ์ถํ ํน์ง ๊ฐ์๋ 6๊ฐ์ด๋ค.(ํํฐ๊ฐ์ 6๊ฐ์ด๊ธฐ ๋๋ฌธ์ ์ถ์ถ๋๋ ํน์ง ๊ฐ์๋ 6๊ฐ์์ ๊ธฐ์ตํ์)
<Stride๋?>
์ฌ๊ธฐ์ Stride์ ๋ํ ๊ฐ๋ ์ ๋ํด ์ง๊ณ ๋์ด๊ฐ์. Stride๋ฅผ ์ค์ ํ๋ ๋ชฉ์ ์ ํํฐ๋ฅผ ์ด๋์ํค๋ฉด์ Weight sharing์ ํ๊ฒ ๋๋ฉด ์ค๋ณต๋ ๊ฐ์ด ๊ณ์์ ์ผ๋ก ๋์ค๊ณ ์ด๋ฅผ ๋ฐฉ์งํ๊ธฐ ์ํ ๊ฒ์ด๋ค. Stride์ ๋ํ ์ง๊ด์ ์ธ ์ดํด๋ฅผ ์ํ ๊ทธ๋ฆผ์ ๋ค์๊ณผ ๊ฐ๋ค.
์ผ์ชฝ๊ณผ ๊ฐ์ ์ ๋ ฅ ๋ฐ์ดํฐ๊ฐ ์กด์ฌํ ๋, 3*3 ์ฌ์ด์ฆ์ ํํฐ๋ฅผ Stride=2 ์ผ๋, ์ ์ฉํ ๊ทธ๋ฆผ์ด๋ค. ์ผ์ชฝ์ ๋นจ๊ฐ์ ํ์๋ ๋ถ๋ถ์ ๋ณด๋ฉด ์ ์ ์ผ๋ก ๋ ๋ถ๋ถ์ ์ฒซ ๋ฒ์งธ๋ก ํํฐ๋ง์ ์งํํ๊ณ ๋ค์ ํํฐ๋ง์ ์งํํ ๋ ์ฒ์์ ์งํํ๋ ์ด๋ฏธ์ง์ ๋ถ๋ถ ๋ฐ์ดํฐ์์ '2์นธ' ๋งํผ ๋์ด์ ํํฐ๋ง์ ์ ์ฉํ๋ ๊ฒ์ด๋ค.(Stride size๋ฅผ 3 by 1๊ณผ ๊ฐ์ด ์ง๊ฐํํ๋ก ์ค์ ํ ์๋ ์๋ค)
์ด์ ๋ค์ ์ปจ๋ณผ๋ฃจ์ ๊ณผ์ ์ผ๋ก ๋์๊ฐ์ ์ปจ๋ณผ๋ฃจ์ ์ ์ํํ ํ Poolingํ๋ ๊ณผ์ ์ ๊ฑฐ์น๋ค. Pooling์ ํํฐ๋ฅผ ํตํด ์ถ์ถ๋ ํน์ง ๋ฐ์ดํฐ ๊ฐ๋ค์ ์ฌ์ฉ์๊ฐ ์ ์ํ ๊ธฐ์ค(์ต๋๊ฐ, ํ๊ท ๊ฐ)์ผ๋ก ๋ํฏ๊ฐ์ ์ถ์ถํ๋ค.
์ด๋ ๊ฒ ์ปจ๋ณผ๋ฃจ์ ๊ณผ ํ๋ง๊ณผ์ ์ ํ๋์ layer๋ก ๊ตฌ์ฑ๋๋ฉฐ ์ด ๊ณผ์ ์ ๋ฐ๋ณต์ ์ผ๋ก ์ํํด ์ฌ๋ฌ๊ฐ์ ์ธต์ผ๋ก ๊ตฌ์ฑ๋ CNN์ ๊ตฌํํ๊ฒ ๋๋ค.
๋ค์ ๋จ๊ณ๋ก ๋์ด๊ฐ๊ธฐ ์ ์ Padding์ด๋ผ๋ ๊ฐ๋ ์ ๋ํด์๋ ์ดํด๋ณด์.
<Padding์ด๋?>
ํจ๋ฉ์ ์ ๋ ฅ ๋ฐ์ดํฐ์ ์ฌ์ด์ฆ๋ฅผ ๋๋ ค์ฃผ๋ ์ญํ ์ ํ๋ค. ์ฌ๊ธฐ์ ์ ๋ ฅ ๋ฐ์ดํฐ๋, ์ต์ด๋ก ์ ๋ ฅ๋๋ ์ด๋ฏธ์ง ๋ฐ์ดํฐ๊ฐ ๋ ์๋ ์๊ณ ์ค๊ฐ์ CNN layer๋ฅผ ๊ฑฐ์ณ์ ๋์ค๊ฒ ๋ ํน์ง๋ค ๋ฐ์ดํฐ๊ฐ ๋ ์๋ ์๋ค.
์ ๊ทธ๋ฆผ ์ ์ ์ ์ผ๋ก ๋์ด ์๋ ๋ถ๋ถ๋ค์ด ๋ฐ๋ก ํจ๋ฉ์ ํด๋นํ๋ค. ํจ๋ฉ์ ๋ค์ด๊ฐ๋ ๊ฐ์ ์ฃผ๋ก 0์ ๋ฃ์ผ๋ฉฐ 'zero padding'์ด๋ผ๊ณ ๋ ํ๋ค. ๋ฌผ๋ก ์ด ํจ๋ฉ๊ฐ์ ๋ค๋ฅธ ์์์ ๊ฐ์ ๋ฃ์ด์ค ์๋ ์๋ค. ํ์ง๋ง ์ด๋ฏธ์ง๋ ์ ์ ์ํ์ด๊ธฐ ๋๋ฌธ์ 0์ ์ฑ์ด๋ค๋ ๊ฒ์ ์์๋์.(ํจ๋ฉ์ ์์์๊ฐ์ ๋ฃ๋ ๊ฒฝ์ฐ๋ ์ฐ์๋๊ณ ์ํ๋๋ ์์ง์ด๋ ์ด๋ฏธ์ง์ผ ๊ฒฝ์ฐ ์ฌ์ฉ๋๋ค๊ณ ํ๋ค)
๋ํ ๋ฅ๋ฌ๋ ํ๋ ์์ํฌ๋ก ๊ตฌํ ์ padding์ธ์์ 'SAME'์ด๋ผ๋ ๊ฐ์ ๋ฃ์ด์ค ์ ์๋๋ฐ ์ด๋ ์ ๋ ฅ ๋ฐ์ดํฐ size์ ํํฐ๋ง์ ๊ฑฐ์น ํ์ ์ถ๋ ฅ ๋ฐ์ดํฐ size๊ฐ ๊ฐ๋๋ก ์ ๋ ฅ ๋ฐ์ดํฐ์ ๊ทธ๋งํผ ํจ๋ฉ์ ์ถ๊ฐํด์ฃผ๋ ๊ฒ์ด๋ค. ๋ํ padding์ด 'VALID'๋ผ๋ ๊ฒ์ padding ํฌ๊ธฐ๋ฅผ 0์ผ๋ก ์ค์ ํด์ค๋ค๋ ์๋ฏธ์ด๋ค.
์ฐธ๊ณ ๋ก, Stride์ Padding์ ์ผ์ข ์ Feature engineering ๊ธฐ์ ๋ก์ ์ปจ๋ณผ๋ฃจ์ ์ด๋ ํ๋ง ๊ณผ์ ์ด๋์์๋ ์ฌ์ฉ๋ ์ ์๋ค.
4-3. Flatten
์ฌ๋ฌ๋ฒ์ ์ปจ๋ณผ๋ฃจ์ layer๋ฅผ ๊ฑฐ์น ํ Matrix๋ก ๋ ์ต์ข ํน์ง ๋ฐ์ดํฐ๋ค์ด ๋์ถ๋์์ ๊ฒ์ด๋ค. ์ด์ ์ด๋ฅผ Flatten ์ฆ, ์ด ๋ฒกํฐ๋ก ์ญ~ ํด์ฃผ์ด์ FNN์ ์ํํ๋๋ก ์ค๋นํ๋ค. ์ฆ, ์ต์ข ์ ์ธ ๊ฒฐ๊ณผ๊ฐ์ ์์ธกํ๋๋ก one-hot vector ํํ๋ก ๋ง์ถฐ์ฃผ๊ธฐ ์ํจ์ด ์ฃผ๋ ๋ชฉ์ ์ด๋ค. ์๋ ๊ทธ๋ฐ๋ฐ ๊ฐ์๊ธฐ FNN์ด ์ ๋ฑ์ฅํ ๊น? ์ฌ์ค CNN์์๋ FNN์ด ํฌํจ๋์ด ์๋ค๊ณ ํ ์ ์๋ค. ์ด์ฐ๋ฌ๊ฑด ๋ณธ์ง์ ์ธ ๋ชฉ์ ์ธ ์ด๋ฏธ์ง๋ฅผ ๋ถ๋ฅ์ํค๊ธฐ ์ํด์ FNN๊ณผ์ ์ด ํ์ํ๋ค. ๋ฐ๋ผ์ ํํฐ, ์ปจ๋ณผ๋ฃจ์ , ํ๋ง ๋ฑ๊ณผ ๊ฐ์ ์ด์ ๊น์ง์ ์์ ๋ค์ ๋ฐ๋ก ํฌ์คํ ์ด๊ธฐ์์ ์ธ๊ธํ๋ CNN์ '์ค์ํ ์๋ฏธ๋ฅผ ๋ด๊ธด ํฝ์ ๋ค๋ง ์ด์ฉ'์ ๋๋งก์ ํ ์ ์ด ๋๋ค.
์ ์ฒ๋ผ Flatten์ ์ํํด์ค ํ ๊ธฐ์กด์ FNN์ฒ๋ผ ์๋กญ๊ฒ Weight, bias๊ฐ์ ์๋กญ๊ฒ ์ ์ํด์ฃผ๊ณ ํ๋ผ๋ฏธํฐ ํ์ต์ ์์ํ๋ค. ๊ทธ๋ฆฌ๊ณ ์ต์ข ์ ์ผ๋ก softmax ํ์ฑํจ์๋ฅผ ์ฌ์ฉํด multi-class classfication์ ์ํํ๋ค.(softmax๋ง ํ์ฑํจ์๋ก ์ธ๊ธํ ๊ฒ์ ์ด๋ฏธ์ง ๋ถ๋ฅ๋ ๋ค์ค๋ถ๋ฅ๊ฐ ์ผ๋ฐ์ ์ธ ๋ฌธ์ ๋ก ๋ฑ์ฅํ๊ธฐ ๋๋ฌธ์ด๋ค)
4-4. Dropout
Dropout์ด๋, ์ผ์ข ์ '๋ ธ๋(=unit)๋ฒ๋ฆฌ๊ธฐ' ์ด๋ค. ์ CNN์ ๋จ๊ณ์ ์ธ ๊ทธ๋ฆผ์์๋ ๋ฑ์ฅํ์ง ์์์ง๋ง FNN ๊ณผ์ ์์ Dropout์ด๋ผ๋ feature engineering ๋ฐฉ๋ฒ์ด ์กด์ฌํ๋ค. ๋ฌผ๋ก ํ์์ ์ธ ๊ฒ์ ์๋์ง๋ง Dropout์ ๋ค์๊ณผ ๊ฐ์ ํน์ง์ด ์๋ค.
- ๋ ธ๋๋ฅผ ์ผ๋ถ ์ญ์ ํด ๊ณผ๋์ ํฉ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ค.
- ๋ ธ๋ ์ ๊ฑฐ ์ ๋๋คํ ํ๋ฅ ๋ก ์ ๊ฑฐํ๋ค.
- Dropout ์ํ ํ, Train ๋ฐ์ดํฐ์์๋ Cost๊ฐ ์ฆ๊ฐํ์ง๋ง Test ๋ฐ์ดํฐ์์๋ Cost๊ฐ ๊ฐ์ํ๋ค.
- Pooling๊ณผ๋ ์ผ์ข ์ '๋ฒ๋ฆฌ๊ธฐ' ๋ผ๋ ๊ด์ ์์ ๋น์ทํ ์ ์์ง๋ง, Pooling์ ์ผ์ ํ ๊ธฐ์ค์ ๊ธฐ๋ฐ์ผ๋ก ๊ฐ์ ๋ฒ๋ฆฌ์ง๋ง Dropout์ ๋๋คํ๊ฒ ๊ฐ(๋ ธ๋)์ ๋ฒ๋ฆฐ๋ค.
์ฐธ๊ณ ๋ก, ๊ณผ๋์ ํฉ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ ๋ฐฉ๋ฒ์ผ๋ก์ '๋ฒ๋ฆฌ๊ธฐ' ๋ง๊ณ ๋ '์ถ๊ฐํ๊ธฐ' ๋ฐฉ๋ฒ์ด ์๋ค. ๋ฐ๋ก ์ ๋นํ ํฌ๊ธฐ์ Noise ๋ฐ์ดํฐ๋ฅผ ์ถ๊ฐํด ๊ณผ๋์ ํฉ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ ์ ์๋ค.
# Refrerence
tensorflow.blog/2017/12/21/convolution-vs-cross-correlation/
www.mdpi.com/1424-8220/19/22/4933/htm
'Data Science > Computer Vision' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[ML] Fast RCNN Object Detection ๋ชจ๋ธ (0) | 2021.04.13 |
---|---|
[ML] SPP(Spatial Pyramid Pooling) Object Detection ๋ชจ๋ธ (2) | 2021.04.11 |
[ML] RCNN(Regions with CNN) Object Detection ๋ชจ๋ธ (0) | 2021.04.10 |
[ML] Object Detection ๊ธฐ์ด ๊ฐ๋ ๊ณผ ์ฑ๋ฅ ์ธก์ ๋ฐฉ๋ฒ (3) | 2021.04.08 |
[ML] ResNet & Inception Network๋? (2) | 2020.11.13 |