在應(yīng)用機(jī)器學(xué)習(xí)算法時(shí),我們通常采用梯度下降法來(lái)對(duì)采用的算法進(jìn)行訓(xùn)練。其實(shí),常用的梯度下降法還具體包含有三種不同的形式,它們也各自有著不同的優(yōu)缺點(diǎn)。
下面我們以線性回歸算法來(lái)對(duì)三種梯度下降法進(jìn)行比較。
一般線性回歸函數(shù)的假設(shè)函數(shù)為:
對(duì)應(yīng)的能量函數(shù)(損失函數(shù))形式為:
下圖為一個(gè)二維參數(shù)(θ0和 θ1)組對(duì)應(yīng)能量函數(shù)的可視化圖:
01
批量梯度下降法BGD
批量梯度下降法(Batch Gradient Descent,簡(jiǎn)稱(chēng)BGD)是梯度下降法最原始的形式,它的具體思路是在更新每一參數(shù)時(shí)都使用所有的樣本來(lái)進(jìn)行更新,其數(shù)學(xué)形式如下:
(1) 對(duì)上述的能量函數(shù)求偏導(dǎo):
(2) 由于是最小化風(fēng)險(xiǎn)函數(shù),所以按照每個(gè)參數(shù)θ的梯度負(fù)方向來(lái)更新每個(gè) θ :
具體的偽代碼形式為:
從上面公式可以注意到,它得到的是一個(gè)全局最優(yōu)解,但是每迭代一步,都要用到訓(xùn)練集所有的數(shù)據(jù),如果樣本數(shù)目 m 很大,那么可想而知這種方法的迭代速度!所以,這就引入了另外一種方法,隨機(jī)梯度下降。
優(yōu)點(diǎn):
全局最優(yōu)解;易于并行實(shí)現(xiàn);
缺點(diǎn):
當(dāng)樣本數(shù)目很多時(shí),訓(xùn)練過(guò)程會(huì)很慢。
從迭代的次數(shù)上來(lái)看,BGD迭代的次數(shù)相對(duì)較少。其迭代的收斂曲線示意圖可以表示如下:
02
隨機(jī)梯度下降法SGD
由于批量梯度下降法在更新每一個(gè)參數(shù)時(shí),都需要所有的訓(xùn)練樣本,所以訓(xùn)練過(guò)程會(huì)隨著樣本數(shù)量的加大而變得異常的緩慢。隨機(jī)梯度下降法(Stochastic Gradient Descent,簡(jiǎn)稱(chēng)SGD)正是為了解決批量梯度下降法這一弊端而提出的。
將上面的能量函數(shù)寫(xiě)為如下形式:
利用每個(gè)樣本的損失函數(shù)對(duì)θ求偏導(dǎo)得到對(duì)應(yīng)的梯度,來(lái)更新 θ :
具體的偽代碼形式為:
隨機(jī)梯度下降是通過(guò)每個(gè)樣本來(lái)迭代更新一次,如果樣本量很大的情況(例如幾十萬(wàn)),那么可能只用其中幾萬(wàn)條或者幾千條的樣本,就已經(jīng)將theta迭代到最優(yōu)解了,對(duì)比上面的批量梯度下降,迭代一次需要用到十幾萬(wàn)訓(xùn)練樣本,一次迭代不可能最優(yōu),如果迭代10次的話就需要遍歷訓(xùn)練樣本10次。但是,SGD伴隨的一個(gè)問(wèn)題是噪音較BGD要多,使得SGD并不是每次迭代都向著整體最優(yōu)化方向。
優(yōu)點(diǎn):
訓(xùn)練速度快;
缺點(diǎn):
準(zhǔn)確度下降,并不是全局最優(yōu);不易于并行實(shí)現(xiàn)。
從迭代的次數(shù)上來(lái)看,SGD迭代的次數(shù)較多,在解空間的搜索過(guò)程看起來(lái)很盲目。其迭代的收斂曲線示意圖可以表示如下:
03
小批量梯度下降法MBGD
有上述的兩種梯度下降法可以看出,其各自均有優(yōu)缺點(diǎn),那么能不能在兩種方法的性能之間取得一個(gè)折衷呢?即,算法的訓(xùn)練過(guò)程比較快,而且也要保證最終參數(shù)訓(xùn)練的準(zhǔn)確率,而這正是小批量梯度下降法(Mini-batch Gradient Descent,簡(jiǎn)稱(chēng)MBGD)的初衷。
MBGD在每次更新參數(shù)時(shí)使用b個(gè)樣本(b一般為10),其具體的偽代碼形式為:
4. 總結(jié)
Batch gradient descent:Use all examples in each iteration;
Stochastic gradient descent:Use 1 example in each iteration;
Mini-batch gradient descent:Use b examples in each iteration.
-
函數(shù)
+關(guān)注
關(guān)注
3文章
4364瀏覽量
63814 -
梯度
+關(guān)注
關(guān)注
0文章
30瀏覽量
10435 -
機(jī)器學(xué)習(xí)
+關(guān)注
關(guān)注
66文章
8479瀏覽量
133820
原文標(biāo)題:梯度下降法的三種形式BGD、SGD以及MBGD
文章出處:【微信號(hào):Imgtec,微信公眾號(hào):Imagination Tech】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
常見(jiàn)算法優(yōu)缺點(diǎn)比較
回歸預(yù)測(cè)之入門(mén)
機(jī)器學(xué)習(xí)新手必學(xué)的三種優(yōu)化算法(牛頓法、梯度下降法、最速下降法)
回歸算法有哪些,常用回歸算法(3種)詳解
TensorFlow實(shí)現(xiàn)簡(jiǎn)單線性回歸
基于梯度下降法和互補(bǔ)濾波的航向姿態(tài)參考系統(tǒng)

一種結(jié)合梯度下降法的二層搜索粒子群算法

機(jī)器學(xué)習(xí)中梯度下降法的過(guò)程
梯度下降算法及其變種:批量梯度下降,小批量梯度下降和隨機(jī)梯度下降
掌握l(shuí)ogistic regression模型,有必要先了解線性回歸模型和梯度下降法

評(píng)論