포스트

[Paper Review] Deep Residual Learning for Image Recognition

Source

  • CVPR 2016 Paper, Git
  • Kaiming He, Xiang
  • 10 Dec 2015
  • (UC San Diego, Facebook AI Research)

Summary

처음에는 이 논문의 내용을 단순히 residual function이 gradient의 backpropagation을 도와 깊은 network를 쌓을 수 있어서 좋다라고만 기억하고 있었다. 하지만 이 실험의 동기부분에서 생각해볼만한 부분이 많은 것 같다.

  1. shallow network에 layer를 추가로 쌓아 deep layer로 만들어도 deep layer의 성능이 안좋네?
  2. 추가로 쌓여진 layer가 identity mapping layer에서 출발해 새로운 mapping function을 학습한다고 하면 이 현상을 막을 수 있지 않을까?
  3. 그렇다면 identity mapping layer의 역할을 할 수 있도록 마지막에 input을 더해서 참조할 수 있도록 해주자.
  4. 그리고 stacked layer의 output이 단순히 0이 되면(weight가 0이면) identity mapping layer로 역할을 할 수 있을 것이다.
  5. 여기서 학습을 시작하면 stacked layer가 optimal function에 더 근사할 수 있을 것이다.

즉, deep layer로 gradient를 전달하는데 도움을 주기 위해 이 구조를 만든 것이 아니었다. 나는 뭔가 이 구조가 inductive bias를 주입하는 과정이랑 비슷하다고 생각한다. network의 목표를 명확히 설정하고 이를 돕기위한 구조적 장치를 도입한 것이기 때문이다.

그렇다면 우리가 이 논문을 읽으며 생각해봐야 할 것은 identity function을 근사하는 다른 방법은 없었을까? 하는 것인 것 같다. 이러한 방법이 구조적 장치든, 학습 방법이든간에 말이다.


Contents

0. Abstract

깊은 신경망은 학습하기가 더 어렵다. 우리는 기존의 network보다 더 깊은 network를 쉽게 학습하기 위한 residual learning framework를 제안한다. 우리는 layer를 layer inputs을 참조하는 residual function을 학습하도록 명시적으로 재구성한다. 우리는 이러한 residual network가 최적화하기 쉽고 depth를 증가시켜도 정확도를 향상시킬 수 있음을 실험적으로 증명하였다. 우리는 ImageNet dataset에서 152-layer를 사용해 residual net을 평가하였다. 이는 VGG보다 8배 깊지만 Complexity는 더 낮다. 이 residual net을 앙상블한 결과 ImageNet test set에서 3.57%의 error를 달성하였다. 이 결과는 ILSVRC 2015 Classification task에서 1등을 달성하였다. 우리는 또한 CIFAR-10에서 100개의 Layer와 1000개의 Layer에 대한 분석도 진행하였다.

Representatoin의 깊이는 많은 Visual recognition task에서 중요한 역할을 한다. 오로지 우리의 매우 깊은 표현력 덕분에 COCO Object Detection dataset에서 28%의 상대적 개선효과를 얻었다. deep residual nets은 우리의 ILSVRC & COCO 2015 대회회의 제출물에 기초가 되었고 ImageNet Detection, ImageNet Localization, COCO Detection, COCO Segmentation에서 1위를 차지하였다.


1. Introduction

Deep Convolutional 신경망은 Image Classification에서 일련의 돌파구를 만들어 냈다. Deep network는 자연스럽게 low/mid/high level feature와 Classifier를 통합한다. 그리고 feature의 수준은 쌓여진 layer의 수(depth)에 의해 풍부해진다. 최근의 연구는 network의 깊이가 매우 중요하다는 것을 보여주고 ImageNet 데이터셋 대회에서 좋은 기록들은 16~30개의 매우 깊은 모델을 활용하였다. 또한 많은 다른 복잡한 visual recognition task도 깊은 모델을 통해 큰 혜택을 받았다.

