๋ค์ด๊ฐ๋ฉฐ
ย ย ย 6์ฃผ์ฐจ ๊ฐ์์ ์ ์ด๋ค์๋ค. ์ด๋ฒ ๊ฐ์๋ ์ปดํจํฐ ๋น์ ์ ํต์ฌ์ ์ธ CNN์ ๋ํ ๋ด์ฉ์ด๋ค. ์ปดํจํฐ๊ฐ ์ด๋ฏธ์ง๋ฅผ ์ด๋ป๊ฒ ์ฒ๋ฆฌํ๊ณ ์ด๋ป๊ฒ ํ์ต์ํค๋์ง์ ๋ํด ๋ฐฐ์ฐ๊ณ , CNN์ ๊ตฌ์กฐ์ ๋ํด์ ์์ธํ ์์๋ณด๊ฒ ๋์๋ค. ๊ทธ๋ฆฌ๊ณ ์ด๋ฒ์ 2์ฐจ ๊ณผ์ ๊ฐ ๋์๋ค. 1์ฐจ ๊ณผ์ ๋ ํ๋ค์ ETA ์์ธก๋ชจ๋ธ์ MSE๋ฅผ ๋ฎ์ถ๋ ๊ฒ์ด์๋๋ฐ ๊ณผ์ ์ ์ถ์ ํ์ง๋ง MSE๋ฅผ ๊ธฐ์ค์ ๋ง๊ฒ ์ค์ด์ง ๋ชปํด ์ข์ ์ ์๋ฅผ ๋ฐ์ง๋ ๋ชปํ๋ค. ์ด๋ฒ์๋ MLP๋ก MNIST, FMNIST์ Finetuning ํ๋ ๊ฒ์ธ๋ฐ, Hyperparameter ์ธํ
์กฐํฉ์ ํ์ฌ ์ฌ๋ฌ๊ฐ์ ๋ชจ๋ธ์ ํ
์คํธ ํด๋ณด๋ ๊ฒ์ด๋ค. ๋์ ์ ์๋ฅผ ๋ฐ๊ธฐ ์ํด ๋ฏธ๋ฆฌ ๊ณผ์ ๋ฅผ ์์ํด๋ด์ผ๊ฒ ๋ค.
6์ฃผ์ฐจ
- ์ปดํจํฐ ๋น์ - ์ปดํจํฐ๋ ์ด๋ป๊ฒ ์ด๋ฏธ์ง๋ฅผ ์ดํดํ ๊น์?
- Convolution Filter๋?
- Convolutional Neural network์ ๊ตฌ์กฐ
- Padding, Stride: Feature map์ ํฌ๊ธฐ
- (์ค์ต) CNN MNIST classification
์ปดํจํฐ ๋น์
-
์ธ๊ณต์ง๋ฅ์ ํ ๋ถ์ผ๋ก ์ด๋ฏธ์ง, ๋น๋์ค ๋ฑ์ ์๊ฐ์ ์ ๋ ฅ์ผ๋ก๋ถํฐ ์๋ฏธ์๋ ์ ๋ณด๋ฅผ ์ป์ด๋ผ ์ ์๋๋ก ํ๋ ๊ฒ
-
์ด๋ฏธ์ง ๋ถ๋ฅ(Image Classification)
-
์์จ ์ฃผํ ์ฐจ๋
- ๋ฌผ์ฒด ๊ฐ์ง (Object detection)
- ์ธ๋์ ์ฐจ๋ ๊ตฌ๋ถ (Semantic segmentaition)
-
์นด๋ฉ๋ผ ์ผ๊ตด ์ธ์, ๋ฐฐ๊ฒฝ ์ธ์
-
์ฐจ๋ ํ์ ์์น ํ๋ณ
-
๋ฑ๋ฑ…
-
-
์ฃผ์ ๋ฐฐ๊ฒฝ๊ณผ ๊ตฌ๋ถ๋๋ฉด์ ์ฐพ๊ธฐ ์ฌ์ด ํน์ง(feature ๋๋ keypoint)์ ์ฐพ์์ ๋น๊ตํจ์ผ๋ก์จ ์ด๋ฏธ์ง๋ฅผ ์ธ์ํ๋ค.
-
๋ณต์กํ ์ด๋ฏธ์ง์ ๊ฒฝ์ฐ์๋ ์ด๋ป๊ฒ ๊ตฌ๋ถํ ๊น?
- ImageNet Challenge: 10,000,000์ฅ ์ด์์ ๋ผ๋ฒจ์ด ์ฃผ์ด์ง ์ด๋ฏธ์ง ๋ฐ์ดํฐ์ ์ธ ImageNet ๋ฐ์ดํฐ์ ์ ํ์ฉ, classification, detection ๋ฑ์ ์ฑ๋ฅ์ ๊ฒจ๋ฃจ๋ ๋ํ
- ImageNet ๋ฐ์ดํฐ์ ์ ์ถฉ๋ถํ generalized๋ ๋ฐ์ดํฐ๋ผ ์ธ์ ๋์ด ๋๋ฆฌ ์ฐ์
- CNN์ ์ฌ์ฉํ AlexNet์ด ์ฐ์นํ๊ฒ ๋จ
Convolution Filter๋?
- Convolution์ ํจ์ f๋ฅผ ๊ฐ๋งํ ๋๊ณ ํจ์ g๋ฅผ t์ถ์ผ๋ก ๋ค์ง์ ์ฑ๋ก ํํํ๊ฒ ์์ง์ผ๋ ๊ฐ ์์น์์ ๋ ํจ์๊ฐ ๋น์ทํ์ง ๊ณ์ฐํ๋ค.
- f์ ๋ค์งํ g๋ฅผ t๋งํผ ์ด๋์ํจ ํจ์๊ฐ ๋น์ทํ๊ฒ ์๊ฒผ์์๋ก ํด๋น ์์น๋ฅผ ๋ํ๋ด๋ t์์ convolution์ ๊ฐ์ ์ปค์ง๋ค.
- ์ด๋ฏธ์ง์์๋ 2์ฐจ์ ๋ฐ์ดํฐ์์ convolution์ ์ ์ฉํ๋ค.
- Convolution filter(kernel): ์ด๋ฏธ์ง์ convolution์ ํตํด feature๋ฅผ ์ฐพ์ ์ ์๊ฒ ํ๋ detector
- ์ด๋ฏธ์ง์ filter์ convolution์ ํตํด ์ป์ด์ง ๊ฒฐ๊ณผ๊ฐ์ feature map ๋๋ activation map์ด๋ผ ํ๋ค.
- Feature map์ ํด๋น ์์น์์ ์ด๋ฏธ์ง๊ฐ filter๊ฐ ๋ํ๋ด๋ feature๋ฅผ ์ผ๋ง๋ ๊ฐ์ง๊ณ ์๋์ง๋ฅผ ํํํ๋ค.
์ธ๊ณต์ ๊ฒฝ๋ง์์ Convolution์ ํ์ฉ
-
CNN์ convolution filter๋ฅผ ํตํด feature map์ ์ป๋ convolution layer๊ฐ ์๋ ์ธ๊ณต์ ๊ฒฝ๋ง์ด๋ค.
-
Convolution layer์ filter๋ ๋ฏธ๋ฆฌ ์ ํด์ง๋ ๊ฒ์ด ์๋๋ผ ํ์ต์ ํตํด ์ป์ด์ง๋ค.
- c.f ์ด๋ฏธ์ง filter์ ๊ฒฝ์ฐ convolution์ด ์๋๋ผ ๋น์ทํ cross-correlation์ ๊ณ์ฌํ๋ ๊ฒฝ์ฐ๋ ๋ง๋ค.
- ๊ด์ต์ convolution์ผ๋ก ๋ถ๋ฅธ๋ค.
์ ๋ ฅ ๋ฐ์ดํฐ์ ์ฌ๋ฌ ์ฑ๋์ด ์์ ๋ Convolution
- ํ๋ฐฑ ์ด๋ฏธ์ง: ๋์ด(H) x ๋๋น(W)์ 2์ฐจ์ ๋ฐ์ดํฐ, ์ปฌ๋ฌ ์ด๋ฏธ์ง(RGB): H X W X 3(Channels)
- ๊ฐ์ ์ ๋ ฅ๊ฐ์ ๋ํด ์ฌ๋ฌ ์ข ๋ฅ์ filter๋ฅผ ์ฌ์ฉํด์ filter์ ๋ฐ๋ผ ์๋ก ๋ค๋ฅธ feature map ์ ์ป์ด๋ผ ์ ์๋ค.
- ์ป์ด์ง feature map์ ๊ฒน๊ฒน์ด ์์ filter ๊ฐ์๋งํผ์ channel์ ๊ฐ์ง 3์ฐจ์ ๋ฐ์ดํฐ๋ก ํํํ๋ค.
Convolutional Neural Network์ ๊ตฌ์กฐ
- Convolutional layer, Activation layer(function), Pooling layer, Fully connected layer
Convolutional layer
- Convolution filter(Cin, Cout, Hc, Wc)๋ฅผ parameter๋ก ๊ฐ์ง๋ layer
- ์ ๋ ฅ๋ฐ์ดํฐ(Cin x Hin x Win)์ filter๋ก convlution ์ฐ์ฐํ์ฌ (Cout x Hout x Wout)์ ์ถ๋ ฅํจ
- CNN์ Conv layer๋ฅผ ๊ณ์ธต์ ์ผ๋ก ์์์ high-level feature๋ฅผ ์ป์
Pooling layer
-
Feature map์ spartial size๋ฅผ ์ค์ด๋ layer๋ก conv layer ์ฌ์ด์ ๋ฐ๋ณต์ ์ผ๋ก ๋ค์ด๊ฐ๋ค.
-
Parameter ์๋ฅผ ์ค์ฌ์ ํ์ต๋, ๊ณ์ฐ๋์ ์ค์ด๊ณ overfitting์ ์ต์ ํ๋ ์ญํ ์ ํ๋ค.
-
Max pooling: ์์ญ ๋ด์์ ๊ฐ์ฅ ํฐ ๊ฐ์ ๋ํ๊ฐ์ผ๋ก ์ผ์ feature map์ ์์ฝํ๋ค.
- ๋ํ์ ์ผ๋ก ๋ง์ด ์ฐ์ด๋ ๋ฐฉ๋ฒ์ 2 x 2 max pooling, 2 stride ๊ฐ ์๋ค. (75% feature๊ฐ ์๋ต๋จ)
- 2 x 2 max pooling 2 stride : 2 ๋ฒ์ sliding์ 1๋ฒ operation (๋ฐ์ดํฐ ๊ฒน์นจ์ด ์์)
-
CNN์ ์ค์ ๋ก ํ์ตํ ๋ ์๋์ ๋ด์ฉ๋ค์ ์ดํดํ๊ณ ์ ์ฉํด์ผํ๋ค.
- Parameters: ํ์ต๋๋ ๊ฐ, Hyperparameters: ๋ฏธ๋ฆฌ ์ ํด์ฃผ๋ ๊ฐ
- Parameters: ํ์ต๋๋ ๊ฐ, Hyperparameters: ๋ฏธ๋ฆฌ ์ ํด์ฃผ๋ ๊ฐ
Receptive field
-
Conv layer๋ฅผ ์ฌ๋ฌ ์ธต ๊ฑฐ์น feature์ ๊ฐ์ ํ๋์ filter์ ํฌ๊ธฐ๋ณด๋ค ๋์ ์์ญ์ ๋ฐ์ดํฐ์ ์ ๋ณด๋ฅผ ๋ด๊ณ ์๋ค.
-
Receptive field: feature ๊ฐ์ ์ป๋๋ฐ ์ฌ์ฉ๋ ์ ๋ ฅ๋ฐ์ดํฐ ๋ฒ์์ ํฌ๊ธฐ
- Layer ๊น์ด, conv filter ํฌ๊ธฐ, pooling layer, stride ๋ฑ์ ์ํฅ์ผ๋ก ๋ฌ๋ผ์ง๋ค.
- ์ ๋ ฅ ์ด๋ฏธ์ง์ ๊ฐ๊น์ด conv filter๋ค์ receptive field๊ฐ ์์ ๋จ์ํ feature๋ค์ ํ์ตํ๊ฒ ๋๋ค. (low-level features)
- ์ ๋ ฅ ์ด๋ฏธ์ง์ ๋ฉ์๋ก receptive field๊ฐ ์ปค์ง๊ณ ์ด์ layer์์ ์ป์ feature๋ ์ ๋ ฅ์ผ๋ก ๋ฐ๊ธฐ ๋๋ฌธ์ ๋ณต์กํ feature ๋ค์ ํ์ตํ๊ฒ ๋๋ค.(high-level features)
MLP์ CNN์ ๋น๊ต
-
Parameter ์
- MLP์ ๊ฒฝ์ฐ 1000 x 1000 ํฌ๊ธฐ์ RGB ๊ฒฝ์ฐ ํ๋์ feature๋ฅผ ๋ฝ๋๋ฐ 3,000,000 ๊ฐ์ weight๊ฐ ํ์ํ๋ค.
- CNN์ filter์ parameter๋ ๊ณต์ ๋๋ฏ๋ก ํ๋์ feature๋ฅผ ๋ฝ๋๋ฐ Hc x Wc x C ๊ฐ์ weight๋ง ํ์ํ๋ค.
-
Local connectivity
- ์ด๋ฏธ์ง์ ๊ฒฝ์ฐ ๋ฉ๋ฆฌ ๋จ์ด์ง ์์น์ ์ ๋ณธ๋ ๋์์ด ์๋๋ค. ๊ทธ๋์ CNN์ด ์ ์๋ฏธํ ์ ๋ณด๋ฅผ ์ป๊ธฐ๊ฐ ์ ์ฉํ๋ค.
-
์ด๋ฏธ์ง์ ํฌ๊ธฐ
- MLP์ ๊ฒฝ์ฐ ํ์ต๋ ๋ ์ฌ์ฉํ ์ด๋ฏธ์ง์ ํฌ๊ธฐ์ ์ ํํ ๊ฐ์ ํฌ๊ธฐ์ ์ ๋ ฅ๊ฐ๋ง ์ฌ์ฉ ๊ฐ๋ฅํ์ง๋ง, CNN์ sliding window ํํ์ filter๋ฅผ ํ์ตํ๊ธฐ ๋๋ฌธ์, ์ ๋ ฅ๊ฐ์ ๊ฐ๋ก ์ธ๋ก ํฌ๊ธฐ๊ฐ ๋ฌ๋ ค์ ธ๋ ๊ฐ๋ฅํ๋ค.
Padding, Stride: Feature map ์ ํฌ๊ธฐ
Padding
- Convolution์ ํ ๋ input ๊ฐ์ฅ์๋ฆฌ์ ์ถ๊ฐ์ ์ธ ๊ฐ์ ๋ฃ์ด์ spartial size๋ฅผ ํค์ฐ๋ ๊ฒ
- Output feature map์ ํฌ๊ธฐ๋ฅผ ์กฐ์ ํ๊ธฐ ์ํด ์ฌ์ฉ๋๋ค.
- ์ฃผ๋ก padding์ ๊ฐ์ 0์ผ๋ก ๋ฃ์ด์ฃผ๋ Zero-padding์ ๋ง์ด ์ฌ์ฉํ๋ค.
Stride
- Convolution์ sliding window๋ฅผ ์ด๋ค ๊ฐ๊ฒฉ์ผ๋ก ํ ์ง ๋ํ๋ด๋ ๊ฐ
- feature map ๊ณ์ฐ๊ธฐ : https://madebyollin.github.io/convnet-calculator/