一:回歸模型介紹
從理論上講,回歸模型即用已知的資料變量來預測另外一個資料變量,已知的資料屬性稱為輸入或者已有特征,想要預測的資料稱為輸出或者目标變量。
下圖是一個例子:
圖中是某地區的面積大小與房價的關系圖,輸入變量X是面積,輸出變量Y是房價,把已有的資料集(x,y)作為一個訓練資料,拟合出線性回歸模型,利用線性回歸模型預測出一給定面積房子的價格。
下圖1-3是典型的學習過程
圖1-3 學習過程
其中,h是估計函數,對應到線性回歸中就是一個線性關系式
,輸入變量x,經過估計函數,輸出相應的估計值y。
二:代價函數
在一進制線性回歸中有兩個參數:theta0,theta1的值是未知的,這兩個參數的值決定了估計函數的好壞。估計值
與真實值y之間的差越小,說明估計函數越好,是以,選擇參數theta0,theta1的标準就設為
,選擇能夠使得函數J(theta0,theta1)得到最小值的一對參數(theta0,theta1)作為最終的參數值。我們稱函數
J(theta0,theta1)為代價函數。
下面進行舉例分析,為友善了解代價函數和線性回歸估計函數,先假設theta0=0,即
,給定三組訓練資料(1,1)、(2,2)、(3,3),現在訓練一線性回歸估計函數,使得它能夠最大限度的磨合訓練資料,即目标是求得參數theta1的值,使得代價函數值最小,如下圖所示:
左圖是不同theta1值對應的估計函數線性圖,右圖是不同theta1對應的代價函數值,可以看出當theta1=1的時候,代價函數值達到了最小值0,是以最終選擇theta1=1。
下面是簡單的練習題:
上面設theta0=0,簡單的對代價函數進行了分析,下面看下有兩個參數theta0、theta1的情況:
圖中紅色的叉叉代表訓練資料,當隻有參數theta1的時候,代價函數圖是二維的平面圖,但是當有兩個參數時,代價函數就是一個三維圖,如下所示:
從代價函數三維圖中可以看出,位于曲平面最中間的點所在的坐标(theta0,theta1)可以使得代價函數值取得最小值,為友善起見,把代價函數的三維圖換成等高線圖,即把曲平面映射到地面。如下所示:
代價函數等高線圖中,在相同顔色曲線上的點有相同大小的代價函數值,随着參數theta0,theta1的調整,估計函數線逐漸與訓練資料重合,代價函數值逐漸變小,最終到達曲線平面的最中點。
三:梯度下降法
第二節中,我們畫出代價函數關于參數theta0,theta1的圖形,從圖中可以大概得知取得最小代價函數值時所對應的參數值,但是當參數個數多于2個的時候,這種方法就不适用了,是以本節研究自動擷取最佳參數的方法:梯度下降法。
梯度下降法是機器學習中常用的一種方法:
這裡梯度下降法的應用可以想象成是:把代價函數圖看成是一座山,從山上任意一點出發下山,在給定步伐大小情況下,需要在最快時間内走到山腳,也許不同的出發點可能到達不同的山腳,但是它們的海拔高度可能差不多。
具體的算法流程如下:
1:先給theta0,theta1設定初始值,即對應着下山的出發點。
2:設定下山步伐大小,即對應
,代表學習率。
3:為了能夠快速的到達山腳,在相同步伐大小情況下,往梯度最大方向走肯定最快,梯度大小也就是對應着上圖中的斜率
。
4:每次都同時更新參數theta0,theta1,圖中左下側的更新公式是正确的,右下側是錯誤的。
參數
的大小決定了代價函數是否能夠逐漸收斂到一比較小的值,下圖所示:
以參數theta1的更新舉例,斜率大小可能是正值也可能是負值,如果是正值則參數theta1逐漸變小,如果是負值,則參數theta1逐漸變大。
是以,如果參數
太小,梯度下降的速度雖然會比較慢,但是肯定會逐漸收斂到一極小值,但是如果
太大,則可能導緻代價函數不能收斂到極小值,并且是兩邊交叉變化的,如上圖所示。
四:線性回歸對應的梯度下降法
下圖是線性回歸對應的梯度下降法,是一個不斷疊代的過程。
最終的的算法流程如下:
簡單測試題:
五:總結
本節主要介紹了一進制線性回歸、代價函數、梯度下降法,在求一進制線性回歸中的參數估計時,用到了梯度下降法,在下面的一章節中将進行習題練習和實驗實作本節介紹的方法。
除了梯度下降法求參數估計值外,還有常用的利用最小二乘法的正規方程方法,也将在下面的章節中進行介紹和對比。