摘要:最小二乘法是一種在誤差估計、不確定度、系統辨識及預測、預報等數據處理諸多學科領域得到廣泛應用的數學工具。最小二乘很簡單,也在業界得到了廣泛使用。
本文分享自華為雲社區《最小二乘法介紹》,作者:Yan 。
最小二乘法是一種在誤差估計、不確定度、系統辨識及預測、預報等數據處理諸多學科領域得到廣泛應用的數學工具。最小二乘很簡單,也在業界得到了廣泛使用。
但是對於最小二乘法和它的故事,也許很多人並不了解,今天給大家做一下分享。
1801年,意大利天文學家朱賽普·皮亞齊發現了第一顆小行星谷神星。經過40天的跟蹤觀測后,由於谷神星運行至太陽背后,使得皮亞齊失去了谷神星的位置。隨后全世界的科學家利用皮亞齊的觀測數據開始尋找谷神星,但是根據大多數人計算的結果來尋找谷神星都沒有結果。
時年24歲的高斯也計算了谷神星的軌道。奧地利天文學家海因里希·奧伯斯根據高斯計算出來的軌道重新發現了谷神星。
高斯使用的最小二乘法的方法發表於1809年他的著作《天體運動論》中,而法國科學家勒讓德於1806年獨立發現“最小二乘法”,但因不為世人所知而默默無聞。
為了方便大家理解最小二乘法,給大家講個故事。
假設身高是變量X,體重是變量Y,我們都知道身高與體重有比較直接的關系。生活經驗告訴我們:一般身高比較高的人,體重也會比較大。但是這只是我們直觀的感受,只是很粗略的定性的分析。
在數學世界里,我們大部分時候需要進行嚴格的定量計算:能不能根據一個人的身高,通過一個式子就能計算出他或者她的標准體重?
我們可以采樣一批人的身高體重數據, (x1,y1),(x2,y2),⋯,(xn,yn),其中x是身高,y是體重。
生活常識告訴我們:身高與體重是一個近似的線性關系,用最簡單的數學語言來描述就是y = \beta_0+\beta_1xy=β0+β1x。
於是,接下來的任務就變成:怎么求出這個β0與β1呢?
為了計算β0,β1的值,我們采取如下規則:β0,β1應該使計算出來的函數曲線與觀察值的差的平方和最小。用數學公式描述就是:
其中,y_{ie}yie表示根據y=\beta_0 + \beta_1xy=β0+β1x估算出來的值,y_iyi是觀察得到的真實值。
這樣,樣本的回歸模型很容易得出:
現在需要確定β0、β1,使cost function最小。大家很容易想到,對該函數求導即可找到最小值:
將這兩個方程整理后使用克萊姆法則,很容易求解得出:
根據這個公式,只需要將樣本都帶入就可以求解出相應的參數。
如果我們推廣到更一般的情況,假如有更多的模型變量x1,x2,⋯,xm(注意:x_1x1是指 一個樣本,x1是指樣本里的一個模型相關的變量),可以用線性函數表示如下:
y(x1,⋯,xm;β0,⋯,βm)=β0+β1x1+⋯+βmxm
對於n個樣本來說,可以用如下線性方程組表示:
如果將樣本矩陣x_i^hxih記為矩陣A,將參數矩陣記為向量\betaβ,真實值記為向量Y,上述線性方程組可以表示為:
即A \beta = YAβ=Y
對於最小二乘來說,最終的矩陣表達形式可以表示為:
min∣∣Aβ−Y∣∣2
最后的最優解為:
β=(ATA)−1ATY
2021華為雲 AI 實戰營——華為雲員工都在學的AI實戰營,快來報名免費學習吧~