乍看正定和半正定會被嚇得虎軀一震,因為名字取得不知所以,所以老是很排斥去理解這個東西是干嘛用的,下面根據自己和結合別人的觀點解釋一下什么是正定矩陣(positive definite, PD) 和半正定矩陣(positive semi-definite, PSD)。
定義
首先從定義開始對PD和PSD有一個初步的概念:
- 正定矩陣(PD):
給定一個大小為 \(n\times n\) 的實對稱矩陣 \(A\) ,若對於任意長度為 \(n\) 的非零向量 \(X\),有 \(X^TAX>0\) 恆成立,則矩陣 \(A\) 是一個正定矩陣。
- 半正定矩陣(PSD)
給定一個大小為 \(n\times n\) 的實對稱矩陣 \(A\) ,若對於任意長度為 \(n\) 的非零向量 \(X\),有 \(X^TAX≥0\) 恆成立,則矩陣 \(A\) 是一個半正定矩陣。
說人話來理解
光看定義其實肯定不能理解到底是個啥,以及為什么要這么定義。所以下面用說人話的方式來進行解釋。
仔細看一下上面的定義可以看到兩種矩陣的唯一區別就是正定要求是大於0,而半正定要求大於等於0。這個是不是很像二次函數\(y=ax^2\):
- 當\(a>0\)時, \(y>0\);
- 當\(a≥0\)時,\(y≥0\)。
其實我們可以把\(y=X^TAX\)看作是\(y=ax^2\)的多維擴展表達式,我們所說的正定矩陣就是希望矩陣\(A\)能夠起到\(a>0\)的效果,半正定就是希望有一個矩陣\(A\)能夠起到像\(a≥0\)的效果。
這么說起來你可能還是不太能理解,沒關系,我們進一步從向量相乘的角度來理解。
以正定矩陣為例,它需要滿足\(X^TAX>0\),而且我們知道矩陣相乘(如\(AX\))的本質是將向量\(X\)按照矩陣\(A\)所指定的方式進行變換(你可以通過閱讀理解矩陣等系列文章來對矩陣乘法產生更加深刻的理解)。
我們可以記\(M=AX\),那么對於正定矩陣有\(X^TAX=X^TM>0\),看到這有沒有想起cos公式呢?如下:
下面的內容是一層一層推進的,所以可能有點繞,請耐心閱讀並思考:
-
所以正定矩陣是個什么意思呢?實際上就是說對於一個向量\(X\),我們希望 \(X\)在經過有一個矩陣\(A\)的變化后得到的新的向量\(M\)和它本身的夾角小於90度。
-
而小於90度背后的含義是變換后的向量\(M\)是沿着原向量\(X\)的正方向進行縮放的(即 \(M\)投影回原向量時方向不變)。
-
而上面這句話還可以從特征向量的角度進一步理解,在介紹之前我們回顧一下特征值和特征向量的概念:
首先一個矩陣\(A\)的特征向量\(x\)就是表示某個向量會沿着特征向量的方向進行變換(縮放),縮放比例由特征值\(\lambda\)決定。例如:
很簡單地可以計算得到\(A\)的特征值分別是0.5和2,而它們對應的特征向量分別是\([1,0]^T\)和\([0,1]^T\)。所以如果一個向量\(b\)左乘一個矩陣\(A\),其本質就是將向量\(b\)沿着\([1,0]^T\)和\([0,1]^T\)方向分別放大0.5和2倍。我們假設\(b=[2,2]^T\),那么\(Ab\)最終得到的向量為\([1,4]^T\),結合下圖看更加直觀:
我們看上圖,如果其中一個特征值小於0,比如\(\lambda_1<0\)那么最終得到的向量\(\overrightarrow{Ab}\)投射到\(\overrightarrow{b}\)方向的向量與\(\overrightarrow{b}\)反向。綜上,要使得變換后的向量\(M\)與原向量\(x\)夾角小於90度,即映射回原來的向量時保持方向不變,那么就需要特征值大於0,所以這也是為什么正定矩陣的特征值都大於0.
2019-8-28