[논문 리뷰] Deep Residual Learning for Image Recognition

SimBa's avatar
Feb 08, 2025
[논문 리뷰] Deep Residual Learning for Image Recognition
  • Deep neural network는 학습시키기 어려움 → 깊은 신경망의 학습을 용이하게 하는 redisual learning framework를 소개함
  • residual network는 optimize하기도 쉽고, 정확도도 잘 나옴
  • ILSVRC 2015에서 3.75% 의 error로 1등
 

1. Introduction

  • deep network : low/mid/high 수준의 특징과 end-to-end multi-layer으로 classifier(분류기)를 통합
  • 최근의 연구에서는 network의 길이가 매우 중요하다는 것을 잘 보여줌
  • non-trivial visual recognition마저도 매우 깊은 모델에서 좋은 성능을 보임
  • Is learning better networks as easy as stacking more layers?
    • 문제점 : 기울기 소멸 / 폭발 문제
    • 해결 : normalized initialization, intermediate normalization layers → back-propagation을 통해 stochastic gradient descnet(SGD)로 수십 개의 layer가 수렴을 할 수 있게 해줌
  • 깊은 network가 수렴 가능해지자 발생한 문제점 → degradation
    • degradation : 정확도가 더이상 오르지 않음
    • overfitting에 의해 발생 X
    • 오히려 더 많이 layer를 쌓는 것이 더 높은 training error를 발생시킴
    • 아래 그래프처럼, 오히려 더 깊은 layer를 쌓은 56개의 layer model이 더 많은 training error이 발생
    • 즉, 모든 system이 optimize하기에 용이한 것이 아님
notion image
  • 따라서, 본 연구에서는 degradation 문제를 deep residual learning 방식으로 해결하고자 함
notion image
  • 각각의 layer들을 직접적으로 연결하는 것이 아니라, residual mapping시킴
    • 입력 에 대해 가 아닌, residual(잔차) 를 학습
    • 라고 하면 (즉, residual = ) 원래의 매핑인 H(x)는 다음과 같이 표현됨 →
    • notion image
  • residual mapping을 최적화하는 것이 원래의 unreferenced mapping을 최적화하는 것보다 쉽다고 가정
    • mapping : 특정 입력 를 주었을 때, 원하는 출력 를 생성하는 transform 과정
    • identity mapping(redisual = 0)이 최적 → 복잡한 mapping을 학습할 필요 없이 그냥 residual을 0으로 수렴하게 만들면 됨
  • 는 feedforward neural network에서 shortcut connection으로 구현됨
    • shortcut connection : 하나 이상의 layer를 건너뛰는 연결
    • 본 연구에서는 shortcut connection이 identity mapping을 수행 → 그 output은 stack layer들의 output에 더해짐 가 stack layer의 output, 가 shorcut connection의 output → 최종 output =)
    • 즉, stack layer은 라는 만을 학습하게 됨
    • 신경망이 깊어질수록, stack layer의 학습 결과인 를 신뢰하기가 어려워지는데(degradation), 이때 shortcut connection으로 원래의 input값인 기준값 를 중심으로 학습을 하게 되니까 더 안정적인 학습 가능
    • 단순히 output끼리의 덧셈 연산만 추가 → 새로운 파라미터 추가 X, 계산 복잡도 증가 X
    • back-propagation을 통해 SGD에 의한 end-to-end 학습 가
  • 본 연구에서 보여주고자 하는 것
    • deep residual net은 최적화하기 쉽지만, plain net(stack layer)은 최적화하기 어렵고 깊이가 증가함에 따라 더 높은 training error을 보여줌
    • deep residual net은 깊이가 증가함에 따라 정확도가 올라감
  • ImageNet dataset에 대해, VGG보다 단순하지만 152개의 layer나 쌓았음
 
 
  • Residual Represeatation
    • VLAD (Vector of Locally Aggregated Descriptors)
      • 이미지 표현 기법으로, input data가 dictionary의 각 중심점과 얼마나 다른지를 resicual vector를 기반으로 표현 생성
    • Fisher Vector
      • VLAD의 probabilistic version
      • input data를 PDF로 표현하고, 그에 대한 잔차를 계산하여 표현 생성
    • original vector를 인코딩하는 것보다, residual vector를 인코딩하는 것이 더 효과적이라고 알려져 있음 → 이미지 검색 및 분류에서 좋은 성능을 보임
    • Partial differential equations (PDEs)
      • 물리적 현상을 수학적으로 모델링하는 데 사용되는 방정식
      • Multigrid 방법 : multi-scale로 문제를 분해하여 해결 → coarse scale에서 발생하는 오차를 fine scale에서 수정하며 문제 해결
      • Hierarchical Basis Preconditioning : 두 scale 간의 residual vector를 변수로 사용
    • residual solution을 사용 → 더 쉽게 최적화하게 ㄱ함
  • Shortcut Connection
    • 초기의 multi-layer perceptrons(MLPs) : input에서 ouput으로 연결하는 linear layer을 추가
    • 몇몇의 intermediate layer가 기울기 소실/폭발 문제를 해결하기 위해 auxiliary classifiers(보조 분류기) layer에 직접적으로 연결됨
    • highway networks : gating 함수를 이용한 shortcut connection
      • gates들은 본 연구의 identity shortcut과 달리 파라미터가 필요하며, data-dependent하다.
      • gated shortcut “closed(0에 근접함)” → highway network는 non-residual function을 나타냄
      • gate를 사용하는 highway network는 100개 이상의 layer가 쌓이는 것처럼, network의 깊이가 매우 깊어질 때, 정확도를 효과적으로 향상시키지 못했음
      • 이와 달리, 본 연구에서 제안한 indentity shortcut에서 문이 닫히지 않음 (즉, 항상 정보를 전달하며, residual function을 학습)
       
       

