牛頓法等利用二階梯度信息的方法在深度學(xué)習(xí)中很少有應(yīng)用,我們更喜歡直接使用一階梯度信息求解最優(yōu)參數(shù)。本論文提出了一種新型基于二階信息的最優(yōu)化方法,它的內(nèi)存占用與帶動(dòng)量的 SGD 一樣小,但當(dāng)收斂速度卻比只使用一階信息的最優(yōu)化方法快。
1 引言
隨機(jī)梯度下降(SGD)和反向傳播 [9] 是現(xiàn)今深度網(wǎng)絡(luò)訓(xùn)練的算法核心。深度學(xué)習(xí)的成功證明了這種組合的有效性,它已經(jīng)成功地運(yùn)用在各種具有大型數(shù)據(jù)集和極深網(wǎng)絡(luò)的不同任務(wù)中。
然而,盡管 SGD 有很多優(yōu)點(diǎn),但這種一階方法的收斂速度(就迭代次數(shù)而言)還有很大的改進(jìn)區(qū)間。盡管單次 SGD 迭代的計(jì)算速度非??觳⑶以趦?yōu)化開始時(shí)有迅速的進(jìn)展,但很快,優(yōu)化就會(huì)進(jìn)入一個(gè)緩慢提升的階段。這可以歸因于迭代進(jìn)入了目標(biāo)函數(shù)錯(cuò)誤縮放的參數(shù)空間中。在這種情況下,快速的進(jìn)展需要在參數(shù)空間內(nèi)不同的方向上采用不同的步長,而 SGD 無法實(shí)現(xiàn)這種迭代。
諸如牛頓法及其變體的二階方法根據(jù)目標(biāo)函數(shù)的局部曲率重新調(diào)整梯度,從而消除了這個(gè)問題。對(duì)于 R 中的標(biāo)量損失,這種調(diào)整采用 H?1J 的形式,其中 H 是黑塞矩陣(Hessian matrix;二階導(dǎo)數(shù))或者是目標(biāo)空間中局部曲率的一個(gè)近似,J 是目標(biāo)函數(shù)的梯度。事實(shí)上,它們可以實(shí)現(xiàn)局部尺度不變性,并在梯度下降停滯 [24] 的地方取得顯著進(jìn)展。盡管在其它領(lǐng)域它們是無可比擬的,但一些問題阻礙了它們在深度模型中的應(yīng)用。首先,因?yàn)楹谌仃嚨膮?shù)數(shù)量以二次形式增長,且通常有著數(shù)百萬的參數(shù),故而對(duì)它求逆或存儲(chǔ)它是不現(xiàn)實(shí)的。其次,由于隨機(jī)抽樣,任何黑塞矩陣的估計(jì)都必然產(chǎn)生噪聲和病態(tài)的條件數(shù),因而經(jīng)典的求逆方法如共軛梯度對(duì)于黑塞矩陣是不穩(wěn)健的。
在本文中,我們提出了一種新的算法,它可以克服這些困難并使得二階優(yōu)化適用于深度學(xué)習(xí)。我們特別展示了如何去避免存儲(chǔ)黑塞矩陣或其逆矩陣的任何估計(jì)值。反之,我們將牛頓更新,即 H?1J 的計(jì)算看成是求解一個(gè)能通過梯度下降法求解的線性系統(tǒng)。通過交叉求解步驟和參數(shù)更新步驟,求解這個(gè)線性系統(tǒng)的成本會(huì)隨著時(shí)間推移被攤銷。此外,與共軛梯度法不同,梯度下降的選擇使其對(duì)噪聲穩(wěn)健。我們提出的方法增加了很小的開銷,因?yàn)橐粋€(gè)黑塞矩陣向量積可通過兩步自動(dòng)微分的現(xiàn)代網(wǎng)絡(luò)實(shí)現(xiàn)。有趣的是,我們證明了我們的方法等價(jià)于帶有一個(gè)額外項(xiàng)的動(dòng)量 SGD(也稱為重球法),這個(gè)額外項(xiàng)能計(jì)算曲率。因此,我們將該方法命名為 CURVEBALL。與其他方法不同,我們方法的總內(nèi)存占用與動(dòng)量 SGD 一樣小。
圖 1:已知解決方案的問題。左:不同求解器的 Stochastic Rosenbrock 函數(shù)軌跡(較深的陰影區(qū)域表示較高的函數(shù)值)。右:針對(duì)軌跡圖繪制的損失函數(shù)與迭代數(shù)之間的關(guān)系。
表 1:在小數(shù)據(jù)集上優(yōu)化器的比較。對(duì)于每一個(gè)優(yōu)化器,我們展示了解決問題所需迭代數(shù)的平均值 ± 標(biāo)準(zhǔn)差。對(duì)于隨機(jī) Rosenbrock 函數(shù),U[λ1, λ2] 表示來自 U[λ1, λ2] 的噪聲(詳見 4.1)。
圖 2:不同優(yōu)化器在不同數(shù)據(jù)集和網(wǎng)絡(luò)上的性能對(duì)比。在一系列實(shí)際設(shè)置下,包括大型數(shù)據(jù)集(ImageNet)、是否使用批量歸一化和過度參數(shù)化的模型(ResNet),我們的方法似乎表現(xiàn)十分良好。
表 2:不同模型和優(yōu)化方法的最佳百分比誤差(訓(xùn)練/驗(yàn)證誤差)。CURVEBALL λ 表示使用了重新調(diào)整的參數(shù) λ(第 3 節(jié))。括號(hào)內(nèi)的數(shù)字表示帶有額外 Dropout 正則化(比例 0.3)的驗(yàn)證誤差。前 3 列在是在 CIFAR - 10 上訓(xùn)練的,第 4 列是在 ImageNet - 100 上訓(xùn)練的。
圖 3:訓(xùn)練誤差 vs. 訓(xùn)練時(shí)間(基于 CIFAR - 10 模型)。
論文:Small steps and giant leaps: Minimal Newton solvers for Deep Learning(小改進(jìn),大飛躍:深度學(xué)習(xí)中的最小牛頓求解器)
論文地址:https://arxiv.org/abs/1805.08095
我們提出了一種能直接替換現(xiàn)今深度學(xué)習(xí)求解器的快速二階方法。與隨機(jī)梯度下降法(SGD)比,它只需要在每次迭代時(shí)進(jìn)行 2 次額外的前向自動(dòng)微分操作,同時(shí)它的運(yùn)算成本與 2 次標(biāo)準(zhǔn)前向傳播相當(dāng)且易于實(shí)現(xiàn)。我們的方法解決了現(xiàn)有二階求解器長期存在的問題,即在每次迭代時(shí)需要對(duì)黑塞矩陣的近似精確求逆或使用共軛梯度法,而這個(gè)過程既昂貴又對(duì)噪聲敏感。相反,我們提出保留逆黑塞矩陣投影梯度的單個(gè)估計(jì),并在每次迭代時(shí)更新一次。這個(gè)估計(jì)值有著相同的維度,并與 SGD 中常用的動(dòng)量變量相似。黑塞矩陣的估計(jì)是變動(dòng)的。我們首先驗(yàn)證我們的方法—CurveBall 在一些已知閉式解的小問題(帶噪聲的 Rosenbrock 函數(shù)和退化的 2 層線性網(wǎng)絡(luò))上的有效性,而這是現(xiàn)今深度學(xué)習(xí)解釋器仍在努力的地方。我們接著在 CIFAR、ImageNet 上訓(xùn)練一些大型模型,包括 ResNet,VGG-f 網(wǎng)絡(luò),我們的方法在沒有調(diào)整超參數(shù)的情況下,表現(xiàn)出更快的收斂性。最后,所有的代碼已經(jīng)開源。