깊이의 중요성을 생각해 볼 때, “더 나은 network를 학습시키는 것이 layer를 쌓는 것만큼 쉬울까?” 라는 질문이 생긴다. 이 질문에 답하는데 방해가 되는 문제는 학습 초기에 수렴을 방해하는 gradient vanishing/exploding 문제이다. 그러나 이 문제는 initialization과 batch normalization을 통해 해결되어 왔고, 이는 수십 층을 가진 network가 SGD를 통한 역전파로 수렴할 수 있게 만들었다.

alt text

더 깊은 network가 수렴하기 시작하면서 성능 저하 문제(degradation, underfitting을 말하는 듯함)가 발생하였다. network의 깊이가 증가하면서 정확도는 saturated되었고, 성능 저하가 급격히 발생하였다. 놀랍게도 이러한 성능 저하는 overfitting때문에 발생한 것은 아니고 적당히 깊은 모델에 layer를 더 추가하는 것은 더 높은 training error를 발생시켰다. 위의 그림은 이의 전형적인 예시이다.

훈련 과정에서 성능 저하는 모든 system이 동일하게 최적화하기 쉬운 것은 아니라는 것을 나타낸다. 얕은 architecture와 여기에 layer를 추가한 깊은 architecture를 생각해보자. 이 깊은 모델의 Solution은 다음과 같다. 얕은 모델에서 학습된 layer들을 그대로 복사하고 이 위에 identity mapping layer를 추가하는 것이다. 위와 같이 구성된 Solution의 경우 깊은 모델이 얕은 모델보다 더 높은 training error를 만들어서는 안된다는 것을 의미한다. 그러나 실험에 따르면 현재 기존의 최적화 방법들은 이론적으로 존재하는 최적의 해를 찾을 수 없다는 것을 보여준다.

이 논문에서 우리는 deep residual learning framework를 통해 성능 저하 문제를 다룰 것이다. 몇몇 적은 수의 layer가 underlying mapping(indentity function을 말하는 듯 함)을 학습하는 대신에, 우리는 residual mapping을 학습하도록 명시적으로 설계한다. 목표가 되는 mapping function을 $H(x)$로 표시하면 우리는 Layer가 $F(x):=H(X) - X$라는 mapping function을 학습하도록 설계한다. 즉, 원래의 mapping function은 $F(x) + x$로 재구성 된다. 우리는 이 residual mapping($F(x) + x$)을 최적화하는 것이 기존의 unreferenced mapping$F(x)$을 최적화하는 것보다 더 쉽다고 가설을 세운다. 극단적으로 생각해 보면 identity mapping을 학습해야 한다고 할 때, $F(x) + x$를 0으로 만드는 것이 $F(x)$를 x으로 만드는 것보다 더 쉽다.

즉, 바로 위 문단에서 이미 학습된 Shallow network에 추가적인 layer를 쌓았으니까, 우리가 생각할 수 있는 Deep network가 최적의 결과를 내는 방법은 적어도 추가적인 layer가 identity function이면 된다. 하지만 실제 실험 결과에서는 Deep network가 Shallow network보다 더 낮은 성능을 보였으므로 identity function을 학습하지 못했음을 알 수 있다. 이를 해결하기 위해 위와 같은 idea를 생각해낸 것 같다.

alt text

이 $F(x) + x$ 수식은 위와 같이 “Shortcut connections”를 가진 feedfoward 신경망으로 구현할 수 있다. shortcut connection은 1개/n개의 layer를 skip하는 것을 말한다. 우리의 경우 이 shortcut connection이 단순히 identity mapping을 수행하고, 이 output은 이후 stacked layer의 output과 더해진다. 이는 추가적인 parameter나 계산복잡도 없이 구현할 수 있다. 전체적인 network는 SGD를 사용한 역전파로 end-to-end로 학습 가능하고 기존의 library를 별다른 수정 없이 쉽게 구현 가능하다.

우리는 ImageNet에서의 포괄적인 실험을 통해 성능 저하 문제를 보여주고 우리의 방법을 평가한다.

  • 매우 깊은 residual network는 최적화에 용이하다.
    하지만 plain network(단순히 층을 쌓은 network)는 깊이가 증가함에 따라 더 높은 학습 오류를 범한다.
  • residual network는 깊이가 증가함에 따라 정확도가 쉽게 증가하고 이전 network보다 더 나은 결과를 제공한다.

