3、 基本算法

SGD
SGD算法中一個關(guān)鍵參數(shù)是學(xué)習(xí)率,一般學(xué)習(xí)率應(yīng)隨著時間的推移逐漸降低,學(xué)習(xí)率的最終值應(yīng)設(shè)為大約初始值的1%。
3.2 動量

含有動量的更新規(guī)則
動量的主要目的是解決兩個問題:Hessian矩陣的病態(tài)條件和隨機梯度的方差。一個病態(tài)條件的二次目標函數(shù)看起來像一個長而窄的山谷,動量能夠正確的縱向穿過峽谷。而普通的梯度步驟則會浪費時間在峽谷的窄軸上來回移動。
3.3 Nesterov動量

Nesterov動量
在凸批量梯度的情況下,Nesterov動量能降低額外誤差收斂率,可惜在隨機梯度的情況下并沒有明顯效果。
4、參數(shù)初始化策略
這部分書里寫的不多,找時間再把xavier、MSRA什么的詳細寫一篇吧
5、自適應(yīng)學(xué)習(xí)率方法
5.1 AdaGrad

AdaGrad
5.2 RMSProp

RMSProp
5.3 Adam

Adam
6、 二階近似方法

牛頓法

共軛梯度法
7、 優(yōu)化策略和元方法
7.1 批標準化

image.png
BN保證了采樣自單位高斯的x經(jīng)過w以后,仍然能保持單位高斯。對于線性的模型,低層的參數(shù)在大多數(shù)情況下并沒有什么影響,它們的輸出總是重新標準化為單位高斯,學(xué)習(xí)這個模型也變得非常簡單,而沒有BN,幾乎每個更新都會對層輸出的統(tǒng)計量有著極端的影響。在上面的線性實例中,容易學(xué)習(xí)的代價是使得底層網(wǎng)絡(luò)沒有用,較低層不再有任何有害的影響,但他們也不再有任何有益的影響。而在具有非線性激活函數(shù)的深度神經(jīng)網(wǎng)絡(luò)中,較低層可以進行數(shù)據(jù)的非線性變換,所以它們?nèi)匀皇怯杏玫摹?br> 標準化一個單元的均值和標準差會降低包含該單元的神經(jīng)網(wǎng)絡(luò)的表達能力。為了保持網(wǎng)絡(luò)的表現(xiàn)力,通常會將H替換為

這樣新的參數(shù)可以表示舊參數(shù)作為輸入的同一族函數(shù),但是新參數(shù)有不同的學(xué)習(xí)動態(tài)。其均值不再由H下層中參數(shù)的復(fù)雜關(guān)聯(lián)決定,而是由BN層的參數(shù)決定,這樣新的參數(shù)很容易通過梯度下降來學(xué)習(xí)。