梯度下降演算法推導(機器學習系列 1)

2021-07-28 19:32:04 字數 1660 閱讀 9345

在網上能夠搜到很多關於梯度下降演算法的文章,但找了幾篇發現推導都不能很好的理解(也可能是愚生數學功底差),本文將著重從數學角度講述一下梯度下降演算法的數學推導。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...