Что такое SVD (сингулярное разложение)

33
задан Zach Scrivena 10 February 2009 в 15:40
поделиться

5 ответов

SVD может быть понят от геометрического смысла для квадратных матриц как преобразование на векторе.

Считают квадратную матрицу n x n M умножением вектора v для создания выходного вектора w:

w = M*v

сингулярное разложение M является продуктом трех матриц M=U*S*V, таким образом w=U*S*V*v. U и V ортонормированные матрицы. С точки зрения геометрического преобразования (реагирующий на вектор путем умножения его), они - комбинации вращений и отражений, которые не изменяют длину вектора, который они умножают. S является диагональной матрицей, которая представляет масштабирование или сплющивание с различными масштабными коэффициентами (диагональные термины) вдоль каждой из n осей.

Так эффект лево-умножения вектора v матрицей M должен вращаться/отражать v на M ортонормированный фактор V, затем масштабировать/раздавить результат диагональным фактором S, затем вращаться/отражать результат на M ортонормированный фактор U.

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

49
ответ дан Jason S 11 October 2019 в 08:00
поделиться

Один способ использовать SVD для сокращения шума состоит в том, чтобы сделать разложение, установить компоненты, которые являются близким нулем, чтобы быть точно нулем, затем реконструировать.

Вот учебное руководство онлайн на SVD.

Вы могли бы хотеть смотреть на Числовые Рецепты .

18
ответ дан John D. Cook 11 October 2019 в 08:00
поделиться

Чтобы ответить на главный вопрос: SVD - это обобщение собственных значений / собственных векторов в неквадратные матрицы. Сказать, $ X \ in N \ times p $, то SVD-разложение X дает X = UDV ^ T, где D диагональна, а U и V - ортогональные матрицы. Теперь X ^ TX - квадратная матрица, и SVD-разложение X ^ TX = VD ^ 2V, где V эквивалентно собственным векторам X ^ TX, а D ^ 2 содержит собственные значения X ^ TX.

6
ответ дан 27 November 2019 в 17:46
поделиться

Разложение по сингулярным числам - это метод взятия матрицы M размера nxm и «разложения» ее на три матрицы, такие что M = U S V. S - диагональная квадратная матрица (единственные ненулевые элементы находятся на диагонали сверху-слева направо снизу), содержащая «особые значения» M.U и V ортогональны, что приводит к геометрическому пониманию SVD, но это не обязательно для снижения шума.

При M = U S V у нас все еще есть исходная матрица M со всем ее шумом. Однако, если мы сохраняем только k наибольших сингулярных значений (что легко, поскольку многие алгоритмы SVD вычисляют декомпозицию, в которой элементы S сортируются в порядке невозрастания), то у нас есть аппроксимация исходной матрицы. Это работает, потому что мы предполагаем, что маленькие значения являются шумом, и что более значимые закономерности в данных будут выражены через векторы, связанные с большими сингулярными значениями.

Фактически, полученное приближение является наиболее точным приближением ранга k исходной матрицы (имеет наименьшую квадратичную ошибку).

8
ответ дан 27 November 2019 в 17:46
поделиться

SVD также может использоваться для значительного облегчения глобального (то есть для всех наблюдений одновременно) подбора произвольной модели (выраженной формулой) к данным (относительно двух переменных и выраженных в матрице).
Например, матрица данных A = D * M T , где D представляет возможные состояния системы, а ] M представляет его эволюцию относительно некоторой переменной (например, времени).
Согласно SVD, A (x, y) = U (x) * S * V T (y) и поэтому D * M T = U * S * V T
затем D = U * S * V T * M T + где "+ "означает псевдообратное.
Затем можно взять математическую модель эволюции и подогнать ее к столбцам V , каждый из которых представляет собой линейную комбинацию компонентов модели (это легко, поскольку каждый столбец представляет собой одномерную кривую). . Это позволяет получить параметры модели, которые генерируют M ? (знак? Означает, что это основано на подгонке).
M * M ? + * V = V ? , что допускает остатки R * S 2 = V - V ? для минимизации, таким образом определяя D и M .

Довольно круто, а?

Столбцы U и V также могут быть проверены для сбора информации о данных; например, каждая точка перегиба в столбцах V обычно указывает на другой компонент модели.

Наконец, обращаясь к вашему вопросу, важно отметить, что, хотя каждое последующее сингулярное значение (элемент диагональной матрицы S ) с его сопутствующими векторами U и ] V действительно имеет более низкое отношение сигнал / шум, разделение компонентов модели в этих «менее важных» векторах на самом деле более выражено. Другими словами, если данные описываются набором изменений состояния, которые следуют за суммой экспонент или чем-то еще, относительные веса каждой экспоненты становятся ближе друг к другу в меньших сингулярных значениях. Другими словами, более поздние сингулярные значения имеют векторы, которые менее гладкие (более шумные), но в которых изменения, представленные каждым компонентом, более различны .

4
ответ дан 27 November 2019 в 17:46
поделиться
Другие вопросы по тегам:

Похожие вопросы: