Optimizer and BN

Deep Learning

Optimizers

optimizers 通用參數(shù)

  • 待優(yōu)化參數(shù):w, 目標(biāo)函數(shù):f(w), 初始learning rate:a

  • 在每一個epoch t 中:

    1. 計算目標(biāo)函數(shù)關(guān)于當(dāng)前參數(shù)的梯度: [圖片上傳失敗...(image-33816e-1552923429589)]

    2. 根據(jù)歷史梯度計算一階動量和二階動量:[圖片上傳失敗...(image-9748e9-1552923429589)],

    3. 計算當(dāng)前時刻的下降梯度: [圖片上傳失敗...(image-8ac494-1552923429589)]

    4. 根據(jù)下降梯度進行更新: [圖片上傳失敗...(image-1a5e0a-1552923429589)]

SGD

  • 一階動量:m_t = g_t; 二階動量:V_t = I^2
  • 下降梯度:\eta_t = a \cdot g_t?

現(xiàn)在通用的SGD通常指代mini-batch SGD溉箕,其迭代次數(shù)為每個batch的個數(shù)n盅视。對于每次迭代,SGD對每個batch求樣本的梯度均值然后進行梯度更新瓮栗。

                    $$w_{t+1} = w_t - a \cdot \frac {1} {n} \sum \nabla f(w_t)$$

SGD-Momentum

  • 一階動量:m_t = \beta_1 \cdot m_{t-1} + (1-\beta_1) \cdot g_t?
    • 一階動量是哥哥時刻梯度方向的指數(shù)移動平均值,約等于最近1/(1-\beta_1)個時刻的梯度向量和的平均值
  • 主要由此前累積的下降方向所決定

AdaGrad

自適應(yīng)學(xué)習(xí)率

  • 二階動量:V_t = \sum g_t ^2:迄今為止所有梯度的平方和
  • 梯度下降:\eta_t = a \cdot \frac{m_t} {\sqrt{V_t}}?

實質(zhì)上,learning rate 由 a 變成了 \frac{a} {\sqrt{V_t}} 隨著迭代時候二階動量越大蛔六,學(xué)習(xí)率越小

RMSProp

只關(guān)注過去一段時間的梯度變化而非全部變化荆永,這里區(qū)別于AdaGrad。避免二階動量持續(xù)累積国章,導(dǎo)致訓(xùn)練提前結(jié)束具钥。

  • 二階動量:V_t = \beta_2 \cdot V_{t-1} + (1 - \beta_2) \cdot g_t^2

Adam

adaptive + Momentum

結(jié)合了一階動量和二階動量

  • 一階動量:m_t = \beta_1 \cdot m_{t-1} + (1-\beta_1) \cdot g_t?
  • 二階動量:V_t = \beta_2 \cdot V_{t-1} + (1 - \beta_2) \cdot g_t^2

實際使用過程,參數(shù)默認(rèn):\beta_1 = 0.9;\beta_2 = 0.999?

Comparison

  • Adam收斂問題
    • 由于RMSProp和Adam的二階動量是固定時間窗口的累積捉腥,隨著時間窗口變化氓拼,遇到的數(shù)據(jù)可能發(fā)生巨變,是的V_t可能會時大時小抵碟,不是單調(diào)變化桃漾。這在后期的訓(xùn)練有可能導(dǎo)致模型無法收斂。
      • 修正方法:V_t = max(\beta_2 \cdot V_{t-1} + (1 - \beta_2) \cdot g_t^2, V_{t-1})
  • 錯過全劇最優(yōu)解問題
    • 自適應(yīng)學(xué)習(xí)率算法可能會對前期的特征過擬合拟逮,后期才出現(xiàn)的特征難以糾正前期的擬合效果
      • 修正方法:充分shuffle數(shù)據(jù)集
    • 盡管收斂速度快撬统,但是收斂的效果沒有SGD好。主要因為后期的學(xué)習(xí)速率太低了敦迄,影響有效收斂恋追。
      • 修正方法:對Adam的學(xué)習(xí)率下界做約束。
  • 核心差異:下降方向
    • SGD下降方向就是該位置的梯度的反方向
    • 帶一階動量的SGD下降方向就是該位置一階動量的方向
    • 自適應(yīng)學(xué)習(xí)率算法每個參數(shù)設(shè)定了不同的學(xué)習(xí)率罚屋,在不同維度上設(shè)定不同的步長苦囱。因此其下降方向為scaled的一階動量方向
  • Adam + SGD組合策略
    • 繼承了Adam的快速收斂和SGD的精度收斂
  • 數(shù)據(jù)是稀疏的(分類問題),可以優(yōu)先考慮自適應(yīng)學(xué)習(xí)率算法脾猛∷和回歸問題SGD通常更好

Batch Normalization

優(yōu)勢:

  1. 減少了人為選擇參數(shù)。在某些情況下可以取消 dropout 和 L2 正則項參數(shù),或者采取更小的 L2 正則項約束參數(shù)猛拴;
  2. 減少了對學(xué)習(xí)率的要求「Γ現(xiàn)在我們可以使用初始很大的學(xué)習(xí)率或者選擇了較小的學(xué)習(xí)率,算法也能夠快速訓(xùn)練收斂愉昆;
  3. 可以不再使用局部響應(yīng)歸一化职员。BN 本身就是歸一化網(wǎng)絡(luò)(局部響應(yīng)歸一化在 AlexNet 網(wǎng)絡(luò)中存在)
  4. 破壞原來的數(shù)據(jù)分布,一定程度上緩解過擬合(防止每批訓(xùn)練中某一個樣本經(jīng)常被挑選到跛溉,文獻(xiàn)說這個可以提高 1% 的精度)焊切。
  5. 減少梯度消失,加快收斂速度倒谷,提高訓(xùn)練精度蛛蒙。

算法流程:

下面給出 BN 算法在訓(xùn)練時的過程

輸入:上一層輸出結(jié)果 X=x1,x2,...,xm,學(xué)習(xí)參數(shù) γ,β

  1. 計算上一層輸出數(shù)據(jù)的均值渤愁,其中牵祟,m 是此次訓(xùn)練樣本 batch 的大小。

? \mu_{\beta} = \frac{1}{m} \sum_{i=1}^m(x_i)

  1. 計算上一層輸出數(shù)據(jù)的標(biāo)準(zhǔn)差

? \sigma_{\beta}^2 = \frac{1}{m} \sum_{i=1}^m (x_i - \mu_{\beta})^2

  1. 歸一化處理抖格,得到

? \hat x_i = \frac{x_i + \mu_{\beta}}{\sqrt{\sigma_{\beta}^2} + \epsilon}?

其中 ? 是為了避免分母為 0 而加進去的接近于 0 的很小值

  1. 重構(gòu)诺苹,對經(jīng)過上面歸一化處理得到的數(shù)據(jù)進行重構(gòu)咕晋,得到

? y_i = \gamma \hat x_i + \beta?

其中,γ,β 為可學(xué)習(xí)參數(shù)收奔。

注:上述是 BN 訓(xùn)練時的過程掌呜,但是當(dāng)在投入使用時,往往只是輸入一個樣本坪哄,沒有所謂的均值 μβ 和標(biāo)準(zhǔn)差 σ2β质蕉。此時,均值 μβ 是計算所有 batch μβ 值的平均值得到翩肌,標(biāo)準(zhǔn)差 σ2β 采用每個batch σ2β 的無偏估計得到模暗。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市念祭,隨后出現(xiàn)的幾起案子兑宇,更是在濱河造成了極大的恐慌,老刑警劉巖粱坤,帶你破解...
    沈念sama閱讀 210,978評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件隶糕,死亡現(xiàn)場離奇詭異,居然都是意外死亡站玄,警方通過查閱死者的電腦和手機枚驻,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,954評論 2 384
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來株旷,“玉大人测秸,你說我怎么就攤上這事≡殖#” “怎么了?”我有些...
    開封第一講書人閱讀 156,623評論 0 345
  • 文/不壞的土叔 我叫張陵铃拇,是天一觀的道長钞瀑。 經(jīng)常有香客問我,道長慷荔,這世上最難降的妖魔是什么雕什? 我笑而不...
    開封第一講書人閱讀 56,324評論 1 282
  • 正文 為了忘掉前任,我火速辦了婚禮显晶,結(jié)果婚禮上贷岸,老公的妹妹穿的比我還像新娘。我一直安慰自己磷雇,他們只是感情好偿警,可當(dāng)我...
    茶點故事閱讀 65,390評論 5 384
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著唯笙,像睡著了一般螟蒸。 火紅的嫁衣襯著肌膚如雪盒使。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,741評論 1 289
  • 那天七嫌,我揣著相機與錄音少办,去河邊找鬼。 笑死诵原,一個胖子當(dāng)著我的面吹牛英妓,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播绍赛,決...
    沈念sama閱讀 38,892評論 3 405
  • 文/蒼蘭香墨 我猛地睜開眼蔓纠,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了惹资?” 一聲冷哼從身側(cè)響起贺纲,我...
    開封第一講書人閱讀 37,655評論 0 266
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎褪测,沒想到半個月后猴誊,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,104評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡侮措,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,451評論 2 325
  • 正文 我和宋清朗相戀三年懈叹,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片分扎。...
    茶點故事閱讀 38,569評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡澄成,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出畏吓,到底是詐尸還是另有隱情墨状,我是刑警寧澤,帶...
    沈念sama閱讀 34,254評論 4 328
  • 正文 年R本政府宣布菲饼,位于F島的核電站肾砂,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏宏悦。R本人自食惡果不足惜镐确,卻給世界環(huán)境...
    茶點故事閱讀 39,834評論 3 312
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望饼煞。 院中可真熱鬧源葫,春花似錦、人聲如沸砖瞧。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,725評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽芭届。三九已至储矩,卻和暖如春感耙,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背持隧。 一陣腳步聲響...
    開封第一講書人閱讀 31,950評論 1 264
  • 我被黑心中介騙來泰國打工即硼, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人屡拨。 一個月前我還...
    沈念sama閱讀 46,260評論 2 360
  • 正文 我出身青樓只酥,卻偏偏與公主長得像,于是被迫代替她去往敵國和親呀狼。 傳聞我的和親對象是個殘疾皇子裂允,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,446評論 2 348

推薦閱讀更多精彩內(nèi)容