1. 程式人生 > >吳恩達機器學習課程筆記02——處理房價預測問題(梯度下降演算法詳解)

吳恩達機器學習課程筆記02——處理房價預測問題(梯度下降演算法詳解)

 

建議記住的實用符號

符號

含義

m

樣本數目

x

輸入變數

y

輸出變數/目標變數

(x,y)

訓練樣本

(x^(i),y^(i))

第i個訓練樣本

h

假設的函式( h(x) = y )

 

 

H函式:

                                   h

θ(x) = θ0 + θ1*x( h(x) )       【單變數線性迴歸模型】

備註:常用希臘字母

Α α:阿爾法 Alpha

Β β:貝塔 Beta

Γ γ:伽瑪 Gamma

Δ δ:德爾塔 Delte

Ε ε:艾普西龍 Epsilon

Ζ ζ :捷塔 Zeta

Ε η:依塔 Eta

Θ θ:西塔 Theta

Ι ι:艾歐塔 Iota

Κ κ:喀帕 Kappa

∧ λ:拉姆達 Lambda

Μ μ:繆 Mu

Ν ν:拗 Nu

Ξ ξ:克西 Xi

Ο ο:歐麥克輪 Omicron

∏ π:派 Pi

Ρ ρ:柔 Rho

∑ σ:西格瑪 Sigma

Τ τ:套 Tau

Υ υ:宇普西龍 Upsilon

Φ φ:fai Phi

Χ χ:器 Chi

Ψ ψ:普賽 Psi

Ω ω:歐米伽 Omega


1、已知訓練集

2、計算出恰當的θ0和θ1的值,使之得到的結果最接近已知的訓練集( hθ(x) = θ0 + θ1*x ),儘可能的讓其方差的1/2M的值最小。

代價函式(平方誤差函式): J(θ0, θ1) = 1/(2m)∑(h(x^(i) – y ^(i))²

 


代價函式和假設函式

左邊是假設函式:假設函式是為了確定θ1的值,是一個關於x的函式

右邊是代價函式:是一個關於θ1的函式,求得不同θ1的情況下,代價函式的值(即誤差的大小)。

同時考慮θ0和θ1所繪製的代價函式,其中點最低的部分則是我們理想的假設函式。

求θ0和θ1的演算法

【梯度下降】將代價函式的值(就房價問題的訓練集)進行視覺化,想象如果你在山頂,以最快的速度走到山腳(即快速找到θ0和θ1恰當的值,使代價函式的值在某個較小的值的範圍內)

梯度下降函式會給我們返回區域性最優解,不同的初始值也許到達的點不同(即對θ0和θ1剛開始賦值不同,得到的最終值也會不一樣)

  1. 給θ0和θ1設定初始值
  2. 通過梯度下降演算法得到區域性最優解

 

梯度下降演算法

解析:

:=       賦值運算子(對的就是一個冒號加等號)

=           類似於C語言中的==(不知道老師使用的是哪裡的語法,matlab不是這樣的 [○・`Д´・ ○])

α            學習速率,是一個數字(控制下山的距離,即控制θ值變化的大小,其大小與α成正比,α>0 )

           學過微積分的應該都知道,下面要進行推導

 

每一次都會重新對θ0和θ1重新賦值(同時更新,即兩個微分中的θ0和θ1都是它們原來的值)

 

 


 

第一個它的導數值為負數,因為y值隨著x值的升高而降低

                                                                          第二個它的導數值為正數,因為y值隨著x值的升高而升高

  • 由於代價函式的值恆大於零(有其表示式可知),所以我們可以很容易得到,無論θ所在的斜率是正是負,它永遠是朝中J(θ)值降低的方向移動。因此,導數項的意義是為了保證隨著θ的變化是朝著代價函式的值下降的那個方向。
  • α的值的大小也會影響到我們最終的結果,α值太小,會導致下降的比較慢,α太多,有可能會導致越過最低點。

如下圖

  • 代價函式和導數的值同樣起到對下降距離的調節作用,隨著代價函式的值逐步降低,下降的距離逐漸變小,也就如下圖所示。

下降演算法的之所以存在區域性最優解,與其演算法有關。當到達一個位置θ0和θ1的偏導數都為0時,θ0和θ1將不再改變,也就是說,會出現求得的值為極小值而不是最小值的情況。(如果存在θ0和θ1都為0的多個點)

這也就是我們的梯度下降,其中圈著的部分,分別是各自偏導數求出的結果