[논문 정보]
Kaiming He, Xiangyu Zhang, Shaoqing Ren, Jian Sun et al.
Deep Residual Learning for Image Recognition
arXiv:1512.03385
2015년 12월
1. 서론
딥러닝 기반 컴퓨터 비전의 발전에서 “깊이”는 매우 중요한 요소로 작용해왔다. AlexNet 이후 CNN은 이미지 분류, 객체 탐지, 세그멘테이션 등 다양한 시각 인식 문제에서 전통적인 특징 추출 기반 방법을 빠르게 대체했다. 특히 VGGNet과 GoogLeNet은 네트워크를 더 깊게 구성하면 더 복잡하고 추상적인 특징 표현을 학습할 수 있다는 점을 보여주었다. 낮은 층에서는 에지, 텍스처와 같은 저수준 특징을, 중간 층에서는 패턴과 부품 단위 특징을, 높은 층에서는 객체 수준의 의미적 특징을 학습할 수 있기 때문이다.
그러나 네트워크를 깊게 만드는 것이 항상 성능 향상으로 이어지는 것은 아니었다. 초기에는 깊은 네트워크 학습을 어렵게 만드는 원인으로 vanishing gradient와 exploding gradient 문제가 주로 지적되었다. 역전파 과정에서 기울기가 너무 작아지거나 커지면 앞쪽 레이어가 제대로 학습되지 못하고, 결과적으로 깊은 신경망은 수렴 자체가 어려워진다. 하지만 이 문제는 Xavier/He initialization, Batch Normalization, ReLU와 같은 기법이 등장하면서 상당 부분 완화되었다.
그럼에도 불구하고 저자들은 더 근본적인 문제를 발견했다. 네트워크가 충분히 깊어져도 학습은 시작되지만, 어느 시점 이후부터는 깊이를 늘릴수록 성능이 오히려 나빠지는 현상이 발생했다. 이 논문에서는 이를 degradation problem이라고 부른다. 중요한 점은 이 현상이 일반적인 과적합과 다르다는 것이다. 과적합이라면 학습 오차는 낮아지고 검증 오차만 높아져야 한다. 하지만 논문에서 관찰한 현상은 더 깊은 네트워크가 학습 오차 자체도 더 높다는 점이었다.
이 문제를 해결하기 위해 논문은 Residual Learning Framework를 제안한다. 핵심 아이디어는 레이어들이 원하는 함수 H(x)를 직접 학습하도록 하는 대신, 입력 x를 기준으로 한 잔차 함수 F(x) = H(x) - x를 학습하도록 만드는 것이다. 그러면 전체 매핑은 H(x) = F(x) + x로 표현된다. 만약 어떤 층에서 최적 함수가 identity mapping에 가깝다면, 일반 네트워크는 복잡한 비선형 레이어들로 identity를 직접 근사해야 하지만, ResNet은 F(x)를 0에 가깝게 만들면 된다. 이 차이가 깊은 네트워크 최적화에서 결정적인 역할을 한다.
ResNet의 또 다른 중요한 장점은 shortcut connection이 추가 파라미터나 계산량을 거의 늘리지 않는다는 점이다. 특히 입력과 출력 차원이 같은 경우에는 단순히 입력을 그대로 더하는 identity shortcut을 사용한다. 따라서 plain network와 residual network를 동일한 깊이, 동일한 폭, 거의 동일한 FLOPs 조건에서 공정하게 비교할 수 있다. 논문은 이러한 비교를 통해 residual learning이 단순한 구조적 변경이 아니라 깊은 신경망 최적화의 본질적인 어려움을 완화한다는 점을 실험적으로 입증한다.
2. 문제 정의
이 논문이 다루는 핵심 문제는 다음과 같다.
신경망을 더 깊게 만들었을 때, 이론적으로는 더 좋은 표현력을 가져야 하지만 실제 학습에서는 오히려 성능이 나빠지는 degradation problem을 어떻게 해결할 것인가?
일반적으로 딥러닝에서 모델 용량이 커지면 학습 데이터에 대한 표현력은 증가한다. 얕은 네트워크가 표현할 수 있는 함수는 깊은 네트워크도 표현할 수 있어야 한다. 예를 들어 18층 네트워크가 어떤 함수를 잘 학습했다면, 34층 네트워크는 앞의 18층을 그대로 복사하고 나머지 층을 identity mapping으로 만들면 최소한 18층 네트워크와 동일한 성능을 낼 수 있어야 한다. 따라서 더 깊은 모델의 학습 오차가 더 높아지는 것은 이론적으로 자연스럽지 않다.
하지만 실제 plain network에서는 이 현상이 발생한다. 논문은 ImageNet에서 18-layer plain network와 34-layer plain network를 비교했을 때, 34-layer plain network가 더 높은 validation error를 보였다고 보고한다. CIFAR-10에서도 20-layer plain network보다 56-layer plain network가 더 높은 학습 오차와 테스트 오차를 보였다. 이는 단순히 모델이 과적합되었기 때문이 아니라, 최적화 과정에서 더 좋은 해를 찾지 못했기 때문이다.
수학적으로 보면 일반적인 네트워크는 여러 비선형 레이어를 통해 다음과 같은 매핑을 직접 학습한다.
H(x) 가 있으며, 여기서 x는 어떤 블록의 입력이고, H(x)는 해당 블록이 학습해야 하는 목표 함수다. 기존 plain network에서는 이 H(x)를 여러 convolution, batch normalization, ReLU 조합으로 직접 근사한다. 문제는 H(x)가 identity mapping에 가깝거나, 입력에서 약간만 변형된 함수일 때도 네트워크가 이를 처음부터 직접 학습해야 한다는 점이다.
ResNet은 이 문제를 다음과 같이 재정의한다. F(x) = H(x) - x
따라서 원래 함수는 다음과 같이 표현된다.
H(x) = F(x) + x 즉, 네트워크는 입력 x 자체를 다시 만들어내는 것이 아니라, 입력에 더해져야 하는 변화량 또는 보정값만 학습한다. 이때 F(x)를 residual function이라고 부른다.
3. 제안 방법론
3.1 핵심 아이디어: Residual Learning
ResNet의 핵심 아이디어는 매우 간단하다.
네트워크가 원하는 함수 H(x)를 직접 학습하게 하지 말고, 입력 x에 대해 필요한 변화량 F(x)만 학습하게 하자.
일반적인 CNN 블록은 입력 x를 받아 여러 convolution layer를 통과시켜 출력 H(x)를 생성한다. 반면 ResNet의 residual block은 convolution layer들이 F(x)를 학습하고, 여기에 입력 x를 더해 최종 출력을 만든다.
학습 가능한 convolution layer들의 출력이며, x는 shortcut connection을 통해 그대로 전달되는 입력이다. 최종적으로 두 값을 element-wise addition으로 더한다.
이 구조의 장점은 identity mapping을 매우 쉽게 표현할 수 있다는 것이다. 만약 어떤 블록에서 입력을 거의 그대로 다음 층으로 넘기는 것이 최적이라면, residual branch의 출력을 0에 가깝게 만들면 된다.
plain network에서는 여러 convolution과 ReLU를 거쳐 identity mapping을 직접 만들어야 한다. 이는 생각보다 어려운 최적화 문제다. 반면 ResNet에서는 shortcut이 이미 identity를 제공하기 때문에, 학습 가능한 branch는 필요한 차이만 보정하면 된다.
3.2 Shortcut Connection
ResNet의 residual block은 다음과 같은 구조를 갖는다.
X -> Conv -> BN -> ReLU -> Conv -> BN -> F(x)
그리고 입력 x는 별도의 shortcut path를 통해 그대로 전달된다.
y = F(x) + x 이후 ReLU가 적용된다.
논문에서 제안하는 shortcut connection은 대부분 identity shortcut이다. 즉, 별도의 파라미터를 사용하지 않고 입력을 그대로 더한다. 이 방식은 추가적인 파라미터도 없고, 계산량도 거의 증가시키지 않는다. 단순한 element-wise addition만 필요하기 때문이다.
이 점은 실험적으로 매우 중요하다. 만약 residual network가 plain network보다 성능이 좋은 이유가 단순히 파라미터가 많아서라면, 구조적 기여를 주장하기 어렵다. 하지만 논문은 동일한 파라미터 수와 유사한 계산량을 가진 plain network와 residual network를 비교한다. 그 결과 residual network가 더 깊은 구조에서도 학습 오차를 안정적으로 낮춘다는 점을 보여준다.
3.3 차원이 다른 경우의 shortcut 처리
Residual addition을 수행하려면 F(x)와 x의 차원이 같아야 한다. 그러나 CNN에서는 feature map의 해상도가 줄어들거나 채널 수가 증가하는 경우가 많다. 예를 들어 feature map 크기가 56 x 56에서 28 x 28로 줄고, 채널 수가 64에서 128로 증가하는 경우가 있다. 이때는 단순히 F(x) + x를 할 수 없다.
논문은 이 문제를 해결하기 위해 세 가지 옵션을 비교한다.
Option A: Zero-padding shortcut
입력 차원이 부족한 부분을 0으로 padding하여 출력 차원과 맞춘다. 이 방식은 추가 파라미터가 없다.
Option B: Projection shortcut for dimension increase
차원이 증가하는 지점에서만 1 x 1 convolution을 사용해 입력 x를 출력 차원에 맞춘다.
Option C: Projection shortcut everywhere
모든 shortcut에 projection을 사용한다. 이 방식은 성능이 약간 좋아질 수 있지만, 파라미터와 계산량이 증가한다.
실험 결과 Option B와 C가 A보다 약간 더 좋은 성능을 보였지만, 차이는 크지 않았다. 저자들은 projection shortcut이 degradation problem 해결의 본질은 아니라고 해석한다. 즉, 핵심은 projection이 아니라 residual formulation 자체다.
3.4 Plain Network와 Residual Network 비교 설계

