Deep Residual Learning for Image Recognition REVIEW

박채희·2023년 1월 11일
0

paper review

목록 보기
4/13

Abstract

딥러닝에서 neural networks가 깊어질수록 성능은 더 좋지만 train이 어려움

→ 잔차를 이용한 잔차학습 (residual learning framework)를 이용해서 깊은 신경망에서도 training이 쉽게 이뤄질 수 있다는 것을 보임

이 논문은 empirical evidence showing 방법으로 residual을 이용한 optimize를 더 쉽게하는 법, accuracy를 증가시키고 더 깊게 쌓는 법에 초점을 둠

ILSVRC 2015 에서 1위를 차지

1. Introduction

Deep convolutional neural networks 는 이미지분류 분야에서 중요한 돌파구가 되었고, 최근자료들은 네트워크의 깊이가 중요한 요소이며 ImageNet dataset에서 깊은모델(16layer-30layer)이 좋은 결과를 낸다는 것을 보임

하지만, ‘깊이가 깊어질수록 네트워크의 성능은 향상될까?’ 라는 의문이 생김

1) vanishing/exploding gradients 문제 → SGD와 역전파를 적용한 첫 10개의 layers에서는 intermediated initialization, normalized initialization을 통해 해결

2) 네트워크 깊이가 증가할수록, accuracy가 감소되는 degradation 문제: overfitting이 아니라, 더 많은 layer들이 추가되어서 더 높은 training error가 도출

이는 모든 시스템들이 optimize하기 쉽지 않다는것을 보여주었고, 먼저 identity mapping layer를 추가하여 실험했지만 좋은 방법이 아니었음 →  deep residual learning framework 를 통해 degradation 문제를 해결: 쌓여진 각 layer가 다음 layer에 바로 fit 되는것이 아니라 residual mapping에 fit하게 함

기존의 mapping이 H(x)라면, nonlinear layer mapping 은 F(x) = H(x) - x 를 제시

→ residual mapping이 기존의 mapping 보다 optimize 하기 쉽다고 가정하였고, H(x) = F(x) + x 에서 F(x)가 0이 될수 있기때문에, H(x) = x라는 identity mapping이 성립

F(x) + x 는 하나 이상의 layer를 skip가능한 shortcut connections 으로 구현

→ 이 논문에서 shortcut connection은 identity mapping 을 수행하고, 그 outputs은 stacked layers의 outputs에 더함 (계산을 늘리거나 parameter수를 증가시키지 않음)

ImageNet에 실험하여 다음과 같은 결과를 얻음

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;

plain net과 다르게 residual net이 더 쉽게 optimize 됨

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

depth가 증가하면서 residual net이 쉽게 accuracy를 높임

Residual Representations.

이미지 인식에서 Fisher Vector를 이용해 dictionary를 만들때 original vector를 사용하는것 보다 residual vector를 사용하는게 효율적임을 보임

편미분 방정식을 풀때 사용하는 multi-grid method에서도 residual nature를 아는 solver가 그렇지 않은 solver보다 빠르게 수렴함

→ 위의 예시로 볼때 residual을 사용해서 변형하거나 전제조건을 주는게 최적화에 도움이 됨

Shortcut Connections.

많은 이론들이 shortcut connection을 이용: 초기에는 입력을 바로 출력으로 연결시키는 linear layer를 추가한 것부터, layer response, gradients, propagated error를 centering하기위해 shortcut이 이용됨

Highway networks에서도 이런 shortcut이 이용되었지만, 우리가 parameter-free인 identity shortcut을 사용한것과는 대조적으로 데이터에 의존적이고 parameter를 가지는 shortcut을 이용함

→ identity shortcut은 parameter가 필요 없는 점이 이 논문과의 차이

3. Deep Residual Learning

3.1. Residual Learning

H(x)를 few stacked layer의 underlying mapping이라고 할 때, Residual Function을 F(x) = H(x) - x라고 하면, H(x) = F(x) + x로 정의 (residual learning reformulation)

→ residual learning reformulation은 성능 저하 문제로 인해 나온 것인데, x를 더해주는 것과 같은 Layer를 identity mapping을 이용해 추가해주면(deep network) training error가 shallower 보다 낮을 것이기 때문

→ 성능 저하 문제는 identity mapping을 approximate 하는 데에 어려움이 있을 것을 암시하는데, Residual Learning을 이용하면 이를 해결할 수 있음

만약에 Identity Mapping이 적합하다면 기존의 여러 개의 nonlinear layers의 weights들을 모두 0으로 만들어 버리고 Identity Mapping이 되도록 만들 것(x +( F(x)=0)=H(x)): 즉, 기존의 convolution layer를 따라서 입력이 전달되는 것이 아니라 새로 추가된 Skip Connection을 따라 온 identity mapping이 적용된 결과가 output으로 나옴

사실 현실적인 부분에서 Identity Mapping이 적합한 경우는 많지 않지만, 이러한 방법은 전제 조건을 주는 것

→ 만약 optimal mapping이 zero mapping보다 identity mapping에 가깝다면 optimize하기 더 쉬움: 실험을 통해서도 identity mapping이 일반적으로 작은 response를 이끌어 내서 의미있는 기준을 제시함을 확인

3.2. Identity Mapping by Shortcuts

residual block: x와 y는 각각 입력과 출력이고, 함수 F는 Residual Mapping Function

→ 두개의 layer가 있고 ReLU를 거치고 biases가 생략된 F를 풀어쓴 것 (Fig.2)

