상세 컨텐츠

본문 제목

[4주차 / DL 1팀 / 논문 리뷰 ] Deep Residual Learning for Image Recognition

2023 Summer Session/DL

by Martin Hoffman 2023. 8. 3. 13:23

본문

Abstract

깊은 neural network일수록 훈련이 어렵다는 단점을 보완하기 위해 residual learning framework를 제안한다. 이를 이용해 이전보다 더 깊은 Network를 가능하게 하며 훈련이 더 쉬워지게 하고, classification뿐만 아니라 detection, segmentation 등 다른 비전분야에서도 높은 성능을 보인다는 장점을 제시한다.

1. Introduction

 image classification과 backpropagation등은 이미지 분류에 큰 돌파구로 역할을 하며 여러 feature, level 등을 분류하게 되었다. 이 과정에서 layer의 depth에 관련해 더 많은 레이어를 쌓을수록 네트워크의 훈련이 쉬워질까라는 질문이 떠오르게 되었는데, 기울기의 vanishing/exploding 문제를 야기해 처음부터 convergence를 방해할 수 있다는 점을 단점으로 제시한다. 하지만 이는 normalized initialization이나 중간의 정규화 레이어로 바로잡을 수 있다.

깊은 네트워크가 수렴해가는 과정에서 깊을수록 이점이 있는 게 아니라 degradation이 생긴다. 이는 Overfitting만이 문제가 아니며 깊은 모델에 더 많은 레이어를 추가하는 것이 높은 training error를 보일 수 있다는 것이다. 

 degradation때문에 모든 시스템이 최적화되기는 어려우므로 identity mapping(입력값과 출력값이 동일한 매핑)을 제안하는데, 단순히 identity mapping을 쌓아 layer을 깊게 만든 deeper model은 피상적인 모델보다는 낮은 training error를 가져야 한다. 

 

저자는 이 문제를 H를 직접적으로 매핑하는 것이 아닌 F를 대신 학습하게끔 하는 deep residual learning framework를 도입해 해결하고자 한다. residual mapping을 최적화하는 것이 기존의 매핑보다 더 쉽다고 가정하며 극단적으로는 residual을 0으로 만드는 게(즉 H가 x가 되는 것) identity mapping을 비선형레이어들에 맞추는 것보다 쉽다고 말한다.

 

F(x)+x를 'shortcut connections'라고 칭하는데 이는 identity mapping을 수행하며 단순히 출력값에 x를 더해주는 것이기 때문에 추가적인 파라미터나 계산복잡도가 필요하지 않다. 

 

2. Related Work

저자는 residual representation은 이미 VLAD와 Fisher Vector 등에서 사용된 것처럼 이미 기존의 vector를 인코딩하는 것보다 효율적이라고 밝혀졌고 널리 사용되고 있는 방법이라고 말한다. 또한 Multigrid나 multigrid의 대안인 hierarchical basis preconditioning은 두 개의 scale(coarser, finer scale) 사이에 residual vector를 표현하는 변수에 의존하며 이같은 방법이 residual nature을 모르는 기존의 solver보다 더 빠르게 converge한다.

Shortcut Connection에 관련한 highway networks라는 논문을 제시하는데, 이 논문도 ResNet과 마찬가지로 깊은 네트워크를 학습하기 위한 논문이지만 본논문에서는 항상 residual function을 학습하며 identity shortcut을 사용한다는 점을 다른 점으로 언급한다.

3. Deep Residual Learning

