多層神經網路在文字、語音和影象處理的多種基準任務上都取得了令人矚目的效果。儘管如此,這些深層神經網路也會產生難以搜尋的高維、非線性超引數空間,進而導致過擬合以及泛化能力差。早期的神經網路使用反向傳播演算法,它們會由於缺乏足夠的資料、梯度損失恢復以及很可能陷入效能較差的區域性最小值而失效。深度學習(Hinton et al,2006)引入了一些創新技術來減少、控制這些過擬合和過度引數化問題,包括用線性整流單元(ReLU)來減少連續梯度損失,用 Dropout 技術避免陷入區域性最小值,以及通過有效的模型平均技術來增強泛化能力。儘管資料海嘯可以為各種各樣的分類和迴歸任務提供大量的資料,在本文中,作者仍將重點討論深層神經網路的過度引數化問題。Dropout 可以用來緩解過度引數化以及過度引數化引起的深度學習應用過擬合問題,還能夠避免陷入效能較差的區域性最小值。具體而言,Dropout 實現了一個概率為 p(有偏的 0-1 抽籤法)的伯努利隨機變數,在每一輪更新時從網路架構中隨機刪除隱藏單元及其連線,從而產生一個稀疏的網路架構——其中剩餘權重被更新並保留到下一個 dropout 步驟中。在學習結束時,通過計算每個權重 p_w_ij 的期望值,重構了深度學習網路,這樣的做法近似於對指數級數量的一組神經網路進行模型平均。在大多數情況下,帶 Dropout 機制的深度學習能夠在常見的基準測試中降低 50% 以上的誤差率。
在本文餘下的部分中,作者將介紹一種通用型別的 Dropout 技術,它能夠在權值級別上進行操作並在每輪更新中注入依賴於梯度的噪聲,這種技術被稱為隨機 delta 規則(SDR,參見 Murray & Andrews, 1991)。SDR 為每個權重實現了一個隨機變數,並且為隨機變數中的每個引數提供了更新規則,本文使用了帶自適應引數的高斯分佈(均值為µ_w_ij,標準差為 σ_w_ij)。儘管所有的 SDR 可以作用於任意的隨機變數(gamma 分佈、beta 分佈、二項分佈等)。本文將說明,Dropout 是一個帶有固定引數 (np, np(1 − p)) 的二項隨機變數的特例。最後,作者將用高斯 SDR 在標準基準(例如,CIFAR-10 和 CIFAR-100)中測試 DenseNet 框架,並且說明其相對於二項分佈的 Dropout 具有很大的優勢。
論文:Dropout is a special case of the stochastic delta rule: faster and more accurate deep learning
論文地址:https://arxiv.org/pdf/1808.03578v1.pdf
摘要:多層神經網路在文字、語音和影象處理的各種基準任務中都取得了令人矚目的效果。然眾所周知,層次模型中的非線性引數估計存在過擬合問題。Dropout(Srivastava, et al 2014, Baldi et al 2016)是一種用來解決這種過擬合以及相關問題(區域性最小值、共線性、特徵發現等)的方法。這種方法在每輪更新中通過帶有概率 p 的伯努利隨機變數刪除隱藏單元。在本文中,我們說明了 Dropout 是一種更加通用的模型特例,這種被稱為隨機 delta 規則(「SDR」, Hanson, 1990)的模型於 1990 年被首次發表。SDR 用一個均值為µ_w_ij、標準差為 σ_w_ij 的隨機變數將網路中的權值引數化。這些隨機變數在每一次前饋啟用中通過取樣得到,從而建立指數級數量的共享權值的潛在網路。這兩個引數都會根據預測誤差而更新,從而實現了反映預測誤差區域性歷史的權值噪聲注入和高效的模型平均。因此,SDR 對每個權值實現了一個區域性梯度依賴的模擬退火,從而收斂為一個貝葉斯最優網路。使用改進版的 DenseNet 在標準基準(CIFAR)上進行測試的結果顯示,SDR 相較於標準 dropout 誤差率降低了 50% 以上,損失也減少了 50% 以上。此外,SDR 的實現在指定的解決方案上收斂得更快,而且,採用 SDR 的 DenseNet-40 只需要訓練 15 個 epoch 就實現誤差率為 5% 的目標,而標準 DenseNet-40 實現這一目標需要訓練 94 個 epoch。
5 實驗結果
表 1:採用 SDR 的 DenseNet 與採用 dropout 的 DenseNet 誤差率對比
上述結果表明,在 DenseNet 測試中,用 SDR 替換 dropout 技術會使所有 CIFAR 基準測試的誤差減少 50 % 以上,降幅高達 64%。原始 DenseNet 實現的誤差結果低於原始 DenseNet 論文中的誤差結果,因為我們發現使用更大的批處理會帶來更高的總體準確率。
表 2:達到訓練誤差率為 15%,10%,5% 分別所需的 epoch 數量。
如表 2 所示,使用 SDR 後,在訓練中將誤差率降到 15%,10%,5% 所需的時間明顯縮短。使用了 SDR 的 DenseNet-40 只需要原本 1/6 的 epoch 就能夠取得 5% 的誤差率,而使用了 SDR 的 DenseNet-100 則只需原來 60% 的 epoch 就能實現 5% 的誤差率。
圖 3:採用 dropout 的 DenseNet-100 訓練 100 個 epoch 之後的準確率(橙色曲線)和採用 SDR 的 DenseNet-100 訓練 100 個 epoch 的準確率(藍色曲線)。比起 dropout,SDR 不僅能夠更快地提高訓練準確率(訓練 17 個 epoch 達到了 96% 的準確率,drouout 達到相同的準確率需要 33 個 epoch),而且還能夠在訓練 40 個 epoch 後達到 98% 的準確率。
圖 4:表示採用 SDR 的 DenseNet-100 的第 21 層第 1 塊的權重值頻率的直方圖,其中每個切片都是來自訓練一個 epoch 的 snapshot,而最上面的切片是來自第一個 epoch 的 snapshot。在訓練 100 個 epoch 的過程中,隨著權值的標準差趨近於零,曲線變窄。
2 隨機 delta 規則
眾所周知,實際的神經傳播包含噪聲。如果一個皮質分離的神經元週期性地受到完全相同的刺激,它永遠不會產生相同的反應(如燒傷等刺激)。設計 SDR 的部分原因是生物系統中通過神經元傳遞訊號的隨機性。顯然,平滑的神經速率函式是建立在大量的刺激試驗基礎上的。這讓我們想到了一種實現方法,即兩個神經元之間的突觸可以用一個具有固定引數的分佈來建模。與這種分佈相關的隨機變數在時域內可能是一個 Gamma 分佈(或在分級響應中,參見泊松分佈)。在這裡,我們假設有一個符合中心極限定理的獨立同分布集合,並且採用高斯分佈作為一般形式。儘管如此,對於獨立成分分析(ICA)來說,同等情況下,長尾分佈可能更具優勢。
圖 1:SDR 取樣
如圖 1 所示,我們按照圖中的方法實現採用均值為 µwij、標準差為 σwij 的高斯隨機變數的 SDR 演算法。因此,將從高斯隨機變數中取樣得到每個權值,作為一種前饋運算。實際上,與 Dropout 類似,指數級別的網路集合通過訓練期間的更新取樣獲取。與 Dropout 在這一點上的區別是,SDR 會調整每個權重上附加的隱藏單元的權重和影響,以便在更新時隨誤差梯度自適應地變化。這裡的效果也與 Dropout 相類似,除了每個隱藏單元的響應會分解到權重上(與分類誤差對信用分配的影響成比例)。因此,每個權重梯度本身也是基於隱藏單元預測效能的隨機變數,它讓系統能夠:(1)在相同的例程/刺激下接受多值響應假設,(2)保留一個預測歷史,與 Dropout 不同,Dropout 是區域性的隱藏單元權重,在某個集合上是有條件的,甚至是一個特定的例程(3)可能返回由於貪婪搜尋得到的效能較差的區域性最小值,但是同時也遠離了更好的區域性最小值。區域性噪聲注入的結果對網路的收斂具有全域性影響,並且為深度學習提供了更高的搜尋效率。最後一個優點是,如 G. Hinton 所說,區域性噪聲注入可能通過模型平均平滑誤差表面的溝壑,使模型能夠更快更穩定地收斂到更好的區域性最小值。
圖 2:Dropout 取樣