最小二乘法擬合線性回歸方程是機器學習中最基礎的內容了,之前都是從微積分求導的思路理解最小二乘法,現在看到線性代數視角下的最小二乘法感覺挺新穎,記錄一下。

  • 求解思路

我們經常會碰到Ax = b 方程組無解的情況,通常的原因是方程組過多,而未知數太少的情況,也就是矩陣A(n× m)的行數大於列數的情況(n遠遠大於m)。除非碰上極端情況,結果向量b都在矩陣A的列空間外。普通的消元法解決不了這類問題,因為我們的測量數據是包含雜訊的。

重申一遍:我們不能總是讓誤差項 e = b – Ax 等於0,當e為0時,x就是使方程組Ax=b 的解。當e 儘可能的取最小值的時候,求得的 	ilde{x}

就是最小二乘法的解決思路。具體來說,方程Ax=b 無解,但是方程A 	ilde{x} =p 可解(p:向量b在矩陣A的列空間上的投影)。我們把b向量分解成兩部分,在矩陣A的列空間的部分是p,垂直於p位於 A^{T} 零空間的部分是e。e = b – p, e ot p, 也就是 A^{T}(b - A	ilde{x})=0。

當Ax=b無解時,方程左右乘以 A^{T}求解 A^{T}(b - A	ilde{x})=0

例 1 最小二乘法的一個典型應用就是擬合直線方程,如:給定數據(0,1),(1,9),(3,9)和(4,21)找到一條離數據點最近的直線。

A^{T}(b - A	ilde{x})=0Rightarrow A^{T}A	ilde{x}=A^{T}b

可以解得方程參數:

所以最佳直線方程是 y = 4x +2

  • 與微積分的聯繫

誤差E =(b -A	ilde{x})^{2} = (C+Dx -b)^{2}

delta E/delta C =Sigma 2(C+Dx_{i}-b)=0

delta E/delta D =Sigma 2(C+Dx_{i}-b)x_{i}=0

化簡得(n為樣本數):

nC + Sigma x_{i}D=b

nC + Sigma x_{i}^{2}D = bSigma x_{i}

用矩陣的方式表達為:

  • 為什麼最小二乘是豎直距離而不是垂直距離

下面兩幅圖,左圖是平面圖,空心圓代表原始數據,直線是我們的最佳擬合線。直線上的點 p_{i} 表示原始數據在該直線的投影,點 e_{i}代表誤差。右圖是四維空間圖(我們的樣本數為4),投影向量p在列空間上,原始向量b在列空間外。

p是向量b在列空間上的投影,e是誤差。投影向量p=(2,6,14,18),誤差向量e=(-1,3,-5,3),可以看到p ot e,也就是p * e = 0。在高維空間,我們可以很清楚的看到投影向量垂直於誤差向量,反映到二維平面來說,誤差就是原始數據點到擬合直線上的豎直距離。

另一種解釋是,我們的觀測值y序列(也就是b向量)是存在測量誤差的,但對x序列是沒有誤差概念的(也就是我們說的對於不同的自變數x,誤差分佈應該一致,變異量應該相等。這是線性回歸基本假設中的誤差等分散性假設)。所以對於某一x對應的y,我們只需考慮y序列(b向量)在由直線方程參數C,D向量構成的平面上的投影,而自變數x序列(D向量)在平面上的投影就是其自身。反映到二維平面圖上,x在擬合直線上的投影是自身x,y在擬合直線上的投影就是直線上對應的點p,誤差就是豎直距離。

上面從理論的上解釋了為什麼是豎直距離,其實實踐中很重要的一個因素就是豎直距離計算複雜度明顯小於垂直距離,而大部分情況下,精度又和垂直距離計算的結果很接近。那麼什麼情況下,採用豎直距離不適合呢?先來看一張圖:

上圖(a)表示符合誤差等分散性的數據,可以採用最小二乘法求解直線方程;圖(b)表示不符合誤差等分散性的數據,此時用最小二乘法可能就不是很合適。寫到這,順便提一下採用垂直距離到底是什麼意思呢?此時,x,y都相當於自變數,他們的關係是平等的。我們要對y投影,也要對x投影(投影這個詞可能在這就不那麼準確了)。最小二乘法是將y投影到由x序列和1序列構成的平面上,x和y並不是對等的關係。所以求解垂直距離最小的思路相當於做了一次基變換,原始空間的基(也就是x(1,0),y(0,1))變換為一組新的基。這組新的基就是矩陣 A^{T}A 的特徵向量構成。這也就是我們熟悉的主成分分析的方法。

知乎也有一位大牛的博客講解的特別清晰,可前往:

zhuanlan.zhihu.com/p/36


推薦閱讀:
相關文章