梯度下降法原理

2022-07-12 14:45:21 字數 1731 閱讀 9170

求解機器學習演算法的模型引數,常用兩種方法:梯度下降,最小二乘法。此外還有牛頓法和擬牛頓法。

1. 梯度

對多元函式引數求偏導,把求得的偏導寫成向量形式。比如:f(x,y)對x,y求偏導,梯度就是(∂f/∂x, ∂f/∂y)t。

2. 梯度下降法詳解

梯度下降法有代數法和矩陣法兩種表示形式。

2.1 代數法

1. 先決條件:確認模型的假設函式和損失函式

線性回歸假設函式:

線性回歸損失函式:

2. 引數初始化

初始化θ0,θ1...θn,演算法終止距離ε,步長α。一般將所有的θ初始化為0,步長為1。

3. 演算法過程

(1)、求當前位置損失函式的梯度。

(2)、步長乘以梯度,得到當前位置下降距離。

(3)、確定是否所有的θi,梯度下降的距離都小於ε,如果小於ε演算法終止。當前所有θi(i = 1,2...n)為最終結果。否則進入步驟4.

(4)、更新所有的θ,更新完進入步驟1.

線性回歸的例子:

損失函式:

按步驟1對θi求偏導:

由於樣本中沒x0,所以上式令所有

為1。步驟4中θi更新表示式為:

注意:第3節講梯度下降法的變種,主要區別是對樣本選取的方法不同,這裡採用所有樣本。

2.2 矩陣法

1. 先決條件:確認模型的假設函式和損失函式

線性回歸假設函式:

線性回歸損失函式:

2. 引數初始化

初始化θ向量為預設值,演算法終止距離ε,步長α。一般將所有的θ初始化為0,步長為1。

線性回歸的例子:

θ向量求偏導數:

θ向量的更新表示式為:

2.3 梯度下降法調優

1. 步長選擇。步長太大,迭代會過快,可能錯過最優解;步長太小,迭代過慢。

2. 初始值選擇。初始值不同,最小值可能不同,因為梯度下降法求得的是區域性最小值。

3. 歸一化。不同特徵取值範圍不一樣,減少特徵取值的影響,對資料歸一化。

對每個特徵x,求它的期望

和標準差std(x),然後轉化為:

這樣得到新期望為0,新方差為1。

3. 梯度下降法(bgd,sgd,mbgd)

3.1 批量梯度下降法(batch gradient descent)

更新引數θi用所有樣本進行更新。

3.2 隨機梯度下降法(stochastic gradient descent)

更新引數θi僅用乙個樣本j進行更新。

3.3 小批量梯度下降法(mini-batch gradient descent)

小批量梯度下降法是批量梯度下降法和隨機梯度下降法的折中, 對於m個樣本,用x個樣本來更新。

來自:劉建平hθ

(x0,

x1,.

..xn

)=∑i

=0nθ

ixi'>hθ(x0,x1,...xn)=∑i=0nθixi

梯度下降法原理

該博文為一所寫,非常詳細易懂,故搬運過來以後方便回憶學習 一 為什麼需要梯度下降法 每個演算法模型都有自己的損失函式,而損失函式包含了各個位置上的引數,我們的最終目標都是要找到使模型損失函式盡可能小的引數。在學習簡單線性回歸時,我們使用最小二乘法來求損失函式的最小值,但是這只是乙個特例。在絕大多數的...

梯度下降法和隨機梯度下降法

批量梯度下降法 batch gradient descent 在更新引數時使用所有的樣本來進行更新 隨機梯度下降法 stochastic gradient descent 求梯度時沒有用所有的m個樣本的資料,而是僅僅選取乙個樣本j來求梯度。小批量梯度下降法 mini batch gradient d...

梯度下降法

梯度下降法 是乙個一階 最優化演算法 通常也稱為 最速下降法 我之前也沒有關注過這類演算法。最近,聽史丹福大學的機器學習課程時,碰到了用梯度下降演算法求解線性回歸問題,於是看了看這類演算法的思想。今天只寫了一些入門級的知識。我們知道,函式的曲線如下 程式設計實現 c code cpp view pl...