zlzon

[논문 리뷰][ResNet] Deep Residual Learning for Image Recognition 본문

Paper Review

[논문 리뷰][ResNet] Deep Residual Learning for Image Recognition

zlzon 2021. 7. 14. 20:33

이 글은 'ResNet', 'Deep Residual Learning for Image Recognition' 논문리뷰 입니다.

저도 아직 공부하는 학생이라 부족한 부분이 많을수 있다는 점 유의하여 읽어주시면 감사하겠습니다.

피드백은 언제나 환영입니다. 

 

 

Abstrct

딥러닝에서 NN(Neural Networks)는 깊어질수록 train은 더 어려워진다. 그래서 이 논문에서는 residual learning framework 을 이용해 깊은 신경망에서도 training이 쉽게한다. 함수를 새로 만드는 방법 대신에 residual function을  train에 사용하는 것으로 layer를 재구성한다. 또한 ResNet 은  데이터를 이용한 실험을 통해 optimize를 더 쉽게하고, 더 깊은 모델에서도 accuracy 를 얻는다는 것을  증명한다. ResNet은 VGG nets 보다 8배 깊은 152개의 layers 가지고 ImageNet 을 학습하고 평가하여 3.57% 라는 error를 보이며 ILSVRC 2015 에서 1위를 차지하였으며 ImageNet detection, ImageNet localization, COCO detection,

COCO segmentation에서도 1위를 차지하였다.

 

1. Introduction

Deep convolutional neural networks 는 이미지분류 분야에서 중요한 돌파구가 되었다. 최근자료들은 네트워크의 깊이가 중요한 요소이며 challenging ImageNet 에서 깊은모델들(16layer-30layer)이 좋은 결과를 낸다는 것을 보여주고있다. 그에 따라 네트워크 깊이의 중요성이 대두되면서 '깊이가 깊어질수록 네트워크의 성능은 향상될까?' 라는 의문을 가진다.

이 의문에는 vanishing/exploding gradients 라는 문제점이 수반되었다. 이 문제점들은 SGD 와 역전파를 적용한 첫 10개의 layers 에서는 normalized initialization, intermediate normalization layers 를 통해 대부분 해소되었다. 

 

하지만 네트워크 깊이가 증가할수록 , accuracy 가 감소(성능저하)되는 degradation 이라는 문제점이 생긴다.

이 문제점이 원인은 overfitting이 아닌 단지 더 많은 layer들이 추가 되어서였으며 이로인해 더 높은 training error가 야기되었다. [Fig. 1]

 

 

이는 모든 시스템들이 optimize하기 쉽지 않다는것을 보여준다. 먼저 identity mapping layer를 추가하여 실험했지만 좋은 solution은 아니었다. 그래서 이 논문에서는 deep residual learning framework 를 통해 degradation 문제를 해결하려한다. 쌓여진 각 layer가 desired underlying mapping에 바로 fit 되는것이 아니라 residual mapping에 fit하도록 한다.

 

기존의 mapping이 H(x) 이면 nonlinear layer mapping 은 F(x) = H(x) - x 로 둔다. 

여기서 residual mapping이 기존의 mapping 보다 optimize 하기 쉽다고 가정한다.

 

F(x) + x 는하나 이상의 layer를 skip가능한 'shortcut connections' 으로 구현될 수 있다. 

이 논문에서 shortcut connection 은 identity mapping 을 수행하고, 그 outputs은 stacked layers의 outputs 에 더해진다.

[Fig. 2]

 

Identity shortcut connection 은 추가적인 parameter, 복잡한 계산이 필요하지 않다. 이를 이용한 네트워크는 역전파, SGD 로 end-to-end로 학습이 가능하며, solver 수정없이 common library (ex. Caffe)를 이용하여 쉽게 구현가능하다. 

 

이제 실험을 통해 degradation 문제를 보이고 이 논문의 방법을 평가한다.  또한 1), 2) 를 보여주려한다.

 

1) Our extremely deep residual nets are easy to optimize, but the counterpart “plain” nets (that simply stack layers) exhibit higher training error when the depth increases

-plane net과 달리 RESNET이 optimize 하기 더 쉽다.

 

2) Our deep residual nets can easily enjoy accuracy gains from greatly increased depth, producing results substantially better than previous networks.

-RESNET은 depth가 증가해도 더 쉽게 accuracy를 얻을수있다.

 

이후 RESNET이 여러대회에서 좋은 성능을 보여주었다.

 

2. Related Work

Residual Representations.