3. Deep Residual Learning

3.1 Residual Learning

  • : 몇몇 stack layer에 의한 underlying mapping
  • : stack layer의 첫 번째 layer의 input
  • 여러 비선형 층이 복잡한 함수를 점근적(asymptotically)으로 근사할 수 있다고 가정 → residual functions, ()도 점근적으로 근사 가능
  • 따라서, stack layer가 를 근사하기를 기대하기보다, stack layer이 residual function인 를 근사하게 하자 → 그렇게 되면, original function은 가 됨.
  • identity mapping으로 layer을 추가
    • 더 깊은 모델은 더 얕은 모델보다 training error가 더 크지 않아야 함
    • 하지만, degradation 문제에서, 여러 nonlinear layers들을 사용 → identitiy mapping을 근사하는데 어려울 수 있음
    • 해결책 : redsidual learning reformulation → identity mapping이 최적이라면, 단순히 여러 nonlinear layer의 가중치가를 0으로 수렴시키면 identity mapping에 근사할 수 있음
    • 즉, 단순하게 으로 학습하면 됨
  • identity mapping이 최적인 이유
    • preconditioning : 최적 함수가 완전히 새로운 함수를 학습하는 것보다, 기존의 identity mapping의 작은 변화를 학습하는 것이 더 쉬움 → residual learning은 학습 문제를 효과적으로 단순화함
💡
[zero mapping과 indentity mapping]
  • zero mapping
    • input 를 항상 0으로 매핑하는 함수
    • input 가 무엇이든 상관없이, output은 항상 0
  • identity mapping
    • input 를 그대로 출력
  • zero mapping은 근사하기가 어렵지만, identity mapping은 근사하기가 용이한 이유
    • zero mapping
      • residual function 의 관점에서 생각해보자. 을 만족하려면,
      • 즉, 는 input 와 크기가 동일하지만, 부호가 반대인 값을 출력해야 함
      • 따라서, 정확히 반대 부호의 값을 학습해야하므로, 복잡한 nonlinear 조합을 만들어냄 → nonlinear이 복잡할수록, 신경망의 깊이가 깊어질수록 기울기 소멸 문제나 최적화의 어려움 발생 → 근사하기 힘들어짐
    • identity mapping
      • residual function 의 관점에서 생각해보자. 를 만족하려면,
      • 즉, 는 input이 무엇이든지 단순히 0에 가까운 출력만 내면 됨
      • 은 가중치 값들이 초기값에 가깝거나 작게 유지되면 됨 → 최적화가 간단 → 근사하기 쉬움
 

