天天看點

Ng機器學習筆記-1-一進制線性回歸

一:回歸模型介紹

從理論上講,回歸模型即用已知的資料變量來預測另外一個資料變量,已知的資料屬性稱為輸入或者已有特征,想要預測的資料稱為輸出或者目标變量。

下圖是一個例子:

Ng機器學習筆記-1-一進制線性回歸
Ng機器學習筆記-1-一進制線性回歸

  圖中是某地區的面積大小與房價的關系圖,輸入變量X是面積,輸出變量Y是房價,把已有的資料集(x,y)作為一個訓練資料,拟合出線性回歸模型,利用線性回歸模型預測出一給定面積房子的價格。

下圖1-3是典型的學習過程

Ng機器學習筆記-1-一進制線性回歸

                                                              圖1-3 學習過程   

其中,h是估計函數,對應到線性回歸中就是一個線性關系式

Ng機器學習筆記-1-一進制線性回歸

,輸入變量x,經過估計函數,輸出相應的估計值y。

二:代價函數

Ng機器學習筆記-1-一進制線性回歸
Ng機器學習筆記-1-一進制線性回歸

      在一進制線性回歸中有兩個參數:theta0,theta1的值是未知的,這兩個參數的值決定了估計函數的好壞。估計值

Ng機器學習筆記-1-一進制線性回歸

與真實值y之間的差越小,說明估計函數越好,是以,選擇參數theta0,theta1的标準就設為

Ng機器學習筆記-1-一進制線性回歸

,選擇能夠使得函數J(theta0,theta1)得到最小值的一對參數(theta0,theta1)作為最終的參數值。我們稱函數

J(theta0,theta1)為代價函數。

     下面進行舉例分析,為友善了解代價函數和線性回歸估計函數,先假設theta0=0,即

Ng機器學習筆記-1-一進制線性回歸

,給定三組訓練資料(1,1)、(2,2)、(3,3),現在訓練一線性回歸估計函數,使得它能夠最大限度的磨合訓練資料,即目标是求得參數theta1的值,使得代價函數值最小,如下圖所示: 

Ng機器學習筆記-1-一進制線性回歸

    左圖是不同theta1值對應的估計函數線性圖,右圖是不同theta1對應的代價函數值,可以看出當theta1=1的時候,代價函數值達到了最小值0,是以最終選擇theta1=1。

    下面是簡單的練習題:

Ng機器學習筆記-1-一進制線性回歸

   上面設theta0=0,簡單的對代價函數進行了分析,下面看下有兩個參數theta0、theta1的情況:

Ng機器學習筆記-1-一進制線性回歸

    圖中紅色的叉叉代表訓練資料,當隻有參數theta1的時候,代價函數圖是二維的平面圖,但是當有兩個參數時,代價函數就是一個三維圖,如下所示:

Ng機器學習筆記-1-一進制線性回歸

   從代價函數三維圖中可以看出,位于曲平面最中間的點所在的坐标(theta0,theta1)可以使得代價函數值取得最小值,為友善起見,把代價函數的三維圖換成等高線圖,即把曲平面映射到地面。如下所示:

Ng機器學習筆記-1-一進制線性回歸
Ng機器學習筆記-1-一進制線性回歸
Ng機器學習筆記-1-一進制線性回歸

   代價函數等高線圖中,在相同顔色曲線上的點有相同大小的代價函數值,随着參數theta0,theta1的調整,估計函數線逐漸與訓練資料重合,代價函數值逐漸變小,最終到達曲線平面的最中點。

三:梯度下降法

  第二節中,我們畫出代價函數關于參數theta0,theta1的圖形,從圖中可以大概得知取得最小代價函數值時所對應的參數值,但是當參數個數多于2個的時候,這種方法就不适用了,是以本節研究自動擷取最佳參數的方法:梯度下降法。

  梯度下降法是機器學習中常用的一種方法:

Ng機器學習筆記-1-一進制線性回歸
Ng機器學習筆記-1-一進制線性回歸
Ng機器學習筆記-1-一進制線性回歸

這裡梯度下降法的應用可以想象成是:把代價函數圖看成是一座山,從山上任意一點出發下山,在給定步伐大小情況下,需要在最快時間内走到山腳,也許不同的出發點可能到達不同的山腳,但是它們的海拔高度可能差不多。

具體的算法流程如下:

Ng機器學習筆記-1-一進制線性回歸

  1:先給theta0,theta1設定初始值,即對應着下山的出發點。

  2:設定下山步伐大小,即對應

Ng機器學習筆記-1-一進制線性回歸

,代表學習率。

  3:為了能夠快速的到達山腳,在相同步伐大小情況下,往梯度最大方向走肯定最快,梯度大小也就是對應着上圖中的斜率

Ng機器學習筆記-1-一進制線性回歸

  4:每次都同時更新參數theta0,theta1,圖中左下側的更新公式是正确的,右下側是錯誤的。

  參數

Ng機器學習筆記-1-一進制線性回歸

的大小決定了代價函數是否能夠逐漸收斂到一比較小的值,下圖所示:

Ng機器學習筆記-1-一進制線性回歸

  以參數theta1的更新舉例,斜率大小可能是正值也可能是負值,如果是正值則參數theta1逐漸變小,如果是負值,則參數theta1逐漸變大。

Ng機器學習筆記-1-一進制線性回歸

  是以,如果參數

Ng機器學習筆記-1-一進制線性回歸

太小,梯度下降的速度雖然會比較慢,但是肯定會逐漸收斂到一極小值,但是如果

Ng機器學習筆記-1-一進制線性回歸

太大,則可能導緻代價函數不能收斂到極小值,并且是兩邊交叉變化的,如上圖所示。

  四:線性回歸對應的梯度下降法

下圖是線性回歸對應的梯度下降法,是一個不斷疊代的過程。

Ng機器學習筆記-1-一進制線性回歸
Ng機器學習筆記-1-一進制線性回歸

  最終的的算法流程如下:

Ng機器學習筆記-1-一進制線性回歸

簡單測試題:

Ng機器學習筆記-1-一進制線性回歸

五:總結

本節主要介紹了一進制線性回歸、代價函數、梯度下降法,在求一進制線性回歸中的參數估計時,用到了梯度下降法,在下面的一章節中将進行習題練習和實驗實作本節介紹的方法。

除了梯度下降法求參數估計值外,還有常用的利用最小二乘法的正規方程方法,也将在下面的章節中進行介紹和對比。

繼續閱讀