6 minute read

ResNet Paper Review

Original Paper

개요



  • 일반적으로 CNN 모델은 층이 더 많아(깊어)질 수록 더 복잡한 특징을 학습 할 수 있다.
  • 복잡한 패턴을 이해하기 위해서는 층이 깊어질 수 밖에 없다.
  • 그러나, 네트워크의 깊이가 깊을수록 Gradient vanishing(기울기 소실)과 Gradient explosion(기울기 폭발) 문제 가진다.
  • 이러한 문제는 모델이 학습을 잘 하지 못하는 결과를 초래한다.
  • 이 문제를 해결하기 위해 Residual[^1] learning(잔차 학습) 기법을 사용했다.


  • 그 결과 깊은 깊이의 신경망 학습에서, Plain Network 에 비해 Residual Network 가 더 낮은 에러율을 보여준다.
    • 심지어, 추가적인 계산 복잡도를 요구하지 않는다!

Figure


문제 제시



  • 기존 Convolution Neural Network(CNN)은, 레이어가 깊어질수록 더 많은 특징을 추출, 학습할 수 있다.
    • = 네트워크의 깊이가 깊어질 수록 더 많은 특징 레벨을 추출할 수 있다.


  • 그러나, 단순히 레이어만 깊게 쌓는 것은 여러 문제가 발생한다.
  • 대표적으로, Gradient Vanishing, Gradient Explosion 문제 등이 발생한다.
  • 이러한 문제는 VGG 네트워크에서 제안한: normalized initialization, intermediate normalization layers 기법을 통해 일부 해결되었다.
    • To start converging for stochastic gradient descent(SGD) with back-propagation
      • SGD 와 역전파 기법을 통해 네트워크가 성공적으로 converging(수렴, 학습) 할 수 있도록 한다.
    • 중간 정규화 레이어: Batch Normalization(BN) 과 같은 기법을 사용하여 네트워크의 중간에서 데이터를 정규화
    • Normalized initialization(정규화된 초기화): 신경망의 가중치를 적절히 초기화하여, 네트워크의 학습 초기에 기울기 소실 문제를 줄이는 방법


  • 이러한 기법을 사용함에도 불구하고, 더 깊은 레이어를 사용할 때 수렴이 가능 하지만, degradation problem has been exposed. (성능 저하 문제가 발생한다.)
  • 네트워크 깊이가 증가함에 따라 정확도가 saturated(포화 상태)에 이르렀다가(더이상 증가하지 않는 시점), 감소하게 된다.
  • 이러한 성능 저하 문제는 Over-fitting 문제가 아니며,
  • 적절한 깊이를 가진 모델에 더 많은 레이어를 추가할 때, leads to higher training error.

ut

  • Figure 1. Plain network 에서, 레이어가 깊어질 수록 오류율이 커지는 모습을 볼 수 있다.
  • Identity mapping(항등 함수) 기법이 추가된 더 깊은 네트워크는 레이어가 깊어질수록 성능 저하 문제를 해결하기 위해 잔차 학습을 수행하며, 항등 함수를 통해 입력을 그대로 전달하지만, 여전히 최적화 과정에서 학습 오류가 발생할 가능성은 존재한다.


개선 방법 제안



Core: Residual Learning

Overview

이 논문에서는 이러한 문제의 해결 방법으로 Residual Learning(잔차 학습) 기법을 제시한다.

  • 명시적으로 residual mapping 을 정의하여 학습하는 것.

youtube_나동빈 출처


  • $H(x)$ 는 의도한, optimal function 으로, 신경망이 여러 개의 비선형 레이어들을 통해 점진적으로 근사해야 하는 목표 함수이다.
    • 일반적인 Neural network 의 역할은 여러개의 non-linear 한 layer 를 이용해서 점진적으로, 복잡한 함수를 근사(학습)하는 것이 목표이다.
  • 이는 residual function 를 근사하는 것과 동일하다.
  • 즉, $H(x)$를 학습하는 것 보다 $F(x) = H(x)-x$ 를 학습하는 것인데,
  • 이는 네트워크가 전체 목표 함수를 학습하는 것이 아니라, 입력과 출력 사이의 차이(잔차) 만 학습하는 것이다.
  • 이 구조는 결과적으로, residual function $F(x)$ 를 학습하여 최종 출력으로 $F(x)+x$ 형태가 된다.
  • 이는 $H(x)$를 학습하는 것 보다 더 효율적이다.


