輕量化網(wǎng)絡(luò)模塊GhostNet-More Features from Cheap Operations

介紹

本文是CVPR2020最新出爐的文章,文章主要介紹了新型的輕量化模塊——Ghost模塊。Ghost模塊的核心思想是基于一組固有特征圖,應(yīng)用了一系列成本低廉的線性變換,生成了許多可以充分揭示潛在固有特征信息的幻影(Ghost)特征圖。提出的Ghost模塊可以作為即插即用組件用于升級現(xiàn)有的卷積神經(jīng)網(wǎng)絡(luò)。

? ? ? 作者指出在訓(xùn)練好的神經(jīng)網(wǎng)絡(luò)中包含大量的甚至是冗余的信息來確保對于輸入數(shù)據(jù)的理解,例如圖1中展示的是輸入圖像經(jīng)ResNet50產(chǎn)生的特征圖,里面有許多成對的相似特征圖,像是彼此的幻影。冗余的特征信息是成功的深度神經(jīng)網(wǎng)絡(luò)的重要特征, 除了避免使用多余的特征圖之外,作者傾向于以經(jīng)濟高效的方式將其包含在里面。


Fig.1 特征圖可視化

????????Ghost模塊將普通的卷積層分解為兩個部分,第一部分包含了正常的卷積,但是卷積的數(shù)量會被嚴格控制。給在定第一部分的固有特征圖之后,然后應(yīng)用一系列簡單的線性運算以生成更多特征圖。與普通卷積神經(jīng)網(wǎng)絡(luò)相比,在不更改輸出特征圖大小的情況下,該Ghost模塊中所需的參數(shù)總數(shù)和計算復(fù)雜度均已降低。在Ghost模塊的基礎(chǔ)上,作者構(gòu)建了GhostNet。作者首先在基準神經(jīng)體系結(jié)構(gòu)中替換原始的卷積層,以證明Ghost模塊的有效性,然后在多個基準視覺數(shù)據(jù)集上驗證GhostNet的優(yōu)越性。 實驗結(jié)果表明,文章所提出的Ghost模塊能夠在保持相似識別性能的同時降低通用卷積層的計算成本,并且GhostNets可以在各種任務(wù)上超過MobileNetV3 [16]等先進的有效深度模型。 在移動設(shè)備上實現(xiàn)快速的前向推理。


模型介紹

Ghost模塊


Fig.2 Ghost模塊

作者首先對于傳統(tǒng)的卷積進行了計算量的分析,傳統(tǒng)的卷積中,設(shè)輸入特征圖為CxHxW,其中c代表通道數(shù)量,H和W分別代表輸入特征圖的高和寬,卷積核的尺寸為CxkxkxN,其中k指的是卷積核的大小,而N指的是輸出特征圖的通道數(shù),則可以得到輸出的特征圖尺寸為:NxH'xW'。總的計算量為H'xW' x k^2 x N x C。下面來著重講一下Ghost模塊是如何進行卷積的。首先,輸入的特征圖也是CxHxW,Ghost模塊先利用通道數(shù)是m的正常卷積對特征圖進行卷積,此時的特征圖的尺寸是H‘ x W' x m。接下來就是將這個特征圖的m個通道分別進行線性的映射,采用的也是卷積。這里有一個非常重要的參數(shù)s,這個s代表的是這m個通道分別被線性映射幾次,作者指出這里的線性映射是(s-1)次,為什么是(s-1)次呢,作者這里是將m個通道在堆疊到映射之后的特征圖上,如圖2所示。由于這里對于m個通道進行分別的卷積,所以使得Ghost模塊中的線性映射具有很大的多樣性。

? ? ? ? 那如何計算Ghost模塊和普通卷積之間的計算量的區(qū)別呢,如圖3所示。


Fig.3

圖3中的上下兩個公式代表的是計算量的壓縮比例和參數(shù)量的壓縮比例,如圖可以看出,Ghost模塊相較于普通的卷積,壓縮比例都是s,這個s就是我們前面提到的超參數(shù)。,而d代表的是對m個通道進行分別線性映射時的核的大小。

Ghost bottleneck


Fig.4 Ghost bottleneck

????????在Ghost模塊的基礎(chǔ)上,作者搭建了Ghost bottleneck來建立輕量化的模型。如圖4所示。第一個Ghost模塊用作擴展層,增加了通道數(shù)。作者將輸出通道數(shù)與輸入通道數(shù)之比稱為擴展比。第二個Ghost模塊減少了通道數(shù),然后與輸入進行相加。BN和Relu應(yīng)用在了每個網(wǎng)絡(luò)模塊后,除了第二個Ghost模塊(參考了Mobilenetv2的建議)。上述是針對于步長為1的情況,對于步長為2的情況,在兩個Ghost模塊之間插入了stride = 2的深度卷積。 在實踐中,Gh為了提高效率,兩個Ghost模塊間插入的是點卷積。

寬度乘數(shù)

????????盡管原文中表1(原文是表7,不知道是不是作者筆誤)提供的GhostNet網(wǎng)絡(luò)已經(jīng)能夠提供一個低延時和有準確率保證的網(wǎng)絡(luò),但是某些場景下,應(yīng)該需要更小更快或者是更高準確率的網(wǎng)絡(luò),為了使網(wǎng)絡(luò)適應(yīng)這些情況,作者設(shè)計了一個alpha因子,稱作寬度乘數(shù)。簡單地在每一層上均勻地將因子α乘以通道數(shù),用來改變整個網(wǎng)絡(luò)的寬度。寬度乘數(shù)可以控制模型的大小,并且以α的平方的比例來減少計算量。通常小的α?xí)械偷难舆t和低的準確率,反之亦然。