3.1. Residual Learning

 

 H(x)를 stacked layer에 의해 피팅되는 underlying mapping이라고 하고, multiple nonlinear layer이 어떤 복잡한 함수에 근접하게 된다고 가정한다면 이것이 residual function F(x) = H(x) - x에 점근적으로 근접하게 된다고 가정할 수 있다. 따라서 우리는 H(x) 대신 F(x)를 예측하면 되는데 둘다 desired function에 가정에 의한다면 점근적으로 근접하지만 훈련의 용이함이 다르다.

 introduction에서 언급했듯 identity mapping으로 layer을 더 쌓는다면 최소한 더 깊은 모델이 얕은 모델보다 크진 않은 training error을 가질 것이라고 추측할 수 있는데, 쌓여있는 layer에 identity mapping을 수행하는 것은 어려울 수 있으므로 residual learning에 따르면 identity mapping을 기본적으로 수행해 레이어의 weight를 0으로 향하게끔하여 학습난이도를 쉽게하고자 한다.

 실제로는 최적의 solution이 identity mapping일 경우는 드물다. 하지만 optimal function이 zero mapping보다 identity mapping에 가깝다면 새롭게 function을 학습하기 보다 identity mapping에 관련한 섭동(perturbation)을 찾기 쉬울 것이다.

 

3.2. Identity Mapping by Shortcuts

위의 그림과 같이 y = F(x,{Wi}) + x로 building block을 정의할 수 있고 이런 shortcut connection은 추가적인 parameter이나 computation 복잡도 없이 수행할 수 있으며 이는 학습뿐만 아니라 plain과 residual network사이에 비교에서도 중요하다. 이 때 x와 F의 차원이 같아야하는데 input/output의 채널이 변해 차원이 같지 않다면 차원을 같게 하기 위해 선형 투영 Ws를 수행한다. Ws를 차원이 같을 때도 사용할 수 있지만 identity mapping만으로도 degradation문제를 다루기는 충분하기 때문에 차원을 맞출 때만 사용한다.

 residual function F의 형태는 유동적인데 다만 F가 single layer이 되는 경우 linear layer과 비슷하기 때문에 이점을 찾을 수 없다. 따라서 F가 실제로 여러 weight값들이 중첩될 때 유의미한 성능을 보이게 된다.

 

3.3. Network Architectures

 

비교 목적으로 기본적인 CNN 네트워크를 가져와 실험을 진행한다. 기본적인 네트워크는 VGG network에서 제안된 기법들에서 주로 영감을 받아 3*3 필터를 이용하며, output feature map size를 위해 필터 개수와 같은 개수의 레이어를 사용하며 feature map size가 반이 되는 경우 레이어당 시간복잡도를 보존하기 위해 필터의 개수는 2배가 되도록 한다. 별도의 pooling 없이 stride값이 2인 convolutional layer로 다운샘플링을 진행하며 네트워크의 마지막에 global average pooling layer을 사용해 1000개의 class로 분류할 수 있도록 네트워크를 설계한다. 결과적으로 본모델이 일반적인 VGG네트워크보다 더 적은 필터를 사용하면서도 복잡도 또한 낮게 나온다는 장점을 제시한다.

~ 점선으로 표시된 경우는 차원이 일치하지 않아 projection shortcut을 수행한 경우이다.

차원이 일치하지 않는 경우 차원을 증가시키기 위해 패딩을 한 후 identity mapping을 거치거나 1*1 convolution을 통해 차원이 일치하도록 projection shortcut을 거칠 수 있다.

 

3.4. Implementation

 

imagenet을 이용해 실제 구현한 경우 이미지에서 224*224 크기로 랜덤샘플화된 크롭이나 수평 flip된 것들을 사용해 매 convolution이후 batch normalization을 사용하였다. 또한 learning rate를 0.1부터 시작해 점차적으로 줄여가는 방법을 사용하고 weight decay와 momentum 등 hyper parameter을 지정해 실험을 수행한다. 

4. Experiments

4.1 ImageNet Classification

  • dataset : ImageNet 2012 classification dataset
    • 1.28million training images
    • 50k validation images
    • 100k test images
    • 1000 classes

