본문 바로가기

논문 리뷰

[논문 리뷰] ANTNets: Mobile Convolutional Neural Networks for Resource Efficient Image Classification

Contribution

1. MobileNetV2의 Inverted Residual Block에 channel attention 도입

2. Group convolution을 사용하여 parameter수 computational cost 챙김

3. IPhone 5s에서 MobileNetV2 보다 20% 빠른 inference time

4. MobileNetV2의 일반화된 구조가 ANTNets이라 주장

 

ANTBlocks

  파란색 부분추가된 channel attention 구조이고, 파란색 외의 부분기존의 MobileNetV2의 Inverted Residual Block 구조이다.

 

Depthwise separable convolution

Depthwise separable convolution

  MobileNetV1에서 사용된 개념이다. 기존 convolution에 사용되는 kernel의 크기는 KxKxC 였지만, Depthwise seperable convolution은 Depthwise convolution의 KxKx1, Pointwise Convolution의 1x1xC  두 단계로 진행하게 된다. Channel수가 충분히 크면 계산량이 KxK(커널 크기)만큼 줄게 된다. 물론 연산량과 parameter 수가 주는 만큼 성능도 감소한다(trade off 있음).

 

Inverted residual block

  기존 (a)Residual block은 연산량을 줄이기 위해서 bottleneck block을 사용하였다. 1x1 convolution을 통해 channel수를 줄였다 다시 늘리는 방식을 채택하였는데, 그와 반대로 (b)Inverted residual block은 channel expansion을 하고 후에 원래 dimension으로 projection하게 된다.

dimension에 따른 ReLU의 정보손실

  Inverted residual block의 장점은 ReLU의 단점을 보완하는데서 나타나는데, activation function으로 ReLU 함수를 사용하면 0 이하의 값은 모두 0으로 맵핑되어 입력된 데이터의 정보의 손실이 일어난다. 위의 그림을 보면 차원수가 작을 수록 ReLU에 의한 정보 손실이 큰 것을 확인할 수 있는데 이를 보완하기 위해 Inverted residual block으로  차원수를 늘려주는 방식을 채택하였다. 기존의 Residual block과 달리 Depthwise Seperable Convolution을 사용하기 때문에 연산량도 어느정도 고려되었다.

MobileNet 구조

  결론적으로 위의 그림과같이 Inverted Residual Block(MobileNetV2)을 구성하게 된다. Stride=2 (downsampling)할 때는 residual connection을 사용하지 않는 방식으로 설계한다.

 

Channel Attention

 

SENet 구조

  SENet의 방식을 채택하여 channel attetion을 사용하였다. ANTBlocks에서 depthwise convolution layer와 projection layer 사이에 삽입한다. Squeeze layer는 global average pooling을 사용하였다.

 

Group convolution

  Depthwise seperable convolution은 depthwise convolution 보다 pointwise convolution이 parameters수와 연산량의 대부분을 차지한다. 또한 inverted residual block의 channel expansion layer로 인해 channel dimension이 커져있는 상황이다. 그렇다 보니 projectionlayer가 요구하는 parameter 수와 MAdds(mutiply-adds, FLOPs와 같다 보면 됨)가 크게 된다. 이 부분을 group convolution으로 해결한다.

Full Channel Receptive Field - FCRF

  위의 그림의 화살표는 backpropagation 방향이라고 생각하면 된다. 따라서 위쪽이 input layer 아래쪽이 output layer이다. 왼쪽 그림을 보면 1,2,3 번 output의 경우 1,2,3,4 번 input의 정보만 가지고 있고 5,6번 정보는 없다. 하지만 중간 그림처럼 input layer의 channel group을 (a)에서 (b)처럼 바꿔주게 되면, 오른쪽 그림처럼 각각의 output이 모든 input의 정보를 포함할 수 있게된다. 이러한 조건을 Full Channel Receptive Field(FCRF)라고 clcNet 논문에서 정의하였고, 이를 만족해야 모델의 성능이 안정적으로 나온다고 주장하였다. 유명한 ShuffleNet도 이 성질을 만족하는 것을 확인할 수 있다.

