[ResNet] Deep Residual Learning for Image Recognition
저자: Kaiming He, Xiangyu Zhang, Shaoqing Ren
발행년도: 2015년
인용수: 298890회
논문 링크: https://arxiv.org/abs/1512.03385
1. TL;DR
이 논문이 새롭게 문제 삼은 지점은 “깊게 만들 면 표현력이 늘어서 좋아질 것”이라는 전제가 최적화 현실에서는 깨진다는 점이었다.
저자들은 성능 저하를 과적합이나 단순 기울기 소실 문제가 아니라, “더 깊은 모델이 더 얕은 모델을 최소한 모방조차 못 하는 최적화 문제”로 다시 보이게 했다.
이 재정의는 이후 모델 설계의 질문을 “얼마나 깊게 쌓을까”에서 “깊어져도 최소 성능을 보장하는 경로를 어떻게 만들까”로 옮겨가게 했다고 느꼈다.
2. 이 논문을 읽기 전의 문제 인식
깊이는 곧 성능이라는 감각이 당연하게 굳어져 있었다고 생각했다. 더 많은 층은 더 많은 비선형 변환이고, 더 많은 조합이니 더 좋은 함수를 담을 수 있다고 배웠다. 그래서 남는 문제는 “그 깊이를 학습시키는 테크닉”이라고 이해했다.
당시에는 배치정규화, 좋은 초기화, 드롭아웃 같은 장치들이 “깊어지는 부작용을 관리하는 도구”로 보였다. 깊게 만들수록 학습이 어려워지는 건 기울기 소실/폭주가 핵심이고, 그걸 해결하면 깊이는 자연스럽게 이득을 준다고 믿었다. “표현력은 충분한데 학습이 안 된다”는 프레이밍이 너무 익숙해서, 깊이 그 자체가 실패를 만들어낸다는 생각은 질문이 되지 않았다고 느꼈다.
또 하나의 전제는 이런 것이었다. 네트워크는 층을 추가하면 기존 함수에 ‘무언가를 더할’ 수 있으니, 최악의 경우라도 추가된 층이 항등 매핑을 학습해 성능을 유지할 수 있을 거라고 여겼다. 이건 직관적으로 너무 자연스러워서, “그런데 왜 실제로는 성능이 떨어지지?”라는 현상이 오히려 예외처럼 보였다고 회상했다.
3. 읽다가 멈칫했던 지점
멈칫한 지점은 ‘degradation problem’을 과적합과 분리해서 보여주는 대목이었다. 더 깊은 모델이 테스트 성능만 나빠지는 게 아니라, 훈련 오차 자체가 더 나빠진다는 관찰을 정면으로 제시했다. 이건 “일반화가 안 된다”가 아니라 “학습 자체가 더 못한다”는 말이었고, 내가 갖고 있던 전제와 정면충돌했다고 느꼈다.
여기서 의문이 생겼다. 표현력이 더 큰 모델이 훈련 데이터에서조차 더 못 맞춘다는 게 말이 되나 싶었다. 이 순간 저자들이 문제를 “기울기 소실을 줄이자” 같은 미시적 현상으로만 보지 않고, “깊이가 늘어났을 때 최적화 지형에서 발생하는 구조적 실패”로 보기 시작했다는 게 보였다.
그 다음 멈칫은 항등 매핑의 직관을 뒤집는 방식이었다. “그럼 추가된 층이 항등을 학습하면 되지 않나”라는 반론을 저자들이 사실상 받아친다고 느꼈다. 항등을 ‘표현’할 수 있는 것과, SGD가 그 항등 해를 ‘찾는 것’은 다르다는 점을 문제로 끌어올렸다고 이해했다.

4. 저자들이 다시 정의한 ‘문제’
이 논문이 다시 정의한 문제는 “깊은 네트워크는 더 좋은 함수를 담을 수 있는데 왜 더 나빠지는가”가 아니었다. “깊은 네트워크가 얕은 네트워크보다 최소한 같아야 한다는 기대가 왜 최적화 과정에서 보장되지 않는가”가 문제처럼 보이게 했다.
기존 정의가 ‘표현력 대 일반화’ 축에서 주로 움직였다면, 이 논문은 ‘표현력은 충분하다는 가정 아래 최적화 가능성’을 중심으로 문제를 세웠다고 느꼈다. 즉, 성능 저하를 “모델이 너무 복잡해서”가 아니라 “모델이 더 단순한 해(항등에 가까운 해)로 가는 길이 막혀 있다”로 읽게 만들었다.
관점 차이는 여기서 가장 선명했다. 레이어를 쌓는다는 행위를 “완전히 새로운 변환을 계속 발명하는 것”으로 보지 않고, “기존 표현에 작은 수정만 더하는 누적 과정”으로 재해석했다. 그래서 학습의 목표도 직접적인 매핑 (H(x))를 맞추는 게 아니라, 변화량 (F(x)=H(x)-x)를 맞추는 쪽이 자연스럽다고 제시했다고 이해했다.
5. 왜 기존 문제 정의로는 한계가 있었는가
기존 연구들이 깔고 있던 가정은 “깊이는 표현력이고, 학습 안정화 트릭만 있으면 된다”는 것이었다. 이 가정은 degradation을 기울기 소실 같은 현상에 환원하게 만들었다. 그래서 BN, 초기화, 활성함수 선택 같은 처방이 쌓였지만, “더 깊은 게 최소한 더 나쁘지 않아야 한다”는 보장 문제는 중심 의제가 되지 못했다고 느꼈다.
구조적 한계는 ‘항등 경로의 부재’에서 드러났다고 생각했다. 평범한 순차 네트워크는 입력이 출력으로 전달되는 경로가 오직 “모든 층을 통과하는 경로” 하나뿐이었다. 그 경로에서 조금만 삐끗하면, 깊이는 곧바로 최적화 난이도로 바뀌었다. 깊이가 늘수록 “기존 해를 유지하는 쉬운 탈출구”가 없으니, SGD는 얕은 네트워크가 이미 찾은 좋은 해 근처에 머무르기조차 어려워졌다고 읽혔다.
성능과 확장성 측면에서도 한계가 있었다. 깊이를 늘리는 것이 보통의 스케일링 전략처럼 보였는데, 실제로는 “깊이 증가가 곧 학습 실패 확률 증가”로 이어져 시스템적으로 불안정했다. 이 불안정은 더 큰 데이터/더 큰 모델로 가는 길목에서, 단순한 튜닝 문제를 넘어 설계 원리의 문제로 보이게 했다고 느꼈다.
6. 방법 개요 — 문제 정의의 결과물
6.1 전체 접근
문제를 “항등을 쉽게 유지할 수 없는 최적화 구조”로 정의했기 때문에, 해법은 “항등 경로를 구조적으로 보장하는 설계”로 나올 수밖에 없었다고 느꼈다.
저자들은 네트워크가 직접 (H(x))를 만들게 두지 않고, (F(x))만 학습하게 만들었다. 그리고 출력은 (y = F(x) + x)로 구성했다. 이때 핵심은 수식 자체가 아니라, “최악의 경우 (F(x)=0)이면 항등이 된다”는 안전장치를 학습 과정에 박아 넣었다는 점이었다.
이 접근은 테크닉이 아니라 문제의 재배치처럼 보였다. 최적화가 어려운 목표를 직접 맞추게 두지 않고, ‘0에 가까운 해’가 의미 있는 기본값이 되도록 목표공간을 바꿨다고 이해했다.
6.2 핵심 구성 요소
스킵 커넥션은 단순한 정보 흐름 개선이 아니라, “얕은 해로 돌아갈 수 있는 경로”를 만든 장치로 읽혔다. 깊어질수록 최소 성능을 보장하는 백업 경로가 필요하다는 문제 정의에 정확히 대응했다고 느꼈다.

잔차 블록은 “새로운 표현을 매번 새로 쓰기”가 아니라 “기존 표현을 조금씩 고치기”로 학습 단위를 바꿨다. 이건 깊이를 ‘누적 수정의 길이’로 바꾸는 발상이었다. 그래서 깊어질수록 할 일이 늘어난다기보다, 깊어져도 각 블록이 부담해야 하는 변화량이 작아질 수 있다는 기대가 생겼다고 이해했다.
차원이 바뀌는 지점에서의 projection shortcut(1x1 conv)은 실용적인 접합 장치로 보였지만, 관점적으로는 “스킵 경로를 끝까지 유지하겠다”는 고집을 구현한 것으로 읽혔다. 스킵을 포기하는 순간 다시 순차 네트워크로 돌아가고, 그러면 문제 정의 자체가 무너진다는 느낌을 받았다.

