Итерация мощности — очень простой алгоритм, но он может сходиться медленно. Наиболее трудоемкая операция алгоритма — умножение матрицы на вектор, поэтому он эффективен для очень большой разреженной матрицы при соответствующей реализации. Скорость сходимости примерно такая (см. следующий раздел). На словах сходимость экспоненциальная, а основанием является спектральный зазор .
Метод
Алгоритм итерации мощности начинается с вектора , который может быть приближением к доминирующему собственному вектору или случайным вектором. Метод описывается рекуррентным соотношением
Таким образом, на каждой итерации вектор умножается на матрицу и нормализуется.
Если мы предположим, что имеет собственное значение, которое строго больше по величине, чем его другие собственные значения, и начальный вектор имеет ненулевую компоненту в направлении собственного вектора, связанного с доминирующим собственным значением, то подпоследовательность сходится к собственному вектору, связанному с доминирующим собственным значением.
Без двух вышеприведенных предположений последовательность не обязательно сходится. В этой последовательности,
,
где — собственный вектор, связанный с доминирующим собственным значением, и . Наличие члена подразумевает, что не сходится, если . При двух предположениях, перечисленных выше, последовательность, определяемая
Это можно вычислить с помощью следующего алгоритма (показано на Python с NumPy):
#!/usr/bin/env питон3импортировать numpy как npdef power_iteration ( A , num_iterations : int ): # В идеале выбрать случайный вектор # Чтобы уменьшить вероятность того, что наш вектор # будет ортогонален собственному вектору b_k = np . random . rand ( A . shape [ 1 ])for _ in range ( num_iterations ): # вычислить произведение матрицы на вектор Ab b_k1 = np . dot ( A , b_k )# вычислить норму b_k1_norm = np.linalg.norm ( b_k1 )# повторно нормализуем вектор b_k = b_k1 / b_k1_normвернуться б_кpower_iteration ( np . array ([[ 0.5 , 0.5 ], [ 0.2 , 0.8 ]]), 10 )
Вектор сходится к ассоциированному собственному вектору. В идеале следует использовать отношение Рэлея , чтобы получить ассоциированное собственное значение.
Этот алгоритм используется для расчета Google PageRank .
Этот метод также можно использовать для вычисления спектрального радиуса (собственного значения с наибольшей величиной для квадратной матрицы) путем вычисления отношения Рэлея
Анализ
Пусть будет разложена в ее жорданову каноническую форму : , где первый столбец является собственным вектором , соответствующим доминирующему собственному значению . Поскольку в общем случае доминирующее собственное значение уникально, первый жорданов блок является матрицей , где является наибольшим по величине собственным значением A. Начальный вектор можно записать в виде линейной комбинации столбцов V :
По предположению, имеет ненулевую составляющую в направлении доминирующего собственного значения, поэтому .
где выражение: более поддается следующему анализу.
Выражение выше упрощается как
Предел следует из того факта, что собственное значение по величине меньше 1, поэтому
Из этого следует, что:
Используя этот факт, можно записать в форме, подчеркивающей его связь с большим значением k :
где и как
Последовательность ограничена, поэтому она содержит сходящуюся подпоследовательность. Обратите внимание, что собственный вектор, соответствующий доминирующему собственному значению, уникален только с точностью до скаляра, поэтому, хотя последовательность может не сходиться, она почти является собственным вектором A для больших k .
В качестве альтернативы, если A диагонализируемо , то следующее доказательство дает тот же результат
Пусть λ 1 , λ 2 , ..., λ m будут m собственными значениями (подсчитанными с кратностью) A и пусть v 1 , v 2 , ..., v m будут соответствующими собственными векторами. Предположим, что является доминирующим собственным значением, так что для .
Начальный вектор можно записать:
Если выбирается случайно (с равномерной вероятностью), то c 1 ≠ 0 с вероятностью 1. Теперь,
С другой стороны:
Следовательно, сходится к (кратному) собственному вектору . Сходимость геометрическая , с отношением
где обозначает второе доминирующее собственное значение. Таким образом, метод сходится медленно, если есть собственное значение, близкое по величине к доминирующему собственному значению.
Приложения
Хотя метод степенной итерации аппроксимирует только одно собственное значение матрицы, он остается полезным для определенных вычислительных задач . Например, Google использует его для вычисления PageRank документов в своей поисковой системе, [2] а Twitter использует его, чтобы показывать пользователям рекомендации о том, кому следовать. [3] Метод степенной итерации особенно подходит для разреженных матриц , таких как веб-матрица, или как метод без матриц , который не требует явного хранения матрицы коэффициентов, но вместо этого может получить доступ к функции, оценивающей произведения матрицы и вектора . Для несимметричных матриц, которые хорошо обусловлены, метод степенной итерации может превзойти более сложную итерацию Арнольди . Для симметричных матриц метод степенной итерации используется редко, поскольку его скорость сходимости можно легко увеличить, не жертвуя малыми затратами на итерацию; см., например, итерацию Ланцоша и LOBPCG .
Некоторые из более продвинутых алгоритмов собственных значений можно рассматривать как вариации степенной итерации. Например, метод обратной итерации применяет степенную итерацию к матрице . Другие алгоритмы рассматривают все подпространство, сгенерированное векторами . Это подпространство известно как подпространство Крылова . Его можно вычислить с помощью итерации Арнольди или итерации Ланцоша . Итерация Грама [4] является суперлинейным и детерминированным методом вычисления наибольшей собственной пары.
^ Рихард фон Мизес и Х. Поллачек-Гейрингер, Praktische Verfahren der Gleichungsauflösung , ZAMM - Zeitschrift für Angewandte Mathematik und Mechanik 9, 152-164 (1929).
^ Ипсен, Илзе и Ребекка М. Уиллс (5–8 мая 2005 г.). «7-й Международный симпозиум IMACS по итеративным методам в научных вычислениях» (PDF) . Институт Филдса, Торонто, Канада.{{cite news}}: CS1 maint: multiple names: authors list (link)
^ Панкадж Гупта, Ашиш Гоэль, Джимми Лин, Аниш Шарма, Донг Ван и Реза Босаг Заде WTF: Система «на кого подписаться» в Twitter, Труды 22-й международной конференции по Всемирной паутине
^ Делатр, Б.; Бартелеми, К.; Араужо, А.; Аллаузен, А. (2023), «Эффективная граница константы Липшица для сверточных слоев с помощью итераций Грама», Труды 40-й Международной конференции по машинному обучению