ResNet

임광영·2022년 7월 18일
0

DeepLearning

목록 보기
6/18

0. Abstract

DNN은 depth가 중요하지만 훈련이 어려움 (∵ overfitting, gradient descent).
residual learning을 이용하여 해결 가능.
이전 layer을 이용하여 learning residual 함수를 이용.
이러한 residual 네트워크는 최적화하기 쉽고 depth를 증가시키면서 정확도를 얻음.

We explicitly reformulate the layers as learning residual functions with reference to the layer inputs, instead of learning unreferenced functions.


1. Introduction

deep 네트워크는 low/mid/high level의 특징과 분류를 multi layer 형태로 통합.
depth의 증가로 layer의 수 증가.
⇒ 즉, 높은 해상도는 high level에서 포착 가능.

Recent evidence reveals that network depth is of crucial importance.
Is learning better networks as easy as stacking more layers?

Vanishing/Exploding gradient
normalized 초기화 또는 intermediate normalization (BN)으로 해결.

Degradation
depth가 증가하면서 정확도가 saturated하다가 급격하게 감소.
overfitting에 의한 것이 아닌 단순한 depth의 증가.

How?
overfitting은 train error는 낮고 test error는 높음.
Figure 1에서는 train과 test error 둘 다 높음.

이에 layer를 얕은 모델에서 복사하고 identity mapping을 추가 하였지만 좋은 해결책이 아님.

Why Identity mapping?
xl+1=xl+F(xl,Wl)x_{l+1}=x_{l}+F(x_{l},W_l)
Then, xl+2=xl+1+F(xl+1,Wl+1)=xl+F(xl,Wl)+F(xl+1,Wl+1)x_{l+2}=x_{l+1}+F(x_{l+1},W_{l+1})=x_{l}+F(x_{l},W_l)+F(x_{l+1},W_{l+1})
Thus, xL=xl=i=lL1F(xi,Wi)x_{L}=x_{l}=\displaystyle\sum_{i=l}^{L-1}F(x_{i},W_i)
곱셈 연산이 덧셈 연산으로 변형.
이는 연산 감소의 효과와 gradient descending 문제 해결.

Reference
Identity Mappings in Deep Residual Networks 논문
CNN 모델 탐구 (6-2) Identity Mapping in ResNet

따라서 degradation 문제를 다루기 위해 deep residual learning을 사용.

원래의 mapping 함수를 H(x)H(x) ( Input : xx, Output : H(x)H(x) ).
F(x)H(x)xF(x)≡H(x)-x라 하여 원래의 mapping 함수 H(x)H(x)F(x)+xF(x)+x로 재구성 (F(x)F(x)는 weight 연산값).
기존의 unreferenced mapping H(x)H(x)의 최적화보다 residual mapping F(x)F(x)의 최적화가 더 쉬움.

H(x)=xH(x)=x가 학습 목표.
비선형 layer를 쌓아서 identity mapping H(x)H(x)를 구성하는 것보다 residual F(x)F(x)를 0으로 만드는 것이 더 쉬움.

F(x)+xF(x)+xshortcut connection으로 실현됨.
shortcut connection은 하나 이상의 layer를 건너뛴 connection으로 간단하게 identity mapping을 수행.
이러한 identity shortcut connection은 많은 params와 복잡한 컴퓨터 연산 불필요.

결과적으로,
1) depth가 증가할 때, train error가 증가하는 plain net과 다르게 deep residual net은 최적화하기 쉬움.
2) deep residual net은 depth가 증가하여도 높은 정확도.


2. Related Work

2.1 Residual Representations

For vector quantization, encoding residual vectors is shown to be more effective than encoding original vectors.

PDE를 풀기 위해서는 Multigird 방법을 사용하였는데, 이는 여러 scale의 하위 문제로 재구성.
Multigrid의 대책으로, 두 scale 간의 residual 벡터에 의존. 이를 preconditioning이라 하는데 기존 방식보다 빠름.
적절한 재구성과 preconditioning은 최적화를 간편화 해줌.

2.2 Shortcut Connections

현 논문의 shortcut은 parameter-free하고, 닫히지 않고 모든 정보가 통과하여 지속적인 residual 함수의 학습.

Not vanish gradient
H(x)=F(x)+xH(x)=F(x)+x
H/x=F/x+1∂H/∂x=∂F/∂x+1
따라서 gradient가 0이 되지 않음.