7. 실험 결과를 다시 보는 관점
실험은 단순히 “ResNet이 SOTA였다”를 말하려고 설계된 것처럼 보이지 않았다. 더 중요한 건 “깊이를 늘리면 당연히 좋아져야 한다”는 기대가 실제로는 깨지고, 잔차 연결이 그 깨짐을 구조적으로 막는다는 걸 보여주는 방향으로 배치되어 있었다고 느꼈다.
특히 plain network와 residual network를 깊이만 바꿔가며 비교한 그림들은, 성능 향상보다 ‘degradation의 존재’를 증명하는 증거처럼 읽혔다. 저자들은 “우리가 더 깊게 쌓는 데 성공했다”를 자랑하기 전에, “왜 실패했는지부터 다시 보자”를 실험으로 설득하려고 했다고 해석했다.

ImageNet에서의 깊이 확장은 그 다음 단계였다. 이 문제 정의가 맞다면, 깊이는 다시 유효한 스케일링 축이 된다. 실험은 그 가능성을 확인하는 절차로 보였다.
8. Ablation이 드러내는 핵심 가정
저자들이 중요하다고 주장한 요소는 잔차(스킵) 구조 그 자체였다. 스킵을 제거한 plain 네트워크에서 깊이가 늘수록 훈련 오류가 나빠지는 현상이 핵심 반증으로 기능했다. “표현력이 부족해서가 아니다”라는 주장에 힘을 실어주는 장치였다.
제거했을 때 무너지는 것은 성능만이 아니라 “깊이 증가가 안전한 전략”이라는 믿음이었다. 스킵이 없으면 깊이는 위험해졌고, 스킵이 있으면 깊이는 다시 관리 가능한 선택지가 됐다고 보였다.
이 논문의 문제 정의가 의존하는 핵심 가정은 이것이었다. 실제로 우리가 원하는 매핑은 항등에서 멀리 떨어져 있지 않고, 혹은 최소한 항등을 기준점으로 두고 ‘수정량’을 학습하는 것이 더 쉽다는 가정이었다. 모든 문제에서 항상 참이라고 말하진 않았지만, 비전 인식의 많은 층별 변환이 ‘급진적 재구성’이 아니라 ‘점진적 정제’라는 믿음이 깔려 있다고 느꼈다.
9. 여전히 남는 질문
잔차 연결이 최적화를 쉽게 만든다는 설명은 설득력 있었지만, “왜 그렇게까지 잘 되는가”는 완전히 닫힌 느낌은 아니었다. 손실 지형이 어떻게 바뀌는지, 경로가 몇 개 늘어서인지, 신호/그래디언트 통계가 어떻게 변하는지 같은 질문이 남았다고 느꼈다.
또 다른 질문은 스킵이 사실상 표준이 된 이후에야 보였다. 깊이를 가능하게 만든 설계가, 모델을 더 깊게 만드는 방향으로만 연구를 끌고 갔는지에 대한 의문이 생겼다. “깊이를 안전하게 만드는 것”이 “깊이가 최선이라는 결론”으로 슬쩍 바뀌는 순간이 있었기 때문이다.
마지막으로, 잔차 학습이 강력하다는 사실이 곧 “모든 모듈은 잔차여야 한다”로 일반화되는 과정도 질문으로 남았다. 어떤 문제에서는 항등이 좋은 기준점이 아닐 수도 있고, 그때는 무엇이 기준점이 되는지 다시 묻게 됐다고 느꼈다.
10. 정리
이 논문은 “깊어지면 성능이 좋아져야 한다”는 당연한 전제를, “깊어져도 최소한 나빠지지 않아야 한다”는 최적화 보장 문제로 다시 정의했고, 그 정의는 비전 모델 설계를 ‘표현력 확장’에서 ‘항등 경로를 갖춘 안전한 확장’으로 바꿔 보이게 했다고 정리했다.
'PaperReview' 카테고리의 다른 글
| [FastReID]FastReID: A Pytorch Toolbox for General Instance Re-identification (0) | 2026.01.07 |
|---|---|
| [DDPM]Denoising Diffusion Probabilistic Models (0) | 2026.01.07 |
| Visual Prompt Tuning (0) | 2026.01.06 |
| [AlexNet]ImageNet Classification with Deep Convolutional Neural Networks (0) | 2026.01.05 |
| [Deit] Deit: Training data-efficient image transformers & distillation through attention (0) | 2025.12.27 |