논문/Computer Vision

[논문] Deep Residual Learning for Image Recognition

guungyul 2025. 1. 18. 02:47

본 논문에서는 기존에 존재하던 네트워크들보다 훨씬 더 깊은 deep neural networks들도 쉽게 학습시킬 수 있는 residual learning framework를 제안한다. 이 기법은 layer들을 재구성해 input layer에 대한 residual function을 학습하도록 만든다. 본 논문에서는 이 residual network가 더 최적화하기 쉽고 늘어난 깊이로 높은 정확도를 얻을 수 있음을 실험적으로 보여준다.

 

1. Introduction

Deep convolutional neural networks는 이미지 분류에 큰 breakthrough를 가져왔다.

Network depth는 모델의 정확도를 높이는 아주 중요한 요소이다.

 

그럼 더 많은 layer를 쌓아 올리면 더 좋은 모델이 되는가? 라는 질문이 떠오른다.

  • 문제점: Vanishing/exploding gradients
    • 해결책: Normalized initialization, intermediate normalization layers
    • Network depth가 깊어질수록 정확도가 포화 상태에 으르고 으후 급격하게 저하되는 문제
    • 단순한 overfitting의 문제가 아님: 더 많은 layer를 추가할수록 training error 또한 증가다른 문제점: Degradation

 

본 논문에서는 이 degradation 문제를 deep residual learning framework로 해결한다.

  • 쌓여 있는 몇개의 layer를 underlying mapping에 직접적으로 맞추지 않는다
    • 대신 residual mapping에 맞춘다
  • Underlying mapping $\mathcal{H}$가 있다 가정한다
    • 우리는 residual mapping: $\mathcal{F}(\mathbf{x}) := \mathcal{H}(\mathbf{x}) - \mathbf{x}$을 맞춘다

핵심 가정: Residual mapping을 최적화 하는 것이 unreferenced mapping을 최적화 하는 것보다 쉬울 것이다.

 

구현 방법은 간단하다. "Shorcut connection"을 가진 feedforward neural network를 사용하면 된다.

  • 위 경우에는 identity mapping (input을 그대로 output에 더함)을 사용한다
  • 이 방법은 네트워크에 어떠한 complexity나 parameter도 추가하지 않는다

 

본 논문에서는 ImageNet 데이터셋을 이용한 실험을 통해 degradation 문제를 보여주고 제시된 기법을 평가한다.

 

 

 

2. Related Work

Residual Representations

VLAD (Vector of Locally Aggregated Descriptors)와 Fisher Vector

  • Vector quantization 작업에서 residual vector를 encoding 하는게 기존 vector를 encoding 하는 것 보다 더 효과적

Partial Differential Equations를 풀기 위한:

  • Multigrid method
    • 문제를 서로 다른 scale의 subproblem으로 바꿈. 각 subproblem은 각 scale의 residual solution을 구함.
  • Hierarchical Basis Preconditioning
    • 다른 두 scale의 residual vector들을 나타내는 변수에 의존

 

이런 residual을 이용한 방법들이 기존 방법들보다 훨씬 더 빠르게 수렴한다. 따라서 문제의 reformulation과 preconditioning은 최적화를 간단히 한다는 사실을 알 수 있다.

 

Shorcut Connections

Shortcut connection 기법은 예전부터 존재해왔다.

비슷한 시기에 연구된 "highway networks"에서는 gating function을 이용해 shorcut connetion을 만든다.

  • 본 눈문에서 제시된 방법은 추가 parameter를 사용하지 않고 항상 residual function을 학습한다는 차별점이 있다
  • Highway network는 depth가 증가해도 큰 정확도 향상을 보이지 않는다.

 

 

 

3. Deep Residual Learning

3.1 Residual Learning

가정

  • $\mathcal{H}(x)$가 여러개 쌓인 layer의 실제 mapping을 나타낸다고 가정해보자
    • 만약 여러개의 nonlinear layer가 이 underlying mapping을 나타낼 수 있다면
    • 똑같이 여러개의 layer가 residual function ($\mathcal{H}(x) - x$)를 나타낸다고 가정할 수 있다.

따라서 본 눈문에서는 모델이 residual function인 $\mathcal{F}(\mathbf{x}) := \mathcal{H}(\mathbf{x}) - \mathbf{x}$를 학습하도록 설계한다.

 

똑같은 underlying mapping을 나타내기 위한 접근법이지만 학습의 난이도는 다를 수 있다.

 

