Бакалавриат → Алгебра → Линейная алгебра ↓
Сингулярное разложение
В области линейной алгебры сингулярное разложение (SVD) является фундаментальной техникой, предоставляющей мощный метод разложения матрицы на ее составные компоненты. Сингулярное разложение широко используется во многих приложениях в различных областях, таких как обработка сигналов, статистика и машинное обучение. Понимание SVD может значительно улучшить понимание того, как данные ведут себя в пространствах высокой размерности, и помогает в различных задачах уменьшения размерности и сжатия данных.
Введение в сингулярное разложение
Сингулярное разложение — это метод, который разлагает матрицу на три отдельные матрицы. Для заданной матрицы A
с размерностью mxn
SVD выражает ее как:
A = UΣVᵀ
Где:
U
— этоmxm
ортогональная матрица.Σ
(сигма) — этоmxn
диагональная матрица.V
— этоnxn
ортогональная матрица.
Здесь U
и V
являются ортогональными матрицами, то есть их столбцы образуют ортонормированные векторы.
Визуальный пример
Рассмотрим простую матрицу 2x2 A
:
A = [[4, 0], [3, -5]]
Для такой матрицы факторизация SVD даст:
U = [[1, 0], [0, 1]] Σ = [[5, 0], [0, 3]] Vᵀ = [[0, 1], [1, 0]]
Это можно понять как разложение матрицы A
на повороты/отражения, представленные U
и V
, и масштабирования, представленные диагональной матрицей Σ
.
Понимание компонентов
Ортогональные матрицы U
и V
Ортогональные матрицы имеют особые свойства. Чтобы матрица была ортогональной, скалярное произведение каждой пары различных столбцов должно быть равно нулю, а скалярное произведение каждого столбца с собой должно быть равно единице, что означает сохранение нормы. Для матрицы U
:
UᵀU = I
Аналогично для V
:
vᵀv = i
Ортогональные матрицы важны для понимания, потому что они сохраняют геометрические свойства данных, такие как углы и длины.
Диагональная матрица Σ
Диагональная матрица Σ
содержит сингулярные значения исходной матрицы A
. Эти значения можно рассматривать как коэффициенты растяжения вдоль соответствующих направлений, определяемых столбцами U
и V
.
Пример: Вычисление SVD вручную
Рассмотрим матрицу:
A = [[3, 1], [1, 3]]
Вот пошаговое руководство по вычислению SVD.
Шаг 1: Вычислите AᵀA
и AAᵀ
Сначала вычислите следующее:
AᵀA = [[10, 6], [6, 10]]
AAᵀ = [[10, 6], [6, 10]]
Шаг 2: Найдите собственные значения и собственные векторы
Собственные значения этих матриц помогут определить сингулярные значения, а собственные векторы предоставят ортогональные матрицы.
Решая {|AᵀA - λI| = 0}, получаем собственные значения λ₁ = 16
, λ₂ = 4
.
Σ
таким образом становится:
Σ = [[4, 0], [0, 2]]
Шаг 3: Постройте V
и U
Из собственных векторов AᵀA
вычисляем V
:
V = [[1/√2, -1/√2], [1/√2, 1/√2]]
Аналогично, из собственных векторов AAᵀ
вычисляем U
:
U = [[1/√2, -1/√2], [1/√2, 1/√2]]
Применение сингулярного разложения
Сжатие данных
SVD можно использовать для сжатия данных. Обрезая матрицы U
, Σ
и V
до меньших размеров, можно достичь значительного сжатия данных с минимальной потерей информации.
Обработка сигналов
В обработке сигналов сингулярные значения могут помочь идентифицировать «форму» и «структуру» сигнала, отфильтровать шум и эффективно выделить важные особенности.
Пример SVD в обработке изображений
Черно-белые изображения можно представить в виде матрицы. С помощью SVD можно сжать изображение, оставив только самые значимые сингулярные значения. Эта техника уменьшает размер изображения, сохраняя его основные особенности.
Рассмотрим матрицу изображения I
:
I = [[255, 240, 230], [200, 180, 175], [215, 196, 188]]
Применяем SVD:
U = [[0.68, -0.72], [0.68, 0.68]] Σ = [[457, 0], [0, 25]] Vᵀ = [[0.60, -0.80], [0.80, 0.60]]
Оставляя только наибольшее сингулярное значение и соответствующие векторы, изображение сохраняет свои основные особенности, но уменьшается размер представления данных.
Заключение
Кратко говоря, сингулярное разложение — это незаменимый инструмент в линейной алгебре, дающий нам возможность разложить матрицу на произведения более простых и более интерпретируемых компонентов. Понимание SVD не только повышает нашу математическую интуицию, но и вооружает нас мощными инструментами для практических задач в таких областях, как вычисления, данные и инженерия.