現在有線性系統: ax = b, 解方程
很容易得到解為:x1 = -100, x2 = -200. 如果在樣本採集時存在乙個微小的誤差,比如,將 a 矩陣的係數 400 改變成 401:
則得到乙個截然不同的解:x1 = 40000, x2 = 79800.
當解集 x 對 a 和 b 的係數高度敏感,那麼這樣的方程組就是病態的 (ill-conditioned).
那麼,如何評價乙個方程組是病態還是非病態的呢?在此之前,需要了解矩陣和向量的 norm, 這裡具體是計算很簡單的 infinity norm, 即找行絕對值之和最大,舉個例子:
infinity norm 具有三角性質:||x+y||<=
||x|| + ||y||. 理解了這些概念,下面討論一下衡量方程組病態程度的條件數,首先假設向量 b 受到擾動,導致解集 x 產生偏差:
即有:同時,由於
綜合上面兩個不等式:
即得到最終的關係:
如果是矩陣 a 產生誤差,同樣可以得到:
其中, 條件數定義為:
一般來說,方程組解集的精度大概是
自己的看法:
在二維空間上,這兩個列向量夾角非常小。假設第一次檢測得到資料 b = [1000, 0]^t, 這個點正好在第乙個列向量所在的直線上,解集是 [1, 0]^t。現在再次檢測,由於有輕微的誤差,得到的檢測資料是 b = [1000, 0.001], 這個點正好在第二個列向量所在的直線上,解集是 [0, 1]^t。兩次求得到了差別迥異的的解集。
特徵值
假設 a 的兩個單位特徵向量是 x1, x2, 根據特徵向量的性質:
上述矩陣 a 的特徵值和特徵向量分別為:
對於平面上的某乙個向量 b,可以分解為兩個特徵向量的線性組合:
把上式帶入,
如果2. svd
svd 分解:
聯絡上次學到的 svd 知識,將 a 分解成三個矩陣的乘積,中間的對角線矩陣也起到了 scaling 的作用。我們按照正向思維來考慮這個問題,現在來了乙個解集 x 向量,左乘 a 矩陣等價與左乘 usv^t, x 向量正好等於 v^t 最後一行向量,經過 s 矩陣的 scaling 縮小之後對 b 的影響非常小。也就是說, 解集 x 在 v^t 最後一行的行向量方向自由度最大!自由度越大,越不穩定,極端情況是該方向奇異值為 0, 解集可以在該方向取任意值,這也正好對應了矩陣 a 有零特徵值, ax 在對應特徵向量的方向上移動不改變 ax 的值。
在不同的 norm 下,條件數又可以由最大奇異值與最小奇異值之間的比值,或者最大特徵值和最小特徵值之間比值的絕對值來表示,詳情請參考維基百科
最後, a 的條件數究竟等於多少呢? cond(a) = 2e+06
真正的自由是建立在規範的基礎上的。病態矩陣解集的不穩定性是由於解集空間包含了自由度過大的方向,解決這個問題的關鍵就是將這些方向去掉,而保留 scaling 較大的方向,從而把解集侷限在乙個較小的區域內。在上面的討論中, a 矩陣的特徵向量不一定正交,不適合做新基, svd 分解正好分解出了正交基,可以選前 k 個 v^t 向量作為正交基。
比如,現在只選取前乙個 (0.707, 0.707) 方向作為基,解集侷限咋 y = x 這條直線上。直觀的解釋就是, a 矩陣的兩個列向量過於類似,我們就可以將它們等同看待,第一次 b = (1000, 0), 解集是(0.5, 0.5), 第二次 b = (1000, 0.001), 解集還是 (0.5, 0.5).
總結起來,解決 a 病態就是將解集限定在一組正交基空間內,即對於座標 y, 選擇 k 個正交基 zk,解決問題:
這個就是 reduce-rank model. 具體方法有 truncated svd 和 krylov subspace method。
機器學習方法 機器學習中的優化方法
機器學習是離不開優化方法的,pedro domingos這樣概括機器學習和優化方法的關係 machine learning representation optimization evaluation 後面三項對應於三步 建立模型,求解模型,驗證模型。首先介紹一下機器學習中常見的優化問題 1.分類回...
機器學習中的矩陣向量求導 五 矩陣對矩陣的求導
本篇主要參考了張賢達的 矩陣分析與應用 和長軀鬼俠的矩陣求導術 假設我們有乙個p qp q的矩陣ff要對m nm n的矩陣xx求導,那麼根據我們第一篇求導的定義,矩陣ff中的pqpq個值要對矩陣xx中的mnmn個值分別求導,那麼求導的結果一共會有mnpqmnpq個。那麼求導的結果如何排列呢?方法有很...
機器學習中的核方法
乙個複雜的模式分類問題,在高維空間中線性可分的概率比在低微空間中更大。二維空間中有4個點,其中是一類,是一類,在二維空間中這4個點不是線性可分得。但是如果把這四個點對映到乙個合適的三維空間,比如將 1,1 對映到 1,1,1 1,1 對映到 1,1,1 將 1,1 與 1,1 對映到 1,1,1 與...