1 Mini-batch梯度下降

Mini-batch解決了批量梯度下降單次迭代樣本多,速度慢的問題,也解決了隨機(jī)梯度下降不穩(wěn)定的問題,能夠相對(duì)更快更好地收斂。但是,mini-batch和批量梯度下降一樣,更新方向完全依賴當(dāng)前batch,也是不穩(wěn)定的。Momentum算法解決了這個(gè)問題。
2 Momentum
Momentum又叫做gradient descent with momentum??梢园涯骋痪S度的歷史擺動(dòng)中和,從而達(dá)到沿著梯度方向快速下降的目的,如下圖所示。

Momentum用到了指數(shù)加權(quán)平均的思路,把歷史梯度的更新體現(xiàn)到當(dāng)前的梯度更新中,由于初始值為0還需要用到偏差修正的方法,來修正前幾輪數(shù)據(jù)。但在實(shí)際實(shí)戰(zhàn)中,幾輪過后,偏差就已經(jīng)不明顯,也可以忽略。另外,也有人把dw的系數(shù)1-β替換成1。
3 RMSprop
RMProps全稱root mean square props,是Hinton在Coursera的課程上首先提出來的,為了解決不同方向擺動(dòng)幅度不一致的問題。

從圖中可以看到,梯度更新多了一個(gè)分母,這個(gè)分母就是為了均衡不同維度的擺動(dòng)幅度。擺動(dòng)幅度統(tǒng)一后,可以適當(dāng)調(diào)大學(xué)習(xí)率α,加快訓(xùn)練速度。
4 Adam
Adam算法可以看做momentum和RMSprop的結(jié)合,更新過程如下圖。

迭代中用到了偏差修正。ε是為了防止分母為零,通常設(shè)置一個(gè)很小的值。圖中計(jì)算Sdb時(shí),db忘了加平方。算法中用到的超參數(shù)的經(jīng)驗(yàn)值如下圖。

Adam是目前最棒的優(yōu)化算法,不知道用什么的話選它就對(duì)了。