image recognition 분야에서 VLAD 는 dictinary에 관하여 residual vectors에 인코딩되는 표현이며, Fisher Vector는 VLAD의 확률적 버전으로 공식화되었다. 또한 vector 양자화에 있어서, residual vectors를 인코딩하는 것이 original vectors를 인코딩하는 것보다 더 효율적이다.

 

Shortcut Connections.

shortcut connections 에 관한 실습과 이론들은 오랜기간 진행되어왔다. 초기 multi-layer perceptrons(MLPs) training 사례는 네트워크 input 부터 output까지 연결된 linear layer 가 추가하는 것이었다. 

 

'''

이후 다른 논문들에서 vanishing/exploding gradients 를 해결하기 위해 시도한 방법들을 소개한다.

그리고 RESNET 에서 사용한 identity shortcut 기법과 비슷한 highway networks 를 언급후 identity shorcut이 가지는 차별성(identity shortcut은 parameter가 필요 X)을 말한다.   

'''

 

3. Deep Residual learning

3.1. Residual Learning

[ H(x) : 기존 mapping F(x) : residual function   |  F(x) = H(x) - x |  F(x) + x : original function ]   

어떤 가설이 multiple nonlinear layer가 복잡한 함수를 점근적으로 근사화 할 수 있다라고 한다면,

multiple nonlinear layer가 residual functions도 점근적으로 근사 할 수 있다는 가설과 같다.

그래서 stacked layers 가 H(x)에 근사할 것으로 기대하기 보다는 residual function_[F(x) = H(x) - x] 에 근사하도록 해야한다. 

 

 재공식화 [F(x) + x : original function] 는 degradation 문제에 대해 반직관적 현상으로 원인이 되었다. 

degradation 문제는 solver가 multiple nonlinear layers 에서 identity mappings 을 근사화 하는데 어려움이 있다는 것을 시사한다.  만약 재공식화 [F(x) + x : original function]를 이용하여 identity mappings 가 optimal 해진다면, solver들은  identity mappings 에 접근하기 위해 multiple nonlinear layers 의 weights 를 0으로 향하게 간단히 조작할 지도 모른다.

 

하지만 실제로는 identity mappings가 optimal 해질거 같지는 않다. 하지만 재공식화 [F(x) + x : original function]는 문제를 precondition하는데 도움을 준다. 따라서 만약 optimal function이 zero mapping이 아닌 identity mapping이 가까워진다면,  solver가 identity mapping을 참고하여 작은변화들을 찾는 것이 새로운 function을 학습하는 것 보다 더 쉬워진다.

 

3.2. Identity Mapping by Shortcuts

이 논문에서 모든 stacked layers에 residual learning 을 적용한다. [Fig. 2.]에서 보인 block을 아래와 같이 정의한다.

F(x, {Wi}) : 학습될 residual mapping

 

[Fig. 2.]와 같이 layer가 2개인 경우를 예를 들면  F = W2σ(W1x)  [σ : ReLU     biasess생략] 와 같다.

F + x 연산은 shortcut connection, element-wise addition으로 수행되며, addition후 second nonlinearity로 ReLU를 적용한다.

 

Eqn.(1). 의 shourtcut connections는 별도의 parameter, computation complexity 가 필요없다. 이러한 특징은 ResNet이 가지는 매력적인 요소이면서 plain networks와 비교에서도 중요하다. 

 

Eqn.(1).에서 x와 F의 dimention은 동일해야한다. 동일하지않다면 linear projection_Ws 를 이용해 같게 만들어준다. 

또한 Eqn.(1).에서 square matrix로 Ws를 수용할 수도 있지만, 뒤에 나오는 실험들에서 성능저하 문제를 해결하기에는 identity mapping만으로도 충분하고 경제적이므로 Ws는 dimention matching 용도로만 사용한다.

 

3.3. Network Architectures

이 논문에서는 다양한 형태의 plain/residual network에 대해 테스트 했으며, 일관된 현상을 관찰했다. 

실험에서 사용할 ImageNet data를 위한 두 모델은 다음과 같이 정의한다.

Plain Networks.

VGG nets[Fig.3] 에서 영감을 얻어 만들었으며 Conv layers 는 대게 3*3 filters를 가지며, 아래 2개의 규칙을 따른다.

 

1. 동일한 출력 feature map size에 대해, layers는 동일한 수의 filters를 가진다.

 

2. feature map size가 1/2 이 되면, layer당 time=complexity를 유지하기 위해 filter의 개수는 2배가 된다.

 

