當前位置:
首頁 > 科技 > 學界 | 小改進,大飛躍:深度學習中的最小牛頓求解器

學界 | 小改進,大飛躍:深度學習中的最小牛頓求解器


選自

arXiv


作者:Jo?o F. Henriques等


機器之心編譯


參與:

Huiyuan Zhuo、思源




牛頓法等利用二階梯度信息的方法在深度學習中很少有應用,我們更喜歡直接使用一階梯度信息求解最優參數。本論文提出了一種新型基於二階信息的最優化方法,它的內存佔用與帶動量的 SGD 一樣小,但當收斂速度卻比只使用一階信息的最優化方法快。




1 引言




隨機梯度下降(SGD)和反向傳播 [9] 是現今深度網路訓練的演算法核心。深度學習的成功證明了這種組合的有效性,它已經成功地運用在各種具有大型數據集和極深網路的不同任務中。



然而,儘管 SGD 有很多優點,但這種一階方法的收斂速度(就迭代次數而言)還有很大的改進區間。儘管單次 SGD 迭代的計算速度非常快並且在優化開始時有迅速的進展,但很快,優化就會進入一個緩慢提升的階段。這可以歸因於迭代進入了目標函數錯誤縮放的參數空間中。在這種情況下,快速的進展需要在參數空間內不同的方向上採用不同的步長,而 SGD 無法實現這種迭代。




諸如牛頓法及其變體的二階方法根據目標函數的局部曲率重新調整梯度,從而消除了這個問題。對於 R 中的標量損失,這種調整採用 H?1J 的形式,其中 H 是黑塞矩陣(Hessian matrix;二階導數)或者是目標空間中局部曲率的一個近似,J 是目標函數的梯度。事實上,它們可以實現局部尺度不變性,並在梯度下降停滯 [24] 的地方取得顯著進展。儘管在其它領域它們是無可比擬的,但一些問題阻礙了它們在深度模型中的應用。首先,因為黑塞矩陣的參數數量以二次形式增長,且通常有著數百萬的參數,故而對它求逆或存儲它是不現實的。其次,由於隨機抽樣,任何黑塞矩陣的估計都必然產生雜訊和病態的條件數,因而經典的求逆方法如共軛梯度對於黑塞矩陣是不穩健的。




在本文中,我們提出了一種新的演算法,它可以克服這些困難並使得二階優化適用於深度學習。我們特別展示了如何去避免存儲黑塞矩陣或其逆矩陣的任何估計值。反之,我們將牛頓更新,即 H?1J 的計算看成是求解一個能通過梯度下降法求解的線性系統。通過交叉求解步驟和參數更新步驟,求解這個線性系統的成本會隨著時間推移被攤銷。此外,與共軛梯度法不同,梯度下降的選擇使其對雜訊穩健。我們提出的方法增加了很小的開銷,因為一個黑塞矩陣向量積可通過兩步自動微分的現代網路實現。有趣的是,我們證明了我們的方法等價於帶有一個額外項的動量 SGD(也稱為重球法),這個額外項能計算曲率。因此,我們將該方法命名為 CURVEBALL。與其他方法不同,我們方法的總內存佔用與動量 SGD 一樣小。




圖 1:已知解決方案的問題。左:不同求解器的 Stochastic Rosenbrock 函數軌跡(較深的陰影區域表示較高的函數值)。右:針對軌跡圖繪製的損失函數與迭代數之間的關係。





表 1:在小數據集上優化器的比較。對於每一個優化器,我們展示了解決問題所需迭代數的平均值 ± 標準差。對於隨機 Rosenbrock 函數,U[λ1, λ2] 表示來自 U[λ1, λ2] 的雜訊(詳見 4.1)。





圖 2:不同優化器在不同數據集和網路上的性能對比。在一系列實際設置下,包括大型數據集(ImageNet)、是否使用批量歸一化和過度參數化的模型(ResNet),我們的方法似乎表現十分良好。




表 2:不同模型和優化方法的最佳百分比誤差(訓練/驗證誤差)。CURVEBALL λ 表示使用了重新調整的參數 λ(第 3 節)。括弧內的數字表示帶有額外 Dropout 正則化(比例 0.3)的驗證誤差。前 3 列在是在 CIFAR - 10 上訓練的,第 4 列是在 ImageNet - 100 上訓練的。





圖 3:訓練誤差 vs. 訓練時間(基於 CIFAR - 10 模型)。




論文:Small steps and giant leaps: Minimal Newton solvers for Deep Learning(小改進,大飛躍:深度學習中的最小牛頓求解器)







論文地址:https://arxiv.org/abs/1805.08095




我們提出了一種能直接替換現今深度學習求解器的快速二階方法。與隨機梯度下降法(SGD)比,它只需要在每次迭代時進行 2 次額外的前向自動微分操作,同時它的運算成本與 2 次標準前向傳播相當且易於實現。我們的方法解決了現有二階求解器長期存在的問題,即在每次迭代時需要對黑塞矩陣的近似精確求逆或使用共軛梯度法,而這個過程既昂貴又對雜訊敏感。相反,我們提出保留逆黑塞矩陣投影梯度的單個估計,並在每次迭代時更新一次。這個估計值有著相同的維度,並與 SGD 中常用的動量變數相似。黑塞矩陣的估計是變動的。我們首先驗證我們的方法—CurveBall 在一些已知閉式解的小問題(帶雜訊的 Rosenbrock 函數和退化的 2 層線性網路)上的有效性,而這是現今深度學習解釋器仍在努力的地方。我們接著在 CIFAR、ImageNet 上訓練一些大型模型,包括 ResNet,VGG-f 網路,我們的方法在沒有調整超參數的情況下,表現出更快的收斂性。最後,所有的代碼已經開源。




本文為機器之心編譯,

轉載請聯繫本公眾號獲得授權



?------------------------------------------------


加入機器之心(全職記者/實習生):hr@jiqizhixin.com


投稿或尋求報道:

content

@jiqizhixin.com


廣告&商務合作:bd@jiqizhixin.com


喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 機器之心 的精彩文章:

CVPR 2018|論文:北京大學計算機研究所深度跨媒體知識遷移方法
華盛頓大學推出YOLOv3:檢測速度快SSD和RetinaNet三倍

TAG:機器之心 |