# Deep Residual Learning for Image Recognition 본 문서는 Kaiming He, Xiangyu Zhang, Shaoqing Ren, Jian Sun이 제안한 Deep Residual Learning for Image Recognition(일명 ResNet)에 대하여 백과사전적 관점에서 정리한다. 이 논문은 심층 신경망의 학습 난제를 해소하기 위한 잔차 학습(residual learning) 프레임워크를 도입하여, 이미지 인식 분야에서 깊이가 증가하더라도 성능이 향상될 수 있음을 보였다. 잔차 학습은 네트워크의 학습 목표를 입력 x에 대한 잔차 함수 F(x) = H(x) − x를 학습하는 형태로 재구성하고, 항등 스킵 연결(identity shortcut)을 통해 기울기 소실 문제를 완화한다. --- ## 서론 및 동기 - 문제 제기: 네트워크 깊이가 증가함에 따라 성능이 향상될 것이라는 직관과 달리, 기존의 깊은 네트워크는 학습이 어려워지는 현상(gradient vanishing/explosion)과 최적화의 비효율성을 보였다. - 제안: 잔차 학습 구조를 도입하여, 각 블록이 입력 x를 보존하는 항등 스킵 경로(identity shortcut)와 학습 목표로 남겨진 잔차 함수 F(x)를 학습하도록 하는 방식으로 더 깊은 네트워크의 학습 가능성을 크게 끌어올렸다. - 데이터셋: ImageNet(ILSVRC)과 같은 대규모 데이터셋에서의 실험을 통해, 깊은 네트워크가 더 좋은 일반화 성능을 보일 수 있음을 입증했다. --- ## 핵심 아이디어 - 잔차 블록(Residual Block): 입력 x에 대해 F(x)이라는 잔차 함수를 학습하고, y = F(x) + x로 출력을 얻는 구조. 이는 깊은 네트워크에서의 정보 흐름을 직접적으로 연결해 주어 학습을 용이하게 한다. - 스킵 연결(Skip Connection): 항등 매핑을 통해 입력 신호를 이후 계층으로 직접 전달. 차원 불일치가 있을 때는 1×1 컨볼루션 등의 프로젝션(shortcut projection)으로 차원을 맞춘다. - 간결한 학습 목표: 네트워크가 H(x) 대신 F(x) + x를 학습하므로, 초기 가중치가 항등 연산에 가까운 상태에서 학습을 시작할 수 있어, 심층 네트워크의 최적화가 더 안정적으로 이루어진다. - 네트워크 확장성: 단순히 더 깊은 모델을 쌓는 방식으로도 성능을 계속 개선할 수 있으며, Bottleneck 블록을 사용하면 깊이가 더 커지더라도 계산 효율을 유지할 수 있다. --- ## 네트워크 아키텍처의 구성 - 기본 블록(Basic block) vs. 병목 블록(Bottleneck block) - Basic Block: 주로 2개의 3×3 컨볼루션으로 구성된 기본 잔차 블록. 깊이가 비교적 작고, 간단한 구조에 적합. - Bottleneck Block: 1×1 컨볼루션으로 차원을 축소한 뒤 3×3 컨볼루션, 다시 1×1 컨볼루션으로 차원을 확장하는 구조로, 깊이가 큰 네트워크에서 계산 효율을 높인다. - 스테이지 구성 - 네트워크는 보통 4개의 스테이지로 구성되며, 각 스테이지는 여러 개의 잔차 블록으로 이루어진다. - 깊이에 따라 각 스테이지의 블록 수가 다르게 배치된다(예: ResNet-50, 101, 152에서 Bottleneck 블록 사용). - 대표적 구성 예 - ResNet-18/34: Basic Block을 사용, 더 얕은 네트워크에 적합. - ResNet-50/101/152: Bottleneck Block을 사용, 더 깊은 네트워크를 구현. - 입력 및 출력 - 입력 해상도: 일반적으로 224×224 이미지를 사용. - 초기 커널: 7×7 컨볼루션, 스트라이드 2로 다운샘플링. - 마지막 단계: Global Average Pooling(전역 평균 풀링) 후 완전 연결 계층(1000 클래스)을 통한 분류. - 차원 변화와 shortcut - 차원이 변화하는 경우, 1×1 컨볼루션으로 Shortcut 경로를 맞추어 F(x)와 x의 합이 가능하도록 한다. - 항등(shortcut) 경로는 가능할 때 유지되며, 차원 불일치 시 프로젝션이 적용된다. --- ## 학습 설정 및 데이터셋 - 데이터셋: ImageNet(ILSVRC) 대회 데이터셋, 약 1000개 클래스와 수백만 장의 이미지. - 데이터 증강: 학습 시 랜덤 크롭, 수평 대칭 등으로 일반화 성능을 향상. - 학습 방법: 확률적 경사 하강법(SGD) with momentum - 모멘텀(momentum): 일반적으로 0.9. - 가중치 감소(weight decay): 보통 0.0001. - 배치 크기: 대개 256. - 학습률 스케줄: 초기 학습률 예를 들면 0.1에서 시작해 주기적으로 감소. - 성능 측정: ImageNet의 Top-1 및 Top-5 에러율 지표를 사용한 평가. --- ## 주요 결과 및 영향 - 더 깊은 네트워크의 학습 가능성: 잔차 학습 프레임워크 도입으로 100개 이상의 층을 가진 네트워크도 효과적으로 학습될 수 있음을 보여주었다. - 성능 향상: 이전의 VGG/VGG-Style 구성이나 Inception 계열보다 깊은 네트워크 구성이 더 좋은 인식 성능을 제공하는 경향을 확인하였다. - 활용 범위 확대: 이미지 분류를 넘어 객체 검출, 분할 등 다양한 비전 문제에서도 백본(backbone)으로 널리 채택되었다. --- ## 변형 및 후속 연구 - ResNet-V2(Pre-activation Residual Networks): 각 블록 내부의 배치 정규화와 ReLU를 블록의 선두로 옮겨 더 나은 최적화를 달성하는 버전. - ResNeXt: 카드-효율성 및 다중 경로 구조를 강화한 확장 버전으로, 더 나은 효율성으로 성능 향상. - Wide ResNet: 블록 당 채널 수를 늘려 폭을 넓힌 버전으로 연산량 대비 성능 개선. - Stochastic Depth 등: 학습 과정에서 블록의 일부를 확률적으로 생략하는 기법으로 일반화 성능과 학습 속도에 영향을 준 변형들. - 응용 영역 확장: 객체 검출(Faster R-CNN 계열의 백본), 분할, 비디오 인식, 의료 영상 분석 등 다양한 비전 태스크에 널리 적용. --- ## 한계점 및 비판 - 계산 자원 요구 증가: 깊이가 깊어질수록 연산량과 메모리 요구가 커지며, 대규모 데이터와 강력한 하드웨어가 필요. - 데이터 의존성: 성능 향상은 대규모 고품질 데이터에 크게 의존하는 경향이 있어, 데이터가 제한된 상황에서의 이점이 제한될 수 있음. - 대안 아키텍처와의 비교: 여러 다른 아키텍처(예: Inception 계열, VGG 등)와의 비교에서 상황에 따라 최적의 선택이 달라질 수 있음. --- ## 적용 분야 및 의의 - 이미지 인식 및 분류에서의 기본 백본으로 널리 사용. - 객체 탐지, 세분화, 시맨틱 분할 등 다중 비전 태스크의 특징 추출기(backbone)로 채택. - 심층 신경망의 학습 가능성에 대한 새로운 방향 제시: 깊이가 증가해도 학습이 가능하다는 것을 보여준 중요한 기여로 평가받음. --- ## 용어 해설 - Residual Block: 잔차 블록. F(x) + x의 합성으로 출력 y를 얻는 블록 구조. - Identity Shortcut: 차원 불일치가 없을 때의 입력 x를 그대로 연결하는 경로. - Projection Shortcut: 차원 불일치가 있을 때 1×1 컨볼루션 등으로 차원을 맞추는 경로. - Bottleneck Block: 차원 축소(1×1) → 3×3 컨볼루션 → 차원 확장(1×1)으로 구성된 잔차 블록. - Global Average Pooling: 특징 맵의 모든 위치에서 평균을 취해 하나의 스칼라로 축소하는 풀링 방식. - SGD with Momentum: 확률적 경사 하강법에 모멘텀을 도입한 최적화 기법. - ImageNet / ILSVRC: 대규모 이미지 분류 데이터셋으로 논문에서 사용된 표준 벤치마크. - ReLU: 음수 값을 0으로 바꾸고 음수가 아닌 값은 그대로 통과시키는 활성화 함수. --- ## 참고 문헌 - He, K., Zhang, X., Ren, S., Sun, J. Deep Residual Learning for Image Recognition. arXiv:1512.03385 (2015). --- 관련 문서: [[ResNet]], [[ImageNet]], [[ResNet-v2 (Pre-activation)]], [[Inception (GoogLeNet)]]