그리고 Conv layers는 stride 2로 downsampling하며, network는 global average pooling layer와 softmax를 사용한 1000-way fc layer로 끝난다.

 

Residual Network.

위의 plain network를 기반으로, shorcut connections를 추가하여 만들었다. identity shortcuts [Fig. 3의 실선] 은 input 과 output의 dimentions가 동일할때 사용한다. dimentions가 증가하면 [Fig. 3의 점선] , 2가지 옵션을 고려한다.

 

(A) shortcut은 계속 identity mapping을 하고, dimension을 증가시키기 위해 zero padding을 실시한다.

ㄴ 이 옵선은 추가 parameter가 불필요한 이유를 설명해준다.

(B) dimention을 일치시키기 위해 Eqn.(2)의 projection shortcut을 사용한다. (1*1 convolutions 사용)

 

위의 두 옵션에서 shortcuts이 feature map을 2 size씩 건너뛰기 때문에 stride를 2로 사용한다.

 

3.4. Implementation

  • image resize : 224 * 224
  • batch normalization (BN) 사용
  • initialize weights
  • SGD
  • mini batch size : 256
  • learning rate : 0.1 (학습 정체시 1/10)
  • weight decay : 0.0001
  • momentum : 0.9
  • No dropout

 

4. Experiments

4.1. ImageNet Classification

1,000개의 class를 가진 ImageNet 2012 classification dataset을 사용한다. 모델의 학습 및 테스트를 위해

trainning image : 1.28M |  validation image : 50K  |  test image : 100K  를 사용한다.

테스트 결과는 top-1 error 와 top-5 error를 모두 평가한다.

 

Plain Networks.

먼저 18, 34-layer를 가지는 plain net을 평가한다. 34-layer plain net은 [Fig. 3] (middle)과 같으며, 18-layer도 이와 유사하다.

Table2 결과는 18-layer와 비교하여 더 깊은 34-layer가 더 높은 validation error를 가진다는것을 보여준다.

원인을 파악하기 위해 Fig. 4 (left)에서 training/validation errors 를 비교한다. 34-layer plane net이 학습 전반에 걸쳐  더 높은 training error를 가진다.

 

 

이러한 optimization의 어려움이 vanishing gradients 가 원인이라고 생각하지 않는다. plain networks는 forward propagated signals의 분산이 0가 되지않고, backward propagated gradients가 healthy norms를 보여주는 BN을 적용시켰기 때문이다. 따라서 forward/backward signals 는 vanish 하지않는다.

34-layer plain net은 여전히 경쟁력 있는 accuracy(Table 3)를 가지며, solveer가 어느정도 동작하는것을 시사한다.

deep plain nets가 exponentially low convergence rates 를 가지며, 이것이 training error를 감소시키는데 영향을 끼쳤을거라 추측한다.

 

Residual Networks.

다음으로 18, 34-layer를 가지는 residual nets를 평가한다. basline architectures는 위의 plain nets와 동일하며,

[Fig. 3] (right)와 같이 각 3 * 3 filters에 shortcut connection이 추가되었다. 모든 shortcut에 대해 identity mapping을 사용하며, increasing dimensions을 위해 zero-padding을 이용한다.-[option A 참조] 그래서 plain net과 비교하여 ResNet은 extra parameter가 필요없다.

 

Table 2 와 Fig. 4. 에서 알 수 있는 3가지 주요 관찰결과는 다음과 같다.

 

1. residual learning으로 상황이 바뀌었다. 34-layer ResNet이 18-layer ResNet보다 나은 성능을 보인다.

34-layer ResNet이 상당히 낮은 training error를 보이며, validation data에 일반화 할 수있다. 

즉, degradation problem이 상당히 잘 해결되었고, 높아진 depth에서도 accuracy를 얻을수 있다.

 

2. plain net과 비교하였을때, 34-layer ResNet은 top-1 error를 3.5% (Table 2) 줄였고, trainning error도 성공적으로 줄였다. 이 비교는 extremely deep systems에서 residual learning이 효과적이라는 것을 증명한다.

 

3. 18-layer plain/residual nets는 성능이 거의 유사했지만, 18-layer resnet 수렴이 더 빨랐다.

모델이 매우 깊지않다면, 현재의 SGD Solver는 plain net에서도 좋은 solutions을 찾을수 있지만, Resnet에서는 더 빠르게 수렴할수 있다.

 

Identity vs. Projection Shortcuts.

앞서 parameter가 필요없는 identity shortcut이 trainning에 도움이 된다는걸 보았다. 이번에는 projection shortcuts에 대해 알아본다. Table 3에서는 3가지 옵션들의 비교결과를 보여준다.

 

