* 이 글은 MobileNet의 구조에 대해 간략히 다루고 있습니다. 논문에 언급된 MobileNet training에 대한 내용 및 Evaluation은 다루지 않습니다.

 

MobileNet은 mobile, embedded system에서 사용할 수 있을 만큼 DNN의 크기를 줄인 모델이다. DNN 파라미터 수와 Multiply-Add 수를 줄여 DNN의 용량을 가볍게, 그리고 수행시간을 짧게 만들었다. MobileNet은 모델을 가볍게 만들기 위해 크게 두 가지 아이디어를 사용하고 있다:

1) Depthwise separable convolution

2) Width/Resolution Multiplier

 

1) Depthwise Separable Convolution

딥러닝 모델에서 Convolution Operation의 역할을 크게 두 가지로 나눠보면, input feature의 특징적인 부분을 filtering하는 역할과 filter된 결과를 combine하는 역할이 있다. MobileNet에서는 Convolution Operation의 두 역할을 factorize하여 두 개의 Operation으로 나누는 방식을 제안한다. 쪼개진 두 개의 Operation을 합하여 Depthwise Separable Convolution이라고 부른다.

 

Depthwise Separable Convolution은 A) Depthwise Convolution 연산과 B) Pointwise Convolution 연산으로 이루어진다. Depthwise Convolution 연산은 Kernel의 한 채널이 Input의 한 채널과만 연산한다. (Input Channel을 C라고 할 때, Group Size = C인 Conv 연산과 동일) Pointwise Convolution은 kernel size가 1x1인 convolution 연산이다.

 

Figure 2 of MobileNet paper

Depthwise는 input channel의 특징을 뽑는 역할을, Pointwise는 depthwise가 뽑은 각 채널의 특징을 하나로 묶는 역할을 한다고 이해할 수 있다. Depthwise와 Pointwise로 나누었을 때, 계산량은 아래와 같다:

Depthwise separable conv cost. (Df = feature dimension, Dk = kernel dimension, M = # input channel, N = # output channel)

Depthwise는 input channel만 filtering하기 때문에, 그리고 Pointwise는 1 by 1 conv를 사용하기 때문에 각각 연산량이 줄어들게 된다. 일반 Convolution과 계산량 비율은 아래와 같다. 3 by 3 depthwise separable convolution의 경우 약 8 ~ 9배 가량 연산량이 줄어들며, 줄어든 연산량에 비해 정확도는 불과 몇 %만 떨어진다고 한다:

Computation reduction with depthwise separable convolution.

2) Width/Resolution Multiplier

Width/Resolution Multiplier는 모델을 더 줄이기 위한 hyper parameter로, 각각 width와 resolution를 조절할 수 있다. 

Width Multiplier로 Channel 수를 조절할 수 있고, Width Multiplier를 적용한 Convolution 연산의 계산량은 아래와 같다:

Computational cost with width multiplier

Resolution Multiplier는 input feature의 resolution을 줄이는 hyper parameter로, Width Multiplier에 Resoultion Multiplier를 함께 적용한 연산량은 아래와 같다:

Computational cost both with width multiplier and resolution multiplier

Paper Link: https://arxiv.org/abs/1704.04861

+ Recent posts