天天看點

完全解讀:用最小二乘法求模型參數1 什麼是“最小二乘”2 求解最小化問題的一般性算法3 需要注意的問題4 模型未知時的曲線拟合問題5 模型已知時的曲線拟合問題6 拟合非線性模型函數7 參考書籍

文章目錄

  • 1 什麼是“最小二乘”
  • 2 求解最小化問題的一般性算法
  • 3 需要注意的問題
  • 4 模型未知時的曲線拟合問題
    • 4.1 例1
    • 4.2 例2
    • 4.3 例3
  • 5 模型已知時的曲線拟合問題
    • 5.1 常數拟合
    • 5.2 直線拟合
    • 5.3 餘弦函數拟合
  • 6 拟合非線性模型函數
    • 6.1 誤差曲面的近似
    • 6.2 Gauss-Newton方法
    • 6.3 梯度下降方法
    • 6.4 Levenberg-Marquardt方法
  • 7 參考書籍

1 什麼是“最小二乘”

要想确定N個未知參數,就得至少有N個線性獨立的方程。其中:1、如果方程個數低于未知數個數,就稱該問題為“欠定問題”;2、如果線性獨立的方程個數大于未知數個數,則稱該問題為“超定問題”。

最小二乘方法處理第二類問題(即超定問題)。

由于實驗觀測值yi會受到随機誤差εi的影響,即有:

完全解讀:用最小二乘法求模型參數1 什麼是“最小二乘”2 求解最小化問題的一般性算法3 需要注意的問題4 模型未知時的曲線拟合問題5 模型已知時的曲線拟合問題6 拟合非線性模型函數7 參考書籍

是以,最好能夠建立盡可能多的方程(包含多對yi和xi),進而獲得更好、更可靠的統計結果,以更加準确地估計參數a。

假設得到一組觀測值yi及其相應的條件xi,資料拟合的目标就是要利用最小二乘方法,将觀測值與基于模型函數計算出的數值之間的殘差平方和最小化,其優化模型為:

完全解讀:用最小二乘法求模型參數1 什麼是“最小二乘”2 求解最小化問題的一般性算法3 需要注意的問題4 模型未知時的曲線拟合問題5 模型已知時的曲線拟合問題6 拟合非線性模型函數7 參考書籍

資料拟合問題對應于一個最小化問題。

χ2的數值取決于所選擇的模型函數f(xi|a)以及觀測值yi中的随機誤差εi。除了已經引入的變量以外,式(2.2)中還包含權值wi,每個權值應能反映相應觀測值的可靠性。測量結果yi的不确定度越大,其權值wi就應該越低。比如,如果某個觀測值看起來像是個異常值,那麼其權值就應該非常接近或者等于零。但在大多數情況下,觀測值的可靠性是無法預先獲得的,是以有必要對權值進行估計。當對觀測值進行權重時,一般稱其為廣義最小二乘方法或者是權重最小二乘方法,與之相反的是,如果每個觀測值的權值都相等(即wi=w=常數),就稱其為正常最小二乘方法。

不同的參數向量a對于χ2的影響可以通過誤差曲面來直覺顯現。求解χ2的最小值過程就是在誤差曲面上尋求其全局最小值點。如果模型參數的個數超過兩個,就将其對應的誤差曲面稱為誤差超曲面。

非線性模型函數可以利用梯度下降法來求解,該方法通常要從某個起始點出發,通過疊代逐漸到達全局最小值點。此時需要參數a的一個初始值,并且該值最好盡可能接近全局最小值點。

2 求解最小化問題的一般性算法

線性問題可以看成是非線性問題的一個子集,能夠從多方面簡化最小二乘拟合的求解過程。

完全解讀:用最小二乘法求模型參數1 什麼是“最小二乘”2 求解最小化問題的一般性算法3 需要注意的問題4 模型未知時的曲線拟合問題5 模型已知時的曲線拟合問題6 拟合非線性模型函數7 參考書籍

還需要一個包含全部殘差的列向量,殘差是指觀測值yi與利用目前參數計算出的模型函數值之差,如下式所示:

完全解讀:用最小二乘法求模型參數1 什麼是“最小二乘”2 求解最小化問題的一般性算法3 需要注意的問題4 模型未知時的曲線拟合問題5 模型已知時的曲線拟合問題6 拟合非線性模型函數7 參考書籍

在計算剛開始的時候需要給出參數a的初始值。另外,對角權重矩陣W:

