Просматривая записи моего курса Computation Techniques, я понял, что мне не совсем понятно, как получить разложение матрицы по сингулярным числам. Математическое обоснование этого было не очень ясным или интуитивным. После быстрого поиска в Интернете я понял, что большинство доступных ресурсов одинаково бесполезны в обеспечении четкого понимания разложения по сингулярным значениям.

Если вы читаете это, есть большая вероятность, что вы тоже хотите правильно понять разложение по сингулярным числам. Я надеюсь, что после прочтения этой статьи математика разложения матрицы по сингулярным числам станет предельно ясной и позволит вам вспомнить, как получить разложение матрицы по сингулярным числам без необходимости что-либо запоминать.

Если вы лучше учитесь на примерах, не стесняйтесь сразу переходить к примерам. Я сделал это так, чтобы пример был достаточно подробным, чтобы вы могли понять математику, стоящую за всем, не читая ничего. теории. Но, очевидно, не стесняйтесь читать теорию, если что-то неясно, или даже комментировать ниже.

Теория

Пусть C будет матрицей, для которой мы хотим найти разложение по сингулярным числам.

В итоге мы хотим записать Cв виде произведения трех матриц — прямоугольной диагональной матрицы с неотрицательными действительными числами по диагонали, которая умножается на ортогональную матрицу с каждой стороны.

Что мы хотим

Проще говоря, мы хотим найти матрицы U, Σ и V такие, что

Где Σпрямоугольная диагональная матрица тех же размеров, что и C, а U и Vортогональные матрицы (это пригодится чуть позже).

Ключевые идеи

Ключевое понимание разложения по сингулярным числам исходит из двух уравнений.

Прежде чем мы приведем эти два уравнения, напомню, что U и V являются ортогональными матрицами, а это означает, что мы имеем UᵀU = UUᵀ = I и аналогично для V. Это означает, что Vᵀ является инверсией V, поэтому мы имеем V⁻ ¹=Vᵀ

Теперь давайте приведем два ключевых уравнения для разложения по сингулярным числам:

Из этих двух уравнений мы сможем вывести Σ, V и U.

Поиск Σ и V

Если вы раньше немного занимались линейной алгеброй, то могли заметить, что первое уравнение по существу представляет собой задачу диагонализации матриц(A = SDS⁻¹), где A=CᵀC, S = V и D=ΣᵀΣ.

Возможно, вы также помните, что решение этой задачи включает в себя нахождение собственных значений и соответствующих собственных векторов матрицы CᵀC. Получив их, мы можем построить V как матрицу, состоящую из собственных векторов CᵀC, и ΣᵀΣ как диагональную матрицу, построенную из соответствующие собственные значения.

Итак, что мы хотим сделать, это найти собственные значения λ₁, λ₂, … λn для CᵀC и их соответствующие нормализованные собственные векторы, соответственно, v₁, v₂, … vn. Что позволяет нам получить V и ΣᵀΣ, как показано ниже. Важно, чтобы собственные векторы были нормализованы, поскольку V должна быть ортогональной матрицей.

Это все хорошо, но мы хотим Σ, а не ΣᵀΣ. Ничего страшного — мы можем вывести Σ из ΣᵀΣ. Мы знаем это, зная, что Σ является прямоугольной диагональной матрицей. Вы должны быть в состоянии убедиться, что, поскольку Σ представляет собой прямоугольную диагональную матрицу с диагональными элементами σ₁, σ₂, … σn,, мы имеем следующий:

Теперь мы ясно видим, что σ₁² = λ₁, σ₂² = λ₂, … σn² = λn. Это означает, что

где Σii представляет i-й элемент на диагонали Σ.

В поисках тебя

Теперь, когда у нас есть и Σ, и V, мы можем найти U, используя второе уравнение.

Поскольку Σ — прямоугольная диагональная матрица, вы должны быть в состоянии убедиться, что приведенное ниже уравнение следует из приведенного выше уравнения. Написание примера прямоугольной диагональной матрицы Σ и матрицы U и вычисление может помочь вам убедиться в том, что верно следующее.

Это означает, что j-й столбец U представляет собой просто j-й столбец CV, разделенный на j-й диагональный элемент Σ.

Итак, теперь мы можем построить полную конструкцию U, зная как C, так и V.

Собираем все вместе

И это все. Теперь, когда у нас есть U, V и Σ, мы можем просто сложить все это вместе, чтобы получить UΣVᵀ, который представляет собой разложение по сингулярным числам С.

Вот краткий обзор того, что нужно сделать, чтобы получить разложение по сингулярным числам матрицы C:

  1. Найдите собственные значения CᵀC и их соответствующие нормализованные собственные векторы.
  2. Пусть V = [ v₁, v₂, … vn] и Σ =[σ₁, σ₂, … σn ]где σ — квадратный корень из λ.
  3. Пусть U = [ cv₁/σ₁, cv₂/σ₂, … cvn/σn], где cvn — это n-й столбец CV.
  4. Дважды проверьте, что C = UΣVᵀ.

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

Удобный трюк

Если матрица C, для которой вы хотите найти разложение по сингулярным числам, представляет собой матрицу m×n, где m‹n. Тогда CᵀCбудет матрицей n×n, тогда как CCᵀбудет матрицей m×m, которая меньше и с ней удобнее работать.

Если вы правильно поняли то, что было объяснено выше, вы сможете увидеть, что мы можем использовать аналогичные приемы для определения U, Σ иV используя CCᵀвместо CᵀC.

В частности, мы получаем следующие уравнения:

И снова первое уравнение — это просто проблема диагонализации матрицы, где ΣΣᵀ — диагональная матрица с нормализованными собственными значениями CCᵀ на диагонали и U — ортогональная матрица с соответствующими собственными векторами для ее столбцов.

Мы можем найти Σиз ΣΣᵀтак же, как и раньше. При этом Σявляется прямоугольной диагональной матрицей размером m×n с квадратными корнями ранее найденных собственных значений в качестве диагональных элементов.

Теперь мы можем также Vиспользовать второе уравнение так же, как это делалось ранее.

И вот, теперь у вас есть сингулярное разложение C, которое вы получили с чуть меньшими усилиями.

Примеры

Простой подробный пример

Попробуем найти разложение по сингулярным числам

Чуть более сложный пример

Использование трюка

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

Здесь C представляет собой m×n, где m ‹ n, поэтому было бы удобнее работать с CCᵀа не с CᵀC. Итак, давайте сделаем это!

Видео Рекомендация

Я рекомендую посмотреть это видео https://www.youtube.com/watch?v=cOUTpqlX-Xs от MIT OpenCourseWare на YouTube с еще одним хорошо объясненным примером линейной декомпозиции.

Рекомендация веб-сайта

Это отличный сайт для практики и проверки ваших способностей к разложению по сингулярным числам: http://atozmath.com/MatrixEv.aspx?q=svd

Пабло Гамито