
๐ํฉ์ฑ๊ณฑ์ธต ๋์ ํ์ธํ๊ธฐ
๐ํ๋ง์ธต ๋์ ํ์ธํ๊ธฐ

๊ธฐ๋ณธ ์์

๐์ต์ด์ CNN, LeNet
CNN์ ์์ด๋ก ํ๊ฐ๋ฐ๋ ๋ชจ๋ธ์ 1998๋ Yann LeCun์ด ๋ฐํํ LeNet์ด๋ค. LeNet-5๋ ์๊ธ์จ ์ซ์(MNIST ๋ฐ์ดํฐ์ ) ์ธ์์ ์ํด ์ค๊ณ๋์์ผ๋ฉฐ, ์ค๋๋ ์ฐ๋ฆฌ๊ฐ ์ฌ์ฉํ๋ CNN์ ๊ธฐ๋ณธ ๊ตฌ์กฐ์ธ "ํฉ์ฑ๊ณฑ -> ํ๋ง -> ์์ ์ฐ๊ฒฐ" ํํ๋ฅผ ๊ฑฐ์ ์ต์ด๋ก ์ ๋ฆฝํ ๋ชจ๋ธ์ด๋ค.
โญ์ฉ์ด
CNN์์๋ ๋ค์ ์ฉ์ด๋ค์ด ํผ์ฉ๋์ด ์ฌ์ฉ๋๋ค. ์๋ฏธ๋ฅผ ์ ์์๋๊ธฐ!
- ๋ด๋ฐ: ์ ํต์ ์ธ ์ธ๊ณต ์ ๊ฒฝ๋ง์์ ํ๋์ ๋ ธ๋๋ฅผ ์๋ฏธํ๋ฉฐ, ์ ๋ ฅ์ ๋ฐ์ ๊ฐ์ค์น์ ๊ณฑํ๊ณ ๋น์ ํ ํ์ฑํ๋ฅผ ํต๊ณผํด ์ถ๋ ฅ๊ฐ์ ์์ฑ
- ์ ๋: CNN์์๋ feature map์ ํ ์์น์ ์๋ ํ์ฑ ๋ ธ๋๋ฅผ ์ง์นญ
- ํํฐ, ์ปค๋: ์ ๋ ฅ ๋ฐ์ดํฐ(์: ์ด๋ฏธ์ง)์ ๋ํด ๊ณต๊ฐ์ ์ผ๋ก ๊ตญ์์ ์ธ ์์ญ์ ์ค์บํ๋ฉฐ ํน์ง์ ์ถ์ถํ๋ ๊ฐ์ค์น ํ๋ ฌ
๐ANN vs CNN

