在網上能夠搜到很多關於梯度下降演算法的文章,但找了幾篇發現推導都不能很好的理解(也可能是愚生數學功底差),本文將著重從數學角度講述一下梯度下降演算法的數學推導。h(
θ)=θ
0+θ1
∗x1
,然後計算cost function: j(
θ)=1
2m∑i
=0m(
hθ(x
)−y)
2 很明顯這是計算在某乙個
θ 向量取值的時候,所得擬合函式在每組資料
x 上的計算值與其實際值
y的差值,為了更好的展現這種誤差,我們用平方和均值來表示,為了後面的計算方便還將其乘以12
。那麼,後面的問題就是,當我們能夠求得一組
θ 值使得j(
θ)得到最小值的時候,我們就認為得到了最佳擬合引數–
θ 向量。因此,線性擬合模型的問題,最後就歸結到了cost function的最小值計算了。那麼這裡要介紹的方法就是梯度下降方法。我們通過梯度下降的方法來尋找j(
θ)的最小值。 j(
θ)的導數,通過尋找導數最小值的方式,來決定j(
θ)的下降方向,在不斷的迭代之後,即可找到j(
θ)的最小值。以下就是j(
θ)的求導計算: j(
θ)′=
(12m
∑i=0
m(hθ
(x)−
y)2)
′=12
m(∑i
=0m(
hθ(x
)−y)
2)′=
12m2
(hθ(
x)−y
)∑i=
0m(h
θ(x)
−y)′
=1m(
hθ(x
)−y)
∑i=0
m(hθ
)′=1
m(hθ
(x)−
y)∑i
=0m(
θ0+θ
1x1+
θ2x2
+...
+θn)
′ 所以:j(θ
j)′=
1m(h
θ(x)
−y)∑
i=0m
(θ0+
θ1x1
+θ2x
2+..
.+θn
)′=1
m(hθ
(x)−
y)xj
在梯度下降演算法中,我們需要不斷收斂各個θj
,尋找j(
θ)的最小值。θj
在其導數方向上減少(下降),即可使得j(
θ)達到最小值,最後當j(
θ)收斂時,則停止θj
的計算。具體如下:
θ 取隨機值(初始值)
repeat: 計算h
(θ) ,將第乙個樣本資料y代入,更新θj
-= (h
(θ)−
y)θj
,更新每個θj
,然後把剩下的資料代入,得到一組新的θ
計算各組資料在新的
θ 下的h(
θ)值與實際值y的誤差,當誤差小於閾值時.
停止repeat。
完成計算,得到擬合函式h(
θ)
機器學習系列 梯度下降
梯度下降介紹 梯度介紹 在微積分裡面,對多元函式的引數求 偏導數,把求得的各個引數的偏導數以向量的形式寫出來,就是梯度。比如函式f x,y 分別對x,y求偏導數,求得的梯度向量就是 f x,f y t,簡稱grad f x,y 或者 f x,y 對於在點 x0,y0 的具體梯度向量就是 f x 0,...
梯度下降演算法 梯度下降演算法公式推導
場景假設 梯度下降法的基本思想可以模擬為乙個下山的過程。假設這樣乙個場景 乙個人被困在山上,需要從山上下來 找到山的最低點 但此時山上的濃霧很大,導致可視度很低 因此,下山的路徑就無法確定,必須利用自己周圍的資訊一步一步地找到下山的路。這個時候,便可利用梯度下降演算法來幫助自己下山。怎麼做呢,首先以...
梯度下降演算法推導
x y 都表示 權重,f 表示損失函式。f x delta x,y delta y f x,y frac cdot delta x frac cdot delta y f x delta x,y delta y f x,y frac cdot delta x frac cdot delta y de...