Я хотел бы вычислить псевдообратную Мура – Пенроуза огромной матрицы. В идеале я хотел бы сделать это на матрице, которая имеет 23 миллиона строк и 1000 столбцов, но при необходимости я могу уменьшить количество строк до 4 миллионов, выполнив только одну часть моего эксперимента.
Очевидно, что загрузка матрицы в память и запуск SVD на ней не будут работать. Википедия указывает на подпространство Крылова методов и упоминает Арнольди , Ланцоша , Градиент сопряжения , GMRES (обобщенный минимальный остаток), методы BiCGSTAB (стабилизированный биоконъюгатный градиент), QMR (квази минимальный остаток), TFQMR (QMR без транспонирования) и MINRES (минимальный остаток) как одни из лучших методов подпространства Крылова. Но я не знаю, куда идти отсюда. Возможно ли вычислить псевдообратную форму такой огромной матрицы? Если да, то с помощью каких алгоритмов или программных библиотек? У меня есть большой вычислительный кластер, поэтому параллельные подходы приветствуются.
Этот ответ указывает на пакет R biglm . Будет ли это работать? Кто-нибудь использовал это? Обычно я работаю в Python, но не против использования других языков и инструментов для этой конкретной задачи.