混合 CNN-Transformer(hybrid CNN-transformer)
混合 CNN-Transformer 刻意把兩種架構結為連理,讓彼此補上對方的弱點。卷積擅長便宜、局部、平移等變的特徵抽取,但感受野有限且固定;自注意力能建模長程、依內容而定的關係,卻昂貴且缺乏內建的空間先驗。混合的點子很簡單:讓卷積去做早期、局部、高解析度的工作,讓注意力去做全域推理,於是同時取得局部性與效率,以及全域脈絡。
最常見也最經得起考驗的形式是卷積莖(convolutional stem):把 ViT 那單一的線性圖塊嵌入,換成幾層小卷積,將影像下採樣成詞元格。這在輸入端注入了局部性與平移等變性,而且如 Xiao 等人(2021)在《Early Convolutions Help Transformers See Better》中所示,它大幅穩定了最佳化——混合莖能容忍更大的學習率、對超參數遠不那麼敏感、收斂也比原始線性切圖塊更快。它是對樸素 ViT 最便宜又可靠的升級之一。
在莖之外,混合模型更深地交織這兩種運算子。像 CvT 這樣的網路在詞元與查詢/鍵/值投影裡加入卷積;LeViT 用卷積金字塔換取快速推論;MobileViT 與 EdgeNeXt 把行動端卷積區塊與 Transformer 區塊融合以求裝置端效率;而 CoAtNet 把卷積階段堆在前、注意力階段堆在後,主張卷積在資料少時泛化較好、而注意力容量較高,因此把它們依序排列能兼取兩者之長並優雅地擴展。
底層的原理是一個「偏好 vs 容量」的取捨。純 ViT 內建偏好極少、需要規模;純 CNN 內建偏好強、卻在全域建模上有天花板。混合模型讓設計者按資料預算與任務需求,精確地調入恰到好處的卷積先驗——這也是為什麼在中小資料量的區制、以及受效率約束的部署中,混合 CNN-Transformer 常常是最強的實務選擇。
一個微妙的陷阱:卷積的位置資訊會透過零填補(zero-padding)洩漏,所以有些混合模型其實「免費」從卷積層得到了位置線索、需要較少的顯式位置編碼。如果你忘了卷積莖也在編碼位置,消融實驗(ablation)可能因此誤導你。