機器學習:用正規方程法求解線性回歸

求解線性回歸最常用的兩個方法是:梯度下降法最小二乘法,之前在文章《機器學習:用梯度下降法實現線性回歸》中介紹了梯度下降法的工作流程等,這篇文章著重介紹最小二乘法的使用。由於最小二乘法是基於正規方程的,所以也被稱為正規方程法


什麼是最小二乘法

最小二乘法是一種數學優化技術,它通過最小化誤差的平方和尋找數據的最佳函數匹配。


方法的選擇

那麼在求解線性回歸時,對於這兩種方法該如何選擇呢?先看一下這兩種方法的對比:

可見特徵方程得到的是解析解,無需迭代,也沒有設置學習速率的繁瑣,需要特徵歸一化,但是求解正規方程需要求矩陣的逆,然而不是所有的矩陣都可逆,而且有些可逆矩陣的求逆極其耗費時間,所以特徵方程法看似簡單,其實使用場景並不多。只有當特徵值比較小的時候,可以考慮使用特徵方程法。


正規方程

我們設計一些數據,假設 X ,是一個 m x (n+1) 的矩陣:X=left[ egin{matrix} (x^{(1)})^{T}\ cdot\cdot\cdot\ (x^{(m)})^{T} end{matrix}
ight],每一行對應一個單獨的訓練樣本;y 為一個 m 維的向量: y=left[ egin{matrix} y^{(1)})\ cdot\cdot\cdot\ y^{(m)}) end{matrix}
ight] ,包含所有訓練集中的標籤。

再來回顧一下代價函數:J(	heta)=frac{1}{2m}sum_{i=1}^{m} (h_	heta(x^{(i)})-y^{(i)})^2

將其寫作矩陣形式: J(	heta)=frac{1}{2m}(X	heta-y)^T(X	heta-y)

為了使代價函數 J(	heta) 最小化,設假設函數的輸出值 h_{	heta}(x) 與實際值 y 的差為一個趨近於 0 的極小值 sigma ,則有:

sum_{i=1}^{m} (h_	heta(x^{(i)})-y^{(i)})^2=sigma

因為 sum_{i=1}^{m} (h_	heta(x^{(i)})-y^{(i)})^2=[h(x)-y]^{T}cdot[(x)-y]

所以 (X	heta-y)^{T}(X	heta-y)=sigma

兩邊同時對 	heta 求導得: 	heta=(X^TX)^{-1}X^Ty

如果 X^{T}X 不可逆,可能有兩個原因:

  1. 列向量線性相關,即訓練集中存在冗餘特徵,此時應該剔除掉多餘特徵;
  2. 特徵過多,此時應該去掉影響較小的特徵,或使用「正則化」。

當樣本總數 m 小於等於特徵數量 n 時, X^{T}X 一定不可逆。

如果我們對代價函數進行過正則化處理,那麼 	heta 為:

lambda>0 時,可以保證該矩陣可逆,這就是通過正則化的手段來解決 X^{T}X 不可逆的問題。


相關文章:

王天宇:機器學習:用梯度下降法實現線性回歸?

zhuanlan.zhihu.com圖標
推薦閱讀:

A Hierarchical Model of Reviews for Aspect-based Sentiment Analysis
無需編程,即刻擁有你的機器學習模型
Tensorflow入門教程(6)
1-2 Welcome
李宏毅機器學習筆記(一)前言

TAG:機器學習 | 線性回歸 | 最小二乘法 |