Table 2) Top-1 error on ImageNet Validation

  • plain model 에서 34 layers의 error가 18 layers의 error 보다 높은 것을 확인할 수 있는데, 이는 "기울기 소멸 문제"로 인한 것이 아니라고 한다.
    • 각 plain networks 들은 Batch Normalization으로 forward를 진행
    • forward, backward에서 모두 신호가 사라지는 현상을 목격할 수 없었음
    • 원인은 exponentially low convergence rate 로 추정됨
      • *convergence rates : 최적화 기법에서 등장하며 수렴을 위한 epoch나 수렴 난이도를 언급하고자할 때 활용하는 척도
      • 미래에 더 연구될 것이라고 함
  • Residual Networks
    • 기본 구조는 plain network와 동일함 
    • 차이점은 1) zero-padding 2) identity mapping 이 추가된 것 이므로, extra prameter가 필요하지 않음
    • 결과
      1. table 2를 보면, resnet을 사용한 deeper network의 error가 더 적음
      2. fig 4를 보면, resnet 34 layers 위치 변화가 인상적
    • 초기 단계에서 더 빠르게 수렴하도록 함으로써 이러한 optimization 자체를 더욱 쉽게 만들어줌

fig4) training imageNet

  • Identity vs Projection shortcuts
    • 3가지 옵션을 두고 training을 진행 
      1. zero-padding shortcuts
      2. projection shortcuts (차원이 증가할 때만) 
      3. all projection shortcuts
    • 3번의 경우가 table 3) & 4) 에서 가장 좋은 성능을 보였지만, 그 차이가 크거나 눈에 띄는 정도는 않아 필수적인 옵션은 아닌 것으로 보인다.
    • 다만 bottle neck architecture에서는 복잡성을 줄여주는 데에 효과적인 것으로 드러남
     

table 3) error rates
table 4) error rates

  • Deep Bottleneck Architectures
    • 1 x 1 입력값의 차원을 줄임으로 3 x 3 layer가 조금 더 작은 차원의 입/출력값을 갖도록 함
    • identity shortcut은 parameter free 이므로, 이러한 bottleneck 구조에서 파라미터 수를 줄이는데 더욱 효과적으로 작용할 수 있음

4.2 CIFAR-10 and Analysis

  • dataset : cifar-10 dataset
    • 50k training images
    • 10k testing images
    • 10 classes
  • Imagenet에 비해 작은 편이므로 별도의 네트워크 구조를 생성
    • Architecture가 다르긴 하지만 구조 자체는 비슷함

summary of the architecture
table 5) classification error on CIFAR-10

  • n = {3, 5, 7, 9} ~ layer = 20, 32, 44, 56 ... 으로 바꿔가며 테스트를 진행
    • n = 18 인 경우 (layer = 110), lr을 0.1로 설정하니 수렴을 시작하기에 너무 커서 0.01로부터 조금씩 올리는 방법을 택함
    • 나머지 변수는 일반적인 방식으로 설정 ~ 마찬가지로 네트워크가 깊어질수록 파라미터 수 대비 좋은 성능을 이끌어낼 수 있었음

figure 6) Training on CIFAR-10

  • Analysis of Layer Responses
    • 각 3 x 3 layer의 경우에서 BN을 통과하고, non-linear 이전의 response 값을 측정했을 때, ResNet의 std가 0에 더 가까운 형태로 진행됨을 확인할 수 있음
    • ResNet 20, 56, 110을 비교해보면, 깊이가 깊어질 수록 진동의 정도가 적어짐을 확인할 수 있는데, 각 층이 신호를 덜 수정하는 경향을 포착할 수 있음

figure7) Standard Deviations of layer response on CIFAR-10

  • Exploring Over 1000 layers
    • n=200 인 경우, 1202-layer의 깊이를 갖게 되는데, 이 경우에도 training error < 0.1%나 최적화에 어려움은 없었지만 110 layer에 비해서도 성능이 좋지 않은 것을 확인할 수 있음 ~ overfitting
    • 작은 데이터 수에 대해 불필요하게 깊은 layer를 쌓으면 overfitting 문제를 피할 수 없음

4.3 Object Detection on PASCAL and MS COCO

  • PASCAL VOC 2007, 2012 and COCO 데이터셋에서도 기존 모델에 비해 좋은 성능을 보임을 확인

 

관련글 더보기

댓글 영역