티스토리 뷰

목차
0. Abstract
1. Introduction
2. Deep Residual Learning
    2.1 Residual Learning
    2.2 Identity Mapping by Shortcuts
    2.3 Network Architectures
    2.4 Implementations
3. Experiments
    3.1 ImageNet Classfication
    3.2 CIFAR-10 and Analysis
    3.3 Object Detection on PASCAL and MS COCO

 

0. Abstract

 본 논문에서는 residual learning framework라는 개념을 제시함으로써 이전에 제안된 것보다 깊은 네트워크들도 더 쉽게 학습할 수 있도록 하였다. Residual network를 이용하는 것은 최적화를 쉽게 만들 뿐만 아니라 증가된 깊이에도 정확도를 높인다.

 ImageNet 데이터셋에 적용시켰을 때 VGG보다 깊은 모델임에도 불구하고 더 낮은 복잡도를 나타냈고, residual net의 앙상블은 테스트셋에 대한 error를 3.57%까지 줄였다. 또한, CIFAR-10, 100, 1000에도 적용시켰으며 COCO object detection 데이터셋에 적용시켰을 때는 28%의 향상된 성능을 보였다.

 

1. Introduction

많은 논문들에 의해 네트워크의 깊이는 매우 중요한 요소라는 것이 밝혀졌고, 실제로 ImageNet 데이터셋에 대해서 좋은 성능을 낸 모델들도 모두 깊이가 매우 깊은 모델이라는 것을 볼 수 있다. 하지만, 본 논문은 이에 대해 다음과 같은 의문을 제기하고 있다.

Is learning better networks as easy as stacking more layers?

 

1) Convergence Problem

네트워크 깊이와 관련해서 주목해서 보아야 할 악명 높은 문제는 vanishing/exploding gradients 문제로 초기부터 모델이 수렴하는 것을 방해한다. 하지만, 이 문제는 normalized initialization이나 intermediate normalization layers를 이용해서 해결 가능하다.

2) Degradation Problem

깊은 네트워크가 수렴하는 것이 가능해졌을 때 degradation 문제가 등장하였다. 이는 네트워크의 깊이가 증가할수록 정확도가 포화되며, 빠르게 저하되는 문제를 의미한다. 예상과는 다르게 degradation은 overfitting에 의해서 일어나는 것이 아니며, 더 많은 레이어를 추가하면 더 높은 training error로 이어지는 것을 볼 수 있다.

 

 위 그림은 20-layer와 56-layer 네트워크를 CIFAR-10에 적용시켰을 때의 결과를 나타내었다. 네트워크의 깊이가 더 깊어졌을 때 training error와 test error가 모두 높아진 것을 볼 수 있다.

 본 논문에서는 degradation problem을 해결하기 위한 방법으로 deep residual learning framework를 제안하였다. 기존에는 x를 H(x)로 직접적으로 mapping하는 방식이었다면 논문은 잔차인 F(x) = H(x) - x의 mapping을 fitting하도록 하는 방식을 소개한다. 이는 residual mapping이 기존 mapping 방식보다 최적화하기 쉽다는 것을 가정한다. 극단적으로 identity mapping이 최적이라고 하면 nonlinear layer를 쌓아서 identity mapping을 맞추는 것보다 잔차를 0으로 학습시키는 것이 더 쉬울 것이다.

 Residual learning은 위와 같은 형태로 이루어진다. Shortcut connections을 통해서 identity mapping을 수행하고 이 결과를 stacked layers의 결과와 더하게 된다. Identity shortcut connection은 추가적인 파라미터를 더하지도 않고 연산 복잡도를 늘리지도 않는다.

 본 논문에서는 ImageNet에 모델을 적용시킴으로써 다음과 같은 두 가지를 보여주고 있다.

1) 극단적으로 깊은 plain nets는 깊이가 증가할수록 training error가 증가하는 반면 residual nets는 최적화하기 쉽다.

2) Deep residual nets는 깊이가 증가할수록 정확도를 증가시킬 수 있다.

 CIFAR-10 데이터셋에 적용했을 때도 유사한 현상을 볼 수 있었다.

Residual Learning의 장점
- 별도의 추가적인 파라미터가 필요하지 않고 연산의 복잡도도 증가하지 않는다.
- 구현이 간단하고 학습이 쉽다.
- 깊이가 깊어질수록 높은 정확도를 보인다.
- CIFAR, ImageNet, COCO 데이터셋에 적용시켰을 때 모두 높은 정확도를 보였다.

 

2. Deep Residual Learning

