[Deep Learning] Convolutional Neural Network (1)
๐ง๐ป๐ป์ฉ์ด ์ ๋ฆฌ
Neural Networks
Feed-forward
Backpropagation
Convolutional Neural Network
stride
filter
kernel
topology
MLP
image
multi-channel
sparse connection
parameter sharing
์ค๋๋ถํฐ CNN์ ๋ํด์ ๋ฐฐ์๋ด ์๋ค.
์ง๊ธ๊น์ง๋,
linear separability, MLP, Feed-forward, Backpropagation, regularization, optimization ๋ฑ์ ์ดํด๋ณด์์ต๋๋ค.
๊ทธ๋ฆฌ๊ณ ์ค๋์ ์๋ก์ด model CNN์ ๋ํด์ ์ดํด๋ด ๋๋ค.
๊ทธ๋ฆฌ๊ณ , ์์ ๊ฐ์ด ์ง๊ธ๊น์ง ๋ฐฐ์ด ๋ถ๋ถ๋ค์ด MLP์ CNN์ด ๋ค๋ฅด์ง ์์ต๋๋ค.
๊ฑฐ์ 90%๋ ๊ทธ๋๋ก ์ ์ฉ๋๋ค๊ณ ๋ด๋ ๋ฌด๋ฐฉํฉ๋๋ค. (CNN์ ํน์ด์ฑ ๋๋ฌธ์ ๋ค์ ๋ฌ๋ผ์ง ์๋ ์์ต๋๋ค.)
Convolutional Neural Network
์ฐ๋ฆฌ์ CNN์ Deep Learning์ ์ฑ๊ณต์ผ๋ก ์ด๋ architecture์ ๋๋ค.
๋ฅ๋ฌ๋ 3๋์ฅ ์ค 2๋ฒ์งธ ํ์ ๋งก๋ LeCun ๊ต์๋๊ป์ ์์ ๊ฐ์ด 89๋ ์ ์ ์ํ์ จ์ต๋๋ค.
๊ทธ๋ฆฌ๊ณ , ์ด CNN์ NN์ specialized๋ ํํ์ ๋๋ค.
๊ทธ๋ฆฌ๊ณ grid์ ๊ฐ์ ํํ์ ๋๋ค.
image, video, ๋ฑ
์ด๊ฒ๋ค์ ๋ชจ๋ pixel ๋จ์์ ๋ฐ์ดํฐ์ ๋๋ค.
๊ทธ๋์ Image๋ 2D grid ํํ๋ฅผ data๊ฐ ์ด๋ฃจ๊ณ ์๋ ๊ฒ์ ๋๋ค.
๊ทธ๋ฆฌ๊ณ grid-like topology๋ image ์์์ ์ข์ธก์๋จ grid ๋ค๊ณผ ์ฐ์ธกํ๋จ grid๋ค๊ณผ ๋น๊ตํ์ฌ ์๋์ ์ผ๋ก ์ฐ๊ด์ฑ์ด ๋จ์ด์ง๋ ๊ฒ์ ์๋ฏธํฉ๋๋ค.
๊ทธ๋ฆฌ๊ณ time-series๋ 2D grid๋ ์๋์ง๋ง, 1D๋ก ์งค๋ผ๋๊ณ ๋ณด๋ฉด 1D grid ์์ grid ํํ๋ก ํด์์ด ๊ฐ๋ฅํด์ง๋๋ค.
๊ฐ๊ฐ 2D๋ 1D๋ ๋ชจ๋ ๊ฐ๊ฐ์ topology๋ฅผ ๊ฐ์ง๊ณ ์์ต๋๋ค.
์ผ๋จ CNN์ image ์์ฃผ๋ก ๋ณด๋ 2D data ์์ฃผ๋ก ์ค๋ช ํ๊ฒ ์ต๋๋ค.
์์ ๊ฐ์ CNN์ ์ญ์ฌ๋ฅผ ์ดํด๋ณผ ์ ์์ต๋๋ค.
์ด์ , Convolutional Operation์ด ๊ธฐ์กด์ Weighted Summation๊ณผ ์ด๋ป๊ฒ ๋ค๋ฅธ์ง์ ์ง์คํด๋ด ์๋ค.
์ผ๋จ CNN๊ณผ MLP์ ๋ค๋ฅธ ์ ์ ๋ฌด์์ผ๊น์?
MLP ๋ weighted summation๋ถํฐ, activation์ ํตํด ๊ฐ๋ค์ forwardํ์ฌ ์ฐ์ฐํฉ๋๋ค.
์ฆ, MLP๋ ์ด matrix multiplication์ด๋ผ ๋ถ๋ฆฌ๋ ์ด matmul ์ฐ์ฐ์ด ๊ธฐ๋ณธ ์ฐ์ฐ์ด ๋๊ฒ ์ต๋๋ค.
๊ทธ๋ฐ๋ฐ CNN์์๋ MLP์ ๋ค๋ฅด๊ฒ Convolutional operation์ ์ฌ์ฉํฉ๋๋ค.
์ด๊ฒ์ ์๋ก์ด ์ฐ์ฐ์ด์ฃ .
- ์ด๊ฒ์ linear operations์ ํน๋ณํ ํํ์ ๋๋ค.
- ๊ทธ๋์ Neural network ์ค์์๋ ์ ์ด๋ ํ๋์ convolutional layer๋ฅผ ๊ฐ์ง๊ณ ์๋ค๋ฉด ์ฐ๋ฆฌ๋ ์ด๊ฒ์ CNN์ด๋ผ๊ณ ๋ถ๋ฆ ๋๋ค.
- ์ด convolutional layer๋ ๋น์ฐํ ์ด convolutional operations์ ์ฐ๋ layer๋ฅผ ์๋ฏธํฉ๋๋ค.
์ด๊ฒ์ ์ฌ์ฉํ๋ motivation์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
- Sparse connections
- Parameter sharing
- Spatial data
์ฐ์ , spatial data๋ถํฐ ์ดํด๋ด ์๋ค.
์ด๊ฒ์ ๊ณต๊ฐ์ ๋ฐ์ดํฐ๋ฅผ ์๋ฏธํฉ๋๋ค.
๊ณต๊ฐ์ ๋ฐ์ดํฐ๋ image, 2D grid๋ฅผ ์๋ฏธํฉ๋๋ค.
์ด๊ฒ๋ค์ grid ๋ง๋ค, pixel์ ์ ๋ณด๋ฅผ ๋ด๊ณ , ๊ฐ๊น์ด ์๋ ๊ฒ๋ค์ด ์ฐ๊ด์ฑ์ด ๋์ต๋๋ค.
์ฆ, image์์ ์ฃผ๋ณ์ ์๋ ๊ฐ๋ค์ ์๋ก ๊ฐ๊ฑฐ๋ ๋น์ทํ ์ ๋ณด๋ค์ ํฌํจํ๊ณ ์์ต๋๋ค.
๊ทธ ๋ง์, ์ฐ๋ฆฌ๊ฐ ์ ๋ณด๋ฅผ ๋ชจ๋ ์ธ ํ์ ์์ด ์ ๋ณด๋์ summaryํ์ฌ ์ ๋ณด๋์ ์ค์ฌ๋๊ฐ๋ image๊ฐ ์ฌ๋์๊ฒ ์ฃผ๊ณ ์ถ์ดํ๋ object๋ค์ ๋ํ ์ ๋ณด๋ ์ ์งํ ์ ์๋ ๊ฒ์ ๋๋ค.
์์ ๊ฐ์ CNN์ ์ญ์ฌ๋ฅผ ์ดํด๋ณผ ์ ์์ต๋๋ค.
์ด์ , Convolutional Operation์ด ๊ธฐ์กด์ Weighted Summation๊ณผ ์ด๋ป๊ฒ ๋ค๋ฅธ์ง์ ์ง์คํด๋ด ์๋ค.
Convolutional Operation
์ฐ๋ฆฌ๊ฐ ๊ธฐ์กด์ ํด์๋ matrix multiplication๊ณผ ์กฐ๊ธ ๋ค๋ฆ ๋๋ค.
4 x 4 matrix๋ ๊ทธ๋ฅ ํ ์ฅ์ image์์ pixel ๊ฐ์ ์ผ๋ถ๋ถ ์ถ์ถํ ๊ฑฐ๋ผ๊ณ ๋ณด์๋ฉด ๋๊ฒ ์ต๋๋ค.
๊ทธ๋ฆฌ๊ณ , ์ filter๋ kernel์ด๋ผ๊ณ ๋ ๋ถ๋ฆ ๋๋ค.
์์ ๊ฐ์ ๊ฐ์ ๊ฐ์ง ๋, ์ฐ๋ฆฌ๊ฐ convolutional operation์ ํตํด์ output์ ๊ณ์ฐํด๋ณด๊ฒ ์ต๋๋ค.
์ด filter๋ฅผ input data์ ์ ์ฉ์ํต๋๋ค.
์ฆ, element-wise product๋ฅผ ํ์ฃ .
๊ธฐ์กด matmul๊ณผ ๋ค๋ฅด๊ฒ, element ๋จ์๋ก ๊ณฑํ์ฌ ์๊ธฐ row, col์ ๋ง๊ฒ ์ฐ์ฐํ์ฌ ๋ฃ์ด์ค๋๋ค.
๊ทธ๋์ ์ element-wise production๋ฅผ ๋นจ๊ฐ ๋ฐ์ค์ ๋ํด ๊ณ์ฐํ๋ฉด output์์์ ๊ฐ์ฒ๋ผ 2๊ฐ ๋์ค๊ฒ ๋ฉ๋๋ค.
filter size์ ๋ง์ถฐ์ product๋ฅผ ํฉ๋๋ค.
์ด๊ฒ์ 2D grid์ด๊ธฐ ๋๋ฌธ์ ๊ฐ๋ฅํ ๊ฒ์ด์ฃ .
์ฆ, ๋น์ทํ ์ ๋ณด์ ๋ํด์ filter๋ฅผ ์ ์ฉํ์ฌ ํ๋์ Summary ๊ฐ์ ์ถ์ถํด๋ด๋ ์์ ์ ๋๋ค.
์์ ๊ฐ์ด ํ ์นธ์ฉ ์ด๋ํฉ๋๋ค.
์ด๊ฒ๋ค๋ ๋ง์ฐฌ๊ฐ์ง๋ก 2D grid topology๋ฅผ ๊ฐ์ง๊ณ ์๋ data์ ์ผ๋ถ๋ถ์ ๋ฝ์์จ ๊ฒ์ด์ฃ .
์ด๋ ๊ฒ, filter๋ฅผ ์ฎ๊ฒจ ๊ฐ๋ฉด์ output์ ํ๋ํ๋์ฉ ๊ณ์ฐํ๋ค๊ณ ๋ณด์๋ฉด ๋ฉ๋๋ค.
์ด ๊ฒฝ์ฐ, ์ฐ๋ฆฌ๊ฐ ํ ์นธ์ฉ ์์๋๋ก ์์ง์์ต๋๋ค.
์ด๊ฒ์ stride๋ผ๊ณ ํฉ๋๋ค.
์ ๋ฆฌํ๋ฉด,
์์ ๊ฐ์ด input data๊ฐ ๊ฐ์ง๊ณ ์๋ ์ ๋ณด๋ฅผ, filter๋ฅผ ์ง๋์ summaryํ์ฌ output์ ๊ฒฐ๊ณผ๋ก ๋์ค๊ฒ ๋๋ ๊ฒ์ ๋๋ค.
์ฆ, ๊ณต๊ฐ์ ์ธ ํน์ฑ์ ์์ฝํด ๋๊ฐ๋ ๊ฒ์ ๋๋ค.
์ด๊ฒ ๋ค์ ๋๋ค.
element-wise product๋ฅผ ํ์ฌ summaryํด ๋๊ฐ๋ค.
์ด ์ฌ์ง๊ณผ ๊ฐ์ด element-wise product๊ฐ ์ด๋ฃจ์ด์ง๋ ๊ฒ์ ๋ณผ ์ ์์ต๋๋ค.
element ๋ณ๋ก ์ฐ์ฐ์ด ์ด๋ฃจ์ด์ง๋ ๊ฒ์ด ๋ณด์ ๋๋ค.
๊ณ์ฐํ ๊ฒฐ๊ณผ๊ฐ์ด ํ๋์ scalar ๊ฐ์ผ๋ก ๋ค์ด๊ฐ๊ฒ ๋ฉ๋๋ค.
๊ทธ๊ฒ์ ๋ํ ๊ฒฐ๊ณผ๋ก output์ด ๋์ค๊ฒ ๋ฉ๋๋ค.
์ด๊ฒ์ weighted average, ์ฆ summary๋ฅผ ํ๋ค๊ณ ๋ณด์๋ฉด ๋ฉ๋๋ค.
weighted summation๊ณผ weighted average๋ ๊ฐ์ ์๋ฏธ๋ก ๋ณด์๋ฉด ๋๊ฒ ์ต๋๋ค.
๊ทธ๋ ๋ค๋ฉด, ์ด๊ฒ ์ Neural Network์ธ์ง ์์ฌ์ด ์๊ธฐ์ค ํ ๋ฐ์.
์ด์ CNN๊ณผ MLP๋ฅผ ๋น๊ตํด๋ณด๋ฉฐ ์ด๊ฒ ์ Neural Network์ specialํ form์ธ์ง ์ดํด๋ณด๊ฒ ์ต๋๋ค.
์ด ํํ๋ฅผ ๋ค์ ๋ด ์๋ค.
์์์ ๋ณธ kernel์ด ์ฐ๋ฆฌ๊ฐ MLP์์ ์๊ณ ์๋ weight ์ญํ ์ ํ๋ค๊ณ ๋ณด์๋ฉด ๋ฉ๋๋ค.
๊ทธ๋ฆฌ๊ณ input์ ์ฐ๋ฆฌ๊ฐ ์๋ input์ด๊ณ , output์ ์ผ๋จ ์ง๊ธ์ hidden์ด๋ผ๊ณ ๋ณด๊ณ ์๋ ๋ด์ฉ์ ์ดํด๋ณด๊ฒ ์ต๋๋ค.
์์ ๊ฐ์ด 4 x 4 ์ ๊ฐ๊ฐ์ pixel ๋ค์ด ์์ ๊ฐ์ด ํผ์ณ์ ธ ์๋ค๊ณ ํฉ์๋ค.
์ฐ๋ฆฌ๊ฐ ์ง๊ธ๊น์ง ๋ด์จ input์ ์์ ๊ฐ์ด vector ํํ๋ก ํผ์ณ์ ธ ์์ต๋๋ค.
์ด๊ฒ์ flatten์ด๋ผ๊ณ ํฉ๋๋ค.
flat vector๋ผ๊ณ ๋ ํฉ๋๋ค.
๊ทธ๋์ ์ด๊ฒ๊ณผ 2D grid input๊ณผ ๋ค๋ฅธ ๊ฒ์ผ๊น์?
ํ ์ค๋ก ์ญ ์ค์ธ์ ๋ค๊ณ ์๊ฐํ๋ฉด ์ด๋ค๊ฐ์?
๊ฐ์ ๊ฒ์ ๋๋ค !
์์ ๊ฐ์ด ์์น ์ ๋ณด๋ฅผ ๊ฐ์ง๊ณ gradient๋ฅผ ๋ฌถ์ผ๋ฉด, ์ 4 x 4์ 2D grid input pixel image๊ฐ ๋๋ ๊ฒ์ ๋๋ค.
์์ ๊ฐ์ด labeling์ ํ๋ค๊ณ ๋ด ์๋ค.
๊ทธ๋ ๋ค๋ฉด, ์๋์ ๊ฐ์ด kernel์ ๊ฐ๋ ๋ถ์ด์ ๋ณผ ์ ์๊ฒ ์ฃ .
(์ผ๋ถ ์๋ตํ์ฌ y1 ~ y4๊น์ง๋ง ๊ทธ๋ ธ์ต๋๋ค.)
๊ฒฐ๊ตญ,
์ด๋ฌํ ๊ณผ์ ์ ๊ฑฐ์น๋ ๊ฒ์ด์ฃ .
๊ทธ๋ฆฌ๊ณ , stride๋ฅผ 2๋ผ๊ณ ํ๋ฉด, ์๋์ ๊ฐ์ด y2๋ ๊ตฌํ ์ ์์ต๋๋ค.
์ด๋, y1์ ๋ง๋๋ kernel ๊ฐ๊ณผ y2๋ฅผ ๋ง๋๋ kernel ๊ฐ์ ๊ฐ์ kernel ๊ฐ์ ๋๋ค.
์ด๋ ๊ฒ ํ๋์ Kernel๋ก input์ ๋๋ฉด์ hidden layer๋ฅผ ํ๋ ๋ง๋ ๊ฒ๊ณผ ๊ฐ์ ๊ฒ์ ๋๋ค.
์ด๋ ๊ฒ ๋ณด๋ฉด ์ฌ์ค MLP์ ๊ฐ์ต๋๋ค.
๊ทธ์ ํํ๋ง 2D grid์ ๋ง์ถฐ์ ํด์ค ๊ฒ์ด ๋ฉ๋๋ค.
์ค์ ๋ก vector ์ฐ์ฐ์ผ๋ก ๋ณด์๋ฉด ๋๋๋ฐ, ์ฐ๋ฆฌ๊ฐ 2D grid ํํ๋ก ๋ณด๋๊น element-wise ํํ๋ก ๋ณธ ๊ฒ์ ๋๋ค.
๊ทธ๋ผ MLP์ ๋น์ทํ ๋ถ๋ถ๋ค์ ๋ ์ดํด๋ด ์๋ค.
Sparse connection
MLP์ matrix multiplication ๋ฐฉ์์ ์ x 1 ~ 16์ ๋ค ์จ์ ๊ฐ๊ฐ์ y1 ~ 4๋ฅผ ๋ง๋๋ ๊ฒ์ด์์ฃ .
๊ทธ๋ฐ๋ฐ,
์ CNN์ hidden node y1์ ๋ณด์์ ๋,
x1, x2, x5, x6์ ์ฐ๊ฒฐ๋ก 4๊ฐ๋ง ์ฐ๊ฒฐํฉ๋๋ค.
์ฆ, 12๊ฐ์ ์ฐ๊ฒฐ์ ๋์ด๋ฒ๋ฆฌ๊ณ 4๊ฐ๋ง ์ฐ๊ฒฐํ์ฌ kernel size์ ๋ง์ถฐ์ ํ๊ฒ ๋๋ ๊ฒ์ ๋๋ค.
๊ทธ๋์ ์ด๊ฒ์ denseํ๊ฒ, ๋ฐ๋ ์๊ฒ ์ฐ๊ฒฐ๋์ด ์์ง ์๊ณ , ๋ฌ์ฑ๋ฌ์ฑํ๊ฒ ์ฐ๊ฒฐ์ด ๋๋ ๊ฒ์ ๋๋ค.
๊ทธ๋์ ์ด๊ฒ์ Sparse connection์ด๋ผ๊ณ ํฉ๋๋ค.
Parameter Sharing
์ฐ๋ฆฌ๊ฐ MLP์์ ์ดํด๋ณด์์ ๋, weight ๋ค์ด ๋ค ๋ค๋ฅธ ๊ฐ์ ๊ฐ์ง๋๋ค.
๊ทธ๋ฐ๋ฐ, ์ฐ๋ฆฌ๊ฐ ์ ์์์์ ๋ณธ CNN์ kernel์ ์ด๋์ํค๋ฉฐ, ๋๊ฐ์ weight๋ฅผ ์ ์ฉํฉ๋๋ค.
MLP์ ๊ฒฝ์ฐ์๋ 16 x 4๋ก 64๊ฐ์ weight๋ฅผ ๊ฐ์ ธ์ผํ๊ณ , sparse connection์ ๊ณ ๋ คํ๋ฉด 4 x 4๋ก 16๊ฐ๋ฅผ ๊ฐ์ ธ์ผํ์ง๋ง,
์ฌ๊ธฐ์ parameter sharing์ผ๋ก 4๊ฐ์ weight๋ง์ผ๋ก ์ด๋ฃจ์ด์ ธ ์๋ค๋ ๊ฒ์ ๋๋ค.
๊ทธ๋ ๋ค๋ฉด CNN์ด๋ผ๋ network๋ sparse connection๊ณผ parameter sharing์ด ๋ค์ด MLP๋ผ๊ณ ๋ณด๋ ๊ฒ๋ ๊ด์ฐฎ์๊น์?
๊ทธ๋ ๊ฒ ๋ด๋ ๋ฌด๋ฐฉํฉ๋๋ค !
๊ทธ์ sparse connection๊ณผ parameter sharing์ด ์ ๋ค์ด๊ฐ๋?
2D grid , 2D topology๋ฅผ ๊ฐ์ง๋ Data ์์ localize summarization์ ํด๋๊ฐ๊ฒ ๋์์ธ์ด ๋์์ต๋๋ค.
๊ทธ๋ฆฌ๊ณ ์ด๊ฒ์ ๋๊ฒ ๋ณด๋ฉด regularization์ ๊ฐ๋ ์ ๊ฐ์ง๊ณ ์์ต๋๋ค.
์ด sparse connection์ randomํ๊ฒ ํ๋ค๋ฉด drop out์ ํน์ง์ด๋ผ๊ณ ๋ณผ ์ ์๊ฒ ์ผ๋.
CNN์์๋ ์ ํด์ง ๊ท์น์ ์ํด์ ์งํ๋๊ธฐ ๋๋ฌธ์ ๊ทธ๋ ๊ฒ๋ ๋ณด๊ธฐ ์ด๋ ต์ต๋๋ค.
์ ๊ณผ์ ์ผ๋ก ๋ณด๋ฉด MLP ์ ์ฅ์์ ๊ต์ฅํ ๊ฐํ ์ ์ฝ์ ์ค๋ค๊ณ ๋ณผ ์ ์์ต๋๋ค.
๊ทธ๋ ๋ค๋ฉด, ์ฑ๋ฅ ํฅ์์ ์์ด, ๊ทธ์ ์ฐ๋ฆฌ๊ฐ ๋ฐฐ์ด๋๋ก backpropagation์ ํ๋ฉด ๋ฉ๋๋ค.
์ด CNN์ ๊ตฌ์กฐ์ ์ธ regularization์ ๊ฑธ๋ฆฐ MLP์ ๋ค๋ฆ ์์ผ๋๊น ๋ง์ด์ฃ .
Convolutional operation for Multi-channel inputs
์, ์ด๋ฒ์ ๋๊ฐ์ CNN ๊ตฌ์กฐ์์ multi-channel์ ๊ฐ๋ ์์ ํ์ฅ์์ผ ์ดํด๋ณด๋๋ก ํ๊ฒ ์ต๋๋ค.
์ฐ๋ฆฌ๊ฐ ๋ค๋ฃจ๋ ์ค์ Image์ธ input์ R,G,B๋ก ์ด๋ฃจ์ด์ง ํ๋์ input์ผ๋ก 3๊ฐ์ channel๋ก ์๊ธฐ๊ฒ ๋ฉ๋๋ค.
๊ทธ๋ฆฌ๊ณ , width, height๋ ์ฐ๋ฆฌ๊ฐ ์๋ image์ 2D grid ๊ฐ์ด๋ผ๊ณ ๋ณด์๋ฉด ๋ฉ๋๋ค.
๊ทธ๋ฆฌ๊ณ depth๋ ๋ช channel์ด๋๋ฅผ ์๋ฏธํ์ฃ .
๊ทธ๋ฌ๋ ์ด 3์ฅ์ด image์ input observation์ธ ๊ฒ์ ๋๋ค.
์ฐ๋ฆฌ๋ ์ด matrix๊ฐ channel ์๋งํผ ์์ผ๋ฏ๋ก,
์ฐ๋ฆฌ๋ ์ด๊ฒ์ tensor data๋ผ๊ณ ๋ถ๋ฅผ ๊ฒ์ ๋๋ค.
32 x 32 x 3์ ํฌ๊ธฐ๋ฅผ ๊ฐ์ฃ .
์ด ํ๋์ tensor๊ฐ ํ๋์ Data point์ ๋๋ค. ํ๋์ ๋ฐ์ดํฐ๋ฅผ ์ฒ๋ฆฌํ๋ ๋จ์์ด์ฃ .
์, ์ด์ํ์์ convolutional operation์ ์ด๋ป๊ฒ ์งํ๋ ๊น์?
์ ๊ทธ๋ฆผ๊ณผ ๊ฐ์ด 3๊ฐ์ kernel๋ค์ด ์กฐํฉ๋์ด ํ๋์ scalar ๊ฐ์ ๊ฐ์ง๋๋ค.
์ด RGB 3 channel์ ์ ๋ณด๋ฅผ ์กฐํฉํด์ผ ์ฐ๋ฆฌ๊ฐ image์์ ๊ทธ ๋ถ๋ถ์ ๋ํด ์ํ๋ ์ ๋ณด๋ฅผ ์ป์ ์ ์์ต๋๋ค.
๊ทธ๋์ ์ฐ๋ฆฌ๊ฐ 3๊ฐ์ง์ channel์ ์กฐํฉํด์ ํ๋์ ์์ฝ์ผ๋ก ๋ํ๋ผ ์ ์๋ค๋ ๊ฒ์ ๋๋ค.
๊ทธ๋ฐ๋ฐ, ์ง๊ธ input์ด tensor์ธ ๊ฒ์ฒ๋ผ,
kernel๋ ํ๋์ tensor ํํ๋ฅผ ๋๊ณ ์์ต๋๋ค.
kernel์ 2 x 2 x 3์ด์ฃ .
์ด ๊ทธ๋ฆผ๊ณผ ๊ฐ์ด 12๊ฐ๊ฐ ๋ชจ์ฌ์ ํ๋์ tensor๋ฅผ ์ด๋ฃจ๋ ๊ฒ์ ๋๋ค.
์ด๊ฒ์ kernel1, 2, 3์ด ์๋๋๋ค.
ํ๋์ tensor์ด์ฃ .
input๋ 3 channel์ด๋ kernel๋ ๊ฑฐ๊ธฐ์ ๋ง์ถฐ์ 3 channel ์ง๋ฆฌ๊ฐ ์๋ ๊ฒ์ ๋๋ค.
๊ทธ๋ฆฌ๊ณ ์ด kernel์ ๊ฐ 2 x 2์ ๊ฐ๋ค์ ๊ฐ๊ฐ ๋ค๋ฅธ ๊ฐ์ ๊ฐ๊ฒ ์ฃ .
ํ๋์ kernel์ ๋จ์ผ channel์์ convolutional operation๊ณผ ๊ฐ์ ์ฐ์ฐ์ ์ํํฉ๋๋ค.
ํ๋์ kernel์ด ํ๋์ scalar์ ๊ฐ์ ์ป๊ธฐ ์ํด์ ํ๋ ๊ฒ์ ๋๋ค.
์ด๊ฒ๋ ๋๊ฐ์ด ์ด๋ํ๋ฉฐ scalar ๊ฐ์ ์์ฑํฉ๋๋ค.
๊ทธ๋ฆฌ๊ณ ๋ง์ง๋ง์ ์์ ๊ฐ์ด ๋๊ฒ ์ฃ .
์ด ๊ทธ๋ฆผ์๋ 5 x 5 x 3 ์ Kernel์ ๊ฐ์ง๊ณ ์ํํ ๊ฒ์ ๋๋ค.
๊ทธ๋์, ์ด๋ ๊ฒ ๋ง๋ค์ด์ง ์ด ํ ์ฅ์ output node๋ค์ ์กฐํฉ์,
Convolutional Map ๋๋ Feature Map์ด๋ผ๊ณ ํฉ๋๋ค.
์ด map์ ๊ทธ ์ด์ ๋จ๊ณ์ ์ง์ญ์ ์ธ ์ ๋ณด๋ค์ ์กฐํฉํด์ ํ๋์ ํน์ง ๋งต์ ๋ง๋ค์ด๋ธ ๊ฒ์ ๋๋ค.
feature map์ ํ๋๋ง ์ด๋ค๋ฉด ๋ฝ์๋ผ ์ ์๋ ์ ๋ณด๊ฐ ๊ต์ฅํ ์ ํ์ ์ด๋ฏ๋ก, feature map์ ์ฌ๋ฌ ๊ฐ๋ฅผ ์๋๋ค.
์ฌ๊ธฐ ๋ฑ์ฅํ๋ kernel์ ์ด์ feature map 1์์์ kernel๊ณผ ๋น์ฐํ ๋ค๋ฅธ ๊ฐ์ด๊ฒ ์ฃ ?
๊ทธ๋์, ๊ฐ feature map ๋ง๋ค summarization์ ๋ฐฉํฅ๋ ๋ค๋ฆ ๋๋ค.
์ด๋ฅผ ํ ๋ฉด, feature map #1์ edge๋ฅผ ์ฐพ๋๋ค๊ณ ํ๋ฉด,
feature map #2๋ edge๊ฐ ์๋ ๋ฉด์ ์ฐพ๋๋ค๊ณ ๋ณผ ์ ์์ต๋๋ค.
๊ฐ๊ฐ์ feature map์ด ์ด์ ๋จ๊ณ์ data๋ก๋ถํฐ ์๋ก ๋ค๋ฅธ ์ ๋ณด๋ฅผ ์ถ์ถํด๋ด๊ธฐ๋ฅผ ๊ธฐ๋ํ๋ ๊ฒ์ ๋๋ค.
์ด๋ฐ์์ผ๋ก feature map์ ์ฌ๋ฌ ๊ฐ๋ฅผ ๋ง๋ญ๋๋ค.
์ ์ฌ์ง๊ณผ ๊ฐ์ด ์ด Convolutional layer์์๋ 32 x 32์ feature map์ 12๊ฐ ๋ง๋ ๊ฒ์ ๋๋ค.
์ด 12๊ฐ์ ์๋ก ๋ค๋ฅธ ๊ด์ ์์ feature๋ฅผ ์ถ์ถํ๋ค๊ณ ๋ณด๋ฉด ๋๊ฒ ์ต๋๋ค.
๊ทธ๋ฌ๋ฏ๋ก, kernel๋ 12๊ฐ์ tensor ํํ์ผ ๊ฒ์ ๋๋ค.
Stanford CS Class (Con NN for Visual Recognition)
์ ๋ด์ฉ์ ๊ต์ฅํ ์ ํํํ ๊ทธ๋ฆผ์ ๋๋ค.
3๊ฐ์ channel์ ์กฐํฉํ์ฌ filter์ฐ์ฐ๊ณผ bias๊น์ง ๋ํด์ฃผ๋ฉด,
ํ๋์ scalar ๊ฐ์ด ๋์ค๊ฒ ๋ฉ๋๋ค.
์ด๊ฒ์ ์ด๋ํ์ฌ ์ฐ์ฐํฉ๋๋ค.
์ ๋ ์ฌ์ง์ ๊ฐ๊ฐ filter1, filter2๋ก ์ฐ์ฐ๋์ด feature map1, feature map2๊ฐ ๋์จ ๊ทธ๋ฆผ์ ๋๋ค.
๋ค์ ๋ฐ๋ณตํ์๋ฉด , kernel์ ์๋ Input์ด๋ hidden์ด๋ feature map์ด ์ฌ๋ฌ ๊ฐ๋ผ๊ณ ํ๋๋ผ๋,
๊ฐ ์ง์ญ ์ ๋ณด๋ฅผ ์ข ํฉํด์ ํ๋์ ๊ฐ์ผ๋ก ํํํ๊ณ ์ถ๋ค๋ผ๊ณ ํ๋ค๋ฉด, element-wise ์ฐ์ฐ์ ์์ด ์ด์ฉ ์ ์์ด kernel๋ input channel ์์ ๋ง๊ฒ ํด์ค ๊ฒ์ ๋๋ค.
์ ๋ด์ฉ์ ์ฐ๋ฆฌ๊ฐ 2D grid์์ ์ดํด๋ณธ ๊ฒ์ฒ๋ผ 3D ๋ก Reshape ํด๋ด ์๋ค.
์ ์ด ๊ทธ๋ฆผ์ ํตํด ์ดํดํด๋ด ์๋ค.
์ฌ์ ํ ์ด ์์๋ sparse connection, parameter sharing์ด ํฌํจ๋์ด ์์ต๋๋ค.
๊ทธ ๊ฐ๋ ์ด ๋ ํ์ฅ ๋์๋ค๊ณ ๋ณด์๋ฉด ๋ ๊ฒ ๊ฐ์ต๋๋ค.
์, ์ฐ๋ฆฌ๊ฐ ์์์
MLP๋ฅผ ๊ธฐ์ค์ผ๋ก CNN์ 1 channel ๋ฅผ ๋ดค์ต๋๋ค.
์ด๊ฒ์ vector๋ฅผ ๋๊ฐ์ matrix๋ก ํํํ ๊ฒ์ด์ฃ .
index๋ฅผ ์ด๋ป๊ฒ ๋ฌถ์ด์ ์ง์ญ์ index๋ผ๋ฆฌ ๋ฌถ์ด์ connection์ ๋ง๋ค์ด์ฃผ๋๋ ์ฐจ์ด๊ฐ ์์ฃ .
CNN์์๋ MLP์ ๋ค๋ฅด๊ฒ index๋ฅผ ๊ณ ๋ คํด์ฃผ์ด์ผ ํ๋ค๋ ๊ฒ์ ๋๋ค.
์ฌ๊ธฐ์ index๋ ์ง์ญ์ ์ธ ํน์ฑ์ ๊ฐ์ง๋ ์ ์์์์ x1, x2, x7, x8๋ก ๋ฌถ์ธ๋ค๋ ํน์ฑ์ ๋๋ค.
๊ทธ๋ฆฌ๊ณ , CNN multi-channel์์๋ tensor ํํ๋ก ๋ด ๋๋ค.
์ด ๋ํ vector๋ก ํธํ์ด ๊ฐ๋ฅํฉ๋๋ค.
์ฆ MLP๊ฐ ์ข ๋ฒ์ฉ์ ์ธ ๊ฐ๋ ์ด๋ผ๋ฉด,
CNN์ image์ ๋ํด์ ๋ช ๊ฐ์ง ์ถ๊ฐ๋์ด ํด๋์ ๊ฒ์ด๋ผ๊ณ ์๊ฐํ๋ฉด ๋๊ฒ ์ต๋๋ค.
์ฐ๋ฆฌ๋ ๊ทธ๋์ Conolutional Operation์ ๊ฐ๋ , ์ ํ๋์ง, ๊ทธ๋ฆฌ๊ณ multi-channel๋ก ํ์ฅ ๋์์ ๋ ์ด๋ป๊ฒ ๋๋์ง,
๊ทธ๋ฆฌ๊ณ MLP์ ์ด๋ ํ ๊ด๋ จ์ด ์๋์ง, ๊ทธ๋ฆฌ๊ณ sparse connection๊ณผ parameter sharing ์ด๋ฐ ๊ฐํ regularization์ ์ํด์
image์ ๋ง๊ฒ MLP์ ๋ชจ์์ ๋ณํํ ๊ฒ CNN์ด๊ตฌ๋ ๋ผ๋ ๊ฒ์ ์์์ฃผ์๋ฉด ๋๊ฒ ์ต๋๋ค.
'Artificial Intelligence > Deep Learning' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Deep Learning] Recurrent Neural Network (1) (1) | 2023.05.16 |
---|---|
[Deep Learning] Convolutional Neural Network (2) (0) | 2023.05.03 |
[Deep Learning] Deep Neural Network (4) (0) | 2023.04.19 |
[Deep Learning] Deep Neural Network (3) (0) | 2023.04.16 |
[Deep Learning] Deep Neural Network (2) (0) | 2023.04.14 |