๋ฐ์ํ
์ด๋ฒ๊ธ์์๋ ๋ค์ํ CNN ๋คํธ์ํฌ์ ๋ฐํ์ฌ ์์๋ณด๊ฒ ์ต๋๋ค.
LeNet 5
LeNet-5๋ ๊ธฐ๋ณธ์ ์ธ CNN ์ํคํ ์ฒ๋ฅผ ์ ์ํ๋ฉฐ, ํ์ฌ์ ๋ฅ๋ฌ๋์ ๊ธฐ์ด๊ฐ ๋์์ต๋๋ค.
์ฃผ๋ก ์๊ธ์จ ์ซ์ ์ธ์(MNIST ๋ฐ์ดํฐ์ ) ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด ๊ฐ๋ฐ๋์์ผ๋ฉฐ, ๋ํ ํ๋ CNN์ ๊ธฐ์ด๋ฅผ ๋ง๋ จํ ๋ชจ๋ธ๋ก ์ฌ๊ฒจ์ง๋๋ค.
- LeNet-5๋ ์ด 7๊ฐ์ ๋ ์ด์ด(์ ๋ ฅ๊ณผ ์ถ๋ ฅ ํฌํจ)๋ก ๊ตฌ์ฑ๋ ๋คํธ์ํฌ์ ๋๋ค.
- LeNet-5์ ๊ตฌ์กฐ๋ ํฌ๊ฒ ๋ ๋ถ๋ถ์ผ๋ก ๋๋ ์ ์์ต๋๋ค.
- Convolutional Neural Network (CNN)
- Fully Connected Network (FCN)
- ๊ฐ ๋ ์ด์ด๋ ํน์ ํ ์ญํ ์ ์ํํ๋ฉฐ, Convolutional Neural Network(CNN - ํฉ์ฑ๊ณฑ ๋ ์ด์ด)์ ์๋ธ์ํ๋ง ๋ ์ด์ด(Pooling Layer)๋ฅผ ๊ต๋๋ก ๋ฐฐ์นํ์ฌ ์ด๋ฏธ์ง์ ํน์ง์ ์ถ์ถํ๊ณ ์ฐจ์์ ์ถ์ํฉ๋๋ค.
- ํ๋ฒ LeNet 5 ๋คํธ์ํฌ์ ๊ตฌ์กฐ๋ฅผ ํ๋ฒ ์์๋ณด๊ฒ ์ต๋๋ค.
- C1 - Convolutional Layer: ์ ๋ ฅ ์ด๋ฏธ์ง์ ํํฐ๋ฅผ ์ ์ฉํ์ฌ ํน์ง ๋งต์ ์์ฑํฉ๋๋ค. ์ด ํํฐ๋ ์ด๋ฏธ์ง์ ์ง์ญ์ ์ธ ํจํด์ ์ธ์ํฉ๋๋ค.
- S2 - Subsampling Layer: C1์์ ์ถ์ถ๋ ํน์ง ๋งต์ ๋ค์ด์ํ๋งํ์ฌ ํฌ๊ธฐ๋ฅผ ์ค์ ๋๋ค. ์ด๋ ๊ณ์ฐ ๋น์ฉ์ ์ค์ด๊ณ ๊ณต๊ฐ์ ์ธ ์ ๋ณด๋ฅผ ๋ณด์กดํฉ๋๋ค.
- C3 - Convolutional Layer: S2์์ ์ป์ ํน์ง ๋งต์ ๋ค์ ํํฐ๋ฅผ ์ ์ฉํ์ฌ ๋ ๋ง์ ํน์ง์ ์ถ์ถํฉ๋๋ค.
- S4 - Subsampling Layer: C3์ ํน์ง ๋งต์ ๋ค์ด์ํ๋งํฉ๋๋ค.
- C5, F6 - Fully Connected Layer: ์ด ๋ถ๋ถ์ ์ ํต์ ์ธ ์ ๊ฒฝ๋ง๊ณผ ์ ์ฌํ๊ฒ ๋ชจ๋ ๋ด๋ฐ์ด ์ด์ ๋ ์ด์ด์ ๋ชจ๋ ๋ด๋ฐ๊ณผ ์ฐ๊ฒฐ๋ฉ๋๋ค.
- Output Layer (Output): FC5์ ์ถ๋ ฅ์ ์ฌ์ฉํ์ฌ ์ ๋ ฅ ์ด๋ฏธ์ง๋ฅผ ํด๋์ค๋ก ๋ถ๋ฅํฉ๋๋ค.
- LeNet5 ๋ชจ๋ธ์ ํน์ง
• 7 Layer: [CONV-POOL-CONV-POOL-FC-FC-FC]
• Conv Layer: 5x5 ํํฐ, ์คํธ๋ผ์ด๋ 1
• Pooling Layer: 2x2 ํ๊ท ํ๋ง, ์คํธ๋ผ์ด๋ 2
• Activation Function: ์๊ทธ๋ชจ์ด๋/ํํ (Sigmoid/tanh)
• Parameters: 60,000๊ฐ
AlexNet
AlexNet์ 2012๋ ์ ILSVRC (ImageNet Large Scale Visual Recognition Challenge)์์ ์ฐ์นํ ์ ๋ช ํ ํฉ์ฑ๊ณฑ ์ ๊ฒฝ๋ง(CNN) ๋ชจ๋ธ์ ๋๋ค.
- AlexNet์ ์ด๋ฏธ์ง ๋ถ๋ฅ์ ์ฑ๋ฅ์ ํฌ๊ฒ ํฅ์์์ผฐ๋ค๋ ํน์ง์ด ์์ต๋๋ค.
- ํน์ง์ ๋คํธ์ํฌ๋ฅผ ์ชผ๊ฐ์ GPU๋ก ๋ณ๋ ฌ์ฒ๋ฆฌ๋ฅผ ํ๋ค๋ ์ ์ ๋๋ค. ์ฆ, ๋ชจ๋ธ์ ๋ฐ์ผ๋ก ์ชผ๊ฐ์ ๋ฃ๋๋ค๋ ๊ฐ๋ ์ ๋๋ค.
- ReLU Activation Function (ReLU ํ์ฑํ ํจ์): AlexNet์์๋ ์์ ๊ฐ์ ๋ํ ํ์ฑํ๋ฅผ ๊ฐ์์ํค๊ณ Non-Linear(๋น์ ํ์ฑ)์ ์ฆ๊ฐ์ํค๊ธฐ ์ํด ์ต์๋ก ReLU(Rectified Linear Unit) Activation Function(ํ์ฑํ ํจ์)๋ฅผ ์ฌ์ฉํฉ๋๋ค.
- ์ด๋ ๋คํธ์ํฌ์ ํ์ต ์๋๋ฅผ ํฅ์์ํค๊ณ , Gradient ์์ค ๋ฌธ์ ๋ฅผ ์ํ์ํค๋ ํจ๊ณผ๊ฐ ์์ต๋๋ค.
- Dropout: AlexNet์ ๋๋กญ์์(dropout)์ 0.5 ์ ๋๋ฅผ ์ฌ์ฉํ์ฌ ์ฌ์ฉํ์ฌ ๊ณผ์ ํฉ(overfitting)์ ์ค์ด๋ ์ญํ ์ ํฉ๋๋ค.
- ๋ฐ์ดํฐ ์ ๊ทํ (Normalization): AlexNet์์๋ Local Response Normalization (LRN)์ ์ฌ์ฉํ์ฌ ๋ฐ์ดํฐ ์ ๊ทํ๋ฅผ ํฉ๋๋ค.
- ๋ฐ์ดํฐ ์ฆ๊ฐ (Data Augmentation): AlexNet์์๋ ๋ฐ์ดํฐ ์ฆ๊ฐ์ ์ฌ์ฉํ์ฌ ๊ณผ์ ํฉ(overfitting)์ ์ค์ด๊ณ ์ผ๋ฐํ ์ฑ๋ฅ์ ํฅ์์ํต๋๋ค.
• 8 Layer: [CONV-RELU-POOL-CONV-RELU-POOL-CONV-RELU-CONV-RELU-CONV-RELU-POOL-FC-FC-FC]
• Conv Layer: ๋ค์ํ ํฌ๊ธฐ์ ํํฐ (11x11, 5x5, 3x3), ์คํธ๋ผ์ด๋ 4/1
• Pooling Layer: 3x3 ์ต๋ ํ๋ง(Max Pooling), ์คํธ๋ผ์ด๋ 2
• Activation Function: ReLU (Rectified Linear Unit)
• Parameters: ์ฝ 60 million (6000๋ง ๊ฐ)
ZFNet
AlexNet์ ์ฑ๋ฅ์ ๊ฐ์ ํ๊ณ CNN์ ๋ด๋ถ ์๋ ๋ฐฉ์์ ์๊ฐํํ๋ ๋ฐ ์ค์ ์ ๋์์ต๋๋ค.
- AlexNet๊ณผ Architecture๋ ๋์ผํ์ง๋ง, Hyperparameter๋ฅผ ์กฐ์ ํ์ฌ ์ค๋ฅ์จ์ ๊ฐ์ ํ์์ต๋๋ค.
- ํฉ์ฑ๊ณฑ ํํฐ ํฌ๊ธฐ์ ๊ฐ์: ZFNet์ AlexNet์ ํฉ์ฑ๊ณฑ ํํฐ ํฌ๊ธฐ๋ฅผ ์ค์ฌ ๋ ๋ง์ ๊ณ ์์ค์ ํน์ง์ ์ถ์ถํ๋๋ก ํ์์ต๋๋ค.
- CONV1: (11x11 stride 4)๋ฅผ (7x7 stride 2)๋ก ๋ณ๊ฒฝํ์ต๋๋ค.
- ๋ ๊น์ ํฉ์ฑ๊ณฑ ์ธต: ZFNet์ AlexNet๋ณด๋ค ๋ ๊น๊ณ , ๋ค์ํ ํฉ์ฑ๊ณฑ ์ธต์ ์ฌ์ฉํ์ฌ ๋ ๋ง์ ์ถ์์ ์ธ ํน์ง์ ํ์ต ๋ฐ ์ถ์ถํ์ฌ ๋ชจ๋ธ์ ์ฑ๋ฅ ํฅ์์ ์ด๋ฃจ์ด ๋์ต๋๋ค.
- CONV3,4,5: 384, 384, 256 filter๋ฅผ 512, 1024, 512๋ก ์ฌ์ฉํ๋ค๋ ํน์ง์ด ์์ต๋๋ค.
- ์๊ฐํ ๊ธฐ๋ฒ: ๊ทธ๋ฆฌ๊ณ ZFNet์ CNN์ ๋ด๋ถ ์๋์ ์๊ฐํํ์ฌ ๋ชจ๋ธ์ด ํ์ตํ๋ ๋ฐฉ์์ ์ดํดํ๋ ๋ฐ ๋์์ ์ฃผ์์ต๋๋ค.
- ์ด ์๊ฐํ๋ ์ด๋ค ํน์ง๋ค์ด ๊ฐ ๋ ์ด์ด์์ ํ์ต๋๊ณ ์๋์ง ๋ณด์ฌ์ค๋๋ค.
- Dropout: Dropout์ ์ฌ์ฉํ์ฌ ์์ ์ฐ๊ฒฐ ๋ ์ด์ด์์ Overfitting(๊ณผ์ ํฉ)์ ๋ฐฉ์งํ๋ค๋ ํน์ง์ด ์์ต๋๋ค.
• 8 Layer: [CONV-RELU-POOL-CONV-RELU-POOL-CONV-RELU-CONV-RELU-CONV-RELU-POOL-FC-FC-FC]
• Conv Layer: ๋ค์ํ ํฌ๊ธฐ์ filter (7x7, 5x5, 3x3), stride 2/1
• Pooling Layer: 3x3 ์ต๋ ํ๋ง(Max Pooling), stride 2
• Activation Function: ReLU (Rectified Linear Unit)
• Parameters: ์ฝ 60 million (6000๋ง ๊ฐ)
VGGNet
2014๋ ์ Visual Geometry Group(VGG)์์ ๊ฐ๋ฐํ ํฉ์ฑ๊ณฑ ์ ๊ฒฝ๋ง(CNN) ๋ชจ๋ธ๋ก, ํนํ ILSVRC 2014 ๋ํ์์ ์ฐ์ํ ์ฑ๋ฅ์ ๋ณด์ฌ์ฃผ๋ฉฐ ๋๋ฆฌ ์๋ ค์ก์ต๋๋ค.
- ์ฃผ์ ํน์ง์ ๋จ์ํ๊ณ ์ผ๊ด๋ ๊ตฌ์กฐ๋ฅผ ๊ฐ์ถ๊ณ ์์ผ๋ฉฐ, ๋คํธ์ํฌ ๊น์ด๋ฅผ ๋๋ ค ์ฑ๋ฅ์ ํฅ์์์ผฐ๋ค๋ ์ ์ด ์์ต๋๋ค.
- VGGNet์ ์ด์ ์ ๋ฅ๋ฌ๋ ๋ชจ๋ธ๋ณด๋ค ํจ์ฌ ๊น์ ๋คํธ์ํฌ๋ฅผ ์ฌ์ฉํฉ๋๋ค.
- ์์์ ์ค๋ช ๋๋ ธ์ง๋ง, VGGNet์ 16๊ฐ ๋๋ 19๊ฐ์ ์ธต์ผ๋ก ๊ตฌ์ฑ๋์ด ์์ต๋๋ค.
- ๋ชจ๋ Convolution Matrix Layer(ํฉ์ฑ๊ณฑ์ธต)์ ํํฐ ํฌ๊ธฐ๊ฐ 3x3: VGGNet์ ๋ชจ๋ ํฉ์ฑ๊ณฑ์ธต์ 3x3 ํฌ๊ธฐ์ ์์ ํํฐ๋ฅผ ์ฌ์ฉํ์ฌ ์ด๋ฏธ์ง๋ฅผ ์ฒ๋ฆฌํฉ๋๋ค.
- ํ๋ง์ธต (Pooling Layers): VGGNet์ 2x2 Max ํ๋ง์ธต(max-pooling layers)์ ์ฌ์ฉํ์ฌ ๊ณต๊ฐ์ ์ธ ๋ถ๋ณ์ฑ์ ํฅ์์ํค๋ ์ญํ ์ ํฉ๋๋ค.
- VGGNet์ด 32x32 ์์์ ์ฒ๋ฆฌํ๊ณ , 1000๊ฐ์ class๊ฐ ๋๋๋ก ์กฐ์ ํฉ๋๋ค.
- ๋๋จธ์ง๋ ๊ธฐ๋ณธ์ Neural Network๊ณผ ๊ฐ์ ๊ตฌ์กฐ๋ก ์ ์งํฉ๋๋ค.
- ์ด 16 or 19๊ฐ์ ๋จ์ผ๋ก ๊ตฌ์ฑ๋์ด ์์ต๋๋ค.
3 Convolution Filter์ Receptive Field (1D)
VGGNet์ Receptive Field๋ฅผ ์ฌ์ฉํฉ๋๋ค. ํ๋ฒ ์์๋ณด๊ฒ ์ต๋๋ค.
- Receptive Field๋ Neural Network(์ ๊ฒฝ๋ง)์ ํน์ Neuron์ด ์
๋ ฅ ๊ณต๊ฐ์์ ๋ณด๋ ์์ญ์ ์๋ฏธํฉ๋๋ค.
- ์ฆ, CNN์์ ์ฐ์์ ์ธ ํฉ์ฑ๊ณฑ์ธต์ ์์ ๋, ๊ฐ ๋ด๋ฐ์ด ์ ๋ ฅ ์ด๋ฏธ์ง์ ๋ ๋์ ์์ญ์ ๋ณด๊ฒ ๋๋ ํ์์ ๋๋ค.
- ๋ํ, 3 Convolution Filter์ Receptive Field (1D) → ๊ณ์ธต์ ์ฌ๋ฌ๋ฒ ๊ฐ์ ธ๊ฐ๋ค๋ ํน์ง์ด ์์ต๋๋ค.
- 1-Dimension(1์ฐจ์) Convolution FIlter ์ ๊ฒฝ์ฐ, Receptive field๋ ํด๋น ๋ด๋ฐ์ด ์ ๋ ฅ์ ์ด๋ ๋ฒ์๋ฅผ ์ปค๋ฒํ๋์ง๋ฅผ ๋ํ๋ ๋๋ค. Receptive field๋ ํํฐ์ ํฌ๊ธฐ์ ๋คํธ์ํฌ์ ๊น์ด์ ๋ฐ๋ผ ๋ฌ๋ผ์ง๋๋ค.
- ์ฒซ ๋ฒ์งธ ํฉ์ฑ๊ณฑ์ธต์์๋ ๊ฐ ๋ด๋ฐ์ด ์ ๋ ฅ ์ด๋ฏธ์ง์ ์์ ์์ญ์ ๋ํด ์์ฉ ์์ญ์ ๊ฐ์ง๋๋ค. ์ด ์์ญ์ 3x3 ํฌ๊ธฐ์ ํํฐ๋ก ์ ์๋ฉ๋๋ค.
- ๋ ๋ฒ์งธ ํฉ์ฑ๊ณฑ์ธต์์๋ ๊ฐ ๋ด๋ฐ์ด ์ด์ ์ธต์ ๋ด๋ฐ๋ค์ ์์ฉ ์์ญ์ ๋ณด๊ฒ ๋ฉ๋๋ค. ์ด๋ ์ด์ ์ธต์ ํํฐ ํฌ๊ธฐ์ ํฉ์ฑ๊ณฑ ์ฐ์ฐ์ ์ํด ์ ํด์ง๋๋ค.
- ์๋ฅผ ๋ค์ด, ๋ ๋ฒ์งธ ์ธต์์ 3x3 ํํฐ๋ฅผ ์ฌ์ฉํ๋ค๋ฉด, ๊ฐ ๋ด๋ฐ์ ์ด์ ์ธต์ 3x3 ์์ญ์ ๋ํด ์์ฉ ์์ญ์ ๊ฐ์ง๊ฒ ๋ฉ๋๋ค.
- ์ด์ ๊ฐ์ ๊ณผ์ ์ ์ฌ๋ฌ ๋ฒ ๋ฐ๋ณตํ๋ฉด, ๋คํธ์ํฌ์ ๊น์ด๊ฐ ๊น์ด์ง์๋ก ๊ฐ ๋ด๋ฐ์ ์์ฉ ์์ญ์ ์ ๋ ฅ ์ด๋ฏธ์ง์ ๋ ๋์ ์์ญ์ ํฌํจํ๊ฒ ๋ฉ๋๋ค.
- Receptive Field๋ ์์ filter๋ก ์ฌ๋ฌ๊ฐ์ Layer๊ฐ ์๋ ๋ฐฉ์์ผ๋ก ํํ๋ฉ๋๋ค.
- 5x5 ์ (3x3)x2 ํํฐ๋ ๊ฐ์ ์์ญ(Receptive Field)์ ์ฒ๋ฆฌํฉ๋๋ค.
- ์ธต์ด ๊น์ด์ ธ ReLU ๊ฐ์ Activation(๋น์ ํ์ฑ )์ด ์ถ๊ฐ๋ฉ๋๋ค.
- ์์ ๊ทธ๋ฆผ, ์ฆ ๋ชจ๋ธ์ Memory ์ฌ์ฉ๊ฐ์ ๋ณด์๋ฉด, ์ด๊ธฐ Convolution Layer์์ Memory ์ฌ์ฉ์ด ์ง์ค ๋๋ค๋ ํน์ง์ด ์์ต๋๋ค.
- ๋ํ ๋ง์ง๋ง Fully-Connected Layer์ Parameter ์ฌ์ฉ์ด ์ง์ค๋ฉ๋๋ค.
์ฆ, VGG16 ๋ณด๋ค VGG19 ๊ฐ ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ์ด ๋ง์ง๋ง, ์ฑ๋ฅ์ ์กฐ๊ธ ๋ ์ข๋ค๋ ํน์ง์ด ์์ต๋๋ค.
• 16 ๋๋ 19 Layer: [CONV-RELU-CONV-RELU-POOL-CONV-RELU-CONV-RELU-POOL-CONV-RELU-CONV-RELU-CONV-RELU-POOL-CONV-RELU-CONV-RELU-CONV-RELU-POOL-CONV-RELU-CONV-RELU-CONV-RELU-POOL-FC-FC-FC]
• Conv Layer: 3x3 filter, stride 1, padding 1
• Pooling Layer: 2x2 ์ต๋ ํ๋ง(Max Pooling), stride 2
• Activation Function: ReLU (Rectified Linear Unit)
• Parameters: ์ฝ 138 million (1์ต 3800๋ง ๊ฐ)
GoogLeNet
2014๋ ILSVRC(ImageNet Large Scale Visual Recognition Challenge)์์ ์ฐ์นํ ๋ฅ๋ฌ๋ ๋ชจ๋ธ๋ก, Google์์ ๊ฐ๋ฐ๋์์ต๋๋ค.
• 22 Layers: ๋คํธ์ํฌ์ ๊น์ด๋ 22๊ฐ Layer์ ๋ฌํฉ๋๋ค.
• Inception ๋ชจ๋: ๋ค์ํ ํฌ๊ธฐ์ ํํฐ(1x1, 3x3, 5x5)์ Pooling Layer๋ฅผ ๊ฒฐํฉํ ๊ตฌ์กฐ.
• Global Average Pooling: ๋ง์ง๋ง์ ์์ ์ฐ๊ฒฐ ๋ ์ด์ด(FC) ๋์ ์ฌ์ฉํ์ฌ parameter ์๋ฅผ ์ค์.
• Auxiliary Classifiers: ์ค๊ฐ ์ถ๋ ฅ์์ ๋ถ๋ฅ๊ธฐ๋ฅผ ์ถ๊ฐํ์ฌ ํ์ต์ ์์ ํํ๊ณ Gradient Loss(๊ธฐ์ธ๊ธฐ ์์ค) ๋ฌธ์ ๋ฅผ ์ํ.
• Parameters: ์ฝ 5 million (500๋ง ๊ฐ)
- ์ฃผ์ํ ํน์ง์ Inception ๋ชจ๋์ ํ์ฉํ์ฌ ๊น์ด์ ๋๋น๋ฅผ ๊ท ํ ์๊ฒ ํ์ฅํ ๊ฒ์ด ํน์ง์ ๋๋ค.
- ์ฌ๊ธฐ์ ์ธ์ ์ ๋ชจ๋์ ์ฌ๋ฌ ํฌ๊ธฐ์ ์ปจ๋ณผ๋ฃจ์ ์ฐ์ฐ๊ณผ ๋งฅ์คํ๋ง(max pooling) ์ฐ์ฐ์ ํ ๋ ์ด์ด์์ ๋ณ๋ ฌ๋ก ์ํํ๊ณ , ๊ทธ ๊ฒฐ๊ณผ๋ฅผ ํฉ์น๋ ๊ตฌ์กฐ์ ๋๋ค.
- ํ์ง๋ง ๋จ์ํ ๋ ์ด์ด๋ฅผ ๋ง์ด ์๋ ๊ฒ์ด ์๋๋ผ, Inception ๋ชจ๋์ ํตํด ๊น์ด์ ๋๋น๋ฅผ ๊ท ํ ์๊ฒ ํ์ฅํ๋ฉฐ ํจ์จ์ ์ธ ํ์ต์ด ๊ฐ๋ฅํ๋๋ก ์ค๊ณํ์ต๋๋ค.
- ๋ํ 1x1 Convolution์ ์ฌ์ฉํ์ฌ ์ฐจ์์ ์ถ์์ํค๋ ๊ธฐ๋ฒ๋ ๋์
ํ์ต๋๋ค.
- ์ด๋ฅผ ํตํด ๋ค๋ฅธ ํฌ๊ธฐ์ Convolution ์ฐ์ฐ ์ ์ ๊ณ์ฐ๋์ ์ค์ด๋ ํจ๊ณผ๋ฅผ ๋ณด์ฌ์ฃผ์์ต๋๋ค.
- ๊ทธ๋ฆฌ๊ณ Fully Connected Layer(FC)๋ฅผ ์ ๊ฑฐ, ๋์ ๋ง์ง๋ง Convolution ๋ ์ด์ด์ ์ถ๋ ฅ์ Global Average Pooling์ ์ ์ฉํ์์ต๋๋ค.
- ์ด๋ ๋คํธ์ํฌ์ ํ๋ผ๋ฏธํฐ ์๋ฅผ ํฌ๊ฒ ์ค์ด๊ณ , Overfitting(๊ณผ์ ํฉ)์ ๋ฐฉ์งํ๋ ์ญํ ์ ํ๋ค๋ ํน์ง์ด ์์ต๋๋ค.
Inception Module
์ธ์ ์ ๋ชจ๋์ ์ฌ๋ฌ ํฌ๊ธฐ์ Convolution ์ฐ์ฐ๊ณผ Max pooling ์ฐ์ฐ์ ํ ๋ ์ด์ด์์ ๋ณ๋ ฌ๋ก ์ํํ๊ณ , ๊ทธ ๊ฒฐ๊ณผ๋ฅผ ํฉ์น๋ ๊ตฌ์กฐ์ ๋๋ค.
Inception Module์ ๊ตฌ์ฑ์์ -> ๋ชจ๋์ ์ถ๋ ฅ์ ์ฑ๋ ๋ฐฉํฅ์ผ๋ก ํฉ์ณ์ ธ ๋ค์ ๋ ์ด์ด๋ก ์ ๋ฌ๋ฉ๋๋ค.
• 1x1 Convolution: ์ฐจ์ ์ถ์ ๋ฐ ๋น์ ํ์ฑ ์ถ๊ฐ
• 3x3 Convolution: ์ค๊ฐ ๊ท๋ชจ์ ํน์ง ์ถ์ถ
• 5x5 Convolution: ํฐ ๊ท๋ชจ์ ํน์ง ์ถ์ถ
• 3x3 Max Pooling: ๊ณต๊ฐ์ ์ธ ์ถ์์ ํจ๊ป ๊ฐํ ํน์ง ๊ฐ์กฐ
- ๋ค๋ง, ๊ณ์ฐ๋์ด ๋ง๋ค๋ ๋ฌธ์ ๊ฐ ์์ต๋๋ค. ์์ผ๊น์? ์ด์ ๋ ์๋์ ๊ทธ๋ฆผ์ ๋ณด๋ฉด์ ์์๋ณด๊ฒ ์ต๋๋ค.
- ๊ณ์ฐ์์ด ๋งค์ฐ ๋ง๊ณ , Feature map depth๊ฐ ์ ์ ์ค๊ฐํฉ๋๋ค.
- ๊ทธ๋ฆฌ๊ณ Pooling Layer๊ฐ feature depth๋ฅผ ์ ์งํ๊ธฐ ๋๋ฌธ์ filter concatํ depth๊ฐ ์ ์ ์ฆ๊ฐํ๊ฒ ๋๋ค๋ ๋ฌธ์ ์ ์ด ์์ต๋๋ค.
- ๊ทธ๋์ feature depth๋ฅผ ์ค์ด๊ธฐ ์ํด์ "bottleneck" layer๋ฅผ ์ฌ์ฉํด์ feature depth๋ฅผ ์ฌ์ฉํฉ๋๋ค.
Bottleneck Layer
๊ณ ์ฐจ์ ๊ณต๊ฐ์ ํน์ง์ ์ ์ฐจ์ ๊ณต๊ฐ์ผ๋ก ์์ถํ ๋ค์ ๋ค์ ๊ณ ์ฐจ์ ๊ณต๊ฐ์ผ๋ก ํ์ฅํ๋ ๊ณผ์ ์ ํตํด ๊ณ์ฐ์ ํจ์จ์ ์ฒ๋ฆฌ๋ฅผ ํ ์ ์๊ฒ ํ๋ Layer ์ ๋๋ค.
- Bottleneck Layer์ 3๊ฐ์ ์ฐ์๋ Layer๋ก ๊ตฌ์ฑ๋ฉ๋๋ค.
1. 1x1 Convolution: ์ฐจ์ ์ถ์(Dimensionality Reduction)
2. 3x3 ๋๋ 5x5 Convolution: ํน์ง ์ถ์ถ
3. 1x1 Convolution: ์ฐจ์ ํ์ฅ(Dimensionality Expansion)
- ๊ทธ๋ฆฌ๊ณ Bottleneck Layer์ Dimensionality Reduction(์ฐจ์ ์ถ์)๋ฅผ ํ๋ฉด์ ๊ฐ Channel์ Weight(๊ฐ์ค์น)๋ฅผ ํ์ตํ๋ ๋ฐฉ์์ ๋๋ค.
- ์ฌ๊ธฐ์ ์ด์ Activation map์ depth(๊น์ด)๋ฅผ ์ค์ฌ์ ๊ณ์ฐ์ ํจ์จ์ฑ์ ๋์ผ ์ ์์ต๋๋ค.
* Activation map (Feature map): Convolutional Neural Network, CNN ์์ ๊ฐ ํํฐ๊ฐ ์ ๋ ฅ ๋ฐ์ดํฐ์ ๋ํด ์์ฑํ ์ถ๋ ฅ
- ๊ทธ๋ฌ๋ฉด ํ๋ฒ ์ด์ Inception Module์ 'bottleneck' Layer๋ฅผ ์ ์ฉ์ํจ ๊ตฌ์กฐ๋ฅผ ํ๋ฒ ๋ณด๊ฒ ์ต๋๋ค.
- Pooling Layer ๋ค์ Bottleneck์ ํตํด depth๋ฅผ ์ค์๋ค๋ ํน์ง์ด ์์ต๋๋ค.
- ๊ทธ๋ฆฌ๊ณ Naive Inception Module์ Parameter ๋ณด๋ค ์ ๋ฐ ์ดํ๋ก ์ค์๋ค๋ ํน์ง์ด ์์ต๋๋ค.
์ ์ฒด GoogLeNet Architecture
- GoogLeNet์ ํ์ ๊ณ์ธต์ Gradient๋ฅผ ์ํํ ๊ณต๊ธํ๊ฒ ์ํด์ ๋ณด์กฐ Classification ์ถ๋ ฅ์ ๋์์ต๋๋ค.
- AVGPool - 1x1 Conv Layer - FC - FC - Softmax(activation) [๋ณด์กฐ์ถ๋ ฅ]
- ์ ์ฒด 22 ๊ณ์ธต → Inception Module 9๊ฐ + Conv Layer 4๊ฐ
- Parallel Layer๋ 1๊ฐ๋ก ๊ณ์ฐ → Inception ๋ชจ๋ ๋ด๋ถ์ ๋ณ๋ ฌ ์ฐ์ฐ ๊ตฌ์กฐ๋ฅผ ๋จ์ผ ๊ณ์ธต์ผ๋ก ๊ฐ์ฃผํ๋ค๋ ์๋ฏธ์ ๋๋ค.
- Inception Module ๋ณ๋ก 2-Layer๋ก ๊ณ์ฐ → ๊ณ์ฐ์ 2๊ฐ์ ๊ณ์ธต์ผ๋ก ๊ฐ์ฃผํ๋ค๋ ์๋ฏธ์
๋๋ค.
- ๋ํ Gradient Loss ๋ฌธ์ ๋ ํ์ต์ ์์ ํ ํ๊ธฐ ์ํ์ฌ ์ค๊ฐ Layer์ Auxiliary Classifiers๋ฅผ ์ฌ์ฉํฉ๋๋ค.
- ๊ทผ๋ฐ, ์ฌ๊ธฐ์ Auxiliary Classifiers๊ฐ ๋ญ๊น์?
Auxiliary Classifiers
GoogLeNet(๋๋ Inception V1)์์ ๋์ ๋ ๊ธฐ๋ฒ์ผ๋ก, ๋คํธ์ํฌ์ ์ค๊ฐ ๋จ๊ณ์์ ์ถ๊ฐ์ ์ธ ๋ถ๋ฅ๊ธฐ๋ฅผ ์ฌ์ฉํ์ฌ ํ์ต์ ๋๋ ์ญํ ์ ํฉ๋๋ค.
๋ํ Gradient Loss ๋ฌธ์ ๋ฅผ ์ํํ๊ณ , ๋คํธ์ํฌ๊ฐ ๋ ๋์ ํน์ฑ์ ํ์ตํ๋๋ก ์ ๋ํ๋ฉฐ, ํ์ต์ ์์ ํ์ํค๋ ๋ฐ ๊ธฐ์ฌํฉ๋๋ค.
- GoogLeNet์์๋ Inception ๋ชจ๋ ๊ทธ๋ฃน ๋ค์ ๋ฐฐ์น๋ฉ๋๋ค.
- ๋ณดํต ๋ ๊ฐ์ Auxiliary Classifiers๊ฐ ์ฌ์ฉ๋ฉ๋๋ค. ํ๋๋ Inception ๋ชจ๋(4a) ๋ค์, ๋ค๋ฅธ ํ๋๋ Inception ๋ชจ๋(4d) ๋ค์ ์์นํฉ๋๋ค.
- ๊ทธ๋ฆฌ๊ณ ์ค๊ฐ Layer์์ Gradient๋ฅผ ์์ฑํ์ฌ ๋ค๋ก ์ ๋ฌํจ์ผ๋ก์จ, ๊น์ ๋คํธ์ํฌ์์ ๋ฐ์ํ๋ Gradient Loss ๋ฌธ์ ๋ฅผ ์ํํฉ๋๋ค.
- Auxiliary Classifiers๋ ์ฃผ๋ก ์๋์ ๊ฐ์ด Layer๊ฐ ๊ตฌ์ฑ๋ฉ๋๋ค.
• Average Pooling Layer: 5x5 ํฌ๊ธฐ, stride 3
• Convolution Layer: 1x1 filter, ์ถ๋ ฅ channel ์๋ 128
• Fully Connected Layer (FC- ์์ ์ฐ๊ฒฐ ๋ ์ด์ด): 1024๊ฐ Neuron
• Dropout Layer: Dropout ํ๋ฅ 0.7
• Output Layer: 1000๊ฐ ํด๋์ค์ ๋ํ Softmax(์ํํธ๋งฅ์ค) Activation Function
ResNet
ResNet์ 2015๋ ์ Microsoft Research์์ ๊ฐ๋ฐ๋ CNN(Convolutional Neural Network) ๊ตฌ์กฐ์ ๋๋ค.
- ResNet์ ๊ทธ ์ด์ ๊น์ง์ ๋ฌธ์ ์๋ ๊น์ ๋คํธ์ํฌ๋ฅผ ํ๋ จ์ํฌ ๋ ๋ฐ์ํ๋ ์์ค๋(gradients vanishing) ๋๋ ํญ๋ฐํ๋ (gradients exploding) Gradient Saturation(๊ทธ๋๋์ธํธ ๋ฌธ์ )๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด ๊ณ ์๋์์ต๋๋ค.
• 1x1 Convolution: ์ฐจ์ ์ถ์ ๋ฐ Non-Linear ์ถ๊ฐ
• 3x3 Convolution: ์ค๊ฐ ๊ท๋ชจ์ Feature ์ถ์ถ
• 1x1 Convolution: Dimension ํ์ฅ ๋ฐ Non-Linear ์ถ๊ฐ
• Batch Normalization: ๋ด๋ถ ๊ณต๊ฐ ๋ณํ๋ ๋ณํ ๊ฐ์
• ReLU Activation: Non-Linear ์ถ๊ฐ
• Identity Shortcut Connection: Gradient Loss ๋ฌธ์ ์ํ
- ์ฃผ์ ํน์ง์ ํ๋ฒ ์ค๋ช ํด๋ณด๊ฒ ์ต๋๋ค.
- Residual Block(์์ฐจ ๋ธ๋ก): Residual Block(์์ฐจ ๋ธ๋ก)์ ์ง์ ์ ์ธ ์ฐ๊ฒฐ(Identity Shortcut Connection)์ ํตํด ์ ๋ ฅ์ ์ถ๋ ฅ์ ๋ํ๋ ๊ตฌ์กฐ์ ๋๋ค. ์ด๋ฅผ ํตํด Gradient๊ฐ ์์ค๋์ง ์๊ณ ์ ์ ๋ฌ๋๋ฉฐ, ๋งค์ฐ ๊น์ ๋คํธ์ํฌ์์๋ ํจ๊ณผ์ ์ผ๋ก ํ์ตํ ์ ์์ต๋๋ค.
- Identity Shortcut Connection: Residual Block์์ ์ ๋ ฅ์ ์ถ๋ ฅ์ ๋ํ์ฌ ๋ชจ๋ธ์ด ํ์ตํด์ผ ํ ๊ฒ์ ์ค์ด๊ณ , ๊ธฐ์กด์ ์ ๋ ฅ์ ๋ณด์กดํ์ฌ ์์ ์ฑ์ ๋์ ๋๋ค. ์ด๋ฌ๋ฉด ํธ์ํฌ์ ๊น์ด๊ฐ ๊น์ด์ง๋๋ผ๋ ํ์ต์ด ๊ฐ๋ฅํด์ง๋๋ค.
- ๊ทผ๋ฐ, ์ฌ๊ธฐ์ 'Residual Block(์์ฐจ ๋ธ๋ก)'์ ๋ฌด์์ผ๊น์?
Residual Learning (์์ฐจ ํ์ต)
ResNet์ ํต์ฌ ์์ด๋์ด๋ "์์ฐจ ํ์ต(Residual Learning)” ์ ๋๋ค.
- ์์ฐจ ๋ธ๋ก์ ์ ๋ ฅ ๋ฐ์ดํฐ๋ฅผ ์ง์ ์ ์ผ๋ก ๋ค์ ์ธต์ ์ ๋ฌํ๋ ์คํต ์ฐ๊ฒฐ(skip connection) ๋๋ ๋จ์ถ ๊ฒฝ๋ก(shortcut connection)๋ฅผ ํฌํจํฉ๋๋ค.
- ์ผ๋ฐ์ ์ธ ๊ฒฝ๋ก๋ก ์งํ์ ํ๋ ๋ฐฉ๋ฒ๋ ์์ง๋ง Layer๋ฅผ ๊ฑด๋ ๋ฐ์ด๋๋(์ฐํํ๋)์ฐ๊ฒฐ์ ์ถ๊ฐํ์ฌ ReLU(Activation Function)์ผ๋ก ์ด๋ํฉ๋๋ค.
- ๊ทธ๋ฌ๋ฉด Backpropagation(์ญ์ ํ)์ Graident(๊ธฐ์ธ๊ธฐ)๊ฐ ์์ค๋์ง ์๊ณ ๊ทธ๋๋ก ์ ๋ฌ๋ฉ๋๋ค.
๊ฐ ์์ฐจ ๋ธ๋ก์ ์ ๋ ฅ์ ์ถ๋ ฅ์ ์ง์ ๋ํ๋ skip connection์ ํฌํจํฉ๋๋ค. ์ด๋ ๋คํธ์ํฌ๊ฐ ํ์ตํด์ผ ํ๋ ๊ฒ์ด ์ ๋ ฅ๊ณผ ์ถ๋ ฅ์ ์ฐจ์ด, ์ฆ "์์ฐจ"์์ ์๋ฏธํฉ๋๋ค. ์ด๋ฌํ ์ ๊ทผ ๋ฐฉ์์ ๋คํธ์ํฌ๊ฐ ๋ ๊น์ด์ ธ๋ ์์ ์ ์ผ๋ก ํ์ตํ ์ ์๊ฒ ๋์ต๋๋ค.
- ์ด๋ฌํ skip connection์ ์ ๋ ฅ ๋ฐ์ดํฐ๋ฅผ ๋คํธ์ํฌ์ ๋ ๊น์ ์ธต์ผ๋ก ์ง์ ์ ๋ฌํจ์ผ๋ก์จ, ๊น์ ๋คํธ์ํฌ์์๋ Gradient๊ฐ ํจ๊ณผ์ ์ผ๋ก ์ ํ๋ ์ ์๋๋ก ๋๋ ์ญํ ์ ํฉ๋๋ค.
- ๋ํ Residual Learning(์์ฐจ ํ์ต)์์ ์ฌ์ฉ๋๋ Residual Block(๋ ์ง๋์ผ ๋ธ๋ก)์ ์ ๊ฒฝ๋ง์ ๊ฐ ๋ ์ด์ด๊ฐ ์ ๋ ฅ์ ๊ทธ๋๋ก ์ถ๋ ฅ์ผ๋ก ์ ๋ฌํ๋ "์ ์ฒด์ฑ ๋งตํ(identity mapping)"์ ํตํด ํ์ตํ ์ ์๋๋ก ํฉ๋๋ค.
- ๊ทธ๋ฌ๋ฉด ๋งค์ฐ ๊น์ ๋คํธ์ํฌ์์๋ Gradient Loss ๋ฌธ์ ๋ฅผ ํด๊ฒฐํฉ๋๋ค.
- Residual Block์ ์ ๋ ฅ ๋ฐ์ดํฐ๋ฅผ ๊ทธ๋๋ก ์ ์งํ๋ฉด์ ์ ๋ ฅ๊ณผ ์ถ๋ ฅ์ ์ฐจ์ด๋ฅผ ํ์ตํฉ๋๋ค.
- ์ด ์ฐจ์ด๋ฅผ ์์ฌ ํจ์(residual function)๋ผ๊ณ ํฉ๋๋ค.
- ๋ํ ๊ทธ๋ฆฌ๊ณ , Residual(์์ฐจ) Layer์์ ์ฃผ๊ธฐ์ ์ผ๋ก filter ๊ฐ์๋ฅผ 2๋ฐฐ๋ก ๋๋ฆฌ๊ณ Stride๋ฅผ 2๋ก ์ง์ ํ์ฌ downsampling์ ํ์ต๋๋ค.
- ๊ทธ๋ฆฌ๊ณ ๋ง์ง๋ง Classifier(๋ถ๋ฅ๊ธฐ) ์์ ๋ ๋ถ๋ถ์ Fully-Connected Layer(FC) ๊ณ์ธต์ ์ ๊ฑฐํ์์ต๋๋ค.
- ๋จ, ํด๋์ค ์ถ๋ ฅ์ ์ํ Fully-Connected Layer(FC) 1000๊ฐ๋ง ์กด์ฌํฉ๋๋ค.
- ๊ทธ๋ฆฌ๊ณ Global Average Pooling์ ์ฌ์ฉํ์ต๋๋ค.
๋ฐ์ํ
'๐ฅ๏ธ Deep Learning' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[DL] Deep Learning Model Optimization (๋ฅ๋ฌ๋ ๋ชจ๋ธ ์ต์ ํ) (0) | 2024.08.31 |
---|---|
[DL] Transfer Learning - ์ ์ด ํ์ต (0) | 2024.05.19 |
[DL] Convolution & Pooling Layer ๊ตฌํํด๋ณด๊ธฐ (0) | 2024.05.13 |
[DL] Convolution Neural Network - CNN (ํฉ์ฑ๊ณฑ ์ ๊ฒฝ๋ง), Convolution Layer, Pooling Layer (0) | 2024.05.12 |
[DL] ์ฌ๋ฐ๋ฅธ ํ์ต์ ์ํด - Overfitting, Dropout, Hyperparameter (0) | 2024.05.07 |