完全解讀:用最小二乘法求模型參數1 什麼是“最小二乘”2 求解最小化問題的一般性算法3 需要注意的問題4 模型未知時的曲線拟合問題5 模型已知時的曲線拟合問題6 拟合非線性模型函數7 參考書籍

矩陣W是求解最小化問題的第3個組成部分(可選擇也可不選)。該矩陣包含了對每個觀測資料所賦予的權值,權值反映了觀測值對于确定模型參數的重要性或是其自身的可靠性。如果所有觀測值都具有相同影響,就可以将該矩陣設為機關矩陣,否則就應該選擇合理的權值。

(本節,即第2節的餘下内容隻列出公式,不講細節原理。在後面的【6.2 Gauss-Newton方法】一節中會給出詳細推導過程)

綜合上面各個要素可以計算下式:

完全解讀:用最小二乘法求模型參數1 什麼是“最小二乘”2 求解最小化問題的一般性算法3 需要注意的問題4 模型未知時的曲線拟合問題5 模型已知時的曲線拟合問題6 拟合非線性模型函數7 參考書籍

此外,通過限制疊代次數的上限值可以避免陷入無限循環。

完全解讀:用最小二乘法求模型參數1 什麼是“最小二乘”2 求解最小化問題的一般性算法3 需要注意的問題4 模型未知時的曲線拟合問題5 模型已知時的曲線拟合問題6 拟合非線性模型函數7 參考書籍

該正規矩陣顯然是關于其主對角線對稱的。

3 需要注意的問題

上述非線性最小二乘問題的求解過程仍然存在一些問題值得警惕。

1、第一個問題是如何合理給出參數a的初始值。顯然,初始值應該盡可能接近全局最小值點,進而避免陷入局部極小值點,并且初始值需要使得疊代過程具有快速收斂性。為了實作這一目标,不妨利用一個能反映模型參數和觀測值之間的簡化關系式,即通過一些近似假設得到參數a的粗略估計,又或者是,在參數空間中利用網格搜尋得到一個有希望的初始值。

完全解讀:用最小二乘法求模型參數1 什麼是“最小二乘”2 求解最小化問題的一般性算法3 需要注意的問題4 模型未知時的曲線拟合問題5 模型已知時的曲線拟合問題6 拟合非線性模型函數7 參考書籍

2、參數的取值範圍是第二個值得考慮的問題。如果參數的取值範圍是已知的,就應該利用這一先驗知識以監督疊代過程,進而避免其徒勞地收斂到非常大的值,又或者是收斂到無限小的值。可以修正誤差(超)曲面的梯度,以使疊代過程不會進入到臨界(錯誤)區域。

3、第三個潛在問題涉及到矩陣求逆運算。矩陣N=JTWJ中非常大的數值在其逆矩陣N-1中會變得很小。在很多應用中需要衡量該數值,以使其能與觀測資料在同一量級上進行綜合,否則的話,計算機的有限數值精度會産生難以預期的影響。

4 模型未知時的曲線拟合問題

在理想的資料拟合條件下,實驗條件與觀測結果之間的函數關系是已知的,最小二乘拟合的目标就是要确定模型函數中的未知參數。

然而,在很多實際場景中,這個函數關系式可能是未知的,也就是說模型函數的解析形式無法獲知。

下面舉出三個例子。

4.1 例1

完全解讀:用最小二乘法求模型參數1 什麼是“最小二乘”2 求解最小化問題的一般性算法3 需要注意的問題4 模型未知時的曲線拟合問題5 模型已知時的曲線拟合問題6 拟合非線性模型函數7 參考書籍

針對5個采樣信号,其條件值xi和采樣值yi如下所示:

完全解讀:用最小二乘法求模型參數1 什麼是“最小二乘”2 求解最小化問題的一般性算法3 需要注意的問題4 模型未知時的曲線拟合問題5 模型已知時的曲線拟合問題6 拟合非線性模型函數7 參考書籍

下圖描繪了其拟合結果:

完全解讀:用最小二乘法求模型參數1 什麼是“最小二乘”2 求解最小化問題的一般性算法3 需要注意的問題4 模型未知時的曲線拟合問題5 模型已知時的曲線拟合問題6 拟合非線性模型函數7 參考書籍

