[2025-2] 김지은 - Deep Residual Learning for Image Recognition
본 글에서는 CNN의 발전 과정을 대표적인 네 편의 논문을 중심으로 살펴보고, 그 흐름 속에서 ResNet: Deep Residual Learning for Image Recognition이 갖는 의미를 집중적으로 분석한다.
AlexNet (2012)
AlexNet은 ImageNet 대규모 시각 인식 챌린지(ILSVRC)에서 CNN이 기존 전통적 기법들을 압도할 수 있음을 증명하며 CNN을 컴퓨터비전 연구의 주류로 끌어올린 모델이다.

AlexNet은 5개의 합성곱 레이어와 3개의 완전 연결 레이어, 총 8개의 학습 레이어로 구성된 심층 신경망이다. 이러한 대규모 모델의 핵심 요소는 다음과 같다.
- ReLU 활성화 함수 $f(x)=\max(0,x)$를 도입해 기존 sigmoid나 tanh 대비 훨씬 빠른 수렴을 달성, 깊은 네트워크 학습의 실용성을 크게 향상시켰다.
- 다중 GPU 병렬 학습 구조를 설계해 단일 GPU 메모리 한계를 극복하고, 대규모 CNN 학습을 가능하게 했다.
- Local Response Normalization(LRN)과 overlapping pooling을 적용하여 일반화 성능을 개선하고 오류율을 낮췄다.
대규모 파라미터로 인한 과적합 문제를 해결하기 위해 AlexNet은 체계적인 정규화 전략을 함께 제시했다.
- 데이터 증강을 통해 학습 데이터의 다양성을 크게 확장하고, 조명 변화에 대한 불변성을 확보했다.
- Dropout을 완전 연결 레이어에 적용하여 뉴런 간의 과도한 co-adaptation을 방지하고 일반화 성능을 향상시켰다.
그 결과, AlexNet은 ILSVRC 2012에서 Top-5 error 15.3%를 기록하며 2위 모델과 큰 격차로 우승하였다. 또한 합성곱 레이어를 제거할 경우 성능이 유의미하게 감소함을 실험적으로 보이며, 네트워크 깊이가 성능에 중요한 역할을 한다는 점을 처음으로 명확히 증명했다.
R-CNN (2013)
R-CNN(Regions with CNN features)은 CNN을 Object Detection 문제에 처음으로 본격 적용한 모델이다. 이 논문은 CNN이 객체의 Localization과 Classification을 동시에 다룰 수 있음을 실험적으로 입증했다.

