文末給出算法的具體實現(xiàn)独令,心急的話可以直接跳到最后看
寫完了才發(fā)現(xiàn)有大神寫過了,理論也更完備一些
優(yōu)勢
- 該方法不需要手動調(diào)整學(xué)習(xí)速率
- 對超參數(shù)不敏感
- 將對每個維度的學(xué)習(xí)率單獨分離出來
- 最小化梯度下降時的計算量
- 對大梯度,噪聲易茬,不同架構(gòu)具有很好的健壯性
- 對本地或分布式環(huán)境都可很好的應(yīng)用
以下介紹一下該算法的一些背景知識
學(xué)習(xí)率退火
- 在驗證準(zhǔn)確率趨于平穩(wěn)的時候降低學(xué)習(xí)率
- 或者依據(jù)迭代了多少周期來控制學(xué)習(xí)率
- 然而依然需要添加額外的參數(shù)控制學(xué)習(xí)率衰減的速度
Per-Dimension First Order Methods(將對每個維度的學(xué)習(xí)率單獨分離出來?)
由于參數(shù)矢量的每個維度都可以以完全不同的方式與全局cost相關(guān)而叼,所以可以補償這些差異的每維度學(xué)習(xí)速率通常是很有用的。
動量法
- 當(dāng)梯度指向同一個方向時糖声,加速
-
當(dāng)梯度的符號一直在改變時(震蕩)斤彼,減速
- ρ用于減速之前的學(xué)習(xí)率
- 對于長峽谷狀的cost表面而言有了不錯的改進(相對于SGD)
- 動量法可以將全局學(xué)習(xí)率依據(jù)維度區(qū)分出來
ADAGRAD
2012年之前的一個新的方法
-
僅僅使用一階信息但是有一些二階的性質(zhì)和思路在里面(?蘸泻?)
η:所有維度共享的學(xué)習(xí)率
分母是對之前學(xué)習(xí)率在每個維度的平方的累和(每個維度的梯度是最前所有的梯度在這個維度上的累和琉苇,所以是一直增加的)由于這種動態(tài)速率隨著梯度幅度的倒數(shù)而增長,所以較大的梯度具有較小的學(xué)習(xí)率悦施,而小梯度具有較大的學(xué)習(xí)率并扇。
因為神經(jīng)網(wǎng)絡(luò)中不同層之間的梯度的差距通常達到幾個數(shù)量級,所以這種方法可以被考慮在內(nèi)
分母中梯度的積累與退火有這類似的效果抡诞,降低了學(xué)習(xí)的速率穷蛹。由于梯度在分母中的積累,學(xué)習(xí)率將逐漸下降最終至0(這個不好)
因為無視了梯度的大小昼汗,這種方法對于參數(shù)的初始條件和對應(yīng)的梯度大小可能是敏感的肴熏,初始梯度大的話,之后的學(xué)習(xí)速率會下降乔遮。但是可以通過增加全局學(xué)習(xí)率來緩解這種情況扮超。
使用Second Order Information
- 上述方法僅利用梯度和函數(shù)評估來優(yōu)化目標(biāo),二階方法(如牛頓法或準(zhǔn)牛頓法)可以使用黑塞矩陣或近似值。當(dāng)然計算可能會因此變得更加昂貴出刷。
-
計算黑塞矩陣(多元函數(shù)二階導(dǎo)數(shù)打那個矩陣)的逆矩陣開銷太大璧疗,可以通過對它做對角矩陣的倒數(shù)近似(?diagonal approximation)黑塞矩陣的逆矩陣來減少計算量(僅需再多一次額外的forward and back-propagation)
- μ是改善小曲率區(qū)域的黑塞矩陣調(diào)節(jié)的小常數(shù)馁龟。
-
引入黑塞矩陣和類ADAGRAD項可以減輕對指定學(xué)習(xí)率的需要( Schaul發(fā)現(xiàn))
ADADELTA METHOD
對ADAGRAD以下缺點的改進:
- 學(xué)習(xí)率的持續(xù)退火(或shrink)
- 需要人工選擇學(xué)習(xí)率
改進方法1:Accumulate Over Window
- 在一個window
w
內(nèi)對梯度累和崩侠,而不是所有的梯度。 -
因為存放 w 之前的梯度是低效的坷檩,所以可以用對先前所有梯度均值(使用RMS即均方根值實現(xiàn))的一個指數(shù)衰減作為代替的實現(xiàn)方法却音。
改進方法2:Correct Units with Hessian Approximation
- 改進希望
?x
和x
之間的units一致(?量綱一致矢炼,不是很清楚)系瓢,而SGD,Momentum句灌,ADAGRAD中的units并不一致夷陋,所以他們的參數(shù)更新都是unitsless的
-
但是使用黑塞矩陣的話可以保證units一致(因為二階)
-
基于[Becker&LeCun 1988]的近似方法
-
進而
-
最后得出近似黑塞矩陣的逆矩陣的表達式
- 其中假設(shè)x附近的曲率是平滑的,而
Xt-1
可以近似xt
-
最后的x更新表達式
- 由于RMS始終大于0胰锌,確保了X更新的方向始終與負梯度同向骗绕。
- 分子作為一個加速項,作為動量在時間窗口
w
上積累先前的梯度资昧。 - 分母與ADAGRAD相關(guān)酬土,因為每維度的平方梯度信息有助于平衡每個維度的進度,而是在一個窗口
w
上計算格带,以確保后期的訓(xùn)練撤缴。