无需居中“A”即可有效求解“居中”最小二乘的方法

计算科学 线性代数 稀疏矩阵 最小二乘
2021-12-05 12:50:03

假设我想解决

arg minx12A~xb22+12xc22

在哪里A是一个宽稀疏矩阵,并且A~=ACn=A(I11T/n)是“居中”的版本A,通常是非稀疏的。[1]

如果我愿意实现A~,我知道解决这个问题的几种有效方法,但如果可能的话,我想避免这样做。(A~小到可以安装在单台机器上,但又大到可以使用稀疏感知方法。)

有没有关于这个问题的文献?(它在统计中经常出现,其中居中A使线性回归的截距独立于其他系数。)

如果重要的话,我实际上需要针对不同的值反复解决这个问题c,所以我愿意“支付”更昂贵的因式分解并在可能的情况下重用它。

[1] https://en.wikipedia.org/wiki/Centering_matrix

1个回答

如果您不需要进行居中,您将如何解决问题?

自从A大而稀疏,您可能会选择迭代方法,例如 CGNE,这取决于能够执行矩阵向量乘法AxATy. 事实证明,您仍然可以对问题的中心版本使用相同的迭代方法,因为矩阵向量乘法与A~并不比矩阵向量乘法慢A.

A~x=A(I11T/n)x=Ax(A1/n)(1Tx)

A~Ty=(A(I11T/n)Ty=ATy1(1TAT/n)y.

在这两个表达式中,您只需计算A1/n及其转置1TAT/n一次。剩下的工作很简单O(n)时间。

如果您要使用 QR 分解A,你必须处理一个事实,即 Q 矩阵通常是完全密集的,即使A是稀疏的。您可以使用秩一更新过程(MATLAB 中的 qrupdate)来更新因式分解A分解为A~,但这可能不会比居中快A然后找到它的QR分解。