โ
์ธ๊ณต ์ ๊ฒฝ๋ง(ANN)
ANN์ ์
๋ ฅ์ธต, ์๋์ธต, ์ถ๋ ฅ์ธต์ผ๋ก ๊ตฌ์ฑ๋๋ค. ๊ฐ ์ธต์ ๋ด๋ฐ์ ๋ฐ๋ก ์ด์ ์ธต์ ๋ชจ๋ ๋ด๋ฐ๊ณผ ์ฐ๊ฒฐ๋๋ค. ์ด๋ฅผ ์์ ์ฐ๊ฒฐ ๋๋ Dense ๊ตฌ์กฐ๋ผ๊ณ ํ๋ค. ANN์ ๊ตฌ์กฐ์ ์ผ๋ก ๋จ์ํ์ง๋ง ์
๋ ฅ ๋ฐ์ดํฐ๊ฐ ๊ณ ์ฐจ์์ผ ๊ฒฝ์ฐ ๊ฐ์ค์น ์๊ฐ ๊ธ๊ฒฉํ ์ฆ๊ฐํ์ฌ ํ์ต๊ณผ ์ผ๋ฐํ์ ์ด๋ ค์์ด ์๋ค.
โ ํฉ์ฑ๊ณฑ ์ ๊ฒฝ๋ง(CNN)
CNN์ ํฉ์ฑ๊ณฑ์ธต, ํ๋ง์ธต, ์์ ์ฐ๊ฒฐ์ธต์ผ๋ก ๊ตฌ์ฑ๋๋ค.
- ํฉ์ฑ๊ณฑ์ธต(convolution layer): ์ ๋ ฅ ๋ฐ์ดํฐ์ ํํฐ๋ฅผ ์ ์ฉํ์ฌ ํน์ง ๋งต(feature map)์ ์์ฑํ๋ค. ํํฐ๋ ๊ตญ์์ ์ธ ์์ญ์์ ํน์ง์ ์ถ์ถํ๋ฉฐ, ๋ชจ๋ ์ ๋ ฅ์ ๊ฑธ์ฒ ๋์ผํ ๊ฐ์ค์น๋ฅผ ๊ณต์ ํ๋ค. ์ด๋ก ์ธํด ํ๋ผ๋ฏธํฐ ์๊ฐ ๊ธ๊ฒฉํ๊ฒ ์ค์ด๋ ๋ค.
- ํ๋ง์ธต(pooling layer): ํน์ง ๋งต์ ํฌ๊ธฐ๋ฅผ ์ถ์ํ์ฌ ์ฐ์ฐ๋์ ์ค์ด๊ณ , translation invariance๋ฅผ ์ ๊ณตํ๋ค. max pooling, average pooling์ด ์ฌ์ฉ๋๋ค.
- ์์ ์ฐ๊ฒฐ์ฆ/๋ฐ์ง์ธต(dense layer):flatten๋ feature์ ๋ถ๋ฅ๊ธฐ(softmax ๋ฑ)์ ์ ๋ฌํ์ฌ ์ต์ข ์ถ๋ ฅ์ ์์ฑํ๋ค.
โ LeNet-5๊ณผ ์ต์ CNN์ ์ฐจ์ด
์ ๋ ฅ: 32x32 ํ๋ฐฑ ์ด๋ฏธ์ง
C1: 6๊ฐ์ 5x5 ํํฐ๋ฅผ ์ ์ฉํ ํฉ์ฑ๊ณฑ์ธต
S2: 2x2 ํ๊ท ํ๋ง์ธต(subsampling)
C3: 16๊ฐ์ 5x5 ํํฐ๋ฅผ ์ ์ฉํ ํฉ์ฑ๊ณฑ์ธต
S4: 2x2 ํ๊ท ํ๋ง์ธต
C5: 120๊ฐ์ 5x5 ํํฐ๋ฅผ ์ ์ฉํ ํฉ์ฑ๊ณฑ์ธต
F6: 84๊ฐ์ ๋ด๋ฐ์ผ๋ก ์ด๋ฃจ์ด์ง ์์ ์ฐ๊ฒฐ์ธต
์ถ๋ ฅ์ธต: softmax๋ก 10๊ฐ ํด๋์ค ๋ถ๋ฅ