이 방법은 degradation 문제에서 나타나는 현상에서 motivated 됐다.

  • 더 깊은 layer가 더 낮은 training error를 가져야 하지만 그렇지 않다
  • 이는 여러개의 nonlinear layer를 사용했을 때 identity mapping을 얻기 어려워 하는 것일 수 있다
  • Residual learning에서는 모델이 간단하게 residual을 0으로 설정해 identity mapping을 얻을 수 있다

 

목표하는 function이 zero mapping보다 identity mapping에 더 가까우면 모델이 identity mapping에 기반하여 더 쉽게 perturbation을 찾을 수 있을 것이다.

 

 

3.2 Identity Mapping by Shorcuts

Figure 2에 설명되어 있듯이 여러개의 쌓인 layer 당 하나의 residual learning을 적용한다.

$$\mathbf{y} = \mathcal{F}(\mathbf{x}, {W_i}) + \mathbf{x}.$$

  • x, y: Input, output vector
  • $\mathcal{F}$: Residual mapping
  • $\mathcal{F} + x$: element-wise addition

덧셈 후 다시 nonlinearity를 적용한다.

  • $\sigma(y)$

위 shorcut connection에서는 추가 parameter도 computational complexity도 더해지지 않는다.

 

만약 $x$와 $\mathcal{F}$의 dimension이 다르다면 linear projection $W_s$를 사용한다.

$$\mathbf{y} = \mathcal{F}(\mathbf{x}, {W_i}) + W_s\mathbf{x}.$$

  • 같은 방식으로 첫번째 equation에도 square matrix를 사용한 projection을 추가할 수 있지만 유의미한 차이는 없다.

 

Residual function $\mathcal{F}$의 형식은 유연하다.

  • 2개 3개 layer당 하나의 shorcut connection을 추가할 수도 있고
  • 더 많은 layer를 한 묶음으로 사용할 수도 있다
  • 하지만 단 하나의 layer만 사용했을 때에는 residual function의 이점을 확인할 수 없었다

 

 

 

3.3 Network Architectures

다양한 plan과 residual net들을 실험해본 결과 일정한 현상을 관찰할 수 있다.

Plain Network

본 논문에서 사용된 plain baseline 모델은 VGG net으로부터 영감받았다.

Convolution layer들은 대부분 3x3 filter를 가진다.

추가적으로 두가지 설계 규칙을 따른다:

  • layer들이 같은 output feature map 크기를 가지면 같은 filter 수를 가진다
  • feature map 크기가 반이 되면 filter 수는 두배가 되어 time-complexity를 보존한다

Downsmapling은 stride 2 convolution layer를 통해 진행한다.

최종적으로 global average pooling, 1000-way fully-connected layer, 그리고 softmax로 결과를 얻는다.

 

Residual Network

위 plain network에 기반해 shorcut connection들을 추가한 residual network를 만든다.

Input과 output이 같은 dimension을 가진다면 identity shorcut을 사용하고

만약 dimensions가 증가하면 두가지 선택지가 있다:

  • Shortcut으로 여전히 identiy mapping을 진행한다. 대신 뒤에 0 entries padding을 추가해 dimension을 늘린다.
  • Projection을 사용해 output dimension과 match시킨다.

두 경우 모두에 shorcut이 서로 다른 크기의 feature map을 지나갈 때는 1x1 convolution을 stride 2로 적용시킨다.

 

 

3.4 Implementation

ImageNet을 사용한 구현 방법은 다음과 같다:

  • Scale 증강법을 활용해 이미지 크기를 재조정한다
    • 짧은 변을 [256, 480] 범위에서 무직위로 샘플링한 값을 사용한다. 
    • 224*224 크기의 이미지가 무작위로 샘플된다. 이때 per-pixel mean은 빼진다.
  • Standard color augmentation이 사용된다.
  • 각 convolution 후와 activation 전에 batch normalization을 적용한다.
  • Weights는 논문 Delving deep into rectifiers: Surpassing human-level performance on imagenet classification.에 소개된 방법으로 초기화한다.
  • SGD에 mini-bacth는 256를 사용한다.
  • Learning rate는 0.1부터 시작해 오류 정체 구간에서 10으로 나눈다.
  • 총 $60 \times 10^4$번 iteration을 학습한다.
  • Weight decay는 0.0001, momentum은 0.9로 설정한다.
  • Dropout은 사용하지 않는다.
  • Testing에서는 10-crop testing을 사용한다.
    • 가장 좋은 결과는 fully-convolutional form을 사용하고 여러 scale(shorter side:{224,256,384,480,640})의 점수를 평균을 냈을 때 얻었다.

 

 

 

