天天看點

MobileNet論文翻譯

對照英文原文閱讀

Abstract

我們為移動和嵌入式視覺應用提出了一種稱為MobileNets的有效模型。 MobileNets基于簡化的架構,該架構使用深度可分離卷積來建構輕型深度神經網絡。 我們介紹了兩個簡單的全局超參數,它們可以有效地在延遲和準确性之間進行權衡。 這些超參數允許模型建構者根據問題的限制條件為其應用選擇合适大小的模型。 我們在資源和準确性之間進行了廣泛的權衡取舍,與ImageNet分類中的其他流行模型相比,我們展示了強大的性能。 然後,我們示範了MobileNet在各種應用程式和用例(包括對象檢測,細粒度分類,面部屬性和大規模地理定位)中的有效性。

Introduction

自從AlexNet [19]通過赢得ImageNet挑戰:ILSVRC 2012 [24]來推廣深度卷積神經網絡以來,卷積神經網絡就已經在計算機視覺中變得無處不在。 總的趨勢是建立更深,更複雜的網絡以實作更高的準确性[27、31、29、8]。 但是,這些提高準确性的進步并不一定會使網絡在大小和速度方面更加高效。 在許多現實世界的應用程式中,例如機器人技術,自動駕駛汽車增強現實技術,需要在計算受限的平台上及時進行熱識别任務。

本文描述了一種有效的網絡體系結構和兩個超參數集,以建立非常小的,低延遲的模型,這些模型可以輕松地滿足移動和嵌入式視覺應用的設計要求。 第2節回顧了建構小型模型的先前工作。第3節介紹了MobileNet體系結構以及兩個超參數寬度乘數和分辨率乘數-較小更有效的MobileNets。 第4節介紹了ImageNet上的實驗以及各種不同的應用程式和用例。 第5節以總結和結論結束。

PriorWork

在最近的文獻中,人們對建立小型高效的神經網絡越來越感興趣。 [16、34、12、36、22]。 通常可以将許多不同的方法歸類為壓縮預訓練網絡或直接訓練小型網絡。 本文提出了一類網絡體系結構,允許模型開發人員專門為其應用選擇一個與資源限制(延遲,大小)相比對的小型網絡。 MobileNets主要緻力于優化延遲,但也可以産生小型網絡。 關于小型網絡的許多論文隻關注規模,而沒有考慮速度。

MobileNet主要是由深度可分離的卷積建立的,該卷積最初是在[26]中引入,然後在Inception模型[13]中用于減少第一層的計算量。 Flattenednetworks [16]從完全分解的卷積中建構了一個網絡,并顯示了高度分解的網絡的潛力。 獨立于本篇論文,Factorized Networks [34]引入了類似的因式卷積以及拓撲連接配接的使用。 随後,Xception網絡[3]示範了如何按比例擴充深度可分離過濾器以執行Inception V3網絡。 另一個小型網絡是Squeezenet [12],它使用瓶頸的方法來設計每個小型網絡。 其他減少的計算網絡包括結構化轉換網絡[28]和油炸卷積網絡[37]。

獲得小型網絡的另一種方法是收縮,分解或壓縮預訓練的網絡。 在文獻中已經提出了基于乘積量化[36],散列[2]以及修剪,矢量量化和霍夫曼編碼[5]的壓縮。 另外,已經提出了各種因式分解來加速預訓練的網絡[14、20]。 訓練小型網絡的另一種方法是蒸餾[9],它使用較大的網絡來教授較小的網絡。 它是我們方法的補充,在第4節的一些用例中進行了介紹。另一種新興方法是低位網絡[4,22,11]。

MobileNet Architecture

在本節中,我們首先描述MobileNet所基于的核心層,它們是深度可分離的過濾器。 我們描述了MobileNet網絡的結構,并以兩個模型縮小的超參數寬度乘數和分辨率乘數的描述作為結束。

Depthwise Separable Convolution

