ADADELTA: AN ADAPTIVE LEARNING RATE METHOD(2012)

文末給出算法的具體實(shí)現(xiàn),心急的話可以直接跳到最后看
寫完了才發(fā)現(xiàn)有大神寫過了,理論也更完備一些

優(yōu)勢(shì)

  • 該方法不需要手動(dòng)調(diào)整學(xué)習(xí)速率
  • 對(duì)超參數(shù)不敏感
  • 將對(duì)每個(gè)維度的學(xué)習(xí)率單獨(dú)分離出來
  • 最小化梯度下降時(shí)的計(jì)算量
  • 對(duì)大梯度,噪聲,不同架構(gòu)具有很好的健壯性
  • 對(duì)本地或分布式環(huán)境都可很好的應(yīng)用

以下介紹一下該算法的一些背景知識(shí)

學(xué)習(xí)率退火

  • 在驗(yàn)證準(zhǔn)確率趨于平穩(wěn)的時(shí)候降低學(xué)習(xí)率
  • 或者依據(jù)迭代了多少周期來控制學(xué)習(xí)率
  • 然而依然需要添加額外的參數(shù)控制學(xué)習(xí)率衰減的速度

Per-Dimension First Order Methods(將對(duì)每個(gè)維度的學(xué)習(xí)率單獨(dú)分離出來?)

由于參數(shù)矢量的每個(gè)維度都可以以完全不同的方式與全局cost相關(guān),所以可以補(bǔ)償這些差異的每維度學(xué)習(xí)速率通常是很有用的。

動(dòng)量法

  • 當(dāng)梯度指向同一個(gè)方向時(shí),加速
  • 當(dāng)梯度的符號(hào)一直在改變時(shí)(震蕩),減速


    迭代公式
  • ρ用于減速之前的學(xué)習(xí)率
  • 對(duì)于長(zhǎng)峽谷狀的cost表面而言有了不錯(cuò)的改進(jìn)(相對(duì)于SGD)
  • 動(dòng)量法可以將全局學(xué)習(xí)率依據(jù)維度區(qū)分出來

ADAGRAD

  • 2012年之前的一個(gè)新的方法

  • 僅僅使用一階信息但是有一些二階的性質(zhì)和思路在里面(??)


    ADAGRAD
  • η:所有維度共享的學(xué)習(xí)率
    分母是對(duì)之前學(xué)習(xí)率在每個(gè)維度的平方的累和(每個(gè)維度的梯度是最前所有的梯度在這個(gè)維度上的累和,所以是一直增加的)

  • 由于這種動(dòng)態(tài)速率隨著梯度幅度的倒數(shù)而增長(zhǎng),所以較大的梯度具有較小的學(xué)習(xí)率,而小梯度具有較大的學(xué)習(xí)率。

  • 因?yàn)樯窠?jīng)網(wǎng)絡(luò)中不同層之間的梯度的差距通常達(dá)到幾個(gè)數(shù)量級(jí),所以這種方法可以被考慮在內(nèi)

  • 分母中梯度的積累與退火有這類似的效果,降低了學(xué)習(xí)的速率。由于梯度在分母中的積累,學(xué)習(xí)率將逐漸下降最終至0(這個(gè)不好)

  • 因?yàn)闊o視了梯度的大小,這種方法對(duì)于參數(shù)的初始條件和對(duì)應(yīng)的梯度大小可能是敏感的,初始梯度大的話,之后的學(xué)習(xí)速率會(huì)下降。但是可以通過增加全局學(xué)習(xí)率來緩解這種情況。

使用Second Order Information

  • 上述方法僅利用梯度和函數(shù)評(píng)估來優(yōu)化目標(biāo),二階方法(如牛頓法或準(zhǔn)牛頓法)可以使用黑塞矩陣或近似值。當(dāng)然計(jì)算可能會(huì)因此變得更加昂貴。
  • 計(jì)算黑塞矩陣(多元函數(shù)二階導(dǎo)數(shù)打那個(gè)矩陣)的逆矩陣開銷太大,可以通過對(duì)它做對(duì)角矩陣的倒數(shù)近似(?diagonal approximation)黑塞矩陣的逆矩陣來減少計(jì)算量(僅需再多一次額外的forward and back-propagation)


    update
  • μ是改善小曲率區(qū)域的黑塞矩陣調(diào)節(jié)的小常數(shù)。
  • 引入黑塞矩陣和類ADAGRAD項(xiàng)可以減輕對(duì)指定學(xué)習(xí)率的需要( Schaul發(fā)現(xiàn))


ADADELTA METHOD

對(duì)ADAGRAD以下缺點(diǎn)的改進(jìn):

  • 學(xué)習(xí)率的持續(xù)退火(或shrink)
  • 需要人工選擇學(xué)習(xí)率

改進(jìn)方法1:Accumulate Over Window

  • 在一個(gè)window w 內(nèi)對(duì)梯度累和,而不是所有的梯度。
  • 因?yàn)榇娣?w 之前的梯度是低效的,所以可以用對(duì)先前所有梯度均值(使用RMS即均方根值實(shí)現(xiàn))的一個(gè)指數(shù)衰減作為代替的實(shí)現(xiàn)方法。


改進(jìn)方法2:Correct Units with Hessian Approximation

  • 改進(jìn)希望?xx之間的units一致(?量綱一致,不是很清楚),而SGD,Momentum,ADAGRAD中的units并不一致,所以他們的參數(shù)更新都是unitsless的
    SGD/Momentum/ADAGRAD:unitsless
  • 但是使用黑塞矩陣的話可以保證units一致(因?yàn)槎A)


    Hessian Approximation: correct units
  • 基于[Becker&LeCun 1988]的近似方法


  • 進(jìn)而


  • 最后得出近似黑塞矩陣的逆矩陣的表達(dá)式


  • 其中假設(shè)x附近的曲率是平滑的,而Xt-1可以近似xt
  • 最后的x更新表達(dá)式


  • 由于RMS始終大于0,確保了X更新的方向始終與負(fù)梯度同向。
  • 分子作為一個(gè)加速項(xiàng),作為動(dòng)量在時(shí)間窗口w上積累先前的梯度。
  • 分母與ADAGRAD相關(guān),因?yàn)槊烤S度的平方梯度信息有助于平衡每個(gè)維度的進(jìn)度,而是在一個(gè)窗口w上計(jì)算,以確保后期的訓(xùn)練。

最終算法的具體實(shí)現(xiàn)

具體實(shí)現(xiàn)
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容