2.1 Residual Learning

 다수의 nonlinear layer가 복잡한 함수를 점근적으로 근사할 수 있다고 가정하면 당연하게도 residual 함수에서도 H(x) - x를 점근적으로 근사할 수 있다. 따라서 기존 방식대로 H(x)를 근사하기 보다는 F(x) = H(x) - x를 근사하는 것이 좋은 방법이다. 추가적으로 더해지는 layer가 identity mapping이라면 더 깊은 모델은 최소한 더 얕은 모델에 비해 training error가 높아지지는 않을 것이다. 실제 상황에서 봤을 때는 최적의 솔루션이 identity mapping일 확률은 매우 적지만, 그럼에도 mapping 추가하는 것이 문제를 쉽게 해결하게 해주는 방향성 제시해준다.

 

2.2 Identity Mapping by Shortcuts

 본 논문에서 building block는 위 식과 같이 정의할 수 있다. 여기에서 x와 y는 각각 입력과 출력값이다. F 함수는 residual mapping을 나타낸다. F 함수를 씌운 항과 x를 더하는 연산는 element-wise addition이 일어난다. 앞서 설명하였듯이 shortcut connection은 추가적인 파라미터가 사용되지 않고 연산 복잡도도 증가시키지 않는다.

 

 위 식은 동일하게 building block을 정의하는 식인데 단지 x와 F의 차원을 맞춰주기 위한 항이 추가되었다고 보면 된다. 만약 입력과 출력의 차원이 다르다면 linear projection W_s를 이용해서 차원을 맞춰줄 수 있다.

 

2.3 Network Architectures

1) Plain Network

 모델의 베이스라인은 VGG를 기반으로 하고 있다. convolutional layer는 대부분 3 * 3 filter를 가지고 있으며 같은 output filter map size에 대해서는 같은 개수의 filter를 가지도록 하였다. 또한, 시간복잡도를 보존하기 위해서 feature map의 사이즈가 절반이 되면 filter의 수는 두 배가 되도록 하였다. Convolutional layer에 downsampling을 직접적으로 적용시켰고, 네트워크의 마지막 부분에 global average pooling layer와 fully connected layer를 통과시켰다. 이 모델은 VGG net에 비해서 적은 filter를 이용하고, 낮은 복잡도를 나타내는 것을 확인할 수 있다.

2) Residual Network

 위의 plain network에 shortcut connections를 추가한 네트워크이다. 이때 identity shortcut는 입력과 출력을 같은 차원으로 맞춰야 하는데 이때 두 가지 방법이 이용되었다. 첫 번째는 차원을 늘리기 위해서 추가적인 zero entries를 추가하여서 padding을 넣어주는 방법이다. 두 번째는 앞선 식에서 소개하였듯이 projection shortcut을 이용하는 방법이다.

 

2.4 Implementations

ImageNet 데이터셋에 적용시키기 위해서 다음과 같은 조건을 적용시켰다.

  • image resizing to 224 * 224
  • 모든 convolution 이후와 activation 전에 batch normalization 적용
  • SGD with mini batch 256
  • Learning rate 0.1, weight decay 0.0001, momentum 0.9
  • Dropout을 이용하지 않음

 

3. Experiments

3.1 ImageNet Classification

1) Plain Networks

 18-layer와 34-layer를 살펴보면 더 깊은 34-layer가 더 높은 validation error를 보인다. 이는 degradation problem에 의해서 발생하는 현상이라고 할 수 있는데, 18-layer가 34-layer의 일부분임에도 불구하고 학습의 모든 단계에서 34-layer가 training error가 더 큰 것을 볼 수 있다. 논문의 저자는 plain network가 batch normalization에 의해서 학습되었기 때문에 위 현상이 vanishing gradient에 의한 문제는 아닐 것이라고 주장한다. 또한, 역전파 기울기가 healthy norm을 가진다는 것도 보였기 때문에 순방향과 역방향 전파 모두 사라지지 않을 것이다.

2) Residual Networks

Plain net과 동일한 형태이지만 각각의 3 * 3 filter에 shortcut connection이 더해진 네트워크이다. 여기서 모든 shortcut에는 identity mapping을 이용하였고, 차원을 증가시킬 때는 zero padding을 사용하였다. 위에 주어진 표를 통해서 세 가지 사실을 발견할 수 있다.

  • 34-layer ResNet이 18-layer ResNet보다 낫다
    • 34-layer ResNet이 상당히 낮은 training error를 나타냈었다. 이를 통해서 깊이가 증가하는 상황에서도 degradation problem을 잘 해결한 것을 볼 수 있다. 
  • Plane network과 비교했을 때 34-layer가 top-1 error를 3.5% 감소시켰고, 성공적으로 training error를 감소시켰다.
    • 이를 통해서 매우 깊은 시스템에서 residual learing의 효과성을 검증할 수 있었다.
  • 18-layer plain/residual net이 상당히 정확하긴 하지만 18-layer ResNet이 더 빠르게 수렴한다.
    • ResNet은 빠른 시기에 수렴하게 만들어서 최적화를 더 쉽게 만들었다.

