嘗試找到一直線,使所有資料點對此直線的距離的總和,是所有可能的解裡的最小值
設定欲求解的直線方程式以一般式(general form)表達:
ax+by+c=0
接著把每個已知資料點以齊次座標方式(xi,yi,1)表達,共n個資料點,裝載在同一矩陣裡:
[x1y11x2y21⋮xnyn1]
因為資料點不見得落在線上,所以資料點套入ax+by+c後不見得為零,可能會有剩餘量bi,因此命題可以被整理成矩陣形式:
b=[b1b2⋮bn]=[x1y11x2y21⋮xnyn1][abc]=Ax
目標至此很明確,我們要分析矩陣A的性質,找到一組x使得b的向量長度是所有可能解裡最小的,而分析矩陣的工具,首選SVD!(因為我只會這個):
A=UDVT=[u1u2⋯un]n×n[σ1000σ2000σ3000⋮]n×3[v1v2v3]3×3
其中u1u2⋯un的維度個別都是 1×n,向量v1v2v3的維度個別都是1×3
SVD分解的意義就是將定義域Rm肢解成標準正交基v1⋯vm,並用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(長度為σ2的u2向量),不過一般來說SVD分解後都會是以降冪形式排列,所以對應的最小平方解一般是v3,最小殘餘量b=σ3×u3
沒有留言:
張貼留言