Які ефективні алгоритми для обчислення сингулярного розкладання значення (SVD)?


17

У статті Вікіпедії про аналіз основних компонентів йдеться про це

Існують ефективні алгоритми для обчислення SVD без необхідності формування матриці , тому обчислення SVD тепер є стандартним способом обчислення аналізу основних компонентів з матриці даних, якщо не потрібно лише декілька компонентів.XXTX

Може хтось скаже мені, про які ефективні алгоритми йдеться у статті? Немає посилань (URL-адреса чи цитування на статтю, яка пропонує такий спосіб обчислення, було б добре).


4
Пошук в алгоритмі декомпозиції значення сингулярного значення в Google виконує чудову роботу з виділення відповідної інформації.
whuber

1
Не забудьте видалити середину перед SVD для PCA!
Спогад

Спробуйте Lanczos SVD!
ciri

Відповіді:


12

МNАвведіть тут опис зображення

Як ви бачите, залежно від випадку використання, існують різні підходи (звичайні умови іменування можна знайти тут ). Це пов'язано з тим, що, наприклад, існують матричні форми, де скорочення домочадців може бути дорожчим, ніж обертання Гівенса (щоб назвати два "очевидних" способу отримання QR). Стандартне посилання на це питання - Матричні обчислення Голуба та Вана Позики (я б запропонував використовувати принаймні 3-е видання). Я також знайшов Å. Чисельні методи Бьоркка для проблем з найменшими квадратами дуже хороший ресурс з цього приводу; в той час як SVD не є основною метою книги, вона допомагає контекстуалізувати її використання.

Якщо я маю дати вам одну загальну пораду з цього питання , не намагайтеся написати свої власні алгоритми SVD, якщо ви успішно не пройшли пару класів з числової лінійної алгебри і вже не знаєте, чим займаєтесь. Я знаю, що це звучить контр-інтуїтивно, але насправді, як тонна речей може піти не так, і ви закінчитеся (у кращому випадку) неоптимальними реалізаціями (якщо не помиляються). У цьому питанні є дуже хороші безкоштовні апартаменти (наприклад, Ейген , Армаділло та Трилінос .


ХА

1
MNAXTХ

2
Так, я помилявся: QR не обмежується квадратними матрицями. +1, до речі. Це питання було одним із найвищих питань без відповіді з тегом pca , тому приємно бачити, що він остаточно відповів.
амеба каже, що поверніть Моніку

Ваша відповідь не згадує цілу різноманітність ітеративних алгоритмів. Це було навмисно? Хтось задав питання щодо ітеративних алгоритмів SVD, див. Які швидкі алгоритми існують для обчислення усіченого SVD? , і я опублікував відповідь там, намагаючись надати деякий огляд. Можливо, нам слід хоча б перехресно надати відповіді. І, безумовно, було б чудово, якщо ви зможете розширити своє за допомогою обговорення QR-алгоритмів проти ітеративних алгоритмів.
амеба каже, що повернеться до Моніки

Ні, це було випадково. Ти ж відповів на власне запитання у своєму дописі; усічений SVD - це, по суті, усічений ейгендекомпозиції (див., наприклад, ARPACK ). Є деякі тонкі відмінності, але вони прекрасні ; деяке програмне забезпечення (наприклад, MATLAB svds) йде так само просто, як використання їх усіченої SVD функції в якості обгортки для їх усіченої eigendecomposition ( eigs) підпрограми.
usεr11852 повідомляє Відновити Монік
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.