R-CNN의 핵심 아이디어는 region proposals와 high-capacity CNN feature extractor의 결합이다.
- Region proposals: Selective Search를 사용해 이미지당 약 2,000개의 category-independent proposals를 생성한다.
- Feature extraction & classification: 각 proposal을 warping한 뒤 AlexNet 기반 CNN으로 feature를 추출하고, class-specific linear SVM으로 객체를 분류한다.
또한 R-CNN은 transfer learning의 효과를 명확히 보여주었다. ImageNet으로 supervised pre-training한 CNN을 PASCAL VOC에 domain-specific fine-tuning하는 전략으로 detection 성능을 크게 향상시켰다. 여기에 bounding-box regression을 추가해 localization 정확도를 개선했다.
그 결과, R-CNN은 PASCAL VOC 2012에서 mAP 53.3%를 기록하며 기존 state-of-the-art 대비 30% 이상 성능을 향상시켰다.
VGGNet (2014)
VGGNet은 CNN의 깊이 성능에 어떤 영향을 미치는지를 체계적으로 분석하고, 네트워크를 기존보다 훨씬 깊게 확장한 모델이다. 이 논문은 단순히 깊은 모델을 제안한 것이 아니라, “어떻게 깊게 쌓아야 하는가”에 대한 명확한 설계 원칙을 제시했다.
VGGNet의 핵심 아이디어는 작은 convolution filter를 반복적으로 쌓아 네트워크 깊이를 늘리는 것이다.
- 3×3 convolution만 사용하여 네트워크를 16~19개의 학습 레이어까지 확장했다.
- 여러 개의 3×3 convolution을 연속으로 쌓으면, 하나의 큰 filter를 사용하는 것과 동일한 receptive field를 가지면서도 더 많은 non-linearity(ReLU)를 도입할 수 있음을 보였다.
- 입력 해상도가 줄어들 때마다 channel 수를 두 배로 늘리는 단순하고 일관된 아키텍처 설계를 적용했다.
VGGNet은 또한 AlexNet에서 사용되던 일부 설계 요소를 재검토했다.
- LRN(Local Response Normalization)이 성능 향상에 큰 기여를 하지 않음을 실험적으로 보이고 이를 제거했다.
- 학습 시 scale jittering을 적용해 다양한 크기의 객체에 대한 일반화 성능을 높였다.
- 일부 구성에서는 1×1 convolution을 사용해 receptive field는 유지하면서 비선형성을 증가시켰다.
그 결과, VGGNet은 ILSVRC 2014에서 classification 부문 2위, localization 부문 1위를 기록했으며, 단일 네트워크 기준으로 매우 높은 성능을 달성했다. 무엇보다도 이 논문은 네트워크 깊이가 성능 향상에 핵심적인 요소임을 명확히 보여주었지만, 동시에 깊어질수록 학습이 어려워지는 문제 또한 드러내며 이후 연구의 중요한 문제의식을 남겼다.
ResNet (2015)
VGGNet 이후 CNN 연구의 핵심 질문은 “얼마나 깊게 쌓을 수 있는가”에서 “왜 깊어지면 학습이 어려워지는가”로 옮겨갔다. 실험적으로는 깊은 네트워크가 더 높은 표현력을 가질 수 있음이 확인되었지만, 실제 학습 과정에서는 gradient vanishing과 degradation 문제가 성능 향상을 어렵게했다.
ResNet은 이러한 깊은 네트워크의 근본적인 학습 한계를 단순한 최적화 기법이 아닌 네트워크 구조 자체의 변화를 통해 해결하고자 등장한 모델이다.
1. Introduction
논문은 네트워크의 depth와 더 나은 학습에 사이의 연관 지점에서 질문을 던진다.
“ 단순히 레이어를 더 쌓는 것이 더 나은 네트워크 학습을 가능하게 할까? “
즉, 단순히 레이어의 개수를 늘리는 것만이 학습의 핵심이 아닐 수도 있음을 지적한 것이다.
Neural Network의 수렴 과정에서 발생하는 vanishing/exploding gradients 문제는 normalized initialization과 intermediate normalization layers를 통해 상당 부분 해결되었다. 그러나 이러한 개선에도 불구하고, 네트워크의 depth가 증가함에 따라 degradation 문제는 여전히 비례적으로 증가한다는 점이 관찰된다.
이러한 성능 저하는 overfitting에 의한 것이 아니라, 이미 적절한 depth를 가진 모델에 레이어를 추가로 쌓는 것 자체에서 비롯된다는 점이 핵심이다.
Degradation Problem
만약 the deeper, the better라는 가설이 성립한다면, 더 깊은 모델은 레이어 수가 적은 모델보다 더 나은 성능을 보이거나 최소한 동일한 성능을 가져야 한다. 그러나 실제 task에서는 이와 반대되는 결과가 관찰된다. 즉, 네트워크의 layer가 깊어질수록 higher performance가 아닌, 오히려 higher error를 보이는 문제가 발생한다.

