Processing math: 100%

2019年4月26日 星期五

[線性代數] 找擬合線上投影點 - Part1 - SVD解擬合線篇

二點可以完全確定一直線,而在資料點超過三點的情況時蠻有可能找不到一個完美直線讓所有資料點都能夠與某直線重合,此時只能找所謂的最佳解,合理的命題如下:




嘗試找到一直線,使所有資料點對此直線的距離的總和,是所有可能的解裡的最小值





設定欲求解的直線方程式以一般式(general form)表達:

ax+by+c=0

接著把每個已知資料點以齊次座標方式(xi,yi,1)表達,共n個資料點,裝載在同一矩陣裡:

[x1y11x2y21xnyn1]

因為資料點不見得落在線上,所以資料點套入ax+by+c後不見得為零,可能會有剩餘量bi,因此命題可以被整理成矩陣形式:

b=[b1b2bn]=[x1y11x2y21xnyn1][abc]=Ax

目標至此很明確,我們要分析矩陣A的性質,找到一組x使得b的向量長度是所有可能解裡最小的,分析矩陣的工具,首選SVD!(因為我只會這個):

A=UDVT=[u1u2un]n×n[σ1000σ2000σ3000]n×3[v1v2v3]3×3

其中u1u2un的維度個別都是 1×n,向量v1v2v3的維度個別都是1×3

SVD分解的意義就是將定義域Rm肢解成標準正交基v1vm,並用D矩陣表達表示各標準正交基在映射過程的放大倍率σ1σn;可以從A分解出的D矩陣看出,在資料點在超過3點時,σ至多只會有3個,也就是說,即便有n個ui標準正交基底構成完整值域Rn,但對於A來說,映射在值域上的子空間最多只由3個正交基構成
(畢竟來源空間維度只有3,可以想成以3種元素交叉變換組合產生新的化合物,這些化合物們的構成元素至多只會有3種,某種程度像是數學上的物質不滅吧?)

由於viui標準正交基,長度皆為1,也就是說各組vi投射到Rn空間的向量長度,完全是由σi所控制,所以我們又可以進一步轉換命題:

要選擇哪一組vi,使得對應的σ×ui的向量長度最短呢?

問題至此,已經從最初的開放式題目透過SVD分解,變成選擇題,答案也十分明顯:

選擇最小的σ對應的vi


假如最小的放大倍率為σ2,則最小平方解就會是v2,對應在Rn的向量則是σ2×u2(長度為σ2u2向量),不過一般來說SVD分解後都會是以降冪形式排列,所以對應的最小平方解一般是v3,最小殘餘量b=σ3×u3


沒有留言:

張貼留言