Deep Learning study

MobileNets : Efficient Convolutional Neural Networks for Mobile Vision Applications 본문

AI/papers

MobileNets : Efficient Convolutional Neural Networks for Mobile Vision Applications

HwaniL.choi 2019. 8. 10. 11:12
반응형

오늘은 시간이 없으니 간단하게 MobileNets를 살펴보고 가겠습니다.

 

정말 특별하게 어렵다거나 새로운건 없습니다. 새로운 아이디어라기보다는 많은 실험 결과들이 실려있는 논문이라고 보면 될 것 같아요.

 

MobileNets은 이름에서도 알 수 있지만, 모바일 기기나 어플 등에서 사용할 수 있도록 효율적인 면에서 설계된 모델입니다. 그럼 한 번 살펴보도록 할까요.

MobileNets Architecture

 

이 모델의 특징은 두가지가 있습니다.

 

  1. Depthwise separable convolution
  2. Shrinking hyperparameter(Width mutiplier, Resolution multiplier)

정말정말 많이 봐 왔던 Depthwise separable convolution 입니다. 논문에서 Computational cost중심으로 설명해주고 있는데 이부분은 앞서 포스팅했던 이 글로 대체하도록 하겠습니다. 한 번 보신다면 쉽게 이해 될 것 이기때문에 패스!! 논문과 notation이 조금 다르긴 하지만 같은 내용입니다.

그래도 조금 살펴보자면 위의 그림과 같습니다. depthwise conv와 pointwise conv를 한 후 batchnorm과 nonlinearity를 위해 ReLU를 넣어주었습니다.

 

결론은 Standard convDepthwise convpointwise conv으로 분리하여 연산함으로써 연산량과 pram 수를 줄였으며, 그로인해서 computing power가 매우 제한적인 모바일 기기 등에서 real time으로 실행이 가능해지게 된 것입니다.

 

위의 결과를 보시면 standard conv를 사용한 mobilenet과 depthwise separable conv를 사용한 mobilenet이 pram수와 연산량(multil-add)차이는 엄청나지만 accuracy는 단지 1%밖에 차이가나지 않는것을 볼 수 있습니다.

 

다음으로는 shrinking hyperparameter입니다. 특별하게 더 작고 빠른 모델이 필요로한 경우에 사용할 수 있는 매우 간단한 아이디어입니다.

 

Width Multiplier

 

Width Multiplier(α) 는 input channel과 output channel을 조절해주는 parameter입니다. 전체적인 channel 수를 조절함으로써 더 thin한 모델을 만들 수 있는 것이죠 . α의 값은 1, 0.75, 0.5, 0.25를 가질 수 있으며, 기본은 α = 1입니다.

그렇다면 대략 위의 연산량 식에서 보았을때 기존의 α 가 없을때의 수식과 α2 만큼 차이가 나게되는 것 입니다.

 

Resolution Multiplier

 

두 번째 parameter는 Resolution Multiplier(ρ)입니다. 이것은 input이미지의 크기를 조절하는 역할을 합니다. 일반적으로 input resolution이 224, 192, 160, 128을 갖도록 설정하게 됩니다.

위의 width와 같이 ρ2만큼 연산량의 차이가 나게 됩니다.

 

 

 

이렇게해서 MobileNets의 대략적인 아이디어? 설명? 이 끝이나게됩니다. 정말 간단하죠..? 이 다음의 내용들은 대부분 실험결과들이라서 마저 살펴보도록 하겠습니다.

 

Experiments

 

 

위의 결과는 Narrow 한것과 Shallow한 것의 결과 를 보여줍니다. Narrow는 Width Multiplier를 조절하여 channel수를 조절 한 것이고, Shallow는 단순히 layer수를 줄인 것 입니다. pram수를 비슷하게 맞추어놓고 비교했을때, Narrow한 모델이 3%정도 성능이 더 좋게 나왔습니다.

 

Width Multiplier를 조절했을때의 실험 결과입니다. 당연 channel의수가 줄어들면 param수와 연산량이 줄어들지만 그에따라 Accuracy도 감소하는것을 볼 수 있습니다.

 

이번에는 Resolution 을 조절하여 실험한 결과입니다. 어찌보면 당연하지만 resolution이 감소하면 연산량이 감소하게 되고, 또한 accuracy도 감소하고 있는것을 볼 수 있습니다.

 

마지막으로 위의 두 그래프는 각각 accuracy와 연산량의 관계와 accuracy와 parameter수의 관계를 나타낸 것입니다.

 

 

 

논문내용이 정말 어려운것은 하나도 없습니다. 다만 많은 실험결과들이 있으니 나중에 실험할때에 유용하게 쓰일 논문같네요 .  별로 설명할 내용이 없어서 조금 엉성하긴 하지만 오늘은 이걸로 끝!

다음은 shuffleNet이에요.. ㅎ

 

 

이제 외박 나갈 준비해야지 

 

그럼 이만 !

 

 

 

Reference

[1] MobileNets : Efficient Convolutional Neural Networks for Mobile Vision Applications

반응형
Comments