안녕하세요. 오늘은 인공지능에 한획을 그었다는 'Deep Residual Learning for Image Recognition(ResNet)'에 관한 논문을 리뷰해보고자 합니다. 

이번 논문은 읽는데에만 1주 정도 걸렸고 정리하는 과정도 상당히 오래걸렸습니다.

잔차 연결이라는 아이디어와 세부 내용들이 쉽게 이해가 되지는 않더라구요. 

그래도 자세하게 설명도 잘되어있고, 글이 잘 쓰여져 있어서 몰입감 있게 읽으면서 공부할 수 있었습니다.


0. Abstract

더욱 깊어진 신경망은 학습하기 어려워졌습니다. 이 논문을 통해 residual learning framework가 네트워크의 학습을 보다 쉽게 할 수 있음을 보이고자 합니다.

 

ImageNet 데이터 셋을 기준으로 측정하였을 때, 152 layer에 이르는 depth를 가진 residual network가 VGGNet보다 8배 이상 깊지만 여전히 적은 복잡도를 가지고 있다는 것을 확인할 수 있었습니다. 이러한 네트워크의 앙상블(Ensemble)을 통해 ImageNet 테스트 셋에 대하여, 3.57%의 error를 기록하였고 ILSVRC-2015에서 우승을 차지하였습니다.


 

1. Introduction

심층 CNN은 이미지 classification에 대하여 엄청난 영감을 주었습니다. 심층 네트워크의 depth를 통해 feature의 "level"을 향상시킬 수 있으며, depth를 기반으로 한 많은 시도들이 이루어지고 있습니다.

 

depth의 중요성이 대두되고 있는 와중에 한가지 의문이 떠올랐습니다. '레이어를 쌓는 것 만큼 레이어가 쌓인 네트워크를 학습시키는 것이 쉬울까?' 라는 의문이었습니다. 첫번째로, gradient vanishing(기울기 소실)과 gradient exploding(기울기 폭발)의 문제가 있습니다. 다만, 이 문제는 normalized initialization과 normalization layer를 통해 다뤄왔습니다.  어느정도 해결을 할 수 있다는 것이죠. 

 

다만, 더 깊은 네트워크가 converging(수렴)하기 시작할 때, degradation 문제가 발생해 왔습니다. 네트워크의 depth가 깊어질 수록, accuracy는 더 이상의 진전이 없었고,  빠르게 저하되기 시작했습니다. 다양한 연구로부터 report된 내용을 검토하고 철저히 실험을 통해 검증을 거친 결과, 기대와는 다르게 overfitting으로 부터 야기된 문제가 아니라 네트워크가 깊어지면서 발생하는 문제라는 것을 알게 되었습니다. 

 

이렇게 발생한 degradation problem은 모든 시스템이 쉽게 optimize 할 수 있는 것은 아니라는 것을 시사합니다. 따라서, 이번 논문에서는 degradation problem을 deep residual learning framework를 통해 다뤄보고자 합니다. 단지 몇개만의 레이어들이 바람직한 underlying mapping 되기를 기대하는 대신에, 이러한 layer들을 residual mapping(잔차 연결)을 하여 문제를 해결해보고자 합니다. underlying mapping을 $H(x)$라고 하였을 때, stacked linear layer가 또 다른 mapping인 $F(x) ≒ H(x) - x$를 학습하도록 하는 것입니다. 즉, original-mapping은 $F(x)+x$로 재구성 됩니다.

 

또한, original mapping 보다 residual mapping이 더 optimize 하기 쉽다고 가정하였습니다. 극단적으로, identity mapping이 optimal 하다면, nonlinear layer stack을 통한 identity mapping을 학습시키는 것보다 잔차를 0으로 수렴시키는 것이 쉬울 것입니다. 

 

