※ 모바일넷은 2017년 구글에서 제안하였으며, 성능보다는 효율성에 초점을 맞췄고 다양한 분야에 적용될 수 있다.
현재 약 6800건의 citation이 있으며 간단한 아이디어로 엄청난 파라미터의 절감을 보여줘 딥러닝의 경량화하면 먼저 떠올리게 되는 논문이다. 모바일넷의 아키텍처는 다음과 같다.
<MobileNet Architecture>
1. Depthwise Seperable Convolution
Depthwise Seperable Convolution을 가장 잘 설명해주는 그림이 아닐까 싶다.
Depthwise Seperable Convolution은 Depthwise Convolutions과 Pointwise Convolutions 두 개의 층으로 이루어져있다.
채널별로 3×3 필터를 사용하여 Depthwise Convolution을 진행한 뒤, 1×1 필터를 사용하여 pointwise convolution을
진행한다. 3×3 Depthwise Seperable Convolutions를 사용하게 되면 standard convolutions의 약 8~9배의 계산량을 절감할 수 있게 된다.
2. Whole Network Architecture
standard convolution 층은 3×3의 Conv2D 층, Batchnorm, ReLU 로 이루어져 있는 반면 Depthwise Seperable convolution은 3×3의 Depthwise conv , Batchnorm , ReLU 와 1×1 Pointwise conv , Batchnorm , ReLU 로 이루어져 있다.
MobileNet1의 전체 구조는 다음과 같다.
또한 CNN의 파라미터 중 큰 비중을 차지하는 Fully connected 층을 최소화 해주며 연산량을 줄일 수 있게 되었다.
ImageNet dataset을 이용하여 full convolution MobileNet과 Depthwise Seperable의 성능을 비교한 결과는 다음과 같다. Depthwise Seperable을 사용한 결과 파라미터의 갯수는 약 7배 가량 작아진 반면 성능은 약 1% 밖에 떨어지지 않아 굉장히 효율적인 것을 확인할 수 있었다.
3. Deep or Narrow?
추가적으로 Deep한 모델과 Narrow한 모바일넷 중 어떤 모델이 성능이 더 나을지를 실험해보았는데 Deep은 유지하면서 Narrow한 모델이 더 나아 보인다.
4. Comparison with popular model
또한 기존에 많이 쓰이던 모델들과 비교해 본 결과 GoogleNet 보다는 높고 VGG16 보다는 약간 떨어지는 성능을 보였으나 파라미터면에서는 엄청난 절감을 보여주었다.
Reference
[MobileNet1](arxiv.org/abs/1704.04861)
'DL' 카테고리의 다른 글
Grad-CAM 간단한 논문 리뷰 / 설명 가능한 AI (0) | 2021.01.21 |
---|---|
BERT / Transformer / Attention / Transformer Attention is all you need 설명 (0) | 2020.07.22 |