Additional Explain

  • $H(x)$: 신경망이 학습해야 할 목표함수. 즉, $x$ 를 통해 얻고자 하는 최종 출력 값
  • $x$: 입력 값 $x$ 와 동일하지만, 이를 목표 함수 $H(x)$ 에서 뺀다.
    • I.e., $H(x)-x$목표 함수 $H(x)$ 와 입력 $x$ 간의 차이를 의미한다.
    • 이를 Residual (잔차) 라고 이야기하며, 네트워크가 학습해야 할 부분이다.
  • 이 표현의 의미는, 잔차 함수 $F(x) = H(x) - x$ 를 학습함으로써, 네트워크는 $x$ 로 부터 어떤 변화(잔차)를 학습하게 된다는 것이다.
    • 네트워크는 입력 $x$목표 출력 $H(x)$ 사이의 잔차를 학습하는 것
  • 최종적으로, 네트워크는 잔차 $F(x)$ 를 학습한 후, $x$ 에 이를 더해 $F(x)+x$ 형태로 최종 출력을 얻는다.
    • 여기에서 $F(x)$$H(x)-x$로 부터 계산된 것이므로, 결과적으로 $H(x)$ 를 얻는것과 같다.


Identity Mapping By Shortcuts

youtube_나동빈 출처

Residual Block

  • 잔차 학습을 몇 개의 층마다 묶어 적용한다.

ut

  • 이러한 묶음 덩어리를 Block 이라고 칭한다.
  • Block 의 구조는 다음과 같이 정의된다.
    • $y=F(x,$ { $W_{i}$ } $)+x$
      • Block 의 x, y 는 각각 input, output 벡터 이다.
      • $F(x,$ { $W_{i}$ } $)$는 학습 할 residual mapping 을 의미한다.
        • 이 함수는 여러개의 레이어와 매개변수 (Weight $W_{i}$) 로 이루어져 있다.
  • E.g., Fig 2. 의 2개의 레이어에서 $F=W_{2}\sigma (W_{1}) + x$ 로 표현될 수 있다.
    • $\sigma$ 는 non-linear activation function (비선형 활성화 함수, ReLU)


Shortcut Connection (단축 연결)

  • Residual function $F(x,$ { $W_{i}$ } $)$ 와 입력 $x$ 를 엘리먼트 단위로 더해주는 역할 수행
  • 이를 통해 neural network 가 residual function 만 학습하고, 입력은 그대로 다음층으로 전달한다.
  • 추가적인 파라메터가 사용되지 않기 때문에 계산 복잡도가 증가하지 않는다.


Identity Mapping

입력값을 그대로 출력하는 함수, 항등함수 $f(x) = x$

Deep Learning; 레이어를 거치면서 입력이 변형되지 않고 그대로 출력되는 경우.

즉, 네트워크의 특정 층이나 shortcut connection 을 통해 입력 데이터를 그대로 다음 층으로 전달하는 것

Residual Learning

잔차 학습에서는 네트워크의 각 층이 복잡한 합수를 직접 학습하는 대신, 잔차(변화의 차이)를 학습하도록 설계.

  • 이때 Identity mapping 는 중요한 역할을 수행하는데, optimal function 이 identity mapping 일 경우, 네트워크는 입력을 그대로 출력하게 만들어야 한다.
  • 항등 함수를 학습하는 것이 목표라면, 네트워크가 여러 비선형 층을 통해 복잡한 변형을 학습하는 것 보다, residual 를 0으로 만드는 것이 더 쉽기 때문.


Identity mapping 의 역할

Shortcut connection
  • 단축 연결
  • Residual Network 에서 단축 연결을 사용해 입력을 다음 레이어로 그대로 전달하는 경우, 이 연결이 항등 함수를 수행하게 된다.
  • 입력값이 변형되지 않고 다음 레이어로 전달되므로, 네트워크가 쉽게 최적화 할 수 있게 만든다.


최적화 단순화
  • 네트워크가 항등 함수를 학습할 때, 여러 층을 통과하며 복잡한 변환을 학습하는 것 보다, residual 를 0으로 만들어 항등 함수에 가깝게 만드는 것이 더 쉽다.


