1 分析方法
已知數(shù)據(jù)點為
,欲擬合直線
,則有最小化:
。
使用矩陣表示,令
,則有:
,
X, Y已知,要使E最小化,則向量B求導(dǎo)等于零:
,整理得:
。
2 線性代數(shù)方法
在分析方法中,使用最小誤差法擬合直線。這里還可以使用線性代數(shù)中正交原理得到相同結(jié)果。
1)線到線上投影
如上圖所示,b 到 a 的投影為 p = xa,由于 e 與 a 垂直,有 (b - xa)a = 0,未知數(shù)為 x。
求解方程得
,
。
帶入 x 值,計算出 b 到 a 的投影為
,投影矩陣為
,
根據(jù)投影矩陣,b 到 a 的投影可重寫為
。給定一個向量,可以求解出投影到該向量的投影矩陣,任意向量到給定向量的投影即為 Pb 。
2)線到面上投影
如上圖所示,超平面為矩陣 A 的列空間構(gòu)成(為了可視化,上圖限制為二維平面,但結(jié)論對 N 維平面均適用),b 到平面 A 的投影為 p ,p 可表示為
。
類似線到線投影,e = b - p,e 垂直于平面 A,有:
,
,
。
帶入 x 計算出 b 到平面 A 的投影為
,投影矩陣為
。
根據(jù)投影矩陣, b 到平面 A 的投影可重寫為
。給定一個矩陣,可以求解出投影到該矩陣列空間構(gòu)成的超平面上的投影矩陣,任意向量到給定矩陣列空間構(gòu)成的超平面上的投影為 Pb。
3)直線擬合
設(shè)直線方程為 y = kx + b,對于任意點 (x,y),帶入直線方程得:
,當(dāng)向量
落在矩陣
列空間構(gòu)成得超平面外時,方程組無解。這也正是最小二乘法需要解決得問題。
將向量
投影到矩陣
列空間構(gòu)成的超平面,根據(jù)線到面上投影,可以尋找投影向量 p,改寫方程為
,該方程組有解。
使用
作為原方程的最佳近似解,帶入
,解得
。
對于方程組 Ax=b,當(dāng) b 不在矩陣 A 的列空間時,無法求得 x 精確解,但可以求得 x 的近似解,使得
。
實際運算中,并不需要特意求解 P,只需對方程組做如下變換即可:
。
二 使用垂直距離改寫E
常規(guī)最小二乘法有如下問題:
1)數(shù)據(jù)點旋轉(zhuǎn)后,求解得直線是變化的;
2)垂直直線無法求解;
通過修改 E 表達(dá)式,可以克服以上問題,如下圖:
假設(shè)
,圖中直線方程
已經(jīng)歸一化,任意點
到直線的距離為
,則有最小化:
。
上式中,a,b,d 均為未知量,首先對求偏導(dǎo),有:
,整理得:
,
將d代入E中得:
。
使用矩陣表示,令
,有:
,
對X求導(dǎo),可得:
,求解二元一次方程組
可計算處擬合直線。
三 RANSAC(Random Sample Consensus)
如上圖所示,少數(shù)離群點可使擬合出現(xiàn)較大偏差。因此,應(yīng)該使用一些邏輯來降低離群點干擾,具體措施如下:
1)隨機選取一個子集,使用最小二乘法擬合直線;
2)在規(guī)定得誤差范圍內(nèi)計算合群點;
3)多次選取不同的子集,繼續(xù)1)2)操作;
4)選擇合群點最多模型作為擬合初步結(jié)果,使用該模型下所有合群點重新擬合直線,得到最終結(jié)果。
語言方法
51944WnX9
qj5H7
如何讓抖音快速漲粉64482007/06/17 17:52:51