[LightWeight DL] 2. MobileNets 논문 리뷰

MobileNets - MobileNets: Efficient Convolutional Neural Networks for Mobile Vision Applications을 읽고 논문 주요내용을 정리해본다.

[PDF] 논문원본

MobileNets: Efficient Convolutional Neural Networks for Mobile Vision Applications

모델 특징

기존의 모델들은 고성능의 System Resource내에서 높은 정확도를 목표로 설계되어 있었다. 하지만 MobileNet은 그림과 같이 모바일 기기(낮은 성능의 System Resource)에서도 충분히 잘 돌아 갈 수 있도록 적은 연산량적은 수의 파라미터를 가지도록 설계 되었다. 이는 딥러닝 모델의 on-device화를 가능하게 하도록 하였다. 즉 기존에는 모바일 기기에서 딥러닝 서비스를 “cloud-computing”으로 이용해야 했다면, 이러한 모델을 사용하면 “edge-computing”이 가능하도록 한 것이다.

먼저 이 논문에서 제안한 주요 아이디어를 살펴 보면 아래와 같다.

기존의 3x3 Conv의 과정을 3x3 Depthwise Conv 와 1x1 Pointwise Conv를 사용하여 두번에 걸쳐 진행하였고 이를 통해 연산량과 파라미터 수를 줄였다.

자세히 살펴보면 먼저 Depthwise Conv를 통해 각 channel의 정보를 유지하며 channel별로 Conv를 진행하고 그 다음 Pointwise Conv를 사용하여 각 channel간의 정보를 linear combination한다. 따라서 결론적으로 기존의 3x3 Conv의 output 크기와 필요한 정보를 유지하면서 연산량은 줄인 것이다.

여러 경우에서의 실험

  • Depthwise Separable vs Full Convolution MobileNet(일반적인 Conv)

먼저 일반적인 3x3 Conv를 사용한 모델과 이 논문에서 제안한 방법(Depthwise Separable)을 사용한 모델간의 비교이다. 정확도는 1% 정도 밖에 차이가 나지 않는 것에 비해 연산량과 파라미터 수는 압도적으로 줄어든 것을 볼 수 있다.

  • MobileNet Width Multiplier

Width Multiplier는 모델 내부의 각 layer의 width를 α 만큼의 비율로 줄여 연산량과 파라미터 수를 줄이는 방법이다. 위의 차트에서 MobileNet 앞의 숫자들(1.0, 0.75, 0.5, 0.25)이 그것이다. α의 값이 클수록 모델은 가벼워지지만 정확도가 낮아진다. 특히 0.5 아래부터는 정확도가 큰폭으로 낮아지는 것을 알 수 있다.

  • MobileNet Resolution Multiplier

Resolution Multiplier는 모델의 input 이미지의 resolution을 ρ로 변경 하여 연산량을 변경시키는 방법이다. 위의 차트에서 MobileNet 뒤의 숫자들(224, 192, 160, 128)이 그것이다. ρ의 값이 작을수록 모델은 연산량이 줄어들지만 정확도가 낮아진다. input값이 달라진것이기 때문에 파라미터 수는 달라지지 않는다.

다양한 task에서 성능 비교

  • Classification에서 성능 비교

  • Object Detection에서 성능 비교

  • Face Recognition에서 성능 비교


© 2020. All rights reserved.