3) Identity vs Projection Shortcuts

 위 표에서는 세 가지 옵션을 비교하고 있다.

(A) 차원을 늘릴 때 zero-padding shortcut 이용

(B) 차원을 늘릴 때 projection shortcut을 이용하고 다른 shortcut은 identity 이용

(C) 모든 shortcut이 projection인 경우

 우선 3가지 방식이 모두 plain인 경우보다는 상당히 더 좋은 결과를 내는 것을 볼 수 있다. 이때 (A), (B), (C) 간에는 성능 차이가 미미한데 이는 degradation problem을 해결하는데 projection shortcut이 필수적이지 않은 것을 의미한다. 따라서 논문의 저자들은 시간, 공간 복잡도와 모델의 크기를 줄이기 위해서 논문의 나머지 부분에서 (C) 방식을 사용하지 않았다.

4) Deeper Bottleneck Architectures

 학습 시간에 대한 우려로부터 왼쪽의 building block을 오른쪽과 같이 bottleneck 형태로 수정하였다. 이는 각 residual function에 대해서 2개의 layer 대신에 3개의 layer를 쌓은 형태를 이용하였다. 이때 1 * 1 layer는 차원을 줄이거나 늘리는 역할을 통해서 3 * 3 layer에서 줄어든 차원에서 연산할 수 있게 한다.

 추가적인 파라미터가 필요하지 않은 identity shortcut은 bottleneck architecture에서 중요한 역할을 한다. identity shortcut이 두 개의 차원을 연결하는 역할을 하기 때문에 만약에 이를 projection으로 대체한다면 시간 복잡도와 모델의 크기가 두 배가 된다.

5) Application on different layers

  • 50-layer ResNet : 기존 34-layer에 3-layer bottleneck block을 추가하여서 50-layer ResNet을 만들었다. 이때 차원을 늘리기 위해서 옵션 (B)를 이용하였다.
  • 101-layer, 152-layer ResNet : 더 많은 3-layer block을 추가함으로써 101-layer와 152-layer를 만든다. 이때 152-layer ResNet은 깊이가 매우 증가했음에도 불구하고 VGG에 비해서 낮은 복잡도를 보였다는 점에서 유의미하다.

6) Comparisons with State-of-the art Methods

 34-layer ResNet은 상당히 경쟁적인 정확도를 보였고, 152-layer ResNet은 top-5 validation error가 4.49%가 나왔다. 이 단일 모델에 의한 결과는 이전의 모든 앙상블에 의한 결과를 넘어섰다. 또한, 서로 다른 깊이의 6개의 모델을 결합한 결과 top-5 error가 3.57%가 나와서 ILSVRC 2015에서 1등을 차지하였다.

 

3.2 CIFAR-10 and Analysis

 CIFAR-10에도 적용시켜 본 결과를 보여주고 있다. 이때 CIFAR 데이터셋은 입력 이미지 크기가 32 * 32로 ImageNet에 비해 매우 작기 때문에 파라미터 수를 줄여서 별도의 ResNet을 고안해서 사용하였다.

 위 표에서 볼 수 있듯이 ResNet의 모델이 깊어질수록 더 좋은 성능을 나타냈다. 이때 1000개의 layer에 대해서도 실험을 진행해보았는데 최적화 과정에서는 문제가 없었지만 성능이 110-layer 모델보다 상당히 좋지 않은 것을 볼 수 있다. 이는 overfitting이 발생해서 생긴 문제로 여전히 매우 깊은 모델에 대해서는 추가적인 연구가 필요하다고 설명하고 있다.

 

3.3 Object Detection on PASCAL and MS COCO

 본 논문에서 이용한 방식은 다른 recognition task에서도 좋은 성능을 보였다. 위의 두 표에서 PASCAL VOC와 COCO 데이터셋에 모델을 적용시켰을 때의 결과를 볼 수 있다. 여기서 주목해서 봐야하는 것은 VGG-16을 ResNet으로 대체했을 때의 성능 향상이다.