이 현상은 CIFAR-10에서도 나타나며, 이는 최적화의 어려움과 이 방법의 효과가 특정 데이터셋에만 국한되지 않음을 알 수 있다. 우리는 이 데이터셋에서 100층이 넘는 모델을 성공적으로 학습했으며, 1000층 이상의 모델도 탐구하였다.

ImageNet Classification 데이터셋에서 우리는 매우 깊은 잔차 네트워크를 통해 우수한 결과를 얻었다. 우리의 152층 잔차 네트워크는 ImageNet에서 제안된 네트워크 중 가장 깊은 네트워크이지만, VGG 네트워크보다 복잡도는 더 낮다. 우리의 앙상블 모델은 ImageNet 테스트 셋에서 3.57%의 top-5 오류율을 기록하며, ILSVRC 2015 분류 대회에서 1위를 차지했다. 이러한 매우 깊은 표현은 다른 인식 작업에서도 우수한 일반화 성능을 보였으며, ImageNet detection, ImageNet localization, COCO detection 및 COCO segmentation에서 1위를 차지했다. 이러한 강력한 증거는 잔차 학습 원리가 일반적임을 보여주며, 이는 다른 비전 및 비비전 문제에도 적용 가능할 것으로 기대된다.


Residual Representation

Image recognition에서 VLAD는 dictionary에 대한 residual vector에 의해 encode된 representation이다. 그리고 Fisher Vector는 VLAD를 확률화한 version이다. 두 방법 모두 image retrieval과 classification을 위한 강력한 shallow representation이다. vector quantization을 위해 encoding된 residual vector는 기존의 vector보다 더 효과적이다.

low-level vision과 computer graphics에서 편미분방정식을 해결하기 위해 주로 사용되는 Multigrid방법은 시스템을 여러 하위 문제로 재구성하고, 각 하위 문제는 coarser scale과 finer scale사이의 residual solution을 담당한다. Multigrid의 대안으로 계층적 basis 전처리가 있고 이는 두 scale사이의 residual vector를 나타내는 변수에 의존한다. 이러한 solver들은 residual solution의 특성을 고려하지 않는 standard sover들보다 훨씬 더 빠르게 수렴함이 입증되었다. 이 방법들은 좋은 재구성이나 전처리가 최적화를 단순화할 수 있음을 보여준다.

Shortcut Connections

shortcut connection으로 이어지는 이론과 방법들은 오랜시간 연구되어 왔다. MLP를 학습하는 초기 방식 중 하나는 network의 입력에서 출력으로 연결되는 linear layer를 추가하는 것이다. GoogleNet에서는 일부 중간 층이 auxiliary classifier와 연결되어 gradient vanishing/exploding문제를 해결한다. 어떤 연구에서는 layer의 response, gradient, propagated error를 centering하는 방법들을 제안하고 이는 shortcut으로 구현된다. Googlenet에서는 Inception layer가 shortcut branch와 몇개의 더 깊은 branch로 구성된다.

우리의 연구와 동시에 highway network는 gating function을 통한 shortcut을 제안했다. 이러한 gate는 data에 의존적이고 parameter를 가지고 있는데 이는 parameter가 없는 우리의 indentity shortcut과는 대조적이다. gated shortcut이 닫히는 경우, highway network의 층들은 non-residual function을 나타낸다. 반대로 우리의 수식은 항상 residual function을 학습하고 indentity shortcut은 절대 닫히지 않고 모든 정보가 항상 전달되며 추가적인 residual function이 학습된다. 게다가 highway network는 극도로 깊은 네트워크(100층 이상)에서 정확도 향상을 입증하지 못했다.


3. Deep Residual Learning

3.1) Residual Learning

