來自Google Research:寬模型和深模型學到的是相同的東西嗎?
導讀
提高模型容量可以從寬度和深度著手,但是,寬模型和深模型學到的是相同的東西嗎?用各自適用的場景嗎?
論文連結:https://arxiv.org/abs/2010.15327
提高神經網路效能並使其適應可用計算資源的一個常見做法是調整體系結構的深度和寬度。事實上,流行的神經網路家族,包括EfficientNet, ResNet和Transformers,由一套靈活的深度和寬度的架構組成。然而,除了對準確性的影響之外,對於這些結構設計的基本選擇如何影響模型的理解有限,比如對其內部表示的影響。
在“Do Wide and Deep Networks Learn the Same Things? Uncovering How Neural Network Representations Vary with Width and Depth”這篇文章中,我們通過其隱藏表示和最終輸出,對來自同一結構的寬網路和深度網路之間的相似性進行了系統研究。在非常寬或非常深的模型中,我們在它們的內部表徵中發現了一個典型的塊結構,並在這種現象和模型過引數化之間建立了聯絡。模型之間的比較表明,沒有塊結構的模型在相應層的表示之間表現出顯著的相似性,而包含塊結構的模型表現出高度不同的表示。當在相同的測試集上對寬和深模型進行評估時,內部表示的這些屬性反過來轉化為在類和樣本級別上的不同的系統性錯誤。
比較表示相似性與CKA
通過利用我們先前開發的Centered Kernel Alignment (CKA)技術,我們擴充套件了之前的分析表示的工作,該技術提供了一個健壯的、確定任意一對神經網路層所學習的表示之間的相似性的可擴充套件的方法。CKA將兩層的表示(即啟用矩陣)作為輸入,並輸出0(完全不相似)和1(相同的表示)之間的相似性得分。
我們在ResNets家族上應用CKA,使用不同的深度和寬度,在常見的基準資料集上訓練(CIFAR-10和ImageNet),並使用表示熱圖來說明結果。考慮模型的層中每個熱圖的x和y軸,從輸入到輸出,每一項(i, j)是層i和層j之間的CKA相似度評分。
我們使用CKA計算單個模型(即網路1和網路2相同時)和跨模型(即網路1和網路2使用不同的隨機初始化訓練,或具有完全不同的架構時)中所有層對的表示相似性。
下面是我們在一個深度26,寬度乘法器1的ResNet中比較每一層和其他每一層的表現時產生的熱圖的一個例子。在這裡使用的設計約定中,規定的深度僅指網路中卷積層的數量,但我們分析了現有的所有層,寬度乘法器適用於每個卷積中濾波器的數量。請注意熱圖中的checkerboard模式,它是由體系結構中的跳躍連線(層之間的直接連線)引起的。
Block結構的出現
在更深或更寬網路的表示熱圖中,最突出的是出現了一組具有高度相似表示的連續層,這些層在熱圖中以黃色方塊的形式出現(即具有高CKA分數的區域)。這種現象,我們稱之為“block結構”,表明底層在逐步細化網路表示方面可能沒有我們預期的那麼有效。實際上,我們證明了在block結構中任務效能變得停滯不前,並且可以在不影響最終效能的情況下修剪一些底部的層。
塊結構,一個大的,連續的層集具有高度相似的表示-隨著寬度或深度的增加而出現。每個熱圖平面上顯示了單個神經網路中所有層對之間的CKA相似性。雖然它的大小和位置在不同的訓練中可能會有所不同,但塊結構是一種穩健的現象,在較大的模型中始終如一地出現。
通過附加的實驗,我們表明,相比於模型的相對於訓練資料集的大小,塊結構與模型的絕對大小的關係較小。隨著我們減小訓練資料集的大小,塊結構開始出現在更淺更窄的網路中:
隨著網路寬度的增加(沿每一行向右)和資料集大小的減少(沿每列向下),相對模型容量(相對於給定的任務)被有效地膨脹,塊結構開始出現在較小的模型中。
通過進一步的分析,我們還可以證明,塊結構來自於保留和傳播其底層表示的主要主成分。
跨模型比較表示
進一步,我們研究了深度和寬度對不同隨機初始化和不同架構的模型表示的影響,並發現塊結構的存在在這種情況下也有顯著的不同。儘管有不同的架構,但沒有塊結構的寬和深的模型彼此表現出相似的表示,相應的層在模型中大致具有相同的比例深度。然而,當塊結構存在時,它的表示對於每個模型是唯一的。這表明,儘管具有類似的總體效能,但每個帶有塊結構的寬或深的模型從輸入到輸出都有一個唯一的對映。
對於較小的模型(例如ResNet-38 1×),不同初始化的CKA(對角線外)非常類似於單個模型中的CKA(對角線上)。相比之下,更廣泛和更深層次模型(如ResNet-38 10×, ResNet-164 1×)的塊結構內的表示在訓練執行中是非常不同的。
寬和深模型的誤差分析
在探索了廣域和深度模型的學習表示的屬性之後,我們接下來將轉向理解它們如何影響輸出預測的多樣性。我們訓練了不同體系結構的網路群體,並確定每個體系結構配置傾向於在哪個測試集樣本上出錯。
在CIFAR-10和ImageNet資料集上,具有相同平均精度的寬和深模型在樣本級的預測方面仍然顯示出統計上的顯著差異。對於ImageNet上的類級別錯誤,同樣的觀察也成立,寬模型在識別自然場景對應的類方面表現出較小的優勢,而深度網路在商品上相對更準確。
在ImageNet上,每類模型的寬度(y-軸)或深度(x-軸)都有所增加。橙色的點反映了ResNet-83 (1×)兩組50種不同的隨機初始化之間的差異。
結論
在研究深度和寬度對內部表徵的影響時,我們發現了塊結構現象,並證明了它與模型容量的聯絡。我們還表明,寬模型和深模型在類和樣本級別上顯示出系統輸出差異。
英文原文:https://ai.googleblog.com/2021/05/do-wide-and-deep-networks-learn-same.html
- 知識蒸餾:如何用一個神經網路訓練另一個神經網路
- 自學成才的機器學習工程師十誡
- 使用OpenCV來實現自動駕駛中的車道線檢測
- 比監督學習做的更好:半監督學習
- Generalized Focal Loss論文解讀
- PyTorch中的In-place操作是什麼?為什麼要避免使用這種操作?
- 權值衰減和L2正則化傻傻分不清楚?
- 如何將PyTorch Lighting模型部署到生產服務中
- 【論文解讀】ACoL:對抗互補學習,弱監督物體定位方法
- 使用PyTorch來進展不平衡資料集的影象分類
- 在目標檢測中如何解決小目標的問題?
- 來自Google Research:寬模型和深模型學到的是相同的東西嗎?
- 使用SimCLR用對比預訓練模型實現半監督影象分類的程式碼實現
- RepPointv2:使用點集合表示來做目標檢測
- 用不需要手工標註分割的訓練資料來進行影象分割
- 使用合成數據集來做目標檢測:目標檢測的介紹
- 提升小目標檢測的一種新的包圍框相似度度量:Normalized Gaussian Wasserstein Distance
- CB Loss:基於有效樣本的類別不平衡損失
- EfficientNetV2:更小,更快,更好的EfficientNet
- 如何將“複製貼上”嵌入到影象修復中:Shift-Net使用深度特徵重排的影象修復方法