梯度下降法

2021-07-03 15:12:38 字數 3117 閱讀 5513

梯度下降法(gradient descent)或最速下降法(steepest descent)是求解無約束最優問題的一種常用的方法,實現簡單。梯度下降法是迭代演算法,每一步需要求解目標函式的梯度。

假設f(x)是rn

上具有一階連續偏導數的函式。求解的約束最優化問題是:

min

xεrn

f(x)

梯度下降法是一種迭代演算法。選取適當的初始值x(

0),不斷迭代,更新

x 的值,進行目標函式的極小化,知道收斂。由於負梯度方向是使函式值下降最快的方向,在迭代的每一步,以負梯度方向更新

x的值,從而減小目標函式的目的。由於f

(x) 具有一階連續偏導數,若第

k 次迭代值為xk

,則可將f(

x)在x

k 附近進行一階泰勒展開: f(

x)=f

(xk)

+gtk

(x−x

k)這裡,gk

=g(x

(k))

=▽f(

x(k)

) 為f(

x) 在x

(k) 的梯度。

求出第k+1

次迭代值x(

k+1)

: x(

k+1)

=x(k

)+λk

pk其中,pk

是搜尋方向,取負梯度方向pk

=−▽f

(xk)

,λk 是步長,由一維搜尋確定,即λk

使得: f(

xk+λ

kpk)

=min

λ≥0f

(x(k

)+λk

pk)

輸入:目標函式f(

x),梯度函式g(

x)=▽

f(x)

,計算精度ϵ

輸出:f(x

) 的極小點x∗

1.取初始值x0

ϵrn ,置k=

0 2.計算f(

xk)

3.計算梯度gk

=g(x

(k))

,當∥g

k∥<

ϵ 時,停止迭代,令x∗

=xk ;否則,令pk

=−g(

x(k)

) ,求λk

,使f(

xk+λ

kpk)

=min

λ≥0f

(x(k

)+λk

pk)

4.置x(k

+1)=

x(k)

+λkp

k ,計算f(

x(k+

1)) ,當∥∥

f(x(

k+1)

)−f(

x(k))∥∥

∥∥x(

k+1)

−x(k

)∥∥<

ε 時,停止迭代,令x∗

=xk+

1 5.否則,置k=

k+1 ,轉向3

當目標函式是凸函式時候,梯度下降法的解就是全域性最優解。一般情況,不能保證是全域性最優解,同時梯度下降法不一定是最快的。

1.當去正梯度方向時候,是梯度上公升法

2.對於線性回歸問題中

) 是已經知道的,訓練集中的資料,h(

x)是我們的**值,

n 是模型中特徵的個數,x0

=1,因為線性方程中可能存在常數項

對給定的訓練集,我們要盡可能的準確**出,要保證代價函式最小

根據梯度下降法,我們需要最小化代價函式來求出θ

迭代公式如下:

α 是步長

對代價函式求導

則:每次迭代的θ

注: 1.迭代公式左邊的θj

: 可以理解為θj

+12.如果在迭代的過程中,每次隨機的選取x(

i)就是隨機梯度下降法

3.在上面的迭代公式中我們可以看出,每次的迭代誤差是:

這個過程叫:batch gradient descent增量梯度下降法

注意:這裡θj

是乙個數,不是向量,對每次是更新乙個值,而上面的對

x 求導是最向量求導,每次更新的是所有的值

m是訓練集樣本數量

4.為了提高速度,不需要每天都要計算所有的誤差

隨機梯度下降法應運而生,stochastic gradient descent

5.矩陣計算形式

令導數為0 xt

xθ=x

ty t

hen

θ=(x

tx)−

1xty

6.上面的過程可以是最小二乘法原理,同時也是線性擬合的過程。

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

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

梯度下降法

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

梯度下降法

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