실험적으로는 deeper layer를 가진 모델의 training error와 test error가 모두 shallower model보다 더 높게 나타난다. 이는 단순한 일반화 문제나 최적화 실패로 설명되기 어렵다. 예를 들어, identity mapping의 경우를 고려하면, 이상적으로는 깊은 네트워크가 얕은 네트워크를 최소한 그대로 모방할 수 있어야 한다. 그러나 실제로는 기존의 단순히 stacked된 레이어 구조에서 이러한 항등 함수를 학습하는 것조차 어려운 현상이 발생한다.
이는 출력 함수 $H(x)$를 직접 학습하는 것이, residual mapping $F(x)$를 학습하는 것보다 더 복잡한 최적화 문제임을 시사하며, 기존의 단순히 레이어를 쌓는 방식이 본질적으로 degradation problem을 내포하고 있음을 보여준다
Contributions
위와 같은 deep network의 degradation 문제를 해결하기 위해, 본 논문은 a Deep Residual Learning Framework를 제안한다.
이 프레임워크는 여러 개의 레이어가 목표 함수를 직접 학습할 것이라 기대하는 대신, 각 레이어가 residual mapping을 학습하도록 설계한다. 여기서 목표 함수를 $H(x)$라고 할 때, 단순히 stacked된 비선형 레이어들은 목표 함수 $H(x)$ 자체가 아니라 다음과 같은 residual function $F(x)$를 학습한다.
$$
F(x) := H(x) - x \\
H(x) = F(x) + x
$$
이때 논문은 기존의 unreferenced mapping $H(x)$를 직접 학습하는 것보다, residual mapping $F(x)$를 최적화하는 것이 더 쉽다고 가정한다. (여기서 $F(x) + x$는 shortcut connections와 feedforward neural network를 통해 구현된다.)
이러한 접근을 바탕으로, 논문의 핵심 기여점은 다음과 같이 정리할 수 있다.
- 기존의 plain networks(단순히 레이어를 쌓은 구조)가 depth가 증가할수록 training error가 증가하는 문제를 보인 반면, 본 논문은 최적화가 용이한 extremely deep residual networks를 제안한다.
- 제안된 residual learning framework는 네트워크 depth가 크게 증가할수록 성능 향상이 가능하며, 기존의 plain network 구조보다 현저히 우수한 성능을 달성한다.
또한, 논문은 CIFAR-10과 ImageNet 등 다양한 데이터셋을 활용한 실험을 통해, 깊은 레이어를 가진 residual network를 안정적으로 학습할 수 있음을 보인다. 이를 통해 Residual Network가 특정 데이터셋에 국한된 기법이 아니라, 일반적으로 적용 가능한 학습 프레임워크임을 입증한다
2. Related Work
Residual Representations
이미지 인식 분야에서 VLAD는 residual vectors로 표현된 representation이며, Fisher Vector는 이를 probabilistic하게 확장한 기법으로 볼 수 있다. 두 방법 모두 image retrieval과 classification에서 효과적인 shallow representation으로 활용되어 왔으며, vector quantization 과정에서 original vectors를 직접 사용하는 것보다 residual vectors로 인코딩하는 방식이 더 효과적임이 알려져 있다.
한편, low-level vision과 computer graphics 분야에서는 Partial Differential Equations(PDEs)를 해결하기 위해 Multigrid method가 사용된다. 이 방법은 문제를 여러 스케일의 subproblems로 분해하고, 각 스케일 간의 residual solution을 반복적으로 보정한다. 이와 유사하게 hierarchical basis pre-conditioning 역시 서로 다른 스케일 사이의 residual representation에 기반하며, 이러한 접근은 residual structure를 고려하지 않은 standard solver보다 더 빠른 수렴 특성을 보인다.
이러한 사례들은 문제의 적절한 reformulation이나 preconditioning이 최적화를 단순화할 수 있음을 시사하며, 논문은 이러한 residual 개념을 신경망 학습에 적용할 수 있다는 아이디어로 확장한다.
Shortcut Connections
Shortcut Connections이란 신경망에서 특정 레이어를 건너뛰어 입력을 출력으로 직접 전달하는 구조를 의미한다.
초기 MLP연구에서는 네트워크의 입력과 출력을 직접 연결하는 선형 레이어를 단순히 추가하는 방식이 사용되었다. 이후 연구에서는 vanishing/exploding gradients 문제를 완화하기 위해 일부 중간 레이어를 auxiliary classifiers에 직접 연결하는 방법이 제안되었다. 또 다른 연구들은 shortcut connections를 활용해 layer responses, gradients, propagated errors를 정규화하는 구조를 제시하였다. 이와 함께, Inception architecture는 하나의 shortcut branch와 여러 개의 깊은 branches로 구성된 구조로 설명된다.
한편, Highway Networks에서는 shortcut connections에 gating functions를 결합한 구조를 제안한다. 이 gate는 data-dependent하며 학습 가능한 parameters를 가진다. 그러나 residual learning framework에서 사용되는 identity shortcuts는 parameters-free 구조라는 점에서 차이를 가진다.
Highway Networks에서는 gated shortcut이 닫힌 상태, 즉 gate 값이 0에 가까워질 경우, 해당 레이어는 non-residual function을 학습하게 된다. 반면, residual learning framework에서는 네트워크가 항상 residual function을 학습하도록 설계되어 있으며, identity shortcut은 절대 닫히지 않고 모든 정보가 항상 전달된다. 이때 학습 대상은 입력에 더해지는 residual function에 한정된다.
또한 기존 연구에 따르면, Highway Networks는 100개가 넘는 매우 깊은 네트워크에 대해 일관된 성능 향상을 입증하지 못했다는 한계가 보고되었다.
3. Deep Residual Learning
Residual Learning
$H(x)$를 몇 개의 stacked layers가 목표로 하는 함수라고 가정한다. 이때 $x$는 해당 layers의 첫 번째 입력이며, 반드시 전체 네트워크의 입력을 의미하지는 않는다.
다수의 비선형 레이어가 충분히 복잡한 함수를 asymptotically approximate할 수 있다고 가정하면, 동일한 레이어들이 residual function $F(x)=H(x)-x$ 역시 점근적으로 근사할 수 있다고 가정할 수 있다. 이에 따라 논문은 stacked layers가 $H(x)$ 자체를 학습하는 대신, residual function $F(x)$를 학습하도록 reformulation한다. 두 함수 모두 목표 함수를 근사할 수 있지만, 학습 복잡도는 다를 것이라고 가정한다.
논문에서 제기한 degradation problem은, 기존의 solvers가 다수의 비선형 레이어를 사용해 identity mapping을 근사하는 데 어려움을 겪을 수 있음을 시사한다. 반면, residual learning reformulation을 사용하면 identity mapping이 optimal한 경우, solvers는 단순히 다수의 비선형 레이어의 weights를 0으로 수렴시킴으로써 identity mapping을 쉽게 달성할 수 있다.
물론 실제 문제에서 identity mapping이 항상 optimal한 것은 아니다. 그럼에도 불구하고, residual mapping으로 reformulation하는 것은 최적화를 더 쉽게 만드는 preconditioning 효과를 제공한다. 특히 optimal function이 zero mapping보다 identity mapping에 더 가까운 경우, 함수를 처음부터 새로 학습하는 것보다 identity mapping에 대한 작은 perturbations를 학습하는 것이 더 효과적이다.
Identity Mapping by Shortcuts
Residual Network의 하나의 building block은 다음과 같이 정의된다.