$F(x) + x$는 신경망의 shortcut connection을 통해 구현 될 수 있습니다(Fig.2). ResNet에서 shortcut connection은 identity mapping을 수행하고, 이 output은 stacked layer의 output으로 더해집니다.(입력 x가 layer를 통과하여 나온 결과물인 F(x)에 입력 값 x가 더해집니다.) Identity shortcut connection은 추가적인 파라미터나 계산 복잡도에 영향을 주지 않습니다. 또한, 전체적인 네트워크는 여전이 SGD를 통한 역전파 과정을 통하여 end-to-end로 학습되며, common library를 통해 구현됩니다.

 

Degradation problem을 확인하고 residual connection을 평가하기 위해 ImageNet에서 실험을 시행했습니다. 실험을 통해 두가지 사항을 알 수 있었습니다.

  • 극단적으로 깊은 residual network가 "plain" network에 비해 optimize가 쉽다는 사실
  • deep residual network가 이전 네트워크 보다 상당히 나은 결과를 도출하면서 쉽게 정확도를 얻는다는 점입니다.

 

ImageNet classification 데이터 셋에 대하여, deep residual network를 통해 좋은 결과를 얻을 수 있었습니다. 152 layer의 residual network는 VGGNet보다도 덜 복잡할 뿐만 아니라, 지금까지 ImageNet에 제출되었던 모델 중에 가장 깊은 모델입니다.

 


2. Related Work

Residual Representations.

요약하자면, residual vector encoding이 original vector encoding보다 효율적이며 이러한 reformulation/preconditioning이 opmization을 단순화 한다는 것입니다.

 

Shortcut Connections.

요약하자면, gradient vanishing/exploding등 다양한 문제를 해결하기 위한 방법, ResNet과 유사한 방법으로 shortcut을 구현한 연구 등이 있지만 단점들이 있었습니다.  특히, shortcut을 구현한 모델들의 경우 parameter가 증가되고 shortcut gate가 "closed" 될 수 있다는 단점이 있으며 depth의 증가를 통해 정확도를 확실히 증가시킬 수 있다는 것이 증명되지 않았습니다.

 

ResNet은 정확도를 증가시킬 수 있을 뿐만 아니라 parameter-free 하면서 closed 되지 않는 모델이라는 내용이 담겨져 있습니다.

 


3. Deep Residual Learning

 

3.1. Residual Learning

H(x)를 몇개의 stacked layer로 부터 학습되어야할 underlying mapping, x를 이러한 레이어들의 input 이라고 하겠습니다. 다수의 nonlinear layer들이 복잡한 함수로 근사될 수 있다고 가정하였을 때, 이는 residual function인 $H(x) - x$로도 충분히 근사 가능하다는 것을 의미합니다.  이를 바탕으로 stacked layer가 H(x)가 아닌 $F(x) ≒ H(x) - x$ 로 근사되도록 할 것 입니다.  따라서 original function은 $F(x) + x$가 될 것입니다. 

 

실제 케이스에서는, identity mapping이 optimal 하지 않더라도, 이러한 reformulation이 문제를 precondition하는데 도움이 될 지도 모릅니다. 만약, optimal function이 zero mapping보다 identity mapping에 가깝다면, solver가 새로운 함수를 학습하는 것 보다 identity mapping에 관하여 작은 변화를 찾는 것이 더 쉬울 것입니다. 우리는 실험(Fig.7)을 통하여 학습된 residual function이 작은 response를 가진다는 것을 보여줍니다. 이러한 사실은 identity mapping이 합리적인 preconditioning을 제공해준다는 것을 의미합니다.

 

 

*Universal Approximation Theorem.

비선형성을 가진 레이어가 하나의 은닉층으로 있다면, 어떠한 함수로도 충분히 근사 가능하다는 것을 증명한 이론입니다.

이 이론을 근거하여, nonlinear layer들이 $H(x) - x$로도 충분히 근사 가능하다는 것을 알 수 있습니다.

 

 

 

3.2. Indentity Mapping by Shortcuts

stacked layer마다 residual learning을 적용하였습니다. Fig.2에서 보인 형태와 동일하며, 이 논문에서는 building block을 다음과 같이 정의할 것입니다.  $$y = f(x,\{w_i\})+x \qquad Eqn(1).$$

 

