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