[논문리뷰]Deep Residual Learning for Image Recognition(2015), ResNet 리뷰
ResNet 은 2015년에 나온 CNN 모델로서, 현재도 다양한 분야에서 많이 쓰이는 모델입니다. 특히 ResNet 에서 처음 제안하고 사용한 Residual Learning 개념은 현재에도 다양하게 응용되고 있습니다. ResNet 논문을 리뷰해보겠습니다.
1. 초록
더 깊은 신경망은 훈련하기가 더 어렵습니다. 저희는 이전에 사용된 네트워크보다 훨씬 더 심층적인 네트워크를 쉽게 훈련할 수 있도록 residual learning framework를 제시합니다. 참조되지 않은 함수를 학습하는 대신 레이어 입력을 참조하여 잔여 함수를 학습하는 방식으로 레이어를 명시적으로 재구성합니다. 이러한 residual network가 더 쉽게 최적화할 수 있으며, 상당히 깊어진 심도를 통해 정확도를 높일 수 있음을 보여주는 포괄적인 경험적 증거를 제공합니다. ImageNet 데이터 세트에서 최대 152개 층의 깊이를 가진 잔여 네트워크를 평가했습니다.
깊이가 최대 152층-8배인 residual network 를 평가합니다. 이러한 residual nets의 앙상블은 ImageNet 테스트 세트에서 3.57%의 오류를 달성했습니다. 이 결과는 ILSVRC 2015 분류 과제에서 1위를 차지했습니다. 또한 100개와 1000개의 레이어가 있는 CIFAR-10에 대한 분석 결과도 제시합니다.
많은 시각 인식 작업에서 표현의 깊이는 매우 중요합니다. 매우 깊은 표현으로 인해 COCO 객체 감지 데이터 세트에서 28%의 상대적 개선 효과를 얻었습니다. 깊은 residual nets 은 ILSVRC 및 COCO 2015 대회1에 제출한 결과, 이미지넷 검출, 이미지넷 로컬라이제이션, COCO 검출, COCO 세분화 과제에서 1위를 차지할 수 있었던 기반이 되었습니다.
2. 소개

Deep Conv Neural network 는 CV 분야에 일대 혁신을 불러왔습니다. 그런데 레이어를 깊이 쌓을수록 gradient Vanishing 및 Exploding 문제가 발생하여 수렴을 방해했습니다.
이 두 가지 문제는 Normalized initialization 및 normalization layer 를 추가하는 것으로 해결할 수 있었지만 아직 문제가 하나 남아있었습니다. 정확도가 더 이상 향상되지 않고 Training Error 가 상승되는 문제였습니다. 이를 degradation 문제라 합니다.
이는 overfitting 에 의한 것이 아니며, 레이어가 추가될 수록 Training Error 가 커진다는 것은 철저하게 검증되었습니다. 위 그림이 예시입니다.
2. Residual network
2.1 Residual block

이 논문에서는 위 degradaion 문제를 Residual learning framework 를 도입하여 해결합니다. 위 구조를 $H(x)$ 라 하고, nonlinear 레이어를 $F(x)\,:=\,H(x)-x$ 라고 합니다.
Skip Connection 은 하나 이상의 레이어를 건너뛰는 연결 구조입니다. 단순히 x 의 identity 이고 레이어의 출력 $F(x)$ 에 추가됩니다. 이를 정리하면, 네트워크는 $H(x)=F(x)+x$ 으로 표현할 수 있습니다.
이 구조가 몇 개의 쌓인 레이어마다 적용되므로, 위 그림을 다시 표현하면
$$y=F(x,\,\{W_{i}\})+x$$
로 나타낼 수 있습니다. x 는 입력값이고 y 는 출력값입니다.
$F(x)$는 두 개의 레이어로 구성되어 있으므로 $F=W_{2}\sigma(W_{1}x)$ 로 표현할 수 있으며, $\sigma$ 는 ReLU 와 bias 를 뜻합니다. $F+x$ 는 skip connection 과 요소별 덧셈을 의미합니다.
위 식에서 x 와 F 의 Tensor 의 크기는 같아야 합니다. 그렇지 않을 경우 선형 projection $W_{s}$ 로 크기를 맞춰줄 수 있습니다. 이 경우 식은 다음과 같습니다.
$$y=F(x,\,\{W_{i}\})+W_{s}x$$
2.2 Deeper Bottleneck Architecture

