
(56-layer 신경망이 20-layer 신경망보다 error가 높다)
Residual learning은 몇 개의 layer마다 적용하는데, 적용의 기준이 되는 block은 아래와 같이 정의됨

구체적으로는 가 되며, 와 의 차원이 동일하지 않으면 더하기 연산을 수행하지 못하기 때문에 더해줄 에 추가적인 선형변환을 수행해야 함
본 논문에서 구현된 ResNet은 Convolution layer를 수행할 때마다 특정 구간에서 필터 수를 x2로 늘리기 때문에 필터가 늘어나는 layer 구간부터 선형변환이 필요함. 이때, 적용할 수 있는 방법은 zero padding으로 전부 0으로 매핑시켜서 차원수를 맞추거나, 1x1 Convolution을 적용하여 정보 손실을 줄이는 방향으로 선형 변환하는 2가지 방법이 있음
마지막에는 Global Average pooling을 적용하여 각 채널의 2차원 행렬을 하나의 스칼라값으로 변환

ResNet이 일반 신경망보다 일관되게 좋은 성능을 보임

ResNet-34 A는 차원수가 늘어날 때 선형변환 방법으로 제로패딩 적용, B는 1x1 Convolution을 적용한 projection connection 적용, C는 모든 Skip connection에서 projection connection을 적용
A, B, C중 C가 제일 우수한 성능을 보였으나, 그 성능 차이가 크지 않았고, 메모리 및 시간복잡도 측면에서 C는 불리하므로 다른 실험에서는 C를 적용하지 않음

ResNet은 layer를 깊게 쌓을 수록 오히려 학습이 어려워지는 문제를 해결하기 위해 나온 network이다. ResNet의 핵심은 Skip Connection을 통해 입력 값 x를 직접 전달시킴으로써 다음 layer가 입력값 정보를 직접 참조하게 하여 정보의 손실을 방지한다. 그리고 학습해야 할 목표 함수와 x의 차이(기울기)를 직접 학습하는 대신 목표 함수 H(x)에 x를 뺀 차이(잔차)만큼만 학습을 하여 기울기가 급격하게 소실, 폭발되는 상황을 줄여 layer를 깊게 쌓아도 학습이 잘 되도록 유도하는 아키텍처라고 할 수 있다.