3. Deep Residual Learning

3.1 Residual Learning

많은 비선형 layer가 점근적으로 H(x)H(x)에 근사 가능하다면, residual 함수 F(x)=H(x)xF(x)=H(x)-x도 근사 가능.

3.2 Identity Mapping by Shortcuts

The shortcut connections introduce neither extra parameter nor computation complextiy.

y=F(x,{Wi})+xy=F(x,\{W_{i}\})+x
where F=W2σ(W1x)F = W_{2}\sigma(W_{1}x) and biases are omitted.

FFxx의 차원이 다를 경우,
y=F(x,{Wi})+Wsxy=F(x,\{W_{i}\})+W_{s}x
WsW_{s}는 차원을 맞추기 위한 선형 projection.

3.3 Network Architectures

Plain Network (얕은 모델)

1) Baseline : VGGNet.
2) conv. layer : 3×33\times3.
3) 같은 feature map size는 필터의 수도 같음. feature map size가 절반으로 된다면, 필터의 수는 두 배.
⇒ layer당 시간 복잡도 보존.
4) pooling이 아닌 conv. layer(stride = 22)로 downsampling.
5) GAP
6) size가 1000인 fully-connected layer with softmax 사용.

The total number of weighted layers is 34.

Residual Network

1) Baseline : plain network.
2) shortcut connection.
3) 입출력의 차원이 같다면 identity shortcut. … 실선
4) 출력의 차원이 증가하였다면, … 점선
Zero padding or Project shortcut With stride 22.

3.4 Implementation

Input data
Resized with shorter side randomly sampled in [256,480][256,480].
Horizontal flip and mean subtracted.
224×224224\times224 random crop.
Standard color augmentation.

Normalization
Batch normalization

Optimizer
SGD with a momentum of 0.90.9

Minibatch
size = 256256

Learning rate
Start from 0.10.1 and divided by 1010 when the error plateaus.
Trained for up to 60×10460\times10^4

Iteration
iteration = 60×10460\times10^{4}

Regularization
weight decay = 0.00010.0001
Not dropout


4. Experiments

4.1 ImageNet Classification

Plain Networks
18-layer plain net과 34-layer plain net 비교.

34-layer plain net이 18-layer plain net보다 validation error가 높음.
BN으로 훈련하였기에, forward propagation시에 variance가 0이 되지 않았고 backward propagation시에 gradient가 소실되지 않음.
따라서 이는 vanishing gradient가 아닌 degradation.

Residual Networks
18-layer residual net과 34-layer residual net 평가.
shortcut을 위해 identity mapping 사용.
차원 증가를 위해 zero-padding ⇒ params 추가 없음.

1) 34-layer ResNet이 18-layer ResNet보다 성능 우수. 이는 degradation 문제 해결되었으며, depth가 증가하여도 정확도 우수.

2) 34-layer ResNet이 34-layer plain net보다 성능 우수. train error가 줄어들었으며, deep 시스템에서 residual learning의 성능을 보여줌.

3) 18-layer plain/residual net의 성능은 비슷. 다만 residual net의 수렴 속도가 더 빠름. 즉, ResNet은 빠른 수렴 속도를 보여줌.

Identity vs Projection Shortcuts (WsW_s)
(A) Zero-padding shortcut
차원을 증가시키고 모든 shortcut은 parameter-free.
(B) Projection shortcut
차원을 증가시키고 다른 shortcut은 identity.
(C) All projection shortcut

성능은 A < B < C.
A < B : A는 no residual learning.
B < C : projection shortcut에 의한 params 추가.

The small differences among A/B/C indicate that projection shortcuts are not essential for addressing the degradation problem.

Deeper Bottleneck Architectures … help

Because of concerns on the training time that we can afford, we modify the building block as a bottleneck design.

residual 함수 F(x)F(x)에 대해서, 세 개의 1×11\times1, 3×33\times3, 1×11\times1 convolution 사용.
1×11\times1은 차원을 늘리거나 줄이는데 사용되며 bottleneck 구조를 만듦.


Reference
ResNet 논문
ResNet (Deep Residual Learning for Image Recognition) 논문 리뷰
[논문 리뷰] Deep Residual Learning for Image Recognition - ResNet(1)
Deep Residual Neural Network

0개의 댓글