梯度下降法(gradient descent)或最速下降法(steepest descent)是求解無約束最優化問題的一種最常用的方法。梯度下降法是迭代演算法,每一步需要求解目標函式的梯度向量。
假設f(x)是rn上具有一階連續偏導數的函式,要求解的無約束最優化問題是
x*表示目標函式f(x)的極小點。
提梯度下降法是一種迭代演算法。選取適當的初值x
(0),不斷迭代,更新x值,進行目標函式的極小化,直到收斂。由於負梯度方向是使函式值下降最快的方向,在迭代的每一步,以負梯度方向更新x的值,從而達到減少函式值的目的。
由於f(x)具有一階連續偏導數,若第k次迭代值為x
(k),則可將f(x)在x
(k)附近進行一階展泰勒開:
這裡,
為f(x)在x
(k)的梯度。
求出第k+1次迭代值x
(k+1):
其中,pk
是搜尋方向,取負梯度方向
,λk是步長,由一維搜尋確定,即λk
使得:
梯度下降演算法如下:
輸入:目標函式 f(x),梯度函式
,計算精度ε;
輸出:f(x)的極小點x
*(1)取初值x(
0)∈rn,置k=0
(2)計算f(x(k))
(3)計算梯度gk=g(x(k)),當||gk||
(4)置x(k+1)=x(k)+λkpk,計算f(x(k+1))
當||f(x(k+1))-f(x(k))||
*=x(k+1)
(5)否則,置k=k+1,轉(3)
梯度下降法和隨機梯度下降法
批量梯度下降法 batch gradient descent 在更新引數時使用所有的樣本來進行更新 隨機梯度下降法 stochastic gradient descent 求梯度時沒有用所有的m個樣本的資料,而是僅僅選取乙個樣本j來求梯度。小批量梯度下降法 mini batch gradient d...
梯度下降法
梯度下降法 是乙個一階 最優化演算法 通常也稱為 最速下降法 我之前也沒有關注過這類演算法。最近,聽史丹福大學的機器學習課程時,碰到了用梯度下降演算法求解線性回歸問題,於是看了看這類演算法的思想。今天只寫了一些入門級的知識。我們知道,函式的曲線如下 程式設計實現 c code cpp view pl...
梯度下降法
回歸 regression 梯度下降 gradient descent 發表於332 天前 技術,科研 被圍觀 1152 次 前言 這個系列主要想能夠用數學去描述機器學習,想要學好機器學習,首先得去理解其中的數學意義,不一定要到能夠輕鬆自如的推導中間的公式,不過至少得認識這些 式子吧,不然看一些相關...