«Singular Value Decomposition (SVD), разоблачение тайн»

«Singular Value Decomposition (SVD) раскрытие тайн»

Комплексное руководство по SVD с примерами на Python

Сингулярное разложение (SVD) – это мощная техника факторизации матриц, которая разлагает матрицу на три другие матрицы, раскрывая важные структурные аспекты исходной матрицы. Оно используется в широком спектре приложений, включая обработку сигналов, сжатие изображений и снижение размерности в машинном обучении.

В этой статье представлена пошаговая инструкция по вычислению SVD матрицы, включая подробный числовой пример. Затем показано, как использовать SVD для снижения размерности на примерах на Python. Наконец, в статье обсуждаются различные применения SVD и некоторые из его ограничений.

Статья предполагает, что у читателя есть базовые знания линейной алгебры. Конкретно, читатель должен быть знаком с понятиями, такими как нормы векторов и матриц, ранг матрицы, собственное разложение (собственные векторы и собственные значения), ортонормальные векторы и линейные проекции.

Изображение: Peggy и Marco Lachmann-Anke из Pixabay

Математическое определение

Сингулярное разложение m × n вещественной матрицы A – это разложение вида A = UΣVᵗ, где:

  • U – m × m ортогональная матрица (то есть ее столбцы и строки являются ортонормированными векторами). Столбцы U называются левыми сингулярными векторами матрицы A.
  • Σ – m × n прямоугольная диагональная матрица с неотрицательными вещественными числами на диагонали. Диагональные элементы σᵢ = Σᵢᵢ называются сингулярными значениями матрицы A и обычно упорядочены по убыванию, т.е. σ₁ ≥ σ₂ ≥ … ≥ σₙ ≥ 0. Количество ненулевых сингулярных значений равно рангу матрицы A.
  • V – n × n ортогональная матрица. Столбцы V называются правыми сингулярными векторами матрицы A.

У каждой вещественной матрицы m × n есть сингулярное разложение (доказательство этого утверждения можно найти здесь). В отличие от собственного разложения, например, которое может применяться только к квадратным диагонализируемым матрицам.

Вычисление SVD

Сингулярное разложение матрицы A можно вычислить, используя следующие наблюдения:

  1. Левые сингулярные векторы матрицы A являются набором ортонормированных собственных векторов…