$\mathcal{H}(x)$를 몇개의 stacked layer를 사용해 fit시켜야 하는 기본(underlying) mapping function함수라고 하자. x는 첫번째 layer의 input을 의미한다. 만약 여러 비선형 layer들이 점근적으로 복잡한 함수에 근사할 수 있다고 가정하면, 이는 비선형 layer들이 점진적으로 residual function(i.e. $\mathcal{H}(x) - x$)에 근사할 수 있다는 것과 같은 말이다. (여기서, input과 output이 같은 dimension을 가진다고 가정하자.) 따라서, stacked layer를 $\mathcal{H}(x)$에 근사시키기것보다, 우리는 명시적으로 residual function을 $\mathcal{F}(x) := \mathcal{H}(x) - x$에 근사하도록 한다. 따라서 original function은 $\mathcal{F}(x) + x$가 된다. 비록 두 함수는 이론적으로 모두 목표 function에 근사할 tn dlTwlaks, 학습의 용이점은 다를 수 있다.

이러한 재구성은 성능 저하 문제에 대해 우리의 직관에 반하는 현상에서 동기를 얻었다. 서론에서 우리가 논의했듯이, 만약 added layer가 identity mapping으로 구성될 수 있으면 더 깊은 모델은 얕은 모델보다 training error가 적어야 한다. 즉, 실제로 발생하는 성능저하 문제는 solver가 여러 비선형 layer로는 identity mapping에 근사하는데 어려움이 있다는 것을 시사한다. 만약 identity mapping이 optimal이라고 하면, residual learning으로의 재구성을 통해 solver는 단순히 여러 비선형 layer의 weight를 0으로 만들어 identity mapping으로 만들 수 있다.

실제로는 이 identity mapping이 optimal일 가능성은 낮지만, 이렇게 재구성하는 것은 문제를 사전에 조건화하는 데 도움이 될 수 있다.(문제를 명확히하는데 도움이 된다는 뜻인듯 하다.) 만약 optimal function이 0으로 mapping되는 것 보다, identity function으로 mapping에 더 가깝다면, solver는 이를 기준으로 새로운 함수를 학습하는 것이 더 쉬울 것이다. 우리는 실험을 통해 이러한 방식으로 학습된 residual function이 실제로 small response(shortcut connection을 제외하면 0으로 mapping된다는 뜻인듯)를 보인다는 것을 보여주고, 이는 identity mapping이 preconditioning에 있어 합리적이라는 것을 보여준다.

3.2) Identity Mapping by Shortcuts

alt text

우리는 residual learning을 모든 stacked layer에 적용했다. 각각의 block은 위의 그림과 같다. 이는 다음과 같이 정의할 수 있다.

\(y = \mathcal{F}(x, W_i) + x \\ output = \sigma(y)\)

  • $x, y$: input, output
  • $\mathcal{F}$: 학습되어져야 하는 residual mapping
    (※ 위 그림에서는 $\mathcal{F} = W_2\sigma(W_1x)$)
  • $\mathcal{F} + x$는 element-wise addition을 통한 shortcut connection

위에 나타난 shortcut connection은 어떠한 추가적인 parameter나 computation complexity도 도입하지 않는다. 이는 실용적일뿐만 아니라, 다른 plain network와의 비교에서도 중요한 부분이다. 우리는 같은 parameter, depth, width, computational cost를 갖는 plain/residual network를 공정하게 비교했다.

위 식에서는 $\mathcal{F}$와 $\mathcal{x}$의 차원이 같아야 한다. 만약 그렇지 않다고 하면 우리는 이를 맞추기 위해 shortcut connection에 linear projection을 수행할 수 있다.

\[y = \mathcal{F}(x, W_i) + W_sx\]

우리는 이 W_s를 정사각 행렬로 사용할 수도 있다. (즉, 차원이 같아 차원을 맞출 필요가 없는 경우를 말한다.) 그러나 우리는 실험을 통해 identity mapping만으로도 degradation문제를 해결하는데 충분하고, 이렇게 하는것이 경제적이라는 것을 보여준다. 즉, $W_s$는 차원을 맞추는 경우에만 사용된다.

residual function $\mathcal{F}$의 형태는 유연하다. 이 논문의 실험은 $\mathcal{F}$가 2개 혹은 3개의 layer를 포함하는지에 대한 것도 포함된다. 그러나 만약 $\mathcal{F}$가 오직 하나의 layer라면, 이는 linear layer의 형태($y = W1x + x$)와 비슷해진다. 이 경우 우리는 어떠한 이득도 발견하지 못했다.

