๐ Deep Residual Learning for Image Recognition
Authors: Kaiming He, Xiangyu Zhang, Shaoqing Ren, Jian Sun Affiliation: Microsoft Research, Xiโan Jiaotong University Conference: (1449673200000) DOI: 10.48550/arXiv.1512.03385
- Keywords: [Residual, ]
์ฐ๊ตฌ ๋ฐฐ๊ฒฝ

โIs learning better networks as easy as stacking more layers?โ (๋คํธ์ํฌ๋ฅผ ๊น๊ฒ ์๊ธฐ๋ง ํ๋ฉด ์ฑ๋ฅ์ด ์ข์์ง๊น?)
- Xavier/He ์ด๊ธฐํ, BatchNorm ๋ฑ์ผ๋ก Vanishing/Exploding์ ์ด๋ ์ ๋ ํด๊ฒฐ
- ๊ทธ๋ฌ๋ ๊น์ด์ง์๋ก ์ฑ๋ฅ์ด ๋จ์ด์ง๋ ๋ฌธ์ (degradation) ๋ ์ฌ์ ํ ํด๊ฒฐ๋์ง ์์
- ์์ ๋คํธ์ํฌ์ ์ต์ ํด๋ฅผ ๊น์ ๋คํธ์ํฌ๋ ๊ตฌํํ ์ ์์์ด ๋ณด์ฅ๋๋๋ฐ,
- ์ค์ ๋ก๋ ๊น์์๋ก ํ๋ จ ์ค์ฐจ๊ฐ ์ฆ๊ฐํ๋ Degradation Problem โ ์ด ๋ชจ์์ด ResNet์ ์ถ๋ฐ์ .
์ฃผ์ ์์ด๋์ด
Residual Learning์ผ๋ก ์ต์ ํ ๋์ด๋ ํด๊ฒฐ Identity Shortcut์ผ๋ก gradient ํ๋ฆ ๋ฌธ์ ํด๊ฒฐ Bottleneck Architerture๋ก FLOPs ๊ฐ์๋ก ๊น์ด ํ์ฅ > ์ฑ๋ฅ ํฅ์
Residual learning์ ์ดํด
์๋ก์ด ๋ ์ด์ด๊ฐ ์ํํด์ผ ํ ๋ชฉํ ๊ฐ์ : ํญ๋ฑํจ์
๊ธฐ์กด CNN
- ๋ฌธ์ ์ํฉ
- ๋คํธ์ํฌ๋ ํญ๋ฑํจ์(identity function) ๋ฅผ ์ง์ ๊ตฌํํด์ผ ํจ.
- ๋คํธ์ํฌ ๊ตฌ์ฑ: Conv โ BN โ ReLU โ Conv โฆ ๊ฐ์ ๋น์ ํ ์คํ
- ํญ๋ฑํจ์๋ฅผ ์ด๋ฐ ๋น์ ํ ์กฐํฉ์ผ๋ก ์ ํํ ๊ตฌํํ๋ ๊ฒ์ ๋งค์ฐ ์ด๋ ค์ด ์ต์ ํ ๋ฌธ์ .
- ์ ์ด๋ ค์ด๊ฐ?
- ํ๋ผ๋ฏธํฐ๊ฐ ์กฐ๊ธ๋ง ๋ณํด๋ ์ ๋ ฅ ๊ฐ ์ฝ๊ฒ ์๊ณก๋จ
- ๊น์ ๋ ์ด์ด์ผ์๋ก ํญ๋ฑํจ์ ์ ์ง๊ฐ ๊ฑฐ์ ๋ถ๊ฐ๋ฅ
- ์ญ์ ํ๊ฐ ํญ๋ฑํจ์ ํด์ ์๋ ดํ๊ธฐ ๋งค์ฐ ์ด๋ ค์ โ ๊น์ ๋น์ ํ ๋คํธ์ํฌ์๊ฒ โ๊ทธ๋ฅ ์๋ฌด๊ฒ๋ ํ์ง ๋ง๋ผโ๋ ์๊ตฌ๋ ๊ทน๋๋ก ๋์ด๋๊ฐ ๋์.
ResNet
- ResNet์
- /
- ๋ชฉํ ํจ์๊ฐ ๋ผ๋ฉด,
์๋ฏธ
-
๋ ์ด์ด๋ ํญ๋ฑํจ์ ์ ์ฒด๋ฅผ ๋ง๋๋ ๋์ ๋จ์ํ ์ถ๋ ฅ์ 0์ผ๋ก ๋ง๋๋ ๊ฒ๋ง ํ์ตํ๋ฉด ๋จ.
-
ํ๋ ์ด๊ธฐํ๋ ๋ชจ๋ weight๋ฅผ 0 ๊ทผ์ฒ์ ์์ ๊ฐ ์ผ๋ก ๋ .
- Xavier/He ์ด๊ธฐํ๋ ๋๋ถ๋ถ์ ๊ฐ์ค์น๊ฐ ์ด๋ฏธ 0 ๊ทผ์ฒ
- ๋ฐ๋ผ์ Residual block์ ์ด๊น๊ฐ์ ์์ฐ์ค๋ฝ๊ฒ โ ์ฆ, ์ด๋ฏธ ํญ๋ฑํจ์์ ๋งค์ฐ ๊ฐ๊น์ด ์ํ๋ก ์์
-
ํ๋ผ๋ฏธํฐ๋ฅผ ๊ทผ์ฒ๋ก ๋๋ ๊ฒ์ด ํจ์ฌ ์ฌ์ โ ์ต์ ํ ๋๋ ๋ํญ ๊ฐ์.
๊ธฐ์กด ๋ฐฉ์
- ์๊ตฌ: โ๋น์ ํ ๋ ์ด์ด ์คํ์ผ๋ก ๋ณต์กํ ํญ๋ฑํจ์ ๋ฅผ ๊ตฌํํ๋ผ.โ
- ๊ฒฐ๊ณผ: ๊ทน๋๋ก ์ด๋ ค์ด ์ต์ ํ ๋ฌธ์
Residual ๋ฐฉ์
- ์๊ตฌ: โ์์ฐจ ๋ฅผ ์ผ๋ก ๋ง๋ค์ด๋ผ.โ
- ๊ฒฐ๊ณผ: ํ๋ผ๋ฏธํฐ๋ฅผ ๊ทผ์ฒ์ ์์น์ํค๋ฉด ๋จ โ ๋งค์ฐ ์ฌ์
์์ฝ
- ๋น์ ํ ๋ ์ด์ด ์คํ์๊ฒ ํญ๋ฑํจ์ ๋ฅผ ๋ง๋ค๊ฒ ํ๋ ๊ฒ์ ์ด๋ ต๋ค.
- ์์ฐจ ๋ฅผ ์ผ๋ก ๋ง๋ค๊ฒ ํ๋ ๊ฒ์ ์๋์ ์ผ๋ก ์ฝ๋ค.
โ ๊ทธ๋์ ResNet์ ๋งค์ฐ ๊น์ด๋ ํ์ต์ด ์๋จ.
Identity Shortcut
- Shortcut connection์ ์ ๋ ฅ ๋ฅผ ๊ทธ๋๋ก ๋ค์ ๋ธ๋ก์ผ๋ก ์ ๋ฌํ๋ ๊ฒฝ๋ก.
- ํ๋ผ๋ฏธํฐ๊ฐ ์๋ ํญ๋ฑ ๋งตํ(identity mapping) ์ด๋ฏ๋ก ์ฐ์ฐ๋ ์ฆ๊ฐ ์์.
- Residual block์ ์ถ๋ ฅ์ ์ผ๋ก ๊ณ์ฐ๋จ.
์ ํ์ํ๊ฐ?
- ํญ๋ฑํจ์๋ฅผ โ๊ตฌ์กฐ์ ์ผ๋กโ ์ฝ๊ฒ ๋ง๋ค์ด์ ์ต์ ํ๊ฐ ์ฌ์์ง
- ๊ธฐ์กด CNN์ ๋น์ ํ ์กฐํฉ์ผ๋ก ๋ฅผ ๋ง๋ค์ด์ผ ํ๋ฏ๋ก ์ด๋ ค์
- identity shortcut์ ๋ฅผ ๊ทธ๋๋ก ์ ๋ฌํจ์ผ๋ก์จ
- ํญ๋ฑํจ์๋ฅผ ๋คํธ์ํฌ ๊ตฌ์กฐ ์ฐจ์์์ ๋ณด์ฅ
- โ Residual block์ด โ ๊ทธ๋๋ก ์ ๋ฌ + ์์ ๋ณํ โ๋ง ํ์ตํ๋ฉด ๋จ
- Gradient ํ๋ฆ์ ์ง์ ์ ๋ฌํ์ฌ ๊น์ด์ ธ๋ ํ์ต์ด ๋ง๊ฐ์ง์ง ์์
- ์ญ์ ํ ์ gradient๊ฐ shortcut์ ํตํด ์๋์ฒ๋ผ ํ๋ฆ (BN, ReLU์ ๋ํจ์ X)
- ์ด๊ธฐํ ์์ ์์๋ ์ด๋ฏ๋ก
gradient โ gradient๊ฐ ์์ค๋์ง ์๊ณ , ๊น์ ๋คํธ์ํฌ๋ ์์ ์ ์ผ๋ก ํ์ต๋จ - ์ดํ ํ์ต์ด ์งํ๋๋ฉด์ ๋ ํ์ํ residual ๊ฐ์ ํ์ต
Shortcut ์ต์ (Dimension mismatch ์ฒ๋ฆฌ)
- Option A โ Zero-padding identity shortcut
- ์ฐจ์์ด ๋์ด๋ ๋ ๋ถ์กฑํ ์ฑ๋์ 0์ผ๋ก ์ฑ์ฐ๊ธฐ
- (0์ผ๋ก ์ฑ์ด ๊ณณ์ residual learning X)
- ํ๋ผ๋ฏธํฐ๊ฐ ์๋ ์์ ํ identity mapping
- ๊ฐ์ฅ ๊ฐ๋ณ๊ณ ๋จ์ํ ๋ฐฉ์
- ์ฐจ์์ด ๋์ด๋ ๋ ๋ถ์กฑํ ์ฑ๋์ 0์ผ๋ก ์ฑ์ฐ๊ธฐ
- Option B โ Projection shortcut (1ร1 convolution)
- ์ ๋ ฅ/์ถ๋ ฅ ์ฑ๋์ด ๋ค๋ฅผ ๋ 1ร1 Conv๋ก projection์ ์ํํ์ฌ shape matching
- projection layer๊ฐ ์ถ๊ฐ๋๋ฏ๋ก ์ฐ์ฐ๋์ด ์ํญ ์ฆ๊ฐ
- Option C โ Full projection shortcut
- ๋ชจ๋ shortcut์ 1ร1 Conv projection์ผ๋ก ๋์ฒดํ๋ ๋ฐฉ์
- projection layer ์๊ฐ ๋ง์์ ธ FLOPsยท๋ฉ๋ชจ๋ฆฌ ๋ชจ๋ ํฌ๊ฒ ์ฆ๊ฐ
์ธ ์ต์ ๋ชจ๋ plain network๋ณด๋ค ํจ์ฌ ์ข์ ์ฑ๋ฅ์ ๋ณด์ด๋ฉฐ,
- A๋ ๊ฐ์ฅ ๊ฐ๋ณ๊ณ ๊ธฐ๋ณธ
- B๋ ์ฝ๊ฐ ๋ ์ ํ,
- C๋ ๋ฏธ์ธํ๊ฒ ๋ ์ ํํ์ง๋ง ๋นํจ์จ ResNet์ A/B ๊ธฐ๋ฐ์ โResidual + Identity Shortcutโ ๊ตฌ์กฐ
์์ฝ
- ResNet์ ํต์ฌ์ โResidual + Identity Shortcutโ ์กฐํฉ
- Residual ๊ฐ๋ ๊ณผ Shortcut์ผ๋ก ๊ตฌํ
- Projection์ ์ฐจ์ ๋ง์ถ๊ธฐ๊ฐ ํ์ํ ๊ฒฝ์ฐ์๋ง ๋ณด์กฐ์ ์ผ๋ก ์ฌ์ฉ
Bottleneck Architecture
ํต์ฌ ์์ด๋์ด
3ร3 Conv๋ ์ฐ์ฐ๋์ด ๊ฐ์ฅ ํฌ๋ฏ๋ก,
์ฑ๋์ ์ค์ฌ์ ์ฐ์ฐํ ๋ค ๋ค์ ๋ณต์
- Conv์ ์ฐ์ฐ๋(FLOPs)์
- [>] ์ฑ๋ ์(C)๊ฐ ํด์๋ก FLOPs๊ฐ ์ ๋น๋กํ์ฌ ์ฆ๊ฐ
๊ตฌ์กฐ
- 1ร1 Conv (์ฐจ์ ์ถ์)
- 256 โ 64
- ์ฐ์ฐ๋ ๊ฑฐ์ ์์
- 3ร3 Conv (ํน์ง ์ถ์ถ)
- ์ถ์๋ ์ฑ๋(64ch)์์ ์ฐ์ฐ ์ํ
- 1ร1 Conv (์ฐจ์ ๋ณต์)
- 64 โ 256
- ์๋ ์ฑ๋ ์๋ก ๋๋๋ฆผ
๋ฐฉ๋ฒ๋ก
- ๋ชจ๋ธ ๊ตฌ์กฐ

