DeepMind:誰說卷積網絡不如ViT?
深度學習的早期成功可歸功于卷積神經網絡(ConvNets)的發展。近十年來,ConvNets 主導了計算機視覺基準測試。然而近年來,它們越來越多地被 ViTs(Vision Transformers)所取代。
很多人認為,ConvNets 在小型或中等規模的數據集上表現良好,但在那種比較大的網絡規模的數據集上卻無法與 ViTs 相競爭。
與此同時,CV 社區已經從評估隨機初始化網絡在特定數據集 (如 ImageNet) 上的性能轉變為評估從網絡收集的大型通用數據集上預訓練的網絡的性能。這就提出了一個重要的問題:在類似的計算預算下,Vision Transformers 是否優于預先訓練的 ConvNets 架構?
本文,來自 Google DeepMind 的研究者對這一問題進行了探究,他們通過在不同尺度的 JFT-4B 數據集(用于訓練基礎模型的大型標簽圖像數據集)上對多種 NFNet 模型進行預訓練,從而獲得了類似于 ViTs 在 ImageNet 上的性能。
論文地址:https://arxiv.org/pdf/2310.16764.pdf
本文考慮的預訓練計算預算在 0.4k 到 110k TPU-v4 核計算小時之間,并通過增加 NFNet 模型家族的深度和寬度來訓練一系列網絡。本文觀察到這一現象,即 held out 損失與計算預算之間存在 log-log 擴展率(scaling law)。
例如,本文將在 JFT-4B 上預訓練的 NFNet 從 0.4k 擴展到 110k TPU-v4 核小時(core hours)。經過微調后,最大的模型達到了 90.4% 的 ImageNet Top-1,在類似的計算預算下與預訓練的 ViT 相競爭。
可以說,本文通過評估按比例擴大的 NFNets,挑戰了 ConvNets 在大規模數據集上表現不如 ViTs 的觀點。此外,在足夠的數據和計算條件下,ConvNets 仍然具有競爭力,模型設計和資源比架構更重要。
看到這項研究后,圖靈獎得主 Yann LeCun 表示:「計算是你所需要的,在給定的計算量下,ViT 和 ConvNets 相媲美。盡管 ViTs 在計算機視覺方面的成功令人印象深刻,但在我看來,沒有強有力的證據表明,在公平評估時,預訓練的 ViT 優于預訓練的 ConvNets。」
不過有網友評論 LeCun,他認為 ViT 在多模態模型中的使用可能仍然使它在研究中具有優勢。
來自 Google DeepMind 的研究者表示:ConvNets 永遠不會消失。
接下來我們看看論文具體內容。
預訓練的 NFNets 遵循擴展定律
本文在 JFT-4B 上訓練了一系列不同深度和寬度的 NFNet 模型。
如下圖 2 所示,驗證損失與訓練模型的計算預算呈線性關系,這與使用 Transformer 進行語言建模(Brown et al., 2020; Hoffmann et al., 2022)時觀察到的雙對數(log-log)擴展定律相匹配。最佳模型大小和最佳 epoch 預算(實現最低驗證損失)都會隨著計算預算的增加而增加。
下圖 3 繪制了 3 個模型在一系列 epoch 預算中觀察到的最佳學習率(最大限度地減少驗證損失)。研究團隊發現對于較低的 epoch 預算,NFNet 系列模型都顯示出類似的最佳學習率 ?? ≈ 1.6。然而,隨著 epoch 預算的增加,最優學習率會下降,并且對于大型模型,最優學習率下降得更快。研究團隊表示可以假設最優學習率隨著模型大小和 epoch 預算的增加而緩慢且單調地下降,從而在 2 次試驗內有效地調整學習率。
值得注意的是,圖 2 中一些預訓練模型的表現不如預期。研究團隊認為出現這種情況是因為如果訓練運行被搶占 / 重新啟動,那么數據加載 pipeline 不能保證每個訓練樣本在每個 epoch 都會采樣一次,如果訓練運行多次重新啟動,則可能導致某些訓練樣本采樣次數不足。
NFNet vs ViT
該研究在 ImageNet 上的實驗表明:經過微調的 NFNet 與 Vision Transformer 性能相當。
具體來說,該研究在 ImageNet 上微調了預訓練 NFNet,并繪制了預訓練計算與 Top-1 error 關系圖,如上述圖 1 所示。
隨著計算預算的增加,ImageNet Top-1 準確性不斷提高。其中最昂貴的預訓練模型是預訓練 8 個 epoch 的 NFNet-F7+,ImageNet Top-1 準確率達到了 90.3%,需要大約 110k TPU-v4 核小時進行預訓練和 1.6k TPU-v4 核小時進行微調。此外,如果在微調期間額外引入重復增強(repeated augmentation),那么可以實現 90.4% 的 Top-1 準確率。NFNet 從大規模預訓練中受益匪淺。
盡管 NFNet 和 ViT 兩種模型架構之間存在顯著差異,但預訓練 NFNet 與預訓練 ViT 性能相當。例如,在 JFT-3B 上預訓練 210k TPU-v3 核小時后,ViT-g/14 在 ImageNet 上實現了 90.2% 的 Top-1 準確率,在 JFT-3B 上預訓練超過 500k TPU-v3 核小時后,ViT-G/14 實現了 90.45% 的 Top-1 準確率。
本文評估了這些模型在 TPU-v4 上的預訓練速度,并估計 ViT-g/14 需要 120k TPU-v4 核小時來預訓練,而 ViTG/14 則需要 280k TPU-v4 核小時數,SoViT-400m/14 將需要 130k TPU-v4 核小時數。本文使用這些估計來比較圖 1 中 ViT 和 NFNet 的預訓練效率。研究注意到,NFNet 針對 TPU-v4 進行了優化,在其他設備上評估時表現較差。
最后,本文注意到,預訓練的 checkpoints 在 JFT-4B 上實現了最低的驗證損失,然而微調后并不總能在 ImageNet 上實現最高的 Top-1 準確率。特別是,本文發現,在固定的預訓練計算預算下,微調機制始終傾向于稍大的模型和稍小的 epoch 預算。直觀上來說,更大的模型具有更大的容量,因此能夠更好地適應新任務。在某些情況下,稍大的學習率(在預訓練期間)在微調后也能獲得更好的性能。