Сингулярное разложение

advertisement
В. В. Стрижов. «Информационное моделирование». Конспект лекций.
Сингулярное разложение
Сингулярное разложение (Singular Values Decomposition, SVD) является удобным методом при работе с матрицами. Cингулярное разложение показывает геометрическую
структуру матрицы и позволяет наглядно представить имеющиеся данные. Сингулярное разложение используется при решении самых разных задач — от приближения
методом наименьших квадратов и решения систем уравнений до сжатия и распознавания изображений. Используются разные свойства сингулярного разложения, например, способность показывать ранг матрицы и приближать матрицы данного ранга.
Так как вычисления ранга матрицы — задача, которая встречается очень часто, то
сингулярное разложение является довольно популярным методом.
Определение SVD
Теорема 1 (Дж. Форсайт). Для любой вещественной (n × n)-матрицы A существуют две вещественные ортогональные (n × n)-матрицы U и V такие, что
U T AV = Λ.
Более того, можно выбрать U и V так, чтобы диагональные элементы Λ имели вид
λ1 ≥ λ2 ≥ ... ≥ λr > λr+1 = ... = λn = 0,
где r — ранг матрицы A. В частности, если A невырождена, то
λ1 ≥ λ2 ≥ ... ≥ λn > 0.
Индекс r элемента λr есть фактическая размерность собственного пространства
матрицы A.
Столбцы матриц U и V называются соответственно левыми и правыми сингулярными векторами, а значения диагонали матрицы Λ называются сингулярными
значениями.
Пусть A — (m × n)-матрица и ей в соответствие поставлен линейный оператор,
также обозначаемый A. Формулу сингулярного разложения A = U ΛV T можно переформулировать в геометрических терминах. Линейный оператор, отображающий
элементы пространства Rm в элементы пространства Rn представим в виде последовательно выполняемых линейных операций вращения, растяжения и вращения. Число
ненулевых элементов на диагонали матрицы Λ есть фактическая размерность матрицы A.
Поэтому компоненты сингулярного разложения наглядно показывают геометрические изменения при отображении линейным оператором A множества векторов из
одного векторного пространства в другое.
1
Например, матрица
A=
имеет сингулярное разложение
A = U ΛV
T
=
0.96 1.72
2.28 0.96
0.6 −0.8
0.8 0.6
T
0.8 0.6
3 0
0.6 −0.6
0 1
Легко увидеть, что матрицы U и V ортогональны,
U T U = U U T = I, также V T V = V V T = I,
и сумма квадратов значений их столбцов равна единице; для каждой из матриц 0.62 +
0.82 = 1.
Наивный алгоритм SVD
Рассмотрим приближенное линейное описание матрицы A = {aij } вида
aij =
r
X
uik λk vkj + cij ,
(1)
k=1
где i = 1, ..., m и j = 1, ..., n.
Значения uik , λk , vkj для данного значения k найдены из условия минимума выражения
m X
n
X
2
ε =
c2ij ,
(2)
i=1 j=1
при ограничениях нормировки
n
X
j=1
u2ik
=
m
X
2
vkj
=1
(3)
i=1
и упорядоченности λ1 ≥ λ2 ≥ ... ≥ λr ≥ ... ≥ 0.
Выражения (1), (2), (3) запишем в матричных обозначениях:
A = U ΛV T + C,
ε2 = tr(CC T ) = kCk2 ,
U T U = V V T = I,
где матрицы U = {ukj }, Λ = diag{λk }, V = {vik }. Если значение r достаточно велико, то С=(0). Так будет заведомо при r ≥ min{m, n}. Минимальное значение r, при
котором выполнимо равенство A = U ΛV T , равно рангу матрицы A.
Один из возможных алгоритмов нахождения сингулярного разложения заключается в следующем. Найдем последовательно векторы uk , vk и сингулярные числа λk
2
для k = 1, ..., r. В качестве этих векторов берутся нормированные значения вектоbk
. Векторы ak и bk находятся как
ров ak и bk соответственно: uk = kaakk k , vk = kbkk
пределы последовательностей векторов {aki } и {bki }, соответственно ak = lim(aki )
и bk = lim(bki ). Сингулярное число λk находится как произведение норм векторов:
λk = kak k · kbk k.
Процедура нахождения векторов uk , vk начинается с выбора наибольшей по норме
строки b11 матрицы A. Для k = 1 формулы нахождения векторов a1i , b1i имеют вид:
a1i =
AbT1i
,
b1i bT1i
b1i+1 =
aT1i A
,
aT1i a1i
i = 1, 2, ...
Для вычисления векторов uk , vk при k = 2, ..., r используется вышеприведенная формула, c той разницей, что матрица A заменяется на скорректированную на k-м шаге
матрицу Ak+1 = Ak − uk λk vk .
TODO: Написать в чем недостаток по сравнению со стандартным разложением, включающем разложение Холесского. Картинка.
Сингулярное разложение и собственные значения матрицы
Сингулярное разложение обладает свойством, которое связывает задачу отыскания
сингулярного разложения и задачу отыскания собственных векторов. (Собственный
вектор x матрицы A — такой вектор, при котором выполняется условие Ax = λx,
число λ называется собственным числом.) Так как матрицы U и V ортогональные, то
есть
U T U = V V T = I,
(4)
где I — единичная матрица размерности r × r, то из (4) следует, что
AAT = U ΛV T V ΛU T = U Λ2 U T ,
AT A = V ΛU T U ΛV T = V Λ2 V T .
(5)
Умножая оба выражения справа соответственно на U и V получаем
AAT U = U Λ2 ,
AT AV = V Λ2 .
(6)
Из выражения (6) следует, что столбцы матрицы U являются собственными векторами матрицы AAT , а квадраты сингулярных чисел Λ = diag(λ1 , ..., λr ) ее собственными
значениями. Также столбцы матрицы V являются собственными векторами матрицы
AT A, а квадраты сингулярных чисел являются ее собственными значениями.
Пространства матрицы и SVD
Сингулярное разложение позволяет найти ортогональные базисы различных векторных пространств разлагаемой матрицы. В теореме о сингулярном разложении (Форсайт) рассматривается матрица размером (m × m),
T
A(m×m) = U(m×m) Λ(m×m) V(m×m)
.
3
Существует так называемое экономное представление сингулярного разложения
матрицы.
T
A(m×n) = U(m×m) Λ(m×n) V(n×n)
Согласно этому представлению при m > n, диагональная матрица Λ имеет пустые
строки, а при m < n — пустые столбцы. Поэтому существует еще одно экономное
представление
T
A(m×n) = U(m×r) Λ(r×r) V(r×n)
,
в котором r = min(m, n).
Нуль-пространство матрицы A — набор векторов x, для которого справедливо высказывание Ax = 0. Собственное пространство матрицы A — набор векторов b, при
котором уравнение Ax = b имеет ненулевое решение для x. Обозначим uk и vk —
T
столбцы
Pr матриц U и V . ТогдаT разложение A = U ΛV может быть записана в виде:
A = k=1 Ak , где Ak = uk λk vk . Если сингулярное значение λk = 0, то Avk = 0 и vk
находится в нуль-пространстве матрицы A, а если сингулярное значение λk 6= 0, то
вектор uk находятся в собственном пространстве матрицы A. Следовательно, можно сконструировать базисы для различных векторных подпространств, определенных
матрицей A. Hабор векторов v1 , . . . , vk в векторном пространстве V формирует базис
для V , если любой вектор x из V можно представить в виде линейной комбинации
векторов v1 , . . . , vk единственным способом. Пусть V0 будет набором тех столбцов vk ,
для которых λk 6= 0, а V1 — все остальные столбцы vk . Также, пусть U0 будет набором
столбцов uk , для которых λk 6= 0, а U1 — все остальные столбцы uk , включая и те,
для которых k > n. Тогда, если r — количество ненулевых сингулярных значений, то
имеется r столбцов в наборе V0 и n−r столбцов в наборе V1 и U1 , а также m−n+r столбцов в наборе U0 . Каждый из этих наборов формирует базис векторного пространства
матрицы A:
V0 — ортонормальный базис для ортогонального комплементарного нуль-пространства A,
V1 — ортонормальный базис для нуль-пространства A,
U0 — ортонормальный базис для собственного пространства A,
U1 — ортонормальный базис для ортогонального комплементарного нуль-пространства A.
Сингулярное разложение и нормирование матриц
Рассмотрим изменение длины вектора x до и после его умножения справа матрицу A.
Евклидова норма вектора определена как
kxk22 = xT x.
4
При умножении вектора x на матрицу A справа, длина результирующего вектора Ax
изменяется. Если матрица A ортогональна, длина вектора Ax остается неизменной.
, можно вычислить, насколько матВ противном случае, с помощью выражения kAxk
kxk
рица A растянула вектор x. Таким образом, евклидова норма матрицы, есть максимальный коэффициент растяжения вектора.
Евклидова норма матрицы определяется так. Пусть x является n-мерным вектором, и A — матрица размерности (m × n). Тогда Евклидова норма матрицы
kAxk
kAkE = max
.
kxk=1
kxk
Альтернативной Евклидовой норме является норма Фробениуса:
v
uX
n
u m X
kAkF = t
a2ij .
i=1 j=1
Если известно сингулярное разложение, то обе эти нормы легко узнать. Пусть U ΛV T —
сингулярное разложение (m × n)-матрицы A. Тогда
kAkE = λ1 ,
и
v
u r
uX
λ2k .
kAkF = t
k=1
Сингулярные значения матрицы A — это длины осей эллипсоида, заданного множеством {Ax|1 = kxk2 }. (картинка)
Нахождение псевдообратной матрицы с помощью SVD
Классическая задача наименьших квадратов ставиться следующим образом. Даны
действительная (m×n)-матрица A и действительный (m)-вектор Y . Требуется найти
действительный (n)-вектор w, минимизирующий Евклидову длину вектора невязки,
kY − Awk2 −→ min .
Решение задачи наименьших квадратов —
w = (AT A)−1 (AT Y ).
Для отыскания решения w требуется обратить матрицу AT A. Рассмотрим более общий случай обращения матриц.
5
Если (m × n)-матрица A является вырожденной или прямоугольной, то обратной
матрицы A−1 для нее не существует. Однако, для A может быть найдена псевдообратная матрица A+ — такая матрица, для которой выполняются условия
A+ A = I n ,
AA+ = Im ,
A+ AA+ = A+ ,
AA+ A = A.
(7)
Пусть найдено разложение матрицы A вида
A = U ΛV T ,
где Λ = diag(λ1 , ..., λr ), r = min(m, n) и U T U = Im , V V T = In . Тогда справедлива
Теорема 2. Матрица A+ = V T Λ−1 U является для матрицы A псевдообратной.
Доказательство. Согласно теореме 1 и определению (7), A+ A = V Λ−1 U T U ΛV T = In ,
AA+ = U ΛV T V Λ−1 U T = Im .
Усеченное обращение матриц
Алгоритм обращения матрицы посредством усеченного сингулярного разложения состоит в следующем. Пусть матрица исходных данных A представлена в виде A = U ΛV T .
Тогда при нахождении обратной матрицы A+ = V Λ−1 U T в силу ортогональности матриц U и V : U T U = V V T = I, и в силу условия убывания диагональных элементов
матрицы Λ = diag(λ1 , ..., λn ), псевдообратная матрица A+ будет более зависеть от тех
элементов матрицы Λ, которые имеют меньшие значения, чем от первых сингулярных
чисел. Действительно, если, по условию теоремы о сингулярном разложении матрица A имеет сингулярные числа λ1 > λ2 > ... > λn , то сингулярные числа матрицы A+
равны Λ−1 = diag( λ11 , ..., λ1n ) и λ11 6 λ12 ... 6 λ1n . Считая первые r сингулярных чисел
определяющими собственное пространство матрицы A, используем при обращении
матрицы A первые r сингулярных чисел. Тогда обратная матрица A+ будет найдена
T
как A+ = V Λ−1
r U .
Определим усеченную псевдообратную матрицу A+
r как
−1 T
A+
r = V Λr U ,
−1
−1
где Λ−1
r = diag(λ1 , ..., λr , 0, ..., 0) — диагональная матрица размерности n × n.
6
(8)
Download