CNN์ด ๋ฐ์ ํจ์ ๋ฐ๋ผ, LeNet๊ณผ๋ ๊ตฌ์กฐ์ ์ผ๋ก ๋ช ๊ฐ์ง ์ฐจ์ด์ ์ด ์๋ค.
- ํ๋ง์ธต: LeNet-5๋ ์ฃผ๋ก average pooling์ ์ฌ์ฉํ๋ค. ํ์ง๋ง ์์ฆ ๋ชจ๋ธ ๋๋ถ๋ถ์ max pooling์ ์ฌ์ฉํ๋ค.
- ํ์ฑํ ํจ์: LeNet-5๋ Sigmoid๋ tanh ํจ์๋ฅผ ์ฌ์ฉํ๋ค. ํ์ง๋ง ์ด ํจ์๋ค์ ๋คํธ์ํฌ๊ฐ ๊น์ด์ง์๋ก ๊ธฐ์ธ๊ธฐ๊ฐ 0์ ๊ฐ๊น์์ ธ ํ์ต์ด ๋ฉ์ถ๋ vanishing gradient ๋ฌธ์ ๊ฐ ์์๋ค. ํ๋ CNN์ ์ด๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด ReLU ํจ์๋ฅผ ๊ธฐ๋ณธ์ ์ผ๋ก ์ฌ์ฉํ๋ค.
- ์ถ๋ ฅ์ธต ๋ฐ ๊ตฌ์กฐ์ ๋ณต์ก์ฑ: LeNet-5๋ 7๊ฐ์ ์ธต์ผ๋ก ๊ตฌ์ฑ๋ ๋น๊ต์ ๋จ์ํ ๊ตฌ์กฐ์๋ค. ํ์ง๋ง AlexNet, VGG, ResNet, EfficientNet ๋ฑ์ผ๋ก ๋ฐ์ ํ๋ฉฐ ๋คํธ์ํฌ๋ ์๋ฐฑ๊ฐ์ ์ธต์ผ๋ก ๋ ๊น๊ณ ๋ณต์กํด์ก๊ณ , dropout, batch normalization ๋ฑ ๋ค์ํ ๊ธฐ๋ฒ์ด ์ถ๊ฐ๋์ด ์ฑ๋ฅ์ ๊ทน๋ํํ๋ค.
๐ํฉ์ฑ๊ณฑ์ธต Conv2D
tensorflow, keras ๋ฑ์์ 2์ฐจ์ ํฉ์ฑ๊ณฑ ์ฐ์ฐ์ ์ํํ๋ layer
ํฉ์ฑ๊ณฑ์ธต์์๋ ๋ค์๊ณผ ๊ฐ์ ๋์์ ์ํํ๋ค.
- ์ ๋ ฅ์ผ๋ก 2์ฐจ์ ๋๋ ๋ค์ฑ๋ ์ด๋ฏธ์ง๋ฅผ ๋ฐ๋๋ค.
- ์ ํด์ง ํฌ๊ธฐ์ ํํฐ(์ปค๋)์ ์ด๋ฏธ์ง์ ์ฌ๋ผ์ด๋ฉํ์ฌ ๊ตญ์์ ์ธ ์์ญ์ ํน์ง์ ์ถ์ถํ๋ค.
- ๊ฐ ํํฐ๋ ํ๋์ ์ถ๋ ฅ ์ฑ๋(feature map)์ ์์ฑํ๋ค.
- ์ฌ๋ฌ ๊ฐ์ ํํฐ๋ฅผ ์ ์ฉํ๋ฉด ์ฌ๋ฌ ๊ฐ์ ์ถ๋ ฅ ์ฑ๋์ด ์์ฑ๋๋ค.
- ๊ฐ์ค์น ๊ณต์ ๋๋ถ์ ํ์ตํด์ผ ํ ํ๋ผ๋ฏธํฐ ์๋ "ํํฐ ํฌ๊ธฐ * ์ ๋ ฅ ์ฑ๋ ์ * ํํฐ ์"์ ์ํด ๊ฒฐ์ ๋๋ฉฐ, ์์ ์ฐ๊ฒฐ์ธต์ ๋นํด ํจ์ฌ ์๋ค.
layers.Conv2D(filters=32, kernel_size=(3, 3), strides=1, padding='same', activation='relu')
Conv2D ์ฃผ์ ํ๋ผ๋ฏธํฐ
- padding: ์ ๋ ฅ ์ฃผ๋ณ์ 0์ผ๋ก ๊ฐ์ธ์ ์ถ๋ ฅ ํฌ๊ธฐ๋ฅผ ์กฐ์ ํ๋. same ํจ๋ฉ์ ์ถ๋ ฅ ํฌ๊ธฐ๋ฅผ ์ ๋ ฅ๊ณผ ๊ฐ๊ฒ ์ ์งํ๋ฉฐ, valid ํจ๋ฉ์ ํจ๋ฉ์ ์ถ๊ฐํ์ง ์๋๋ค.
- strides: ํํฐ๊ฐ ์ ๋ ฅ ์๋ฅผ ์ด๋ํ๋ ๊ฐ๊ฒฉ์ด๋ค. ์คํธ๋ผ์ด๋๊ฐ 1์ด๋ฉด ํ ์นธ์ฉ ์ด๋ํ๋ฉฐ, ์คํธ๋ผ์ด๋๊ฐ 2 ์ด์์ด๋ฉด ์ถ๋ ฅ ํฌ๊ธฐ๊ฐ ๋ ์์์ง๋ค.
- filters: ์์ฑํ ์ถ๋ ฅ ์ฑ๋(feature map) ์
- kerner_size: ํํฐ(์ปค๋)์ ํฌ๊ธฐ
- activation: ๋น์ ํ ํจ์(ReLU, Sigmoid ๋ฑ)
๐filters์ kernel_size๊ฐ ์ด๋ป๊ฒ ๋ค๋ฅด๊ฒ ๋์ํ๋์ง ํ์ธํด๋ณด๊ธฐ


