[논문 리뷰] Deep Residual Learning for Image Recognition
Feb 08, 2025
![[논문 리뷰] Deep Residual Learning for Image Recognition](https://image.inblog.dev?url=https%3A%2F%2Finblog.ai%2Fapi%2Fog%3Ftitle%3D%255B%25EB%2585%25BC%25EB%25AC%25B8%2520%25EB%25A6%25AC%25EB%25B7%25B0%255D%2520Deep%2520Residual%2520Learning%2520for%2520Image%2520Recognition%26logoUrl%3Dhttps%253A%252F%252Finblog.ai%252Finblog_logo.png%26blogTitle%3D%25EC%258B%25AC%25EB%25B0%2594&w=3840&q=75)
- 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하기에 용이한 것이 아님

- 따라서, 본 연구에서는 degradation 문제를 deep residual learning 방식으로 해결하고자 함

- 각각의 layer들을 직접적으로 연결하는 것이 아니라, residual mapping시킴
- 입력 에 대해 가 아닌, residual(잔차) 를 학습
- 라고 하면 (즉, residual = ) 원래의 매핑인 H(x)는 다음과 같이 표현됨 →

- 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나 쌓았음
2. Related Work
- 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을 선택

- : input vector
- : output vector
- : residual function에서 사용되는 학습 가능한 파라미터와 bias (보통은 특정 conv layer의 kernel을 나타냄)



- 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

- 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을 조정할 수 있기 때문)
- 위의 두 경우 모두 stride = 2 로 수행 → feature map 크기 줄임

[FLOP]
- 딥러닝 모델의 계산 복잡도나 연산량을 평가하는 수치
- 딥러닝 모델에서 이루어지는 곱셈-덧셈 연산(multiply-adds)의 총 개수

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

- Plain Network
- 18-layer와 34-layer 비교
- Table 2에서 34-layer이 더 높은 validation error 발생
- 위와 같이 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 문제 해결
- training error를 잘 줄임 → Table2에서 볼 수 있다시피 top-1 error를 3.5% 줄임 → residual learning이 deep system에서 효과적임을 증명함
- 18-layer plain/residual nets가 둘 다 비교적 정확함. 하지만, residual nets이 더 빠르게 수렴 → ResNet이 최적화하기에 더 쉬움

- Identity vs. Projection
- (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
- 학습 시간을 위해 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 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
- bottleneck architecture를 사용해서 50, 101, 152개까지 layer를 쌓았고, 152 layer가 가장 성능이 좋았음 → layer를 깊게 쌓을수록 성능이 좋았음

[building block와 bottleneck design]



4.2 CIFAR-10 and Analysis

- Exploring over 1000 layers
- 1202-layer가 110-layer보다 성능이 안 좋았음 → overfitting 때문인 것 같음
- CIFAR-10이라는 작은 dataset에 비해 모델이 불필요하게 큼 → overfitting 발생

- Analysis of Layer Response
- non-residual function보다 residual function이 0에 가깝게 근사되는 것이 성능 향상에 도움이 된다는 주장을 뒷받침함
- layer response : 네트워크 내 각 layer에서 생성되는 출력값 → residual의 크기를 나타냄
- layer response가 작다 → residual이 작다 → 잔차를 거의 0으로 만들도록 학습하는게 유리함 → 잔차를 0에 근사시켜야 함 → identity mapping이 최적임
Share article