大规模伪逆

Veb*_*osa 8 algorithm hpc linear-algebra

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

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

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

dei*_*nst 2

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