Простой итерационный алгоритм сингулярного разложения
Материал из MachineLearning.
 (→Идея сингулярного разложения матрицы данных)  | 
				 (→Идея сингулярного разложения матрицы данных:  дополнение)  | 
			||
| Строка 12: | Строка 12: | ||
<tex>C =\frac{1}{m-1}\operatorname{X} ^T \operatorname{X} </tex>, отвечающими положительным собственным числам <tex> \lambda_l=\frac{1}{m-1}\sigma_l^2 > 0 </tex>.   | <tex>C =\frac{1}{m-1}\operatorname{X} ^T \operatorname{X} </tex>, отвечающими положительным собственным числам <tex> \lambda_l=\frac{1}{m-1}\sigma_l^2 > 0 </tex>.   | ||
| - | Хотя формально задачи сингулярного разложения матрицы данных и спектрального разложения ковариационной матрицы совпадают, алгоритмы вычисления сингулярного разложения напрямую, без вычисления спектра ковариационной матрицы, более эффективны и устойчивы <ref>''Bau III, D., Trefethen, L. N.'', [http://books.google.com/books?id=bj-Lu6zjWbEC&pg=PA136&dq=isbn:9780898713619&sig=BmAatL8LDJZZRhfJIFVRHLQNJw0#PPP1,M1 Numerical linear algebra], Philadelphia: Society for Industrial and Applied Mathematics, 1997. (Lecture 31) ISBN 978-0-89871-361-9 </ref>.  | + | Хотя формально задачи сингулярного разложения матрицы данных и спектрального разложения ковариационной матрицы совпадают, алгоритмы вычисления сингулярного разложения напрямую, без вычисления спектра ковариационной матрицы, более эффективны и устойчивы <ref>''Bau III, D., Trefethen, L. N.'', [http://books.google.com/books?id=bj-Lu6zjWbEC&pg=PA136&dq=isbn:9780898713619&sig=BmAatL8LDJZZRhfJIFVRHLQNJw0#PPP1,M1 Numerical linear algebra], Philadelphia: Society for Industrial and Applied Mathematics, 1997. (Lecture 31) ISBN 978-0-89871-361-9 </ref>. Это следует из того, что задача сингулярного разложения матрицы <tex>\operatorname{X}</tex> лучше обусловлена, чем задача разложения матрицы <tex>C =\frac{1}{m-1}\operatorname{X} ^T \operatorname{X} </tex>: для ненулевых собственных и сингулярных чисел  | 
| + | :<tex>\frac{\lambda_{\max}}{\lambda_{\min}}= \left(\frac{\sigma_{\max}}{\sigma_{\min}}\right)^2.</tex>  | ||
Теория сингулярного разложения была создана Дж. Дж. Сильвестром (англ. [http://en.wikipedia.org/wiki/James_Joseph_Sylvester J. J. Sylvester]) в 1889 г. и изложена во всех подробных руководствах по теории матриц <ref>''Гантмахер Ф. Р.'', Теория матриц. — М.: Наука, 1966. — 576 стр.</ref>.  | Теория сингулярного разложения была создана Дж. Дж. Сильвестром (англ. [http://en.wikipedia.org/wiki/James_Joseph_Sylvester J. J. Sylvester]) в 1889 г. и изложена во всех подробных руководствах по теории матриц <ref>''Гантмахер Ф. Р.'', Теория матриц. — М.: Наука, 1966. — 576 стр.</ref>.  | ||
Версия 10:25, 4 июля 2008
Простой итерационный алгоритм сингулярного разложения матриц допускает простую высокопараллельную (в том числе, нейросетевую) реализацию. Сингулярное разложение матриц (англ. Singular value decomposition) необходимо для решения многих задач анализа данных. В том числе, анализ главных компонент сводится к сингулярному разложению матрицы центрированных данных.
Идея сингулярного разложения матрицы данных
Если  — матрица, составленная из векторов-строк центрированных данных, то 
 и задача о спектральном разложении ковариационной матрицы 
 превращается в задачу о сингулярном разложении матрицы данных 
. 
Число  называется сингулярным числом матрицы 
 тогда и только тогда, когда существуют правый и левый сингулярные векторы: такие 
-мерный вектор-строка 
 и 
-мерный вектор-столбец 
 (оба единичной длины), что выполнено два равенства:
Пусть  — ранг матрицы данных. Сингулярное разложение матрицы данных 
 — это её представление в виде
где  — сингулярное число, 
 — соответствующий правый сингулярный вектор-столбец, а 
 — соответствующий левый сингулярный вектор-строка (
). Правые сингулярные векторы-столбцы 
, участвующие в этом разложении, являются векторами главных компонент и собственными векторами эмпирической ковариационной матрицы
, отвечающими положительным собственным числам 
. 
Хотя формально задачи сингулярного разложения матрицы данных и спектрального разложения ковариационной матрицы совпадают, алгоритмы вычисления сингулярного разложения напрямую, без вычисления спектра ковариационной матрицы, более эффективны и устойчивы [1]. Это следует из того, что задача сингулярного разложения матрицы  лучше обусловлена, чем задача разложения матрицы 
: для ненулевых собственных и сингулярных чисел
Теория сингулярного разложения была создана Дж. Дж. Сильвестром (англ. J. J. Sylvester) в 1889 г. и изложена во всех подробных руководствах по теории матриц [1].
Простой итерационный алгоритм сингулярного разложения
Основная процедура — поиск наилучшего приближения произвольной  матрицы 
 матрицей вида 
 (где 
 — 
-мерный вектор, а 
 — 
-мерный вектор) методом наименьших квадратов:
Решение этой задачи дается последовательными итерациями по явным формулам. При фиксированном векторе  значения 
, доставляющие минимум форме 
, однозначно и явно определяются из равенств 
 :
Аналогично, при фиксированном векторе  определяются значения 
:
B качестве начального приближения вектора  возьмем случайный вектор единичной длины, вычисляем вектор 
, далее для этого вектора 
 вычисляем вектор 
 и т. д. Каждый шаг уменьшает значение 
. В качестве критерия остановки используется малость относительного уменьшения значения минимизируемого функционала 
 за шаг итерации (
) или малость самого значения 
.
В результате для матрицы  получили наилучшее приближение матрицей 
 вида 
 (здесь верхним индексом обозначен номер итерации). Далее, из матрицы 
 вычитаем полученную матрицу 
, и для полученной матрицы уклонений 
 вновь ищем наилучшее приближение 
 этого же вида и т. д., пока, например, норма 
 не станет достаточно малой. В результате получили итерационную процедуру разложения матрицы 
 в виде суммы матриц ранга 1, то есть 
 . Полагаем 
 и нормируем векторы 
: 
 В результате получена аппроксимация сингулярных чисел 
 и сингулярных векторов (правых — 
 и левых — 
).
К достоинствам этого алгоритма относится его исключительная простота и возможность почти без изменений перенести его на данные с пробелами[1], а также взвешенные данные.
Существуют различные модификации базового алгоритма, улучшающие точность и устойчивость. Например, векторы главных компонент  при разных 
 должны быть ортогональны «по построению», однако при большом числе итерации (большая размерность, много компонент) малые отклонения от ортогональности накапливаются и может потребоваться специальная коррекция 
 на каждом шаге, обеспечивающая его ортогональность ранее найденным главным компонентам.
Для квадратных симметричных положительно определённых матриц описанный алгоритм превращается в метод прямых итераций для поиска собственных векторов.
Примечания

