Deep convolutional neural network는 image classification에서 좋은 성능을 보여줬다. 최근 연구에 따르면 network depth가 깊을 때 풍부한 feature가 추출되어 classification task를 잘 수행한 것을 확인할 수 있다. 이에 따라 자연스럽게, 과연 layer를 더 많이 쌓을수록 network의 학습이 더 잘 되는지에 대한 의문이 생긴다. 그에 대한 답은 Fig. 1을 보면 알 수 있는데, 층을 늘려서 학습을 진행하면 vanishing/exploding gradient 문제가 발생하기 때문에 학습이 잘 진행되지 않는다는 것을 확인할 수 있다.
Figure 1. Training error (left) and test error (right) on CIFAR-10 with 20-layer and 56-layer “plain” networks.
이러한 degradation problem을 해결하기 위해 본 논문에서는 deep residual learning framework를 제안하고 있다. 각 layer를 mapping에 직접적으로 학습시키는 대신 포괄적으로 residual mapping을 학습시키는 것이다. 다시 말해, 우리가 구하고자 하는 mapping이 $\mathcal H(\mathbf x)$라면 $\mathcal F(\mathbf x):=\mathcal H(\mathbf x)-\mathbf x$를 학습시키고 $\mathcal F(\mathbf x)+\mathbf x$를 original mapping으로 선택하는 방법이다. $\mathcal F(\mathbf x)+\mathbf x$는 shortcut connection을 갖는 feedforward neural network로, 이를 그림으로 표현하면 Fig. 2와 같다. 이러한 shortcut connection을 사용하면 추가적인 parameter나 computational complexity가 필요하지 않으며, 구현 또한 간단하다는 장점이 있다.
Figure 2. Residual learning: a building block.
Residual network를 사용한 결과 학습이 더욱 쉽게 이루어졌고, depth가 증가할수록 accuracy도 증가하는 것을 확인할 수 있었다. ImageNet과 CIFAR-10 데이터셋에 대해 모두 좋은 성능을 보여준 것을 보았을 때 특정 데이터셋에 국한된 방법이 아니라는 것도 확인하였으며, ensemble 기법을 적용했을 때 top-5 error를 보일 정도로 좋은 성능을 보여주었다. 실제로 본 모델은 ImageNet에서 주최한 classification competition에서 1등을 차지하였다.
이 section에서는 Residual Representation 및 Shortcut Connection과 관련된 논문을 소개하고 있다.
$\mathcal H(\mathbf x)$를 원래 의도했던 optimal한 mapping이라 할 때, neural network가 하는 역할은 여러 개의 nonlinear layer를 이용해서 점진적으로 복잡한 함수를 학습하는 것으로 이해할 수 있다. 이론적으로 보았을 때 residual function을 이용한다고 하면 $\mathcal H(\mathbf x)-\mathbf x$를 학습한다고 볼 수 있고, 그래서 사실 수학적으로 보면 $\mathcal H(\mathbf x)$를 그대로 학습하는 것과 별다른 차이가 없을 것으로 느껴질 수 있다. 다만 residual learning을 사용할 때의 차이점은 $\mathcal F(\mathbf x):=\mathcal H(\mathbf x)-\mathbf x$를 학습할 때 그 난이도가 훨씬 쉬워진다는 것이다. 동일한 답을 도출한다고 하더라도 formulation을 바꾸는 과정이 왜 좋은 결과를 낼 수 있는지 납득이 안 갈 수 있고, 오히려 degradation problem 측면에서 보면 이는 직관에 반하는 아이디어로 보일 수도 있다. 다만 앞서 언급했듯이, 추가적으로 더해지는 layer가 identity mapping이라면 더 깊은 모델은 최소한 더 얕은 모델에 비해 training error가 높아지지는 않을 것이라는 추측을 할 수 있다.
같은 맥락으로, 여러 개의 nonlinear layer를 겹쳐놓은 상황에서 identity mapping을 학습하는 것 자체가 쉽지 않은 task일 수 있기 때문에 identity mapping을 기본으로 깔고 갈 수 있도록 하는 것이다. 다시 말해, 기본적으로 항상 이전 입력값을 출력값에 더해줄 수 있도록 해서 기본적인 identity mapping을 항상 수행할 수 있도록 해줌으로써 학습 난이도를 줄여줄 수 있다는 것이다. 물론 real case에서 보았을 때 optimal solution이 identity mapping일 확률은 굉장히 희박하지만, 그럼에도 불구하고 그러한 mapping을 추가해주는 것 자체가 문제를 더 쉽게 해결해줄 수 있도록 하는 좋은 방향성을 제시해줄 수 있다. 만약 optimal function이 zero mapping보다 identity mapping에 가깝다고 한다면 당연히 residual function을 이용할 때가 당연히 학습하기 쉬울 것이다.