논문은 ResNet의 효과를 명확히 보여주기 위해 plain network와 residual network를 거의 동일한 구조로 설계한다. 차이는 shortcut connection의 유무뿐이다.
ImageNet 실험에서 plain network는 VGGNet의 설계 철학을 따른다.
첫째, 대부분의 convolution은 3 x 3 필터를 사용한다.
둘째, 같은 feature map 크기에서는 동일한 채널 수를 유지한다.
셋째, feature map 크기가 절반으로 줄어들면 채널 수를 두 배로 늘려 계산량을 균형 있게 유지한다.
넷째, 마지막에는 global average pooling과 1000-way fully connected layer를 사용한다.
3.5 Basic Residual Block

ResNet-18과 ResNet-34에서는 다음과 같은 basic block이 사용된다.
3 x 3 conv -> 3 x 3 conv
이를 residual function F(x)로 보고, 입력 x를 더한다.
y = F(x) + x 이 basic block은 단순하지만 매우 효과적이다. 특히 18층, 34층 수준의 네트워크에서는 이 구조만으로도 degradation problem을 크게 완화할 수 있다.
논문에서 Fig. 3은 VGG-19, 34-layer plain network, 34-layer residual network를 나란히 비교한다. 이 그림의 핵심은 ResNet이 완전히 새로운 복잡한 구조를 도입한 것이 아니라, plain CNN 구조 위에 shortcut connection을 추가했다는 점이다.
3.6 Bottleneck Residual Block
더 깊은 네트워크인 ResNet-50, ResNet-101, ResNet-152에서는 basic block 대신 bottleneck block을 사용한다.
Bottleneck block은 다음과 같은 구조다.
1 x 1 conv -> 3 x 3 conv -> 1 x 1 conv
첫 번째 1 x 1 convolution은 채널 수를 줄이는 역할을 한다.
중간의 3 x 3 convolution은 축소된 채널 공간에서 공간적 특징을 학습한다.
마지막 1 x 1 convolution은 채널 수를 다시 늘린다.
예를 들어 ResNet-50 이상의 구조에서는 다음과 같은 block이 사용된다.
1 x 1, 64 -> 3 x 3, 64 -> 1 x 1, 256
이 설계는 계산량을 줄이면서 네트워크를 훨씬 깊게 만들 수 있게 한다. 단순히 3 x 3 convolution만 반복하면 100층 이상의 네트워크는 계산량이 너무 커진다. Bottleneck 구조는 채널을 줄인 상태에서 주요 연산을 수행하므로 효율적이다.
논문에서 강조하는 점은 bottleneck 구조에서도 identity shortcut이 중요하다는 것이다. 만약 shortcut path에도 projection을 계속 사용하면 고차원 feature map 양 끝을 연결해야 하므로 계산량과 모델 크기가 크게 증가한다. 따라서 identity shortcut은 ResNet을 깊고 효율적으로 만드는 핵심 요소다.
3.7 ImageNet용 ResNet 구조
논문은 ImageNet 실험을 위해 ResNet-18, ResNet-34, ResNet-50, ResNet-101, ResNet-152 구조를 제시한다.
| conv1 | 112 x 112 | 7 x 7, 64, stride 2 |
| conv2_x | 56x 56 | residual blocks |
| conv3_x | 28 x 28 | residual blocks, downsampling |
| conv4_x | 14 x 14 | residual blocks, downsampling |
| conv5_x | 7 x 7 | residual blocks, downsampling |
| final | 1 x 1 | average pool, fc, softmax |
ResNet-18과 ResNet-34는 basic block을 사용하고, ResNet-50 이상은 bottleneck block을 사용한다.
4. 핵심 통찰 및 의의
4.1 깊이 자체보다 중요한 것은 최적화 가능한 깊이다.
ResNet 이전에도 깊은 네트워크가 중요하다는 사실은 알려져 있었다. VGGNet은 작은 3 x 3 convolution을 많이 쌓아 깊이의 중요성을 보여주었고, GoogLeNet은 Inception module을 통해 깊고 넓은 구조를 효율적으로 구성했다. 하지만 ResNet은 "깊게 만드는 것"과 "깊은 네트워크를 실제로 잘 학습시키는 것" 이 다르다는 점을 명확히 보여주었다.
plain network에서는 깊이가 증가하면 표현력은 증가하지만, 최적화 난이도도 증가한다. ResNet은 residual learning을 통해 깊은 네트워크의 최적화 경로를 더 쉽게 만든다. 따라서 ResNet의 핵심 기여는 단순한 아키텍처 설계가 아니라, 깊은 모델 학습 문제를 재정의한 데 있다.
4.2 Identity shortcut은 일종의 안전장치다.
Residual block에서 shortcut connection은 입력 정보를 그대로 다음 층으로 전달한다. 이는 깊은 네트워크에서 정보가 사라지지 않도록 하는 경로를 제공한다. 만약 어떤 residual block이 유용한 변환을 학습하지 못하더라도, 최소한 입력은 그대로 다음 단계로 전달된다.
이 구조는 최적화 관점에서 매우 안정적이다. plain network에서는 각 layer가 입력을 계속 변환하기 때문에 잘못된 변환이 누적될 수 있다. 반면 ResNet에서는 각 block이 입력을 완전히 새롭게 바꾸는 것이 아니라, 입력 위에 필요한 수정만 더한다. 이 때문에 깊은 네트워크에서도 학습이 안정적으로 진행된다.
4.3 Residual learning은 representation refinement로 볼 수 있다.
ResNet의 각 block은 입력 표현을 완전히 대체하는 것이 아니라, 기존 표현을 조금씩 보정한다. 따라서 ResNet 전체는 하나의 거대한 함수라기보다는, feature representation을 여러 단계에 걸쳐 점진적으로 개선하는 구조로 볼 수 있다.
4.4 ResNet은 backbone이라는 개념을 정착시켰다.
ResNet 이후 컴퓨터 비전 연구에서는 classification network를 backbone으로 사용하고, 그 위에 detection head, segmentation head, pose estimation head 등을 붙이는 방식이 일반화되었다. Faster R-CNN, Mask R-CNN, RetinaNet, Feature Pyramid Network 등 많은 모델이 ResNet을 기본 feature extractor로 사용했다.
5. 한계점 및 향후 연구
첫째, ResNet은 degradation problem을 해결했지만, 과적합 문제까지 자동으로 해결하지는 못한다. CIFAR-10에서 1202-layer ResNet은 학습 오차를 거의 0에 가깝게 낮출 수 있었지만, 테스트 성능은 110-layer ResNet보다 낮았다. 이는 깊은 모델을 학습할 수 있게 되었다고 해서 무조건 더 깊은 모델이 좋은 것은 아니라는 점을 보여준다. 데이터 규모, 모델 크기, regularization 사이의 균형이 여전히 중요하다.
둘째, 논문은 residual learning이 왜 최적화를 쉽게 만드는지에 대한 실험적 증거는 충분히 제공하지만, 이론적 분석은 제한적이다. 저자들은 residual function의 response가 작다는 분석을 통해 identity mapping이 좋은 preconditioning 역할을 한다고 설명하지만, 수학적으로 완전한 최적화 이론을 제시하지는 않는다. 이후 연구들은 ResNet을 ensemble, dynamical system, ODE, gradient flow 관점에서 분석하며 이론적 이해를 확장했다.
셋째, ResNet은 CNN 기반 vision task에 매우 강력하지만, 모든 구조에서 동일하게 최적의 선택은 아니다. 이후 등장한 DenseNet은 feature reuse를 더 적극적으로 활용했고, EfficientNet은 depth, width, resolution의 compound scaling을 제안했다. 최근에는 Vision Transformer와 ConvNeXt처럼 ResNet 이후의 설계 철학을 재해석한 모델들도 등장했다. 그럼에도 ResNet의 residual connection은 Transformer, MLP-Mixer, diffusion model U-Net 등 거의 모든 현대 딥러닝 모델에 흡수되었다.
넷째, original ResNet에서는 residual block 내부의 activation 순서가 이후 연구에서 개선되었다. 후속 논문인 Identity Mappings in Deep Residual Networks에서는 pre-activation ResNet을 제안하며, BN-ReLU-Conv 순서가 더 깊은 네트워크 학습에 유리하다는 점을 보였다. 즉, 본 논문은 residual learning의 출발점이지만, 최종 형태는 이후 연구에서 계속 발전했다.
6. 결론
ResNet 논문은 딥러닝 역사에서 매우 중요한 전환점이다. 이 논문은 단순히 더 깊은 CNN을 만든 것이 아니라, 깊은 네트워크가 왜 학습되지 않는지, 그리고 이를 어떻게 구조적으로 해결할 수 있는지를 명확히 제시했다. 핵심은 네트워크가 목표 함수 H(x)를 직접 학습하는 대신, 입력을 기준으로 한 residual function F(x) = H(x) - x를 학습하도록 만드는 것이다.
Residual block은 매우 단순하다. 몇 개의 convolution layer를 거친 출력에 입력을 그대로 더한다. 하지만 이 간단한 구조는 degradation problem을 완화하고, 50층, 101층, 152층, 나아가 1000층 이상의 네트워크 학습을 가능하게 했다. ImageNet classification에서 ResNet ensemble은 3.57% top-5 error를 기록하며 ILSVRC 2015에서 1위를 차지했고, 객체 탐지와 localization에서도 강력한 일반화 성능을 보였다.
ResNet의 가장 큰 의의는 "깊은 모델을 어떻게 학습 가능한 형태로 만들 것인가"에 대한 보편적인 해답을 제시했다는 점이다. 이 아이디어는 이후 CNN뿐 아니라 Transformer, diffusion model, multimodal model 등 거의 모든 현대 딥러닝 아키텍처에 영향을 주었다. 따라서 ResNet은 단순한 이미지 분류 모델이 아니라, 현대 딥러닝 구조 설계의 기본 원리 중 하나를 정립한 논문이라고 볼 수 있다.
References
논문 원문: Deep Residual Learning for Image Recognition
https://arxiv.org/abs/1512.03385
'CV(Computer Vision)' 카테고리의 다른 글
| MobileNetV1 (0) | 2026.06.01 |
|---|---|
| SqueezeNet: AlexNet-level accuracy with 50x fewer parameters and <0.5MB model size (0) | 2026.05.28 |
| DenseNet (Densely Connected Convolutional Networks) (0) | 2026.05.25 |
| GoogLeNet (Going Deeper with Convolutions) (0) | 2026.05.21 |
| VGG (Very Deep Convolutional Networks for Large-Scale Image Recognition) (1) | 2026.05.21 |