우리는 또한 위의 notation이 간단하게 fully-connected layer에 대한 식이지만, 이는 convolution layer에도 적용할 수 있음을 주목해야 한다. $\mathcal{F}(x, W_i)$ 함수는 multiple convolutional layer를 나타낼 수 있기 때문이다. elementwise addition은 2개의 feature map사이에서 channel별로 수행된다.

3.3) Network Architectures

alt text

우리는 다양한 plain/residual net에 대해 test를 진행했고 일관된 현상을 관찰하였다. 논의에 나오는 예시를 위해 우리는 ImageNet을 위한 2가지 모델을 제시한다.

Plain Network

(그림의 중간)

VGG(맨 아래)의 철학에서 영감을 받은 구조이다. Convolutional layer는 $3 \times 3$ filter를 가지고 다음의 두 design rule을 따른다.

ⅰ) same output featuremap size를 위해 layer들은 똑같은 filter개수를 갖는다.

ⅱ) 만약 feature map의 크기가 절반이 되면, filter의 개수는 2배가 되어 layer당 time complexity를 보존한다.

우리는 stride 2의 convolutional layer를 직접 적용해 downsampling을 수행한다. network는 global average pooling layer로 끝나고 1000-way fully connected layer와 softmax를 사용한다. 모든 weighted layer의 수는 34이다.

우리의 모델이 VGG보다 더 적은 수의 filter와 complexity를 갖는다는 것이 중요하다. VGG-19의 경우 196억 FLOPS를 갖는데 비해, 우리의 34 Layer baseline의 경우 36억 FLOPS를 갖는다.

Residual Network

(그림의 맨 위)

Plain network에 기반해, 우리는 residual version으로 변환시켜주는 shortcut connection을 도입하였다. 이 identity shortcut은 input과 output이 같은 차원을 가질 때 직접 사용된다.(그림의 실선) 만약 차원이 증가한 경우(그림의 점선) 우리는 2가지 선택지를 생각해볼 수 있다.

  • shortcut은 identity mapping의 역할을 하고 증가된 dimension에 zero padding을 추가. (parameter 사용 X)
  • 차원을 맞추기 위해 $1\times 1$ Convolution을 사용한 projection shortcut

두가지 선택지 모두 feature map을 2개 뛰어넘는다.

3.4) Implementation

우리의 ImageNet 구현은 기존의 방식을 따랐다. 이미지는 scale augmentation을 위해 짧은 변의 길이가 [256, 480] 범위에서 무작위로 샘플링되도록 resize된다. 224×224 crop은 이미지/수평반전 이미지에서 random하게 샘플링되고, 각 픽셀의 평균 값이 차감된다. 표준 색상 증강(color augmentation)이 적용되었다. 우리는 각 Convolution layer 뒤, 활성화 함수 전에 배치 정규화(Batch Normalization, BN)를 적용하였다. plain/residual net을 처음부터 학습시키며, mini-batch 256크기를 사용한 SGD를 사용하였다. 학습률은 0.1에서 시작하며, 오류가 정체될 때 10으로 나누어진다. 모델은 최대 $60\times 10^4$번의 iteration동안 학습된다. 우리는 weight decay 0.0001과 momentum 0.9를 사용하였고 dropout은 사용하지 않았다.

test에서는 비교 연구를 위해 최적의 결과를 위해 Alex Net에서 사용한 표준 10-crop testing을 적용하였다. 최적의 결과를 위해 기존의 연구에서 사용한 fully-convolutional 형태를 채택하였고, multiple scale에서의 점수를 평균화했다.


4. Experiments

4.1) ImageNet Classification

우리는 우리의 방법을 1000개의 Class를 포함한 ImageNet 2012 Classification dataset으로 평가했다. 모델들은 128만개의 training image를 사용해 학습되었고 5만개의 validation image로 평가되었다. 우리는 또한 test server에서 10만개의 test image에서 최종 결과를 얻었고 top-1, top-5 error rate를 측정하였다.

Plain Network

alt text

