1. 介紹
分類性能的提升往往會轉化為各種應用領域中顯著的質量提升,深度卷積架構的架構改進可用于提高大多數其他計算機視覺任務的性能,這些任務越來越依賴于高質量的學習視覺特征。在 AlexNet 功能無法與手工設計、制作的解決方案競爭的情況下,網絡質量的改進為卷積網絡帶來了新的應用領域。
GoogleNet 使用了大約 700 萬個參數,比其前身 AlexNet(使用 6000 萬個參數)減少了 9 倍。此外,VGGNet 使用的參數比 AlexNet 多大約 3 倍。
Inception 架構的復雜性使得對網絡進行更改變得更加困難。如果單純地擴展架構,則很大一部分計算收益可能會立即丟失。如果認為有必要增加某些 Inception 式模型的容量,那么只需將所有? 濾波器組大小? 的數量加倍的簡單變換將導致計算成本和參數數量增加 4 倍。
2. 通用設計原則
避免表示瓶頸,尤其是在網絡早期。前饋網絡可以用從輸入層到分類器或回歸器的非循環圖來表示。這為信息流定義了明確的方向。對于網絡中的任何一個分割(即將網絡分成兩部分,一邊是輸入,一邊是輸出),都可以評估通過該分割的信息量。
從輸入到輸出,表示的大小(即特征的數量或維度)應該逐漸減小,直到達到用于特定任務的最終表示。這種逐漸減小的過程有助于網絡逐步提取和精煉關鍵信息,同時避免不必要的復雜性。理論上,信息內容不能僅僅通過表示的維度來評估,因為它拋棄了相關結構等重要因素;維度僅提供信息內容的粗略估計。
更高維度的表示更容易在網絡中進行 局部處理。增加卷積網絡中每個圖塊的激活可以實現更多獨立的特征。由此產生的網絡將訓練得更快。?
空間聚合(如池化或者更復雜的聚合函數)可以在較低維度的嵌入上完成,而不會損失太多或任何表示能力。在執行更分散的(例如 3 × 3)卷積之前,可以在空間聚合之前減小輸入表示的維度,而不會產生嚴重的不利影響。如果在 空間聚合 上下文中使用輸出,則相鄰單元之間的強相關性會導致降維期間的信息損失會較少。
平衡網絡的寬度和深度。通過平衡? 每個階段 濾波器的數量和網絡的深度可以達到網絡的最佳性能。增加網絡的寬度和深度有助于提高網絡質量。然而,如果兩者并行增加,則可以達到恒定計算量的最佳改進。
一個階段可以是一個卷積層或者一組卷積層。
3.?使用大卷積核尺寸分解卷積
由于 Inception 網絡是完全卷積的,因此每個權重對應于每次激活的一次乘法。因此,計算成本的任何減少都會導致參數數量的減少。這意味著通過適當的因子分解,我們最終可以獲得更多 解耦 的參數,從而加快訓練速度。此外,我們可以利用計算和內存節省來增加網絡的濾波器組大小,同時保持在單臺計算機上訓練每個模型副本的能力。
解耦(Decoupling)是指降低系統組件之間的依賴程度。
解耦是希望減少各個模塊之間的依賴關系,使模塊間盡可能的獨立存在?
3.1?因式分解為更小的卷積
具有較大空間濾波器(例如 5 × 5 或 7 × 7)的卷積在計算方面往往會非常昂貴。例如,在輸入數據有 m 個特征圖或通道時 使用 n 個卷積核的 5 × 5 卷積的計算成本是具有相同數量卷積核的 3 × 3 卷積的 25?/ 9 = 2.78 倍。當然,5×5 卷積核可以捕獲較早層中較遠的單元激活之間的信號之間的依賴關系,因此卷積核幾何尺寸的減小會導致表達能力的巨大損失。
3.2 空間分解為不對稱卷積
通過使用非對稱卷積,可以做得比 2 × 2 更好,例如n × 1。例如,使用 3 × 1 卷積后跟 1 × 3 卷積相當于滑動具有與 3 × 3 卷積相同的感受野的兩層網絡。
如果輸入和輸出 卷積核 的數量相等,那么對于相同數量的輸出 卷積核 ,兩層解決方案的成本仍然要低 33%。相比之下,將一個 3 × 3 卷積分解為兩個 2 × 2 卷積僅節省 11% 的計算量。
理論上,我們可以更進一步,認為可以用 1 × n 卷積,然后是 n × 1 卷積來替換任何 n × n 卷積,并且隨著 n 的增長,計算成本節省會急劇增加。
n × n 卷積分解后的 Inception 模塊
為 17 × 17 的特征圖選擇 n = 7
在中等網格大小上(在 m×m 特征圖上,其中 m 范圍在 12 到 20 之間)給出了非常好的結果。在這個層面上,通過使用 1 × 7 卷積,然后使用 7 × 1 卷積可以獲得非常好的結果。
4. 輔助分類器的實用性
引入了輔助分類器的概念來提高非常深的網絡的收斂性。最初的動機是將有用的梯度推到較低層,使它們立即有用,并通過解決非常深的網絡中的梯度消失問題來提高訓練期間的收斂性。在訓練接近結束時,具有輔助分支的網絡開始超過沒有任何輔助分支的網絡的準確性,并達到稍高的平臺。
5.?有效減小網格(特征圖)尺寸
在傳統的卷積網絡中,通常會使用某種池化操作(如最大池化或平均池化)來減小特征圖的網格大小。在應用最大池化或平均池化之前,通常需要擴展網絡濾波器的激活維度,以避免所謂的“表達瓶頸”。
例如,從一個具有 個 卷積核 的?
?網格開始,如果希望得到一個具有?
?個 卷積核 的
?網格,首先需要在更大的網格上進行一個步長為1的卷積,使用?
?個卷積核,然后應用一個額外的池化步驟。這意味著整體的計算成本主要由在較大網格上使用?
?操作的昂貴卷積所決定。
使用卷積替代池化:
一種可能的解決方案是使用卷積來替代池化,這可以將計算成本減少到??,即減少到原來的四分之一。然而,這種替代方案會導致表示的整體維度降低到??
,從而導致網絡表達能力下降(即出現表達瓶頸)。