1. 程式人生 > >機器學習筆記(2)單變量線性回歸

機器學習筆記(2)單變量線性回歸

learn 曲線 數學分析 spl 學習 裏的 計算 需要 全局

模型介紹

關於回歸問題的模型,相當於給一些x(自變量),y(因變量)的數據對構成的數據集,去建立一個數學函數模型(model),之後就能根據這個函數模型,給出x(自變量條件)之後,預測出y(因變量結果)的值。

這裏對於條件特征定義為x,結果定義為y。

Training Set(訓練集)--> Learning Algorithm(學習算法) --> h(假設函數)

然後在得到h之後,可以通過:

x(條件特征)--> h(假設函數) --> y(結果)

針對於這個思想和基本模型,可以利用比較多的數學上的統計方法做出模型。


代價函數

對於線性模型,我們常使用如下這個假設函數模型:

\[ h_θ(x)=θ_0+θ_1x \]
對於這個線性的假設函數,如何得到一個合適的θ0和θ1是的這個假設函數更契合我們需要預測的東西就至關重要了,這裏就需要用到所謂的代價函數。

平方誤差代價函數(數學定義)

我們希望\(h_θ(x^{(i)})-y^{(i)}\)盡可能的小,對於一整個樣本集合,可以使用以下的式子:
\[ J(θ_0,θ_1)=\frac{1}{2m}\sum_{i=1}^{m} {(h_θ(x^{(i)})-y^{(i)})^2} \]
其中m是樣本容量,也就是樣本數據的總數,之所以有個1/2的存在是因為對於\(J(θ_0,θ_1)\)需要求得最小值,就需要采用求導的方式,而構造的方式是誤差平方和就會出現一個系數2,可以相互消去,計算會更加方便。

分析

為什麽要對\(J(θ_0,θ_1)\)求得最小值,首先目的在於使得\(h_θ(x)\)這條函數曲線最符合數據集,在θ0=0的時候,根據圖像很容易的就能看出最符合數據集的曲線\(h_θ(x)\)的斜率θ1為參數的\(J(θ_1)\)最接近0(當所有樣本點全在曲線\(h_θ(x)\)上時,\(J(θ_1)\)=0)。

若兩個參數都不為0的時候,其代價函數\(J(θ_0,θ_1)\)可以被描繪為如下的圖形,其最小值依然代表最合適的曲線\(h_θ(x)\)系數取值。
技術分享圖片

其通過等高線圖描繪為如下:
技術分享圖片

梯度下降算法

定義

通過代價函數的意義,可以知道目的在於求得代價函數取得最小值時θ的取值,這就引入梯度下降算法。梯度下降算法通過設定初始值,然後從初始值慢慢逼近結果,利用叠代思想有點類似於求局部最優進而得到全局最優的結果(貪心

),這裏的全局最優指的是極小值而不是最小值。(其實這也是一種局部最優)
原課中打了一個很有意思的比方:

一個人在山頂(初始值),想要用最快的速度下山(到達極小值點),首先做的就是觀察四周,尋找目光所及的最小值點,然後移動下山,在新的地點反復這個操作。
技術分享圖片

數學分析

將以上的操作轉換為數學語言就是(一個單變量線性回歸的梯度下降算法式):
\[ θ_j:=θ_j-α\frac{?}{?θ_j}J(θ_0,θ_1) \]
\[ (for (j=0) and (j=1)) \]

  • (:=)符號是賦值的意思,pascal的記憶
  • α是學習率,從函數可以看出,α越大,函數變化的幅度就越大,也就能越快的到達目標值,也就代表著下山越快,如果α比較小的話,下山速度就會比較慢,其實對於導數的性質,當取到極小值的時候,導數值為0,這就是算法的邊界。
  • 關於計算這個是同步賦值,也就是說,各個參數是統一計算完,再一起賦值。與之對應的是異步賦值。

單變量線性回歸

利用以上算法,我們可以得到最後的單變量線性回歸的計算式子(由於單變量線性回歸函數的圖像特點,最後必然是全局最優點):
\[ h_θ(x)=θ_0+θ_1x \]
\[ J(θ_0,θ_1)=\frac{1}{2m}\sum_{i=1}^{m} {(h_θ(x^{(i)})-y^{(i)})^2} \]
\[ θ_0:=θ_0-α\frac{1}{m}\sum_{i=1}^{m} {(h_θ(x^{(i)})-y^{(i)})} \]
\[ θ_1:=θ_1-α\frac{1}{m}\sum_{i=1}^{m} {(h_θ(x^{(i)})-y^{(i)})·x^{(i)}} \]

機器學習筆記(2)單變量線性回歸