3.2 Identity Mapping by Shortcuts

  • 모든 몇몇의 stacked layers에 대해 residual learning을 선택
notion image
  • : input vector
  • : output vector
  • : residual function에서 사용되는 학습 가능한 파라미터와 bias (보통은 특정 conv layer의 kernel을 나타냄)
notion image
notion image
notion image
  • residual finction
    • 학습해야 할 residual learning
    • 입력 x를 입력받아, 이를 변환하여 학습해야 하는 residual을 출력하는 함수
    • 위의 그림처럼 conv layer, ReLu 등을 포함
    • 본 연구에서는 2~3개의 layer를 포함
    • 만약, F가 single layer라면, linear layer인 와 유사 → 아무런 이점 X
  • : multiple conv layer를 나타낼 수 있음 → element-wise addition으로 단지 두 개의 feature map을 채널끼리 더하면 됨
 

3.3 Network Architecture

notion image
  • Plain Network
    • conv layer → (3, 3) filter
      • same output feature map size
      • 동일한 수의 filter
      • feature map size가 절반 됨 → filter의 개수 2배 됨 (layer간의 시간 복잡도를 유지하기 위해)
    • downsampling (stride = 2) → feature map의 크기를 줄임
    • average pooling → fc layer로 전달 → 1000-way softmax를 사용한 FC layr →
    • VGG net보다 filter의 개수가 적고, complexity가 낮음
  • Residual Network
    • plain network를 기반으로 shortcut connection을 추가
    • 그냥 화살표 : input dim. = output dim. → 3.2의 함수 그대로 적용
    • 점땡이 화살표 : input dim. < output dim.
      • (A) : 증가한 차원만큼 0으로 패딩해서 그래도 3.2의함수 적용(추가적인 파라미터 필요 X)
      • (B) : 3.2의 projection shortcut 사용 → (1, 1) convolution 사용 (입력과 출력의 channel dimension을 맞추기 위해 → 가로세로는 그대로 유지한 채 filter의 개수를 조정해서 원하는 수만큼으로 channel을 조정할 수 있기 때문)
      notion image
    • 위의 두 경우 모두 stride = 2 로 수행 → feature map 크기 줄임
💡
[FLOP]
  • 딥러닝 모델의 계산 복잡도나 연산량을 평가하는 수치
  • 딥러닝 모델에서 이루어지는 곱셈-덧셈 연산(multiply-adds)의 총 개수
notion image
 

3.4 Implementation

(VGG net과 데이터 전처리는 동일)
  • Train
    • shorter side로 scale augmentation
    • (224, 224)로 randomly crop
    • horizontal flip
    • convolution → batch normalizaion → activation
    • mini-batch size = 256 → SGD 사용
    • learning rate = 0.1 → error가 plateaus하면 10으로 나눔
    • 반복횟수 :
    • weight decay = 0.0001
    • momentum = 0.9
    • dropout 사용 X
  • Test
    • 10-crop testing → 이미지를 multiple scale을 통해 여러 scale로 변환 → 각 scale에서 10-crop testing을 수행
    • VGG net과 동일한 FC layer 구조
    • multiple scale의 점수를 평균냄
    • (224, 256, 384, 480, 640) 에서 shorter side로 resize
 
 

4. Experiments

4.1 ImageNet Classification