Eqn.(1)에서 shortcut connection은 추가적인 파라미터나 계산 복잡도에 영향을 주지 않습니다. 이것은 매우 실용적이기에 매력적일 뿐만 아니라 plain nework와 residual network 사이의 비교에서도 중요합니다. 이러한 장점 덕분에 동일한 수의 파라미터, depth, width, computational cost를 갖는 plain network 와 residual network를 비교할 수 있는 것이죠.

 

만약 input/output channel이 변화할 경우, $w_s$ linear projection을 통해 shortcut connection의 차원을 맞출 수 있습니다. 

$$y = F(x,\{w_i\})+W_s*x\qquad Eqn(2).$$ 

다만, identity mapping이 degradation problem을 다루기 충분할 뿐만 아니라 효율적이라는 것을 알 수 있었기에, $w_s$는 차원을 맞추는데에만 사용합니다.

 

더 많은 레이어를 쌓을 수 있지만, 이번 논문에서는 function $F$는 2개 또는 3개의 레이어로 구성됩니다(Fig.5). 다만, $F$가 단일 레이어일 경우 선형 레이어와 유사하여 이점이 없기 때문에 사용하지 않습니다. 또한, 위 표기들은 FC layer에 대한 것이지만 convolutional layer에도 적용가능합니다. 

 

3.3 Network Architectures

 

다양한 plain/residual net을 실험했지만 동일한 현상을 관찰할 수 있었습니다. 사례를 제공하기 위해, ImageNet에 대한 두가지 모델을 소개하고자 합니다.

 

Plain Network.

ResNet의 기본 모델(Fig.3 middle)은 VGG net(Fig3. left)를 모티브로 삼았습니다. convolution filter는 거의 대부분(1개를 제외하고) 3x3 filter로 구성하였으며 두가지 간단한 규칙을 따랐습니다.

  • output의 feature map size를 동일하게 맞추기 위하여 필터 수를 동일하게 설정하였습니다.
  • feature map size가 반감될 경우, 레이어 별 time complexity를 보존하기 위해 필터의 갯수를 두배로 설정하였습니다.

Stride = 2인 convolutional layer를 통해 downsampling을 수행하였으며, 네트워크의 끝에는 global average pooling layer와 softmax가 적용된 1000-way의 FC layer로 구성되어 있습니다. 총 weight는 34 입니다.

 

VGGNet에 비해 적은 필터 수와 낮은 complexity를 갖습니다.

 

 

Residual Network.

Plain network를 기반으로, shortcut connection(Fig. 3 right)를 삽입하였습니다. Input - output이 동일한 차원을 가질 경우, identity shortcut(Eqn.(1))을 직접적으로 연결할 수 있습니다. 차원이 증가될 경우(Fig.3 dotted line shortcut), 두가지 옵션을 고려할 수 있습니다.

  • 증가된 차원에 맞춰 zero-padding을 이용하여 shortcut이 identity mapping을 수행하는 것
  • Eqn.(2)의 projection shortcut을 이용하여 차원을 맞추는 것

 

3.4 Implementation

 ImageNet에 대한 implementation는 AlexNet과 VGGNet을 follow 합니다. 이미지는 scale augmentation을 위해 [256,480]에서 무작위로 샘플링된 shorter-side로 resize 됩니다. $224*224$crop은 평균 차감(mean substraction)이 적용된 이미지 또는 그 이미지의 horizontal filp된 이미지로 부터 샘플링 됩니다. 레이어 구성에 대한 세부 설명과 하이퍼 파라미터는 다음과 같습니다.

  • convolution 연산 이후, 활성화 함수를 적용하기 전에 Batch Normalization을 적용합니다.
  • He initialization을 통해 weight를 initialize 합니다.
  • Batch size = 256, optimizer는 SGD를 사용합니다.
  • learning rate = 0.1 이며, error 감소율이 정체될 때마다 1/10씩 줄입니다.
  • momentum = 0.9 , weight decay = 0.0001이며 dropout은 적용하지 않습니다.