4. Experiments

4.1 ImageNet Classification

모델은 ImageNet 2021 데이터셋을 이용해 평가한다.

  • 1.28 million 이미지로 학습, 50k validation 이미지, 100k 이미지로 테스트 사용

Plain Networks

먼저 18-layer와 34-layer plain net을 평가한다. (34-layer가 Figure 3 중간 네트워크, 18-layer는 비슷한 구조를 가짐)

 

테이블 2를 보면 34-layer plain net이 18-layer plain net보다 더 큰 에러를 가지고 있음을 보여준다.

이유를 찾기 위해 training 과정에서의 training고 validation 에러를 나타낸다. (얇은 선: training error, 굵은 선: validation error)

위 그래프는 degradation 문제를 보여준다.

  • 전체 training 과정에서 34-layer가 더 높은 training error를 가짐

 

최적화 문제를 분석해 보았을 때

  • 위 plain network들은 BN을 사용해 학습되었기 때문에 vanishing gradient 문제가 아니다.
  • 또한 backpropagation gradient들 또한 정상적인 크기를 가진다.

따라서 deep plain net들은 지수적으로 낮은 수렴 속도를 가지고 이것이 training error를 줄이는데에 영향을 준다 추측한다.

 

Residual Networks

Plain network의 baseline 구조에 각 3x3 filter pair마다 shortcut connection이 추가된 것을 볼 수 있다.

위 Table 2와 아래 그림은 identity mapping에 zero-padding을 사용한 결과들이다.

  • 따라서 parameter 수가 같다

Table 2와 위 그림으로 3가지 결론을 얻을 수 있다.

  • 첫번째로 34-layer ResNet이 18-layer Resnet보다 더 좋은 성능을 보인다.
    • 34-layer가 더 낮은 training error와 더 좋은 generalization을 보여준다.
  • 두번째로 Table 2에 따르면 plain net에 비해 top-1 error를 3.5% 가량 낮춘다.
    • 이는 residual learning의 효과를 검증해준다.
  • 마지막으로 18-layer plain과 residual network들은 비슷한 정확도를 보이지만 ResNet이 훨씬 더 빠르게 수렴한다.
    • "Overly deep"한 network가 아니더라도 효과적임을 보여준다.

 

 

Identity vs. Projection Shortcuts

위 실험 결과에서 parameter-free identity shortcut도 training을 돕는다는 것을 보여준다.

다음으로 projection shortcut을 조사해본다.

Table 3에서는 세가지 option을 비교한다

  • A: Zero-padding shorcuts (parameter free)
  • B: Projection shortcuts (for increasing dim) + identity (for identical dim)
  • C: All projection shortcuts

Table 3 결과를 보면 모든 option들이 plain 보다 좋은 성능을 보임을 나타낸다.

  • B는 A보다 더 높은 성능을 보여준다
    • 이는 zero-padded dimension들은 residual learning을 가지지 않기 때문이다.
  • C가 B보다 약간 더 높은 성능을 보여준다.
    • Extra parameter의 효과라 추측한다.
  • 결과적으로 A/B/C option의 성능이 크지 않기 때문에 projection은 residual learning에 필수가 아님을 보여준다.
  • 따라서 본 논문에서는 option C를 사용하지 않는다. (메모리와 복잡도 방면에서 불리함)

 

 

Deeper Bottleneck Architectures

다음으로 ImageNet을 위한 deeper net을 소개한다. 

  • 2개의 layer 대신 3개의 layer를 사용
  • 1x1 convolution을 사용해 차원을 줄이고 증가
  • 3x3 layer을 bottleneck으로 사용

 

Parameter-free identity shortcut은 이 bottlenect 구조에서 아주 중요한 역할을 한다.

만약 identity shortcut이 projection으로 바뀌면 time complexity와 모델 크기가 두배로 증가하게 된다.

  • 이는 shortcut이 high-dimensional (256) 한 부분을 연결하기 때문이다

 

50-layer ResNet

  • 34-layer ResNet의 2-layer block들을 모두 3-layer bottlenect block으로 대체 (Table 1 참고)
  • Option B 사용 (projection only for increasing dimension)

101-layer and 152-layer ResNet

  • 더 많은 3-layer block들을 사용해 구성 (Table 1 참고)
  • Depth가 장당히 깊어졌음에도 불구하고 VGG-16이나 19보다 더 낮은 복잡도를 가짐

 

제시된 50/101/152-layer ResNet들은 34-layer ResNet에 비해 상당히 높은 정확도를 보여준다.

