CVPR 2018
computation-efficient CNN architecture named ShuffleNet을 소개한다.
ShuffleNet은 mobile devices with very limited computing power를 위해 설계되었다.
ShuffleNet은 두 개의 새로운 operations을 사용
한다.
Xception and ResNeXt와 같은 SOTA basic architectures는 dense 1x1 conv 때문에 extremely small networks에서 덜 효율적이다.
우리는 1x1 conv의 computation complexity를 줄이기 위한 pointwise group convolutions을 제안한다.
group conv의 부정적 영향을 극복하기 위해 feature channels들 간의 정보 흐름을 도울 수 있는 a novel channel shuffle operation을 제안한다.
이 두가지 기술에 기반하여, 우리는 highly efficient architecture called ShuffleNet
을 만들었다.
GC의 개념은 AlexNet에서 model을 두 GPU로 나누는 것에서부터 시작되었고, ResNeXt and DeepRoots에서 그 효과성이 입증되어 왔다.
Xception에서 제안된 Depthwise separable conv는 Inception series에서 separable convs의 아이디어를 일반화하였다.
최근 MobileNet에서 depth-wise separable convs를 사용하여 는 lightweight models 사이에서 SOTA를 달성했다.
우리의 연구는 GC와 depthwise separable conv을 새로운 형태로 일반화한다.
예를 들어, ResNeXt에서는 layer에만 group conv를 장착하고 있다.
그 결과, ResNeXt의 각 residual unit에서는 pointwise conv간 93.4$ multiplication-adds을 차지한다 (cardinality=32).
tiny networks에서는, expensive pointwise convolutions 때문에 complexity 제약을 맞추기 위해 channel 수가 제한되어, 이는 accuracy를 크게 떨어뜨릴 수 있다.
이를 해결하기 위한 간단한 방법은 layer도 group conv와 같은 channel sparse connections을 적용하는 것이다.
각 convolution이 해당 input channel group에 대해서만 작동하도록 보장함으로써, GC는 computation cost를 크게 줄일 수 있다.
그러나 여러 GC를 stack할 경우, 한 가지 부작용이 발생한다:
특정 channel에서 나오는 output은 input channels의 어느 작은 일부분으로부터 나온다는 것이다.
Fig 1 (a)는 두 개의 GC layer가 쌓인 상황을 보여준다.
특정 group에서 나오는 output은 그 group 내의 input에만 관련이 있다는 것이 분명하다.
이 특성은 channel group 간 information flow를 차단하고 representation 능력을 약화시킨다.