我正在尝试开发一种用于SEM(结构方程模型)问题的算法(在梯度下降框架内)。有一个参数矩阵B(n * n),其对角线元素均固定为零。我的目标函数中的inv(IB)项(I-B的倒置)。没有其他约束,例如B的对称性。
我的问题是,如何确保迭代中(I-B)不单数?
在此问题中,由于目标函数的域不是整个R ^ n空间,因此似乎无法满足梯度下降收敛的严格条件。标准教科书将假定目标具有一个域在整个R ^ n空间中。似乎梯度下降将无法保证收敛。
在迭代算法的更新中,目前我的实现是检查(IB)是否接近奇异值,如果不是,则梯度下降的步长会缩小。是否有更好的数值方法处理这个问题?
答案 0 :(得分:1)
您可以尝试在det(I-B)>0
或det(I-B)<0
上设置对数屏障,具体取决于哪一个可以为您带来更好的结果,或者您是否有更多有关问题的信息。 logdet
的渐变非常好https://math.stackexchange.com/questions/38701/how-to-calculate-the-gradient-of-log-det-matrix-inverse
您还可以计算Fenchel对偶,因此有可能使用原始对偶方法。