I'm Lim

[논문 정리] MobileNet v3 본문

Classification

[논문 정리] MobileNet v3

imlim 2022. 12. 22. 00:55

Paper

  Howard, Andrew, et al. "Searching for mobilenetv3." Proceedings of the IEEE/CVF international conference on computer vision. 2019.

Introduction

  본 논문의 목적은 모바일 환경에서 정확도와 레이턴스간의 trade-off를 최적화시키는 것이다. 이를 위해, MobileNet v3는 NASNet과 같이 Neural Architecture Search 알고리즘을 사용하였다고 한다.

Efficient Mobile Building Blocks

  MobileNet v3의 특징은 아래와 같다.

 

1 ) SENet에서 사용하던 Squeeze operation과 Excitation operation을 적용시켰다.

 

2 ) Swish nonlinearity를 사용하였다.

Network Search

  MobileNet v3를 위해서 NAS 알고리즘을 사용하여 Block을 구성하고, 그 다음 NetAdapt 알고리즘으로 레이어 별 필터의 개수를 찾았다고 한다.

1. Platform-Aware NAS for Block-wise Search

  MnasNet-A1과 같은 환경에서 Neural architecture search를 진행했기 때문에 유사한 결과가 나왔고, 따라서 MobileNet v3-Large로 MnasNet-A1을 재사용하였고, NetAdapt와 다른 optimization을 적용하였다.

 

  그러나, MobileNet v3-Small을 위해서는 정확도와 레이턴시를 고려하여 모델을 찾았다고 한다. 또한, 정확도가 레이턴시 바뀌는 것에 굉장히 민감했기때문에 레이턴시에 대한 보상에 적은 가중치를 주었다. 이러한 환경에서 모델을 찾았고, 그 다음 NetAdapt와 다른 최적화 기법을 사용하여 MobileNet v3-Small을 찾았다고 한다.

2. NetAdapt for Layer-wise Search

  NetAdapt는 다음과 같은 알고리즘으로 구성된다.

 

1 ) NAS를 통해 네트워크 구조를 찾는다.

 

2 ) 레이턴시가 이전 스텝에 비해 특정 값 이상으로 줄어드는 구조들을 제안한다.

 

3 ) 2에서 나온 제안을 위해, 모델들은 truncate나 가중치 초기화 등으로 적절히 선택한다. 그리고, 이를 T step만큼 fine tuning한다.

 

4 ) 특정 평가지표를 사용하여 최고의 모델을 선택한다.

 

5 ) 2 ~ 4를 반복한다.

 

 

MobileNet v3는 특정 평가지표를 위해 레이턴시의 변화율과 정확도의 변화율간의 비율을 사용한다. 

 

또한, 제안을 위해서 1 ) expansion layer의 크기를 줄이는 것 2 ) 같은 bottleneck 사이즈를 줄이는 것을 기준으로 삼았다고 한다.

 

3에서 나온 T는 10000으로 설정하였고, 2에서 나온 레이턴시의 특정값은 "0.01 * 이전 모델의 레이턴시"로 설정하였다.

Network Improvements

  여기서부터는 사람이 직접 모델을 수정하는 부분이다.

1. Redesigning Expensive Layers

  NAS와 NetAdapt를 통해 얻은 모델을 얻은후, 저자들은 몇몇 레이어들의 컴퓨터 계산량이 너무 큰 것을 발견했다고 한다.

따라서, 정확도는 유지하면서 레이턴시는 줄이기 위해 몇가지 수정을 진행하였다. 

 

1 ) MobileNet v2에서 봤다시피, inverted Residual block의 마지막 단에서 Avg Pool 이후에 1 x 1 Conv 연산을 통해 채널의 수를 증가시킨다. 이것은 레이턴시를 증가시킨다. 저자는 이 1 x 1 Conv를 Avg Pool 이전으로 옮겼다. 이를 통해 레이턴시를 7ms가량 줄였고, MAdd를 3000만개로 줄였다고 한다.

 

2 ) MobileNet v2의 초기 단에 3 x 3 Conv연산은 32개의 필터를 사용했는데, 저자는 이를 16개의 필터를 사용함으로써 정확도는 유지하면서 레이턴시는 줄였다고 한다. 이것은 2ms와 천만개의 MAdd를 절약했다.

2. Nonlinearities

  MobileNet v3는 swish function을 활성화 함수로 사용한다.

 

$\large{swish x = x \: \sigma(x)}$

 

하지만, 간단한 구현을 위해 $\small {\dfrac{x \: ReLU6(x+3)}{6}}$를 사용했다고 한다.

3. Large squeeze and excite

  Squeeze Excite bottleneck 사이즈를 expansion layer 채널의 수의 1/4로 고정하였다.

4. MobileNet v3 Definitions

  MobileNet v3는 Large 버전과 Small 버전이 있다.

 

MobileNet v3 Large

 

MobileNet v3 Small

Discussion

  MobileNet v3는 NasNet과 NetAdapt를 이용하여 모델 경량화를 한 모델이다. 실용적일 순 있겠으나 솔직히 마땅한 Intuition은 없었던 것 같다.

'Classification' 카테고리의 다른 글

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