在上圖中,模型函數的多項式階數從0(M=1)增加至4(M=5)。零階多項式用于确定觀測值的均值,一階多項式用于拟合直線,其他類推。從圖中可以清楚發現,曲線越接近資料點,模型參數的個數就越多,但此時觀測資料點之間的泛化性能就會不可靠。比如,當M=5時,模型函數會在前兩個采樣點之間發生振蕩,這看起來不像是一個很充分的拟合。如果M相對于N的值過大,就稱為“過拟合”。

僅僅将初等函數的疊加作為模型函數無法取得很好的預測性能。

4.2 例2

完全解讀:用最小二乘法求模型參數1 什麼是“最小二乘”2 求解最小化問題的一般性算法3 需要注意的問題4 模型未知時的曲線拟合問題5 模型已知時的曲線拟合問題6 拟合非線性模型函數7 參考書籍

4.3 例3

完全解讀:用最小二乘法求模型參數1 什麼是“最小二乘”2 求解最小化問題的一般性算法3 需要注意的問題4 模型未知時的曲線拟合問題5 模型已知時的曲線拟合問題6 拟合非線性模型函數7 參考書籍

5 模型已知時的曲線拟合問題

下面将針對幾個模型函數給出一些計算執行個體,以使得各種模型的實體含義和功能更加清晰。

5.1 常數拟合

完全解讀:用最小二乘法求模型參數1 什麼是“最小二乘”2 求解最小化問題的一般性算法3 需要注意的問題4 模型未知時的曲線拟合問題5 模型已知時的曲線拟合問題6 拟合非線性模型函數7 參考書籍

5.2 直線拟合

直線拟合問題的參數個數從一個增加至兩個,相應的模型函數為:

完全解讀:用最小二乘法求模型參數1 什麼是“最小二乘”2 求解最小化問題的一般性算法3 需要注意的問題4 模型未知時的曲線拟合問題5 模型已知時的曲線拟合問題6 拟合非線性模型函數7 參考書籍
完全解讀:用最小二乘法求模型參數1 什麼是“最小二乘”2 求解最小化問題的一般性算法3 需要注意的問題4 模型未知時的曲線拟合問題5 模型已知時的曲線拟合問題6 拟合非線性模型函數7 參考書籍

5.3 餘弦函數拟合

注意:在閱讀完前面5.1、5.2兩小節之後,讀者對于最小二乘問題的求解過程應該可以明晰,是以下面僅給出雅可比矩陣。

完全解讀:用最小二乘法求模型參數1 什麼是“最小二乘”2 求解最小化問題的一般性算法3 需要注意的問題4 模型未知時的曲線拟合問題5 模型已知時的曲線拟合問題6 拟合非線性模型函數7 參考書籍

6 拟合非線性模型函數

6.1 誤差曲面的近似

最小二乘方法可以看成是更一般性的最大似然方法的一個特例。

完全解讀:用最小二乘法求模型參數1 什麼是“最小二乘”2 求解最小化問題的一般性算法3 需要注意的問題4 模型未知時的曲線拟合問題5 模型已知時的曲線拟合問題6 拟合非線性模型函數7 參考書籍
完全解讀:用最小二乘法求模型參數1 什麼是“最小二乘”2 求解最小化問題的一般性算法3 需要注意的問題4 模型未知時的曲線拟合問題5 模型已知時的曲線拟合問題6 拟合非線性模型函數7 參考書籍
完全解讀:用最小二乘法求模型參數1 什麼是“最小二乘”2 求解最小化問題的一般性算法3 需要注意的問題4 模型未知時的曲線拟合問題5 模型已知時的曲線拟合問題6 拟合非線性模型函數7 參考書籍
完全解讀:用最小二乘法求模型參數1 什麼是“最小二乘”2 求解最小化問題的一般性算法3 需要注意的問題4 模型未知時的曲線拟合問題5 模型已知時的曲線拟合問題6 拟合非線性模型函數7 參考書籍

其中:

完全解讀:用最小二乘法求模型參數1 什麼是“最小二乘”2 求解最小化問題的一般性算法3 需要注意的問題4 模型未知時的曲線拟合問題5 模型已知時的曲線拟合問題6 拟合非線性模型函數7 參考書籍

由于P|a需要最大化,是以參數向量a的最優值應該使得χ2(a)取最小值。式(6.4)新增的系數“1/2”是為了便于後續處理,其對于拟合過程和最終結果并沒有實質影響。系數1/σ2i起到權重的作用,并且依據每個觀測值的可靠性或重要性來配置設定權值。

