Efficient Net

論文:https://arxiv.org/abs/1905.11946?context=stat.ML
代碼: https://github.com/tensorflow/tpu/tree/master/models/official/efficientnet

0 摘要

卷積神經網絡CNN一般是在固定計算資源的情況下進行設計的,如果使用更多的計算資源,一般可以取得更好的識別準確率。本文系統地研究瞭如果平衡模型的深度、寬度和輸入分辨率可以取得最好的處理效果。作者最終使用了一個簡單高效的複合係數去平衡模型的深度、寬度和輸入分辨率,訓練的模型效果超過了mobilenet和resnet。

作者又使用神經網絡結構搜索方法得到了一系列的模型EfficientNets,比之前的CNN更加準確高效。特別是EfficientNet-B7取得了SOTA的效果,在ImageNet上Top-1準確率爲84.4%,Top-5準確率是97.1%,同時比之前最好的CNN參數量少8.4倍,推理速度快6.1倍。EfficientNet在其他數據集上也取得了更快更好的效果。

1 簡介

擴充CNN模型的一般方法是增加模型的層數和寬度,也可以增加輸入圖像的分辨率。之前的方法一般是增加這三個因素中的某一個。如果想同時增加多個因素,那麼就需要人爲進行認真的參數挑戰,否則可能無法取得最優的處理效果。

作者想探討,能不能按照某種規則擴充模型一定可以取得更好的處理效果?作者通過實驗發現了這樣的規則,稱之爲複合縮放法。作者按照固定的縮放係數集統一縮放網絡的深度、寬度和輸入圖像的分辨率。

在這裏插入圖片描述複合縮放法能夠起作用的原因是,如果輸入圖像的分辨率變大,那麼需要更深的網絡以增加感受野的尺寸,需要使用更多的通道以捕獲更多細粒度的特徵。作者驗證了這種複合縮放法在mobilenet和resnet上都取得了更好的識別效果,同時結合自動模型搜索法得到了一系列的模型,稱之爲EfficientNets,實驗結果表明了EfficientNets在參數量更少的情況下有效提升了分類效果。

在這裏插入圖片描述

2 複合模型縮放

2.1 模型縮放描述

卷積層ii可以表示成函數:Yi=Fi(Xi)Y_i = F_i(X_i),其中XiX_i是輸入Tensor,形狀爲<Hi,Wi,Ci><H_i,W_i,C_i>HiH_iWiW_i表示數據的空間尺寸,CiC_i表示數據的通道數;YiY_i是輸出Tensor,FiF_i是映射函數。因此,一個卷積網絡N可以表示成一系列網絡層的組合:
在這裏插入圖片描述實際設計的網絡,一般都包含多個stage且每個stage具有相同的結構,如ResNet包含5個stage,每個stage有相同的結構。所以,可以把卷積網絡定義爲:
在這裏插入圖片描述FiLiF_i^{L_i}表示在stage i中層FiF_i被重複使用LiL_i次。<Hi,Wi,Ci><H_i,W_i,C_i>表示層ii的輸入Tensor X的形狀。圖2(a)給出的是有代表性的卷積網絡的示意圖,隨着網絡深度的加深,空間分辨率尺寸在逐漸減小,但網絡層的channel數卻在逐漸增加。

傳統的卷積網絡設計主要關注於尋找最佳網絡結構FiF_i,但模型縮放則是在不改變模型結構FiF_i的情況下擴充模型的深度(LiL_i)、寬度(Ci)(C_i)和分辨率(Hi,Wi)(H_i,W_i)模型縮放可以認爲是一個尋優的問題,即在給定計算資源限制的情況下聯合調整模型的寬度、深度和分辨率,達到最大化模型準確率的目的
在這裏插入圖片描述w,d,rw,d,r是網絡寬度、深度和分辨率縮放的係數,Fi^,Li^,Hi^,Wi^,Ci^\hat{F_i},\hat{L_i},\hat{H_i},\hat{W_i},\hat{C_i}是預先定義的基礎網絡的參數。

2.2 模型縮放的維度

深度:許多卷積網絡都在擴充網絡的深度,主要的原因是,更深的網絡可以捕獲更加豐富和複雜的特徵,可以更好的泛化到新的任務。然而,網絡層數越多,越容易因爲梯度彌散難以訓練。雖然最近的新技術,skip connection和BN的應用在一定程度上規避了梯度彌散,但是對於特別深的網絡,仍然會存在梯度彌散問題。例如,ResNet-1000和ResNet-101的準確率很接近。圖3中間的圖,給出了擴充不同倍數的網絡層時的模型準確率,表明了對於特別深的網絡仍然存在一定程度的梯度彌散現象。

寬度:對於比較小的網絡,往往擴充網絡的寬度,更寬的網絡可以捕獲更加細粒度的特徵,也更容易訓練。但是,特別寬的淺層網絡卻難以捕獲高層語義特徵。圖3左圖的實驗表明了隨着網絡寬度的增加,模型的準確率在趨向於飽和。

分辨率:輸入圖像的分辨率越高,越已於捕獲更多細粒度的特徵,但是圖3右圖顯示準確率的確隨着分辨率的增大而增加,但是分辨率過高時準確率也會趨向於飽和。

在這裏插入圖片描述基於上述的分析和實驗驗證,我們可以得出觀察1 — 單獨縮放模型的任一維度(寬度/深度/分辨率)可以改善模型的準確率,但是模型越大,縮放獲得的準確率提升越小。

