《GhostNet: More Features from Cheap Operations》筆記

GhostNet

Introduction

GhostNet是從模型設計方面精簡卷積神經網絡模型。

Motivation

卷積神經網絡模型得到的特徵中有許多特徵是冗餘的。比如下圖是ResNet-50的第一個殘差塊得到的特徵圖,紅色、綠色和藍色框的特徵圖表現出非常高的相似性。同顏色的下一個特徵圖就像是上一個特徵圖的鏡像(ghost)。而這些相似度高的特徵圖是由不同的卷積核參數計算得到的。作者的想法是,既然這些特徵圖相似,我們可以通過卷積只得到部分的特徵圖,再由得到的特徵圖經過簡單的變換得到其他相似的特徵圖。這樣做既可以減少卷積核,減少模型的參數量,也可以減少模型的運算量。

模型的冗餘特徵

Approach

Ghost Module

作者提出的鏡像模塊是基於卷積操作的。如同上面所說的,作者把原來的卷積層分成兩步。第一步是卷積,只是輸出的通道數減少了。假設原來的通道數是nn,現在的通道數是m(mn)m (m \le n),得到的特徵圖用YY'表示。

第二步,用YY'生成其他特徵圖:
yij=Φi,j(yi),i=1,,m,j=1,,s y_{ij} = \Phi_{i,j}(y'_i), \forall i = 1,\cdots,m, j=1,\cdots,s
其中yiy'_i表示YY'第i個特徵圖。Φi,j\Phi_{i,j}表示第j個線性操作,用於生成yiy'_i的第j個鏡像特徵圖yijy_{ij}。最後一個操作Φi,s\Phi_{i,s}是一個自身映射操作,用於保留卷積的輸出結果。所有的yijy_{ij}組成最後的輸出。

下圖是鏡像模塊的示意圖:
鏡像模塊
鏡像模塊的主要特徵是每個特徵圖通過線性操作生成自身的鏡像特徵圖,特徵圖和鏡像特徵圖組合成輸出,輸出的通道數和原來的卷積層輸出的通道數一致。

Ghost Bottlenecks

Ghost Bottlenecks的作用和殘差塊的作用一樣,結構也和殘差塊的結構類似。Ghost Bottlenecks的結構如下圖所示:
Ghost Bottlenecks

左邊的輸入輸出大小不變,右邊進行了下采樣,用在網絡中不同階段的連接處。

GhostNet

GhostNet是由鏡像模塊組成的網絡。GhostNet是模仿MobileNetV3而設計的,主要區別是MobileNetV3的卷積模塊換成了鏡像模塊。GhostNet的網絡結構如下表所示
GhostNet網絡結構

Experiments

把卷積模塊換成鏡像模塊前後特徵圖學習到的內容如下圖所示
前後對比

圖5是換之前的特徵圖,圖4是換之後的特徵圖。圖4的紅色表示卷積特徵圖,綠色表示鏡像特徵圖。通過對比發現,紅色的特徵圖中相似的特徵少了,圖4學習到的內容和圖5學習到的內容差不多。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章