그동안 CNN(Convolutional Neural Networks)은 이미지 분류, 얼굴 인식, 개체 탐지 등의 다양한 영역에서 널리 사용되었습니다. 안타깝게도 모바일 기기에 맞게 CNN을 설계하기는 어렵습니다. 모바일 모델은 작고 빠르면서도 정확해야 하기 때문입니다. MobileNet이나 MobileNetV2처럼 모바일 모델을 설계하고 개선하기 위한 노력이 많이 있었지만, 고려해야 할 잠재적 사항이 너무 많기 때문에 여전히 효율적인 모델을 수동으로 만들기는 어렵습니다. 최근 AutoML 신경 아키텍처 탐색의 발전에서 영감을 얻어 모바일 CNN 모델 설계에도 AutoML을 적용해보면 어떨까 생각했습니다.
“MnasNet: 모바일을 위한 플랫폼 인식 신경 아키텍처 탐색”에서는 강화 학습으로 모바일 모델 설계에 자동 신경 아키텍처 탐색을 적용하는 방법을 살펴봅니다. 모바일의 속도 제약을 해결하기 위해 탐색 알고리즘의 메인 보상 함수에 속도 정보를 명시적으로 포함하여 탐색으로 정확도와 속도 간의 균형을 이루는 모델을 찾아낼 수 있도록 합니다. 따라서 MnasNet은 똑같이 ImageNet 최고의 정확도에 도달하면서도 수동으로 제작한 최신 MobileNetV2보다 1.5배, NASNet보다 2.4배 빠르게 실행되는 모델을 찾을 수 있습니다.
다른 프록시(예: FLOPS)를 통해 모델 속도를 고려하는 이전의 아키텍처 탐색 방식과 달리, 당사는 특정 플랫폼(이 연구에서는 Pixel 휴대폰 사용)에서 모델을 실행하여 모델 속도를 직접 측정합니다. 모바일 기기 유형마다 고유한 소프트웨어와 하드웨어 특이성이 있고 정확도와 속도가 최적의 균형을 이루려면 다른 아키텍처가 필요할 수 있기 때문에, 이 방법을 사용하면 실제 현실에서 무엇을 달성 가능한지 직접 측정할 수 있습니다.
이 방법의 전체적 흐름은 크게 3가지로 구성됩니다. 모델 아키텍처 학습과 샘플링을 위한 RNN 기반 컨트롤러, 모델을 빌드하고 훈련시켜 정확도를 달성하는 트레이너, TensorFlow Lite를 사용하여 실제 휴대폰에서 모델 속도를 측정하는 추론 엔진이 있습니다. 높은 정확도와 속도를 달성하는 것을 목표로 하는 다목표 최적화 문제를 만들고 맞춤 보상 함수가 포함된 강화 학습 알고리즘을 활용해 파레토 최적 솔루션(예: 속도를 저하하지 않고 가장 높은 정확도를 달성하는 모델)을 찾습니다.
탐색 유연성과 탐색 공간의 크기가 적절히 균형을 이루게 하기 위해 새로운 분해형 계층적 탐색 공간을 새로 제안하고자 합니다. 이 방법은 매우 복잡한 신경망을 연속적 블록으로 분해한 다음, 계층적 탐색 공간을 사용해 각 블록의 계층 아키텍처를 결정합니다. 이렇게 하면 각 계층이 서로 다른 연산과 연결을 사용할 수 있고, 동시에 각 블록의 모든 계층이 동일한 구조를 공유하여 평평한 계층별 탐색 공간에 비해 탐색 공간 규모를 몇 배나 줄일 수 있습니다.
이 방법으로 ImageNet 분류와 COCO 객체 탐지에 얼마나 효과를 발휘하는지 테스트해보았습니다. 일반 모바일 속도 제약을 적용하여 실험했을 때 기록적인 정확도를 달성했습니다. 특히, 아래 그림은 ImageNet에서 얻은 결과를 보여줍니다.
정확도가 동일할 때 MnasNet 모델은 수동으로 제작한 최신 MobileNetV2보다 1.5배, NASNet보다 2.4배 빠르게 실행됩니다(두 모델도 아키텍처 탐색을 사용함). squeeze-and-excitation 최적화를 적용한 후, MnasNet+SE 모델은 ResNet-50 수준의 최상급 정확도(76.1%)를 달성했습니다. 하지만 매개변수는 19배 줄어들었고 곱셈-덧셈 연산은 10배 감소했습니다. COCO 객체 탐지에서는 당사 모델군이 MobileNet보다 정확도와 속도가 더 높았고, SSD300 모델과는 정확도가 유사하지만 연산 비용은 35배 적게 들어갔습니다.
당사의 자동 모델이 여러 가지 복잡한 모바일 시각 작업에서 최고의 성능을 보여주어 기쁩니다. 향후에는 탐색 공간에 더 많은 연산과 최적화를 통합하여 의미론적 세그먼테이션 등과 같은 더 많은 모바일 시각 작업에 적용할 계획입니다.