8

我想计算一个巨大矩阵的Moore-Penrose 伪逆。理想情况下,我想在具有 2300 万行和 1000 列的矩阵上执行此操作,但如有必要,我可以通过仅在实验的一部分上运行将行数减少到 400 万。

显然,将矩阵加载到内存中并在其上运行 SVD 是行不通的。 维基百科指向Krylov 子空间方法并提到ArnoldiLanczos共轭梯度GMRES(广义最小残差)、BiCGSTAB(双共轭梯度稳定)、QMR(准最小残差)、TFQMR(无转置 QMR)和 MINRES(最小残差) ) 方法是最好的 Krylov 子空间方法之一。但我不知道从这里去哪里。计算如此庞大的矩阵的伪逆是否可行?如果是这样,使用哪些算法或软件库?我有一个可用的大型计算集群,因此欢迎使用并行方法。

这个答案指向 R 包biglm。那行得通吗?有人用过吗?我通常使用 Python 工作,但不介意使用其他语言和工具来完成这项特定任务。

4

1 回答 1

2

您最好使用直接收敛到最小二乘解的块迭代算法,而不是通过伪逆计算最小二乘解。请参阅 Charlie Byrne 的“应用迭代方法”。这些算法与 Krylov 子空间方法密切相关,但经过调整以便于计算。您可以通过查看他的另一本书的预印本的第 3 章来获得介绍。

于 2010-07-22T01:16:39.143 回答