- Stem (์
๋ ฅ ์ฒ๋ฆฌ ๊ตฌ๊ฐ)
๊ทธ๋ฆผ์ ZERO PAD โ CONV โ BN โ ReLU โ MAX POOL
์ด ๋ถ๋ถ์ Stage๋ก ๋ณด๊ธฐ ์ด์ ์ ์ด๊ธฐ ์ฒ๋ฆฌ ๋จ๊ณ
- 7ร7 Conv (stride=2) โ ํน์ง ์ถ์ถ
- BatchNorm, ReLU โ ์ ๊ทํ + ๋น์ ํ ๋ณํ
- MaxPool โ ๊ณต๊ฐ ํฌ๊ธฐ ์ ๋ฐ์ผ๋ก ์ถ์ ์ดํ Stage์์ bottleneck block์ด ์ฒ๋ฆฌํ๊ธฐ ์ข์ ํฌ๊ธฐ๋ก ์ด๊ธฐ Feature Extractor ์ถ๋ ฅ: 56ร56, 64ch
- Stage 2 (conv2_x): Residual + Bottleneck
- CONV BLOCK (ํ๋์) = Bottleneck block + Projection shortcut
- Stage๊ฐ ๋ฐ๋๋ ์๊ฐ(ํด์๋/์ฑ๋ ์ฆ๊ฐ) โ dimension mismatch ๋ฐ์
- shortcut์ด x๋ฅผ ๊ทธ๋๋ก ์ ๋ฌํ ์ ์์
- ๋ฐ๋ผ์ projection shortcut(1ร1 conv)์ด ํ์ํ block์ด CONV BLOCK
- ID BLOCK ร2 (๋นจ๊ฐ์) = Bottleneck block + Identity shortcut
- ์ ๋ ฅ/์ถ๋ ฅ dimension์ด ๊ฐ๊ธฐ ๋๋ฌธ์ ์ ํํ Identity shortcut๋ง ์ฌ์ฉ โ ID BLOCK
- CONV BLOCK (ํ๋์) = Bottleneck block + Projection shortcut
- Stage 3,4,5
- Stage 3: CONV BLOCK + ID BLOCK ร3
- Stage 4: CONV BLOCK + ID BLOCK ร5
- Stage 5: CONV BLOCK + ID BLOCK ร2
- Head (์ถ๋ ฅ ์ฒ๋ฆฌ ๊ตฌ๊ฐ)
- AVG POOL (Global Average Pooling)
- Flatten (์๋ต ๊ฐ๋ฅ)
- FC (Fully Connected Layer)
- Softmax
- output - Final prediction
Stage โํด์๋(spatial size)ยท์ฑ๋(channel) ์ ์ง๋๋ Block ๋ฌถ์โ
- ์ฒซ block: CONV BLOCK (projection shortcut)
โ Stage ์ ํ์ผ๋ก ์ธํด dimension mismatch ํด๊ฒฐ - ๋๋จธ์ง block๋ค: ID BLOCK (identity shortcut)
โ block ๋ด๋ถ์์๋ ์ฑ๋/ํด์๋ ๋ณํ์ง ์์
โ shortcut์ด ๊ทธ๋๋ก x๋ฅผ ์ ๋ฌํด๋ ์ฐจ์ OK Block ๋ด๋ถ ๊ตฌ์กฐ - CONV BLOCK / ID BLOCK ๋ด๋ถ๋ Bottleneck ๊ตฌ์กฐ 1ร1 Conv (์ถ์) โ 3ร3 Conv โ 1ร1 Conv (๋ณต์)
- โ์ ๋ ฅ๊ณผ ์ถ๋ ฅ ์ฑ๋์ ํญ์ ๋์ผโ
์์ฝ
- Stage๋ ์ฌ๋ฌ Residual Block๋ค์ ๋ฌถ์
- ์ฒซ block์ projection shortcut์ด ํ์ํ์ฌ CONV BLOCK
- ๋๋จธ์ง๋ identity shortcut์ผ๋ก ID BLOCK
- ๋ชจ๋ block ๋ด๋ถ๋ Bottleneck ๊ตฌ์กฐ
- Stage๊ฐ ๋ฐ๋ ๋ dimension mismatch๊ฐ ์๊น
-
๋คํธ์ํฌ ๊ตฌ์ฑ ์์ Batch Normalization He Initialization Global Average Pooling Zero-padding identity shortcut Fully convolutional inference
-
ํ์ต ๊ตฌ์ฑ ๋ฐ์ดํฐ ์ฆ๊ฐ ๋ฐฉ๋ฒ Optimizer์ ํ์ดํผํ๋ผ๋ฏธํฐ Learning rate ์ค์ผ์ค Dropout ๋ฏธ์ฌ์ฉ Multi-scale testing
์คํ ๊ฒฐ๊ณผ ๋ฐ ๋ถ์
Plain vs Residual ๋น๊ต (18/34-layer) Degradation ๋ฌธ์ ์๊ฐํ(Figure 4) Shortcut ์ต์ (A/B/C) ์คํ ๊ฒฐ๊ณผ Bottleneck ๊น์ด ์ฆ๊ฐ(50/101/152-layer) ์ฑ๋ฅ SOTA ๋น๊ต(ILSVRC 2015)
๊ฒฐ๋ก ๋ฐ ์์ฌ์
Residual Learning์ ์ํฅ Shortcut์ ๋ณธ์ง์ ์์ ๊น์ ๋คํธ์ํฌ ์ค๊ณ์ ๋ํ ์๋ก์ด ๊ธฐ์ค ํ์ ์ฐ๊ตฌ(Pre-activation ResNet ๋ฑ)๋ก ์ด์ด์ง ํ๋ฆ
๊ฐ์ธ ์ฝ๋ฉํธ
-
์ดํด๊ฐ ์ด๋ ค์ ๋ ๋ถ๋ถ
-
์ถ๊ฐ๋ก ์ฐพ์๋ณผ ๊ฐ๋ (๋ ผ๋ฌธ ๋ด ์ฉ์ดยท์ฐธ๊ณ ๋ฌธํ ๋ฑ)
- Pre-activation (later variant)
-
์ถ๊ฐ ์ฐธ๊ณ ํ ๋ ผ๋ฌธ (1) Normalized Initialization ๊ณ์ด Xavier Initialization Glorot & Bengio โ โUnderstanding the Difficulty of Training Deep Feedforward Neural Networksโ (2010)
He Initialization (ReLU ์ต์ ํ) He et al. โ โDelving Deep into Rectifiers: Surpassing Human-Level Performance on ImageNet Classificationโ (2015)
(2) Intermediate Normalization Layers ๊ณ์ด Batch Normalization Ioffe & Szegedy โ โBatch Normalization: Accelerating Deep Network Training by Reducing Internal Covariate Shiftโ (2015)
๋ฉ๋ชจ
โ x = ๋ธ๋ก์ ์ ๋ ฅ(feature map)
- ์ด์ ๋ ์ด์ด์์ ๋์ด์จ ๊ฐ
- โ์๋ณธ ์ ๋ณดโ
โ F(x) = Residual ํจ์๊ฐ ํ์ตํด์ผ ํ ๊ฒ
- ๋ธ๋ก ๋ด๋ถ ๋ ์ด์ด(Conv-BN-ReLU-Convโฆ)๊ฐ ๋ง๋ค์ด๋ธ ๋ณํ
- ์ฆ, ํ์ต ๊ฐ๋ฅํ ๋ถ๋ถ
- ์ด๊ธฐํ ๋๋ฌธ์ ์ฒ์์๋ F(x) โ 0
โ H(x) = ๋ธ๋ก์ ์ ์ฒด ์ถ๋ ฅ(๋ชฉํ ํจ์)
- ์ด ๋ธ๋ก์ด **์ต์ข ์ ์ผ๋ก ํํํด์ผ ํ๋ ํจ์
| ์ฉ์ด | ์๋ฏธ | ๋๊ฐ ์ ํ๋๊ฐ |
|---|---|---|
| x | ์ ๋ ฅ | ์ด์ ๋ ์ด์ด๊ฐ ์ถ๋ ฅํ feature |
| F(x) | ํ์ตํด์ผ ํ๋ โ๋ณํ๋โ | ๋คํธ์ํฌ(ํ์ต) |
| H(x) | ๋ธ๋ก์ด ์ต์ข ์ ์ผ๋ก ํํํด์ผ ํ๋ ๋ชฉํ ํจ์ | ๋ฐ์ดํฐ/ํ์ต ๋ชฉ์ |
-
๋ฅ๋ฌ๋ ์ด๊ธฐ์๋ Vanishing/Exploding ๋๋ฌธ์ ๊น๊ฒ ์๊ธฐ ์ด๋ ค์. โ Xavier/He ์ด๊ธฐํ, BatchNorm ๋๋ถ์ 20~30์ธต์ ํ์ต ๊ฐ๋ฅ.
-
๊ทธ๋ฐ๋ฐ ๊น๊ฒ ์์ผ๋ฉด ์ฑ๋ฅ์ด ์ข์์ ธ์ผ ํ๋๋ฐ, ์ค์ ๋ก๋ deeper model์ด shallower model๋ณด๋ค ํ๋ จ ์ค์ฐจ๊ฐ ๋ ์ปค์ง๋ โDegradation Problemโ์ด ๋ฐ์.
-
๊น์ ์ ๊ฒฝ๋ง์ ํญ๋ฑํจ์ H(x)=x๋ฅผ ์ง์ ๊ตฌํํ๊ธฐ ๋งค์ฐ ์ด๋ ค์. โ ๋น์ ํ ์กฐํฉ์ผ๋ก x๋ฅผ ๊ทธ๋๋ก ๋ด๋ณด๋ด๋ ๊ฒ์ด ๋ณต์กํจ. โ ์ด๊ธฐํ๋ F(x)=0์ผ๋ก ๊ฐ๊ธฐ ์ฝ๊ฒ ํด์ฃผ์ง๋ง, H(x)=x ์์ฒด๋ ์ด๋ ค์.
-
Residual์ ๋์ . H(x)=F(x)+x ๋ก ๋ฐ๊พธ๋ฉด, F(x)=0์ด ์ต์ ํด๊ฐ ๋์ด ๊น์ ๋คํธ์ํฌ์์๋ ์ต์ ํ๊ฐ ๋งค์ฐ ์ฌ์.
-
Shortcut์ผ๋ก gradient๋ฅผ ์์ค ์์ด ๋ณด๋.
-
Bottleneck Architecture๋ก ์ฐ์ฐ๋ ๊ฐ์.