擬合與插值

先上圖:左邊插值,右邊擬合
在這裏插入圖片描述

插值法

插值是指已知某函數的在若干離散點上的函數值或者導數信息,通過求解該函數中待定形式的插值函數以及待定係數,使得該函數在給定離散點上滿足約束。可以看出插值曲線是一定要過數據點

1.拉格朗日插值法

比如說,已知下面這幾個點,我想找到一根穿過它們的曲線:
在這裏插入圖片描述
我們可以合理的假設,這根曲線是一個二次多項式:
在這裏插入圖片描述
這是因爲有三個已知的點,可以通過下列方程組接觸這個二次多項式:
在這裏插入圖片描述
不過這裏不打算通過解方程來得到這根二次曲線,我們來看看拉格朗日是怎麼解出這根曲線的?
拉格朗日認爲可以通過三根二次曲線相加來達到目標。那這是怎麼的三根二次曲線呢?
第一根曲線 f1(x) ,在 x1 點處,取值爲1,其餘兩點取值爲0:
在這裏插入圖片描述
爲什麼這麼做?看下去就知道了。
第二根曲線 f2(x) ,在 x2 點處,取值爲1,其餘兩點取值爲0:
在這裏插入圖片描述
第三根曲線 f3(x) ,在 x3 點處,取值爲1,其餘兩點取值爲0:
在這裏插入圖片描述
拉格朗日伯爵說,看,這三根曲線就可以組成我在尋找的曲線:
在這裏插入圖片描述

這三根曲線就是拉格朗日需要的,我們來看看爲什麼?

在這裏插入圖片描述
先說插值法。插值法是做什麼用的?插值法是通過已知點,求過這些點的未知函數的數學方法。所以我們輸入的,是一堆點,也就是一堆x和一堆y。我們想要得到的,是一個函數,這個函數能完美的通過這一堆x和這一堆y。那你要怎麼解決這個問題呢?說白了很簡單,就是一個開開關的問題。這就是拉格朗日插值法的想法。比如說我給你三個點,讓你求出一條過這三個點的未知函數。只要是函數,就能寫成y=f(x)型。那這三個點肯定要滿足這個條件(廢話這是題設給的):
第一個點的y=f(第一個點的x)
第二個點的y=f(第二個點的x)
第三個點的y=f(第三個點的x)
這函數可能實現嗎?可能。我們可以用這種開開關的方式來實現他。我們都知道數學裏面有一個小學生都知道的道理:0乘任何數都是0,1乘任何數都不變。感覺很蠢對吧。但這就是拉格朗日插值法的精髓所在:我們想辦法對每個x構建一個“開關”;當x爲指定條件的x值時,把指定條件的x值的“打開”(置爲1),把其餘非指定條件的x值的開關“關上”(置爲0)。這樣的話,我們做一個簡單的加和,就能讓函數輸出我們想要的y值,進而得出這未知的函數了。這“開關”的學名叫什麼?就叫插值基函數基函數)。所以我們用這個看上去特弱智的方法,來解決問題。做拉格朗日插值:
第N個點的y = 基函數1×第1個點的y + 基函數2×第2個點的y + 基函數3×第3個點的y
假如說我們想在這個函數中,讓 第2個點的y=f(第2個點的x),那麼就有:
第N個點的y(N取2) = 基函數1【關閉】×第1個點的y + 基函數2【打開】×第2個點的y +基函數3【關閉】×第3個點的y
我們一開始就假設了,基函數【關閉】的時候就是0,基函數【打開】的時候就是1。換句話就是:
第N個點的y(N取2) = 0×第1個點的y + 1×第2個點的y + 0×第3個點的y即第N個點的y(N取2) = 第2個點的y可見這個函數運作正常。那麼接下來就是這個“開關”的問題了。這個“開關”要怎麼構建呢?我們又想到一個特別弱智的方法(沒錯,數學很簡單,你不要把他想複雜了):——任何數除自己都是1,零除任何數都是0。那麼我們可以把各個“開關”分別寫出來,以第二個開關爲例:
基函數狀態=(輸入X-第一個點的x)(輸入X-第三個點的x) / (第二個的點x-第一個點的x)(第二個點的x-第三個點的x)