F + x 의 경우 shortcut connection과 element-wise addition을 사용

이 때 x 와 F의 차원은 동일하게 맞춰줘야 해서, 동일하지 않다면 linear projection을 사용해서 같은 차원으로 변형

→ Ws는 오직 차원을 맞춰주는 역할로만 사용

3.3. Network Architectures

다양한 형태의 plain / residual network에 대해 테스트를 진행

Plain Network.

VGG nets에서 영감을 받아 만들었고, Conv layersms 3 x 3 filters를 가짐

  1. 모두 동일한 feature map 사이즈를 갖게 하기 위해서, 레이어 들은 동일한 수의 filter를 가짐
  2. feature map size가 반으로 줄면, filter의 수는 2배가 되어서 layer 당 time complexity를 보존

최종 layer수는 34개이고, VGG에 비해 적은 filters와 적은 복잡도를 가짐

Residual Network.

plain network에 short connection을 추가함

identity shortcuts [Fig. 3의 실선]은 input과 output의 dimensions가 동일할때 사용(Eqn.(1))

dimensions가 증가하면 [Fig. 3의 점선], 2가지 옵션을 고려

(A) dimension을 증가시키기 위해 zero padding을 실시 (추가 parameter 불필요) - identity mapping 수행

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

3.4. Implementation

  • Image는 더 짧은 쪽의 길이로 resize
  • 224 x 224 크기로 random하게 sample
  • standard color augmentation
  • 각 convolution 이후와 activiation 전에 Batch Normalization을 적용
  • 256 사이즈의 mini-batch로 SGD를 사용
  • learning rate는 0.1에서 시작해 error가 안정되면 10으로 나눔
  • iter는 60만 번
  • 0.0001의 weight decay와 0.9의 momentum을 사용
  • dropout은 사용하지 않음

4. Experiments

4.1. ImageNet Classification

1,000개의 class를 가진 ImageNet 2012 classification dataset을 사용하고 테스트 결과는 top-1 error와 top-5 error를 모두 평가

Plain Networks.

→ 18-layer와 비교하여 더 깊은 34-layer가 더 높은 validation error를 가진다는것을 보여줌

→ 34-layer plain net이 학습 전반에 걸쳐 더 높은 training error를 가지는것을 확인할 수 있음

이러한 optimization의 어려움이 vanishing gradients가 원인은 아님: plain networks는 forward propagated signals의 분산이 0가 되지않고, backward propagated gradients가 healthy norms를 보여주는 BN을 적용시켰기 때문

→ 하지만 깊은 34-layer plain net은 여전히 경쟁력 있는 accuracy를 가짐 : deep plain nets가 exponentially low convergence rates 를 가지며, 이것이 training error를 감소시키는데 영향을 끼쳤을거라 추측

Residual Networks.

다음으로 18, 34-layer를 가지는 residual nets를 평가

Table 2 와 Fig.4 에서 알 수 있는 주요 관찰결과

  1. residual learning으로 34-layer ResNet이 18-layer ResNet보다 나은 성능을 보임 → degradation problem이 상당히 잘 해결되었고, 높아진 depth에서도 accuracy를 얻을 수 있음
  2. plain net과 비교하였을때, 34-layer ResNet은 top-1 error를 3.5% (Table 2) 줄였고, training error도 성공적으로 줄임
  3. 18-layer plain/residual nets는 성능이 거의 유사했지만, 18-layer resnet 수렴이 더 빠름

Identity vs. Projection Shortcuts.

projection shortcuts

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

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

(C) 모든 shortcuts을 projection shortcut

→ 성능은 C > B > A 순서로 좋았지만, 3가지의 차이는 크지 않아 projection shortcut이 degradation problem을 해결하는데 필수적이지 않다는 걸 알 수 있어 C를 사용하지 않음

Deeper Bottleneck Architectures.

building block방식을 bottleneck으로 수정: 2-layer stack구조가 아닌 3-layer stack 구조를 활용

11 layers는 dimension을 늘리거나 줄이는 역할을 하고, 33 layer는 input/output dimensions을 줄이는 bottleneck역할

→ 연산량을 줄임

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를 구축
50/101/152-layer ResNets은 34-layer보다 더 accurate하며 증가된 depth에서도 degradation 문제없이 높은 accuracy을 얻음

Comparisions with State-of-the-art Methods.

6가지 모델을 앙상블 기법을 적용하여 실험결과 ResNet이 3.57% top-5 error를 달성

4.2. CIFAR-10 and Analysis

논문에서는 CIFAR-10 dataset에 대한 더 많은 연구를 수행: training set에 대한 학습과 test set에 대한 평가를 기준으로 했으며, 이 연구는 extremely deep network에 초점을 둔 연구이기에 다음과 같이 총 6n+2개의 stacked weighted layer로 구성된 간단한 architecture를 사용

→ n = {3, 5, 7, 9}에 대한 20/32/44/56-layer network를 비교

Fig.6의 왼쪽은 이에 해당하는 plain network의 학습 결과이고, depth가 높아질 수록 성능이 하락하는 현상

가운데는 ResNet의 학습 결과이고, ImageNet의 경우와 유사하게 depth가 증가할수록 정확도가 올라가는 결과

추가로 n=18인 110-layer ResNet도 실험했고, 이 네트워크는 잘 수렴했으며, FitNet과 Highway와 같은 깊은 네트워크보다 적은 파라미터를 사용했음에도 불구하고 높은 성능을 보임

Analysis of Layer Responses.

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이 object detection 분야에서도 좋은 성능을 보임

0개의 댓글