正定矩阵 Positive definite matrix


Positive definite matrix

  说道正定矩阵,这名字又能糊住很多人。心里默默念叨“我X,这是个什么矩阵,干嘛用的,名字这么叼”


  首先,本来可能很浅显的数学概念,从原来的英文描述翻译成中文之后会变得更加抽闲!

  我看了MIT的公开课视频才知道所谓的正定矩阵是 positive definite matrix。

下面是授课视频的link

   http://v.163.com/movie/2010/11/3/P/M6V0BQC4M_M6V2B5J3P.html


blog符号说明: V’ 表示矩阵V的转置

                           x^2 表示x的平方

-------------------------------------------------------------------------------------------------------------------------------------------






首先回归到矩阵的本质,矩阵是什么,就是多元函数的系数一种很巧妙的表示方法!无他!

对于这些系数的探讨和研究直接可以分析出函数的特性。


首先由下面的问题引出positive definite matrix的定义


对于一个系数矩阵

A = [a b 

       c  d];

列向量V = [x 

                  y];

V' A V = [ax + cy, bx +dy] * V

          = (ax+cy)*x + (bx+dy)*y

          = ax^2 + dy^2 + (c+b)x*y;

想想,对于任意的x和y变量,我们能够找到适当的a b c d值,是不是可以把V'AV的值确定为大于等于0的?!

比方A = [1 0

      0  1];

这样V' AV = x^2 + y^2; 任意的xy,该式子的值都大于等于0;

如果除开V = [0 ;0]这种情况,其余的地方都是大于0的。

这就是正定矩阵的来源!


正定矩阵的定义就是,对于V不等于零向量的任意向量,有矩阵A使得,V' AV > 0成立,我们把这样的矩阵A称作正定矩阵。


关于positive definite matrix的判定:

1. 矩阵特征值均大于0

2. 行列式的值大于0.


举例,下图中的待确定的矩阵,第二行第二列的元素未知,如果我们填入适当的数值,应该填写多大的数值可以使得该矩阵正定呢?

显然问题很简单,大于18即可。

如果是刚好等于18呢?我们把这种情况称为半正定——positive semi-definite matrix。



恩,既然是说函数V'AV的值在除开零向量出,任意的V均使得函数大于0,二元函数我们可以左图检验。


比方说这里矩阵A = [ 2 6

                                  6 7];

很明显,这里的A是非正定的,对于变量V = [x1 x2],


观察该函数的图像,这个函数的图像像个马鞍,可以观察到,函数是有小于0的部分的。很好的印证了非正定矩阵。


我们只需稍作A的调整,把7改成大于18的数值(比方说20),即可得到正定矩阵,函数的图像除开0点之外,对于所有V的取值,都大于0.

下面是函数图像,Z变量即函数值。我们可以直观的看出函数最小不小于0。



到现在应该明白了,正定矩阵干嘛用的?使得V' AV大于0。进一步的,我们可以利用函数求导的性质探究函数极值的情况。





### 解决矩阵正定问题的方法 在数值计算或机器学习算法中遇到矩阵正定时,可以采取多种策略来解决问题。以下是几种常见的解决方案: #### 方法一:调整矩阵使其接近正定 可以通过向矩阵添加一个小的扰动项来使它更接近正定形式。具体来说,在矩阵 \( A \) 的对角线上加上一个小的正值常数 \( \epsilon I \),其中 \( I \) 是单位矩阵,\( \epsilon \) 是一个非常小的正实数。这种方法通常被称为 **Tikhonov 正则化** 或 **岭回归**。 \[ A_{\text{new}} = A + \epsilon I \] 这一步骤能够有效改善条件数并减少病态行为[^1]。 #### 方法二:使用共轭梯度法处理正规方程 如果原始矩阵不是正定的,则可以考虑将其转换为正规方程的形式 \( A^T A x = A^T b \)。由于 \( A^T A \) 总是一个对称半正定矩阵,因此即使原矩阵 \( A \) 不满足正定性质,也可以利用此特性应用共轭梯度法求解线性系统。 需要注意的是,尽管这种做法解决了非正定问题,但它可能放大噪声的影响,特别是在数据存在较大误差的情况下。 #### 方法三:引入正则化技术 为了防止过拟合以及应对非正定情况下的优化困难,可以在目标函数中加入 L2 范数惩罚项作为正则化手段。这样做的效果相当于隐式地改变了 Hessian 矩阵结构,从而帮助其变得更为稳定和易于收敛[^5]。 例如,在最小二乘问题中增加如下约束: \[ J(\theta) = \|X\theta - y\|^2_2 + \lambda \|\theta\|_2^2 \] 这里的参数 \( \lambda > 0 \) 控制着正则化的强度大小。 #### 方法四:采用稳健的数值方法替代传统方式 对于某些特定应用场景而言,直接修改输入矩阵并非最佳选择;此时可以选择更加鲁棒性强的技术代替标准操作流程。比如运用奇异值分解(SVD)或者特征值分解(Eigenvalue Decomposition)重构新的基底空间表示,进而规避掉因不良定义而导致的一系列麻烦事项[^3]。 另外还可以尝试其他高级迭代方案如预调节子(preconditioner)-辅助型 CG 法等进一步提升稳定性表现水平。 ```python import numpy as np # Example implementation using regularization technique def solve_with_regularization(A, b, epsilon=1e-8): n = A.shape[1] identity_matrix = np.eye(n) adjusted_A = A.T @ A + epsilon * identity_matrix solution_x = np.linalg.solve(adjusted_A, A.T @ b) return solution_x ``` 上述代码片段展示了如何通过简单地改变系数矩阵实现基本版本的修正过程。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值