以下是定義了乙個損失函式以後,引數 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 次 前言 這個系列主要想能夠用數學去描述機器學習,想要學好機器學習,首先得去理解其中的數學意義,不一定要到能夠輕鬆自如的推導中間的公式,不過至少得認識這些 式子吧,不然看一些相關...