Degradation 문제가 없기 때문에 depth가 늘어남에 따라 더 높은 정확도를 얻을 수 있는 것이다. (Table 3, 4)

 

Comparisons with State-of-the-art Methods

Table 4는 성능이 가장 좋은 이전 모델들과 비교를 한다.

34-layer ResNet은 비슷한 정확도를 보여주고 152-layer RestNet은 ensemble 기법을 사용한 모델들보다도 더 높은 single-model 정확도를 보여준다.

또한 서로 다른 depth를 가지는 6개의 모델을 사용한 emsemble 기법은 3.57% top-5 error로 ILSVRC 2015 1등을 수상하였다.

 

 

4.2 CIFAR-10 and Analysis

CIFAR-10 데이터셋

  • 50k training images
  • 10k test images
  • 10 classes

Plain/residual 구조는 Figure 3 중간/오른쪽 구조를 따른다.

Network input으로는 32x32 이미지에 per-pixel 평균을 뺀 값을 가진다.

모델 구조

  • 첫번째 layer는 3x3 covolution layer
  • 그 후 3x3 covolution를 각 feature map 크기 {32, 16, 8}에 사용하는 6n개의 stack된 layer
    • 각 feature map size 당 2n개의 layer
  • Subsampling은 stride 2 convolution으로 진행
  • 마지막에 global average, 10-way fully-connected layer, 그리고 softmax

Shorcut connection은 3x3 layer pair에 연결한다. (총 3n개의 shortcut, option A (zero-padding)사용)

 

Training

  • Weight decay 0.0001, momentum 0.9
  • ImageNet과 같은 weight initialization 기법과 BN 사용, dropout은 사용하지 않음
  • Mini-batch 크기 128
  • Learning rate 0.1로 시작, 32k, 48k iteration에 반으로 나눔
  • 총 64k iteration 학습

Data augmentation

  • 각 변마다 4 pixel padded
  • 32x32 crop을 padding 된 이미지나 horizontal flip된 이미지에서 무작위로 샘플링
  • Testing은 32x32 이미지를 그대로 사용

 

n = {3, 5, 7, 9}를 사용, 각각 20, 32, 44, 56-layer 네트워크를 구성한다.

Figure 6 왼쪽 그래프는 plain net의 경향을 보여준다.

  • Depth가 늘어날수록 training error가 늘어난다. (Degradation 문제)

Figure 6 중간 그래프는 ResNet의 경향을 보여준다.

  • Depth가 늘어날수록 training error는 줄어든다.

 

추가적으로 n = 18인 110-layer ResNet도 탐구한다.

초기 learning rate 0.1이 수렴하기에 너무 크기 때문에 error가 80% 이하로 떨어질때까지 (400 iterations) 0.01로 warm up 단계를 거치고 다시 0.1과 위에 설명된 schedule을 사용한다.

 

Figure 6 중간 그래프에 따르면 이 110-layer 네트워크도 잘 수렴하는 것을 볼 수 있다.

  • FitNet이나 Highway 같은 모델보다 더 적은 parameter 수로 비슷한 성능을 보이는 것을 알 수 있다.

 

 

Analysis of Layer Responses

Figure 7은 layer들의 response의 standard deviation들을 보여준다.

Response는 각 3x3 layer의 출력이고 BN 이후 nonlinearity 이전 상태이다.

 

Figure 7은 ResNet이 일반적으로 더 낮은 response를 가지는 것을 보여준다.

이는 이전 가설인 "Residual function들은 일반적으로 0에 더 가까울 것"을 검증한다.

더 깊은 ResNet 일수록 더 작은 크기를 가지는 것도 확인할 수 있다.

 

 

Exploring Over 1000 layers

n = 200인 1202-layer 네트워크를 탐구해본다.

 

이 모델은 optimization difficulty가 없었고 training error < 0.1%, test error 7.93%를 얻었다. (Table 6)

 

1202-layer 모델과 110-layer 모델의 training error는 비슷하지만 test 결과는 110-layer 네트워크가 훨씬 좋다.

이는 overfitting의 문제로 생각된다.

따라서 maxout이나 dropout 같은 regularization 기법을 사용해 더 좋은 결과를 얻을 수 있었다.

 

 

4.3 Object Detection on PASCAL and MS COCO

본 논문에서 제시된 모델들은 recognition 작업에도 좋은 일반화 성능을 보인다.

Faster R-CNN을 detection 기법으로 사용했고 결과는 Table 7, 8에서 보이는 바와 같다.