"RepVGG: Making VGG-style ConvNets Great Again" 논문 소개

안녕하세요, Cognex 이호성입니다. 재미있는 논문이 3일전에 공개되어서 소개드립니다.
딥러닝을 이용한 Computer Vision을 처음 공부하면 대표적인 architecture들 부터 배우게 됩니다. 보통 LeNet, AlexNet을 거쳐서 VGG로 넘어가죠? VGG는 다들 한번쯤은 들어보셨을겁니다.
CNN architecture의 발전 과정은 제가 외부에서 발표했던 자료를 참고하시면 도움이 되실 것 같아서 먼저 소개드립니다.
- CNN architecture 톺아보기: https://www.slideshare.net/HoseongLee6/cnn-architecture-a-to-z

CNN architecture는 ResNet의 대 유행을 지나 AutoML을 이용한 Neural Architecture Search(NAS) 계열의 EfficientNet, RegNet이 좋은 성능을 내고 있었는데 갑자기 예전의 추억을 떠오르게 하는 VGG 연구가 제안되었습니다.
논문 링크: https://arxiv.org/abs/2101.03697v1

아이디어는 단순합니다. 그림과 같이 VGG에 기존 ResNet (그림 A)에서 사용하던 residual branch를 추가하여 Single-path에서 Multi-branch로 VGG를 학습시키게 됩니다. (그림 B)
정확도가 높아지면 대체로 연산 처리 속도는 느려지기 마련인데, 저자들은 딥러닝 연산에 사용되는 NVIDIA cuDNN, Intel MKL 등의 library가 3x3 conv에 굉장히 최적화되어있다는 점에 주목하여 그림 C와 같이 3x3 연산만 거쳐서 inference를 합니다.
여기서 발생하는 Train - Test 의 모델의 불일치를 완화시키기 위해 structural re-parameterization 이라는 기법을 적용합니다. 자세한 내용은 첨부드린 그림과 논문을 참고하시면 좋을 것 같습니다.
실험 결과 ResNet 계열보다 더 적은 Parameter 수로 더 높은 정확도와 더 빠른 처리속도를 달성할 수 있었고, SOTA 방법론인 EfficientNet, RegNet과도 견줄만한 accuracy-speed trade-off 그래프를 얻을 수 있었다고 합니다.
7년전 제안된 VGG가 2021년에 다시 나타날 줄은 상상도 못했는데 정말 세상엔 재미있는 연구들이 많은 것 같네요! 읽어주셔서 감사합니다.

Posted by uniqueone
,