天天看點

如何了解正定矩陣和半正定矩陣

乍看正定和半正定會被吓得虎軀一震,因為名字取得不知是以,是以老是很排斥去了解這個東西是幹嘛用的,下面根據自己和結合别人的觀點解釋一下什麼是正定矩陣(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公式呢?如下:

\[cos(\theta)=\frac{a^Tb}{||a||\times ||b||}

\]

下面的内容是一層一層推進的,是以可能有點繞,請耐心閱讀并思考:

  • 是以正定矩陣是個什麼意思呢?實際上就是說對于一個向量\(X\),我們希望 \(X\)在經過有一個矩陣\(A\)的變化後得到的新的向量\(M\)和它本身的夾角小于90度。
  • 而小于90度背後的含義是變換後的向量\(M\)是沿着原向量\(X\)的正方向進行縮放的(即 \(M\)投影回原向量時方向不變)。
  • 而上面這句話還可以從特征向量的角度進一步了解,在介紹之前我們回顧一下特征值和特征向量的概念:

首先一個矩陣\(A\)的特征向量\(x\)就是表示某個向量會沿着特征向量的方向進行變換(縮放),縮放比例由特征值\(\lambda\)決定。例如:

\[A_{1}=\left[\begin{array}{cc}{0.5} & {0} \\ {0} & {2}\end{array}\right]

\]

很簡單地可以計算得到\(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.

微信公衆号:AutoML機器學習 MARSGGBO ♥原創

如有意合作或學術讨論歡迎私戳聯系~

郵箱:[email protected]

2020-01-23 17:45:35

2019-8-28