본문 바로가기
딥러닝(Deep Learning)/논문 paper 리뷰

[X:AI] MobileNet 논문 이해하기

by rahites 2022. 7. 18.

『 MobileNets: Efficient Convolutional Neural Networks for Mobile Vision Applications. 2017. 

 

0. Abstract

- depthwise separable convolution을 사용한 간소화된 아키텍처를 제안한다.

- latency와 accuracy를 효율적으로 상호 조정하는 2가지 글로벌 하이퍼파라미터를 소개한다.

- 이는 ImageNet 분류에서 우수한 성능을 보이고 object detection, finegrain classification(세분화 분류), face attributes, large scale geo-localization에서 MobileNet의 효과를 시연해 보았다.

 

1. Introduction

- MobileNet의 목적은 모델의 경량화로서 로봇, 자율 주행차, 증강현실 등 제한된 플랫폼에서 적시에 수행될 필요가 있다.

- 이 논문에서는 효율적인 네트워크 아키텍처와 두 가지 하이퍼 파라미터 세트에 대해 설명한다.

 

2. Prior Work

- 이 논문이 작성된 시기 작고 효율적인 신경망을 구축하는 것에 대한 관심이 많았고 크게 사전 훈련된 네트워크를 압축하는 방식, 소규모 네트워크를 직접 교육하는 방식 2가지가 존재했다. MobileNet은 후자의 방식으로 모델 개발자가 자신의 애플리케이션에 대한 리소스 제한과 일치하는 소규모 네트워크를 구체적으로 선택할 수 있다. 이 때 주로 latency에 중점을 두지만 작은 네트워크도 제공한다. 

- MobileNet은 depthwise separable convolution으로 구축되며 처음 몇개의 계층에서 연산을 줄이기 위해 Inception 모델에서 후속적으로 사용된다.

 

3. MobileNet Architecture

3.1. Depthwise Separable Convolution

MobileNet은 depthwise separable convolution을 기반으로 한 network로 3x3 convolution을 통해 하나의 필터가 하나의  feature map을 만드는 depthwise convolution을 거친 후 1x1 크기의 pointwise convolution을 진행해 만들어진 feature map들을 하나로 줄입니다.

< 용어 정리 >

$D_k$ : 필터의 width/height

$D_F$ : Feature map의 width/height

$M$ : input channel의 수

$N$ : kernel channel의 수

 

기본적인 standard convolution에서 최종 연산량은 $ D_kD_kNMD_FD_F $ 이고 Depthwise separable convolution의 연산량은 Depthwise convolution의 연산량인 $ D_kD_kMD_FD_F $ 에서 Pointwise convolution의 연산량인 $ MND_FD_F $을 더한 값으로 standard convolution의 연산량보다 8~9배 적은 연산량을 가진다. 

 

ex) input : 3 x 28 x 28, filter : 3x3, output : 32 x 28 x 28, $D_k$ : 3, M = 3, N = 32일 경우

Standard Convolution =  $ D_kD_kNMD_FD_F $ = 3 x 3 x 3 x 32 x 28 x 28 = 667,376개

Depthwise Separable Convolution =  $ D_kD_kMD_FD_F $ + $ MND_FD_F $ = 3 x 3 x 3 x 28 x 28 + 3 x 32 x 28 x 28 = 96,432개 

 

3.2. Network Structure and Training

MobileNet은 첫번째 convolution에서의 Fully connected convolution을 제외하면 모두 depthwise separable convolution구조로 이루어져있다. 또한 이 depthwise separable convolution에는 모두 BatchNorm과 ReLU를 적용하였다. 

3.3. Width Multiplier : Thinner Models

- Network의 width를 조절하는 Hyperparameter

- 입력 채널 수 M을 $\alpha M$ (여기서 $\alpha$는 1, 0.75, 0.5, 0.25)로 줄여 layer를 얇게 만듦

- 이 때의 연산량은 $D_kD_kN\alpha D_FD_F + M\alpha N\alpha D_FD_F$가 된다.

 

3.4. Resolution Multiplier : Reduced Representation

- 이미지의 해상도를 조절하는 Hyperparameter

- Resolution Multiplier $\rho$는 1이하의 값이며 $\rho^2$만큼 연산량이 감소한다. 

- 본 논문에서는 입력 이미지 크기가 224, 192, 160, 128일 때를 비교하였다.

- $\alpha$와 $\rho$ 하이퍼파라미터가 적용된 연산량은 아래와 같다

$$D_kD_kN\alpha \rho D_F \rho D_F + M\alpha N\alpha \rho D_F \rho D_F$$

 

 

세 줄 요약

1. 기존의 성능을 최대한 유지한 채 구조를 경량화하는 MobileNet 구조 제안
2. Depthwise Separable Convolution을 주로 사용
3. 모델을 더 작게 만들 수 있는 Width Multiplier, Resolution Multiplier 파라미터가 존재함

 

댓글