🧐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한 시각적 인식 작업에서도 많은 이익을 받음

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은 모든 시스템이 최적화하는 방식이 다 다르다는 점을 의미
- 더 얕은 아키텍처와 더 많은 계층을 추가한 깊은 아키텍처를 고려해보자.
- 더 심층적인 모델 구축으로 인한 해결책이 존재:
- 추가된 레이어가 identity mapping
- 추가되지 않은 레이어들은 얕은 모델로부터 학습 된 레이어
- 이러한 구성의 솔루션의 존재는 깊은 모델은 얕은 모델보다 더 높은 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 데이터에서 다음과 같은 높은 결과를 보임
- Depth가 깊어도 최적화가 쉽지만 기존의 Plain net에서는 Depth가 증가하면 error 증가
- Depth가 깊어져도 높은 accuracy를 얻음
728x90