convolution neural network
ํฉ์ฑ๊ณฑ ์ ๊ฒฝ๋ง (convolution neural network: CNN)
CNN์ ์ด๋ฏธ์ง ์ธ์๊ณผ ์์ฑ ์ธ์ ๋ฑ ๋ค์ํ ๊ณณ์์ ์ฌ์ฉ๋๋๋ฐ , ํนํ ์ด๋ฏธ์ง ์ธ์ ๋ถ์ผ์์ ๋ฅ๋ฌ๋์ ํ์ฉํ ๊ธฐ๊ฒ์ ๊ฑฐ์๋ค CNN์ ๊ธฐ์ด๋ก ํ๋ค
ํฉ์ฑ๊ณฑ ๊ณ์ธต (convolutional layer) ๊ณผ ํ๋ง ๊ณ์ธต(pooling layer)
์ง๊ธ๊น์ง ๋ณธ ์ ๊ฒฝ๋ง์ ์ธ์ ํ๋ ๊ณ์ธต์ ๋ชจ๋ ๋ด๋ฐ๊ณผ ๊ฒฐํฉ๋์ด ์๊ณ , ์ด๋ฅผ ์์ ์ฐ๊ฒฐ (fully-connected, ์ ๊ฒฐํฉ)์ด๋ผ๊ณ ํ๋ฉฐ, ์์ ํ ์ฐ๊ฒฐ๋ ๊ณ์ธต์ Affine ๊ณ์ธต์ด๋ผ๋ ์ด๋ฆ์ผ๋ก ๊ตฌํํ๊ณ ์๋ค.
์์ ํ ์ ๊ฒฝ๋ง์ Affine ๊ณ์ธต ๋ค์ ํ์ฑํ ํจ์์ธ ReLU๊ณ์ธต (sigmoid๊ณ์ธต)์ด ์ด์ด์ง๋ค
CNN ์์๋ ์๋ก์ด ํฉ์ฑ๊ณฑ ๊ณ์ธต๊ณผ ํ๋ง ๊ณ์ธต์ด ์ถ๊ฐ๋๋ค. ์ฆ, Affine = ReLU ์ฐ๊ฒฐ์ด Conv - ReLU - (Pooling)์ผ๋ก ๋ฐ๋๋ค
๋ํ, CNN์์๋ Affine-ReLU์ ๊ตฌ์ฑ์ด ๊ฐ๋ฅํ๋ฉฐ, ๋ง์ง๋ง ์ถ๋ ฅ ๊ณ์ธต์์๋ Affine- Softmax๋ฅผ ๊ทธ๋๋ก ์ฌ์ฉํ ์ ์๋ค
CNN์์๋ ํจ๋ฉ padding, ์คํธ๋ผ์ด๋ stride ๋ฑ CNN ๊ณ ์ ์ ์ฉ์ด๊ฐ ๋ฑ์ฅํ๋ค. ๋, ๊ฐ ๊ณ์ธต ์ฌ์ด์๋ 3์ฐจ์ ๋ฐ์ดํฐ๊ฐ์ด ์ ์ฒด์ ์ธ ๋ฐ์ดํฐ๊ฐ ํ๋ฅธ๋ค๋ ์ ์์ ์์ ์ฐ๊ฒฐ ์ ๊ฒฝ๋ง๊ณผ ๋ค๋ฅด๋ค
์์ ์ฐ๊ฒฐ ๊ณ์ธต์ ๋ฌธ์ ์
๋ฐ๋ก, ๋ฐ์ดํฐ์ ํ์์ด ๋ฌด์ ๋๋ค๋ ์ฌ์ค์ด ๋ฌธ์ ์ ์ด๋ค
ํ์์ ๋ฌด์ํ๊ณ ๋ชจ๋ ์ ๋ ฅ ๋ฐ์ดํฐ๋ฅผ ๋๋ฑํ ๋ด๋ฐ (๊ฐ์ ์ฐจ์์ ๋ด๋ฐ)์ผ๋ก ์ทจ๊ธํ์ฌ ํ์์ ๋ด๊ธด ์ ๋ณด๋ฅผ ์ด๋ฆด ์ ์๋ค. ํํธ, ํฉ์ฑ๊ณฑ ๊ณ์ธต์ ํ์์ ์ ์งํ๋ค
์ด๋ฏธ์ง๋ 3์ฐจ์ ๋ฐ์ดํฐ๋ก ์ ๋ ฅ ๋ฐ์, ๋ง์ฐฌ๊ฐ์ง๋ก ๋ค์๊ณ์ธต์์๋ 3์ฐจ์ ๋ฐ์ดํฐ๋ก ์ ๋ฌํ๋ค.
๊ทธ๋์ CNN ์์๋ ์ด๋ฏธ์ง์ฒ๋ผ ํ์์ ๊ฐ์ง ๋ฐ์ดํฐ๋ฅผ ์ ๋๋ก ์ดํดํ ์ ์๋ค
CNN์์๋ ํฉ์ฑ๊ณฑ ๊ณ์ธต์ ์ ์ถ๋ ฅ ๋ฐ์ดํฐ๋ฅผ ํน์ง๋งต feature map ์ด๋ผ๊ณ ํ๋ค
์ ๋ ฅ ํน์ง ๋งต์ input feature map, ์ถ๋ ฅ ํน์ง ๋งต์ output feature map์ด๋ผ๊ณ ํ๋ค
ํฉ์ฑ๊ณฑ ์ฐ์ฐ
ํฉ์ฑ๊ณฑ ์ฐ์ฐ์ ์ด๋ฏธ์ง ์ฒ๋ฆฌ์์ ๋งํ๋ ํํฐ ์ฐ์ฐ์ ํด๋นํ๋ค
ํํฐ์ ํ์์ ๋์ด์ ๋๋น๋ก ํ๊ธฐํ๋ฉฐ, ํํฐ๋ฅผ ์ปค๋์ด๋ผ๊ณ ์นญํ๊ธฐ๋ ํ๋ค
ํฉ์ฑ๊ณฑ์ ์ฐ์ฐ์ ํํฐ์ ์๋์ฐ window๋ฅผ ์ผ์ ํ ๊ฐ๊ฒฉ์ผ๋ก ์ด๋ํด๊ฐ๋ฉด ์ ๋ ฅ ๋ฐ์ดํฐ์ ์ ์ฉ
์ด๋ฅผ, ๋จ์ผ ๊ณฑ์ - ๋์ฐ (fused multiply add : FMA)์ด๋ผ ํ๋ค
์์ ์ฐ๊ฒฐ ์ ๊ฒฌ๋ง์๋ ๊ฐ์ค์น ๋งค๊ฐ๋ณ์์ ํธํฅ์ด ์กด์ฌํ๋๋ฐ, CNN์์๋ ํํฐ์ ๋งค๊ฐ๋ณ์๊ฐ ๊ทธ๋์์ ๊ฐ์ค์น์ ํด๋นํ๋ค
๊ทธ๋ฆฌ๊ณ CNN์์๋ ํธํฅ์ด ์กด์ฌํ๋ค. ํธํฅ์ ํญ์ ํ๋(1x1)๋ง ์กด์ฌํ๋ค
ํจ๋ฉ (padding)
ํฉ์ฑ๊ณฑ ์ฐ์ฐ์ ์ํํ์ง ์ ์ ์ ๋ ฅ ๋ฐ์ดํฐ ์ฃผ๋ณ์ ํน์ ๊ฐ(์์ปจ๋ 0)์ผ๋ก ์ฑ์
ํจํ ์ ์ฃผ๋ก ์ถ๋ ฅ ํฌ๊ธฐ๋ฅผ ์กฐ์ ํ ๋ชฉ์ ์ผ๋ก ์ฌ์ฉํ๋ค
์ฆ, ํฉ์ฑ๊ณฑ ์ฐ์ฐ์ ๊ฑฐ์น ๋๋ง๋ค ํฌ๊ธฐ๊ฐ ์์์ง๋ฉด ์ด๋ ์์ ์์๋ ์ถ๋ ฅ ํฌ๊ธฐ๊ฐ 1์ด ๋์ด ๋ฒ๋ฆด์ ์๋ค
์ด๋ฌํ ์ฌํ๋ฅผ ๋ง๊ธฐ ์ํด์ ํจํ ์ ์ฌ์ฉํ๋ค
์คํธ๋ผ์ดํธ (stride)
ํํฐ๋ฅผ ์ ์ฉํ๋ ์์น์ ๊ฐ๊ฒฉ์ ์คํธ๋ผ์ดํธ๋ผ๊ณ ํ๋ค
์๋ฅผ ๋ค์ด ์คํธ๋ผ์ดํธ๋ฅผ 2๋ก ํ๋ฉด ํํฐ๋ฅผ ์ ์ฉํ๋ ์๋์ฐ๊ฐ ๋์นธ์ฉ ์ด๋
3์ฐจ์ ๋ฐ์ดํฐ์ ํฉ์ฑ๊ณฑ ์ฐ์ฐ
์ด๋ฏธ์ง๋ง ํด๋ ์ธ๋ก, ๊ฐ๋ก์ ๋ํด์ ์ฑ๋๊น์ง ๊ณ ๋ คํ 3์ฐจ์ ๋ฐ์ดํฐ์ด๋ค
2์ฐจ์ ์ผ๋์ ๋น๊ตํ๋ฉด, ๊ธธ์ด ๋ฐฉํฅ(์ฑ๋ ๋ฐฉํฅ)์ผ๋ก ํน์ง ๋งต์ด ๋์ด๋๋ค
์ฑ๋ ์ชฝ์ผ๋ก ํน์ง ๋งต์ด ์ฌ๋ฌ ๊ฐ ์๋ค๋ฉด ์ ๋ ฅ ๋ฐ์ดํฐ์ ํํฐ์ ํฉ์ฑ๊ณฑ ์ฐ์ฐ์ ์ฑ๋๋ง๋ค ์ํํ๊ณ , ๊ทธ ๊ฒฐ๊ณผ๋ฅผ ๋ํด์ ํ๋์ ์ถ๋ ฅ์ ์ป๋๋ค
3์ฐจ์์ ํฉ์ฑ๊ณฑ ์ฐ์ฐ์์ ์ฃผ์ํ ์ ์ ์ ๋ ฅ๋ฐ์ดํฐ์ ์ฑ๋์์ ํํฐ์ ์ฑ๋์๊ฐ ๊ฐ์์ผ ํ๋ค
๋ธ๋ก์ผ๋ก ์๊ฐํ๊ธฐ
3์ฐจ์์ ํฉ์ฑ๊ณฑ ์ฐ์ฐ์ ๋ฐ์ดํฐ์ ํํฐ๋ฅผ ์ง์ก๋ฉด์ฒด ๋ธ๋ก์ด๋ผ๊ณ ์๊ฐํ๋ฉด ๋๋ค
์ ๋ ฅ๋ฐ์ดํฐ (C, H, W) * ํํฐ (C, FH, FW) = ์ถ๋ ฅ๋ฐ์ดํฐ(1, OH, OW)
๊ทธ๋ผ ํฉ์ฑ๊ณฑ ์ฐ์ฐ์ ์ถ๋ ฅ์ผ๋ก ๋ค์์ ์ฑ๋์ ๋ด๋ณด๋ด๋ ค๋ฉด ์ด๋ป๊ฒ ํด์ผ ํ ๊น์? => ํํฐ(๊ฐ์ค์น)๋ฅผ ๋ค์ ์ฌ์ฉํ๋ค
์ ๋ ฅ๋ฐ์ดํฐ (C, H, W) * ํํฐ (C, FH, FW, FN) = ์ถ๋ ฅ๋ฐ์ดํฐ(FN, OH, OW) ์ฌ๊ธฐ์ ํํฐ๋ฅผ FN๊ฐ ์ ์ฉํ๋ฉด ์ถ๋ ฅ ๋งต๋ FN๊ฐ ์์ฑ๋๋ค
ํฉ์ฑ๊ณฑ ์ฐ์ฐ์๋(์์ ์ฐ๊ฒฐ ๊ณ์ธต๊ณผ ๋ง์ฐฌ๊ฐ์ง๋ก) ํธํฅ์ด ์ฐ์ธ๋ค
์ ๋ ฅ๋ฐ์ดํฐ (C, H, W) * ํํฐ (C, FH, FW, FN) => ์ถ๋ ฅ๋ฐ์ดํฐ(FN, OH, OW) + ํธํฅ (FN, 1, 1) => (FN, OH, OW)
ํ์์ด ๋ค๋ฅธ ๋ธ๋ก์ ๋ง์ ์ ๋ํ์ด์ ๋ธ๋ก๋์บ์คํธ ๊ธฐ๋ฅ์ผ๋ก ์ฝ๊ฒ ๊ตฌํ์ด ๊ฐ๋ฅํ๋ค
๋ฐฐ์น ์ฒ๋ฆฌ
์ ๊ฒฝ์ฒ๋ฆฌ์์๋ ์ ๋ ฅ ๋ฐ์ดํฐ๋ฅผ ํ๋ฉ์ด๋ก ๋ฌถ์ด ๋ฐฐ์น๋ฅผ ์ฒ๋ฆฌํ๋ค
์์ ์ฐ๊ฒฐ ์ ๊ฒฝ๋ง์ ๊ตฌํํ๋ฉด์๋ ์ด ๋ฐฉ์์ ์ง์ํ์ฌ ์ฒ๋ฆฌ ํจ์จ์ ๋์ด๊ณ , ๋ฏธ๋๋ฐฐ์น ๋ฐฉ์์ ํ์ต๋ ์ง์ํ์๋ค
ํฉ์ฑ๊ณฑ ์ฐ์ฐ๋ ๋ง์ฐฌ๊ฐ์ง๋ก ๋ฐฐ์น ์ฒ๋ฆฌ ๋ฅผ ์ง์ํ๋ฉฐ, ๊ฐ ๊ณ์ธต์ ํ๋ฅด๋ ๋ฐ์ดํฐ์ ์ฐจ์์ ํ๋ ๋๋ ค 4์ฐจ์ ๋ฐ์ดํฐ๋ก ์ ์ฅ
์ ๋ ฅ๋ฐ์ดํฐ (N(N๊ฐ ๋ฐ์ดํฐ) ,C, H, W) * ํํฐ (C, FH, FW, FN)
=> ์ถ๋ ฅ๋ฐ์ดํฐ(N(N๊ฐ ๋ฐ์ดํฐ), FN, OH, OW) + ํธํฅ (FN, 1, 1)
=> (N(N๊ฐ ๋ฐ์ดํฐ), FN, OH, OW)
์ด์ฒ๋ผ ๋ฐ์ดํฐ๋ 4์ฐจ์ ํ์์ ๊ฐ์ง ์ฑ ๊ฐ ๊ณ์ธต์ ํ๊ณ ํ๋ฆ ๋๋ค
์ฌ๊ธฐ์์ ์ฃผ์ํ ์ ์ผ๋ก๋ ์ ๊ฒฝ๋ง์ 4์ฐจ์ ๋ฐ์ดํฐ๊ฐ ํ๋ ํ๋ฅผ ๋๋ง๋ค ๋ฐ์ดํฐ N๊ฐ ๋ํ ํฉ์ฑ๊ณฑ ์ฐ์ฐ์ด ์ด๋ค์ง๋ค๋ ๊ฒ์ด๋ค
์ฆ, N ํ ๋ถ์ ์ฒ๋ฆฌ๋ฅผ ํ ๋ฒ์ ์ํํ๋ ๊ฒ์ด๋ค
ํ๋ง ๊ณ์ธต
ํ๋ง์ ์ธ๋ก ๊ฐ๋ก ๋ฐฉํฅ์ ๊ณต๊ฐ์ ์ค์ด๋ ์ฐ์ฐ์ด๋ค
์ต๋ ํ๋ง์ ๋์ ์์ญ์์ ์ต๋๊ฐ์ ์ทจํ๋ ์ฐ์ฐ์ธ ๋ฐ๋ฉด,
ํ๊ท ํ๋ง์ ๋์ ์ฐ์ญ์์ ํ๊ท ์ ๊ณ์ฐํ๋ค
์ด๋ฏธ์ง ์ธ์ ๋ถ์ผ์์๋ ์ฃผ๋ก ์ต๋ ํ๋ง์ ์ฌ์ฉํ๋ค.
ํ๋ง ๊ณ์ธต์ ํน์ง
ํ์ตํด์ผ ํ ๋งค๊ฐ ๋ณ์๊ฐ ์๋ค
ํ๋ง์ ๋์ ์์ญ์์ ์ต๋๊ฐ์ด๋ ํ๊ท ์ ์ทจํ๋ ๋ช ํํ ์ฒ๋ฆฌ์ด๋ฏ๋ก ํน๋ณํ ํ์ตํ ๊ฒ์ด ์๋ค
์ฑ๋ ์๊ฐ ๋ณํ์ง ์๋๋ค
ํ๋ง ์ฐ์ฐ์ ์ ๋ ฅ ๋ฐ์ดํฐ์ ์ฑ๋ ์ ๊ทธ๋๋ก ์ถ๋ ฅ ๋ฐ์ดํฐ๋ก ๋ด๋ณด๋ธ๋ค, ์ฑ๋ ๋ง๋ค ๋ ๋ฆฝ์ ์ผ๋ก ๊ณ์ฐํ๊ธฐ ๋๋ฌธ์ด๋ค
์ ๋ ฅ์ ๋ณํ์ ์ํฅ์ ์ ๊ฒ ๋ฐ๋๋ค (๊ฐ๊ฑดํ๋ค)
์ ๋ ฅ๋ฐ์ดํฐ๊ฐ ์กฐ๊ธ ๋ณํด๋ ํ๋ง์ ๊ฒฐ๊ณผ๋ ์ ๋ณํ์ง ์๋๋ค.
Last updated
Was this helpful?