2.3 組合縮放

作者認爲應該聯合考慮模型的深度、寬度和輸入圖像的分辨率進行縮放。圖4給出了在不同的寬度和輸入分辨率情況下,擴充寬度信息帶來的準確率的提升。如果在不改變深度和分辨率的情況下,單獨擴充網絡的寬度會很快的飽和。但是再相同計算量的情況下,如果擴充了深度和分辨率時,再擴充寬度帶來了準確率提升更大。

在這裏插入圖片描述基於圖4的分析,作者得到了第二個觀察 — 卷積網絡擴充時應該聯合考慮模型的深度、寬度和分辨率。

作者提出了聯合縮放法,使用一個聯合係數ϕ\phi統一縮放模型的寬度、深度和分辨率
在這裏插入圖片描述α,β,γ\alpha,\beta,\gamma是通過網格搜索得到的常數,ϕ\phi是一個超參數,用於控制可用於模型縮放的資源擴充量。α,β,γ\alpha,\beta,\gamma設定了分配多少比例的擴充資源給模型的寬度、深度和分辨率。常規卷積操作的計算量正比於d,w2,r2d,w^2,r^2,也就是說網絡深度加倍會使用兩倍的計算資源,但是網絡的寬度和輸入分辨率加倍會使用4倍的計算資源。按照公式3擴充卷積網絡,所使用的計算資源約等於擴充了(αβ2γ2)ϕ(\alpha*\beta^2*\gamma^2)^{\phi}倍,本文中作者限制(αβ2γ2)2(\alpha*\beta^2*\gamma^2)\approx2,因此對任意的參數ϕ\phi,所使用的計算資源約爲原來的2ϕ2^{\phi}

3 EfficientNet結構

由於模型縮放不會改變基礎網絡的層操作Fi^\hat{F_i},因此使用一個好的基礎網絡也是很關鍵的。作者在已有的卷積網絡結構上應用了模型擴充技術,同時作者也設計了新的適用於移動端的基礎網絡,稱之爲EfficientNet。

按照論文MnasNet: Platform-aware
neural architecture search for mobile的思路,作者通過同時優化準確率和FLOPS來尋找最優網絡結構。作者使用了和參考論文相同的搜索空間,優化目標是ACC(m)×[FLOPS(m)/T]wACC(m) \times [FLOPS(m)/T]^w,ACC(m)和FLOPS(m)表示模型m的準確率和計算量,T表示目標計算量,w = -0.07表示用於控制準確率和計算量平衡的超參數。這裏優化目標使用的是Flops而不是延遲時間,是因爲優化目標不是針對專門的硬件資源設計網絡結構。搜索結果得到了一個高效的網絡,稱之爲EfficientNet-B0。由於和參考論文使用了相同的搜索空間,所以得到的模型和參考論文得到的MnasNet很像,除了EfficientNet-B0更大一些(這是因爲這裏設置的目標Flops爲400M,要比參考論文使用的更大)。EfficientNet-B0的結構如表1所示,其主要構件塊是MBConv,同時也使用了squeeze-and-excitation優化。

在這裏插入圖片描述得到基礎網絡EfficientNet-B0後,作者使用了複合縮放技術擴充網絡,主要包括兩個步驟:

  • 第一步,固定ϕ\phi=1,使用兩倍的計算資源,網格化搜索得到α,β,γ\alpha,\beta,\gamma。按照(αβ2γ2)2(\alpha*\beta^2*\gamma^2)\approx2的限制,最終尋得的最優參數爲α=1.2,β=1.1,γ=1.15\alpha = 1.2,\beta = 1.1,\gamma = 1.15
  • 第二步,固定α,β,γ\alpha,\beta,\gamma,調整ϕ\phi的值,得到了網絡EfficientNet-B1到B7。

如果直接搜索α,β,γ\alpha,\beta,\gamma的值,有可能可以得到一個更好的模型。但是,搜索的代價很大,按照這種分步驟搜索的方式在搜索代價較小的情況下得到了相對較好的網絡。

4 實驗

4.1 對MobileNet和ResNet應用複合縮放

在這裏插入圖片描述表3的結果表明,相比於單獨縮放任一系數,聯合縮放可以取得更好的準確率,證明了聯合縮放法的有效性。

4.2 EfficientNet在ImageNet數據集上的分類結果

在這裏插入圖片描述在這裏插入圖片描述

對比各大小的EfficientNet,都是在參數量和計算量更小的情況下取得了和已有模型相當的準確率。

在這裏插入圖片描述在CPU上對比模型的推理時間,可以發現Efficient推理速度更快。

4.3 遷移到其他數據集上的表現

在這裏插入圖片描述在這裏插入圖片描述在這裏插入圖片描述

5 總結

作者提出了聯合縮放法,同時縮放模型的寬度、深度和輸入分辨率,同時通過網絡搜索得到了性能更優的基礎網絡EfficientNet-B0,結合聯合縮放法得到了一系列的模型EfficientNet-B1到B7,實驗證明了聯合縮放法的有效性,也證明了相比其他已有的卷積網絡,EfficientNet-B1到B7可以在參數量更少、計算量更小的情況下取得相當的識別效果。

發佈了133 篇原創文章 · 獲贊 68 · 訪問量 13萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章