今天小編分享的科技經驗:13層網絡拿下83%精度,華為諾亞新型神經網絡架構VanillaNet「簡約」到極致,歡迎閱讀。
機器之心專欄
機器之心編輯部
深度學習模型架構越復雜越好嗎?
自過去的幾十年裡,人工神經網絡取得了顯著的進展,這歸功于一種理念:增加網絡的復雜度可以提高性能。從 AlexNet 引爆了深度學習在計算機視覺的熱潮後,研究者們為了提升深度網絡的性能,精心地設計出了各種各樣的模塊,包括 ResNet 中的殘差,ViT 中的注意力機制等。然而,盡管深層的復雜神經網絡可以取得很好的性能,但他們在實際應用中的推理速度往往會受到這些復雜操作的影響而變慢。
來自華為諾亞、悉尼大學的研究者們提出了一種極簡的神經網絡模型 VanillaNet,以極簡主義的設計為理念,網絡中僅僅包含最簡單的卷積計算,去掉了殘差和注意力模塊,在計算機視覺中的各種任務上都取得了不俗的效果。13 層的 VanillaNet 模型在 ImageNet 上就可以達到 83% 的精度,挑戰了深度學習模型中復雜設計的必要性。
論文地址:https://arxiv.org/abs/2305.12972
代碼地址:https://github.com/huawei-noah/VanillaNet
極簡網絡的架構設計
圖 1. 6 層的 VanillaNet 結構示意圖
圖 1 展示了 6 層的 VanillaNet 的結構,它的結構十分簡潔,由 5 個卷積層,5 個池化層,一個全連接層和 5 個激活函數構成,結構的設計遵循 AlexNet 和 VGG 等傳統深度網絡的常用方案:分辨率逐漸縮小,而通道數逐漸增大,不包含殘差,自注意力等計算。
然而,如此簡單的神經網絡結構真的可以達到 SOTA 的精度嗎?從過往的經驗來看,AlexNet 和 VGG 等網絡由于難以訓練,精度低等特性早已被抛棄。而如何提升這類網絡的精度,是一個需要解決的難關。
極簡網絡的訓練方案
作者認為,VanillaNet 的瓶頸主要在于由于其層數少帶來的非線性差的問題,作者基于此觀點,首先提出了深度訓練策略來解決這一問題。
針對 VanillaNet 中的一個卷積層,深度訓練策略提出将其拆分為兩個卷積層,從而增加其非線性,然而,将一層拆抽成兩層會顯著增加網絡的計算量和復雜度,因此,作者提出只需在訓練時增加網絡層數,在推理時将其融合即可。具體來說,被拆分為兩層的卷積會使用如下的激活函數:
是由一個傳統非線性激活函數(如 ReLU 等)和恒等映射加權得到。在網絡訓練的初始階段,非線性激活函數會占主導地位,使得網絡在開始訓練時具有較高的非線性,在網絡訓練的過程中,恒等映射的權值會逐漸提升,此時該激活函數會逐漸變為線性的恒等映射,通過以下公式簡單推導:
不具有非線性激活的兩個卷積層就可以被融合為一層,從而達到了 " 深層訓練,淺層推理 " 的效果。
此外,作者還提出了一種基于級數啟發的激活函數,來進一步增加網絡非線性,具體的,假設為任意現有的非線性激活函數,級數激活函數通過對激活函數進行偏置和加權,得到多個激活函數的疊加,從而使得單個激活函數具有更強的非線性:
作者對這一形式又進行了改進,使得該激活函數可以學習到全局信息而非單個輸入點的信息:
作者認為,可以通過提出這兩個改進方案,增加網絡的非線性,從而使得極簡網絡也具有媲美甚至超越復雜網絡的精度。
極簡網絡的威力
為了證明 VanillaNet 的有效性,作者在計算機視覺的三大主流任務:影像分類、檢測和分割上進行了實驗。
作者首先驗證了提出的深度訓練方案和級數激活函數的有效性:
表 1 極簡網絡在影像分類的性能
從上表中可以看到,所提出的兩個方案可以大幅提升 VanillaNet 的精度,在 ImageNet 上有數十個點的提升,此外,作者還在 AlexNet 這種傳統網絡上也進行了實驗,效果提升依舊十分驚豔,這證明了簡單的網絡設計只要通過精心的設計和訓練,仍然具有強大的威力。而對于 ResNet50 這類復雜網絡來說,本文提出的設計方案收效甚微,說明這類方案對于簡單的網絡更為有效。
表 2 極簡網絡在影像分類的性能
殘差模塊在 VanillaNet 這種簡單的網絡中是否還奏效?作者同樣針對這一問題進行了實驗,實驗表明,不管是采用 ResNet 本身的殘差方案還是改進後的 PreAct-ResNet 殘差方案,對于 VanillaNet 來說都沒有提升,這是否說明了殘差網絡不是深度學習的唯一選擇?這值得後續研究者們的思考。作者的解釋是由于 VanillaNet 的深度較少,其主要瓶頸在于非線性而非殘差,殘差反而可能會損害網絡的非線性。
接下來,作者對比了 VanillaNet 和各類經過復雜設計的網絡在 ImageNet 分類任務上的精度。
表 3 極簡網絡在影像分類的性能
可以看到,所提出的 VanillaNet 具有十分驚豔的速度和精度指标,例如 VanillaNet-9 僅僅使用 9 層,就在 ImageNet 上達到了接近 80% 的精度,和同精度的 ResNet-50 相比,速度提升一倍以上(2.91ms v.s. 7.64ms),而 13 層的 VanillaNet 已經可以達到 83% 的 Top-1 準确率,和相同精度的 Swin-S 網絡相比速度快 1 倍以上。盡管 VanillaNet 的參數量和計算量都遠高于復雜網絡,但由于其極簡設計帶來的優勢,速度反而更快。
圖 2 極簡網絡在影像分類的性能
圖 2 更直觀的展示了 VanillaNet 的威力,通過使用極少的層數,在 batch size 設定為 1 的情況下,VanillaNet 可以達到 SOTA 的精度和速度曲線。
表 4 極簡網絡在檢測和分割任務的性能
為了進一步顯示 VanillaNet 在不同任務的能力,作者同樣在檢測和分割模型上進行了實驗,實驗表明,在下遊任務上,VanillaNet 也可以在同精度下具有更好的 FPS,證明了 VanillaNet 在計算機視覺中的潛力。
總結來說,VanillaNet 是一種十分簡潔但強大的計算機視覺網絡架構,使用簡單的卷積架構就可以達到 SOTA 的性能。自從 Transformer 被引入視覺領網域後,注意力機制被認為是十分重要且有效的結構設計,然而 ConvNeXt 通過更好的性能重振了卷積網絡的信心。那麼,VanillaNet 是否可以引發無殘差網絡、淺層網絡等設計 " 文藝復興 " 的浪潮?讓我們拭目以待。
© THE END
投稿或尋求報道:[email protected]