MobileNet模型基于深度可分離卷積,它是分解卷積的一種形式,可将标準卷積分解為深度卷積,并稱為1×1卷積,稱為逐點卷積。 對于MobileNet,深度卷積将單個濾波器應用于每個輸入通道。 然後,逐點卷積應用1×1卷積來組合深度卷積。 标準卷積既可以過濾,也可以一步一步将輸入組合到一組新的輸出中。 深度可分離的卷積将其分為兩層,一個用于過濾的單獨層和一個用于合并的單獨層。 這種分解具有顯着減少計算和模型大小的效果。 圖2顯示了如何将标準卷積2(a)分解為深度卷積2(b)和1×1點向卷積2(c)。

标準卷積層以DF×DF×M特征圖F作為輸入,并生成DF×DF×N特征圖G,其中DF是正方形輸入特征圖的空間寬度和高度,M是輸入通道數( 輸入深度),DG是方形輸出特征圖的空間寬度和高度,N是輸出通道的數量(輸出深度)。

标準卷積層由convolutionkernelKofsizeDK×DK×M×N參數化,其中DK是假定為正方形的核心的空間尺寸,M是輸入通道數,N是輸出通道數,如先前所定義。

假設跨度為1和填充為标準卷積的輸出特征圖,計算公式為:

标準卷積的計算成本為:

其中計算成本乘以輸入通道數M,輸出通道數N,核心大小Dk×Dk和特征圖大小DF×DF。 MobileNet模型解決了這些術語及其互相作用。 首先,它使用深度可分離卷積來打破輸出通道數與核心大小之間的互相作用。

标準卷積運算具有基于卷積鍊過濾特征群組合特征的作用,以産生新的表示形式。 過濾群組合步驟可以通過使用稱為深度可分離卷積的分解卷積分為兩個步驟,以大幅降低計算成本。

深度可分離卷積由兩層組成:深度卷積和點卷積。 我們使用深度卷積在每個輸入通道(輸入深度)上應用一個濾波器。 點向卷積是一種簡單的1×1卷積,用于建立深度層輸出的線性組合。 MobileNets對這兩個層都使用了batchnorm和ReLU非線性。

每個輸入通道(輸入深度)具有一個濾波器的深度卷積可以寫為:

其中ˆ K是大小為DK×DK×M的深度卷積核,其中ˆ K中的第m個濾波器應用于F中的第m個通道,以生成過濾後的輸出特征圖的第m個通道深度卷積的計算成本為:

深度卷積相對于标準卷積非常有效。 但是,它僅過濾輸入通道,不會将它們組合以建立新功能。 是以,需要額外的一層來計算通過1×1卷積的深度卷積輸出的線性組合,以便生成這些新特征。

深度卷積和1×1(點向)卷積的組合稱為深度可分離卷積,最初是在[26]中引入的。

深度可分離卷積代價:

這是深度和1×1點向卷積的總和。

通過将卷積表示為兩個步驟的過濾和合并過程,我們可以減少以下計算:

MobileNet使用3×3深度可分離卷積,它們比标準卷積使用8到9倍的無計算時間,而準确度僅降低了一點,如第4節所示。

諸如[16,31]中的空間次元上的附加因式分解并不會節省很多額外的計算,因為在深度卷積中花費很少的計算。圖2.将(a)中的标準卷積濾波器替換為兩層:(b)中的深度卷積和(c)中的點積卷積,以建構深度可分離的濾波器。

Network Structure and Training

除了第一層是完整卷積之外,MobileNet結建構立在上一節所述的深度可分離卷積上。通過以這種簡單的術語定義網絡,我們可以輕松地探索網絡拓撲以找到一個好的網絡。表1中定義了MobileNet體系結構。所有層都通過batchnorm [13]和ReLU非線性處理,最後的完全連接配接層除外,該層沒有非線性,并饋入softmax層進行分類。圖3将具有規則卷積,batchnorm和ReLU非線性的層與具有深度卷積,1×1點向卷積以及每個卷積層之後的batchnorm和ReLU的分解層進行了對比。下采樣采用深度卷積以及第一層中的跨步卷積進行處理。最後的平均池在完全連接配接的層之前将空間分辨率降低為1。将深度和點積卷積計為單獨的層,MobileNet有28層。