우리는 먼저 18-layer, 34-layer의 plain net을 평가하였다. 결과는 위와 같다. 우리는 training과정에서 train/validation error를 비교하였다. 우리는 비록 18-layer plain network가 34-layer plain net의 subspace임에도 불구하고 전체 과정에서 34-layer가 더 높은 training error를 갖는 성능저하를 확인했다.

우리는 이러한 최적화의 어려움이 vanishing gradient로 인해 발생했을 가능성이 낮다고 주장한다. 이 plain network들은 BN을 사용해 학습했기 때문에 forward propagate signal이 0이 아닌 분산을 갖기 때문이다. 우리는 또한 BN을 사용할 때, 역전파 gradient가 vanishing/exploding되지 않는 것을 확인했다. 사실 34-layer plain net은 여전히 좋은 정확도를 보였고 이는 solver가 어느정도 동작하고 있음을 시사한다. 우리는 deep plain net이 지수적으로 낮은 수렴 속도를 가질 수 있고, 이는 오류를 낮추는데 영향을 미친다고 생각한다. 이러한 최적화 어려움의 연구 원인은 향후 연구될 것이다.

Residual Network

alt text

다음으로 우리d는 18-layer와 34-layer residual net을 평가하였다. baseline architecture는 위의 plain net과 같고, 여기에 shortcut connection을 추가하였다. 이 비교에서 우리는 모든 shortcut에 대해 identity mapping을 사용하고 차원이 증가하는 부분에서는 zero-padding을 사용하였다. 즉, plain network와 비교했을 때, 어떠한 parameter도 추가하지 않았다.

우리는 3가지 주된 현상을 관찰했다.

  • 1) residual learning에서는 plain net의 상황과 반대이다.
    → 34-layer resnet이 18-layer resnet보다 더 좋다. 이것은 이 설정에서 성능저하 문제가 해결되고, depth에 따른 성능 향상을 얻을 수 있다는 것을 알 수 있다.

  • 2) plain net과 비교했을 때, 34-layer resnet은 top-1 error를 3.5% 더 줄였다.
    → 이 비교는 deep system에서의 residual learning의 효과를 증명한다.

  • 3) 18-layer plain/residual net은 모두 정확도가 높지만, 18-layer resnet이 더 빨리 수렴한다.
    → 네트워크가 너무 깊지 않은 경우 현재의 SGD Solver도 plain net에 대해 더 좋은 solution을 찾을 수 있다. 이 경우 ResNet은 초기 단계에서 더 빠른 수렴을 제공하여 최적화를 용이하게 만든다.

Identity vs Projection Shortcuts

alt text

우리는 매개변수가 없는 identity shortcut이 학습에 도움을 준다는 것을 보여주었다. 다음으로 우리는 projection shortcut에 대해 조사한다. 위의 표에서는 3가지 옵션을 비교한다.

  • (A): 차원이 증가할 때, zero-padding shortcut을 사용하고 어떠한 parameter도 사용하지 않는 방식
  • (B): 차원이 증가할 때 projection shortcut을 사용하고 다른 shortcut은 identity로 사용하는 방식
  • (C): 모든 shortcut을 projection으로 사용하는 방식

위의 3가지 option 모두 plain net에 비해 상당히 더 좋은 결과를 가져온 것을 볼 수 있다. 특히 B가 A보다 더 좋았다. 우리는 이게 A의 zero-pad된 차원들이 실제로는 residual learning을 하지 않기 때문이라고 주장한다. C는 B보다 약간 더 우수하고, 이는 많은 projection shortcut에서 추가된 매개변수 때문이라고 생각된다. 하지만 A, B, C에서의 작은 차이들은 Projection shortcut이 성능 저하 문제를 해결하는데 필수적이지 않는 다는 것을 나타낸다. 그래서 우리는 메모리/시간복잡도/모델 크기를 줄이기 위해 C를 사용하지 않는다. Identity shortcut은 아래에서 소개할 bottleneck architecture의 복잡도를 증가시키지 않기 때문에 중요하다.

Deeper Bottleneck Architectures

alt text

