Deep Residual Learning for Image Recognition
Abstract
- Neural network가 깊을수록 훈련시키기 어렵다 → Residual learning 기법으로 문제를 해결
- Optimization이 더 쉬우며 깊은 네트워크일지라도 accuracy를 증가시킬 수 있다
- 기존의 VGGNet보다 8배 더 깊은 152개 레이어로 모델을 구성했으나 complexity는 더 낮음
- COCO object detection에서 28% 나은 성능, ImageNet test set에 대해 3.57%의 에러율을 보임
Introduction
- 최근 Image classification에서 널리 사용되는 방법은 레이어를 많이 쌓는 것
- 레이어를 쌓아 점진적으로 low→mid→high level의 feature를 추출할 수 있도록 함
- 이때 network depth가 늘어날수록 전체 network의 표현력과 feature extraction 성능이 커지므로 depth가 상당히 중요한 요소
- 레이어를 쌓는 것은 쉬운데, 그 네트워크를 학습시키는 것도 쉬운가? → 그렇지 않다
- Vanishing/exploding gradients 문제: 여러 initialization methods + normalization layers 등의 기법으로 어느 정도 해결됨
- Degradation이라는 문제가 등장: accuracy가 정체되다 빠른 속도로 저하됨, layer을 쌓을수록 해당 문제가 심해지는 것을 볼 때 overfitting으로 인한 것이 아님
- Identity mapping을 통해 문제를 해결
- 기본 아이디어는 깊은 네트워크가 아무리 못해도 그보다 얕은 네트워크와는 동일한 성능을 내도록 하는 것
- 아무 reference도 없이 mapping을 학습시키는 것보다는 identity mapping을 제공하면서 나머지 residual을 학습시키는 것이 더 쉬울 것
- 극단적인 예시로 identity mapping이 가장 optimal한 상황인 경우, 다층 레이어로 처음부터 identity를 학습시키는 것보다는 차라리 identity mapping을 사용하고 나머지 residual을 0으로 맞추는 게 더 쉽다
Related Work
Residual Learning
- 전체 네트워크 중 일부분의 몇 개의 layer가 수행하는 mapping 함수를 $H({x})$라고 가정하면, 그 layer들이 $H({x})$ 대신 $F({x}):=H({x})-{x}$를 학습할 수 있도록 하자
- $H({x})$와 $F({x})+{x}$ 모두 이론상 우리가 목표로 하는 함수에 근사시킬 수 있지만 학습 난이도 차이가 존재 → 같은 함수를 근사하더라도 residual만 학습시키는 편이 더 효율적
Identity Mapping by Shortcuts
- Residual Learning을 매 몇 개의 레이어마다 적용 → 일종의 block과 같은 형태
$$
{y} = F({x}, {W_i})+{x}
$$
- $F({x}, {W_i})$는 학습시키고자 하는 residual mapping
- $F+{x}$연산은 shortcut connection에 의해 이루어지며 element-wise addition임
- input/output shape가 다른 경우 다음과 같이 linear projection을 이용할 수 있음 (${y} = F({x}, {W_i})+W_s{x}$)
Network Architecture
- VGGNet의 구현을 상당수 차용: 대부분 $3 \times 3$ convolution filter로 구성
- 같은 output feature map size인 경우 같은 filter 개수로 구성
- feature map size가 반으로 줄어드는 경우 filter 개수를 2배로 하여 layer 간 time complexity 유지
- VGGNet에 비해 더 적은 필터 개수, 더 낮은 complexity (34-layer ResNet: 3.6b FLOPs vs. VGG-19: 19.6b FLOPs)
Experiments
ImageNet Classification
- ImageNet 분류에 사용된 network 구조
- ImageNet training 결과
- 좌측은 plain network, 우측은 Residual network
- 각각 18레이어와 34레이어 네트워크를 비교
- 가느다란 선은 training error, 굵은 선은 validation error
- 34-layer ResNet이 18-layer ResNet보다 더 좋은 성능을 보임
- training error과 validation error 또한 18-layer보다 낮음 → degradation problem을 해결했음을 의미, depth를 늘려도 accuracy를 증가시키는 것에 성공
- 18-layer, 즉 많이 깊지는 않은 네트워크의 경우, plain network + SGD로도 여전히 좋은 성능을 보이지만 ResNet을 이용하면 convergence 속도에 이점이 있다