이번에 읽어볼 논문은 MobileNets: Efficient Convolutional Neural Networks for Mobile Vision Application 입니다.
MobileNet은 Depthwise separable convolution을 활용하여 모델을 경량화했습니다. Xception은 Depthwise separable convolution을 활용하여 감소한 파라미터 수 많큼 층을 쌓아 성능을 높이는데 집중했는데요. MobileNet은 반대로 경량화에 집중합니다.
MobileNet이 경량화에 집중한 이유는 핸드폰이나 임베디드 시스템 같이 저용량 메모리환경에 딥러닝을 적용하기 위해서는 모델 경량화가 필요하기 때문입니다. 메모리가 제한된 환경에서 MobileNet을 최적으로 맞추기 위해 두 개의 파라미터를 소개합니다. 두 파라미터는 latency와 accuracy의 균형을 조절합니다.
MobileNet이 어떻게 경량화에 성공했고, 구조를 이해하기 위해서는 Depthwise separable convolution에 대한 개념이 우선 필요합니다. Depthwise separable convolution이 무엇인지 살펴보겠습니다.
1. Depthwise Separable Convolution
Depthwise Separable Convolution은 Depthwise Convolution 이후에 Pointwise Convolution을 결합한 것입니다. 아래 그림을 살펴보겠습니다.
(1) Depthwise convolution
Depthwise convolution은 각 입력 채널에 대하여 3x3 conv 하나의 필터가 연산을 수행하여 하나의 피쳐맵을 생성합니다. 입력 채널 수가 M개이면 M개의 피쳐맵을 생성하는 것입니다. 각 채널마다 독립적으로 연산을 수행하여 spatial correlation을 계산하는 역할을 합니다. 예를 들어, 5 채널의 입력값이 입력되었으면, 5개의 3x3 conv가 각 채널에 대하여 연산을 수행하고, 5개의 feature map을 생성합니다.
Depthwise convolution의 연산량은 다음과 같습니다.
Dk는 입력값 크기, M은 입력의 채널수, DF는 피쳐맵 크기 입니다.
(2) Pointwise convolution
Pointwise convolution은 Depthwise convolution이 생성한 피쳐맵들을 1x1conv로 채널 수를 조정합니다. 1x1conv는 모든 채널에 대하여 연산하므로 cross-channel correlation을 계산하는 역할을 합니다.
Pointwise convolution의 연산량은 다음과 같습니다.
M은 입력 채널 수, N은 출력 채널 수, DF는 피쳐맵 크기입니다.
(3) Depthwise separable convolution
Depthwise separable convolution은 Depthwise convolution 이후에 Pointwise convolution을 적용한 것입니다. 아래 그림은 MobileNet에서 사용하는 Depthwise separable convolution 구조입니다.
그러면 전체 연산량은 어떻게 될까요?
둘의 연산량을 더해준 것이 됩니다. Depthwise separable convolution 연산량은 기존 conv 연산량보다 8~9배 더 적습니다. 기존 Conv 연산량은 다음과 같습니다.
M채널의 Dk x Dk 크기의 입력값에 M개의 3x3conv 묶음을 N번 수행하여 DF x DF 크기의 피쳐맵을 생성합니다.
MobileNet은 이 Depthwise separable convolution을 기반으로 구축된 모델입니다.
2. MobileNet Architecture
첫 번째 conv를 제외하고 depthwise separabel convolution을 사용합니다. 마지막 FC 레이어를 제외하고 모든 레이어에 BN, ReLU를 사용합니다. Down-sampling은 depthwise convolution과 첫 번째 conv layer에서 수행합니다. 총 28 레이어를 갖습니다.
3. 하이퍼파라미터
MobileNet은 모델의 latency와 accuracy를 조절하는 두 개의 하이퍼파라미터가 존재합니다.
(1) Width Multiplier: Thinner Models
첫 번째 하이퍼파라미터 $\alpha$는 MobileNet의 두께를 결정합니다. conv net에서 두께는 각 레이어에서 필터수를 의미합니다. 이 width Multiplier $\alpha$는 더 얇은 모델이 필요할 때 사용합니다. 입력 채널 M과 출력 채널 N에 적용하여 $\alpha$M, $\alpha$N이 됩니다. 따라서 연산량은 다음과 같이 됩니다.
$\alpha$는 0~1 범위이고 기본 MobileNet은 1을 사용합니다. Width Multiplier를 낮추면 모델의 파라미터 수가 감소합니다.
(2) Resolution Multiplier: Reduced Representation
두 번째 하이퍼파라미터는 Resolution Multiplier $\rho$ 입니다. 모델의 연산량을 감소시키기 위해 사용합니다. $\rho$는 입력 이미지에 적용하여 해상도를 낮춥니다. 범위는 0~1이고, 논문에서는 입력 이미지 크기가 224, 192, 169, 128 일때 비교를 합니다. 기본 MobileNet은 $\rho$=1을 사용합니다.
4. Comparison With Popular Models
다른 모델과 성능 비교입니다.
참고자료