ICLR 2019 | 用淺度學習訓練深度網路:避開端到端深度學習難題

機器之心發表於2018-10-11

論文地址:https://openreview.net/pdf?id=r1Gsk3R9Fm

ICLR 2019 | 用淺度學習訓練深度網路:避開端到端深度學習難題

摘要:淺度的監督式的具有 1 個隱藏層的神經網路具有一些受人喜愛的性質,使得它們比深度網路更容易被解釋、分析和優化;但它們的表徵能力卻不及深度網路。這裡我們使用了具有 1 個隱藏層的學習問題來序列式地逐層構建深度網路,其能夠繼承淺度網路的屬性。與之前的使用淺度網路的方法相反,我們關注的是有研究認為深度學習具有至關重要的價值的問題。因此,我們在兩個大規模影象識別任務上研究了 CNN:ImageNet 和 CIFAR-10。使用一組簡單的架構和訓練的思路,我們發現求解序列式的具有 1 個隱藏層的輔助問題能使所得到的 CNN 的表現超越 AlexNetImageNet 上的表現。我們還對我們的訓練方法進行了擴充套件,通過求解 2 和 3 個隱藏層的輔助問題來構建單個層,我們得到了一個 11 層的網路,其在 ImageNet 上優於 VGG-11,得到了 89.8% 的 top-5 單個裁剪識別準確度(single crop)。就我們所知,這是首個可擴充套件用於 ImageNet 且可媲美端到端的 CNN 訓練的替代方法。我們進行了廣泛的實驗,研究了其在中間層上的性質。

引言

通過反向傳播演算法在大規模有監督資料上訓練的深度卷積神經網路(CNN)已經成為了大多數計算機視覺任務中的主導方法(Krizhevsky et al., 2012)。這也推動了深度學習在其它領域的成功應用,比如語音識別(Chan et al., 2016)、自然語言處理(Vaswani et al., 2017)和強化學習(Silver et al., 2017)。但是,我們仍然還難以理解深度網路的行為以及它們表現出色的原因。這種困難的一大原因是網路的層中採用了端到端的學習方式。

監督式的端到端學習是神經網路優化的標準方法。但是其也存在一些值得考慮的潛在問題。首先,使用全域性目標就意味著一個深度網路的單箇中間層的最終函式行為只能以間接的方式確定:這些層是如何協同工作以得到高準確度的預測結果的,這一點卻完全不明晰。有一些研究者認為並且通過實驗表明 CNN 能夠學習實現這樣的機制:將不變性逐漸誘導成複雜但不相關的可變性(Mallat, 2016; Yosinski et al., 2015),同時增加資料的線性可分性(Zeiler & Fergus, 2014; Oyallon, 2017; Jacobsen et al., 2018)。

雖然 CNN 已經在實驗中表現出了漸進的線性可分性,但我們仍不清楚這完全是由 CNN 所實現的其它策略所造成的結果,還是所觀察的這些網路的優良表現的一個充分條件。其次,理解淺度神經網路和深度神經網路之間的聯絡是很困難的:儘管已有研究給出了具有 1 個隱藏層的神經網路的泛化、近似或優化結果(Barron, 1994; Bach, 2014; Venturi et al., 2018; Neyshabur et al., 2018; Pinkus, 1999),但這些研究也表明從理論上理解具有多個隱藏層的神經網路要困難得多。最後,在計算和記憶體資源方面,端到端的反向傳播可能很低效(Jaderberg et al., 2016; Salimans et al., 2017)。此外,對於某些學習問題而言,完整梯度的資訊量不及其它方法(Shalev-Shwartz et al., 2017)。

通過求解淺度監督學習問題而實現的 CNN 層的序列學習是一種可替代端到端反向傳播的方法。這一策略可以直接指定每一層的目標,例如通過激勵對錶徵的特定屬性的精細化(Greff et al., 2016),比如漸進的線性可分性。然後,就可以根據對淺度子問題的理論理解來開發用於深度貪婪式方法的理論工具。實際上,Arora et al. (2018)、Bengio et al. (2006)、Bach (2014)、Janzamin et al. (2015) 表明了全域性最優近似,同時還有其它研究表明基於 1 個隱藏層訓練的網路在特定的假設下可以有不同種類的確定結果(Huang et al., 2017; Malach & Shalev-Shwartz, 2018; Arora et al., 2014):逐個貪婪層的方法允許將這些結果級聯成更大的架構。

最後,貪婪方法對讀取完整梯度的依賴要低得多。這有望避免出現類似 Shalev-Shwartz et al. (2017) 中的問題。從演算法角度看,它們不需要儲存大多數的中間啟用,也無需計算大多數的中間梯度。這有益於記憶體有限的場景。不幸的是,之前的研究沒能讓人信服的證明逐層策略可以解決這種型別的大規模問題,而正是這些問題將深度學習帶到了聚光燈下。我們提出了一種可直接簡單地用於 CNN 的策略,並且表明該策略可以擴充套件和分析其構建的表徵。

