機器學習中的矩陣方法01:線性系統和最小二乘


 

說明:Matrix Methods in Data Mining and Pattern Recognition 讀書筆記

非常 nice 矩陣在線計算器,網址:http://www.bluebit.gr/matrix-calculator/.

 

1. LU Decomposition

假設現在要解一個線性系統:

Ax = b,

其中 A 是 n×n 非奇異方陣,對於任意的向量 b 來說,都存在一個唯一的解。

回顧我們手工求解這個線性方程組的做法,首先將矩陣 A 行之間進行加減,將 A 矩陣轉化為一個上三角矩陣,然后從下往上將未知數一個一個求解出來, 這就是高斯消元法

實際上,矩陣等價於左乘一個單位矩陣,行變換操作可以直接體現在左乘的單位矩陣上。比如要將矩陣 A 第二行減去第一行,等價於將左乘的單位矩陣的第二行減去第 一行,當然矩陣 A 最終轉化為上三角矩陣 U 比這個復雜的多,我們將左乘的單位矩陣最終等價變換后得到的矩陣命名為 M ,顯然, M 是一個下三角矩陣。

MA = U.

A = LU. 其中 M, L 互為逆矩陣

圖片表示如下:

由於要確保 A 轉化后的第一行的第一項不為 0, 第二行的第二項不為 0, 第三行…… 因此, A 前面應該再加上一個行與行之間進行交換的矩陣 P。因此,LU 分解的公式又可以寫成:

PA = LU

P 是 permutation matrix, L 是 lower triangular matrix, U 是 upper triangular matrix. 有些書將置換矩陣 P 放置在等號右邊。比如這個矩陣在線計算器默認的就是將 P 放置在矩陣 L 的前面。不妨利用這個工具測試一下 LU 分解的正確性。

如果 A 是對稱正定矩陣,L 和 U 正好是互為轉置,差別在於對應的行存在倍數關系,這種那個倍數關系可以用對角線矩陣來實現,所以, LU 分解就可以寫成:

將對角線矩陣均攤到兩邊,公式可以轉化為:

其中,矩陣 U 是上三角矩陣,這個就是 Cholesky decomposition,這個分解方法有點像求實數的平方根。同時,該分解方法的計算量只有 LU 分解的一半。

 

2. 條件數

條件數是線性方程組Ax=b的解對b中的誤差或不確定度的敏感性的度量。數學定義為矩陣A的條件數等於A的范數與A的逆的范數的乘積,即cond(A)=‖A‖·‖A-1‖,對應矩陣的3種范數,相應地可以定義3種條件數。

matlab 里面運算函數:cond(A,2)或cond(A):2范數

一個極端的例子,當A奇異時,條件數為無窮,這時即使不改變b,x也可以改變。奇異的本質原因在於矩陣有0特征值,x在對應特征向量的方向上運動不改變Ax的值。如果一個特征值比其它特征值在數量級上小很多,x在對應特征向量方向上很大的移動才能產生b微小的變化,這就解釋了為什么這個矩陣為什么會有大的條件數,事實上,正規陣在二范數下的條件數就可以表示成 abs(最大特征值/最小特征值)。——摘自百度百科

在計算機編程環境中,數據都是有浮點類型表示,精度有限,存在干擾,因此在解線性方程的時候都會存在誤差。

 

3. 最小二乘的問題

在機器學習里面,使用線性分類器或者線性回歸方法時經常會遇到最小二乘的問題(分類也可以看做一種特殊的回歸,目標值是 1 和 -1 或者 0 和 1)。現有下面這個問題,左邊是樣本點的兩個屬性,右邊是回歸值,如何確定 e 和 k?

這個線性系統可以表示為:

Ax = b

其中,A 的行數大於列數,這種情況又叫做 overdetermined。假設 A 矩陣是 3×2 的矩陣,令 A = (a1, a2), Ax 表示這兩個基向量的線性組合(span),在幾何上是三維空間里的一個平面。而 b 向量則是三維空間里面的一個點,這個點如果不在 span{a1, a2} 上,則該方程不存在正確的解。現在我們的任務是令殘差向量 r = b - Ax 最小:

LMS 算法中利用梯度下降法可以達到目標函數的最優值,但是這個目標函數的真正意義是什么?

幾何上的直觀感受就是,如果殘差向量正好垂直於 a1, a2 組成的平面,此時達到最優:

殘差向量 r = b - Ax 與 a1, a2 組成的平面垂直,則與向量 a1, a2 也是相互垂直的:

展開寫成如下公式:

如果 A 矩陣的列向量是線性無關的,那么上式有唯一的解:

用這個方法解決 least squares problems 存在兩個缺陷:

  1. A^T A 會導致信息的丟失。假設 A 中某一項是一個計算機剛好能表示的浮點數,A 乘以 A 的轉置后浮點數的平方可能超出精度而被丟失,從而導致 A^T A 是奇異矩陣無法求解,應對的方法是后面要學的奇異值分解。
  2. A^T A 的條件數是 A 的平方。系統不穩定性變大了。應對的方法是對數據進行中心化預處理,這樣做的目的是要增加基向量的正交性。

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM