논문 리뷰

[논문 리뷰] MnasNet: Platform-Aware Neural Architecture Search for Mobile

망나 2021. 5. 19. 21:16

오늘 리뷰할 논문은 "MnasNet: Platform-Aware Neural Architecture Search for Mobile"로 구글 브레인에서 CVPR 2019에서 발표한 논문입니다. 

 

이전에 포스팅한 EfficientNet V2에서 NAS를 활용해서 초기 모델을 얻었다고 하는데 그때 MnasNet을 사용했다고 해서 한번 짚고 넘어가고자 이렇게 포스팅을 남깁니다. (구글에서 공개한 official한 코드도 있기 때문에 추후에 직접 사용해보며 코드 리뷰 또한 해볼 예정입니다.)

 

아래 전체적인 오버뷰를 보면 알 수 있듯이 최적의 모델을 찾기 위해 모델의 accuracy뿐만 아니라 모바일 기기에서 직접 계산되는 latency까지 함께 고려하는 것을 확인 할 수 있습니다. 

즉, 모델은 accuracy와 latency 사이의 최적의 trade-off를 찾고 더 나아가서는 모델의 유연성과 검색 공간 사이즈의 올바른 균형을 맞추기 위해 모델에 layer 다양성을 주는 새로운 factorized hierarchical search space를 제안하였다고 하는데 이게 무엇을 뜻하는지 천천히 정리해보도록 하겠습니다.

accuracy & latency 모두에서 다른 모델들보다 좋은 성능을 보여주고 있습니다.

 

 

논문의 주요 컨트리뷰션 입니다.

  1. 모바일 기기에서 accuracy와 real world latency 모두를 최적화하는 multi-objective neural architecture search approach를 제안합니다.
  2. flexibility와 search space size의 균형을 맞추면서 layer diversity가 가능한 새로운 factorized hierarchical search space를 제안합니다.
  3. ImageNet, COCO 데이터 세트에 대해서 새로운 state-of-the-art 성능을 증명합니다.

본 논문에서의 핵심은 새로운 factorized hierarchical search space 방법인 것 같습니다.

 

 

Mobile Neural Architecture Search

Factorized Hierarchical Search Space

 

NAS에 대한 다양한 연구들에서 search space를 정의하는 것이 좋은 모델을 얻는데 아주 중요하다는 것이 이미 증명되었습니다. 하지만 대부분의 이전 연구들에서는 몇 개의 복잡한 cell들만 검색 한 후 동일한 구조의 cell을 반복해서 쌓는 방법으로 접근했습니다. 저자는 이러한 접근 방식으로 인해서 네트워크의 레이어에 다양성이 없어지고 이는 결과적으로 네트워크의 accuracy와 latency에 영향을 미친다고 합니다.

가장 많이 사용되는 depthwise convolution의 계산량은 다음과 같이 나타낼 수 있습니다.

\(H * W * M * (K * K + N)\)

여기서 \(H, W\)는 입력 이미지 사이즈이고 \(M, N\)은 입출력 필터 사이즈 그리고 K는 커널 사이즈 입니다. 이때 K와 N을 잘 조절해야 합니다. 예를 들어, receptive field를 늘려 큰 커널 사이즈 K를 사용하는 레이어에서는 필터 사이즈 N을 조절해야 합니다.

 

따라서 본 논문에서 제안하는 모델의 구조는 위 그림과 같습니다. CNN 모델을 미리 정의된 블록들로 나누고, 점차적으로 입력 해상도를 줄이고 필터 사이즈를 늘리는 구조를 가지고 있습니다.

 

각 블록들은 sub search space를 통해 정의한 동일한 레이어들로 구성되어 있으며 다음과 같은 조건들을 고려하여 sub search space를 결정합니다.

 

  • Convolutional ops \(ConvOp\): regular conv (conv), depthwise conv (dconv), and mobile inverted bottleneck conv
  • Convolutional kernel size \(KernelSize\): 3x3, 5x5.
  • Squeeze-and-excitation ratio \(SERatio\): 0, 0.25.
  • Skip ops \(SkipOp\): pooling, identity residual, or no skip.
  • Output filter size \(Fi\).
  • Number of layers per block \(Ni\).

 

Search Algorithm

서치 알고리즘은 강화 학습을 사용했다고 합니다. 강화 학습에 대한 내용은 저의 부족한 지식으로 인해서 추후 코드를 보며 좀 더 자세히 공부하고 리뷰를 해보도록 하겠습니다.

 

 

 

Results

성능 비교를 위해 ImageNet classification과 COCO object detection 두 가지에 대해 실험을 하였고 다른 모델들에 비해 좋은 성능을 보여주었습니다.