다음으로 우리는 ImageNet을 위한 더 깊은 network에 대해 설명한다. 우리가 감당할 수 있는 학습 시간을 위해 building block을 bottleneck design으로 수정하였다. 각 residual function($\mathcal{F}$)에 대해 2개의 층 대신 3개의 층을 쌓아 사용하였다. 3개의 층은 $1\times 1, 3 \times 3, 1\times 1$의 Convolution으로 구성되고 $1\times 1$은 차원을 줄이고 다시 늘리는 역할을 하며, $3\times 3$은 더 작은 input/output 차원을 가진 병목 역할을 한다. 위의 그림은 비슷한 time complexity를 갖는 두개의 design을 보여준다.

매개변수가 없는 identity shortcut은 bottleneck architecture에 특히 중요하다. 만약 위 그림에서 identity shortcut이 projection shortcut으로 대체된다면, time complexity와 모델의 크기가 2배가 된다는 것을 알 수 있다. 즉, identity shortcut은 bottleneck design에 더 효율적이다.

  • 50 Layer ResNet
    우리는 34-layer net에서 각 2개의 layer block을 3개의 bottleneck block으로 대체하여 50-layer ReNet을 만들었다. 차원 증가를 위해서는 B option을 사용하였고, 이 모델의 FLOPs는 38억이다.
  • 101-layer & 152-layer ResNet
    우리는 위의 3-layer block을 사용해 101 layer와 152 layer의 ReNet을 만들었다. 주목할만하게도, 깊이가 매우 중가하였지만, 152-layer ResNet은 153억의 FLOPs를 가진 VGG-16보다 여전히 낮은 113억의 Complexity를 가졌다.

alt text

50/101/152 Layer ResNet들은 34-layer보다 훨씬 더 정확도가 높았다. 우리는 성능저하 문제를 발견하지 못했고, 즉 depth의 증가에 따른 상당한 성능 향상을 얻을 수 있었다. depth의 증가에 따른 이득은 모든 평가에서 입증되었다.

Comparison with State-of-the-art Methods

alt text

위 표에서는 이전까지의 최고 단일 모델(single-model) 결과와 비교한다. 우리의 34층 ResNet은 매우 경쟁력 있는 정확도를 달성하였다. 우리의 152층 ResNet은 단일 모델 기준으로 top-5 검증 오류율 4.49%를 기록하였다. 이 단일 모델 결과는 이전의 모든 앙상블 결과를 능가한다. 우리는 깊이가 다른 여섯 개의 모델을 결합하여 앙상블을 구성했으며, 제출 당시에는 152층 모델 두 개만 포함되었다. 이는 테스트 세트에서 3.57%의 top-5 오류율을 달성했다. 이 결과는 ILSVRC 2015에서 1위를 차지했다.

4.2) CIFAR-10 & Analysis

Exploring Over 1000 layers

alt text

우리는 1000층 이상의 매우 깊은 모델을 탐구하였다. 우리는 n=200을 설정하여 1202층 네트워크를 구성하였고, 이를 위에서 설명한 방식으로 학습시켰다. 우리의 방법은 최적화의 어려움을 보이지 않았으며, 이 1202층 네트워크는 학습 오류가 0.1% 미만을 기록하였다. 테스트 오류는 여전히 꽤 좋은 수준인 7.93%를 기록하였다. 그러나 이렇게 매우 깊은 모델에는 여전히 해결되지 않은 문제가 있다. 1202 layer network의 테스트 결과는 110 layer network보다 나빴으며, 두 네트워크의 학습 오류는 유사했다. 우리는 이것이 과적합 때문이라고 주장한다. 1202층 네트워크는 이 작은 데이터셋에 대해 불필요하게 크기(19.4M)가 클 수 있다. 기존에는 이 데이터셋에서 최고의 결과를 얻기 위해 maxout이나 dropout과 같은 강력한 정규화가 적용되었다. 본 논문에서는 maxout/dropout을 사용하지 않고, 단순히 설계 측면에서 깊고 얇은 구조를 통해 정규화를 부여하였다. 이는 최적화 어려움에 대한 초점에서 벗어나지 않기 위함이다. 그러나 더 강력한 정규화와 결합하면 결과가 개선될 수 있으며, 이는 향후 연구될 것이다.

이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.