ShuffleNet: An Extremely Efficient Convolutional Neural Network for Moblie Devices (CVPR 2018)
Authors: Xiangyu Zhang, Xinyu Zhou, Mengxiao Lin, Jian Sun
- AlexNet 이후로 CNN 기반의 네트워크들이 성능 향상을 위해 깊고 큰 네트워크를 만들어왔다. 하지만 점점 방대한 크기의 네트워크를 만드는 것이 아닌 모바일 환경이나 임베디드 환경에 네트워크를 적용하기 위해, 네트워크 크기를 줄이면서 성능을 유지하는 네트워크들이 등장하기 시작했다. 본 논문에서는 state of the art Network들이 방대한 네트워크 구조와 계산량으로 제한된 자원에서 좋은 성능을 내지 못하는 것을 확인하고, ShuffleNet을 제안했다.
- 더불어 아래의 그림을 통해서 mobileNet에서 1x1 convolution이 대부분의 연산량을 차지하여 이러한 부분은 개선하고자 한다.
- 제안한 ShuffleNet은 depthwise separable convolution, 1x1 point wise group convolution, channel shuffle 이 3가지 기법을 통해 네트워크의 크기를 줄이면서도 기존 네트워크들 보다 높은 성능을 보여주었다.
- 1x1 point wise group convolution, 과거 AlexNet이 gpu메모리 한계로 convolution의 모든 채널을 한번에 학습할 수 없어서 나눠서 학습했을 때, 성능이 좋아진 것을 착안하여 만든 convolution이다. Convolution을 parameter를 이용하여 원하는 group의 수로 나누어 학습을 진행하여 연산량 감소 효과를 이루어낸다. 하지만 그룹별로 convolution을 진행할 때 group끼리의 cross talk, 즉 정보 교환이 없기 때문에 결국 전부 따로 학습하게 되는 부작용이 있다.
- Channel Shuffle, 1x1 point wise group convolution의 -group 별 정보교환이 없어서 발생하는 부작용을 해결하기 위한 기법이다. 각 그룹별 output을 중간단계에서 shuffle하여 모든 group의 정보가 모든 group끼리 교환할수 있도록 shuffle하며 representation을 강화할 수 있다.
댓글