機器學習之旅(二)
吳恩達教授的機器學習課程的第二週相關內容:
1、多變數線性迴歸(Linear Regression with Multiple Variables)
1.1、多維特徵
代表特徵矩陣中第 i 行的第 j 個特徵,也就是第 i 個訓練例項的第 j 個特徵.
支援多變數的假設 h 表示為:
,這個公式中有 n+1 個引數和 n 個變數,為了使得公式能夠簡化一些,引入
,則公式轉化為:
此時模型中的引數是一個 n+1 維的向量,任何一個訓練例項也都是 n+1 維的向量,特徵矩陣 X 的維度是 m*(n+1)。 因此公式可以簡化為:
, 其中上標 T 代表矩陣轉置。
注意:這裡的x表示矩陣X的某一行,例如:
1.2、多變數梯度下降
與單變數線性迴歸類似,在多變數線性迴歸中,我們也構建一個代價函式,則這個代價函式是所有建模誤差的平方和,即:
其中:
我們的目標和單變數線性迴歸問題中一樣,是要找出使得代價函式最小的一系列引數。
多變數線性迴歸的批量梯度下降演算法為
我們開始隨機選擇一系列的引數值,計算所有的預測結果後,再給所有的引數一個新的值,如此迴圈直到收斂。
1.3、梯度下降法實踐 1-特徵縮放
在我們面對多維特徵問題的時候,我們要保證這些特徵都具有相近的尺度,這將幫助梯度下降演算法更快地收斂。
以房價問題為例,假設我們使用兩個特徵,房屋的尺寸和房間的數量,尺寸的值為 0-2000 平方英尺,而房間數量的值則是 0-5,以兩個引數分別為橫縱座標,繪製代價函式的等高線圖能, 看出影象會顯得很扁,梯度下降演算法需要非常多次的迭代才能收斂。
解決的方法是嘗試將所有特徵的尺度都儘量縮放到-1 到 1 之間。通常我們所用的方法是令:
,其中
是平均值,
是標準差,即:
1.4 梯度下降法實踐 2-學習率
梯度下降演算法收斂所需要的迭代次數根據模型的不同而不同,我們不能提前預知,我們可以繪製迭代次數和代價函式的圖表來觀測演算法在何時趨於收斂。
梯度下降演算法的每次迭代受到學習率的影響, 如果學習率 α 過小, 則達到收斂所需的迭代次數會非常高; 如果學習率 α 過大, 每次迭代可能不會減小代價函式, 可能會越過區域性最小值導致無法收斂。
通常可以考慮嘗試些學習率:
α=0.01, 0.03, 0.1, 0.3, 1, 3, 10
1.5 特徵和多項式迴歸
線性迴歸並不適用於所有資料,有時我們需要曲線來適應我們的資料,比如一個二次方模型:
或者三次方模型: