🧐BIG DATA/🤖딥러닝

[논문 리뷰] Deep Residual Learning for Image Recognition (1) -Abstract, Introduction

와이드윤 2021. 8. 8. 17:42
728x90

티스토리의 화려한 부활(?)은 장대한 논문 리뷰로 시작하기로 했다..!

그 시작은 바로.. ResNet!..
거의 해석하는 수준이긴한데... 그래도 뭐... 화이팅!

Abstract

  • 딥러닝에서 neural networks가 깊어질수록 성능은 좋아지지만 train은 어려움
  • 이 논문에서는 network가 깊어지더라도 더 쉬운 training을 하기 위한 잔차학습 프레임워크를 제공
  • Unreferenced function 학습 대신에 layer input을 기준으로 학습 잔차 함수(learning residual functions)로 layer를 재구성
  • 잔차학습은 최적화하기에 더 쉽고, depth를 증가시킴으로써 accuracy를 얻을 수 있음을 경험적 증거(empirical evdence)로 증명
  • ImageNet 데이터셋에서, VGG Net보다 8배 깊이인 152개의 layers를 통해 잔차 네트워크를 평가하였고, 더 낮은 복잡성을 보임
  • 잔차 네트워크는 ImageNet test set에서 3.57%의 오류를 달성, ILSVRC 2015에서 1등을 차지하였고 CIFAR-10에서 100개에서 1000개의 layer로 분석을 진행
  • (이하 생략)

Introduction

  • CNN은 이미지 분류에 크나 큰 돌파구를 가져왔음
  • 심층 신경망은 end-to-end 멀티 레이어 방식으로 low/middle/high 레벨의 feature들을 classifier를 통합
  • 쌓인 레이어 수(Depth)로 feature의 레벨을 강화할 수 있음
  • 최근 네트워크의 깊이가 매우 중요하다는 결과가 드러남
  • ImageNet 데이터셋에 대한 주요 결과는 모두 16~30 depth의 '매우 깊은' 모델을 사용
  • Deep models로부터 많은 non-trivial한 시각적 인식 작업에서도 많은 이익을 받음

CIFAR-10에서의 Training Error(좌)와 Test Error(우), 각각 20레이어층과 56레이어층을 비교하고 있음

56-layer가 20-layer보다 Train / Test 양 쪽 모두 더 높은 Error 발생

  • Depth의 중요성에 따라 한 가지 의문이 발생
"더 많은 Layer들을 쌓는 것만큼 더 쉽게 네트워크를 학습시킬 수 있는가?"
  • 이 질문에 대한 문제점은 악명 높은 문제: Vanishing / Exploding gradients (수렴을 방해)
  • 하지만, 이 문제는 다양한 방법들로 개선되어왔음
    • Normalized initialization
    • Intermediate normalization layers
      ➡︎ 수십개의 계층을 가진 네트워크가 역전파를 통해 SGD를 위해 수렴을 시작할 수 있게 함

  • 심층 신경망이 최고 수준의 성능에 도달할 때, Degradation 문제 발생 (네트워크 깊이가 깊어짐 ➡︎ 정확도 포화 및 급감)
  • 이러한 Degradation 문제는 Overfitting에 의해 발생한 것이 아님
  • Why? Layer의 수가 더 추가되었기 때문인데 test error와 더불어 train error 역시 증가했기 때문

  • Degradation은 모든 시스템이 최적화하는 방식이 다 다르다는 점을 의미
  • 더 얕은 아키텍처와 더 많은 계층을 추가한 깊은 아키텍처를 고려해보자.
  • 더 심층적인 모델 구축으로 인한 해결책이 존재:
    1. 추가된 레이어가 identity mapping
    2. 추가되지 않은 레이어들은 얕은 모델로부터 학습 된 레이어
  • 이러한 구성의 솔루션의 존재는 깊은 모델은 얕은 모델보다 더 높은 training error를 발생하면 안된다는 것을 의미
  • 하지만, 실험에 따르면 현재 구축된 솔루션과 비교할 수 있거나 더 나은 솔루션을 찾을 수 없음 (혹은 실현 불가능한 시간)

  • 이 논문에서는 Degradation 문제를 deep residual learning을 통해 해결하고자 함
  • 레이어를 쌓을 때마다 기존에 존재했던 mapping에 fit하는 대신에 residual mapping에 fit 시킴

  • 기존의 네트워크는 x를 input으로 받으면 레이어를 거쳐 H(x)를 출력 ➡︎ 입력값 x를 타겟값 y로 mapping하는 H(x)를 얻기 위함
  • Residual learning에서는 H(x) - x (➡︎F(x) + x)를 출력 (기존의 출력과 input의 차)
  • 논문에서는 기존의 unreferenced mapping보다 residual mapping이 더 최적화하기 쉽다고 가정
  • 만약, identity mapping이 최선이라면 비선형 layer에 의해 identity mapping에 fit하는 것보다 residual mapping을 0과 가깝게 만드는 것이 더 쉬움

  • F(x) + x는 Shortcut connection이 포함된 순방향 신경망에 의해 실현될 수 있음
  • Shortcut Connection: 한 개 이상의 레이어를 skip하여 진행
  • 논문에서는 shortcut connection은 identity mapping만 수행, 출력물은 레이어에 더해짐 (오른쪽 그림과 같이)
  • Identity shortcut connection은 추가적인 파라미터나 계산 복잡성을 추가시키지 않음
  • SGD는 역전파를 통해 전체 네트워크를 train 가능하고 라이브러리를 통해 구현 가능

 

  • ImageNet과 CIFAR-10 데이터에서 다음과 같은 높은 결과를 보임
    1. Depth가 깊어도 최적화가 쉽지만 기존의 Plain net에서는 Depth가 증가하면 error 증가
    2. Depth가 깊어져도 높은 accuracy를 얻음
728x90
댓글수0