卷積網路架構

EfficientNet

EfficientNet(Tan 與 Le,Google,2019)處理一個先前工作只憑臨機方式對待的問題:當你有更多算力、想要一個更大更準確的模型時,你該把網路加深、加寬、還是餵給它更高解析度的影像?EfficientNet 的洞見是:這三個維度並非彼此獨立,應該以均衡的方式一起縮放。如果你提高輸入解析度,你也會想要更多層來增長感受野、更多通道來捕捉更細的紋理,否則那多出來的解析度就浪費了。論文把這形式化為複合縮放(compound scaling):選一個單一係數 phi,把深度、寬度與解析度依某個常數的 phi 次冪縮放,使三者以固定、有原則的比例一起成長。

這個方法有兩個階段。首先,藉由同時針對準確率與效率最佳化的神經架構搜尋,找出一個稱為 EfficientNet-B0 的小型基線網路;它主要由 MobileNetV2 風格的反向殘差區塊(MBConv)加上壓縮與激發注意力構築而成。其次,那個固定的基線依複合規則被放大,產生 B1 到 B7 的家族,一個比一個更大更準確。控制深度/寬度/解析度分配的常數,在 B0 上以一次小型網格搜尋找出後即重複使用。這給出一個乾淨、可重現的攀爬準確率—效率前緣的配方,而非逐一手動調整每個模型尺寸。

結果是在「準確率對 FLOPs」與「準確率對參數」的帕雷托前緣(Pareto frontier)上的可觀進展:EfficientNet 模型以少數倍的參數與運算量,追平了先前最先進網路的準確率。後來的修訂版 EfficientNetV2(2021)改善了訓練速度,引入了融合式 MBConv 區塊與一套在訓練中增長影像尺寸的漸進式訓練排程。EfficientNet 歷久的貢獻是均衡複合縮放的原則,它釐清了如何合理地放大模型,並影響了後續架構(包括某些視覺 transformer)的縮放方式。

複合縮放的直覺:把 FLOPs 預算加倍,被拆分為深度乘 alpha、寬度乘 beta、解析度乘 gamma,並讓 alpha 乘 beta 平方乘 gamma 平方維持在約 2(寬度與解析度以二次方進入,因為它們分別縮放兩個空間維度、或每張特徵圖的高與寬),所以每個新預算等級都把三者一起膨脹,而非把一切灌進其中一個。