
📝 이번 포스트는 ResNet으로 알려진 "Deep Residual Learning for Image Recognition" 논문에 대해 알아보도록 하겠습니다.
층을 깊게 쌓은 Deep CNN은 이미지 분류 작업에서 지속적인 발전을 이끌었습니다.
깊이의 중요성에 따라 "더 나은 네트워크를 학습하는 것이 단순히 layer를 더 쌓는 것만으로 가능할까?"라는 질문이 뒤따르게 되었습니다.
층을 깊이 쌓는 것은 기울기 소실(vansihing gradient)과 기울기 폭등(exploding gradient) 문제를 야기합니다.
이 문제점은 normalization으로 대부분 해결할 수 있게 되었습니다.
normalization으로 인해 수십 개 층을 가진 네트워크도 SGD optimzer와 역전파를 통해 수렴할 수 있게 되었습니다.☑️
하지만 신경망을 이보다 더 깊이 쌓으면, 성능 저하(degradation)라는 문제점에 마주하게 됩니다.
accuracy는 포화상태에 이르고, 급격하게 감소하게 됩니다.

이는 과적합(overfitting)때문이 아니라, 적절히 깊은 모델에 더 많은 레이어를 추가할수록 오히려 학습 오류가 증가한다는 실험 결과로 입증되었습니다.
위 그림은 CIFAR-10 데이터셋을 단순한 20층 신경망과 56층 신경망을 비교한 실험입니다. 왼쪽은 training error이고, 오른쪽은 test error 실험입니다.
에러율이 학습단계와 검증단계 모두에서 56층 신경망에서 높은 것을 알 수 있습니다.
본 논문에서는 이러한 성능 저하 문제를 해결하기 위해 잔차 학습(residual learning) 프레임워크를 도입하였습니다.
쌓인 몇 개의 레이어가 원하는 매핑 H(x)를 직접 학습하는 residual mapping F(x) := H(x) - x를 학습하도록 설계하였습니다.이를 통해 원래 매핑은 H(x) = F(x) + x로 재구성되며, residual mapping을 학습하는 것이 원래의 복잡한 매핑을 직접 학습하는 것보다 다 최적화가 쉽다는 것을 주장합니다.
기존의 네트워크는 stacked layers를 통해 입력 에서 출력 매핑 를 직접 학습하였습니다.
그러나 ResNet에서는 이를 재구성하여, stacked layers가 대신 잔차 함수 (residual functions) 를 학습하도록 설계하였습니다.
원래 목표 매핑 는 위 식을 근거로 로 표현할 수 있습니다.
이 재구성은 층들이 더 간단한 변화를 학습할 수 있도록 하며, 학습이 더 쉬워질 수 있다는 가설을 기반으로 재구성되었습니다.

로 위 식은 shortcut connection을 통해 input vector 와 residual mapping 를 덧셈으로 결합한 학습가능한 함수로 표현한 것입니다.
위 그림은 층이 2개입니다. 식으로 표현하자면
로 표현할 수 있습니다.
참고로 는 ReLU를 뜻합니다.
저자가 bias는 수식에서 표기하지 않았다고 합니다.
만약 차원이 다른 경우는 shortcut connection을 수정해야 합니다.
shortcut connection에 대해서는 다음 섹션에서 설명하도록 하겠습니다.

논문에서는 Plain Network와 Residual Network 두가지 모델로 실험을 진행하였습니다.
Plain Network는 VGGNet의 설계 철학에서 영감을 받아 다음과 같은 원칙으로 설계되었습니다.
Residual Network는 Plain Network를 기반으로 만들어졌습니다.
Plain Network와 Residual Network 둘 다 구현 세부사항은 아래와 같습니다.
으로 모델을 구현하였다고 합니다.
논문의 실험 결과입니다.

왼쪽 결과는 Plain Network 18층과 34층의 차이를 보여주는 그림입니다.
Plain Network는 층이 깊은 모델이 학습이 진행됨에 따라 error rate가 더 높음을 보여줍니다.
반면 ResNet은 층이 깊음에도 불구하고 34층 모델의 error rate가 작음을 보여줍니다.
이 결과로 Residual Block이 층을 깊게 쌓아도 degradation 문제를 발생시키지 않음을 알 수 있습니다.
Residual Block을 이용하여 성능 저하 없이 층을 깊게 쌓을 수 있는 방법을 보였습니다.
ResNet은 이후 컴퓨터 비전뿐 아니라 자연어 처리, 음성 인식 등 다양한 분야에서 모델 설계의 표준으로 자리 잡았으며, 딥러니의 심층화와 효율성 간의 균형을 맞추는 데 전환점을 제공했습니다.