ShuffleNet-channel shuffle

  그림(a)를 보면 group convolution을 할 때 ouput에 특정 input channel들 정보만 전달된 것을 볼 수 있다. 하지만 (b)와 (c) 처럼 channel shuffle을 해주면 Full Channel Receptive Field-FCRF(Dong-Qing Zhang et al. clcnet: Improving the efficiency of convolutional neural network using channel local convolu- tions. arXiv preprint arXiv:1712.06145, 2017)을 만족하게 된다.

 

  그렇다면 ANTBlock에서는 group convolution을 어떻게 사용하였는지 보자. 연산량의 대부분을 차지하는 pointwise convolution layer를 group convolution으로 최적화를 하려고한다. 문제는 FCRF 성질을 만족하는 block을 만들어야하는데 논문에서는 projection layer 전에 attention block이 depthwise convolution layer를 거친 모든 channel의 정보를 다 포함하였기 때문에 이미 FCRF를 만족한다고 주장하였다. 그러므로 별 다른 channel shuffle 없이 projection layer에 group convolution layer를 사용하여도 문제가 없다고 판단하였다. 

 

e-ANTBlocks

ensemble ANTBlocks

  서로 다른 channel들로 group을 만드는 방식으로 ensemble block을 설계 가능하다고 하였고, 원하는 만큼 추가하여 사용 가능하다고 주장한다. 논문에서는 2개 로 실험을 진행하였다.

 

수식 

  수식적 이해가 크게 중요하지 않은 것 같아서 따로 정리는 안하고 논문에서 참고하면 될 듯하다.

 

Experiments

  ANTBlocks으로 그림과 같이 ANTNet을 구성할 수 있다. 물론 e-ANTBlock을 사용해도 된다.

  CIFAR100에서 실험을 하였고 기존의 ShuffleNet이나 MobileNetV2보다 적은 parameters 수, 작은 MAdds로 더 좋은 성능을 낸 것을 확인 할 수 있다. group수에 따른 비교를 보면, FCRF 조건이 제 역할을 했는지 확인 할 수 있다. group convolution을 사용하였을때 accuracy에 큰 변화가 없고 parameter 수와 MAdds를 많이 줄인 것을 보았을 때, channel attetion으로 만족된 FCRF 조건이 의미가 있었다고 볼 수 있어 보인다.

IPhon 5s에서 CoreML로 모델을 올려 실험을 하였을 때 MobileNetV2 보다 20%가량 빠른 Latency를 보여주었다.

 

Channel attention 

  ANTNets의 주요 contribution인 channel attention의 위치에 따른 ablation study이다.

  se-MobileNetV2는 단순히 concat한 경우, c-ANTNet은 channel expansion layer 전에 삽입한 경우, ANTNET-c는 channel projection layer 후에 삽입한 경우이다. 모든 경우들 중에서 논문에서 제시한 Depthwise convolution layer와 channel projection layer 사이에 삽입했을 때 가장 좋은 성능이 나온 것을 확인할 수 있다.

 

 

 

 이미지 출처:

- Xiong, Yunyang, Hyunwoo J. Kim, and Varsha Hedau. "Antnets: Mobile convolutional neural networks for resource efficient image classification." arXiv preprint arXiv:1904.03775 (2019).
- Hu, Jie, Li Shen, and Gang Sun. "Squeeze-and-excitation networks." Proceedings of the IEEE conference on computer vision and pattern recognition. 2018.
- Zhang, Xiangyu, et al. "Shufflenet: An extremely efficient convolutional neural network for mobile devices." Proceedings of the IEEE conference on computer vision and pattern recognition. 2018.

- Sandler, Mark, et al. "Mobilenetv2: Inverted residuals and linear bottlenecks." Proceedings of the IEEE conference on computer vision and pattern recognition. 2018.

- Zhang, Dong-Qing. "Clcnet: Improving the efficiency of convolutional neural network using channel local convolutions." Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition. 2018.

- https://towardsdatascience.com/review-mobilenetv1-depthwise-separable-convolution-light-weight-model-a382df364b69