批處理梯度下降BGD與隨機梯度下降SGD

2021-06-23 01:41:41 字數 1268 閱讀 9692

梯度下降(gd)是最小化風險函式、損失函式的一種常用方法,隨機梯度下降和批量梯度下降是兩種迭代求解思路,下面從公式和實現的角度對兩者進行分析,如有哪個方面寫的不對,希望網友糾正。

下面的h(x)是要擬合的函式,j(theta)損失函式,theta是引數,要迭代求解的值,theta求解出來了那最終要擬合的函式h(theta)就出來了。其中m是訓練集的記錄條數,j是引數的個數。

1、批量梯度下降的求解思路如下:

(1)將j(theta)對theta求偏導,得到每個theta對應的的梯度

(2)由於是要最小化風險函式,所以按每個引數theta的梯度負方向,來更新每個theta

(3)從上面公式可以注意到,它得到的是乙個全域性最優解,但是每迭代一步,都要用到訓練集所有的資料,如果m很大,那麼可想而知這種方法的迭代速度!!所以,這就引入了另外一種方法,隨機梯度下降。

2、隨機梯度下降的求解思路如下:

(1)上面的風險函式可以寫成如下這種形式,損失函式對應的是訓練集中每個樣本的粒度,而上面批量梯度下降對應的是所有的訓練樣本:

(2)每個樣本的損失函式,對theta求偏導得到對應梯度,來更新theta

(3)隨機梯度下降是通過每個樣本來迭代更新一次,如果樣本量很大的情況(例如幾十萬),那麼可能只用其中幾萬條或者幾千條的樣本,就已經將theta迭代到最優解了,對比上面的批量梯度下降,迭代一次需要用到十幾萬訓練樣本,一次迭代不可能最優,如果迭代10次的話就需要遍歷訓練樣本10次。但是,sgd伴隨的乙個問題是噪音較bgd要多,使得sgd並不是每次迭代都向著整體最優化方向

缺點:每次迭代並不是沿著最陡的方向走,故巨集觀上看最後是沿著最小值點附近徘徊!!

梯度下降 隨機梯度下降 批梯度下降

下面的h x 是要擬合的函式,j 損失函式,theta是引數,要迭代求解的值,theta求解出來了那最終要擬合的函式h 就出來了。其中m是訓練集的記錄條數,j是引數的個數。梯度下降法流程 1 先對 隨機賦值,可以是乙個全零的向量。2 改變 的值,使j 按梯度下降的方向減少。以上式為例 1 對於我們的...

stanford 梯度 梯度下降,隨機梯度下降

一 梯度gradient 在標量場f中的一點處存在乙個向量g,該向量方向為f在該點處變化率最大的方向,其模也等於這個最大變化率的數值,則向量g稱為標量場f的梯度。在向量微積分中,標量場的梯度是乙個向量場。標量場中某一點上的梯度指向標量場增長最快的方向,梯度的長度是這個最大的變化率。更嚴格的說,從歐氏...

梯度下降 隨機梯度下降和批量梯度下降

對比梯度下降和隨機梯度下降和批量梯度下降 之前看的知識比較零散,沒有乙個系統的解釋說明,看了一些網上的博主的分析,總結了一下自己的理解。例子這裡我參照其他博主的例子做了一些修改,首先是梯度下降 coding utf 8 import random this is a sample to simula...