1. 程式人生 > >對「曲線擬合」和「最小二乘法」的個人理解

對「曲線擬合」和「最小二乘法」的個人理解

在工程實踐中,經常遇到類似的問題:

我們做了n次實驗,獲得了一組資料

然後,我們希望知道xy之間的函式關係。所以我們將其描繪在XOY直角座標系下,得到下面這麼一張點雲圖:


然後,我們發現,xy「可能」是線性的關係,因為我們可以用一條直線大致的將所有的樣本點串連起來,如下圖:

所以,我們可以「猜測」。接下來的問題,就是求出ab的值。

這看起來是一個很簡單的問題,ab是兩個未知數,我們只需要隨意找出兩個樣本點,列出方程組:


兩個未知數,兩個方程,就可以求解出ab的值。

然而,在這裡是不對的,或者說是不準確的。為什麼呢?因為  這個函式關係,是我們「猜測」的,並不一定是客觀正確的(雖然也許是正確的)。所以我們不能這麼簡單粗暴的方程組求解。

那怎麼辦呢?既然是「猜測」的,那麼就存在誤差。那麼我們將這個函式關係稍加修正為:

這裡,  分別是第i次實驗的因變數、自變數、誤差。

既然是「猜測」,那我們當然希望猜得準一點。那怎麼衡量準確呢?自然和e有關係。

上式變型後可得:

在這裡,ab才是自變數,e是函式值。

這裡是最容易搞糊塗的地方,為什麼a,b是自變數,而不是x,y

這就要提及「曲線擬合」的概念。所謂「擬合」就是說我們要找到一個函式,來「匹配」我們在實驗中獲得的樣本值。放到上面的例子,就是我們要調整ab的值,來使得這個函式和實驗中獲得的資料更加「匹配」。所以,ab才是「曲線擬合」過程中的自變數。

接下來,繼續如何讓誤差更小的問題。

「最小二乘法」的思想核心,就是定義一個損失函式:


顯然,如果我們調整ab,使得Q達到最小,那麼「曲線擬合」的誤差也會最小。

這裡,Qa,b的函式。根據高等數學的只是,Q的最小值點必然是其導數為0的點。

所以,我們令:



求解上述方程組,則可以解得ab的值。這就是最小二乘法的整個過程。

最後說明:

(1)最小二乘法英文名Least Squares,其實翻譯成「最小平方法」,更容易讓人理解。其核心就是定義了損失函式

(2)評價誤差的方法不止一個,還有諸如  等(當然這就不是最小二乘法了);

(3)最小二乘法不僅可以用於一次函式的擬合,還可以用於更高次函式的擬合;

(4)最小二乘法既是一種曲線擬合的方法,也可用於最優化。