我們的貢獻如下:(1)首先,我們在第 3 節設計了一種簡單且可擴充套件的用於學習逐層 CNN 的方法。(2)然後,第 4.1 節通過實驗表明:通過序列式地求解具有 1 個隱藏層的問題,我們可以達到與基於 ImageNetAlexNet 相媲美的表現。這為那些研究具有 1 個隱藏層的網路及其序列式訓練的同等網路的文獻提供了支援。(3)我們在第 4.2 節表明逐層訓練的層能表現出漸進的線性可分性。(4)尤其需要指出,我們藉此通過淺度的具有 k 個隱藏層的輔助問題(k>1)來激勵逐層 CNN 層的學習。使用這一方法,我們的序列式訓練的具有 3 個隱藏層的模型的表現能夠達到 VGG-13 的水平(第 4.3 節)。(5)我們提出了一種方法,可以在這些網路的訓練過程中輕鬆降低模型的大小。

ICLR 2019 | 用淺度學習訓練深度網路:避開端到端深度學習難題

圖 1:我們的逐層學習框架的高層面圖示,使用了 k=2 個隱藏層。輸入影象以及 j=2 時都使用了下采樣 P(Jacobsen et al., 2018)

實驗和討論

ICLR 2019 | 用淺度學習訓練深度網路:避開端到端深度學習難題

圖 2:CIFAR-10 模型的(左)線性和(右)CNN-p 可分性隨網路深度的變化。對於線性可分性,我們聚合了 M = 64, 128, 256 的結果,附錄 C 給出了各個結果,相對趨勢也很大程度上沒有變化,但更大的 M 中的整體準確度也更高。對於 CNN-p 探針,所有的模型都在第 1 或 2 層實現了 100% 的訓練準確度,所以這裡僅給出了測試準確度。

ICLR 2019 | 用淺度學習訓練深度網路:避開端到端深度學習難題

表 1:在 ImageNet 上的單個裁剪驗證準確度。我們的模型使用了 J=8。括號中的資料是整合預測結果。ICLR 2019 | 用淺度學習訓練深度網路:避開端到端深度學習難題 指定了模型的輔助網路,其替代了最後一個輔助網路。相對於原來的更大的輔助網路,它們僅表現出了少量損失。逐層模型與類似的沒有使用 skip 連線的基準方法表現相當,並且優於所有其它端到端方法。

ICLR 2019 | 用淺度學習訓練深度網路:避開端到端深度學習難題

表 2:在 CIFAR-10 上的結果。相比於幾種已有的方法,我們僅使用逐層訓練方案就實現了顯著的效能提升。整體而言,我們的模型和相似的未使用 skip 連線的著名基準模型的表現相當。

架構的數學形式

我們的架構有 J 個模組(見圖 1),它們是連續訓練的。根據輸入訊號 x,一個初始表徵 x0,x 傳播通過 j 個卷積,得到 xj。每個 xj 都輸入一個輔助分類器,得到預測結果 zj,其計算的是一箇中間的分類輸出。在深度 j 處,用 Wθj 表示一個帶有引數 θj 的卷積運算元,用 Cγj 表示所有引數為 γj 的輔助分類器,用 Pj 表示下采樣運算元。這些引數對應於具有偏置項的 3×3 卷積核。從形式上看,對於 xj 層,我們以如下方式構建 {xj+1, zj+1}:

ICLR 2019 | 用淺度學習訓練深度網路:避開端到端深度學習難題

其中 c 是類別的數量。對於池化運算元 P,我們選擇的是 Dinh et al. (2017) 中描述的可逆的下采樣運算,其中包括將初始的空間通道重組成 4 個以空間方式抽取的副本,這些副本可通過 2×2 的空間子取樣獲得,從而將解析度降低 2 倍。我們決定不使用跨步池化、平均池化和非線性最大池化,因為這些池化方法會顯著加劇資訊損失。作為 CNN 中的標準做法,P 被應用在了特定的層中(Pj=P),但在其它層中沒有使用(Pj=Id)。分類器 Cγj 是一個 CNN,可以寫成:

ICLR 2019 | 用淺度學習訓練深度網路:避開端到端深度學習難題

其中 ICLR 2019 | 用淺度學習訓練深度網路:避開端到端深度學習難題 是寬度恆定的卷積層,A 是一個空間平均運算元,L 是一個輸出維度為 c 的線性運算元。需要指出,這個平均操作在早期層中對於維持可擴充套件性而言是很重要的。可以看到,當 k=1 時,Cγj 只是一個簡單的線性模型,在這種情況下,我們的架構將會由帶有 1 個隱藏層的 CNN 的一個序列來訓練。

相關文章