上面的數學推導是在觀測誤差服從正态(高斯)分布的假設條件下進行的。在單次測量可以獲得多個觀測值的情況下,需要利用觀測向量y代替标量y,相應地,式(6.3)中的機率應該根據多元高斯機率密度函數來計算。

隻要模型函數關于其中一個模型參數是非線性的,那麼拟合該函數就需要疊代運算。向量a中包含的M個參數可以擴充成一個M維空間,該空間中的每一個點由χ2的大小來刻畫,空間中所有點形成的實體稱為超曲面。拟合算法是從某個初始值出發,試圖尋求χ2(a)的全局最小值點。

完全解讀:用最小二乘法求模型參數1 什麼是“最小二乘”2 求解最小化問題的一般性算法3 需要注意的問題4 模型未知時的曲線拟合問題5 模型已知時的曲線拟合問題6 拟合非線性模型函數7 參考書籍

下面分析如何利用該近似表達式确定超曲面上的疊代路徑,即如何在目前疊代值的基礎上尋求更優的參數值。

6.2 Gauss-Newton方法

Gauss-Newton方法是一種在一維或者多元參數空間中尋求極小值點的方法。

當利用最小二乘方法進行資料拟合時,需要将觀測值和模型函數之間的誤差平方和最小化,即尋求超曲面χ2(a)上的極小值點。這可以通過目标函數的二階泰勒級數展開來實作。

完全解讀:用最小二乘法求模型參數1 什麼是“最小二乘”2 求解最小化問題的一般性算法3 需要注意的問題4 模型未知時的曲線拟合問題5 模型已知時的曲線拟合問題6 拟合非線性模型函數7 參考書籍
完全解讀:用最小二乘法求模型參數1 什麼是“最小二乘”2 求解最小化問題的一般性算法3 需要注意的問題4 模型未知時的曲線拟合問題5 模型已知時的曲線拟合問題6 拟合非線性模型函數7 參考書籍

式(6.14)中的變量則需要被替換。

首先,問題的自變量為a,于是有:

完全解讀:用最小二乘法求模型參數1 什麼是“最小二乘”2 求解最小化問題的一般性算法3 需要注意的問題4 模型未知時的曲線拟合問題5 模型已知時的曲線拟合問題6 拟合非線性模型函數7 參考書籍

式(6.15)中的H稱為Hessian矩陣,其中的元素為:

完全解讀:用最小二乘法求模型參數1 什麼是“最小二乘”2 求解最小化問題的一般性算法3 需要注意的問題4 模型未知時的曲線拟合問題5 模型已知時的曲線拟合問題6 拟合非線性模型函數7 參考書籍

該矩陣中的元素可以利用導數乘法規則(uv)’=u’v+uv’來推導,根據式(6.17),可得:

完全解讀:用最小二乘法求模型參數1 什麼是“最小二乘”2 求解最小化問題的一般性算法3 需要注意的問題4 模型未知時的曲線拟合問題5 模型已知時的曲線拟合問題6 拟合非線性模型函數7 參考書籍
完全解讀:用最小二乘法求模型參數1 什麼是“最小二乘”2 求解最小化問題的一般性算法3 需要注意的問題4 模型未知時的曲線拟合問題5 模型已知時的曲線拟合問題6 拟合非線性模型函數7 參考書籍

觀察g和H中的元素(見式(6.17)和式(6.19)),可得:

完全解讀:用最小二乘法求模型參數1 什麼是“最小二乘”2 求解最小化問題的一般性算法3 需要注意的問題4 模型未知時的曲線拟合問題5 模型已知時的曲線拟合問題6 拟合非線性模型函數7 參考書籍

J,r和W分别為:

完全解讀:用最小二乘法求模型參數1 什麼是“最小二乘”2 求解最小化問題的一般性算法3 需要注意的問題4 模型未知時的曲線拟合問題5 模型已知時的曲線拟合問題6 拟合非線性模型函數7 參考書籍
完全解讀:用最小二乘法求模型參數1 什麼是“最小二乘”2 求解最小化問題的一般性算法3 需要注意的問題4 模型未知時的曲線拟合問題5 模型已知時的曲線拟合問題6 拟合非線性模型函數7 參考書籍

請注意下面的内容。

矩陣Q包含了模型函數f(x|a)的二階導數項,而該項在很多教科書中是被忽略的。有兩個原因:

1、第一個原因是,對于線性問題,該項就等于0。