이 논문에서 더 깊은 레이어를 쌓기 위해 'Bottleneck Architechture' 구조를 사용합니다. 이는 훈련 시간을 고려했기 때문이라 설명합니다.
각 residual funtion $F$ 마다 3개의 레이어를 사용하는데, 각각 1x1, 3x3, 1x1 convolusion 을 사용합니다.
- 1x1 conv layer 는 차원을 줄였다가 3x3 conv layer 를 통과한 이후 차원을 다시 늘리는(복원하는) 역할
- 3x3 은 작은 입력/출력 차원을 사용
여기서 identity shortcut 이 projection 으로 대체되면, 시간복잡도 및 모델 크기가 2배로 늘어나므로, identity shortcut 은 모델을 효율적으로 만들어 줍니다.
3. Network Architectures
3.1 Baselilne

ResNet 의 구조는 위 그림고 같습니다. ResNet 의 baseline 은 VGG net 에 영향을 받았습니다. 맨 오른쪽 Skip Connection 이 있는 구조가 ResNet 구조입니다.
Convolution Layer 대부분 3x3 필터를 사용하며 다음과 같은 디자인 규칙을 따릅니다.
1. feature map size 가 동일한 경우, 레이어는 동일한 피러를 가집니다.
2. feature map size 가 1/2 인 경우, 필터 수는 2배가 되며 레이어당 동일한 시간복잡도를 가집니다.
다운샘플링은 stride = 2 인 Convolution Layer 로 수행됩니다. 네트워크 마지막에 global average pooliing 을 한 뒤 1000-way fully-connected layer 와 softmax 가 있습니다.
Skip Connection 의 경우 input 과 output 이 같을 경우 identitiy 로 바로 연결되고, 차원이 증가하는 경우 0 을 padding 으로 하거나 1x1 convolution 을 사용하여 차원을 일치시킵니다.
3.2 Resnet 종류

ResNet 은 다음과 같은 구조를 가집니다.
18-layer 및 34-layer 는 기본 building block을 사용합니다. 50-layer 이상의 모델들은 bottleneck building block 을 사용합니다.
4. Implementation
다음과 같은 방법으로 모델을 훈련시켰습니다.
- Random Sample [256, 480]
- Random Crop 224x224
- Batch Normalization (각 convolusion layer 와 activation 사이)
- weight initialize
- mini batch size 16
- SGD
- learning rate 0.1 로 시작하여 오차가 정체되면 1/10
- $60\times10^{4}$ iteration
- weight decay 0.0001 momentum 0.9
- dropout 사용안함
테스트할 때는, standard 10-crop testing 을 사용하였습니다. 최적의 결과에 fully convolutional을 적용했고, multiple scale에 대해서 점수를 평균화 했습니다.
5. Experiment
5.1 Plain network vs Residual Network

Residual network 를 적용한 것과 적용하지 않은 plain network 의 error 를 비교하면 위 표와 같습니다.
Plain network 는 34-layer 가 18-layer 보다 error 가 높습니다. ResNet 의 경우는 정반대로 34-layer 의 error 가 더 낮습니다.


CIFAR-10 dataset 으로 테스트 한 결과 layer 가 깊어질수록 error 가 하락하는것을 알 수 있습니다.
다만 1000 layer 이상일 경우 오히려 약간 상승한 결과를 볼 수 있습니다.
'DeepLeaning > 이론' 카테고리의 다른 글
| [논문리뷰] A ConvNet for the 2020s, ConvNeXt 리뷰 (0) | 2023.08.02 |
|---|---|
| Transformer 와 Attention (2) (0) | 2023.06.29 |
| Transformer 와 Attention (1) (0) | 2023.06.29 |