AlexNet의 10-crop testing을 통해 test를 진행하였습니다. 최상의 결과를 위해 He initialize와 VGGNet에서 사용한 fully-convolutional form을 채택하였으며, multiple scale에서 score을 평균화 하였습니다.


4.Experiments

 

4.1. ImageNet Classification

ImageNet 2012 classification dataset을 기반으로 top-1/top-5를 평가하였습니다.

  • 1.28M training images
  • 50K validation images
  • 100K test images

Plain Networks.

18-layer와 34-layer의 plain network를  측정할 것이며, Table 1에서 구체적인 Architecture을 볼 수 있습니다. Table 2를 보면, 34-layer plain network가 18-layer plain network보다 높은 validation error를 보인다는 것을 알 수 있습니다. 이러한 결과(Fig. 4 left)에 대한 이유를 밝히기 위해 training/validation error를 비교하였으며, degradation problem이 발생하는 것을 알 수 있었습니다. 

 

이러한 optimization difficulty가 gradients vanishing 문제로부터 유발된 것은 아닙니다. 그 근거는 다음과 같습니다.

  • 설계된 plain network에는 BN이 적용되었기 때문에 순전파 signal이 non-zero variance(분산)를 가지는 것을 보장합니다.
  • 역전파 과정 또한, BN으로 인하여 healthy norm을 보이는 것을 확인할 수 있었습니다. 

즉, gradient vanishing은 발생하지 않았음을 알 수 있었습니다.

 

Residual Network.

다음으로, 18-layer 와 34-layer residual network(ResNet)을 측정하였습니다. 기본 구조는 plain network와 동일합니다.  option A) zero-padding을 통하여 identity mapping을 수행하는 방식을 비교하였습니다(Table 2 and Fig. 4 right)

 

Table2와 Fig 4.를 토대로 주목해야할 3가지 사실이 있습니다.

  • 첫번째로, 34-layer ResNet이 18-layer ResNet보다 약 2.8% 낮은 error를 보였습니다. 더욱 중요한 것은, 34-layer ResNet이 더 낮은 training error와 향상된 validation 성능을 보였습니다. 이러한 결과는 ResNet이 degradation problem을 잘 해결할 수 있다는 점과 증가된 depth로 부터 정확도를 얻을 수 있다는 것을 시사합니다. 

 

  • 두번째로, plain network와 비교했을 때, 34-layer ResNet이 top-1 error를 3.5% 줄였다는 점 입니다. 이것을 통해 extremely deep system에서 residual 학습의 효과를 증명할 수 있습니다.

 

  • 마지막으로, 18-layer의 plain network와 ResNet이 비슷한 정확도를 보이지만, ResNet이 수렴하는 속도가 더 빠르다는 점입니다. 이러한 사실을 통해 ResNet이 초기 단계에서 더 빠른 convergence를 제공해줌으로써 optimization을 쉽게 한다는 사실을 알 수 있습니다.

Identity vs. Projection Shortcuts.

지금까지 parameter-free한 점과 identity shortcut이 training에 도움이 된다는 사실을 알 수 있었습니다. 다음으로는 projection shortcut(Eqn.(2))에 대해서 조사하려고 합니다. 총 3가지 option을 비교하고자 합니다.

  • A) 증가된 차원에 대하여 zero-padding을 사용하며, 모든 shortcut이 parameter free한 옵션(Table 2와 Fig. 4 right와 동일)
  • B) 증가된 차원에 대하여 projection shortcut을 사용하는 option
  • C) 모든 shortcut이 projection shortcut인 option

Table 3를 보면 모든 옵션이 plain network보다 좋은 결과를 보임을 알 수 있습니다. A/B/C 사이의 작은 차이는 projection shortcut이 degradation problem을 해결하기 위해서 필수적인 요소가 아님을 시사합니다. 따라서, 이번 논문에는 memory/time complexity와 모델 사이즈를 줄이기 위하여 option C는 사용하지 않을 것입니다. 

 

Deeper Bottleneck Architecture