僅根據少量的Mult-Adds定義網絡是不夠的。確定這些操作可以有效實施也很重要。例如,直到非常高的稀疏度,非結構化稀疏矩陣運算通常不比密集矩陣運算快。我們的模型結構将幾乎所有的計算強度1×1卷積。這可以通過高度優化的通用矩陣乘法(GEMM)函數來實作。卷積通常由GEMM實作,但需要在記憶體中進行名為im2col的初始重新排序,才能将其映射到GEMM。例如,這種方法在流行的Caffe軟體包中使用[15]。 1×1卷積不需要這種重新排序的記憶體,可以直接用GEMM實作,GEMM是最優化的數值線性代數算法之一。如表2所示,MobileNet将其95%的計算時間花費在1×1卷積中,其中也包含75%的參數。幾乎所有其他參數都位于完全連接配接的層中。

使用RMSprop [33]在TensorFlow [1]中使用與Inception V3 [31]類似的異步梯度下降訓練了MobileNet模型。 但是,與訓練大型模型相反,我們使用較少的正則化和資料增強技術,因為小型模型的過度拟合問題較少。 在訓練MobileNets時,我們不使用側邊或标簽平滑,并且通過限制在大型Inception訓練中使用的小作物的大小來減少失真的圖像數量[31]。 另外,我們發現重要的是,由于提振參數斜率,是以對深度過濾器進行很小的權重衰減(l 2正則化)就很重要。 對于ImageNet基準,無論模型的大小如何,都應使用相同的訓練參數來訓練後續模型的模型。

Width Multiplier: Thinner Models

盡管基本的MobileNet體系結構已經很小并且延遲很短,但是在特定的用例或應用程式中,很多時候可能要求模型更小,更快。 為了建構這些較小的和較少的計算昂貴的模型,我們引入了一個非常簡單的參數α,稱為寬度乘數。 寬度乘數的作用是使網絡在每一層均勻地變薄。 對于給定的圖層寬度乘數α,輸入通道數M變為αM,輸出通道數N變為αN。

具有寬度乘數α的深度可分離卷積的計算成本為:

其中,α∈(0,1]的典型設定為1、0.75、0.5和0.25。α= 1是基準MobileNet,α<1是簡化的MobileNets。寬度乘數具有降低計算成本和二次方參數數量的作用 寬度乘數可以應用于任何模型結構,以合理的精度,潛伏期和大小折衷來定義新的較小模型,用于定義需要從頭開始訓練的新的簡化結構。

Resolution Multiplier: Reduced Representation

第二個超參數可得出神經網絡的計算成本,即分辨率乘數ρ。 我們将其應用于輸入圖像,然後通過相同的乘數來減少每一層的内部表示。 實際上,我們通過設定輸入分辨率來隐式設定ρ。

現在,我們可以将網絡核心層的計算成本表示為具有寬度乘數α和分辨率乘數ρ的深度可分離卷積:

其中ρ∈(0,1]通常是隐式設定的,是以網絡的輸入分辨率為224、192、160或128。ρ= 1是基準MobileNet,而ρ<1是簡化的計算MobileNets。 将計算成本降低ρ2的效果。

作為示例,我們可以檢視MobileNet中的典型層,并了解深度可分離卷積,寬度乘數和分辨率乘數如何減少成本和參數。 表3顯示了随着體系結構縮減方法依次應用于該層而計算和該層參數的數量。 第一行顯示了完整卷積層的Mult-Adds和參數,其輸入特征圖的大小為14×14×512,核心K的大小為3×3×512×512。我們将在下一節中詳細讨論資源和準确性之間的取舍。

繼續閱讀