如何理解正定矩阵和半正定矩阵
Posted marsggbo
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何理解正定矩阵和半正定矩阵相关的知识,希望对你有一定的参考价值。
乍看正定和半正定会被吓得虎躯一震,因为名字取得不知所以,所以老是很排斥去理解这个东西是干嘛用的,下面根据自己和结合别人的观点解释一下什么是正定矩阵(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)=\\fraca^Tb||a||\\times ||b||\\]
下面的内容是一层一层推进的,所以可能有点绕,请耐心阅读并思考:
所以正定矩阵是个什么意思呢?实际上就是说对于一个向量\\(X\\),我们希望 \\(X\\)在经过有一个矩阵\\(A\\)的变化后得到的新的向量\\(M\\)和它本身的夹角小于90度。
而小于90度背后的含义是变换后的向量\\(M\\)是沿着原向量\\(X\\)的正方向进行缩放的(即 \\(M\\)投影回原向量时方向不变)。
而上面这句话还可以从特征向量的角度进一步理解,在介绍之前我们回顾一下特征值和特征向量的概念:
首先一个矩阵\\(A\\)的特征向量\\(x\\)就是表示某个向量会沿着特征向量的方向进行变换(缩放),缩放比例由特征值\\(\\lambda\\)决定。例如:
\\[
A_1=\\left[\\beginarraycc0.5 & 0 \\\\ 0 & 2\\endarray\\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\\)那么最终得到的向量\\(\\overrightarrowAb\\)投射到\\(\\overrightarrowb\\)方向的向量与\\(\\overrightarrowb\\)反向。综上,要使得变换后的向量\\(M\\)与原向量\\(x\\)夹角小于90度,即映射回原来的向量时保持方向不变,那么就需要特征值大于0,所以这也是为什么正定矩阵的特征值都大于0.
以上是关于如何理解正定矩阵和半正定矩阵的主要内容,如果未能解决你的问题,请参考以下文章
三十分钟理解:矩阵Cholesky分解,及其在求解线性方程组矩阵逆的应用