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

2022-05-30 03:57:14 字數 1294 閱讀 9704

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

梯度下降法流程:

(1)先對θ隨機賦值,可以是乙個全零的向量。

(2)改變θ的值,使j(θ)按梯度下降的方向減少。

以上式為例:

(1)對於我們的函式j(θ)求關於θ的偏導:

(2)下面是更新的過程,也就是θi會向著梯度最小的方向進行減少。θi表示更新之前的值,-後面的部分表示按梯度方向減少的量,α表示步長,也就是每次按照梯度減少的方向變化多少。

值得注意的是,梯度是有方向的,對於乙個向量θ,每一維分量θi都可以求出乙個梯度的方向,我們就可以找到乙個整體的方向,在變化的時候,我們就朝著下降最多的方向進行變化就可以達到乙個最小點,不管它是區域性的還是全域性的。

​ (1)將j(θ)對θ求偏導,得到每個θ對應的梯度(m為訓練樣本的個數):

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

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

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

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

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

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

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

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

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

批量梯度下降,隨機梯度下降,小批量梯度下降

在機器學習領域中,梯度下降的方式有三種,分別是 批量梯度下降法bgd 隨機梯度下降法sgd 小批量梯度下降法mbgd,並且都有不同的優缺點。下面我們以線性回歸演算法 也可以是別的演算法,只是損失函式 目標函式 不同而已,它們的導數的不同,做法是一模一樣的 為例子來對三種梯度下降法進行比較。假設 特徵...