$$
y = F(x,\{w_i\}) + x
$$
여기서 \( x \) 와 \( y \) 는 각각 입력과 출력이며, \( F(x,\{w_i\}) \)는 학습해야 할 residual function이다. 예를 들어 두 개의 레이어로 구성된 경우, \( F(x) = W_2 \sigma(W_1 x) \)로 표현할 수 있다. 이때 \( \sigma \)는 ReLU 활성화 함수이며, bias 항은 생략된다. 즉, 입력 \( x \)를 받는 residual block은 다음과 같은 구조를 가진다.
$$
F(x) = W_2 \, \sigma(W_1 x) \\
y = \sigma(F(x) + x)
$$
이를 단계적으로 정리하면, 입력 \( x \)가 첫 번째 레이어에 전달되어 \( W_1 \)과 곱해지고 ReLU \( \sigma \)가 적용된다. 이후 두 번째 레이어에서 \( W_2 \)와 곱해져 residual function \( F(x) \)가 계산된다. 이 결과에 shortcut connection을 통해 전달된 \( x \)가 더해지고, 마지막으로 ReLU가 적용되어 출력이 생성된다.
이때 사용되는 shortcut connections는 추가적인 parameter나 계산 복잡도를 유발하지 않기 때문에 실제 구현에서 매우 효과적이다. 특히 기존의 plain network와 residual network를 비교할 때, 동일한 parameter 수, 동일한 depth와 width, 그리고 동일한 computational cost를 유지하는 것이 중요하다.
또한 위의 수식에서는 \( x \)와 \( F(x) \)의 차원이 동일해야 한다. 만약 차원이 다를 경우, shortcut connection에 linear projection \( W_s \)를 적용해 차원을 맞출 수 있다.
$$
y = F(x,\{w_i\}) + W_s x
$$
Residual function \( F \)의 구조는 유연하며, 2개, 3개 또는 그 이상의 레이어로 구성될 수 있다. 다만 \( F \)가 하나의 레이어만 가지는 경우, 이는 단순한 linear layer \( y = W_1 x + x \)와 유사해지며 residual learning의 장점을 충분히 활용하지 못한다.
마지막으로, 위의 수식은 fully-connected layers를 가정해 설명되었지만, \( F(x,\{w_i\}) \)는 동일한 방식으로 convolutional layers로도 확장될 수 있다.
Network Architectures
Plain Network의 기본 구조는 VGG 네트워크에서 영감을 받은 구조이다. 이때 convolutional layers는 대부분 3*3 필터를 사용하며, 다음과 같은 설계 규칙을 따른다.
- 출력 feature map의 크기가 동일한 경우, 해당 레이어들은 동일한 개수의 필터를 사용한다.
- 출력 feature map의 크기가 절반으로 줄어들 경우, 연산 복잡도를 일정하게 유지하기 위해 필터의 개수를 두 배로 증가시킨다.
Downsampling은 stride가 2인 convolution layers를 사용하여 수행된다. 네트워크는 global average pooling layer와 1000-way fully-connected layer 및 softmax로 구성된 출력부로 종료된다. 전체 weighted layers의 수는 34개이다.
논문에서 제안하는 Plain Network는 VGG에 비해 적은 필터 수와 낮은 계산 복잡도를 가진다. 해당 베이스라인 모델의 연산량은 3.6 billion FLOPs로, 이는 VGG-19의 약 18%에 해당한다. 즉, VGG 대비 훨씬 경량화된 네트워크 구조를 달성한다.
Residual Network는 Plain Network에 shortcut connections를 추가하여 구성된 구조이다.
입력과 출력의 차원이 동일한 경우, identity shortcut을 그대로 적용할 수 있다. 그러나 차원이 증가하는 경우에는 다음 두 가지 방법을 고려한다.
- Identity mapping을 유지하면서 zero-padding을 추가하여 차원을 맞추는 방식. 이 경우 추가적인 파라미터는 필요하지 않다.
- Projection shortcut을 사용하여 1*1 convolution으로 차원을 맞추는 방식.
두 방법 모두 서로 다른 크기의 feature map을 연결할 경우, stride를 2로 설정하여 downsampling을 수행한다.
Implementation
학습 단계에서 이미지는 짧은 변을 기준으로 [256, 480] 범위 내에서 무작위 sampling하여 scale augmentation을 수행한다. 이후 224*224 크기의 영역을 무작위로 cropping하거나, per-pixel mean subtraction을 적용하여 정규화한다. 또한 standard color augmentation을 적용한다.
모든 convolution layer 이후, activation 이전에 Batch Normalization을 적용한다. 모든 plain network와 residual network는 사전 학습 없이 처음부터 학습된다. 학습에는 mini-batch 크기 256 기준의 SGD가 사용되며, 초기 학습률은 0.1이다. Error가 plateau에 도달할 경우 학습률은 10배씩 감소된다. 모델은 최대 \( 60 \times 10^4 \) iteration 동안 학습된다.
학습 과정에서 weight decay는 0.0001, momentum은 0.9를 사용하며, dropout은 사용하지 않는다.
테스트 단계에서는 공정한 비교를 위해 표준 10-crop 테스트를 사용하고, 최상의 성능을 위해 fully convolutional 형태를 적용한다. 또한 여러 스케일에서의 예측 결과를 평균내는 방식을 사용한다.
4. Experiments
Dataset
ImageNet 2012는 총 1000개 클래스로 구성된 대규모 이미지 데이터셋이다. 학습에는 1.28 million장의 이미지가 사용되었으며, 50k장의 validation 이미지가 포함된다.
최종 평가는 100k test images를 사용해 수행되었고, 모델 성능은 top-1 error rate와 top-5 error rate를 기준으로 측정된다.
결과
Plain Network에서는 18-layer와 34-layer 모델을 비교 평가한다.
실험 결과, figure에서 확인할 수 있듯이 deeper layer model이 shallower model보다 더 높은 validation error를 보인다. 이는 일반적으로 기대되는 the deeper, the better 가설과는 반대되는 결과이다. 이론적으로는 34-layer 모델이 18-layer 모델의 해를 포함하는 subspace를 가져야 하지만, 실제로는 degradation problem이 발생한다.
논문에서는 이러한 성능 저하가 단순한 vanishing gradient 문제는 아니라고 설명한다. Batch Normalization의 적용으로 인해 forward signal은 non-zero variance를 유지하며, backward signal 또한 적절한 크기로 전달됨이 확인되기 때문이다.
또한 34-layer 네트워크 역시 일정 수준의 성능을 달성하므로, 최적화가 전혀 이루어지지 않은 것은 아니다. 그럼에도 불구하고 학습 속도가 느리고 optimal solution에 도달하는 데 어려움을 겪는다는 점에서 optimization difficulty가 존재함을 보여준다.
Residual Network에서도 동일하게 18-layer와 34-layer 모델을 비교 평가한다.
기본 아키텍처는 Plain Network와 동일하지만, 각 3 \times 3 convolution filter 쌍마다 shortcut connection을 추가한다. 첫 번째 비교 실험에서는 모든 shortcut에 identity mapping을 적용하며, 출력 차원이 증가하는 경우에는 zero padding을 사용해 차원을 맞춘다. 즉, plain network에 추가적인 파라미터를 도입하지 않은 상태에서 실험이 수행된다.
실험 결과는 다음과 같다.
- Plain Network와 달리 Residual Network에서는 34-layer 모델이 18-layer 모델보다 약 2.8% 높은 성능을 기록한다.
- Table 2에서 확인할 수 있듯이, 34-layer residual model은 training error 또한 더 낮다.
이는 residual learning이 deeper network에서도 효과적인 최적화를 가능하게 함을 실험적으로 입증하는 결과이다.
종합하면, ResNet은 네트워크의 depth 증가가 항상 성능 향상으로 이어질 것이라는 기존의 직관에 의문을 제기하고, 그 원인이 단순한 gradient 문제를 넘어 최적화 구조 자체에 있음을 실험적으로 규명한 논문이다. Residual learning은 목표 함수를 직접 학습하는 대신, identity mapping을 기준으로 한 residual function을 학습하도록 reformulation함으로써, 매우 깊은 네트워크에서도 안정적인 학습을 가능하게 했다. 이로써 ResNet은 단순한 성능 개선을 넘어, 깊은 신경망을 설계하는 방식 자체를 변화시킨 전환점으로 평가된다.