【问题标题】:what is the numerical method to guarantee safer matrix inversion?保证更安全的矩阵求逆的数值方法是什么?
【发布时间】:2019-06-21 23:36:37
【问题描述】:

我正在尝试为 SEM(结构方程模型)问题开发一种算法(在梯度下降的框架内)。有一个参数矩阵 B(n*n),其所有对角线元素都固定为零。并且我的目标函数中的一项 inv(IB)(I - B 的反转)。B 上没有其他约束,例如对称性。

我的问题是,我们如何确保 (I-B) 在迭代中不是奇异的?

在这个问题中,由于目标函数的域不是整个R^n空间,似乎不满足梯度下降收敛的严格条件。标准教科书会假设目标有域在整个 R^n 空间中。似乎梯度下降不会有保证的收敛性。

在迭代算法的更新中,目前我的实现是检查(IB)是否接近奇异,如果不是,那么梯度下降的步长会被缩小。有没有更好的数值方法处理这个问题?

【问题讨论】:

  • 您已经检查了简单的变体,例如 ||B||
  • B由数据决定,没有先验信息。
  • 我会做一个简单的 LU 分解并检查对角线是否为零。通过 LU 分解,您可以直接从那里计算逆。另外,你确定你需要逆吗?大多数情况下,您实际上不需要计算它。

标签: matrix numerical-methods inversion


【解决方案1】:

您可以尝试在det(I-B)>0det(I-B)<0 上设置对数障碍,具体取决于哪个可以提供更好的结果,或者您是否有更多关于您的问题的信息。 logdet 的渐变很不错 https://math.stackexchange.com/questions/38701/how-to-calculate-the-gradient-of-log-det-matrix-inverse

您还可以计算 Fenchel 对偶,因此您可以使用原始对偶方法。

【讨论】:

    猜你喜欢
    • 2017-11-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-30
    • 2020-10-21
    • 2015-05-31
    • 1970-01-01
    相关资源
    最近更新 更多