对角矩阵的最小二乘

计算科学 线性代数 线性求解器 矩阵 线性系统
2021-12-24 11:43:37

这是我更详细地询问的另一个问题的后续行动。

为了vRn, 表示DvRn作为具有元素的对角矩阵v. 给定一个“高”矩阵BRn×m,我想解决以下优化问题:

minvRnXBDvBFro2
假设我计算得当,一阶最优性给出线性系统(BBBB)v=(BXB)1,其中表示逐元素(Hadamard)乘积和1Rn是所有的向量。我已经检查过这个系统对于我的应用程序是可逆的。

问题是,矩阵BBBB相对于B的大小非常大。我有能力采用B的 SVD (和X的 SVD ),但不能构建这个大而密集的矩阵。

我有什么办法可以直接解决这个系统而不使用迭代求解器?如果我必须迭代地进行,那么对于来自这个最小二乘问题的系统来说,最快的迭代是什么?

1个回答

通过将问题投影到 B 所跨越的空间中,可以获得封闭形式的解决方案。要看到这一点,请注意我们有

minvRnXBDvBTF,
但是如果我们引入使得,则优化减少 显然我们能做的最好的事情是设置,其中“diag”运算符隔离其输入矩阵的对角线。X~X=BX~BT
argminvRnBX~BTBDvBTFargminvRnX~DvF,
v=diag(X~)

现在,要获得,假设的范围空间上执行投影即可 证明是通过替换获得的(检查这个)。如果是奇异的,则使用伪逆。结合起来,我们证明了以下结果。X~BB

X~=(BTB)1BTXB(BTB)1.
X=BX~BTBTB

定理 1.优化有以下闭式解

v=diag[(BTB)1BTXB(BTB)1].

最后,值得注意的是,如果计算负载是一个问题,您不应该明确地形成矩阵。相反,您应该对进行cholesky 分解,执行一种大小的矩阵-矩阵乘积,然后隐式计算对角线。X