Dimension Matching

  • $x$ 와 $F(x,$ { $W_{i} $ } $ )$는 차원이 동일해야 하지만, 차원이 다를 경우(예를들어, 입력과 출력의 채널 수가 다른 경우) 다음 기법을 따른다.
  • Linear Projection(선형 투영) $W_{s}$ 를 사용하여 차원을 일치시킨다.
  • 이를 통해 잔차 함수와 입력 간 덧셈이 가능하다.
    • $y=F(x, $ { $ W_{i} $ } $)+W_{s}x$


  • Identity shortcuts 는 입력과 출력이 같은 차원일 때 직접 사용되나, 차원이 증가할 때 다음 옵션을 고려할 수 있다.
  • 아래 옵션을 적절히 사용해야 한다.
  • 특정 아키텍처 모델에 따라 장 단점이 존재.

Option A

  • Identity mapping 을 사용하지만, 입력과 출력의 차원을 맞추기 위해 Zero padding 을 사용한다.
  • 추가적인 파라메터 또는 모델 복잡도를 증가시키지 않음


Option B

  • 1x1 Convolution 을 사용한 projection shortcut 을 적용합니다.
  • 학습을 위한 추가적인 가중치가 필요하다.


Stride of 2

  • 차원이 다른 두 레이어 사이에서 shortcut 을 적용할 때는 stride of 2 방법으로 shortcut 을 적용.
  • feature map 의 크기가 레이어 사이에서 축소될 때 주로 사용되는 방식.


using example

u

  • ResNet- 34 A, B, C 는 각각의 기법을 달리한 결과이다.
  • (A) zero-padding shortcuts are used for increasing dimensions, and all shortcuts are parameter-free (the same as Table 2 and Fig. 4 right);
  • (B) projection shortcuts are used for increasing dimensions, and other shortcuts are identity
  • (C) all shortcuts are projections.

ut


Flexible

  • Residual Function $F$ 의 형태는 유연하다.
  • (residual block 마다) 두 개 이상의 레이어를 포함할 수 있지만, 한 개의 단일 레이어에서 사용 할 경우 선형 레이어와 유사하게 동작한다.
    • 이는 곧 have ont observed advantages. (성능 증가가 없다.)
    • $F(x,$ { $W_{i} $ } $)$ 가 여러 weight 의 중첩한 정보를 가질 때 성능 향상이 존재한다.
  • Fully connected layer 뿐만 아니라, convolution layer 에서도 적용할 수 있다.


Network Architecture

  • Each convolution layer 를 거칠 때 마다 Batch Normalization(BN) 사용
  • Learning rate 를 점점 줄여가는 테크닉을 사용.


Figure

  • 기존 Plain network 에서, 네트워크의 깊이를 증대시킬 때 발생하는 에러율 증가는 vanishing gradients 의 이유로 예측되었으나, 그렇지 않았다.
  • 학습 과정에서 forward pass 또는 backward pass 에서 어떠한 signal 값이 점진적으로 사라지는 현상을 발견하지 못하였다.
  • 오히려, exponentially low convergence rate. 즉, 이러한 수렴률이 기하급수적으로 낮아지는 것이 문제인 것으로 예측한다.
    • convergence rate: 최적화 기법 중 일부로, 수렴을 위해 필요한 epoch 이나 수렴 난이도를 이야기하는 척도
  • 너무 불필요하게 깊은 깊이는 당연하게도, Over-fitting 을 야기하기 때문에 주의해야 한다.



Footnote

1: Residual(잔차)

Regression(회귀 분석)에서 관측값에서 회귀식에 의한 추정량을 뺀 값

  • 잔차 = 관측값 - 예측값

  • 오차와의 차이

    • 오차는 모집단의 회귀식에 대한 편차값인데 반해, 잔차는 표본 집단의 회귀식에 대한 편차값.
    • I.e., 오차는 관측값을 톡해 예측한 가정이 실제와 얼마나 부합하는 지의 정도.
    • 잔차는 예측한 가정이 관측값을 얼마나 잘 반영하고 있는지에 대한 의미.


Reference[^2]

Residual[^1]: 잔차 학습 Reference[^2]: Deep Residual Learning for Image Recognition Paper / Youtube 동빈 나, ResNet: Deep Residual Learning for Image Recognition 외 다수 영상, 블로그

Leave a comment