實驗結(jié)果

? ? ? ? 作者首先用建議的Ghost模塊替換原始的卷積層,以驗證其有效性。 然后,將在圖像分類和對象檢測基準上進一步測試使用新模塊構(gòu)建的GhostNet架構(gòu)。

????????作者首先進行實驗來觀察原始特征圖和生成的ghost特征圖之間的重建誤差,以圖一中的紅、綠、藍三對來舉例,特征是經(jīng)過ResNet50的第一個殘差塊提取得到的。將左側(cè)的特征作為輸入,將另一個作為輸出,作者利用一個小的深度卷積濾波器來學(xué)習(xí)映射,即它們之間的線性運算Φ。 卷積濾波器d的大小在1到7的范圍內(nèi),每對具有不同d的MSE(均方誤差)值如圖5所示。在表2中可以發(fā)現(xiàn),所有MSE值都非常小,這表明在深度神經(jīng)網(wǎng)絡(luò)中的特征圖之間存在很強的相關(guān)性,并且這些冗余特征圖可以從多個固有特征圖生成。除了上述實驗中使用的卷積之外,作者指出還可以探索仿射變換和小波變換等其他低成本線性運算來構(gòu)造Ghost模塊。但是卷積是當(dāng)前硬件已經(jīng)很好地支持的一種有效操作,它可以覆蓋許多廣泛使用的線性操作,例如平滑,模糊,運動等。此外,盡管還可以通過學(xué)習(xí)來獲得每個線性運算Φ中濾波器的大小,但是不規(guī)則模塊會降低計算單元(例如CPU和GPU)的效率。因此,作者建議讓Ghost模塊中的d為固定值。


Fig.5


Fig.6

超參數(shù)分析

????????Ghost模塊有兩個超參數(shù),分別是上面說的s,用來產(chǎn)生m=n/s固有特征圖和線性映射中的卷積核dxd的大小。這兩個參數(shù)的影響,作者是在VGG16的基礎(chǔ)上進行實驗的。首先固定s=2,然后測試d={1,3,5,7},圖6表3的結(jié)果是網(wǎng)絡(luò)在CIFAR-10上的表現(xiàn),可以看出d=3的表現(xiàn)最好,這是因為1x1的卷積核無法在特征圖上引入空間信息,而d為5或者是7導(dǎo)致了過擬合核更大的計算量,因此,作者采?。洌剑硜磉M行接下來的有效性和效率的實驗。接下來是固定d=3,然后測試s={2,3,4,5}。實際上,s直接關(guān)系到計算量和網(wǎng)絡(luò)的表現(xiàn),因為大的s導(dǎo)致了更大的壓縮和加速比例(圖3中的公式4,5)圖6表4中的結(jié)果顯示,當(dāng)增加s,無論是速度還是準確率都出現(xiàn)下降,當(dāng)s為2時,代表著VGG16被壓縮了兩倍,作者提出的方法表現(xiàn)比VGG16還要好一點,體現(xiàn)出作者的Ghost模塊的優(yōu)越性。

與SOTA對比

????????作者將VGG16和ResNet56與SOTA的壓縮模型在CIFAR10數(shù)據(jù)集上進行對比,作者的模型可以在達到更高的準確率的同時,減少網(wǎng)絡(luò)的推理速度。結(jié)果展示在原文中的表5。

特征圖可視化

????????盡管生成的特征圖都是基于同一個特征圖產(chǎn)生的,但是它們之間確實有很大的不同,如圖7所示。這意味著生成的特征更加的靈活多變,可以滿足特定任務(wù)的需求。(這里可以看出Ghost其實使得同一個特征圖中不同通道包含了不同的特征信息,增強了模型的表現(xiàn)力)。

Fig.7 特征圖展示

ImageNet 上的分類表現(xiàn)


Fig.7 IimageNet 數(shù)據(jù)集表現(xiàn)

作者按照FLOPs的數(shù)量級將圖7中的表格分為了四類,例如~50,~150等。從結(jié)果中我們可以看到,通常較大的FLOP在這些小型網(wǎng)絡(luò)中會導(dǎo)致更高的準確性,這表明了它們的有效性。并且GhostNet在各種計算復(fù)雜度級別上始終優(yōu)于其他的對比網(wǎng)絡(luò),因為GhostNet在利用計算資源生成特征圖方面更加有效。?

目標檢測


Fig.8 MS COCO數(shù)據(jù)集上目標檢測結(jié)果

????????為了進一步評估GhostNet的泛化能力,作者在MS COCO數(shù)據(jù)集上進行了目標檢測實驗。 作者將拆分出來的trainval35k作為訓(xùn)練數(shù)據(jù),以mAP作為評價的指標。作者采用了 具有特征金字塔網(wǎng)絡(luò)(FPN)的兩階段Faster R-CNN 和一階段的RetinaNet 來作為實驗的框架,而GhostNet被用來作為特征提取器。 作者使用的預(yù)訓(xùn)練模型是在ImageNet上使用SGD訓(xùn)練12個epochs的模型,將輸入圖像的大小調(diào)整為800的短邊和不超過1333的長邊。 圖8顯示了檢測結(jié)果,其中FLOP是使用224×224尺寸的輸入圖像計算出來的。實驗結(jié)果表明GhostNet大大降低了計算成本,無論在RetinaNet還是在Faster R-CNN框架上,都可以達到與MobileNetV2和MobileNetV3相同水準的mAP。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容