概述
線性迴歸是一個典型的監督學習問題,它常常被用來解決連續值的預測問題。我們通常需要給出一個訓練集,訓練集中包含已知的目的數據,同時還有與該預測可能相關的特徵。
一個簡單的一元線性迴歸的示例是:
我們能否給出房屋價格與房屋面積的關係預測?(或者給出當房屋面積爲某個值時,房價的一個預測)
其中我們要給出一個訓練集,訓練集中包含多個房屋面積與對應房屋價格的真實數據。
符號約定與術語解釋
術語解釋
- 特徵:在本例中,房屋的面積、房屋的建築年齡等一些與房屋價格可能相關的都是特徵。
- 特徵向量:我們通常將同一個對象的特徵數據使用一個特徵向量來表示,該特徵向量的分量都是該對象的一個特徵。
- 預測函數:我們想要得到的有關輸入與輸出的映射關係。
- 代價函數:通常我們需要一種手段來衡量我們預測的好壞。我們一般使用一個代價函數來量化擬合與實際值的偏離程度。
符號約定
- 用來表示第i個特徵,用來表示第i個輸入的特徵向量,同樣的表示第i個輸入的第j個特徵值。
- 輸出向量我們用來表示,其中代表第i個輸入向量對應的輸出。
- 預測函數我們表示爲:
這表示預測函數的輸入向量有n個分量,也即n個特徵。 - 代價函數我們表示爲:
代價函數
代價函數是衡量預測函數給出的預測值與實際值之間的偏離程度。
一個常用的代價函數是:
值得說明的是:這裏的m指的是訓練集中樣本的個數,這裏的是爲了與求導時平方帶來的2抵消。
目的
我們的目的是:確定一個預測函數
對於每一個輸入的向量,給出預測的值。
事實上是確定參數,使得取到最小值。
也即。
解決思路
可以看到我們經過問題形式的變化,已經將其轉化爲了一個最優化問題。由於線性迴歸的特殊性,其代價函數是一個凸函數,也就是說,不存在會陷入某個局部最優點的情況。
凸函數的解釋詳見 凸函數-維基百科
針對這個對於代價函數的最優化問題,我們想到了兩種解決思路:梯度下降法與正規方程法
梯度下降法
梯度下降法的思路是:把代價函數看做一個勢函數,每次迭代時,選擇向該點的梯度方向前進一步。
梯度的解釋詳見 梯度-維基百科。
也即每次向勢函數下降最快的方向前進一步,對於一個凸函數,只要我們每次前進的距離足夠小,那麼最終一定能到達該最優點。
值得注意的是,梯度下降法是一個普遍的最優化問題的啓發算法,該算法並不保證能找到一個全局最優解,事實上這依賴於我們選擇的初始點所在的位置。
該算法的工作過程示意圖如下:
再次重申一下,這裏目標是,自變量是。
我們選擇的初始位置是,則每次我們都需要根據當前的梯度來更新下一次的。
更新公式是:
是學習率,也叫步長。
值得注意的是:這其中 部分是這個代價函數對於的偏導數。
這就是我們所說的每次向該函數的梯度方向前進一步。
我們通常結束迭代的條件是,收斂或改變在某個精確度內。編程上應當注意的點是,對於,其各維度應當同步更新。
學習率的選擇
學習率的選擇是一個困難的問題。
當學習率過小時,其收斂速度實在太慢,我們將不得不重複進行更多次的迭代。
當學習率過大時,我們很容易跨過最優點,而到達一個沒那麼好的點,甚至有可能會比原來的代價函數更大。
在實踐中,我們通常每3倍嘗試一次,比如:
特徵縮放
有時我們會碰到參數的範圍差異過大的情況。比如,一個參數取值在[0,1],而另一個參數的範圍則在[0,100000],這在圖中會顯示出一個極其狹長的橢圓。(比下圖還要誇張的多),我們每次在進行梯度下降迭代時,會遇到困難,這將使我們不得不進行更多次的迭代。
解決該問題的一個思路是:特徵縮放(也叫歸一化),該方法的思想是將所有特徵的取值映射到一個合理的範圍內。
通常,我們會將特徵映射到[-0.5,0.5]的範圍內,縮放公式是:
經過映射後的代價函數像下圖這樣,不會再呈現出一種奇怪的狹長橢圓形。
該方法事實上是換了一個座標系,將不同量度的特徵映射到了量程差別不大的座標系內。
正規方程法
還記得嗎?我們的優化目標是,自變量是。
上面的方法,令我們頭疼的一點是學習率的選擇,而且它需要頻繁的迭代,除此之外,上面的方法並不能給出一個解析解。
因此我們嘗試使用正規方程法來解決該問題:
值得注意的是:由於我們是多元線性迴歸,最後得到的是一個 向量,因此我們根據
寫出代價函數的向量表示方式:
其中是一個列向量。
下式是預測函數的定義:
我們將其代入得到:
其中是一個的矩陣,構造方法是:
其中代表訓練集中第 i 組數據,被寫成一個()的列向量形式。
令 求使得代價函數取到最小值的點。
解得:
這裏不給出證明
只給出一個幫助記憶的方式:
最理想的情況是:
或者說是至少爲一個很小很小的 ,因此有
由於是一個的列向量,是一個()的列向量。而是一個的矩陣,X不是方陣無法求逆,因此需要左乘一個在左邊構造一個的方陣。
此時等式變爲:
接着我們在兩邊左乘一個
得到
值得注意的是:部分的計算要花費的時間複雜度。同時有時可能不可逆。
比如不滿秩,也即有兩行內容線性相關,或者兩個特徵線性相關,或者訓練集的樣本個數小於特徵數。
梯度下降與正規方程的對比
梯度下降法 | 正規方程法 | |
---|---|---|
時間複雜度 | O(n^3) | |
優點 | 計算速度快 | 寫代碼方便,不需迭代 |
缺點 | 需要選擇適當的學習率 | 當特徵數相當高時,時間代價相當高,此外有時逆矩陣可能不存在。 |
應用場景 | 比較普遍,除此之外甚至能應用到一些更加複雜的算法中 | 當特徵數不高時 |