梯度下降法

2021-09-24 14:13:00 字數 3550 閱讀 6695

在一元函式y=f

(x)y=f(x)

y=f(x)

中,導數就是函式的變化率。

d yd

x\frac

dxdy​

二元函式z=f

(x,y

)z=f(x,y)

z=f(x,

y),乙個z

zz對應乙個x

xx和乙個y

yy,那就有兩個導數了,乙個是z

zz對x

xx的導數,乙個是z

zz對y

yy的導數,稱之為偏導。

[ ∂z

∂x∂z

∂y]\begin }\\ {}\\ }\\ \end

⎣⎡​∂x∂

z​∂y

∂z​​

⎦⎤​(注意:在 xoy

xoyxo

y 平面內,當動點由 p(x

0,y0

)p(x_0,y_0)

p(x0​,

y0​)

沿不同方向變化時,函式 f(x

,y)f(x,y)

f(x,y)

的變化快慢一般來說是不同的,因此就需要研究f(x

,y)f(x,y)

f(x,y)

在( x0

,y0)

(x_0,y_0)

(x0​,y

0​)點處沿不同方向的變化率。在這裡我們只學習函式f(x

,y)f(x,y)

f(x,y)

沿著平行於x

xx軸和平行於y

yy軸兩個特殊方位變動時,f(x

,y)f(x,y)

f(x,y)

的變化率。)

而n

nn元函式f(x

1,x2

,⋯,x

n)f(x_1,x_2,⋯,x_n)

f(x1​,

x2​,

⋯,xn

​)的梯度是乙個長度為n

nn的向量,向量中第k

kk個元素為函式f

ff對變數x

kx_k

xk​的偏導數。

[ ∂f

∂x1∂

f∂x2

…∂f∂

xn]\begin }\\ }\\ \\ }\\ \end

⎣⎢⎢⎢⎡​

∂x1​

∂f​∂

x2​∂

f​…∂

xn​∂

f​​⎦

⎥⎥⎥⎤

​導數和偏導沒有本質區別,都是當自變數的變化量趨於0時,函式值的變化量與自變數變化量比值的極限。

梯度是乙個向量,乙個向量有大小和方向,梯度的方向是函式在給定點上公升最快的方向,那麼梯度的反方向就是函式在給定點下降最快的方向,這正是我們所需要的。所以我們只要沿著梯度的方向一直走,就能走到區域性的最低點!

首先,當你已經用乙個訓練集,暫時訓練出了乙個初步的模型,之所以說暫時是因為你的模型還可以繼續優化,可以得到更好的效果。

把乙個樣本扔給模型,模型給出**值,**值跟我們的真實值之間存在偏差,這個偏差稱為損失。每乙個樣本都會有損失,m個樣本對應乙個總的損失。

高數里我們學了多元函式,知道求乙個函式的極值點,通常找到其梯度為0的點,所以我們要先求損失函式的梯度。

梯度方向是乙個函式增長最快的方向,那麼梯度下降就是函式減小最快的方向,損失函式的每乙個值,都對應有一組 θ

\theta

θ ,所以在求我們最小損失函式的這個過程中,我們一直在不斷地更新我們地 θ

\theta

θ。batch gradient descent: use all examples in each iteration;

批量梯度下降法(batch gradient descent,簡稱bgd)是梯度下降法最原始的形式,每迭代一步,都要用到訓練集所有的資料。

stochastic gradient descent: use 1 example in each iteration;

隨機梯度下降法(stochastic gradient descent,簡稱sgd),一輪迭代只用一條隨機選取的資料,利用每個樣本的損失函式對θ求偏導得到對應的梯度,來更新θ。

mini-batch gradient descent: use b examples in each iteration,小批量梯度下降法(mini-batch gradient descent,簡稱mbgd)。sgd太極端,一次一條,為何不多幾條?mbgd就是用一次迭代多條資料的方法

首先,當你已經用乙個訓練集,暫時訓練出了乙個初步的模型,之所以說暫時是因為你的模型還可以繼續優化,可以得到更好的效果。

把乙個樣本扔給模型,模型給出**值,**值跟我們的真實值之間存在偏差,這個偏差稱為損失。每乙個樣本都會有損失,m個樣本對應乙個總的損失。

高數里我們學了多元函式,知道求乙個函式的極值點,通常找到其梯度為0的點,所以我們要先求損失函式的梯度。

梯度方向是乙個函式增長最快的方向,那麼梯度下降就是函式減小最快的方向,損失函式的每乙個值,都對應有一組 θ

\theta

θ ,所以在求我們最小損失函式的這個過程中,我們一直在不斷地更新我們地 θ

\theta

θ。批量梯度下降法為例:

1.目標函式

2.定義損失函式

3.目的是最小化損失函式

4.求損失函式關於θ

\theta

θ 的每乙個分量的偏導數

5.更新 θ

\theta

θ 的每乙個分量 θ

6. 好了,這就完成了一次迭代!

一次迭代的輸出結果就是乙個θ

\theta

θ,θ\theta

θ是乙個向量,

[ θ1

θ2…θ

j…θn

]\begin \\ \\ \\ \\ \\ \\ \end

⎣⎢⎢⎢⎢⎢

⎢⎡​θ

1​θ2

​…θj

​…θn

​​⎦⎥

⎥⎥⎥⎥

⎥⎤​7. 下一次迭代還會輸出另乙個新的θ

\theta

θ!

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

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

梯度下降法

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

梯度下降法

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