ResNet(잔차 신경망, residual neural network)은 층들이 입력에 대한 잔차 함수를 학습하는 딥러닝 아키텍처이다. 2015년 이미지 인식용으로 개발되어 그 해 ImageNet 대규모 시각 인식 챌린지(ILSVRC)에서 우승했다. 이 아키텍처의 정의적 특징은 잔차 연결(residual connection)로, 하위 네트워크의 입력을 출력에 더하는 모티프이며 수백 개의 층을 가진 네트워크 훈련을 가능하게 한다. 이 설계는 현대 Deep learning 모델의 기본 구성 요소가 되었으며, Transformer (architecture) 아키텍처와 AlphaGo Zero 및 AlphaFold 같은 시스템을 포함한다.
잔차 연결은 심층 신경망의 훈련과 수렴을 안정화하여 이전에 네트워크 깊이를 제한했던 기울기 소실 문제를 해결한다. 그 영향력은 이미지 인식에 국한되지 않고 신경망 전반에 걸쳐 대규모 언어 모델에서 강화 학습 시스템에 이르기까지 다양한 영역에 나타난다.
수학
ResNet의 핵심 아이디어는 학습 대상을 재구성하는 것이다. 다층 네트워크에서 입력 \(x\)와 매개변수 \(\alpha\)를 사용하여 함수 \(H(x;\alpha)\)를 계산하는 적층 층으로 구성된 하위 네트워크를 고려하자. \(H\)를 직접 학습하는 대신, 잔차 학습은 하위 네트워크가 \(F(x;\alpha) = H(x;\alpha) + x\)를 학습하게 한다. 최적 출력 \(H^\)는 잔차 \(H^ - x\)를 학습하여 달성되며, 이는 종종 최적화하기 더 쉽다.
\(x\)의 덧셈은 항등 매핑을 수행하는 스킵 연결을 통해 구현되며, 하위 네트워크의 입력을 출력에 직접 연결한다. 이 스킵 연결이 "잔차 연결"이다. 이 연결을 가진 하위 네트워크를 잔차 블록이라 하며, 심층 잔차 네트워크는 이러한 블록을 쌓아 구축된다.
잔차 연결
잔차 블록에서 함수 \(F\)는 일반적으로 활성화 함수와 배치 정규화 또는 층 정규화 같은 정규화 연산이 사이에 있는 행렬 곱셈으로 구성된다. 잔차 연결 \(x + F(x)\)는 역전파 중에 기울기가 네트워크를 통해 직접 흐르게 하여, 더 깊은 네트워크가 훈련하기 어려워지는 열화 문제를 완화한다.
잔차 연결의 개념에는 선례가 있다. 장단기 메모리(LSTM) 네트워크는 잔차 연결 역할을 하는 메모리 셀을 가진다: \(c_{t+1} = c_t + F(x_t)\), 여기서 \(c_t\)는 셀 상태이고 \(F\)는 입력 \(x_t\)를 처리한다. 망각 게이트가 있는 LSTM은 본질적으로 게이트된 스킵 연결을 사용하는 관련 아키텍처인 고속도로 네트워크로 기능한다.
매우 깊은 네트워크에서 층 입력의 분산을 안정화하려면 잔차 연결을 총 층 수 \(L\)로 스케일링하여 \(x + f(x)\)를 \(x/L + f(x)\)로 대체하는 것이 권장된다. 이 정규화는 수백 개의 층에 걸쳐 일관된 신호 크기를 유지하는 데 도움이 된다.
투영 연결
함수 \(F\)가 입력의 차원을 변경할 때, 예를 들어 \(n \neq m\)인 \(F: \mathbb{R}^n \to \mathbb{R}^m\)의 경우, 덧셈 \(F(x) + x\)는 정의되지 않는다. 이 경우 투영 연결이 사용된다: \(y = F(x) + P(x)\), 여기서 \(P\)는 일반적으로 \(m \times n\) 행렬 \(M\)을 가진 선형 투영 \(P(x) = Mx\)이다. 이 행렬은 다른 모델 매개변수와 함께 역전파를 통해 훈련되어 네트워크가 스킵 연결을 새로운 차원에 적응시킬 수 있게 한다.
신호 전파
항등 매핑의 도입은 순방향 및 역방향 경로 모두에서 신호 전파를 용이하게 한다. 순방향 패스에서 \(\ell\)-번째 잔차 블록의 출력이 \((\ell+1)\)-번째 블록의 입력이라면(블록 간 활성화가 없다고 가정), \(x_{\ell+1} = F(x_\ell) + x_\ell\)이다. 이 점화식은 정보가 네트워크를 통해 직접 흐르게 하여, \(F\)가 작은 값을 생성하더라도 입력 신호를 보존한다.
역방향 패스에서 블록 입력에 대한 손실의 기울기는 항등 매핑을 통해 전달된 출력에 대한 기울기 항을 포함한다. 이는 기울기가 많은 층을 통과하면서 소실되지 않도록 보장하며, 수백 개의 층을 가진 네트워크 훈련을 가능하게 하는 핵심 요소이다.
역사와 영향
잔차 연결 모티프는 이전 연구에서 사용되었지만, 2015년 ResNet의 발표로 피드포워드 네트워크에서 널리 대중화되었다. 이 아키텍처는 Microsoft의 연구자들인 Kaiming He, Xiangyu Zhang, Shaoqing Ren, Jian Sun에 의해 개발되었다. 그들의 논문 "Deep Residual Learning for Image Recognition"은 잔차 네트워크가 152개 층 이상의 깊이로 훈련될 수 있음을 보여주었고, ImageNet 벤치마크에서 최첨단 결과를 달성했다.
ILSVRC 2015에서의 ResNet 성공은 머신러닝의 전환점이 되었다. 이는 매우 깊은 네트워크가 실현 가능할 뿐만 아니라 성능에서도 우수함을 보여주었고, 심층 아키텍처 연구의 급증을 이끌었다. 잔차 연결은 이후 모델의 표준 구성 요소가 되었으며, 자연어 처리에 사용되는 Transformer(BERT 및 GPT 모델 포함)와 AlphaGo Zero, AlphaStar, AlphaFold 같은 시스템을 포함한다.
변형 및 확장
성능이나 효율성을 개선하기 위해 여러 ResNet 변형이 개발되었다. 사전 활성화 ResNet은 활성화 함수를 가중치 층 앞으로 이동하여 정규화를 개선하고 더 깊은 네트워크를 가능하게 한다. Wide ResNet은 각 블록의 채널 수를 늘려 깊이를 폭으로 대체하여 더 적은 층으로 더 나은 정확도를 달성한다. ResNeXt는 카디널리티 차원을 도입하여 각 블록 내 병렬 분기를 사용함으로써 깊이를 늘리지 않고 표현력을 증가시킨다.
다른 확장으로는 각 층을 피드포워드 방식으로 다른 모든 층에 연결하는 DenseNet과 훈련 중 층을 무작위로 제거하여 네트워크를 정규화하는 확률적 깊이를 가진 ResNet이 있다. 이러한 변형들은 심층 잔차 학습의 가능성을 더욱 확장했다.
응용
ResNet은 이미지 인식 외에도 객체 탐지, 의미론적 분할, 비디오 분석 등 광범위한 작업에 적용되었다. 또한 의료 영상, 자율 주행, 얼굴 인식 시스템에도 사용된다. 이 아키텍처의 다용성과 견고성은 많은 컴퓨터 비전 응용에서 기본 선택이 되게 했다.
또한 잔차 연결 원리는 자연어 처리와 강화 학습 같은 다른 영역에서도 채택되었다. 예를 들어, Transformer 모델은 언어 이해 및 생성을 위한 심층 네트워크 훈련에 잔차 연결을 의존하며, 이는 OpenAI의 GPT 시리즈와 Anthropic의 모델에서 볼 수 있다. 따라서 ResNet의 영향력은 인공지능 분야 전반에 걸쳐 널리 퍼져 있다.