- toc {:toc}
Fully Connected Neural Net
2์ฐจ์์ผ๋ก ๋ ์ด๋ฏธ์ง๋ฅผ 1์ฐจ์์ผ๋ก ๋ฐ๊ฟ ํ์ต
1์ฐจ์์ผ๋ก ๋ฐ๊พธ๋ ๊ณผ์ ์์ ๊ณต๊ฐ์ ๋ณด๊ฐ ์์ค๋๋ค.
โ ์ด๋ฏธ์ง์ ํ์์ ๊ณ ๋ คํ์ง ์๊ณ ๋จ์ raw data๋ฅผ ์ฒ๋ฆฌํ๋ฏ๋ก ๋ง์์์ ํ์ต๋ฐ์ดํฐ๊ฐ ํ์ํ๋ค.
โ ์ด๋ฏธ์ง๊ฐ ํ์ ๋๋ ์์ง์ด๋ฉด ์๋ก์ด ์ ๋ ฅ์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ์ฒ๋ฆฌํด์ค์ผ ํ๋ค.
โ ์ด๋ฏธ์ง์ ํฌ๊ธฐ๊ฐ ์ปค์ง์๋ก ๋๋ฌด ๋ง์ Weight๊ฐ ํ์ํ๋ค.
{: width=โ600โ}{: .center}
CNN(Convolution Neural Network)
- CNN์ ์ด๋ฏธ์ง๋ฅผ ์ธ์ํ๊ธฐ ์ํด ํจํด์ ์ฐพ๋๋ฐ ํนํ ์ ์ฉํ๋ค.
- ๋ฐ์ดํฐ๋ฅผ ์ง์ ํ์ตํ๊ณ ํจํด์ ์ฌ์ฉํด ์ด๋ฏธ์ง๋ฅผ ๋ถ๋ฅํ๋ค. (ํน์ง์ ์๋์ผ๋ก ์ถ์ถํ ํ์ ์๋ค.)
- ์ด๋ฏธ์ง์ ๊ณต๊ฐ์ ๋ณด๋ฅผ ์ ์งํ ์ฑ ํ์ตํ๋ค.
ํฉ์ฑ๊ณฑ ์ ๊ฒฝ๋ง์ ๊ตฌ์ฑ์์
๐ ํฉ์ฑ๊ณฑ ์ ๊ฒฝ๋ง์ ๊ตฌ์ฑํ๋ ๊ธฐ๋ณธ ๊ฐ๋ ๊ณผ ๋์ ์๋ฆฌ๋ฅผ ๋ฐฐ์ฐ๊ณ ํฉ์ฑ๊ณฑ, ํ๋ง ๊ณ์ฐ ๋ฐฉ๋ฒ์ ์ตํ๋ณด์.
Convolution Layer
{: width=โ600โ}{: .center}
- ํฉ์ฑ๊ณฑ - ์ ๋ ฅ๋ฐ์ดํฐ์ ๋์ฅ(๊ฐ์ค์น)์ ์ฐ์ด ์ ์ฉํ ํน์ฑ๋ง ๋๋ฌ๋๊ฒ ํ๋ ๊ฒ
- ์ผ๋ถ์ ๋์ฅ์ ์ฐ์ด ๊ฐ์ค์น๋ฅผ ๊ณฑํด ๊ฐ๊ฐ
๊ณ์ฐ ํ ๋ชจ๋ ํฉํด Output์ ์ฐ์ถํ๋ค. - ๊ฐ์ค์น์ ์ ํธ์ ๋์ผํ ๊ฒ์ ์ฌ์ฉํ๋ค.
- ํน์ฑ ๋งต(feature map) - ํฉ์ฑ๊ณฑ ๊ณ์ฐ์ ํตํด ์ป์ ์ถ๋ ฅ
- ํน์ฑ ๋งต ํ๋ ํ๋๊ฐ ์ถ์ถ๋ feature๋ฅผ ๋ํ๋ธ๋ค.
- ์ด๋ฏธ์ง๋ ๋ณดํต ๊ฐ๋กX์ธ๋กX์ฑ๋์ ๋ก 3์ฐจ์์ผ๋ก ๊ตฌ์ฑ๋๋ค. ๊ฐ๋ก, ์ธ๋ก๋ ํฝ์ ์ ํฌ๊ธฐ๋ฅผ ์๋ฏธํ๊ณ ์ฑ๋์๋ Red, Green, Blue 3์์์ ์๊น์ ๋ํ๋ธ๋ค.
- Fully Connected Layer์์ ์ฐจ์ด โ FC Layer์ ๊ฐ์ ๊ฒฝ์ฐ 3๊ฐ์ ์ฑ๋์ ๊ณ์ฐ์ ์ํด์ ๋ชจ๋ 1์ฐจ์์ผ๋ก ๋์ด๋จ๋ ค์ผ ํ์ง๋ง Conv Layer์ ๊ฒฝ์ฐ ์ฑ๋์ ํํ๋ฅผ ์ ์งํ๋ค.
{: width=โ600โ}{: .center}
- Conv Layer๋ฅผ ํตํด์ ์ ์ฉํ ํน์ฑ(Feature)๋ค์ ๋ฝ์๋ผ ์ ์๋ค.
- ๋ง์ Conv๋ฅผ ๊ฑฐ์น ์๋ก ๋ ์์ธํ๊ณ ํจ์ถ๋ ํน์ง๋ค์ ๋ฝ์๋ธ๋ค.
ํํฐ์ ์ปค๋
{: width=โ600โ}{: .center}
- CNN์์ ํํฐ์ ์ปค๋์ ๊ฑฐ์ ํผ์ฉ๋์ด ์ฌ์ฉ๋๋ค. ๊ฑฐ์ ๊ฐ์ ๋ง์ด๋ผ ๋ด๋ ๋๋ค.
- ์๋ฐํ ๊ตฌ๋ถํ๋ฉด ํํฐ๋ ์ฌ๋ฌ๊ฐ์ ์ปค๋๋ก ๊ตฌ์ฑ๋์ด ์๊ณ ๊ฐ๋ณ ์ปค๋์ ํํฐ๋ด์์ ์๋ก ๋ค๋ฅธ ๊ฐ์ ๊ฐ์ง ์ ์๋ค.
- ์ ๊ทธ๋ฆผ์์ ๋ค๋ฅธ ์์ ํ ํ๋ํ๋๋ ์ปค๋์ ์๋ฏธํ๊ณ ์ปค๋๋ก ๊ตฌ์ฑ๋ ์ ์ฒด๋ฅผ 1๊ฐ์ ํํฐ๋ผ ํ๋ค. ์ด๋ฌํ ํํฐ๋ค์ด ์ฌ๋ฌ ๊ฐ ๊ตฌ์ฑํด Conv๊ณ์ฐ์ ์งํํ๋ค.
์ปค๋
- Kernel Size : ๊ฐ๋กx์ธ๋ก ๋ฉด์ ์ ์๋ฏธํ๋ค.
- ์ปค๋์ ํฌ๊ธฐ๊ฐ ํด์๋ก ์ ๋ ฅ์ด๋ฏธ์ง์์ ๋ ๋ง์ ์ ๋ณด๋ฅผ ๊ฐ์ ธ์ฌ ์ ์๋ค.
ํจ๋ฉ๊ณผ ์คํธ๋ผ์ด๋
- 5x5 input์ 3x3 Conv๋ฅผ ํตํด ๋์จ Feature map์ 3x3์ด ๋๋ค. Conv Layer๋ฅผ ๊ฑฐ์น ์๋ก Feature map์ ์ ์ ๋ ์์์ง๊ฒ ๋๋ค.
์ ๋ ฅ๊ณผ ๋์ผํ ์ถ๋ ฅ์ ๋ง๋ค๊ธฐ ์ํด์๋?
โ ๋ ํฐ ์ ๋ ฅ์ ํฉ์ฑ๊ณฑ์ ํ๋ ๊ฒ๊ณผ ๊ฐ์ด ๊ณ์ฐํด์ผ ํ๋ค.
{: width=โ300โ}{: .center}
- ํจ๋ฉ : ์ ๋ ฅ ๋ฐฐ์ด ์ฃผ์๋ฅผ ๊ฐ์์ ์์๋ก ์ฑ์ฐ๋ ๊ฒ
- ์ธ์ ํจ๋ฉ : ์ ๋ ฅ๊ณผ ํน์ฑ ๋งต์ ํฌ๊ธฐ๋ฅผ ๋์ผํ๊ฒ ๋ง๋ค๊ธฐ ์ํด ์ ๋ ฅ ์ฃผ์์ 0์ผ๋ก ํจ๋ฉํ๋ ๊ฒ
- ๋ฐธ๋ฆฌ๋ ํจ๋ฉ : ํจ๋ฉ ์์ด ์์ํ ์ ๋ ฅ ๋ฐฐ์ด์์๋ง ํฉ์ฑ๊ณฑ์ ํด ํน์ฑ ๋งต์ ๋ง๋๋ ๊ฒฝ์ฐ
ํจ๋ฉ์ ์ฌ์ฉํ์ง ์๋๋ค๋ฉด?
โ ๊ฐ ๋ชจ์๋ฆฌ์ ๊ฐ๋ค์ 1๋ฒ์ฉ๋ง ์ฌ์ฉ๋๋ค. โ ์ค์ฌ๋ถ์ ๊ฐ๋ค์ ์น์ค๋ ํน์ฑ ๋งต์ด ๋์จ๋ค.
โ ์ด๋ฅผ ํจ๋ฉํ๋ฉด ์ฐธ์ฌํ๋ ๋น์จ์ ์ฐจ์ด๊ฐ ์ค์ด๋ ๋ค. (2ํฝ์ ์ ํจ๋ฉ ์ ์ฐธ์ฌ๋น์จ์ด ๊ฐ์์ง๋ค.)
์คํธ๋ผ์ด๋
- ์คํธ๋ผ์ด๋ : ์ปค๋์ด ์ด๋ํ๋ ํฌ๊ธฐ. default=1
- ์คํธ๋ผ์ด๋๊ฐ ๋์ด๋๋ฉด Feature map์ ํฌ๊ธฐ๋ฅผ ๋๋ต ์ ๋ฐ์ผ๋ก ์ค์ธ๋ค.
- Convolution ์ฐ์ฐ ์๋๋ฅผ ํฅ์์ํจ๋ค.
ํ๋ง
- ํ๋ง : ํฉ์ฑ๊ณฑ ์ธต์์ ๋ง๋ ํน์ฑ ๋งต์ ๊ฐ๋ก์ธ๋ก ํฌ๊ธฐ๋ฅผ ์ค์ด๋ ์ญํ ์ํ
- ํฉ์ฑ๊ณฑ๊ณผ ๊ฐ์ด ์ ๋ ฅ ์๋ฅผ ์ง๋๊ฐ๋ฉด์ ๋์ฅ์ ์ฐ์ง๋ง ํ๋ง์ ๊ฐ์ค์น๊ฐ ์๋ค.
- ์ต๋ ํ๋ง(Max Pooling) : ๋์ฅ์ ์ฐ์ ์์ญ์์ ๊ฐ์ฅ ํฐ ๊ฐ์ ์ ํ
- ํ๊ท ํ๋ง(Average Pooling) : ๋์ฅ์ ์ฐ์ ์์ญ์์ ํ๊ท ๊ฐ์ ๊ณ์ฐ
- ํ๋ง์ ๊ฒน์น์ง ์๊ณ ์ด๋ํ๋ค. [ํ๋ง์ ํฌ๊ธฐ = ์คํธ๋ผ์ด๋]
- ์ฌ์ฉ ์ด์ : ํฉ์ฑ๊ณฑ์์ ์คํธ๋ผ์ด๋๋ฅผ ํฌ๊ฒ ํ์ฌ ํน์ฑ ๋งต์ ์ค์ด๋ ๊ฒ๋ณด๋ค ํ๋ง์ธต์์ ํฌ๊ธฐ๋ฅผ ์ค์ด๋ ๊ฒ์ด ๊ฒฝํ์ ์ผ๋ก ๋ ๋์ ์ฑ๋ฅ์ ๋ด๊ธฐ ๋๋ฌธ
{: width=โ600โ}{: .center}
์ถ์ฒ: https://towardsai.net/p/l/introduction-to-pooling-layers-in-cnn
- ์ฐจ์ด๋ฅผ ๋๋น์ํจ feature๊ฐ ๊ตฌ๋ณํ๋๋ฐ ์ ๋ฆฌํ๊ธฐ ๋๋ฌธ์ ๋ณดํต MaxPooling์ ์ฌ์ฉ
Convolution layer์ Output ํฌ๊ธฐ ๊ณ์ฐ
: Size(width) of output image : Size(width) of input image : Size(width) of kernels used in the Conv layer : Number of kernels : Stride of the convolution operation : Padding size
์ถ๋ ฅ ์ด๋ฏธ์ง์ ์ฑ๋ ์๋ ์ปค๋์ ๊ฐฏ์(
MaxPolling์ Output ํฌ๊ธฐ ๊ณ์ฐ
: Size(width) of output image : Size(width) of input image : Stride of the convolution operation : Pooling size
์ถ๋ ฅ ์ด๋ฏธ์ง์ ์ฑ๋ ์๋ ์ ๋ ฅ ์ด๋ฏธ์ง์ ์ฑ๋ ์์ ๋์ผํ๋ค.
ํฉ์ฑ๊ณฑ ์ ๊ฒฝ๋ง์ ์ ์ฒด ๊ตฌ์กฐ

์ถ์ฒ : http://taewan.kim/post/cnn/
CNN์ ์ ์ฒด ๊ตฌ์กฐ๋ Feature๋ฅผ ์ถ์ถํ๋ Feature extraction, ์ดํ FC layer๋ฅผ ํตํ Classification์ผ๋ก ๊ตฌ์ฑ๋์ด ์๋ค.