- 1. Basic Vision Model
- [12′ NIPS] ImageNet Classification with Deep Convolutional Neural Networks (AlexNet) 핵심 리뷰
- [15′ CVPR] Going deeper with convolutions (GoogleNet, inception) 핵심 리뷰
- [15′ ICLR] VERY DEEP CONVOLUTIONAL NETWORKS FOR LARGE-SCALE IMAGE RECOGNITION (VGGNet)
- [15′ ICML] Batch Normalization: Accelerating Deep Network Training by Reducing Internal Covariate Shift
- [16′ CVPR] Deep Residual Learning for Image Recognition (ResNet)
- 2. Vision Model 응용 버전
- [16′ BMVC] Wide ResNet : Wide Residual Networks
- [17′ CVPR] Xception: Deep Learning with Depthwise Separable Convolutions
- [17′ ICLR] FRACTALNET: ULTRA-DEEP NEURAL NETWORKS WITHOUT RESIDUALS
- [17′ CVPR] Densely Connected Convolutional Networks (DenseNet)
- [17′ CVPR] Deep Pyramidal Residual Networks (PyramidNet)
- [17′ CVPR] Active Convolution: Learning the Shape of Convolution for Image Classification
- [17′ CVPR] Residual Attention Network for Image Classification
- [18′ CVPR] SENet : Squeeze and excitation networks
- [18′ BMVC] BAM: Bottleneck Attention Module
- [18′ ECCV] CBAM : convolutional block attention module
- [19′ CVPR] Selective Kernel Networks (SKNet)
- [19′ ICML] EfficientNet : Rethinking Model Scaling for Convolutional Neural Networks
- [21′ ICLR] Vision Transformer : AN IMAGE IS WORTH 16X16 WORDS: TRANSFORMERS FOR IMAGE RECOGNITION AT SCALE
- [21′ NIPS] MLP-Mixer: An all-MLP Architecture for Vision
- [논문 리뷰] KAN: Kolmogorov–Arnold Networks
내용 요약
PyramidNet 이전 방식의 문제점에 대해 살펴봅니다. 이어서 PyramidNet의 제안 방법을 살펴봅니다. 마지막으로 실험 결과를 통해 제안 방법의 효과를 확인합니다.
1. 들어가며
이번 글에서는 2017 CVPR에 발표된 Deep Pyramidal Residual Networks 논문을 리뷰합니다. 이 논문은 PyramidNet 이라고 불리며, 이번 글에서도 PyramidNet 이라고 지칭하겠습니다.
2. 기존 방식의 문제점
Wide ResNet은 딥러닝 모델의 깊이(Depth) 뿐만 아니라 너비(Width)도 중요하다는 사실을 증명했습니다. 이때 Wide ResNet이 어떻게 연산 되는지를 간단히 나타내면 다음과 같습니다.
Convolution 연산 과정에서는 Feature Map의 Width가 유지되고, Pooling 연산 과정에서만 Feature Map의 사이즈가 줄어들면서 Width는 증가하는 모습을 볼 수 있습니다.
이에 저자들은 이런 의문을 제기합니다. “Width가 중요하다면서 Wide ResNet은 왜 Width의 증가를 충분히 활용하지 않지? Width의 증가 기능을 최대한 많이 적용하면 어떻게 될까?”
3. 제안 방법
이러한 의문을 해결하기 위한 저자들의 제안 방법을 살펴보겠습니다.
3-1. 매 연산마다 Width를 증가해주자
Wide ResNet에서 Convolution 연산마다 Width가 증가하지 않는다는 게 의문점이었으므로 간단하게 매 Convolution 연산마다 Width가 증가하는 구조를 제안합니다. ResNet의 연산과 PyramidNet의 연산 과정을 Feature Map 간의 관계로 비교해보면 다음과 같습니다.
ResNet은 Pooling 연산 과정에서만 Feature Map의 Width가 증가하는 반면, PyramidNet은 모든 Convolution, Pooling 연산마다 Width가 증가하는 모습을 볼 수 있습니다. Feature Map의 정보는 이 전 Feature Map의 정보들을 종합하여 재구성한 조금 더 상위 레벨의 개념이므로, 더 많은 종류의 개념이 필요할 것이고 (=더 큰 width가 필요할 것이고), 따라서 매 Layer마다 조금씩이라도 더 많은 Width를 갖게 해 주자는 아이디어라고 해석할 수 있습니다.
4. 효과
다음은 이렇게 제안한 방법의 효과에 대해 알아보겠습니다.
4-1. ImageNet 성능
ImageNet 데이터셋에 대한 Wide ResNet과 PyramidNet의 성능을 비교해보겠습니다.
위의 실험 결과를 보면 동등한 파라미터수를 갖는 Wide ResNet과 PyramidNet의 성능을 비교했을 때 PyramidNet의 성능이 더 좋은 모습을 볼 수 있습니다.