Coursera公开课笔记: 斯坦福大学机器学习第四课“多变量线性回归(Linear Regression with Multiple Variables)”
Coursera公開課筆記: 斯坦福大學機器學習第四課“多變量線性回歸(Linear Regression with Multiple Variables)”
斯坦福大學機器學習第四課”多變量線性回歸“學習筆記,本次課程主要包括7部分:
1) Multiple features(多維特征)
2) Gradient descent for multiple variables(梯度下降在多變量線性回歸中的應用)
3) Gradient descent in practice I: Feature Scaling(梯度下降實踐1:特征歸一化)
4) Gradient descent in practice II: Learning rate(梯度下降實踐2:步長的選擇)
5) Features and polynomial regression(特征及多項式回歸)
6) Normal equation(正規方程-區別于迭代方法的直接解法)
7) Normal equation and non-invertibility (optional)(正規方程在矩陣不可逆情況下的解決方法)
以下是每一部分的詳細解讀:
1) Multiple features(多維特征)
第二課中我們談到的是單變量的情況,單個特征的訓練樣本,單個特征的表達式,總結起來如下圖所示:
對于多維特征或多個變量而言:以房價預測為例,特征除了“房屋大小外”,還可以增加“房間數、樓層數、房齡”等特征,如下所示:
定義:
n?=?特征數目
x(i)=?第i個訓練樣本的所有輸入特征,可以認為是一組特征向量
x(i)j =?第i個訓練樣本第j個特征的值,可以認為是特征向量中的第j個值
對于Hypothesis,不再是單個變量線性回歸時的公式:hθ(x)=θ0+θ1x
而是:
hθ(x)=θ0+θ1x1+θ2x2+…+θnxn
為了方便,記x0 =?1,則多變量線性回歸可以記為:
hθ(x)=θTx
其中θ和x都是向量。
?
2) Gradient descent for multiple variables(梯度下降在多變量線性回歸中的應用)
對于Hypothesis:
hθ(x)=θTx=θ0+θ1x1+θ2x2+…+θnxn
其中參數:θ0, θ1,…,θn可表示為n+1維的向量? θ
對于Cost?Function:
J(θ)=J(θ0,θ1,…,θn)=12m∑i=1m(hθ(x(i))–y(i))2
梯度下降算法如下:
對J(θ)求導,分別對應的單變量和多變量梯度下降算法如下:
當特征數目為1,也就是n=1時:
當特征數目大于1也就是n>1時,梯度下降算法如下:
?
3) Gradient descent in practice I: Feature Scaling(梯度下降實踐1:特征歸一化)
核心思想:確保特征在相似的尺度里。
例如房價問題:
特征1:房屋的大小(0-2000);
特征2:房間數目(1-5);
簡單的歸一化,除以每組特征的最大值,則:
?
目標:使每一個特征值都近似的落在?1≤xi≤1的范圍內。
舉例:因為是近似落在這個范圍內,所以只要接近的范圍基本上都可以接受,例如:
0<=x1<=3,?-2<=x2<=0.5,?-3?to?3,?-1/3?to?1/3?都ok;
但是:-100?to?100,?-0.0001?to?0.0001不Ok。
Mean?Normalization(均值歸一化):
用xi–μi替換xi使特征的均值近似為0(但是不對x0=1處理),均值歸一化的公式是:
xi←xi–μiSi
其中Si可以是特征的取值范圍(最大值-最小值),也可以是標準差(standard deviation).
對于房價問題中的兩個特征,均值歸一化的過程如下:
?
4) Gradient descent in practice II: Learning rate(梯度下降實踐2:步長的選擇)
對于梯度下降算法:
需要注意兩點:
-“調試”:如何確保梯度下降算法正確的執行;
-如何選擇正確的步長(learning?rate):? α;
第二點很重要,它也是確保梯度下降收斂的關鍵點。要確保梯度下降算法正確運行,需要保證 J(θ)在每一步迭代中都減小,如果某一步減少的值少于某個很小的值 ? ,?則其收斂。例如:
如果梯度下降算法不能正常運行,考慮使用更小的步長α,這里需要注意兩點:
1)對于足夠小的α,? J(θ)能保證在每一步都減小;
2)但是如果α太小,梯度下降算法收斂的會很慢;
總結:
1)如果α太小,就會收斂很慢;
2)如果α太大,就不能保證每一次迭代J(θ)都減小,也就不能保證J(θ)收斂;
如何選擇α-經驗的方法:
…,?0.001,?0.003,?0.01,?0.03,?0.1,?0.3,?1…
約3倍于前一個數。
5) Features and polynomial regression(特征及多項式回歸)
例子-房價預測問題:
特征x1表示frontage(正面的寬度),特征x2表示depth(深度)
同時x1,x2也可以用一個特征表示:面積 Area = frontage * depth
即 hθ(x)=θ0+θ1x , x表示面積。
多項式回歸:
很多時候,線性回歸不能很好的擬合給定的樣本點,例如:
所以我們選擇多項式回歸:
對于特征的選擇,除了n次方外,也可以開根號,事實上也是1/2次方:
6) Normal equation(正規方程-區別于迭代方法的直接解法)
相對于梯度下降方法,Normal?Equation是用分析的方法直接解決θ.
正規方程的背景:
在微積分里,對于1維的情況,如果θ 屬于R:
J(θ)=aθ2+bθ+c
求其最小值的方法是令:
ddθJ(θ)=…=0
然后得到θ.
?
同理,在多變量線性回歸中,對于θ∈Rn+1,Cost Function是:
求取θ的思路仍然是:
對于有4組特征(m=4)的房價預測問題:
其中X 是m * (n+1)矩陣:
y是m維向量:
則Normal?equation的公式為:
θ=(XTX)?1XTy
注:這里直接給出了正規方程的公式,沒有給出為什么是這樣的,如果想知道原因,建議看看MIT線性代數 第4章4.3節“最小二乘法”的相關內容,這里面最關鍵的一個點是:
“The partial derivatives of ||Ax–b||2 are zero when ATAx=ATb.
?
舉例可見官方的PPT,此處略;
Octave公式非常簡潔:pinv(X’?*?X)?*?X’?*?y
對于m個樣本,n個特征的問題,以下是梯度下降和正規方程的優缺點:
梯度下降:
需要選擇合適的learning?rate α;
需要很多輪迭代;
但是即使n很大的時候效果也很好;
Normal?Equation:
不需要選擇α;
不需要迭代,一次搞定;
但是需要計算(XTX)?1,其時間復雜度是O(n3)
如果n很大,就非常慢
?
7) Normal equation and non-invertibility (optional)(正規方程在矩陣不可逆情況下的解決方法)
對于Normal?Equation,如果XTX 不可逆怎么辦?
1) 去掉冗余的特征(線性相關):
例如以平方英尺為單位的面積x1,? 和以平方米為單位的面積x2,其是線性相關的:
x1=(3.28)2x2
2) 過多的特征,例如m?<=?n:
刪掉一些特征,或者使用regularization–之后的課程會專門介紹。
?
參考資料:
以下是第四課“多變量線性回歸”的課件資料下載鏈接,視頻可以在Coursera機器學習課程上觀看或下載: https://class.coursera.org/ml PPT?? PDF 另外關于第三課“線性代數回顧”,由于課程內容相對簡單,沒有以筆記的形式呈現,而是換了一種寫法,具體可參考:?線性代數的學習及相關資源 不過大家仍可從以下鏈接下載官方第三課的相關課件: PPT?? PDF 如轉載52opencourse上的任何原創文章,請務必注明出處,謝謝! 原文鏈接: Coursera公開課筆記: 斯坦福大學機器學習第四課“多變量線性回歸(Linear Regression with Multiple Variables)”總結
以上是生活随笔為你收集整理的Coursera公开课笔记: 斯坦福大学机器学习第四课“多变量线性回归(Linear Regression with Multiple Variables)”的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Coursera公开课笔记: 斯坦福大学
- 下一篇: 线性代数的学习及相关资源