用於圖像分類的MobileNetV3算法
摘要
卷積神經網絡(CNN)是一種深度神經網絡,通過多個卷積層提取圖像特征,廣泛應用於圖像分類。隨着移動設備處理的圖像數據量的不斷增加,神經網絡在移動終端上的應用越來越廣泛。然而,這些網絡需要大量的計算和先進的硬件支持,很難適應移動設備。本文論證了MobileNetV3對於移動終端上的實際圖像分類任務,可以在效率和准確性之間取得較好的平衡。在我們的實驗中,比較了MobileNetV3和其他幾種常用的預訓練CNN模型在不同圖像數據集上的分類性能。選擇的數據集都很好地代表了移動設備的應用場景。結果表明,作為一種輕量級的神經網絡,與其他大型網絡相比,MobileNetV3以有效的方式實現了良好的精度性能。此外,ROC證實了MobileNetV3相對於其他實驗模型的優勢。並對適用於MobileNetV3的圖像數據集的特征提出了一些猜想。
關鍵詞-卷積神經網絡;圖像分類;移動設備;MobileNetV3
I. 緒論
卷積神經網絡(Convolutional Neural Network,CNN)由於其在圖像分類、分割和其他計算機視覺問題中的擴展應用而受到極大關注。CNN通常由兩部分組成:特征提取部分(由卷積層和池化層組成)和分類部分(包含大量堆疊的全連接層)。在第一部分中,卷積層中的核逐步掃描輸入圖像,將每個核中的權重乘以像素值,並組合總和來創建傳遞到下一層的新圖像。池化層在下采樣中起到減少數據數量和節省計算資源的作用。在第二部分中,圖像首先通過flatten層轉換為一維數組。接下來的全連接層使用這個數組作為輸入,並通過應用線形組合和非線性激活函數來產生預測標簽。
CNN由於其分層提取深層特征的優勢,目前被廣泛應用與解決現實世界中的問題,比如自動駕駛和醫學影像診斷。由於日常場景中的大量任務,將深度學習應用於移動設備上的日常任務變得非常自然。因此,成功地將CNN應用於移動終端是非常重要的。由於移動設備上有限的計算能力,對模型效率和小內存有很高的要求。
有許多為不同任務設計的CNN架構。其中,有些常用於圖像分類問題,如Inception、AlexNet和VGG16。然而,移動設備中的分類任務不僅要求高精度,而且更設計的是要求低存儲成本和高計算效率,這就產生了適用於移動終端的模型。我們選擇MobileNetV3作為我們的主要研究對象,它是輕量級的CNN模型,在准確性和效率之間取得了很好的平衡。
本文比較了MobileNetV3、AlexNet、Inception和ShuffleNet在不同數據集上的性能,驗證了MobileNetV3的高效性和適應性。本文的主要貢獻如下:
-
Fruits 360,10 Monkey Species和Bird Species Classification作為移動設備上常見圖像數據集的代表,用於訓練和評估所選神經網絡的性能。
-
MobileNetV3、AlexNet、InceptionV3和ShuffleNetV2應用於與移動場景相關的多個圖像分類任務。
-
采用多個評估指標來分析不同模型在不同數據集上的性能。
-
在實驗結果的基礎上,總結了MobileNetV3在圖像分類方面的特點及其在移動設備上的優勢。
本文的其余部分組織如下。在第二章中,我們描述了MobileNetV3的主要結構以及實驗中其他模型的特點。在第三章中,介紹了數據集,並評估了MobielNetV3和其他模型的性能。實驗結果和分析也見第三章。第四章總結了MobileNetV3的特點,並討論了我們未來的工作。
II. 模型的架構
近年來,面向移動終端的CNN網絡發展迅速。從2017年到2019年,MobileNet的三個版本在架構上不斷改進。MobileNetV1是參考傳統的VGG架構開發的,同時引入了深度可分離卷積。在此基礎上,一年后退出了具有線形瓶頸和反向殘差的MobileNetV2。在NAS和NetAdapt網絡搜索架構優化的幫助下,MobileNetV3在2019年年中通過刪除開銷較高的層和使用h-swish非線性函數代替ReLU來改進,同時提高效率和相對准確性。
根據事例目標使用資源的高低,將MobileNetV3定義為MobileNetV3-Small和MobileNTV3-Large兩種架構復雜度不同的模型。
表一 MobileNetv3-Large的規格。#expand表示示用於從層的輸入擴展特征空間的卷積濾波器的數量。SE指示在該塊中是否存在擠壓和激勵。NL表示該塊的非線性類型。BN表示批標准化。
MobileNetV3-Large的完整規格見表I。
根據詳細的層規范,模型的整體架構可以如圖1所示。
圖1 MobileNetV3架構。MobileNetv3-Large和MobileNetv3-Small的通用架構相同。
MobileNetV3-Small的一般結構與MobileNetV3-Large幾乎相同。此外,MobileNetV3-Small縮短了四層,如表II所示。
表II MobileNetV3-Small規格。所有符號與表I相同。
A. 深度可分離卷積
為了提高計算效率,引入了深度可分離卷積。它與傳統的卷積非常相似。與每層只有一次卷積計算的傳統卷積不同,深度可分離卷積的卷積計算分為兩個階段。在第一階段中,深度卷積對每個輸入通道應用單個卷積濾波器。在第二階段中,將逐點卷積(卷積)應用於深度卷積的輸出的所有通道。總之,深度可分離卷積通過減少計算量來提高計算速度,但會犧牲一些精度。深度可分離卷積是許多高效模型(如MobileNetV1-V3)的核心技術。
B. 線性瓶頸
為了在不丟失太多信息的情況下從高維空間中提取特征,MobileNetV2提出了線性瓶頸來降低輸入的維數。線性瓶頸指的是一個瓶頸層,它是一個帶有1×1濾波器的卷積層,與線性激活函數相結合。因為傳統的ReLU函數變換提供了具有信息丟失可能性的非線性,所以MobileNetV2轉而將線性瓶頸層插入到卷積塊中(假設特征流是低維且可捕獲的)。
C. 反向殘差
作為一種更安全、更有效的方法來提取輸入數據的所有必要信息,瓶頸層取代了ReLU層。在瓶頸塊的開始處還有一個擴展層。此外,MobileNetV2直接在瓶頸之間使用捷徑,以更好地跨多個層傳播梯度,並防止梯度丟失和爆炸。反向殘差塊經過測試,其有效作用幾乎與殘差塊相同,同時顯著降低了內存開銷。
D. 網絡架構搜索
通過強化學習和遞歸神經網絡(RNN),將網絡架構搜索應用於MobileNetV3,以確定受限硬件平台的最優架構。它是一種為神經網絡的體系結構構造搜索空間,並用強化
學習在分層搜索空間中高效搜索,以逼近特定任務模型的最佳結構的方法。例如,基於MobileNetV2的原始設計,將MobileNetV3的擴展層重新設計為圖2。
由於RNN控制器和搜索空間的相似性,MobileNetV3使用MnasNet-A1作為初始模型。此外,對強化學習中的獎勵設計進行了修改,以更好地適應小型移動模型。在層的類型固定后,使用NetAdapt(一種微調每層中超參數的方法)來優化模型。
圖2 原始末級和重新設計的末級的比較。
E. Swish函數
為了獲得更高的精度,引入了一種新的激活函數swish來代替ReLU函數。該函數定義為:
然而,swish公式中的sigmoid函數可能在移動設備上消耗大量的計算資源。為了解決這個問題,MobileNetv3的作者使用Relu6函數來近似Swish中的Sigmoid函數,並
產生Swish函數的近似,稱為Swish的hard版本(H-Swish),定義為:
F. 實驗中的額外模型
AlexNet是一個非常初始的深度CNN,開始使用ReLU非線性而不是tanh函數,並且可以放在多個GPU上。適用於高分辨率圖像。然而,該模型的主要缺點是由於大量的參數而導致嚴重的過擬合問題。
InceptionV3首先將批處理歸一化層應用於數據的傳播,以加速梯度下降的過程。InceptionV3中的Inception模塊經過優化,與InceptionV2相比具有更多分支。此外,在InceptionV3中實現了分解為小卷積的關鍵見解,這意味着將2維卷積核分離為兩個1維卷積核。
ShuffleNet[15]使用組卷積和信道混洗來降低計算復雜度。通過深度方向可分離卷積層提取特征,在不顯著降低精度的情況下,具有較低的計算量和較高的數據傳播速度。
III. 實驗
A. 數據集
在本文中,我們使用了從Kaggle下載的三個不同的數據集。這些數據集將模擬MobileNetv3可應用於移動設備的日常場景。
如圖3所示,在第一行中,第一個數據集是Fruit360數據集,包括131個水果類別和67692個訓練圖像。每個水果都是從不同的角度拍攝多次,並有一個清晰的背景。圖3
中的第二行展示了第二個數據集,即10只猴子的1097個圖像。第三個數據集包含16類鳥類和總共150張圖像,如第三行所示。這個數據集很小而且不平衡,鳥類隨機分布在不同的背景中。
圖3 樣本來自三個實驗數據集。第一行是Fruit360數據集;第二行是猴子數據集;第三行是鳥類數據集。
在數據預處理方面,我們對三個數據集進行了相同的操作:首先,將訓練數據集隨機拆分為訓練子集和驗證子集,拆分比例為0.7;其次,將除InceptionV3外的所有圖像的大小調整為 224×224,並歸一化為模型的輸入。對於InceptionV3,輸入圖像的大小調整為299×299 。
B. 實驗步驟
在本文中,我們比較了5個模型(MobileNetV3-Large,MobileNetV3-Small , AlexNet,InceptionV3 和ShuffleNetV2)在3個不同數據集上的性能。
這5個模型之間的FLOPs和參數數量的比較如表III所示。
模型 | MobileNetV3-Large | MobileNetV3-Small | AlexNet | InceptionV3 | ShuffleNetV2 |
---|---|---|---|---|---|
FLOPs(百萬) | 226.0 | 29.65 | 714.7 | 5731 | 148.8 |
參數(百萬) | 5.48 | 2.54 | 61.1 | 23.8 | 2.28 |
數據集包括與水果、鳥類和猴子相關的日常生活圖像分類問題。
我們根據不同數據集的唯一分類類別的數量替換每個模型的最后一個分類層。使用了ImageNet[19]上預先訓練的權重[17,18]。然后通過設置所有可訓練的層來微調模型。
使用預先訓練的權重進行訓練使訓練過程更簡單,並導致更快的收斂。對模型進行微調是為了使模型適應特定的任務。在三個數據集上的實驗步驟相同。
C. 評估指標
1) 准確性:
為了評估模型在數據集上的性能,計算預測為正的樣本(實際上是正的)的數量和預測為負的樣本(實際上是負的)的數量。它反映了模型從整個數據集中區分真陽性樣本和真陰性樣本的精度。
精度定義為:
其中TP、TN、FP、FN分別是真陽性、真陰性、假陽性和假陰性樣本的數量。
2) 交叉熵損失:
在訓練神經網絡的階段,我們通常定義一個目標函數,並將訓練過程轉化為一個優化問題。為了客觀地衡量神經網絡預測結果的波動程度,並在搜索空間中為我們提供一個合理的優化方向,本文在模型的訓練階段采用了交叉熵作為損失函數。
交叉熵損失定義為:
其中N是訓練集中的樣本數量;M是訓練集中的類的數目;\(p(x_{ij})\)是第i個樣本屬於第j類的真實概率; \(q(x_{ij})\)是模型產生的第i個樣本屬於第j類的概率。
3) ROC曲線:
為了直觀地顯示真陽性率(TPR)和假陽性率(FPR)之間的權衡,繪制了受試者工作特征(ROC)曲線,其中\(TPR=TP/P\)是模型正確標記的陽性樣本的比例,以及\(FPR=FP/N\)是被錯誤標記為陽性的陰性樣本的比例。
ROC曲線下的面積通常用於衡量模型的性能。圖上的對角線表示隨機標記樣本的模型。比隨機模型更好的模型應該出現在對角線上方。模型離隨機越遠(即,當ROC曲線下的面積遠大於0.5時),模型越好。
D. 實驗結果
1) 在水果數據集上的實驗:
水果數據集包含來自131個水果類別的90483張圖片。一類水果的所有訓練和測試照片都是從該類別的單個水果代表的不同角度拍攝的,背景為白色。這意味着一個特定類別的訓練和測試數據之間沒有明顯的差異。訓練規模足夠大,圖像中的水果幾乎沒有任何背景干擾。也有大量的測試數據。因此,可以認為測試結果是令人信服的。
如表IV所示,與其他兩個數據集上的實驗相比,水果數據集的微調訓練時間特別長。這可能是由於大數據集和復雜的水果品種。
表IV 不同實驗模型在水果數據集上的近似微調訓練時間。絕對時間高度依賴於訓練環境,而模型之間的時間比較相對有意義。
模型 | 大致訓練時間(分鍾) |
---|---|
MobileNetV3-Large | 40 |
MobileNetV3-Small | 33 |
AlexNet | 417 |
InceptionV3 | 225 |
ShuffleNetV2 | 42 |
圖4 通過在水果數據集上的實驗,比較了整個微調訓練過程中訓練和驗證的准確性和損失。
雖然訓練時間相對較長,但水果數據集實際所需的訓練epoch數量較少,以實現水果數據集的良好性能。在圖4中,所有的 MobileNetV3-Large 、 MobileNetV3-Small 、AlexNet和InceptionV3都可以從第一個epoch開始達到接近1的精度。在整個訓練過程中,只有ShuffleNetV2模型表現出較低的驗證精度。通過比較訓練和驗證評估,對於所有模型,驗證精度甚至普遍高於訓練精度。因此,在這些實驗中不存在過擬合問題。
在Fruit數據集上對所有實驗模型的測試精度和ROC曲線進行比較,得出了相同的結論:一方面,MobileNetV3-Large 的性能最好,其次是MobileNetV3-Small。InceptionV3具有類似但稍低的精度。盡管AlexNet在該數據集中排名第四,但其准確性仍然很高。另一方面,ShuffleNetV2的性能並不令人滿意,測試精度為0.79,與其他模型相比,分類能力差距明顯。圖5還清楚地表明,所有模型的性能都比隨機猜測的要好得多。
圖5 不同模型在水果數據集上的ROC曲線比較。
考慮到微調的訓練時間、測試時間和數據集上所有模型的最終性能,ShuffleNetV2對應於高效率而低精度。AlexNet和InceptionV3可以以更高的時間和資源成本實現高精度。只有兩個MobileNetV3型號在准確性和效率之間實現了預期的出色平衡。MobileNetV3不僅耗時最短,而且分類性能最好。
2) 在猴子數據集上的實驗:
猴子數據集由10種猴子的近1400張圖片組成。由於移動設備拍攝的照片分辨率相對較低,而動物是移動設備經常捕捉的對象,因此我們選取該數據集來驗證MobileNetV3在低分辨率動物圖形分類中的性能。數據集中的每個圖像都包含來自這十個物種之一的猴子。圖像的背景是猴子生活的地方。猴子通常在照片的中央,背景很模糊。
在數據集的每一類中,圖像的數量幾乎相同。它可以幫助防止由於訓練數據集的不平衡而導致的過擬合問題。此外,每個類中有近30張圖片來驗證訓練的模型,客觀地展示了每個模型的性能。每個類別的標簽和圖像數量如表V所示。
表V 每類猴子數據集中的圖像數量。
標簽 | 訓練圖像 | 測試圖像 |
---|---|---|
Mantled howler | 105 | 26 |
Patas monkey | 111 | 28 |
Bald uakari | 110 | 27 |
Japanese macaque | 122 | 30 |
Pygmy marmoset | 105 | 26 |
White headed capuchin | 113 | 28 |
Silvery marmoset | 106 | 26 |
Common squirrel monkey | 114 | 28 |
Black-headed night monkey | 106 | 27 |
Nilgiri langur | 106 | 26 |
在實驗中,訓練圖像被分為兩部分:由770幅猴子圖像組成的訓練集和由328幅猴子圖像組成的驗證集。在訓練階段之前,所有的圖片都被重新縮放到224×224像素,以適應大多數卷積神經網絡的輸入大小(除了InceptionV3的299×299像素)。在訓練過程中,我們從ImageNet遷移學習中加載權重,並將其用作初始權重。
圖6 在猴子數據集實驗的微調訓練過程中,訓練和驗證的准確性和損失的比較。
如圖6所示,MobileNetV3-Large和MobileNetV3-Small都在4個時期內達到了收斂,甚至達到了與InceptionV3相同的高訓練精度,InceptionV3是一個比MobileNTV3大得多的神經網絡。與同樣為移動設備設計的ShuffleNetV2相比,MobileNetV3在更少的時間內以更高的精度收斂,這表明MobileNetV3更容易在該猴子數據集和其他類似動物的低分辨率數據集中進行訓練。
在測試階段,將所有五個訓練好的模型應用於測試集。每個模型的性能結果如圖6所示。
在所有五種模型中,MobileNetV3-Large的測試精度最高,其次是MobileNetV3-Small。圖7說明了相同的結果。實驗結果表明,MobileNetV3能夠很好地提取低分辨率圖
像的特征,並應用於圖像分類。根據大量的觸發器和參數(如表3所示),InceptionV3應該具有最好的泛化能力。然而,它的表現並不如預期。我們假設原因在於猴子數據集的訓練規模太小,以至於如此大的模型無法達到其最佳性能,這也表明MobileNetV3可以使用小數據集進行訓練並達到較高的精度。
圖7 猴子數據集上不同模型的ROC曲線比較。
為了測試每個模型的效率,我們記錄了所有五個模型預測測試集中所有標簽的時間。結果和分析與其他兩個數據集一起顯示在第三章D.4圖10中。
3) 在Bird數據集上的實驗:
由於Bird數據集只包含150幅圖像,並且每個類別的圖像不到10幅,因此很難對其進行訓練,並且很容易變得過擬合。在整個大圖像中,不同的背景和小鳥的大小使得在這個數據集上的實驗更難達到好的結果。與其他兩個數據集相比,Bird數據集由於規模最小,所需的訓練時間最少。
表VI 不同實驗模型的Bird數據集的微調訓練時間。絕對時間幾乎相同。在訓練期間記錄最佳驗證准確度。
模型 | 訓練時間 | 最佳驗證准確度 |
---|---|---|
MobileNetV3-Large | 14min 1s | 0.80 |
MobileNetV3-Small | 14min 18s | 0.78 |
AlexNet | 14min 13s | 0.60 |
InceptionV3 | 14min 26s | 0.67 |
ShuffleNetV2 | 14min 6s | 0.60 |
如表VI所示,所有模型的訓練時間幾乎相同。這表明時間可能不是一個好的比較指標,因為鳥類數據集的模型之間的時間差距不像水果數據集的模型之間的時間差距那么顯著。然而,在與其他兩個數據集相同的訓練時間內,MobileNetV3-Large和MobileNetV3-Small仍然獲得了比其他模型高得多的驗證精度。實驗過程中更多的精度和損耗細節如圖8所示。
圖8表明,所有模型在Bird數據集上都表現出不同程度的過擬合。這主要是由於每個類別的訓練數據不平衡,以及Bird數據集中的數據數量較少。根據圖8(B)中的訓練損失趨勢,除ShuffleNetV2外,所有模型在訓練過程中都達到了良好的收斂。驗證損失的圖8(d)顯示AlexNet在此分類任務中失敗。此外,AlexNet、InceptionV3和ShuffleNetV2在10個訓練時期后遇到了嚴重的過擬合。MobileNetv3-Large和MobileNetv3-Small收斂速度更快且較少過擬合。這兩個模型的驗證精度普遍高於其他模型。
圖8 在Bird數據集實驗上,比較了整個微調訓練過程中訓練和驗證的准確性和損失。
圖9還表明,MobileNetv3-Large在所有模型中實現了最佳性能。通過ROC曲線下面積測量,MobileNetV3-Small具有幾乎相同的優異性能。
4) 整體測試性能對比:
從上述對單個數據集的實驗分析中可以發現,在訓練過程中,MobileNetV3-Large總是能夠在所有實驗模型中獲得最好的性能。MobileNetv3-Small通常是第二個。此外,MobileNetV3的訓練時間明顯短於其他模型。
我們希望在測試性能上再次驗證上述培訓過程結果(第III章 D.1至第III章D.3。為此,在所有五個模型的三個數據集的測試數據上進行了實驗。圖10(a)和(b)分別展示了關於效率和准確性的測試總結。
如圖10(b)所示,MobileNetv3的兩個模型對所選數據集都保持了最高的分類精度。MobileNetv3-Large的表現略好於MobileNetv3-Small。
除了分類精度,我們還關注模型效率。圖10(a)表明,與其他實驗模型相比,MobileNetV3的測試時間並沒有明顯延長。
圖10(a)三個不同數據集上所有實驗模型的測試時間比較。由於三個數據集的原始測試規模差異較大,我們將所有測試時間除以相應數據集的測試次數。(b)在三個不同數據集上比較所有實驗模型的測試精度。
從所有模型的訓練和測試過程中的精度和效率分析可以看出 ,兩個MobileNetV3模型比大型CNN模型(如InceptionV3和AlexNet)所需的時間要短得多(尤其是微調訓練 時間 ),同時達到了令人滿意的精度.MobileNetV3的效率也比其他為移動終端設計的網絡(如ShuffleNetV2)略高,但性能要好得多。
總的來說,我們的實驗結果驗證了MobileNetV3可以用少量的時間資源達到高精度,這意味着它非常適合於計算資源有限、需要高效率的移動設備。
5) 關於合適數據集的特征的猜想:
作為實驗結果分析的進一步,我們通過比較MobileNetv3對三個不同的數據集進行分類的性能,得出了關於哪種數據集更適合於MobileNetV3的一些猜想.
從圖10(b)和單個數據集的ROC曲線(即圖5、7和9)可以發現,Fruit-360數據集在極短的時間內導致1.0的准確度,而Monkey數據集在幾個微調訓練時期后對應於相當好的准確度(高於0.95)。然而,與其他兩個數據集相比,Bird數據集的精度要低得多(低於0.50)。
考慮到這些數據集的特點,水果數據集是日常生活對象圖像的代表,在大量不同類別之間沒有顯著差異。每個類別的訓練集足夠大,並且沒有背景干擾。猴子數據集由僅來自十個類別的猴子的低分辨率動物圖像組成。需要分類的猴子被放在圖像的中心。圖像背景是猴子通常生活的環境,但它們是模糊的。鳥類數據集只有十類鳥類的少量圖像。雖然這些圖像的分辨率很高,但圖像背景雜亂,需要分類的鳥類在整個圖像中的尺寸很小。
因此,我們假設適用於MobileNetV3分類任務的圖像數據集的特征如下:
-
分類對象在沒有強背景干擾的圖像中被突出顯示。
-
圖像沒有高分辨率要求(即,對低分辨率圖像友好)。
-
對於已分類的類別,訓練數據集在相對較大的規模上更好,這意味着已分類的對象在訓練庫中更常見。
-
被分類的對象處於其類別的典型形狀或狀態,並且背景最好也是常見的。
-
沒有必要在數據集中的不同類別之間有明顯的差異,因為CNN可以比人類的眼睛更精確地捕捉特征。
對MobileNetV3合適數據集的特性的實驗總結表明,MobileNetV3是專為移動設備設計的,能夠在極短的時間內處理日常生活照片的分類任務。
IV. 結論
本文基於通常由移動設備捕獲和處理的圖像數據集,比較了MobileNetV3和某些標准CNN模型的圖像分類任務的性能。通過對實驗結果的比較和分析,我們發現MobileNetV3模型能夠以更高的效率完成圖像分類任務。同時,它們的最終精度明顯高於其他模型的精度。此外,我們注意到,MobileNetV3適用於包含具有較少背景干擾的日常生活對象的圖像,即使圖像是低分辨率的。因此,MobileNetV3可以非常方便地處理移動終端的圖像分類任務。
作為我們研究的進一步工作,我們想要總結其他大型CNN的優勢,這些優勢可以用來進一步更好地調整MobileNetV3模型,以提高其性能,同時避免架構擴展。我們還計划使用MobileNetV3模型在更多的圖像數據集上進行實驗,旨在總結和確認在MobileNetV3上表現出色的圖像的更普遍特征。