2、第二個原因是,式(6.20)中的乘法項yi-f(xi|a)可以近似看成是實驗條件xi下的觀測誤差,隻要參數向量a接近真實值,該誤差就會或正或負,如果乘法項yi-f(xi|a)與f(xi|a)的二階導數不相關,那麼當對i進行累加求和時,這些項就會互相抵消。

若将矩陣Q忽略可得:

完全解讀:用最小二乘法求模型參數1 什麼是“最小二乘”2 求解最小化問題的一般性算法3 需要注意的問題4 模型未知時的曲線拟合問題5 模型已知時的曲線拟合問題6 拟合非線性模型函數7 參考書籍

上述最小化過程稱為Gauss-Newton方法,其主要優勢在于能夠快速收斂到鄰近的極小值點。但是,能否成功收斂到極小值點取決于目标函數的曲率。若不做出一些針對性的處理,該算法可能會陷入鞍點,或者沿錯誤方向進行疊代。

不用擔心,6.3節會提出梯度下降法。

6.3 梯度下降方法

盡管Gauss-Newton方法十分有效,但是當參數向量a=(a1,a2,…,aj,…,aM)T的初始值不能充分接近真實值時,該方法有可能達不到期望的極小值點。因為此時利用有限階泰勒級數近似會對優化過程産生不利影響,比如,導緻太大的參數調整步長或者是錯誤的疊代方向。

在這種情況下,更适合采用梯度下降方法,以保證嚴格沿“下坡”方向疊代。

完全解讀:用最小二乘法求模型參數1 什麼是“最小二乘”2 求解最小化問題的一般性算法3 需要注意的問題4 模型未知時的曲線拟合問題5 模型已知時的曲線拟合問題6 拟合非線性模型函數7 參考書籍

于是:

完全解讀:用最小二乘法求模型參數1 什麼是“最小二乘”2 求解最小化問題的一般性算法3 需要注意的問題4 模型未知時的曲線拟合問題5 模型已知時的曲線拟合問題6 拟合非線性模型函數7 參考書籍

上式(6.24)利用梯度向量的範數做歸一化,因子參數γ決定了步長幅度,而向量g則僅僅控制疊代方向。

如果參數空間中的目前疊代值與最終的解相差甚遠,梯度下降方法還是相當穩健的,隻是有時難以估計γ的數值,通常它的值要保持相對較小。然而,當疊代過程接近目标函數的極小值點時,梯度下降方法就将會變得不太有利。如果沒有對||g||做歸一化(見式(6.24)),收斂過程将會變得十分緩慢,因為在這個區域内的梯度會很小。另一方面,鞍點也是阻止梯度下降方法成功收斂的另一不利因素。當按照式(6.24)歸一化時,如果疊代已經越過極小值點,并且算法出現振蕩現象,就必須要降低γ的數值。

上面一段就是為什麼在極小值點附近使用Gauss-Newton方法代替梯度下降方法的原因。

6.4 Levenberg-Marquardt方法

Levenberg-Marquardt方法綜合利用了梯度下降方法和Gauss-Newton方法兩者的優勢,它引入了一個阻尼因子。利用阻尼因子可将式(6.22)修改為如下形式:

完全解讀:用最小二乘法求模型參數1 什麼是“最小二乘”2 求解最小化問題的一般性算法3 需要注意的問題4 模型未知時的曲線拟合問題5 模型已知時的曲線拟合問題6 拟合非線性模型函數7 參考書籍

阻尼因子μ取正數,以確定Δa是個下降方向。當μ取值較大時,所引入的項“μⅠ”将起主導作用,此時的解近似為:

完全解讀:用最小二乘法求模型參數1 什麼是“最小二乘”2 求解最小化問題的一般性算法3 需要注意的問題4 模型未知時的曲線拟合問題5 模型已知時的曲線拟合問題6 拟合非線性模型函數7 參考書籍

上式與式(6.25)的梯度下降方法相對應。

反之,非常小的μ值則會使疊代過程與Gauss-Newton方法相似,這有助于最終收斂到全局極小值點。

完全解讀:用最小二乘法求模型參數1 什麼是“最小二乘”2 求解最小化問題的一般性算法3 需要注意的問題4 模型未知時的曲線拟合問題5 模型已知時的曲線拟合問題6 拟合非線性模型函數7 參考書籍

7 參考書籍

書名: 《資料拟合與不确定度 權重最小二乘及其推廣的實用指南》

作者: (德)湯露·舒茨(Tilo Strutz)

END