你自己算一下,就會發現這個基函數構造的很有趣。——當你輸入X值爲第一個,第三個點的x值時,你會發現分子直接等於0,於是“開關關閉”,基函數的值爲0。——當你輸入X值爲第二個點的x值時,你會發現分子分母是相同的,於是“開關打開”,基函數的值爲1。所以我們最後總結一下,拉格朗日插值法是怎麼做出來的?先給定三個點(x1,y1),(x2,y2),(x3,y3),構造函數:
拉格朗日插值函數= 開關1×y1 + 開關2×y2 + 開關3×y3
其中標黑的y1,y2,y3都是已知值。只需求三個“開關”的表達式即可。而相應的“開關”表達式爲
第N個開關 = (未知量X-一個非N處值x)(未知量X-另一個非N處值x) / (N處值x-一個非N處值x)(N處值x-另一個非N處值x)
其中標黑的N處值x和非N處值x都是已知值。分別求出三個開關的表達式,並帶回原式。至此,整個函數就變成了一個y=f(x)型,拉格朗日插值法結束。這種“開開關”的想法,就是拉格朗日插值法的思路了。

綜上,拉格朗日多項式:
在這裏插入圖片描述

2.牛頓插值法

回頭看看Lagrange(拉格朗日)的基函數,每一個新的節點加進來都要重新計算所有的基函數。而牛頓插值法的特點在於:每增加一個點,不會導致之前的重新計算,只需要算和新增點有關的就可以了

2.1

差商的定義:
在這裏插入圖片描述

差商的性質:

在這裏插入圖片描述
在這裏插入圖片描述

牛頓插值多項式推導

在這裏插入圖片描述
在這裏插入圖片描述

在這裏插入圖片描述
根據上圖,前n+1個式子乘以一個係數再相加,經過兩邊抵消得到f(x),等式右邊第一項Nn(x)爲牛頓插值公式,第二項Rn(x)爲插值餘項。
在這裏插入圖片描述

擬合法

所謂擬合是指已知某函數的若干離散函數值{f1,f2,…,fn},通過調整該函數中若干待定係數f(λ1, λ2,…,λn), 使得該函數與已知點集的差別(最小二乘意義)最小。如果待定函數是線性,就叫線性擬合或者線性迴歸(主要在統計中),否則叫作非線性擬合或者非線性迴歸。表達式也可以是分段函數,這種情況下叫作樣條擬合。從幾何意義上將,擬合是給定了空間中的一些點,找到一個已知形式未知參數的連續曲面來最大限度地逼近這些點。即不一定要過數據點。

最小二乘

在此先列舉一下最小二乘家族成員。最小二乘法直線擬合,最小二乘法多項式(曲線)擬合,機器學習中線性迴歸的最小二乘法,系統辨識中的最小二乘辨識法,參數估計中的最小二乘法,等等。
如何找到最接近原始曲線或者數據點的擬合曲線,這不是一件容易操作的事。要想整體最接近,直接的想法就是擬合曲線的每一點到原始曲線的對應點的最接近,簡單點說就是兩曲線上所有點的函數值之差的絕對值之和最小。看似解決問題,但絕對值在數學上向來是個不好交流的語言障礙患者,那然後又該怎麼辦。數學家說了既然辦不了你絕對值之和,那就辦了你家親戚,就看你平方之和長得像。於是就找了這個長得像的來背黑鍋,大家都表示很和諧。然後給這種操作冠之名曰’最小二乘法’。官方一點的表述 , 選擇參數c使得擬合模型與實際觀測值在曲線擬合各點的殘差(或離差)ek=yk-f(xk,c)的加權平方和達到最小,此時所求曲線稱作在加權最小二乘意義下對數據的擬合曲線,這種方法叫做最小二乘法。

1.什麼是最小二乘思想