ImageNet의 deeper network에 대해서 설명하도록 하겠습니다. training-time에 대한 우려 때문에, building block을 bottleneck design으로 변형하였습니다. 각각의 residual Function 는 3개의 레이어를 쌓았습니다. 3개의 layer는 1x1, 3x3, 그리고 1x1 convolution 레이어 이며, 1x1은 차원을 줄였다가 다시 늘리는 용도로 사용하며 3x3을 input/output 차원을 축소한 bottleneck으로써 둡니다.

Fig.5 는 비슷한 time complexity를 갖는 두 개의 residual Function 입니다.

 

만약 identity shortcut이 projection으로 대체된다면, time complexity와 모델 사이즈가 2배로 증가하게 됩니다. 따라서,Parameter-free identity shortcut은 bottleneck 구조에서 특히나 중요합니다. 

 

50-layer ResNet: 34-layer ResNet의각각의 2-layer block을 3-layer bottleneck block으로 대체한 모델로, 증가된 차원에 대하여 option B를 적용하였습니다(Table 1). 이 모델은 3.8 billion FLOPs를 갖습니다.

 

101-layer and 152-layer ResNets: 3-layer block을 추가로 사용하여 각 ResNet을 구성하였습니다(Table 1). depth가 상당히 증가하였지만, 152-layer ResNet(11.3 billion FLOPs)는 여전히 VGG-16 / VGG - 19(15.3 / 19.6 billion FLOPs)보다 현저히 낮은 complexity를 갖습니다.

 

50/101/152-layer ResNet은 34-layer ResNet보다 더욱 정확합니다. degradation problem이 발견되지 않았으며, depth 증가로 부터 정확도를 얻을 수 있었습니다(Table 3 and 4).

 

Comparison with State-of-the-art Methods.

Table 4에서 이전의 best single-model 결과들과 비교한 결과를 볼 수 있습니다. baseline 34-layer ResNet은 매우 competitive한 accuracy를 얻었으며, 152-layer ResNet은 top-5 validation error 4.49%를 기록하였습니다. 이전 ensemble resulut을 모두 상회하는 결과이며, 6개의 서로 다른 depth의 모델을 ensemble 하였을 때 3.57% top-5 error를 기록하였고 ILSVRC-2015에서 우승할 수 있었습니다.

 


생각정리

*ResNet이 gradient vanishing에 매우 효과적인 이유에 대한 생각.

Gradient vanishing이란 역전파(Backpropagation) 과정에서 Gradient가 소실 되는 것을 말합니다. 가장 큰 원인은 활성화 함수(Activation Function)의 기울기 입니다. 함수를 미분했을 때의 값이 0에 가까워지는 것이 문제가 되는 것이죠.

 

근데 ResNet는 Residual Connection(잔차 연결)을 통해 $F(x) + x$를 보장하여 줍니다.

즉, 미분을 하게 되면 $F'(x) + 1$로 기울기 1을 보장해주는 것이죠. 

 

논문에서 언급했듯, 레이어 별로 Batch Normalization을 적용함과 동시에 잔차연결 해주어 레이어를 많이 쌓아도 gradient vanishing이 발생하지 않는 것 같습니다.

 

*ResNet에 대해서 놀라웠던 점

VGG도 마찬가지로 depth를 늘리는 방법을 고민했던 것을 보면, 당시에는 depth를 늘릴 획기적인 방법이 없었던 것 같습니다. 

근데 잔차연결을 통해 gradient vainishing을 방지함과 동시에 깊은 레이어의 학습정체현상을 해결하여 얕은 레이어를 깊게 쌓을 수 있는 방법을 제안했다는 점이 정말 대단했습니다. 

(물론, 정확도 및 연산량도 압도적으로 좋구요.)

 


Reference

https://arxiv.org/pdf/1512.03385v1.pdf

https://wikidocs.net/137252

https://cumulu-s.tistory.com/33

https://89douner.tistory.com/64

https://ganghee-lee.tistory.com/41

 

+ Recent posts