티스토리 뷰
논문
Abstract
우리는 새로운 아키텍처 디자인 뿐만 아니라 상호 보완적인 검색 기술들의 결합을 기반으로 한 MobileNets의 다음 세대를 제시함.
- MobileNetV3는 NetAdapt 알고리즘으로 보완된 하드웨어-인식 (Hardware-aware) 네트워크 아키텍처 탐색 (Network Architecture Search, NAS) 의 결합을 통해 모바일 폰의 CPUs에 맞춰 튜닝되며, 그런 다음 새로운 아키텍처의 개발을 통해 상당히 개선됐음.
- 이 논문은 자동화된 탐색 알고리즘과 네트워크 설계가 기술의 전반적인 상태를 개선시키는 보완적 방법을 활용하여 어떻게 상호작용하는지에 대한 탐색을 시작함.
- 이 과정을 통해, 우리는 배포를 위한 두 가지 새로운 MobileNet 모델들을 만듬 :
- MobileNetV3-Large
- MobileNetV3-Small
- 이는 높고 낮은 리소스 사용 사례들을 대상으로 함.
- 그런 다음 이러한 모델들은 개조되고, Object Detection과 Semantic Segmentation의 작업들에 적용됨.
- Semantic Segmentation (또는 어떤 Dense 픽셀 예측) 작업의 경우, 우리는 Lite Reduced Atrous Spatial Pyramid Pooling (LR-ASPP) 라는 새롭고 효율적인 Segmentation Decoder를 제시함.
- 우리는 모바일 분류 (Classification), 감지 (Detection), 분할 (Segmentation) 에 대해 새로운 최첨단 결과들을 달성함.
- MobileNetV2와 비교했을 때, MobileNetV3-Large가 ImageNet Classification에서 3.2% 더 정확한 반면, 지연 시간을 20% 감소시킴.
- MobileNetV3-Small은 V2와 대기시간은 비슷하며, 6.6% 더 정확함.
- MobileNetV3-Large Detection은 COCO Detection에서 MobileNetV2와 거의 동일한 정확도에서 25% 이상 더 빠름.
- MobileNetV3-Large LR-ASPP는 Cityscapes Segmentation에 경우에 유사한 정확도에서 MobileNetV2 R-ASPP 보다 34% 더 빠름.
1. Introduction
효율적인 신경망들은 완전히 새로운 기기 경험을 가능하게 하는 모바일 어플리케이션에서 유비쿼터스화 되어 가고 있음.
- 또한, 모바일 어플리케이션은 개인 프라이버시를 가능하게 하는 핵심요소로써, 사용자가 자신들의 데이터를 평가받기 위해 서버에 데이터를 전송할 필요 없이 신경망의 이점을 얻을 수 있음.
- 신경망 효율성의 발전들은 높은 정확도와 낮은 지연시간을 통해 사용자 경험을 향상시킬 뿐만 아니라, 감소된 전력 소비를 통해 배터리 수명을 유지하도록 도움을 줌.
이 논문에서는, 기기 내 컴퓨터 비전에 전력을 공급하는 높은 정확도와 효율성을 가진 차세대 신경망 모델을 제공하기 위한 MobileNetV3 Large 및 Small 모델을 개발하기 위해 우리가 취했던 접근법을 설명함.
- 이 새로운 네트워크들은 최첨단 기술을 발전시키고, 효과적인 모델을 구축하는 새로운 아키텍처 개발과 자동화된 탐색을 조합하는 방법 (How to Blend) 을 보여줌.
이 논문의 목표는 모바일 기기에서 정확도-지연시간의 트레이드 오프를 최적화하는 최상의 모바일 컴퓨터 비전 아키텍처를 개발하는 것임.
- 이러한 점을 달성하기 위해서, 우리는 다음과 같은 점들을 도입함 :
- 상호보완 탐색 기술들 (Complementatry Search Techniques).
- 모바일 설정에 실용적인 비선형성의 새롭고 효율적인 버전들 (New Efficient Versions of Nonlinearities Practical for the Mobile Setting).
- 새롭고 효율적인 네트워크 설계 (New Efficient Network Design).
- 새롭고 효율적인 분할 해독기 (a New Efficient Segmentation Decoder).
2. Related Work
정확도와 효율성 사이에서 최적의 트레이드 오프에 대한 Deep 신경망 아키텍처를 설계하는 것은 최근 몇 년동안 활동적인 연구 분야가 됐음.
- 새로운 Handcrafted 구조들과 알고리즘적인 신경 아키텍처 탐색 둘 다 이 분야를 발전시키는데 중요한 역할을 해왔음.
- SqueezeNet은 주로 파라미터 숫자를 감소시키는 데 초점을 맞춘 모듈들을 Squeeze 및 Expand 하는 1 x 1 Convolutions를 광범위하게 사용함.
- 보다 최근 작업들에서는 파라미터를 감소시키는 것에서 작동 횟수 (MAdds) 와 실제 측정 지연 시간을 감소시키는 것으로 초점이 이동함.
- MobileNetV1은 계산 효율성을 상당히 개선시키는 심층 분리가 가능한 (Depthwise Separable) Convolution을 사용함.
- MobileNetV2는 선형 Bottlenecks와 뒤집힌 잔차 (Inverted Residual) 를 사용한 리소스 효율적인 블록을 도입하여 위 MobileNetV1의 장점을 확장함.
- ShuffleNet은 MAdds를 추가적으로 감소시키기 위해 그룹 Convolution과 채널 Shuffle 작업들을 사용함.
- CondenseNet은 Feature 재사용 (Re-use) 에 대해 계층들 간 유용하고 Dense한 연결들을 유지하기 위해 훈련 단계에서 그룹 Convolutions을 학습함.
- ShiftNet은 값비싼 공간 Convolutions를 대체하기 위해 Point-wise Convolutions이 포함된 (InterLeaved) 전환 작업 (Shift Operation) 을 제시함.
아키텍처 설계 과정을 자동화하기 위해, 강화 학습 (RL, Reinforcement Learning) 이 경쟁력 있는 정확도를 가지고 효율적인 아키텍처들을 탐색하기 위해 처음 도입되었음.
- 완전히 구성 가능한 탐색 공간은 기하급수적으로 커지고, 다루기 어려울 수 있음.
- 그래서, 초기 아키텍처 탐색 작업들은 Cell 수준 구조 탐색에 초점을 맞췄으며, 동일한 Cell은 모든 계층에서 재사용되었음.
- 최근에, 서로 다른 네트워크의 분해 (Resolution) 블록들에서 서로 다른 계층 구조들를 허용하는 블록 수준 계층적 탐색 공간을 탐색함.
- 탐색 계산 비용을 감소시키기 위해서, 미분 가능한 아키텍처 탐색 프레임워크이 그라디언트 기반 최적화를 이용한 아래의 [1, 2, 3] 에서 사용됨.
- 기존 네트워크를 제한된 모바일 플랫폼들에 적용시키는데 중점을 두고, 보다 더 효율적인 자동화 네트워크 간소화 알고리즘을 제시했음.
- 양자화 (Quantization) 는 정밀 산술 감소 (Reduced Precision Arithmetic) 를 통해 네트워크 효율성을 향상시키는 또 다른 중요한 보완적 노력임.
- 마지막으로, 지식 증류 (Knowlegde Distillation) 는 큰 규모 "Teacher" 네트워크의 지침에 따라 작은 규모 "Student" 네트워크들을 생성하는 추가적인 보완 방법을 제공함.
3. Efficient Mobile Building Blocks
모바일 모델들은 점점 더 효율적인 빌딩 블록들에 구축되어져 왔음.
- MobileNetV1은 기존 Convolutional Layers에 대한 효율적인 대체제로써 Depth-wise Separable Convolutions를 도입했음.
- Depthwise Separable Convolutions는 Feature 생성 메커니즘에서 공간 필터링을 분리하여 기존 Convolution을 효과적으로 분해함 (Factorize).
- Depthwise Separable Convolutions는 두 개의 분리된 계층들에 의해 정의됨 :
- 공간 필터링에 대한 가벼운 무게 심층 컨볼루션 (Light Weight Depthwise Convolutions).
- Feature 생성에 대한 더 무거운 1 x 1 Pointwise Convolutions.
- MobileNetV2는 문제의 낮은 순위 특성 (Nature) 을 활용 (Leveraing) 하여 훨씬 더 효율적인 계층 구조를 만들기 위해 선형 Bottleneck과 Inverted Residual 구조를 도입했음.
- 이 구조는 Figure 3에서 나타나며, x 1 확장 Convolution에 이어 Depth-wise Convolutions와 1 x 1 Projection 계층에 의해 정의됨.
- 입력과 출력은 이들이 채널 수가 동일한 경우에만 잔차 연결로 연결됨.
- 이 구조는 입력과 출력에서 Compact한 표현을 유지하면서 내부적으로는 고차원 Feature 공간으로 확장하여 비선형 채널 변형의 표현력을 증가시킴.
- MnasNet은 Bottleneck에 압착 (Squeeze) 와 자극 (Excitation) 에 기초한 경량 주의 모듈들을 도입하여 MobileNetV2 구조에 설계됨.
- Squeeze와 Excitation 모듈이 Squeeze-and-Excitation Networks에서 제시한 모듈 기반인 ResNet과 다른 위치에서 통합된다는 것을 주목해야함.
- 이 모듈은 Figure 4와 같이 가장 큰 표현에 주의를 기울이기 위해 확장시 Depthwise 필터들 이후에 배치됨.
- MobileNetV3의 경우, 우리는 가장 효과적인 모델을 구축하기 위해 이러한 계층들의 조합을 사용 빌딩 블록으로써 사용함.
- 계층들은 또한 수정된 Swish 비선형성들로 업그레이드됨.
- Squeeze와 Excitation 뿐만 아니라 Swish 비선형성 모두 시그모이드를 사용하는데, 이는 계산이 비효율적일 수 있으며, 고정된 지점 산술 (Arithmetic) 의 정확성을 유지하기 어렵기 때문에, 이것을 섹션 5-2 에서 설명한 바와 같이 Hard 시그모이드로 대체함.
4. Network Search
- 네트워크 탐색은 그 자체가 네트워크 아키텍처를 최적화하고 발견하기 위한 매우 강력한 도구가 된다는 것을 보여주었음.
- MobileNetV3의 경우, 우리는 각 네트워크 블록을 최적화함으로써 전체 네트워크 구조를 탐색하기 위해 플랫폼-인식 (Platform-Aware) NAS를 사용함.
- 그런 다음, 계층 별 필터 갯수를 탐색하기 위해 NetAdapt 알고리즘을 사용함.
- 이러한 기술들은 상호보완적이며, 주어진 하드웨어 플랫폼에 대해 최적화된 모델들을 효과적으로 찾기 위해 조합될 수 있음.
4-1. Platform-Aware NAS for Block-wise Search
- Platform-aware neural architecture search for mobile 과 유사하게, 우리는 전체 네트워크 구조들을 찾기 위해 플랫폼 인식 신경 아키텍처 접근법을 사용함.
- 우리가 동일한 RNN 기반 Controller와 동일하게 분해된 (Factorized) 계층적 탐색 공간을 사용하기 때문에, 약 80ms의 목표 지연시간을 가진 큰 모바일 모델들에 대해 Platform-aware neural architecture search for mobile 와 유사한 결과들을 발견함.
- 따라서, 우리는 초기 큰 모바일 모델들과 동일한 MnasNet-A1을 간단히 재사용하고, 그런 다음 NetAdapt 및 기타 최적화들을 그 위에 적용함.
- 그러나, 초기 보상 설계가 작은 모바일 모델들에서는 최적화 되지않는 것을 관찰함.
- 구체적으로 , 이 설계는 목표 지연 시간 TAR에 기반한 각 모델 m에 대해 모델 지연 시간 LAT(m)과 정확도 ACC(m) 을 균형 잡음으로써 다 목적 보상 ACC(m) * [LAT(m) / TAR]^w 을 사용해 Pareto-optimal 솔루션들의 근사치를 도출함.
- 우리는 작은 모델의 지연시간에 따라 정확도가 훨씬 더 극적으로 변한다는 것을 관찰함.
- 따라서, 서로 다른 지연시간들에 따른 더 큰 정확도 변화를 보상하기 위해 더 작은 가중치 w = -0.15 (원래는 w = -0.07) 가 필요함.
- 이 새로운 가중치 w를 통해 , 우리는 초기 시드 (Seed) 모델을 찾기 위해 처음부터 (from Scratch) 새로운 아키텍처 탐색을 시작하고, 그 다음에 최종 MobileNetV3-Small 모델을 얻기 위해 NetAdapt와 다른 최적화들을 적용함.
4-2. NetAdapt for Layer-wise Search
- 우리가 아키텍처 탐색에서 사용한 두 번째 기술은 NetAdapt임.
- 이 접근법은 플랫폼-인식 (Platform-Aware) NAS를 무료로 제공함 : 거칠지만 (Coarse) 전체 아키텍처를 추론하기 보다는 순차적인 방식 (Sequential Manner) 으로 각 계층들을 미세 조정 (Fine-Tuning) 할 수 있도록 함.
- 요약하자면, 기술은 다음과 같이 진행함 :
- 플랫폼-인식 NAS에 의해 발견된 한 시드 네트워크 아키텍처에서 시작함.
- 각 단계의 경우는 다음과 같음 :
- 새로운 Proposals의 집합을 생성함. 각 Proposal은 이전 단계와 비교하여 적어도 δ의 지연 시간 감소를 만드는 아키텍처의 수정을 나타냄.
- 각 Proposal의 경우, 우리는 이전 단계에서 사전에 훈련된 (Pre-trained) 모델을 사용하고, 누락된 가중치를 적절하게 잘라내고 무작위로 초기화 하면서 새롭게 제시된 아키텍처를 채움.
- 몇몇 지표 (Metric) 에 따라 최상의 Proposal을 선택함.
- 목표 지연시간에 도달할 때까지 이전 단계를 반복함.
- NetAdapt 에서, Metric은 정확도 변화를 최소화하는 것이었음.
- 우리는 이 알고리즘을 수정하고, 지연시간 변화와 정확도 변화 사이의 비율을 최소화함.
- 그 비율은 각 NetAdapt 단계 동안 생성된 모든 Proposals에 대한 것이므로, 아래의 식을 최대화하는 한 개를 선택함 (2(a)의 제한조건을 만족하는 △latency로).
- 이 직관은 Proposals가 이산적 (Discrete) 이기 때문에, 우리가 트레이드 오프 곡선의 기울기를 최대화하는 Proposals를 선호하는 것임.
- 이 과정은 지연시간이 스스로의 목표에 도달할 때까지 반복되며, 그런 다음 우리는 처음부터 새로운 아키텍처를 다시 훈련시킴.
- 우리는 NetAdapt에서 사용된 것과 동일한 Proposal 생성기를 MobileNetV2에서 사용함.
- 구체적으로, 우리는 다음과 같은 두 가지 종류의 Proposals를 허용함 :
- 확장 계층의 크기를 감소시킴.
- 잔차 연결을 유지하기 위해 동일한 Bottleneck 크기를 공유하는 모든 블록에서 Bottlenect을 감소시킴.
5. Network Imporvements
- 네트워크 탐색에 이 외에, 우리는 또한 최종 모델을 추가적으로 개선하기 위해 모델에 일부 새로운 컴포넌트들을 도입함.
- 우리는 네트워크의 시작과 끝 지점에서 계산적으로 비용이 많이 드는 계층들을 다시 설계함.
- 또한, 최근 Swish 비선형성의 수정된 버전으로 새로운 비선형성인 h-swish를 도입하며, 이는 Quantization에 더 친화적이며, 더 빠르게 계산함.
5-1. Redesigning Expensive Layers
- 일단 모델들이 아키텍처 탐색을 통해 발견되면, 일부 마지막 계층들 뿐만 아니라 일부 초기 계층들이 다른 계층들보다 더 값비싸다는 것을 관찰함.
- 우리는 정확성을 유지하면서 동시에 이러한 느린 계층들의 지연시간을 감소시키기 위해 아키텍처에 일부 수정을 제시함.
- 첫 번째 수정은 최종 Features를 더 효과적으로 생성하기 위해 네트워크의 일부 마지막 계층들을 상호작용하는 방법을 재작업함.
- MobileNetV2의 Inverted Bottleneck 구조 및 다른 형태들을 기반으로 만들어진 현재 모델들은 고차원 Feature 공간을 확장하기 위해서 1 x 1 Convolution을 마지막 계층으로 사용함.
- 이 계층은 예측에서 풍부한 Features를 가지기 위해 굉장히 중요함.
- 그러나, 이러한 점은 추가적인 지연시간 비용이 뒤따라옴.
- 고차원적인 Features를 보존하면서 지연시간을 감소시키기 위해, 우리는 최종 Average Pooling 다음으로 이 계층을 옮김.
- 이 최종 Features의 집합은 현재 7 x 7 공간 Resolution 대신에 1 x 1 공간 Resolution으로 계산됨.
- 이러한 설계 선택의 결과는 Features의 계산이 계산과 지연시간 측면에서 거의 자유로워짐.
- 일단 이 Feature 생성 계층의 비용이 완화되면, 이전의 Bottlenect Projection 계층은 더이상 계산을 감소시킬 필요가 없어짐.
- 이러한 관측을 통해, 이전 Bottlenect 계층에서 필터링 계층과 Projection을 제거할 수 있으므로, 계산 복잡성을 더욱 줄일 수 있음.
- 기존과 최적화된 마지막 단계는 Figure 5에서 볼 수 있음.
- 효율적인 마지막 단계는 지연시간을 7ms만큼 감소시키며, 이것은 실행시간의 11%이고, 거의 정확도 손실 없이 3천만 MAdds의 작업 수를 감소시킴.
- 또 다른 값비싼 계층은 초기 필터 집합임.
- 현재 모바일 모델들은 Edge Detection에 대해 초기 필터 Banks를 구축하기 위한 Full 3 x 3 Convolution에서 32개 필터를 사용하는 경향이 있음.
- 종종 이러한 필터들은 서로 Mirror 이미지들임.
- 우리는 중복성을 감소시키기 위해서 필터 수를 감소시키고 다른 비선형성을 사용하는 실험을 하였음.
- 우리는 테스트한 다른 비선형성뿐만 아니라 수행했을 때 이 계층에 대해 Hard한 Swish 비선형성을 사용하기로 결정했음.
- 그리고 ReLU 또는 Swish에서 사용하는 32개의 필터와 동일한 정확도를 유지하면서 16개의 필터 수를 감소시킬 수 있었음.
5-2. Nonlinearities
- 아래의 논문들에서 Swish라 불리는 비선형성이 ReLU에 대한 Drop-in 대체제로 사용될 때 도입되었으며, 이는 신경망의 정확도를 상당히 향상시켜줌.
- 이 비선형성은 아래와 같이 정의됨.
- 이 비선형성이 정확도를 개선시키지만, 시그모이드 함수가 모바일 기기에서 계산하는 데 훨씬 더 값비싸기 때문에 임베디드 환경에서 0이 아닌 비용이 발생함.
- 우리는 이 문제를 두 가지 방식으로 다룸.
(1) 우리는 시그모이드 함수를 단편적인 (Piece-wise) 선형 Hard Analog로 대체함: ReLU6(x + 3) / 6
- 자그마한 차이점은 우리가 사용자 정의 Clipping 상수 보다 ReLU6을 사용한다는 것임.
- 유사하게, Swish의 Hard 버전은 아래처럼 됨.
- Hard-Swish와 유사한 버전은 또한 최근에 Semantic segmentation of satellite images using a modified cnn with hard-swish activation function 논문에서 제시됨.
- 시그모이드의 Soft, Hard 버전과 Swish 비선형성 비교는 Figure 6에서 보여줌.
- 우리가 상수를 선택한 기준은 기존 Smooth 버전에 더 잘 어울리고 간단함이었음.
- 우리 실험에서, 우리는 이러한 모든 함수들의 Hard 버전이 정확도에서 크게 차이가 나지 않지만, 배치 관점 (Deployment Perspective) 에서 다수의 이점을 가진다는 것을 발견했음.
- ReLU6의 최적화된 구현들은 거의 모든 소프트웨어와 하드웨어 프레임워크에서 사용 가능함.
- 정량화된 (Quantized) 모드에서, 대략적인 시그모이드의 다른 구현들에서 발생되는 잠재적인 수치적 정밀 손실을 제거함.
- 실제로, h-swish는 단편적인 함수로 구현되어 지연시간 비용을 상당히 절감할 수 있는 메모리 액세스 횟수를 감소시킬 수 있음.
(2) 비선형성을 적용하는 비용은 각 계층 활성화 메모리가 Resolution이 Drop될 때마다 반감되기 때문에 우리가 네트워크에 깊게 들어갈수록 감소함.
- 그런데, 우리는 Swish 이점의 대부분이 더 깊은 계층들에서 Swish를 사용할때만 실현된다는 것을 발견함.
- 따라서, 우리 아키텍처에서 우리는 모델의 후반부에서만 h-swish를 사용함.
- 정확한 레이아웃은 Table 1과 2를 참고함.
- 이러한 최적화들조차도, h-swish는 여전히 일부 지연시간 비용을 동반함.
5-3. Large squeeze-and-excite
- Mnasnet: Platform-aware neural architecture search for mobile 논문에서, Squeeze와 Excite Bottlenect의 크기는 Convolutional Bottleneck의 크기보다 상대적으로 컸음.
- 대신에, 우리는 이러한 것들 모두를 확장 계층 채널 수의 1 / 4로 고정되도록 대체함.
- 이렇게 진행했을 때 파라미터 수가 약간 증가했어도 정확도는 높아졌으며, 지연시간 비용에 차이가 없음을 발견함.
5-4. MobileNetV3 Definitions
- MobileNetV3는 두 가지 모델로 정의됨 :
- MobileNetV3-Large.
- MobileNetV3-Small.
- 이러한 모델들은 개별적으로 높고 낮은 리소스 사용 사례들을 대상으로 함.
- 모델들은 이 섹션에서 정의한 네트워크 개선법들의 통합과 네트워크 탐색에 대한 플랫폼-인식 NASd와 NetAdapt 적용을 통해 만들어짐.
- 마찬가지로 네트워크의 구체적인 전체 망은 Table 1과 2를 참조하면 됨.
7. Conclusions and future work
- 이 논문에서, 우리는 모바일 Classification, Detection, Segmentation에서 새로운 최첨단 결과를 증명하는 MobileNetV3 Large와 Small 모델을 도입했음.
- 우리는 다음세대의 모바일 모델들을 제공하기 위한 네트워크 설계의 진보뿐만 아니라 다수의 네트워크 아키텍처 탐색 알고리즘을 활용하려는 우리의 노력들에 대해 설명해왔음.
- 또한, 우리는 효과적인 도구로서 모바일 모델 도메인에 이러한 것들을 도입하는 Quantization 친화적이고 효율적인 방법으로 Swish 같은 비선형성을 적응시키고, Squeeze와 Excite를 적용하는 방법을 보여줬음.
- 그리고 LR-ASPP라 불리는 새로운 경량화 Sementation Decoder 형식을 도입했음.
- 자동 탐색 기술들을 인간의 직관과 어떻게 가장 잘 조화시킬 것인가에 대한 열린 문제로 남아 있음.
'Paper > Vision' 카테고리의 다른 글
Image Question Answering using Convolutional Neural Network with Dynamic Parameter Prediction (0) | 2019.11.11 |
---|---|
ArcFace: Additive Angular Margin Loss for Deep Face Recognition (1) | 2019.10.09 |
Triplet Loss (0) | 2019.07.29 |
AlexNet (0) | 2019.03.29 |