Pytorch實作系列 — GhostNet

mz bai
Aug 11, 2024

--

Han et al. 在 (2019, 華為諾亞方舟實驗室、北京大學)提出 GhostNet: More Features from Cheap Operations ,出發點是利用線性轉換壓縮特徵圖中的冗餘特徵圖,達到輕量網路。

爲什麼提這個模型

因為名字很中二、很好記 => 狗斯特網

網路概念

GhostNet以下圖破題,觀察到特徵圖的輸出有許多相似之處,可利用線性轉換互相生成,因此可用該特質壓縮特徵圖中的冗餘特徵圖。

GhostNet idea

Ghost module的下圖可理解為先利用pointwise convolution產生部分特徵圖,再對特徵圖分層作depthwise convolution,最後組合起來。該作法可能的貢獻來自depthwise convolution減輕參數量,以及類似於inception結構帶來的感受野,因為depthwise 的 kernel可以不一樣大小。

換個角度來看,就像depthwise separable convolution的並聯版本。

Ghost module

網路結構

結構上根據stride可分為兩種,跟隨mobilenet的inverted residual bottleneck設計,第一個ghost module會擴大通道數,第二個縮小。

Ghost bottleneck

基於MobileNetV3的結構,同樣有SE跟expansion size。

GhostNet architecture

資料集

GTSRB,一個有兩萬六千多張照片的德國交通號誌辨識資料集,共43種標記。

評估

測試集準確度為88.5%。模型大小為9.82MiB。

中間作了不同版本,如果不共享pointwise convolution,參數量多一百萬,準確度增加1.5%。

設計上最需要注意的大概是ghost的數目s,是否能整除通道數。

ghostnet confusion matrix

實作

參考

--

--

mz bai
mz bai

Written by mz bai

Math is math, math is universal Code is code, code is horrifying unique.

No responses yet