BP不用算梯度,這樣的線性反向傳播也能Work!
向傳播是常用的學習演算法,但它存在一些缺陷,如過於敏感、依賴大量條件和約束。來自加州大學聖地亞哥分校的研究科學家 Mehrdad Yazdani 對誤差項的線性反向傳播進行研究,該方法在前向傳播中使用非線性啟用函式,但是在反向傳播中使用線性啟用函式,因此它可以確保梯度流的正常傳遞,同時節約計算成本。
ofollow,noindex" target="_blank"> 反向傳播演算法 (Backprop)是很多機器學習演算法中主要使用的學習演算法。但是在實踐中, 深度神經網路 中的反向傳播是一種非常敏感的學習演算法,它的成功取決於大量條件和約束。約束的目的是避免產生飽和的啟用值,這麼做的動機是 梯度消失 會導致學習過程中斷。特定的權重初始化和尺度變換 方案(如 批歸一化 )可確保神經元的輸入啟用值是線性的,這樣梯度不會消失,能夠流動。
本論文僅研究誤差項的線性反向傳播,即忽略非線性梯度流帶來的單元飽和。本文將這一學習規則稱為線性反向傳播(Linear Backprop)。因為不用計算梯度,除了確保持續的梯度流以外,Linear Backprop 在計算成本高昂的情況下仍然可以使用。該研究的早期結果表明,使用 Linear Backprop 進行學習與使用 Backprop 不相上下,且能夠節約梯度計算的成本。
這篇 Linear Backprop 接受為 NIPS/NeurIPS 2018 關於緊湊神經網路的 Workshop 論文,該研討會關注構建緊湊和高效的神經網路表徵。具體而言,其主要會討論剪枝、量化和低秩近似等神經網路壓縮方法;神經網路表示和轉換格式;及使用 DNN 壓縮視訊和媒體的方式。
該 Workshop 的最佳論文是機器之心曾介紹過的 Rethinking the Value of NetworkPruning ,這篇論文重新思考了神經網路過引數化的作用,該論文表示剪枝演算法的價值可能在於識別高效結構、執行隱性的架構搜尋,而不是在過引數化中選擇「重要的」權重。Hinton 等研究者也在 Workshop 論文中提出一種 神似剪枝的TargetDropout ,它類似於將剪枝嵌入到了學習過程中,因此訓練後再做剪枝會有很好性質。
論文:Linear Backprop in non-linear networks
論文地址: https://openreview.net/pdf?id=ByfPDyrYim
長期以來,人們認為具備非多項式和非線性單元的 深度神經網路 是萬能函式逼近器。但是,在神經網路研究的早期階段,並不清楚學習演算法能從權重的最優集合中發現什麼。Frank Rosenblatt 的開拓性研究本質上僅學習了多層感知器輸出層的權重,且隨機保持輸入層權重不變,而 Fukushima 使用赫布型學習(Hebbian learning)。反向傳播一經引入神經網路研究即獲得了巨大成功,目前仍是最常用的學習演算法。
儘管那麼成功,反向傳播是一種高度敏感的學習演算法,在實踐中要想使之發揮作用還需要大量技巧。反向傳播的問題在於:容易飽和的啟用函式、合適的學習率、批大小、epoch 數量等。研究人員付出了很多努力來避免神經元或單元的飽和。飽和單元的主要問題是梯度消失,進而導致學習中斷。因此,研究人員進行了大量嘗試來確保神經元的輸入啟用值是線性的,包括引入正則化方法(如 L2 懲罰項)、批歸一化和權重初始化。還有一些解決方案從啟用函式入手,限制飽和區域來確保梯度流。Gulcehre 等人的研究《Noisy activation functions》對具備非飽和區域的啟用函式進行了大量探索,因為這些非飽和區域能提供梯度。
梯度流是學習的必要因素,因此本論文主要研究學習演算法都是在確保更優的線性梯度流。線性反向傳播演算法(見 Algorithm 2)可以確保所有區域的梯度流都能正常傳遞,因此可用作替代學習演算法。與反向傳播(見 Algorithm 1)相比,線性反向傳播中的前向傳播過程是相同的。該網路架構具備非線性啟用函式,因此仍然是高度非線性的,但我們在計算損失函式時只考慮線性反向傳播誤差。由於線上性反向傳播中,啟用函式的導數不用計算(Algorithm 2 中紅色字),因此線性反向傳播與反向傳播相比節約了計算量 O(ml)。
換一種方式思考本論文提出的學習規則:研究者引入了一個正則化項,使計算梯度時僅計算線性梯度,不考慮非線性元件。也就是說,在推斷階段使用深度非線性網路,但訓練階段中損失函式本質上被裁剪成一個深度線性神經網路。前向傳播的計算和反向傳播無異,但反向傳播僅使用線性反饋項。
近期多項研究出於生物可解性考慮反向傳播的變體。[Lillicrap et al., 2016] 展示了使用隨機權重的學習過程是可行的。[Baldi and Sadowski, 2016] 考慮了很多赫布型學習演算法和誤差反向傳播學習演算法。線性反向傳播與 Bengio 等人 2013 年提出的 Straight Through Estimator 有一些相似處,但前者提出對任意啟用函式應用估計器。
如前所述,線性反向傳播不計算梯度,因此節約了很多計算成本。線性反向傳播學習演算法支援計算資源有限的情況。實驗結果表明在特定條件下,線性反向傳播的效能與反向傳播相當。
如下圖紅色所示,線性反向傳播演算法在傳遞損失函式的梯度時,因為是線性函式,所以不需要另外再求梯度。
1.1 合成數據示例
圖 1:(左)相同的 MLP 架構使用反向傳播和線性反向傳播時在 5 個樣本上的過擬合情況。(中)MLP 使用 50 種不同的權重隨機初始化在相同的 5 個點上預測和目標之間的 MSE。(右)使用 sigmoid啟用函式進行訓練後,單元啟用值的直方圖。
1.2 在 CIFAR-10 上的VGG和 ResNet 二值神經網路
圖 2:VGG19 在 CIFAR-10 資料集上的學習曲線。