簡單地說,最小二乘的思想就是要使得觀測點和估計點的距離的平方和達到最小.這裏的“二乘”指的是用平方來度量觀測點與估計點的遠近(在古漢語中“平方”稱爲“二乘”),“最小”指的是參數的估計值要保證各個觀測點與估計點的距離的平方和達到最小。從這個上也可以看出,最小二乘也可用於擬合數據模型。

2.最小二乘法推導

我們以最簡單的一元線性模型來解釋最小二乘法。什麼是一元線性模型呢? 監督學習中,如果預測的變量是離散的,我們稱其爲分類(如決策樹,支持向量機等),如果預測的變量是連續的,我們稱其爲迴歸。迴歸分析中,如果只包括一個自變量和一個因變量,且二者的關係可用一條直線近似表示,這種迴歸分析稱爲一元線性迴歸分析。如果迴歸分析中包括兩個或兩個以上的自變量,且因變量和自變量之間是線性關係,則稱爲多元線性迴歸分析。對於二維空間線性是一條直線;對於三維空間線性是一個平面,對於多維空間線性是一個超平面…

​ 對於一元線性迴歸模型, 假設從總體中獲取了 n組觀察值 (X1,Y1)(X1,Y1),(X2,Y2)(X2,Y2),
…,(Xn,Yn)(Xn,Yn)。對於平面中的這 n 個點,可以使用無數條曲線來擬合。要求樣本回歸函數儘可能好地擬合這組值。綜合起來看,這條直線處於樣本數據的中心位置最合理。
​ 選擇最佳擬合曲線的標準可以確定爲:使總的擬合誤差(即總殘差)達到最小。有以下三個標準可以選擇:

  1. 用“殘差和最小”確定直線位置是一個途徑。但很快發現計算“殘差和”存在相互抵消的問題
  2. 用“殘差絕對值和最小”確定直線位置也是一個途徑。但絕對值的計算比較麻煩。
  3. 最小二乘法的原則是以“殘差平方和最小”確定直線位置。用最小二乘法除了計算比較方便外,得到的估計量還具有優良特性。這種方法對異常值非常敏感。

最常用的是普通最小二乘法( Ordinary Least Square,OLS):所選擇的迴歸模型應該使所有觀察值的殘差平方和達到最小。

3.公式推導

在這裏插入圖片描述
在這裏插入圖片描述

4.求和性質

在這裏插入圖片描述
在這裏插入圖片描述

5.一般形式

在這裏插入圖片描述

6.多元線性迴歸

在這裏插入圖片描述

7.最小二乘法和梯度下降法有哪些區別?

最小二乘法的目標:求誤差的最小平方和,對應有兩種:線性和非線性。線性最小二乘的解是closed-form即
x=(AT A)−1ATb,而非線性最小二乘沒有closed-form(即 (ATA)(ATA)沒有可逆矩陣),通常用迭代法求解。

迭代法,即在每一步update未知量逐漸逼近解,可以用於各種各樣的問題(包括最小二乘),比如求的不是誤差的最小平方和而是最小立方和。

梯度下降是迭代法的一種,可以用於求解最小二乘問題(線性和非線性都可以)。高斯-牛頓法是另一種經常用於求解非線性最小二乘的迭代法(一定程度上可視爲標準非線性最小二乘求解方法)。

還有一種叫做Levenberg-Marquardt的迭代法用於求解非線性最小二乘問題,就結合了梯度下降和高斯-牛頓法。

所以如果把最小二乘看做是優化問題的話,那麼梯度下降是求解方法的一種,x=(ATA)−1ATb是求解線性最小二乘的一種,高斯-牛頓法和Levenberg-Marquardt則能用於求解非線性最小二乘。

萊文貝格-馬夸特方法(Levenberg–Marquardt algorithm)能提供數非線性最小化(局部最小)的數值解。此算法能借由執行時修改參數達到結合高斯-牛頓算法以及梯度下降法的優點,並對兩者之不足作改善(比如高斯-牛頓算法之反矩陣不存在或是初始值離局部極小值太遠)

然後Levenberg-Marquardt方法的好處就是在於可以調節:

如果下降太快,使用較小的λ,使之更接近高斯牛頓法

如果下降太慢,使用較大的λ,使之更接近梯度下降法

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章