(A) zero-padding shortcuts은 dimension을 증가시키기 위해 사용하고, 모든 shortcuts은 parameter가 필요없다.

(B) projection shortcuts은 dimension을 증가시키기 위해 사용하고, 다른 shortcuts은 identity shortcut이다.

(C) 모든 shortcuts은 projection shortcut이다.

 

Table 3에서 3가지 옵션들은 모두 plain net보다 훨씬 나은 결과를 보여준다. 성능은 C > B > A 순서로 좋았다.

(A)의 zero-padding과정에 residual learning이 없어서 (B)가 더 나은 성능을 보여주고,

(C)의 추가 parameter가 많은 projection shortcut에 의해 (B)보다 더 나은 성능을 보여준다.

 

여기서 3가지 옵션 간의 차이는 미미한걸로 보아 projection shortcut이 degradation problem을 해결하는데 필수적이지 않다는걸 알 수 있다. 그래서 이 뒤부터는 메모리,시간, 복잡성, 모델크기 감소를 위해 옵션(C)를 사용하지 않는다. 

Identity shortcuts은 아래에서 설명될 bottleneck architectures의 복잡성을 증가시키지 않는 점에서 특히 중요하다.

 

Deeper Bottleneck Architectures.

training time 감당이 힘들거 같아, building block방식을 bottleneck으로 수정한다. 각 residual function F에 대해 우리는 2-layer stack구조가 아닌 3-layer stack 구조를 활용한다. 이는 1*1 / 3*3 / 1*1 convolutions으로 구성된다. 1*1 layers는 dimention을 늘리거나 줄이는 역할을 하고, 3*3 layer는 input/output dimensions을 줄이는 bottleneck역할을 한다.

[Fig. 5]를 보면 두 디자인 모두 비슷한 time complexity를 가지는 것을 볼 수 있다.

parameter-free인 identity shortcuts은 bottleneck architectures에서 특히 중요하다. 만약 [Fig. 5](right)에서 보이는 

identity shortcut이 projection shortcut으로 대체된다면, shortcut이 two high-dimensional ends에 연결되어

time complexity, model size는 두배가 된다. 그래서 identity shortcut은 bottleneck design를 더 효율적인 모델이 되도록한다.

 

50-layer ResNet

    (Table1)의 50-layer ResNet에서 34-layer net의 각 2-layer block을 3-layer bottleneck block으로 대체하였고, dimension증가를 위해 option B를 사용한다.

 

101-layer and 152-layer ResNets

   더 많은 3-layer blocks를 사용하여 (Table 1)의 101- layer, 152-layer ResNets를 구축했다.

두드러지게 152-layer ResNet은 꽤 깊어졌음에도 VGG-16/19 nets와 비교하여 낮은 complexity를 가진다.

50/101/152-layer ResNets은 34-layer보다 더 accurate하다. 또한 증가된 depth에서도 degradation 문제없이 높은accuracy을 얻었다.

 

Comparisons with State-of-the-art Methods.

6가지 모델을 앙상블 기법을 적용하여 실험결과 ResNet이 3.57% top-5 error를 달성하며, ILSVRC 2015에서 1등을 했다.

 

4.2. CIFAR-10 and Analysis

CIFAR-10 dataset을 대상으로 모델학습 및 검증 결과를 다룬다.

Analysis of Layer Responses.

[Fig. 7]에서 Plain/Residual net의 각 layer responses의 표준편차를 보여준다. ResNet의 response가 plain nets보다 적을걸 볼 수 있는데, 이는 residual function이 non-residual function보다 일반적으로 0에 가까울 것이라는 저자들의 basic motivation을 뒷바침해준다. 또한 ResNet의 depth가 깊을수록 더 적은 response를 가진다.

Exploring Over 1000 layers.

1202-layer network는 110-layer network와 비슷한 training error를 보이지만,  test 결과는 좋지 못하였는데 이는 overfitting 때문인 것으로 판단된다.

4.3. Object Detection on PASCAL and MS COCO

ResNet이 다른 recognition 분야에서도 좋은 성능을 보인다.

 

 

Reference

https://jxnjxn.tistory.com/22

https://sike6054.github.io/blog/paper/first-post/

https://codebaragi23.github.io/machine%20learning/3.-ResNet-paper-review/

https://phil-baek.tistory.com/entry/ResNet-Deep-Residual-Learning-for-Image-Recognition-%EB%85%BC%EB%AC%B8-%EB%A6%AC%EB%B7%B0