矩陣論基礎知識 病態矩陣與條件數

2021-10-03 23:02:47 字數 2435 閱讀 5948

現在有線性系統: 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,可以分解為兩個特徵向量的線性組合:

把上式帶入,

如果特徵值對解集起到了乙個 scaling 的作用。反過來說,如果乙個特徵值比其它特徵值在數量級上小很多,x在對應特徵向量 (x2) 方向上很大的移動才能產生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。

矩陣基礎知識

本章介紹矩陣的概念 矩陣的基本運算 可逆矩陣分塊矩陣的概念及其運算.矩陣是乙個數表,它的行數和列數可以不相等.行列式是乙個算式,它的行數和列數必須相等.當a為n階方陣時,稱det a 或 a 為方陣a 生成的 a為非奇異矩陣.行列式.當det a 0時,稱a為奇異矩陣 當det a 0時,稱a為非奇...

機器學習中的矩陣方法 附錄A) 病態矩陣與條件數

現在有線性系統 ax b,解方程 很容易得到解為 x1 100,x2 200.如果在樣本採集時存在乙個微小的誤差,比如,將 a 矩陣的係數 400 改變成 401 則得到乙個截然不同的解 x1 40000,x2 79800.當解集 x 對 a 和 b 的係數高度敏感,那麼這樣的方程組就是病態的 il...

矩陣的基礎知識

乘法結合律 ab c a bc 乘法左分配律 a b c ac bc 乘法右分配律 c a b ca cb 對數乘的結合性k ab ka b a kb 轉置 ab t btat 矩陣乘法一般不滿 換律 除了有些特殊的方陣之間的乘法 滿足乘法交換律的方陣稱為可交換矩陣,即矩陣a,b滿足 a b b a...