梯度下降法 GradientDecsent

2021-08-28 18:24:57 字數 1823 閱讀 7022

以下是定義了乙個損失函式以後,引數 theta 對應的損失函式 j 的值對應的示例圖, 我們需要找到使得損失函式值 j 取得最小值對應的 theta(這裡是二維平面,也就是說資料集的特徵只有乙個), 在直線方程中,導數代表斜率; 在曲線方程中,導數代表切線斜率。這裡導數即為梯度。

​ 稱為學習率,它是梯度下降法的乙個超引數,它的取值反映獲得最優解的速度,取值不合適時甚至得不到最優解。

並不是所有的損失函式用梯度下降法都能夠找到全域性的最優解,有可能是乙個區域性最優解。 當然,如果損失函式是凸函式,梯度下降法得到的解就一定是全域性最優解。

資料集處理

每個樣本增加乙個特徵​​ ​$$x_0 =1$$

$$ \begin

&(x_1^0) &(x_2^0) &\cdots &(x_4^0) &(y^0)\\ 

&(x_1^1) &(x_2^1) &\cdots &(x_4^1) &(y^1)\\ 

& \cdots \\ 

&(x_1^n) &(x_2^n) &\cdots &(x_4^n) &(y^n)

\end 

\rightarrow 

\begin

&(x_0^0) &(x_1^0) &(x_2^0) &\cdots &(x_4^0) &(y^0)\\ 

&(x_0^1) &(x_1^1) &(x_2^1) &\cdots &(x_4^1) &(y^1)\\ 

& \cdots \\ 

&(x_0^n) &(x_1^n) &(x_2^n) &\cdots &(x_4^n) &(y^n)

\end$$

有​$$ \hat y^ = \theta _0 x_0^+ \theta_1 x_1^+  \theta_2 x_2^+\cdots +  \theta_n x_n^ $$

求解方法

二者步驟一樣:

1.確定損失函式,求其梯度表示式

損失函式:

$$j(\theta _0,\theta _1,\cdots , \theta _n) = \frac \sum_^(y^ - \hat y^)^  = \frac \sum_^(y^ - (\theta _0 x_0^+ \theta_1 x_1^+  \theta_2 x_2^+\cdots +  \theta_n x_n^ ))^2$$

係數​$$ \frac $$是為了方便求偏導

梯度表示式:

$$ \frac = \frac\sum_^(y^ - \hat y^)^x_j^i $$

2.學習率乘以損失函式的梯度,得到當前位置下降的距離

$$\eta \frac$$

3.確定是否對於所有的 ​ 梯度下降的距離都小於 ​ ,如果小於 ​ 則演算法終止,當前所有的 ​ 即為所求。

4.更新 ​ ,其更新表示式如下。更新完畢後繼續轉入步驟 1.

$$\theta _j^i = \theta _j^i - \eta \sum_^(y^ - \hat y^)^x_j^i$$

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

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

$$\theta _j^i = \theta _j^i - \eta \sum_^(y^ - \hat y^)^x^i$$

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

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

梯度下降法

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

梯度下降法

回歸 regression 梯度下降 gradient descent 發表於332 天前 技術,科研 被圍觀 1152 次 前言 這個系列主要想能夠用數學去描述機器學習,想要學好機器學習,首先得去理解其中的數學意義,不一定要到能夠輕鬆自如的推導中間的公式,不過至少得認識這些 式子吧,不然看一些相關...