이번에 요약한 논문은 모바일 및 임베디드 비전 어플리케이션 같은 소형 아키텍처에서 사용하기 좋은 효율적인 모델인 MobileNet(v1)에 대한 내용입니다.
Abstract
본 논문에서는 모바일과 임베디드 비전 어플리케이션을 위한 효율적인 모델인 MobileNets
를 제안한다. MobileNets는 간소화하고 경량화 된 심층신경망을 구축하기 위해 depth-wise separable convolution을 사용하여 간소화된 아키텍처를 기반으로 한다. latency와 accuracy간의 효율적으로 trade-off를 맞추는 간단한 두 가지 하이퍼파라미터를 소개하며, 이 하이퍼파라미터들을 통해 제약 조건에 따라 적절하게 모델을 구축할 수 있다. 또한, 객체 탐지, 세밀한 분류, 얼굴 특성, 대규모 지리적 위치 파악 등 다양한 애플리케이션과 사용 사례에서 MobileNets의 효과를 입증한다.
1. Introduction
CNN(Convolutional Neural Network)은 AlexNet이 ImageNet Challenge 대회에서 우승하면서 대중화한 이후 컴퓨터 비전 분야에서 보편적으로 사용되며, 더 높은 정확도를 달성하기 위해 네트워크를 더 깊고 복잡하게 만드는 것이 추세였다. 이러한 발전이 정확도를 향상시키긴 했지만, 반드시 네트워크의 크기나 속도 측면에서 효율성을 높이는 것은 아니다. 논문에서는 로봇공학, 자율주행 자동차, 증강 현실과 같은 많은 실제 응용 분야에서는 인식 작업이 컴퓨팅 능력이 제한된 플랫폼에서 신속하게 수행되어야 한다고 말한다.
따라서 효율적인 아키텍쳐 MobileNets과 두 가지 하이퍼파라미터를 설명한다. 제 2장에서는 소형 모델 구축에 대한 이전 연구, 제 3장에서는 MobileNets와 하이퍼파리미터들을, 제 4장에서는 다양한 사용 사레에 대한 실험을, 제 5장에서는 요약과 결론을 설명하고 있다.
2. Prior Work
이전 논문이나 문헌에 대한 다양한 연구들을 소개하고 있다. 소형 네트워크를 얻기 위해 더 작은 네트워크를 설계하는 Xception 네트워크, Inception V3네트워크, Squeezenet 등을 소개하며, 또 다른 접근 방식으로는 사전 학습된 네트워크를 축소, 압축한 연구들을 소개한다.
이러한 소형 네트워크에 관한 많은 논문들은 크기에만 초점을 두고 속도는 고려하지 않으며, MobileNet은 주로 latency 최적화에 중점을 두며 소형 네트워크를 생성한다고 소개하고 있다.
3. MobileNet ArchiTecture
제 3장에서는 MobileNets을 구축하는데 핵심 레이어인 depth-wise separable convolution에 대해 설명하고, 두 가지 파라미터인 width multiplier와 resolution multiplier를 소개한다.
3.1 Depthwise Separable Convolution
Depthwise Separable Convolution이란 우리가 흔히 알고 있는 Standard한 Convolution을
- Depthwise Convolution(dwConv)
- Pointwise Convolution(pwConv, 1X1 convolution)
으로 쪼갠 것이다.
Depthwise Convolution(dwConv)는 각 입력 채널마다 1개의 filter을 적용하고, Pointwise Convolution(pwConv)는 dwConv의 결과를 합치기 위해 1X1 Convolution을 적용한다.
예를 들어
Standard한 Convolution의 filter가 위 그림과 같을 때 연산량은
DF : 입력 Feature Map의 너비와 높이,
DK : Kernal의 크기라고 할 때,
DK2 x M x N x DF2 와 같다.
이와 비교해서 Depthwise Separable Convolution의 filter가 위 그림과 같을 때 연산량은
DK2 x M x DF2 + M x N x DF2 와 같다.
이 둘의 연산량의 비율은 다음과 같이 계산된다.
일반적으로 filter을 3x3을 쓰게 되는데, 약 8~9배 정도 연산이 줄어드는 효과를 볼 수 있다.
물론 Spatial 차원에서 한 번 더 쪼개는 것은 연산량을 거의 줄여주지는 못한다.
3.2 Network Structure and Training
Standrad Convolution과 Depthwise Separable Convolutions의 Layer들을 시각화하면 위 그림과 같다.
MobileNets의 구조를 표로 나타내면 위 그림과 같다. 파란색 점선 박스로 묶은 것이 Depthwise Separable Convolution이며, 맨 처음 Layer과 마지막 Average Pooling Layer을 포함하면 총 28개의 Layer로 구성되어 있는 것을 확인할 수 있다. MobileNets는 TensorFlow에서 Inception V3와 유사한 asynchronous gradient descent를 사용하는 RMSprop을 사용하여 훈련되었다. 또한 DSConv에는 parameter가 별로 없어서 weigh decay는 거의 사용하지 않는 것이 낫다고 한다.
3.3 Width Multiplier : Thinner Models
첫 번째 하이퍼파라미터는 layer의 얇은 정도를 조절한다. 기본 MobileNets 아키텍쳐는 충분히 작고 latency가 낮지만, 특정 사용 사례나 어플리케이션에서는 모델을 더 작고 빠르게 요구할 수 있다. 이러한 더 작고 계산 비용이 적은 모델을 구축하기 위해, 매우 간단한 매개변수 α를 도입하였다. α의 역할은 각 layer들을 균인할게 얇게 만드는 지 결정하는 것이다. 이때 α는 (0,1)이고, 일반적인 설정은 1, 0.75, 0.5, 0.25를 도입한다.
α를 도입하여 연산량을 계산하면
DK2 x α x M x DF2 + α x M x α x N x DF2 와 같다.
3.4 Resolution Multiplier : Reduced Representation
두 번째 하이퍼파라미터는 해상도를 조절한다. 입력 이미지와 각 layer의 내부 표현 전부 이 multiplier ρ를 곱해 줄인다. 마찬가지로 ρ도 (0,1)의 범위를 가지고 있고, 계산량은 ρ2에 비례하여 줄어든다. 이 두 가지를 모두 도입한 연산량을 계산하면
DK2 x α x M x ρ x DF x ρ x DF + α x M x α x N x ρ x DF x ρ x DF 가 된다.
이 표는 두 가지 모두 도입하였을 때 계산되는 파라미터를 표로 나타낸 것이다.
4. Experiments
제 4장에서는 여러 하이퍼파라미터들을 조절하면서 실험한 결과를 보여주고 있다. 성능 하락폭이 크지 않으면서 모델 크기나 계산량이 줄었음을 보여주고 있다. 혹은 정확도가 낮아도 크기가 작아서 매우 작은 모델을 필요로 하는 환경에서 효과가 좋다는 것을 입증하고 있다.
4.1 Model Choices
먼저 Fully Convolutions와 Depthwise separable Convolutions을 이용하여 각각 MobileNets 구축한 뒤 성능을 보여주고 있다. 아래 표에서 볼 수 있듯이 정확도는 1%정도 낮지만 모델 크기는 약 7배 이상 작아졌음을 확인할 수 있다.
다음으로는 Width Multiplier을 사용하여 0.75배 얇게 만든 MobileNet과 더 적은 layer은 사용한 MobileNet을 비교하여 보여준다. 기존 MobileNets의 28개 Layer중 DSConv 5개를 없애 총 10개의 layer을 없앤 모델과 비교하였을 때, 아래 표에서 볼 수 있는 것처럼 정확도와 parameter 측면에서 3%더 나은 모습을 보여주고 있다.
4.2 Model Shrinking Hyperparameters
다음으로는 Width Multiplier α값을 조절한 결과를 아래 표에서 보여주고 있다. 각각 1, 0.75, 0.5, 0.25로 조절하면서 정확도는 떨어지지만 동시에 parameter수도 줄어듦을 볼 수 있다.
또한 Resolution Multiplier ρ값을 조절하면서도 비교하고 있다. ImageNet의 기본 크기인 224x224부터 시작하여 192x192, 160x160, 128x128까지 해상도를 조절하면서 정확도, 계산량의 상충 관계를 보여주고 있다.
아래 그림에서는 Width Multiplier와 Resolution Multiplier의 교차 곱으로 만들어진 16개 모델의 ImageNet정확도와 계산량 간의 상충 관계를 보여준다.
아래 그림은 ImageNet의 정확도와 매개변수 수 간의 상충 관계를 보여주고 있다.
위 표는 가장 기본적인 MobileNet을 GoogleNet과 VGG 16과 비교했을 때 정확도는 거의 비슷하면서 계산량은 27배정도 적고, 모델 크기에서 확실한 우위를 점하는 것을 보여주고 있다.
위 표에서는 Width Multiplier을 0.5로 두고, Resolution Multiplier 또한 224에서 160으로 해상도를 변경했을 때 다른 소형 네트워크와 비교한 결과를 보여준다. Squeezenet과 AlxexNet에 비해 3%정도 나은 정확도를 보여주며, AlexNet보다 크기는 45배 더 작고 계산량은 9.4배 더 적은 것을 볼 수 있다. 또한 Squeezenet보다는 크기는 거의 같고 계산량은 22배 더 작은 것을 볼 수 있다.
4.3 Fine Grained Recognition
위 표는 세밀한 인식을 위해 스탠퍼드 개의 데이터셋을 통해 MobileNet을 훈련시키고 결과를 보여주고 있다. 기존에 있던 모델에 비해 거의 비슷한 정확도를 보여주면서 계산량과 크기가 크게 줄어든 것을 보여주고 있다.
위 표에선 Im2GPS와, Inception V3 아키텍쳐를 기반으로 하는 PlaNet 모델과 비교한 모습을 보여주고 있다. 전체적으로 PlaNet과 동일한 성능을 보이며 Im2GPS보다는 더 좋은 성능을 보여주고 있다. 또한 PlaNet모델은 5200만개의 parameter와 57.4억개의 곱셈-덧셈 연산을 가지고 있다. 반면 MobileNet 모델은 단 1300만개의 매개변수(본체에 300만개, 최종 레이어에 1000만개)와 580만개의 곱셈-덧셈 연산을 가지는 것을 설명하고 있다.
4.5 Face Attributes
MobileNet이 알려지지 않았거나 복잡한 훈련 절차를 가진 대규모 시스템을 압축하는 것에 좋은 성능을 보인다는 것을 보여주고 있다. 기존 모델과 유사한 성능을 보이면서도 곱셈-덧셈 연산의 단 1%만을 소모한다는 것을 설명하고 있다.
위 표에서는 다양한 Multiplier을 조절하여 구성한 MobileNet이 기존 모델에 비해 모두 뛰어난 성능과 경량화 된 모습을 보여주고 있다.
4.6 Object Detection
물체 인식에 대해서도 비교해 보았을 때, Faster-RCNN등과 비교하여 MobileNet이 모델의 크기나 연산량에 비해 성능이 좋다는 것을 보여주고 있다.
4.7 Face Embeddings
모바일 FaceNet 모델을 구축하기 위해, 적절히 distillation을 사용하여 훈련한 결과
얼굴인식 모델인 FaceNet과 비교해서도 MobileNet이 성능은 조금 낮을 수 있지만 연산량과 크기를 고려하면 만족할만한 결과를 보여주고 있다.
5. Conclusion
Depthwise Separable Convolutions을 사용하여 얇고 가벼운 MobileNet을 제안하였다. 효율적인 모델로 이어지는 몇 가지 Multiplier을 조절하여 더 작고 빠른 MobileNets를 구축하는 방법을 보여주었다. 크기, 속도, 정확도 특성에서 우수함을 보여주는 다양한 MobileNets와 인기 있는 다른 모델들과 비고하여 보여주었고, 동시에 MobileNets의 효과성을 입증하였다.
이와 관련한 분석 활동
- 학습했던 모델 주소 : https://github.com/westofsky/MobileNet_TrainingResul
- 학습했던 모델들 그래프 비교 : https://sungjoonbae.notion.site/MobileNets-f1eae4802f3b466b9647942579a5212d?pvs=4
참고자료 [1] https://arxiv.org/pdf/1704.04861.pdf