一.梯度下降
梯度下降就是最簡單的用於神經網絡當中用於更新參數的用法,計算loss的公式如下:
有了loss function之后,我們立馬通過這個loss求解出梯度,並將梯度用於參數theta的更新,如下所示:
這樣做之后,我們只需要遍歷所有的樣本,就可以得到一個最終的參數theta了,這個參數可能是全局最小值,也可能不是,因為很有可能走入了一個loss的局部最小值當中。
二.隨機梯度下降(SGD)
隨機梯度下降與梯度下降相比,其實也會遍歷全部的樣本,但是只會梯度在遍歷同樣樣本數量的情況下會下降得更快。因為我們首先將全部樣本切分成m個樣本,然后對這m個樣本進行遍歷,更新參數,用一個一個切分后的樣本更新完參數之后,保留目前的theta的值,基於這個theta的值,繼續用下一個樣本進行參數theta的優化。
下面是梯度下降的loss在圖像當中的表示:
這是SGD,將樣本進行切分之后的loss的變化:
三.mini-batch梯度下降
mini-batch和SGD稍微有點不同,那就是mini-batch每次進行參數更新的同時,使用了多個樣本繼續參數的更新,loss下降的速度會比SGD更慢,但是結果回避SGD更加准確。
這就是我們常用的用於梯度下降的方法啦!希望大家有所收獲,有疑問的話可以在下方的疑問區提出!