[논문 리뷰] Deep Residual Learning for Image Recognition(ResNet)
기존의 신경망 구조에서는 네트워크의 깊이를 깊게 할수록 성능이 향상되지 않고 오히려 성능이 저하되는 현상이 발견되었습니다. 이러한 현상은 네트워크가 깊어질수록 최적화가 어려워지는 Degradation Problem 때문입니다. 깊은 네트워크는 복잡한 모델을 학습할 수 있는 잠재력이 있음에도 불구하고, 최적화 과정에서 문제를 겪어 성능이 저하되는 것입니다.
이 문제를 해결하기 위해, Kaiming He와 그의 연구팀은 Residual Learning이라는 새로운 학습 방식을 제안하였습니다. Residual Learning은 네트워크가 학습해야 하는 목표를 단순화하여 최적화를 용이하게 만듭니다. 이를 통해 깊은 네트워크에서도 안정적으로 학습이 가능하게 되었습니다.
ResNet & Residual Learning
ResNet은 이 Degradation Problem을 해결하기 위해 설계된 네트워크입니다. ResNet은 기존의 신경망 구조와는 달리, 네트워크가 깊어질수록 성능이 저하되지 않도록 Residual Block을 도입하였습니다.
Residual Block은 입력 값 x를 그대로 출력으로 사용하는 Skip Connection을 추가합니다. 이는 네트워크가 학습해야 할 대상 함수를 H(x) 대신 F(x) := H(x) − x로 변환하여, 최적화를 용이하게 합니다. 이렇게 하면, 네트워크가 학습해야 하는 함수가 더 단순해져 훈련 오류가 감소하고, 결과적으로 네트워크 성능이 향상됩니다.
F(x)를 수식으로 표현하면 아래와 같습니다.
또한, 를 더 일반적인 형태로 변경하면 아래와 같습니다.
매핑을 선형 투영(linear projection)을 통해 차원을 맞춥니다.
Architecture
ResNet의 기본 구조는 VGGNet에서 영감을 받은 34-layer 모델입니다. 입력층을 제외하고 모두 3x3 필터를 사용합니다. 필터의 차원이 2배가 될 때, Feature map의 크기는 절반이 됩니다.
ImageNet Classification
ImageNet 2012 데이터셋에서 평가를 진행했습니다.
Plain Network
Plain Network의 경우, 18층과 34층을 비교했습니다. 34층의 학습 오류가 더 높은 것을 확인할 수 있었습니다.
Residual Network
Residual Network의 경우도 18층과 34층을 비교했습니다. 모든 short cut에 대해 항등 매핑(identity mapping)을 진행했습니다. 추가로 의 차원을 맞추기 위해 zero-padding을 진행했습니다. 34층의 학습 오류가 더 낮은 것을 확인할 수 있었습니다.
Plain vs ResNet
Plain 네트워크와 ResNet을 비교한 결과, ResNet이 18층과 34층 모두에서 더 좋은 성능을 보였습니다.
Comparsions with SoTA
단일 모델의 경우, SoTA 모델보다 더 좋은 성능을 보였습니다. 앙상블 모델의 경우에도 SoTA 모델보다 더 좋은 성능을 보였으며, ResNet 단일 모델보다도 좋은 성능을 보였습니다.
Conclusion
ResNet 논문의 핵심 아이디어는 깊은 신경망의 훈련을 용이하게 하는 residual learning 프레임워크의 도입입니다. Residual Network는 층이 깊어질수록 발생할 수 있는 최적화 문제를 완화하고, 실제로 더 깊은 네트워크가 더 나은 성능을 낼 수 있음을 실증적으로 보여줍니다. ResNet의 성공은 깊은 신경망이 마주한 주요 장애물 중 하나를 극복하고, 기존 모델에 비해 큰 성능 향상을 이끌어냈습니다. 개인적으로 ResNet의 가장 큰 기여는 딥러닝 모델의 설계에 대한 새로운 시각을 제공한 것이라고 생각합니다. 단순히 레이어를 쌓는 것만으로는 성능을 향상시킬 수 없다는 교훈을 주었으며, 최적화 문제를 해결하기 위한 창의적인 접근 방식이 필요하다는 점을 일깨워 주었다고 생각합니다.