๐ก ๋ณธ ๋ฌธ์๋ '[Perception] CNN Network์ ์ญ์ฌ (LeNet-5 ๋ถํฐ ResNet ๊น์ง)'์ ๋ํด ์ ๋ฆฌํด๋์ ๊ธ์ ๋๋ค.
์ต๊ทผ์ ๋์ค๋ ๋๋ถ๋ถ์ ๋ชจ๋ธ์ด ์์ง๊น์ง ResNet์ผ๋ก pretrained ๋ ๋ชจ๋ธ์ ์ฌ์ฉํ๊ณ ์๋ค๋ ์ ์์ ์์ํ์ฌ, ResNet ๊ตฌ์กฐ๋ฅผ ๊ณต๋ถํ๊ณ ์ ์ด์ ๋ถํฐ ResNet๊น์ง์ CNN Nerwork์ ์ญ์ฌ๋ฅผ ์ ๋ฆฌํ์์ผ๋ ์ฐธ๊ณ ํ์๊ธฐ ๋ฐ๋๋๋ค.
0. Multi Layer Perceptron (MLP)
Multi Layer Perceptron์ ๋ค์๊ณผ ๊ฐ์ Layer ์ธต์ผ๋ก ๊ตฌ์ฑ๋์ด ์์ต๋๋ค.
- Fully Connected Layer: ์ ๋ ฅ์ธต๊ณผ ์ถ๋ ฅ๋ ธ๋๋ฅผ ๋ชจ๋ ์ฐ๊ฒฐํ๋ค.
- Batch Normalization: ๊ฐ ์ธต์ ์ ๋ ฅ ๋ฐ์ดํฐ ๋ถํฌ๋ฅผ ์ผ์ ํ๊ฒ ์ ์ง์ํจ๋ค.
- Activation Function: ๋น์ ํ์ฑ์ ๋์ ํ์ฌ ํน์ง์ ์ถ์ถํ๋ค.
์ด๋ฌํ MLP๋ฅผ ์ฌ์ฉํ์ง ์๋ ์ด์ ๋ ์ ๋ ฅ์ธต๊ณผ ์ถ๋ ฅ์ธต์ด ๋ชจ๋ ์ฐ๊ฒฐ๋์ด์์ด, ๋ง์ ์ฐ์ฐ์ ํ์๋ก ํ๋ฉฐ ๊ณผ์ ํจ๋๊ธฐ ์ฝ๋ค. ์ด์ ๋ฐํ์ฌ CNN์ ๋ค์๊ณผ ๊ฐ์ ํน์ง์ ํตํด ํ๋ผ๋ฏธํฐ ์๋ฅผ ๊ฐ์ํ๊ณ ํจํด์ ํ์ต ๊ฐ๋ฅํ๋ค.
- Weight Sharing: ๊ฐ์ ์ปค๋๋ก ๊ฐ์ค์น๋ฅผ ๊ณต์ ํ๋ฉฐ, ๊ฐ์ค์น์ ๊ฐ์๋ฅผ ์ค์ธ๋ค.
- Multiple Input Channel: ์ฌ๋ฌ ํํฐ์์ ํน์ง ์ถ์ถ์ด ๊ฐ๋ฅํ๋ค.
์์ ๊ฐ์ Convolution Layer๋ฅผ ํตํด์ Feature Extraction(ํน์ง ์ถ์ถ) ๊ณผ์ ์ ์งํํ๊ณ ์ดํ Classification(๋ถ๋ฅ) ๊ณผ์ ์ ์งํํ๋ค. Classification์ input์ Feature Extraction Layer๋ฅผ ํต๊ณผํ Flattenedํ์ฌ vectorํํ ํ Fully Connected Layer๋ฅผ ํต๊ณผํ๋ค. ์ด๋ ๋ง์ง๋ง์ ์ถ๋ ฅํ Output Logit ๊ฐ์ Softmax๋ฅผ ํตํด ์ด๋ค ํด๋์ค์ ํ๋ฅ ์ด ๋์์ง๋ฅผ ํ๋ณํ์ฌ ํด๋์ค๋ฅผ ์์ธกํ๋ค.
์์ ๋ด์ฉ์ ๊ธฐ๋ฐ์ผ๋กํ CNN์ ๋ค์ํ ๋ชจ๋ธ๋ค์ด ์ถ๋ฒํ์์ผ๋ฉฐ, ๊ทธ ๋ณํ๊ณผ์ ์ ์ค๋ช ํ๋๋ก ํ๊ฒ ๋ค.
1. LeNet-5 (1998)
์์: Convolutional layer์ pooling์ ์กฐํฉ์ ๋ฐ๋ณตํ๋ ํ๋์ ์ธ CNN ๊ตฌ์กฐ๋ฅผ ์ ์ํ๋ค๋ ์ ์์ ์๋ฏธ
- Convolution layer(C), sub-sampling(S), Fully-connected layer(F)
- Convolution Layer: ์ง์ญ์ ์ธ ํน์ง ์ถ์ถ
- Sub-sampling(Average Pooling): ์ด๋ฏธ์ง ์ฌ์ด์ฆ ๊ฐ์ -> ์์น ์ด๋, ํ์ ๋ฐ ๋ถ๋ถ์ ์ธ ๋ณํ์ ์๊ณก์ ๊ฐ์ธํ๋๋ก
- C3์์ 16๊ฐ์ ์ฑ๋์ ์์ฑํ ๋ ์ layer์ ์ผ๋ถ๋ง ์ ๋ณํ์ฌ ์ถ์ถํจ
- Fully-connected layer + activation(tanh)
- ๋ค์ ๋ถ๋ ์ซ์๋ ์ ์ฒด ๊ตฌ์กฐ์์ ๋ช ๋ฒ์งธ layer์ธ์ง๋ฅผ ์๋ฏธ
2. AlexNet (2012)
์์: ์ฌ๋์ด ์ค๊ณํ feature๊ฐ ์๋ ํ์ต์ ํตํด ์ ํ๋ feature๋ฅผ ํ์ฉํด ๊ธฐ์กด๋ณด๋ค ์ข์ ์ฑ๋ฅ
- Convolutional layer, Max Pooling, Fully-connected layer
- Multi-GPU ์ฌ์ฉ: Network๋ฅผ ๋ ๊ฐ์ GPU๋ก ๋๋ ์ ์๋ ๊ตฌ์กฐ๋ก ์ค๊ณ
- ReLU์ฌ์ฉ: Tanh -> ReLU. ํ์ต์๋๊ฐ 7๋ฐฐ ๋นจ๋ผ์ง. saturation ๋ฐฉ์ง.
- LRN(Local Response Normalization): kenel์ ํ ์ ์์ ๊ณต๊ฐ์ ์ผ๋ก ๊ฐ์ ์์น์ ์๋ ๋ค๋ฅธ channel์ ๊ฐ๋ค์ square-sumํ์ฌ ํ๋์ filter์์๋ง ๊ณผ๋ํ ํ์ฑํ ๊ฐ์ด ๋์ค๋ ๊ฒ์ ๋ง๋ ์ญํ
- Overlapped max pooling: Strid๊ฐ kernel(receptive field) ํฌ๊ธฐ๋ณด๋ค ์๊ฒ.
- Data Augmentation: ๋ฐ์ดํฐ ์ฆ๊ฐ. Overfitting ๋ฐฉ์ง.
- 1. 256x256 ํฌ๊ธฐ์ ์๋ ์ด๋ฏธ์ง๋ก ๋ถํฐ 224x224 ํฌ๊ธฐ์ ์ด๋ฏธ์ง๋ฅผ ๋ฌด์์๋ก ์ถ์ถ
- 2. ์ํ๋ฐ์ ๊ณผ RGB์ปฌ๋ฌ์ฑ๋ถ ๋ณ๊ฒฝ
- Dropout: ํ์ตํ ๋ ์ผ๋ถ ๋ด๋ฐ์ ์๋ต. Overfitting ๋ฐฉ์ง.
3. VGGNet (2014)
์์: ๋ง ๊น์ด(depth)๊ฐ ๋คํธ์ํฌ ์ฑ๋ฅ์ ์ฃผ๋ ์ํฅ์ ๋ํด ํ์ธํ๊ธฐ ์ํ ๋คํธ์ํฌ
- Convolutional layer, Max Pooling, Fully-connected layer, ReLU, Dropout
- ๊ธฐ๋ณธ ๊ตฌ์กฐ๋ Conv layer๋ค์ max-pooling์ผ๋ก ํด์๋๋ฅผ ์ค์ฌ๊ฐ๋ ๋จ์ํ ๊ตฌ์กฐ
- Factoring Conv: kernel ์ฌ์ด์ฆ๊ฐ 5x5์ธ convolution์ 2๊ฐ์ 3x3 convolution์ผ๋ก ๋ถํด(Factoring)
- ๋น์ ํ์ฑ(non-linearity)๊ฐ ๋ ์ฆ๊ฐํ์ฌ ๋ ์ข์ ์ฐจ๋ณ์ฑ(๊ตฌ๋ณ๋ ฅ)์ ๊ฐ์ง feature๋ฅผ ๋ฝ์๋
- ์ฌ์ฉํ๋ ํ๋ผ๋ฏธํฐ์ ์๊ฐ ์ค์ด๋ค๊ณ , ํ์ต ์๋๊ฐ ๋นจ๋ผ์ง
- Data augmentation: ๋ฐ์ดํฐ ์ฆ๊ฐ. Overfitting ๋ฐฉ์ง.
- scale jittering: ๋ค์ํ ํฌ๊ธฐ์ ์ด๋ฏธ์ง ๋ฐ์ดํฐ๋ค์ ๋์ผํ ํฌ๊ธฐ๋ก ๋ง์ถฐ์ input size๋ฅผ ๋จ์ผํ์ํค๊ธฐ ์ํด ์ด๋ฏธ์ง์ ํฌ๊ธฐ๋ฅผ ์กฐ์ ํ๊ฑฐ๋ ์๋ผ๋ด๋ ๋ฐฉ๋ฒ
- ์ํ๋ฐ์ , RGB์ปฌ๋ฌ์ฑ๋ถ ๋ณ๊ฒฝ
4. GoogLeNet (2014)
์์: Inception module์ ํ์ฉํด AlexNet๋ณด๋ค ๋ ๊น์ง๋ง ํ๋ผ๋ฏธํฐ ์๋ 1/12์ด๋ฉฐ, ์ฑ๋ฅ๋ฉด์์ ์ข์
GoogLeNet-V1
์ ์ ๋ฐฐ๊ฒฝ
- ๋ฅ๋ฌ๋ ๋คํธ์ํฌ ์ฑ๋ฅ์ ๋์ด๊ธฐ ์ํด์๋ ๋คํธ์ํฌ์ ํฌ๊ธฐ, ์ฆ Depth(layer ์)์ width(channel ์)๋ฅผ ๋๋ ค์ผ ํ๋ค.
- ๊ธฐ์กด์ Denseํ ๊ตฌ์กฐ(weight๋ค์ ๋๋ถ๋ถ์ด 0์ด ์๋ ๊ฐ์ ๊ฐ๋ ํํ)์์ ํฌ๊ธฐ๋ฅผ ํค์ฐ๋ฉด overfitting, ์ฐ์ฐ๋ ์ฆ๊ฐ ๋ฑ ๋ฌธ์ ๊ฐ ๋ฐ์ํ๋ค.
- GoogLeNet์์๋ ๊น์ ๋ง์ ์ค๊ณํ๋ ํ๋ผ๋ฏธํฐ ์๋ฅผ ์ค์ด๊ธฐ ์ํด denseํ ๊ตฌ์กฐ ๋์ sparse(weight์ ๋๋ถ๋ถ์ด 0์ธ ํํ)ํ๋ฉด์ ํฌ๊ธฐ๊ฐ ํฐ ๊ตฌ์กฐ๋ก ๋ง๋ ๋ค.
- ๊ทธ๋ฐ๋ฐ Sparseํ ๊ตฌ์กฐ๋ ์ปดํจํฐ ์ฐ์ฐ๊ตฌ์กฐ์ ํจ์จ์ด ๋จ์ด์ง๋ค.
- Sparseํ ๊ตฌ์กฐ๋ค ์ค ์๊ด๋๊ฐ ๋์๊ฒ๋ค์ clusteringํ์ฌ ์ ์ฌ denseํ ํํ๋ฅผ ๋ง๋ ๋ค(sparseํ ๊ตฌ์กฐ๋ค์ ๋ฌถ์ด desneํ ํํ๋ก ๋ง๋ค๊ธฐ)
Inception module
- Multi Scale Conv layer์ ๋ณ๋ ฌ ์ฌ์ฉ: 1x1, 3x3, 5x5 ์ธ ๊ฐ์ Conv layer์ 1๊ฐ์ 3x3 Max-pooling์ ์ฌ์ฉ
- ์ฌ๋ฌ ์ค์ผ์ผ์ Convolution ์ฐ์ฐ์ ํ์ฉํด ๋ค์ํ ์ค์ผ์ผ์์ ํจ์จ์ ์ผ๋ก ํน์ง์ ๋ฝ์๋ธ ๋ค ReLUํจ์๋ฅผ ์ฌ์ฉ
- Convolution network(feature ์ถ์ถ)๋ฅผ ์ต์ ์ sparseํ matrix๋ฅผ ๋ง๋ค๊ณ , ํ๋ ฌ ์ฐ์ฐ์์๋ ์ด๋ค์ ํฉ์ณ(concat) ์ต๋ํ denseํ๊ฒ ๋ง๋๋ ๊ฒ
- ์ด ๊ตฌ์กฐ์์ ๋ง์ง๋ง layer์ ์๊ด๋ ํต๊ณ๋ถ์์ ํ์ฉํด ์๊ด๋๊ฐ ๋์(correlation ๊ฐ์ด ๋์) unit์ clustering
- 1x1 Conv layer ์ฌ์ฉ: ์ฐจ์์ ์ถ์(dimension reduction)ํ์ฌ ์ฐ์ฐ๋์ ์ค์ฌ์ฃผ๋ ์ญํ
- 1. channel ์ ์กฐ์ , 2. ๊ณ์ฐ๋ ๊ฐ์, 3. ๋น์ ํ์ฑ(ReLU)
- unit์ด ๋จ์ผ ์ง์ญ์ ๋ฐ์ง๋ ๊ฒฝ์ฐ๋ 1x1 Conv layer๋ก ๋์์ด ๊ฐ๋ฅํ๋ฉฐ, ์ฌ๋ฌ ์ค์ผ์ผ์์ feature๋ฅผ ๋์์ ์ถ์ถํจ์ผ๋ก ์จ feature๋ฅผ ํจ๊ณผ์ ์ผ๋ก ์ถ์ถ
- ๋จ, 1x1๋ก ์ฐจ์์ ์๋ฅผ ์ค์ธ ๊ฒฝ์ฐ feature๊ฐ ๊ฐ์ง๊ณ ์๋ ์ ๋ณด๊ฐ ์์ถ๋๋ฉด์ ์๋์ (a)๊ตฌ์กฐ๋ณด๋ค ์ฑ๋ฅ์ด ๋จ์ด์ง ์ ์๊ธฐ์, ์ฐ์ฐ๋์ด ํด ๋๋ง (b) ๊ตฌ์กฐ๋ฅผ ์ฌ์ฉ
- auxiliary classifier: softmax๋ฅผ ํตํด ๊ฒฐ๊ณผ๋ฅผ ๋ฝ์๋ด๋ ๋ถ๋ถ์ด ๋งจ ๋์๋ง ์๋ ๊ฒ์ด ์๋๋ผ, ์ค๊ฐ ์ค๊ฐ์ ์์
- ์ด๋ ๊ฒ auxiliary classifier๋ฅผ ๋ง๋ถ์ด๋ฉด, Loss๋ฅผ ๋งจ ๋๋ฟ๋ง ์๋๋ผ ์ค๊ฐ ์ค๊ฐ์์ ๊ตฌํ๊ธฐ ๋๋ฌธ์ gradient๊ฐ ์ ์ ํ๊ฒ ์ญ์ ํ๋์ด Vanishing Gradient๋ฅผ ๋ฐฉ์ง
- ๋์ ์ด auxiliary classifier๊ฐ ์ง๋์น๊ฒ ์ํฅ์ ์ฃผ๋ ๊ฒ์ ๋ง๊ธฐ ์ํด 0.3์ ๊ณฑํ์ฌ ์ฌ์ฉ
- global average pooling: Fully Connected(FC) ๋ฐฉ์ ๋์ ์ global average pooling์ด๋ ๋ฐฉ์์ ์ฌ์ฉ
- ์ ์ธต์์ ์ฐ์ถ๋ ํน์ฑ๋งต๋ค์ ๊ฐ๊ฐ ํ๊ท ๋ธ ๊ฒ์ ์ด์ด์ 1์ฐจ์ ๋ฒกํฐ๋ฅผ ๋ง๋ค์ด์ฃผ๋ ๊ฒ
- 1์ฐจ์ ๋ฒกํฐ๋ฅผ ๋ง๋ค์ด์ค์ผ ์ต์ข ์ ์ผ๋ก ์ด๋ฏธ์ง ๋ถ๋ฅ๋ฅผ ์ํ softmax ์ธต์ ์ฐ๊ฒฐ ๊ฐ๋ฅ.
GoogLeNet-2
- ์ ๋ ฅ ์ด๋ฏธ์ง ํด์๋ ์ฆ๊ฐ: 224x224์์ 299x299๋ก ์ฆ๊ฐ
- 3x3 Conv ํํฐ ์ฌ์ฉ: ์ ์ ์๋จ์ 7x7 Conv layer๋ฅผ 3๊ฐ์ 3x3 Conv layer๋ก ๋ถํดํ multi-layer๋ก ๊ตฌ์กฐ๊ฐ์
- Factorization ์ฌ์ฉ: Inception module๋ factorizing convolution๋ ํํ๋ก ์นํํ์ฌ ๋ ๊น๋ ์ฐ์ฐ๋์ ์ ๋๋ก ๊ฐ์
- Factorization: ์ผ๋ฐ์ ์ผ๋ก n x n ์ ํํ๋ก Conv ๋ฅผ ์ํํ๊ฒ ๋๋๋ฐ, ์ด๋ฅผ 1xn๊ณผ nx1 Convolution์ผ๋ก ๋ถํด ๊ฐ๋ฅ
- Factorization์ ์ฌ์ฉํ๋ฉด, n x n๊ฐ์ ํ๋ผ๋ฏธํฐ๊ฐ n+n๊ฐ๋ก ๋์ด ํฐ ์ ๊ฐํจ๊ณผ
- Inception module์ด 2์ข ๋ฅ์์ 3์ข ๋ฅ๋ก ๋์ด๋จ
- ์ด๋ฐ๋ถ์ Auxiliary classifier ์ ๊ฑฐ (ํจ๊ณผ ๋ฏธ๋ฏธ)
- ์ต์ข ๋จ์ feature-map์ ๊ฐ์๊ฐ ๋ ๋ง์์ง
- Convolution๊ณผ Pooling์ stride๋ฅผ 2๋ก ๋ณ๊ฒฝ
- 22-layer์์ 42-layer๋ก ๊น์ด์ง๊ณ , ์ฐ์ฐ๋์ด 2.5๋ฐฐ ์ฆ๊ฐ
GoogLeNet-V3
- RMSProp Optimizer ์ฌ์ฉ: ํ์ตํ ๋ optimizer๋ฅผ SGD์์ RMSProp๋ก ๋ณ๊ฒฝ
- RMSProp๋ ๋ง์ด ๋ณํํ ๋ณ์๋ ์ต์ ๊ฐ์ ๊ทผ์ ํ์ ๊ฒ์ด๋ผ๋ ๊ฐ์
- ์ ๋ฐ์ดํธ ํ์์ ๋ฐ๋ผ ํ์ต๋ฅ ์ ์กฐ์ ํ๋ Adagrad์ ์ง์ ๊ฐ์ค ์ด๋ ํ๊ท ์ ์ปจ์ ์ ์ฌ์ฉํ์ฌ ์ต์ ๊ธฐ์ธ๊ธฐ๋ค์ด ๋ ํฌ๊ฒ ๋ฐ์๋๋๋ก ํ ๊ฒ
- Label smoothing ์ ์ฉ: ๋ ์ด๋ธ์ ๋ถ๋๋ฝ๊ฒ ๊น์์ ์ผ๋ฐํ ์ฑ๋ฅ์ ๋์ด๊ณ ์ ํ๋ ๊ฒ
- Hard label(One-hot encoded vector๋ก ์ ๋ต ์ธ๋ฑ์ค๋ 1, ๋๋จธ์ง๋ 0์ผ๋ก ๊ตฌ์ฑ)์ Soft label(๋ผ๋ฒจ์ด 0๊ณผ 1 ์ฌ์ด์ ๊ฐ์ผ๋ก ๊ตฌ์ฑ)๋ก ์ค๋ฌด๋ฉํ๋ ๊ฒ์ ์๋ฏธ
- Batch Normalization ์ ์ฉ: ํ์ต์ ๋ ๋นจ๋ฆฌ ํ๊ธฐ ์ํด์ ๋๋ Local optimum ๋ฌธ์ ์ ๋น ์ง๋ ๊ฐ๋ฅ์ฑ์ ์ค์ด๊ธฐ ์ํด์ ์ฌ์ฉ
- ํน์ Hidden Layer์ ๋ค์ด๊ฐ๊ธฐ ์ ์ Batch Normalization Layer๋ฅผ ๋ํด์ฃผ์ด input์ modifyํด์ค ๋ค ์๋ก์ด ๊ฐ์ activation function์ผ๋ก ๋ฃ์ด์ฃผ๋ ๋ฐฉ์์ผ๋ก ์ฌ์ฉ
- ์ด๋, ํ์ฑํ ํจ์์ ์๋๋ Wx+b ํํ๋ก weight๋ฅผ ์ ์ฉ์ํค๋๋ฐ, Batch Normalization์ ์ฌ์ฉํ๊ณ ์ถ์ ๊ฒฝ์ฐ normalize ํ ๋ beta ๊ฐ์ด ๋ฐ์ด์ด์ค์ ์ญํ ์ ๋์ฒดํ ์ ์๊ธฐ ๋๋ฌธ์ b๋ฅผ ์์ ์ค
- ๊ฒฐ๊ณผ์ ์ผ๋ก Wx์ ๋ํด Batch Normalization์ ํ ํ, activation function์ ์ ์ฉ
5. ResNet (2015)
paper: "Deep Residual Learning for Image Recognition"
์์: Residual Learning์ ๋์ ํ์ฌ Vanishing Gradient ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ์ฌ ๋คํธ์ํฌ์ ๊น์ด๋ฅผ ๋๋ฆฌ๋ฉด์ ์์ ์ ์ธ ํ์ต
- ๋คํธ์ํฌ๊ฐ ๊น์ด์ง์๋ก ๋ ์ฝ๊ฒ ํ์ตํ ๊น?
- Convergence Problem: Gradient๊ฐ ๋๋ฌด ์์ด์ง๊ฑฐ๋ ์ปค์ ธ ํ์ต์ด ๋งค์ฐ ๋๋ ค์ง๋ ํ์ ๋ฐ์(Gradient Vanishing/Exploding).
- ์ด๋ ํ์ต ์ด๊ธฐ๋ถํฐ convergence(์๋ ด)๋ฅผ ๋ฐฉํดํ๋ค.
- ์ด ๋ฌธ์ ๋ normalized initialization๊ณผ intermediate normalization layer๋ก ๋ค๋ค์ง๋ค.
- -> Back Propagation๊ณผ ํจ๊ป SGD(Stochastic gradient descent)๋ก ์์ญ์ธต์ layer๋ฅผ convergence ํ ์ ์๊ฒ ๋จ
- Degradation Problem: Convergence๊ฐ ๊ฐ๋ฅํด์ง๊ณ ๋๋, degradation ๋ฌธ์ ๊ฐ ๋ํ๋จ
- network ๊น์ด๊ฐ ์ฆ๊ฐํ ์๋ก accuracy๊ฐ ํฌํ๋๊ณ ๊ทธ ์ดํ๋ก ๋น ๋ฅด๊ฒ ํ๋ฝํ๋ค.
- ์์๊ณผ ๋ค๋ฅด๊ฒ degradation์ overfitting์ ์ํด ๋ฐ์ํ๋ ๋ฌธ์ ๊ฐ ์๋์๊ณ , layer๋ฅผ ๋ ์ถ๊ฐํ๋ฉด training error๊ฐ ๋์์ง๋ค.
- Convergence Problem: Gradient๊ฐ ๋๋ฌด ์์ด์ง๊ฑฐ๋ ์ปค์ ธ ํ์ต์ด ๋งค์ฐ ๋๋ ค์ง๋ ํ์ ๋ฐ์(Gradient Vanishing/Exploding).
- ๊น์ ๋คํธ์ํฌ๋ฅผ ์ฌ์ฉํ๋ฉด์ ์ข์ ์ฑ๋ฅ์ ๋ด๋ ๋ฐฉ๋ฒ
- ์ฒซ ๋ฒ์งธ๋ ์์ ๋คํธ์ํฌ์์ ์ถ๊ฐ๋ layer์ identity mapping(์ ๋ ฅ๊ฐ๊ณผ ์ถ๋ ฅ๊ฐ์ด ๊ฐ์ ํํ)
- ๋ ๋ฒ์งธ๋ ๋คํธ์ํฌ ์์ชฝ layer๋ฅผ ์์ ๋คํธ์ํฌ์์ ํ์ต๋ layer๋ฅผ ์ฌ์ฉํ๋ ๊ฒ
- ์ ์ ๊ตฌ์กฐ
- ์ผ๋ฐ์ ์ธ ๋ฅ๋ฌ๋ ๋คํธ์ํฌ๋ ์์ฌ์ง layer๋ค์ underlying mapping ํ๋๋ก (์ ๋ ฅ x๊ฐ layer๋ฅผ ํต๊ณผํ output์ด ๋ชฉํ๊ฐ y์ ๋ฑ ๋ง๋๋ก) ํ์ต
- ์ ์๋ ๊ตฌ์กฐ์ธ Deep Residual Learning์ residual(์์ฐจ, ์ ๋ ฅ๊ณผ ์ถ๋ ฅ์ ์ฐจ์ด)๋ฅผ mapping ํ๋๋ก ํ์ต
- residual(์์ฐจ)๊ฐ 0์ด ๋๋๋ก ํ์ตํ์ฌ identity mapping์ด ๋๋๋ก
- residual์ด 0์ด ๋๋๋ก ํ์ต๋ layer๋ฅผ ์์ ๋คํธ์ํฌ ๋ค์ ์ถ๊ฐํ๋ค๋ฉด training error๊ฐ ์์ ๋คํธ์ํฌ๋ณด๋ค ์์์ง๊ฒ ๋ ๊ฒ
Residual(identity) mapping: shortcut connection(skip connection)
์์: ์ ๋ ฅ๊ฐ์ layer๋ค์ ํต๊ณผํ ์ถ๋ ฅ๊ฐ์ ๋ํ๋ฉฐ, ์ถ๊ฐ์ ์ธ ํ๋ผ๋ฏธํฐ๊ฐ ์๊ณ ์ฐ์ฐ๋ ์ฆ๊ฐ๊ฐ ํฌ์ง ์์ ์ฅ์ . ๋ํ end-to-end ํ์ต์ด ๊ฐ๋ฅ
- ๊ธฐ์กด์ CNN์ ์ ๋ ฅ ๊ฐ x๋ฅผ ํ๊น ๊ฐ y๋ก ๋งคํํ๋ ํจ์ H(x)๋ฅผ ์ป๋ ๊ฒ์ด ๋ชฉ์ ์ด์ผ๋, ResNet์ F(x) + x๋ฅผ ์ต์ํํ๋ ๊ฒ์ ๋ชฉ์ ์ผ๋ก.
- x๋ ํ์์ ์์ ๋ณํ ์ ์๋ ๊ฐ์ด๋ฏ๋ก F(x)๋ฅผ 0์ ๊ฐ๊น๊ฒ ๋ง๋๋ ๊ฒ์ด ๋ชฉ์ ์ด ๋๋ ๊ฒ์ ๋๋ค. F(x)๊ฐ 0๊ณผ ๊ฐ๊น์์ง์๋ก ์ถ๋ ฅ๊ณผ ์ ๋ ฅ์ด ๋ชจ๋ x์ ๊ฐ๊น์์ง๋ฉฐ F(x) = H(x) - x ์ด๋ฏ๋ก F(x)๋ฅผ 0๊ณผ ๊ฐ๊น๊ฒ ํ๋ค๋ ๋ง์ H(x) - x๋ฅผ 0๊ณผ ๊ฐ๊น๊ฒ ํ๋ ๋ง๊ณผ ๋์ผํ ์๋ฏธ๋ฅผ ์ง๋๋๋ค(์ด๋ฅผ identity mapping์ด๋ผ ํจ). ์ฌ๊ธฐ์ H(x) - x๋ฅผ Residual์ด๋ผ๊ณ ํจ
- weight laeyr๋ฅผ ํต๊ณผํ F(x)์ weight layer๋ฅผ ํต๊ณผํ์ง ์์ x์ ํฉ์ ๋ ผ๋ฌธ์์๋ Residual Mapping์ด๋ผ๊ณ ํ๋ฉฐ, ์ ๊ทธ๋ฆผ์ ๊ตฌ์กฐ๋ฅผ Residual Block์ด๋ผ๊ณ ํ๊ณ ์ด๊ฒ์ด ์์ด๋ฉด Residual Network ์ฆ, ResNet์ด๋ผ๊ณ ํจ
- Residual Mapping์ ๊ฐ๋จํ์ง๋ง Overfitting, Gradient vanishing ๋ฌธ์ ๊ฐ ํด๊ฒฐ๋์ด ์ฑ๋ฅ์ด ํฅ์๋จ.
์ฐธ๊ณ
- [Blog] [CNN Networks] 4. ResNet: https://velog.io/@woojinn8/CNN-Networks-4.-ResNet
- [Blog] Inception Module๊ณผ GoogLeNet: https://gaussian37.github.io/dl-concept-inception/
- [Blog] ResNet ๊ตฌ์กฐ ์ดํด ๋ฐ ๊ตฌํ: https://wjunsea.tistory.com/99