I'm Lim

[논문 정리] MobileNet v2 본문

Classification

[논문 정리] MobileNet v2

imlim 2022. 12. 17. 14:36

Paper

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

Introduction

  논문 발표 당시, Image Classification 모델들은 성능을 올리기 위해 파라미터의 수를 키웠고, 이는 모바일 기기나 임베디드 시스템에 탑재할 수 있는 범위를 넘어섰다. 본 논문의 모델인 MobileNet v2는 성능을 유지하면서, 요구 메모리와 연산의 수를 크게 줄였다고 한다. 

 

  이를 위해 Inverted residual structure를 제안하였는데, inverted residual block은 기존의 residual block과 반대로 채널의 수를 키운 후 depthwise convolution을 진행하고, linear convolution (activation function을 적용하지 않음)을 이용하여 다시 채널의 수를 줄이는 방식을 택한다. 

Preliminaries, discussion and Intuition

1. Depthwise Seperable Convolutions

  Depthwise seperable convolution은 Xception에서 언급한 것과 같이 depthwise convolution과 pointwise convolution으로 이루어져 있고, 각각 spatial correlation과 channel correlation을 처리하기 위해 사용된다. MobileNet v2는 depthwise convolution의 커널의 크기를 3으로 사용하였다.

 

2. Linear Bottlenecks

  이 부분에서는 inverted residual block에 대한 근거를 제시한다. 레이어들의 출력은 "manifold of interest"를 형성한다고 하는데, 쉽게 말해서 d채널 픽셀들에 대해 conv연산을 취하지만 실제로는 특정 채널에 정보가 몰려있다는 것 같다. 따라서, d채널은 저차원의 공간으로 임베딩이 가능하다고 한다.

 

  단순히 생각하면, 1 x 1 Conv연산을 사용하여 채널의 개수를 줄여버리면 될 것 같지만, 이러한 생각은 1 x 1 Conv에 ReLU같은 non-linearity가 사용되면 잘못된 말이 된다고 한다. 쉬운 예로 ReLU에 음수 입력이 들어오면 전부 0이 되버리니까 정보 손실이 생기게 된다.

그런데, 채널의 수가 많으면 특정 채널에서 정보가 손실되더라도 다른 채널에서 보존될 가능성이 높아진다고 한다.

 

아래 그림을 보면, 출력 채널의 수를 줄일수록 정보 손실이 많이 일어나는 데에 반해, 출력 채널의 수가 크다면 정보 손실이 크지 않음을 볼 수 있다.

 

3. Inverted residuals

 

  2에서 설명한대로 Inverted residual block은 채널의 수를 residual block과는 반대로 키우는 것을 볼 수 있다.

 

 

Inverted residual block의 Conv연산을 살펴보면, t라는 expansion factor를 곱해주는 것을 확인할 수 있다.

Model Architecture

 

  위 표를 보면, expansion rate인 t와 3 x 3 Conv에 적용될 c를 확인할 수 있고, n은 반복 횟수, s는 stride이다.

 


Experiments

1. ImageNet Classification

  학습을 위해, RMSprop을 사용하였고, decay와 momentum 모두 0.9로 설정하였다. 또한, 모든 레이어 이후에 BN을 전부 사용하였고, weight decay는 0.00004로 설정하였다. 초기 learning rate는 0.045로 설정하고, leanring rate decay를 위해 매 epoch마다 0.98을 곱했다고 한다. 마지막으로 배치 사이즈는 96으로 설정하였다.

 

 

결과를 보면, MobileNet v2는 더 적은 mutli add와 파라미터 수로 대등한 top-1 error rate의 성능을 가지는 것을 볼 수 있다.

 

2. Object detection

  Object detection모델로 기존의 SSD, YOLO v2, SSD Lite를 사용하였다. 학습데이터는 COCO dataset을 사용하였다.

 

 

결과를 보면, SSDLite에 MobileNet v2를 적용했을 때 파라미터의 수, Multi add, 성능 모든 측면에서 뛰어났다.

 

3. Semantic Segmentation

  Semantic Segmentation모델로 DeepLab v3를 사용했고, 학습 데이터로 PASCAL VOC 2012 dataset을 사용하였다.

 

 

결과를 보면, MobileNet v2 / output stride : 16의 파라미터수와 Multi add가 굉장히 작지만 성능이 어느정도 잘 나오는 것을 확인할 수 있다.

 

Ablation study

1. Inverted residual connections

  위 그림 b를 보면 shortcut connection이 bottleneck에 있을 때 성능이 잘 나오는 것을 볼 수 있다.

 

2. Importance of. inear bottlenecks

  linear bottleneck에 ReLU6를 적용하여 모델 성능을 측정한 결과가 위 그림 a에 있다. 보이다시피, linear일 때 성능이 더 좋음을 볼 수 있다. 논문에서는 이것이 non-linearity가 낮은 차원 공간의 정보를 파괴한다는 것의 증거라고 주장한다.

 

Discussion

  MobileNet v2는 depthwise seperable convolution과 inverse residual block으로 이루어진 모델이다. 주목할만한 점은 기존의 모델들이 depthwise seperable convolution을 사용할때는 채널의 수를 줄였다 늘리는 방식을 사용했는데, MobileNet v2는 채널의 수를 늘렸다 줄이는 방식을 택했다는 점이다.

'Classification' 카테고리의 다른 글

[논문 정리] MobileNet v3  (0) 2022.12.22
[논문 정리] ResNet-D  (0) 2022.12.17
[논문 정리] ShuffleNet v2  (1) 2022.12.17
[논문 정리] MobileNet v1  (0) 2022.12.15
[논문 정리] NasNet  (0) 2022.12.14
Comments