如何理解正定矩阵和半正定矩阵
定义
-
正定矩阵(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 :
其实我们可以把 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}=[ [0.5, 0]^T, [0,2]^T ] 很简单地可以计算得到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} 反向。综上,要使得变换后的向量M与原向量x夹角小于90度,即映射回原来的向量时保持方向不变,那么就需要特征值大于0,所以这也是为什么 正定矩阵的特征值都大于0 .
上面关于正定矩阵的特征值大于0的解释是比较直观的一种方式,但是还是会存在一些小问题,所以仅仅只是帮助大家有一个直观的理解。下面我们也可以从下面的推导来解释为什么正定矩阵特征值都大于0:
A x=\lambda x \\ \rightarrow x^{T} A x=\lambda x^{T} x=\lambda\|x\|^{2}>0
故λ必须大于0,即特征值必须大于0.
MARSGGBO♥原创
微信公众号: 【AutoML机器学习】
2019-8-28