더 깊은 신경망일수록 훈련하기가 더 어려워짐.
이전에 사용된 것보다 훨씬 더 깊은 네트워크의 훈련을 쉽게 하기 위해 Residual Learning 개념을 도입함.
Residual Learning 이란, 이전 layer의 결과를 다시 이용하는 것!
→ 입력 layer를 다시 이용(참조)하여 레이어를 명시적으로 재구성함.
→ 이를 이용한 Residual network는 최적화하기 쉽고, 상당히 증가된 depth에서도 정확도를 얻을 수 있게함.
결과적으로, ResNet은 VGGNet의 8배인 152 layer를 자랑하며, 여기에 앙상블 기법을 적용해 오차를 3.57%까지 줄일 수 있게 됨.
심층 신경망은 low/mid/high 수준의 feature들과 end-to-end multi-layer 방식으로 classifier를 자연스럽게 통합하고, feature들의 “level”은 쌓인 layer(depth)에 따라 더 높아질 수 있음.
→ 높은 추상화 특징은 high layer에서 파악할 수 있음.
layer의 level애 따라 다르게 나타나는 feature들(이전 논문 정리 참고)
최근 연구에서 network의 depth는 매우 중요해졌고, 실제로 많은 모델들이 깊은 네트워크로 좋은 성능을 보였음.
depth의 중요성이 커지면서 한 가지 의문이 생김
→ 더 많은 layer들을 쌓는 것만큼 더 쉽게 네트워크를 학습시킬 수 있을까?
→ 이때, vanishing/exploding gradient 현상이 큰 문제점이 됨.
→ 하지만, SGD를 적용한 10개의 layer까지는 normalization & Batch normalization 기법과 같은 intermediate normalization layer를 사용하는 경우 문제가 없었다고 함.
더 깊은 신경망이 수렴할 때, 성능 저하 문제가 발생함.
→ network의 depth가 증가함에 따라 정확도가 saturated(포화)될 때 급격하게 성능이 저하됨.
하지만, 예상과는 다르게 성능 저하가 overfitting으로 인한 것이 아니며, 그저 더 많은 layer들을 추가되었기 때문인데, 이는 test error 뿐만 아니라, train error도 함께 높아졌기 때문임.
→ 이러한 training 정확도 감소는 모든 시스템들의 최적화 방식이 다르다는 점을 의미함.
그러나 더 깊은 모델에서도 최적화할 수 있는 방법은 존재함
→ 추가된 layer들이 identity mapping이고, 추가되지 않은 다른 layer들은 더 얕은 모델에서 학습된 layer들을 사용하는 것