卷積網路架構

Inception 模組

Inception 模組是 GoogLeNet 家族的重複構築區塊,它體現了單一的設計哲學:與其強迫網路在每一層只承諾一種濾鏡尺寸,不如讓它平行地透過數種濾鏡尺寸去看輸入,再學習如何組合它們。一個樸素的 Inception 模組讓相同的輸入同時通過四個分支——一個 1x1 卷積、一個 3x3 卷積、一個 5x5 卷積、以及一個 3x3 最大池化——然後沿著通道維度把它們的輸出串接起來。直覺是:物體以多種尺度出現,所以小濾鏡捕捉細部,較大濾鏡捕捉較廣的脈絡,而網路應該能自由運用每一層所需的任何混合比例。

樸素版本太昂貴,因為對許多輸入通道執行 5x5 卷積代價高昂,而串接又會讓通道數暴增。關鍵的工程手法是降維 Inception 模組:在每個昂貴的 3x3 與 5x5 分支之前(以及在池化分支之後)放置一個 1x1 卷積,先把通道數擠壓下來,在較小的表示上做空間卷積,藉此大幅削減計算。這些直接借自網中網的 1x1 卷積,扮演廉價瓶頸的角色,正是它們讓多尺度的想法變得負擔得起。

這種「分裂—變換—合併」(split-transform-merge)的範式——把訊號分支、對每個分支做不同變換、再合併——被證明既高效又準確,並預示了深度學習中反覆出現的想法,包括 ResNeXt 中的分組卷積,甚至 transformer 注意力的多頭結構。歷經各版本,這個模組被精煉:Inception-v2 與 v3 把 5x5 分解成兩個 3x3 卷積,並進一步把 n×n 卷積分解成 1×n 再接 n×1,加入批次正規化(batch normalization),並使用標籤平滑;Inception-v4 與 Inception-ResNet 則把這個模組與殘差連接結合。貫穿所有版本的不變者,是廉價、平行、多尺度特徵萃取的哲學。

這個俏皮的名字來自電影《全面啟動》(Inception)與「我們得鑽得更深」的迷因,外加向先前的網中網論文致意。那些 1x1 瓶頸並非裝飾;少了它們,樸素的多分支串接在計算上將難以承受,所以它們才是承重的關鍵手法。