大规模伪逆

时间:2010-07-21 15:43:25

标签: algorithm linear-algebra hpc

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

显然,将矩阵加载到内存中并在其上运行SVD是行不通的。 Wikipedia指向Krylov subspace方法并提及ArnoldiLanczosConjugate gradientGMRES(广义最小残差),BiCGSTAB(biconjugate梯度稳定) ),QMR(准最小残差),TFQMR(无转置QMR)和MINRES(最小残差)方法是最好的Krylov子空间方法之一。但我不知道从哪里开始。计算这样一个巨大矩阵的伪逆是否可行?如果是这样,使用哪些算法或软件库?我有一个大型计算集群,所以欢迎并行方法。

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

1 个答案:

答案 0 :(得分:2)

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