๐ํ๋ง์ธต
feature map์ ๊ณต๊ฐ์ ํฌ๊ธฐ๋ฅผ ์ถ์ํ์ฌ ์ฐ์ฐ๋์ ์ค์ด๊ณ , translation invariance(์์น ๋ถ๋ณ์ฑ)์ ์ ๊ณตํ๋ layer
AveragePooling2D
- ํ๋ง ์์ญ์ ํ๊ท ๊ฐ์ ์ถ๋ ฅ์ผ๋ก ๋ฐํ
- ์ ๋ ฅ ๋ฐ์ดํฐ๊ฐ ๋ถ๋๋ฌ์ด ๊ฐ์ด๋ ์ ์ฒด์ ์ธ ๊ฒฝํฅ์ ์ ์งํด์ผ ํ ๋ ์ ๋ฆฌ
layers.AveragePooling2D(pool_size=(2,2), strides=2, padding='valid')
MaxPooling2D
- ํ๋ง ์์ญ์ ์ต๋๊ฐ์ ์ถ๋ ฅ์ผ๋ก ๋ฐํ
- ๊ฐ์ฅ ๋๋ ทํ ํน์ง(์ฃ์ง, ์ )์ ๋ณด์กดํ๋๋ฐ ์ ๋ฆฌ
layers.MaxPooling2D(pool_size=(2,2), strides=2, padding='valid')
ํ๋ง์ธต ์ฃผ์ ํ๋ผ๋ฏธํฐ
- pool_size: ํ๋ง ์๋ ํฌ๊ธฐ
- strides: ์๋๋ฅผ ์ฌ๋ผ์ด๋ฉํ๋ ๊ฐ๊ฒฉ(๊ธฐ๋ณธ๊ฐ์ pool_size)]
- padding
๐ํ๋ง ๋ ์ด์ด ๋์ ํ์ธํด๋ณด๊ธฐ

์ ๊ณต ์์ ๋ ์ด์ฌํ ๋ค์๊ณ , ๋๋ฆ ๋นจ๊ฐ ์๊ฐ๋ฆฌ ์ฑ ๋ณด๋ฉด์ ๊ณต๋ถ๋ ํ๋๋ฐ...2๋ ๋ง์ ๋ณด๋ ๊ฐ๋ฌผ๊ฐ๋ฌผํ๋ค. ์ฑ ์ฑ๋ฆฐ์ง 3๊ฐ์ ๋ฒ๋ ค๋์๊ฒ ๋ง์์ ๋นก์ผ๋ฐ ์ด์ ์ ์ฒญํ๊ฑฐ ๋๊น์ง ์ด์ฌํ ํ๊ธฐ. ์ฑ ์์ ๋ค์ํ ๋ชจ๋ธ ๋ค๋ฃจ๊ณ ์์ด์ ๋ง์ด ๊ธฐ๋๋จ...
