Подтвердить что ты не робот

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

Как это на самом деле уменьшает шум. Вы можете предложить несколько полезных уроков?

4b9b3361

Ответ 1

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.

Ответ 2

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

Здесь онлайн-учебник по SVD.

Возможно, вы захотите взглянуть на Численные рецепты.

Ответ 3

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

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

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

Ответ 4

Чтобы ответить на вопрос: 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.

Ответ 5

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, каждая из которых представляет собой линейную комбинацию компонентов модели (это легко, так как каждый столбец является 1D кривой). Это получает параметры модели, которые генерируют M ? (символ указывает, что он основан на подгонке).
M * M ? + * V= V ? который допускает остатки R * S 2= V - V ? чтобы определить D и M.

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

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

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