色婷婷AⅤ一区二区三区|亚洲精品第一国产综合亚AV|久久精品官方网视频|日本28视频香蕉

          "); //-->

          博客專欄

          EEPW首頁 > 博客 > [Machine Learning] 梯度下降法的三種形式BGD、SGD以及MBGD

          [Machine Learning] 梯度下降法的三種形式BGD、SGD以及MBGD

          發(fā)布人:數(shù)據(jù)派THU 時(shí)間:2021-11-11 來源:工程師 發(fā)布文章

          來源:信息網(wǎng)絡(luò)工程研究中心

          1. 批量梯度下降法BGD

          2. 隨機(jī)梯度下降法SGD

          3. 小批量梯度下降法MBGD

          4. 總結(jié)

          在應(yīng)用機(jī)器學(xué)習(xí)算法時(shí),我們通常采用梯度下降法來對(duì)采用的算法進(jìn)行訓(xùn)練。其實(shí),常用的梯度下降法還具體包含有三種不同的形式,它們也各自有著不同的優(yōu)缺點(diǎn)。

          下面我們以線性回歸算法來對(duì)三種梯度下降法進(jìn)行比較。

          一般線性回歸函數(shù)的假設(shè)函數(shù)為:

          image.png

          對(duì)應(yīng)的能量函數(shù)(損失函數(shù))形式為:

          image.png 

          下圖為一個(gè)二維參數(shù)1636633720766295.png組對(duì)應(yīng)能量函數(shù)的可視化圖:

          image.png

          1. 批量梯度下降法BGD

          批量梯度下降法(Batch Gradient Descent,簡稱BGD)是梯度下降法最原始的形式,它的具體思路是在更新每一參數(shù)時(shí)都使用所有的樣本來進(jìn)行更新,其數(shù)學(xué)形式如下:

          (1) 對(duì)上述的能量函數(shù)求偏導(dǎo):

          image.png

          (2) 由于是最小化風(fēng)險(xiǎn)函數(shù),所以按照每個(gè)參數(shù)θ梯度負(fù)方向來更新每個(gè)θ

          image.png

          具體的偽代碼形式為:

            repeat{    

            image.png

                 ?。╢or every j=0, ... , n)

            }

          從上面公式可以注意到,它得到的是一個(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)練過程會(huì)很慢。

          從迭代的次數(shù)上來看,BGD迭代的次數(shù)相對(duì)較少。其迭代的收斂曲線示意圖可以表示如下:

          image.png

          2. 隨機(jī)梯度下降法SGD

          由于批量梯度下降法在更新每一個(gè)參數(shù)時(shí),都需要所有的訓(xùn)練樣本,所以訓(xùn)練過程會(huì)隨著樣本數(shù)量的加大而變得異常的緩慢。隨機(jī)梯度下降法(Stochastic Gradient Descent,簡稱SGD)正是為了解決批量梯度下降法這一弊端而提出的。

          將上面的能量函數(shù)寫為如下形式:

          image.png

          利用每個(gè)樣本的損失函數(shù)對(duì)θ偏導(dǎo)得到對(duì)應(yīng)的梯度,來更新θ:

          image.png

          具體的偽代碼形式為:

            1. Randomly shuffle dataset;

            2. repeat{

              for i=1, ... ,m{

                image.png

                 (for j=0, ... ,n)

              }

            }

          隨機(jī)梯度下降是通過每個(gè)樣本來迭代更新一次,如果樣本量很大的情況(例如幾十萬),那么可能只用其中幾萬條或者幾千條的樣本,就已經(jīng)將theta迭代到最優(yōu)解了,對(duì)比上面的批量梯度下降,迭代一次需要用到十幾萬訓(xùn)練樣本,一次迭代不可能最優(yōu),如果迭代10次的話就需要遍歷訓(xùn)練樣本10次。但是,SGD伴隨的一個(gè)問題是噪音較BGD要多,使得SGD并不是每次迭代都向著整體最優(yōu)化方向。

          優(yōu)點(diǎn):訓(xùn)練速度快;

          缺點(diǎn):準(zhǔn)確度下降,并不是全局最優(yōu);不易于并行實(shí)現(xiàn)。

          從迭代的次數(shù)上來看,SGD迭代的次數(shù)較多,在解空間的搜索過程看起來很盲目。其迭代的收斂曲線示意圖可以表示如下:

          image.png

          3. 小批量梯度下降法MBGD

          由上述的兩種梯度下降法可以看出,其各自均有優(yōu)缺點(diǎn),那么能不能在兩種方法的性能之間取得一個(gè)折中呢?即,算法的訓(xùn)練過程比較快,而且也要保證最終參數(shù)訓(xùn)練的準(zhǔn)確率,而這正是小批量梯度下降法(Mini-batch Gradient Descent,簡稱MBGD)的初衷。

          MBGD在每次更新參數(shù)時(shí)使用b個(gè)樣本(b一般為10),其具體的偽代碼形式為:

            Say b=10, m=1000.

            Repeat{

              for i=1, 11, 21, 31, ... , 991{

          image.png

              (for every j=0, ... ,n)

              }

            }

          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.

          *博客內(nèi)容為網(wǎng)友個(gè)人發(fā)布,僅代表博主個(gè)人觀點(diǎn),如有侵權(quán)請(qǐng)聯(lián)系工作人員刪除。



          關(guān)鍵詞: 深度學(xué)習(xí)

          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