最小二乘法詳解 (可能)


在實際的測量中,測量的數(shù)據(jù)總會與真實數(shù)據(jù)存在一定誤差,所以一定要多次測量。但是測量出來的數(shù)據(jù)應(yīng)該怎么處理才能得到比較真實的數(shù)據(jù)呢。這就需要用到最小二乘法了。

什么是最小二乘
現(xiàn)在測出來了一堆數(shù)值? W0, W1,?…, Wi, …,總共數(shù)據(jù)有n個,那么假設(shè)這堆數(shù)值對應(yīng)的真實值為W_bar,那么W_bar應(yīng)該與每個數(shù)據(jù)足夠接近,這時候可以使用均方誤差作為真實數(shù)據(jù)好壞的評分,均方誤差表達(dá)為以下形式? ?(均方誤差,平均,平方)

可以看出,為了使得W_bar為真實值,Loss必須為最小值。而因為是平方,可以知道Loss為最小值時,對W_bar的導(dǎo)數(shù)也為0,即:

這時可解得真實值W_bar,恰好為觀測值Wi的平均值。值得一提的是,在多維數(shù)據(jù)也是平均值
這種使用均方誤差作為損失,并求得損失最小值的方法就叫做最小二乘法

線性模型
相信很多人遇到最小二乘法是在高中數(shù)學(xué)必修三里,那么這里就來討論一下這種情況
我們現(xiàn)在有一噸控制量x_i,并且有一噸相應(yīng)的觀察量y_i,并且y與x直接看上去存在某種像是直線的關(guān)系

假設(shè)控制量不存在誤差,那么設(shè)目標(biāo)模型為?y ~ kx+b?那么可以確定均方誤差為:

然后Loss分別對k和b求導(dǎo),有:


使兩個導(dǎo)數(shù)都為0可以得到兩個二元一次方程,可以解出k和b的值,結(jié)果就是在數(shù)學(xué)書上的結(jié)果


線性回歸
上述求簡單模型時十分直觀并且也不算復(fù)雜,但是在較復(fù)雜模型的情況,這種辦法就會變得非常繁瑣
這時候就引入了線性回歸到辦法????*** 高維空間警告 ***
使用上面的例子,模型 y ~ kx+b 可以寫為?y ~ x*k+1*b?,這時候可以把k, be 看作一個向量,而x,1看作變換矩陣,則y也對應(yīng)一個向量,那么對于一噸數(shù)據(jù)xy,線性模型可以變?yōu)橐韵滦问?/span>

可以看到這是一個低維向量[k,b]投影到高維空間中得到[y0,y1…yi…]的過程,但是左邊的矩陣不能求逆,所以這是不可能求解的?(其實Loss就是上式左邊的向量減右邊的向量,得到新向量的模的平方)
為了求出k,b的最佳擬合值,需要把高維向量重新投影到低維空間中,而新的投影矩陣為上面矩陣的轉(zhuǎn)置,得到等式:

雖然很難讓人信服,但是這個等式確實可以求解的,并且求得結(jié)果也與課本上的一致。
我們就是用空間的變換去跳過了求損失Loss的步驟,但是說得那么復(fù)雜有什么用呢

通用線性回歸
同樣,有一噸控制值xi和一噸觀察值yi,并且通過觀察假定y與x之間存在以下關(guān)系:y ~ a0*f0(x) + a1*f1(x) +…+ ai*fi(x) +…, 其中f是已知的函數(shù)簇,那么為了求得最佳擬合系數(shù)a,有:
構(gòu)建矩陣M:

并構(gòu)建向量A,Y:

那么線性回歸模型為:MA~Y
為了求解A,兩端同時乘M的轉(zhuǎn)置:M^T? M? A? =? M^T? Y
那么A為:


注意:手動求解A是幾乎不可能的(除非你閑得沒事做而且有很多錢買草稿紙),所以實際上用電腦求解才是最實際的,可以使用numpy或者matlab等工具快速求解大型矩陣
非常非常重要的注意:線性回歸本質(zhì)上是,利用模型把低維向量投影到高維空間,并且投影后與觀察值存在誤差,為了求解低維向量需要把高維空間向低維投影? ?也就是說,數(shù)據(jù)數(shù)量{xj, yj}必須比求解的參數(shù){ai}多,通常來說是遠(yuǎn)遠(yuǎn)多于
第一次用手機摸專欄,所以我摸了