Власні вектори коригування малої норми


10

У мене є набір даних, який повільно змінюється, і мені потрібно вести облік власних векторів / власних значень його матриці коваріації.

Я використовував scipy.linalg.eigh, але це занадто дорого, і це не використовує той факт, що у мене вже є розкладання, що є лише трохи неправильним.

Чи може хтось запропонувати кращий підхід для вирішення цієї проблеми?


1
Наскільки великі ваші дані? Вам потрібна повна власна система або лише деякі з найбільших власних значень? Вони вам точно потрібні, чи наближення це зробить?
cfh

Мені потрібна повна власна система. Я знайшов алгоритм оновлення оберненої матриці після оновлення малої норми з використанням регресійної інтерпретації зворотної матриці коваріації, тому припустив, що щось подібне має існувати для власних векторів.
Ярослав Булатов

Що ви робите з цією повною ейгендекомпозицією? Можливо, буде кращий ярлик, який не проходить через нього ... І я повторюю питання cfh: "наскільки великий"?
Федеріко Полоні

У мене є 8k функцій та мільйонів точок даних, тому коваріація є приблизною. Це для реалізації цього алгоритму. Оновлення градієнта залежить від власних значень певної матриці коваріації, і ця матриця коваріації змінюється на кожному кроці
Ярослав Булатов

Відповіді:


5

Наївний підхід полягає у використанні власного значення рішення матриці в якості початкової здогадки ітеративного власного рішення для матриці . Ви можете використовувати QR, якщо вам потрібен повний спектр, або метод живлення в іншому випадку. Однак це не зовсім надійний підхід, оскільки власні значення матриці не обов'язково близькі до майже сусідньої матриці (1) , особливо якщо вона погано обумовлена (2) .A ( t + δ t )A(t)A(t+δt)

Спосіб відстеження підпростори, мабуть, більш корисний (3) . Уривок з (4) :

Ітераційне обчислення крайньої (максимальної чи мінімальної) власної пари (власне значення та власного вектора) може сягати 1966 року [72]. У 1980 році Томпсон запропонував адаптивний алгоритм типу LMS для оцінки власного вектора, який відповідає найменшому власного значення матричної коваріаційної матриці, і надав адаптивний алгоритм відстеження кута / частоти, що поєднується з гармонічним оцінником Пісаренка [14]. Саркар та ін. [73] використовував алгоритм спряженого градієнта для відстеження зміни крайнього власного вектора, що відповідає найменшому власного значення коваріаційної матриці сигналу, що повільно змінюється, і довів його набагато швидше конвергенцію, ніж алгоритм типу ЛМС типу Томпсона. Ці методи використовувались лише для відстеження одного екстремального значення та власного вектора з обмеженим застосуванням, але пізніше їх було розширено для методів відстеження та оновлення власного підпростору. У 1990 році Комон та Голуб [6] запропонували метод Ланцоса для відстеження надзвичайного сингулярного значення та сингулярного вектора, який є загальним методом, розробленим спочатку для визначення якоїсь великої та розрідженої симетричної задачі власного власникаAx=kx [74].

[6]: Comon, P., & Golub, GH (1990). Відстеження кількох крайніх сингулярних значень та векторів в обробці сигналів. В обробці IEEE (стор. 1327–1343).

[14]: Томпсон, штат Пенсільванія (1980). Метод адаптивного спектрального аналізу для неупередженої частоти

[72]: Bradbury, WW, & Fletcher, R. (1966). Нові ітераційні методи розв’язання власної проблеми. Числова математика, 9 (9), 259–266.

[73]: Саркар, Т.К., Діанат, С.А., Чен, Х. та Брюль, Дж. Д. (1986). Адаптивна спектральна оцінка методом спряженого градієнта. Операції IEEE з акустичної, мовленнєвої та сигнальної обробки, 34 (2), 272–284.

[74]: Golub, GH, Van Van Load, CF (1989). Матричне обчислення (2-е видання). Балтімор: Університетська преса Джона Хопкінса.

Я також повинен зазначити, що рішення симетричних матриць, таких як те, що ви повинні вирішити, враховуючи ваше використання scipy.linalg.eigh, є дещо дешевими. Якщо вас цікавить лише кілька власних значень, ви можете також покращити швидкість у вашому методі. Метод Арнольді часто застосовується в таких ситуаціях.


1
спасибі за вказівник, алгоритм QR здається гарною відправною точкою
Ярослав Булатов,

Я не думаю, що величина збурень у власних значеннях пов'язана з числом умови. Це тому, що має ті ж власні значення, що й , але інше число умови. A + λ IAA+λI
Федеріко Полоні

ps: linalg.eigh на 4-х-4-матричній матриці займає близько 20 секунд (вона з певних причин використовує лише одне ядро). Мені потрібно приблизно 0,25 секунди за оновлення
Ярослав Булатов

7

Існують спеціальні методи оновлення власного розкладання часових коваріаційних матриць. Враховуючи "попереднє" власне значення декомпозиції (скажімо, у початковий момент часу ), ці рекурсивні алгоритми знижують складність оновлення спектру від (по суті, вартості нового eigendecomposition) до де - розмір вашої матриці, а - ранг вашого оновлення.O ( N 3 ) O ( k N 2 ) N kt0O(N3)O(kN2)Nk

Ось пара релевантних посилань:

Адаптивна ейджендекомпозиція матриць коваріації даних на основі збурень першого порядку (Шампанське, IEEE TSP 42 (10) 1994)

Рекурсивне оновлення власного значення декомпозиції матриці коваріації (Yu, IEEE TSP, 39 (5) 1991)

Інтернет-аналіз основних компонентів у великому вимірі: який алгоритм вибрати? (Кардо і Дегра)

Стабільний і швидкий алгоритм оновлення сингулярного декомпозиції значення (Гу та Айзенштадт, 1994)


на жаль, у мене немає невеликих оновлень рангів, у мене є невеликі оновлення норми повного рангу
Ярослав Булатов,

@YaroslavBulatov Я не знаю про ефективний алгоритм, який може працювати з оновленими повноцінними повноцінними оновленнями - найкраще, що я міг знайти, це посилання , але це виглядає не дуже перспективно. Звичайно, існує велика кількість літератури про власне значення збурень, яку ви можете подивитися (див. Іншу відповідь).
GoHokies
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.