notion image
  • Plain Network
    • 18-layer와 34-layer 비교
      • Table 2에서 34-layer이 더 높은 validation error 발생
      • notion image
      • 위와 같이 plain network에서는 오히려 34-layer가 더 높은 training error 발생 → degradation 문제 발생
      • 이러한 degradation문제는 기울기 소멸 때문이 아닌 것으로 추정됨 (Why? batch normalization을 수행했기 때문)
  • Residual Network
    • 18-layer와 34-layer 비교
      • validation error와 train error 둘 다에서 34-layer이 더 낮은 error를 보임 → degradation 문제 해결
      • notion image
      • training error를 잘 줄임 → Table2에서 볼 수 있다시피 top-1 error를 3.5% 줄임 → residual learning이 deep system에서 효과적임을 증명함
      • 18-layer plain/residual nets가 둘 다 비교적 정확함. 하지만, residual nets이 더 빠르게 수렴 → ResNet이 최적화하기에 더 쉬움
  • Identity vs. Projection
    • notion image
    • (A) : dimension 증가를 위한 zero-padding shorcut
    • (B) : dimension이 다를 때만, dimension 증가를 위한 projection shorcut, 다른 shorcut들은 identity
    • (C) : 모든 shortcut이 projection (즉, 모든 shortcur에 (1, 1) conv 사용)
    • A~C 별로 차이 X → projection shotcut이 degradation을 해결하기 위해 필수적이지 X
    • identity shortcut : bottleneck architecture의 복잡도를 향상시키지 않는다는 점에서 projection shortcut보다 중요
  • Deeper Bottleneck Architecture
    • notion image
    • 학습 시간을 위해 building block를 bottleneck design으로 변경
    • (왼) building block // (오) bottleneck degisn
    • identity shorcut는 parameter-free이다. (즉, input을 그대로 output에 더함)
      • 따라서, indentity shortcut은 계산 비용이 적고, 모델 크기를 증가시키기 않기 때문에 효율적임
      • bottleneck architecture에서 이 identity shortcut을 사용하면 모델 크기가 계산 시간을 크게 증가시키지 않으면서 효율적인 학습 가능
      • projection shorcut은 채널 수를 맞추는 방식이기 때문에 dimension의 변화가 일어남 → 계산량과 모델의 크기가 증가 → identity shorcut이 더 효율적임
      💡
      [building block와 bottleneck design]
      • building blck
        • 네트워크를 구성하는 기본적인 단위
        • identity shortcut을 사용하여 각 layer를 이음 → 여러 layer가 모여 하나의 building block을 이룸
        • (3, 3) conv layer, (3, 3) conv layer, identity shortcut
      • bottleneck architecture
        • ResNet의 깊은 네트워크에서 연산을 효율적으로 처리하기 위해 도입된 최적화된 구조
        • 연산 비용을 출이기 위해 채널 수를 줄임
        • 즉, 채널 수를 압축하는 과정을 거쳐 계산량을 효율적으로 줄임
        • 구조
          • (1, 1) conv layer : 채널 수 줄임 (bottleneck)
          • (3, 3) conv layer : 공간적 특성 추출
          • (1, 1) conv layer : 채널 수 확장
    • 50, 101, 152-layer ResNet
      • notion image
        notion image
        notion image
      • bottleneck architecture를 사용해서 50, 101, 152개까지 layer를 쌓았고, 152 layer가 가장 성능이 좋았음 → layer를 깊게 쌓을수록 성능이 좋았음
 

4.2 CIFAR-10 and Analysis

notion image
  • Exploring over 1000 layers
    • 1202-layer가 110-layer보다 성능이 안 좋았음 → overfitting 때문인 것 같음
    • CIFAR-10이라는 작은 dataset에 비해 모델이 불필요하게 큼 → overfitting 발생
notion image
  • Analysis of Layer Response
    • non-residual function보다 residual function이 0에 가깝게 근사되는 것이 성능 향상에 도움이 된다는 주장을 뒷받침함
    • layer response : 네트워크 내 각 layer에서 생성되는 출력값 → residual의 크기를 나타냄
    • layer response가 작다 → residual이 작다 → 잔차를 거의 0으로 만들도록 학습하는게 유리함 → 잔차를 0에 근사시켜야 함 → identity mapping이 최적임
 
Share article

심바