Удивительно простое доказательство сингулярного разложения матриц


Начнём с общей схемы доказательства.
Ниже подробно разберём все обозначения, леммы и переходы.

Сингулярное разложение (Singular Value Decomposition, SVD) обычно выводят из спектральной теоремы для симметричной матрицы .
У этого классического пути есть педагогический недостаток: он уводит нас от исходного геометрического смысла отображения в алгебру квадратичных форм и характеристических многочленов. Между тем геометрическое утверждение SVD предельно наглядно и просто:
Для любого линейного отображения
существует ортонормированный базис во входном пространстве, образы векторов которого попарно ортогональны.
Возникает естественный вопрос: можно ли доказать существование такого базиса напрямую — без собственных значений, без определителей, без спектральной теоремы и без производных?
Оказывается, можно. Для этого достаточно школьной тригонометрии, понятия предела последовательности, матриц и теории про ортонормированные базисы в.
Главным преимуществом такого подхода является возможность изложить теорию SVD-разложения матриц уже в середине первого семестра вуза, и дальше строить вузовский курс линейной алгебры вокруг нее. Кроме того, статья может помочь лучше разобраться в SVD тем, кто давно хотел это сделать, или открыть для себя какие-то новые геометрические смыслы.
1. Что именно мы ищем
Сначала напомним, что означают ортонормированный базис и ортогональная матрица. Это два способа описать одну и ту же геометрическую конструкцию.
Ортонормированный базис.
Базис — это набор векторов, через который любой вектор пространства единственным образом выражается как линейная комбинация.
Базис в
называется ортонормированным, если все его векторы имеют единичную длину и попарно перпендикулярны:
Слово «ортонормированный» объединяет два условия: «орто» отвечает за взаимную ортогональность, а «нормированный» — за единичные длины.
Любые векторов с этими свойствами в автоматически образуют базис.
Действительно, если их линейная комбинация равна нулю, скалярное умножение на выделяет её коэффициент при и показывает, что он равен нулю. Значит, векторы линейно независимы, а их число равно размерности пространства.
Ортогональная матрица.
Вещественная квадратная матрица размера
называется ортогональной, если
где — транспонированная матрица, а
— единичная. Для квадратной матрицы это означает, что обратная матрица совпадает с транспонированной:
Название может сбивать с толку: столбцы ортогональной матрицы не только перпендикулярны друг другу, но и обязательно имеют единичную длину.
Почему эти определения связаны.
Запишем векторы в стандартных координатах и поставим их в столбцы матрицы:
По правилу умножения матриц элемент произведения на позиции
равен скалярному произведению соответствующих столбцов:
Поэтому матрица ортогональна тогда и только тогда, когда её столбцы образуют ортонормированный базис.
Из равенства следует, что её строки тоже образуют ортонормированный базис.
Геометрический смысл.
Ортогональная матрица сохраняет скалярные произведения:
Следовательно, она сохраняет длины и углы между ненулевыми векторами: пространство можно повернуть или отразить, но нельзя растянуть или перекосить. Например,
задаёт поворот плоскости на 45 градусов. Её столбцы — единичные взаимно перпендикулярные векторы нового базиса. Ортогональные преобразования могут включать и отражения, поэтому не всякая ортогональная матрица является чистым поворотом.
Связь со сменой координат.
Если — столбец координат вектора в базисе
, то его координаты равны
Здесь геометрический вектор остаётся тем же: меняется способ записать его координаты. Таким образом, искать ортонормированный базис и искать ортогональную матрицу, составленную из его векторов, — две формы одной задачи.

Теперь применим эту связь между базисами и матрицами к самому линейному отображению.
Пусть — фиксированная вещественная матрица размера
, задающая отображение из в
. Здесь участвуют два пространства, и в каждом из них можно независимо выбрать ортонормированный базис.
Соберём векторы входного базиса в столбцы ортогональной матрицы размера , а выходного — в столбцы ортогональной матрицы
размера
.
Проследим, как теперь записывается действие .
Если — координаты входного вектора в базисе , то его стандартные координаты равны . Применив отображение, получим
.
Чтобы выразить результат в базисе , нужно умножить его на :
Значит, матрица того же отображения в новых базисах имеет вид
Само отображение осталось прежним: мы лишь выбрали, по каким осям измерять входные и выходные векторы. Но от выбора осей зависит, насколько сложной выглядит его матрица.
Самая удобная картина — когда координаты не смешиваются: каждая входная координата умножается на своё неотрицательное число и попадает в соответствующую выходную координату, а некоторые направления могут переходить в ноль. Такой картине соответствует прямоугольная диагональная матрица .
Утверждение SVD состоит в том, что подходящие ортонормированные базисы существуют для любой вещественной матрицы.
Именно это мы и будем доказывать. В выбранных базисах должно выполняться

Здесь имеет размер . Её ненулевые диагональные элементы можно расположить в порядке , где
; все остальные элементы равны нулю. Если ранг равен нулю, то
и
, а базисы можно выбрать произвольно.
Наконец, умножим равенство слева на , а справа на . Благодаря ортогональности матриц получаем привычную запись сингулярного разложения:
Если домножить это равенство справа на (помня, что для ортогональной матрицы ), условие переписывается в виде:
Столбцы матрицы образуют ортонормированный базис в .
Столбцы матрицы образуют ортонормированный базис в . Равенство
по столбцам означает:

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

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

Геометрия на примере .
Единичная окружность переходит в эллипс.
Подходящий ортонормированный базис входа даёт два ортогональных образа — главные полуоси этого эллипса. Их длины и есть сингулярные числа.
2. Двумерная лемма: ортогонализация одной пары вращением
Начнем с элементарного случая: у нас есть всего два ортонормированных вектора . Их образы
в общем случае, вообще говоря не ортогональны: их скалярное произведение
может быть отлично от нуля.
Повернем пару в порождаемой ими плоскости на угол
:
Легко проверить, что пара остается ортонормированной и задает ту же плоскость при любом значении .
Вычислим скалярное произведение их образов как функцию угла :
Раскрывая билинейное скалярное произведение, получаем:
Используя формулы двойного угла и
, приходим к виду:
где коэффициенты полностью определяются исходной геометрией:
Наша цель — найти угол , при котором .
Если
и
, то
для всех . Образы уже ортогональны, и вращение не требуется: можно положить
.
Если хотя бы один из коэффициентов отличен от нуля, положим
. Тогда вектор
лежит на единичной окружности:
. Следовательно, существует вспомогательный угол
, такой что:
Подставим это представление в формулу для :
Теперь зануление функции становится тривиальным. Нам достаточно потребовать того, чтобы аргумент синуса обратился в ноль:
При таком угле образы повернутых векторов строго ортогональны:
.
Вспомогательный угол дает универсальное точное решение для любых начальных векторов, включая случай нулевых образов.

Поворот входного базиса для той же матрицы .
В анимации используется угол : скалярное произведение образов становится нулевым. Корни уравнения отличаются на
; выбор другого корня меняет порядок и знаки векторов, но сохраняет ортогональность.
3. Препятствие в нескольких измерениях: эффект домино
Казалось бы, задача решена: если мы умеем ортогонализовать любую пару векторов, давайте просто перебирать пары по очереди. Возьмем пару , повернем её так, чтобы
. Затем возьмем
и повернем её, добившись
.
Но здесь нас ждет классическая ловушка линейной алгебры.
Поворачивая пару , мы заменяем вектор на линейную комбинацию:
Что произойдет с уже исправленным скалярным произведением первого и второго векторов?
Если вектор не был ортогонален
и
, то новое произведение
снова станет ненулевым.
Исправляя одну связь, мы можем нарушить соседние. Наивный попарный перебор рискует превратиться в бесконечную погоню за ускользающей ортогональностью. Что же делать?
4. Мера неортогональности и тождество сохранения
Чтобы управлять всем базисом сразу, введем скалярный функционал, измеряющий суммарное отклонение системы от взаимной ортогональности. Для любого ортонормированного базиса пространства определим:
Свойства этой величины:
, так как это сумма квадратов вещественных чисел.
тогда и только тогда, когда
для всех пар
. Это именно то, что нам требуется для построения SVD.
Суммирование ведется по строго упорядоченным парам : каждая неупорядоченная пара учитывается ровно один раз.
Что произойдет со значением , если мы выберем какую-то конкретную пару индексов
и повернем только эти два вектора на угол , оставив все остальные
базисных вектора нетронутыми?
Разобьем слагаемые в сумме на три непересекающиеся группы:
Пара : её вклад равен
.
Пары, не содержащие ни
, ни
: для любых
векторы
и
вообще не менялись, поэтому произведения
остаются константами.
Пары, связывающие поворачиваемую пару с третьим вектором: для каждого фиксированного индекса
в сумме присутствуют ровно два слагаемых:
Обозначим для краткости и
, а также
,
. После поворота новые векторы имеют вид:
В силу линейности новые скалярные произведения с неизменным вектором равны:

Вспомогательная плоскость скалярных произведений: горизонтальная координата — , вертикальная —
. После поворота входной пары точка
остаётся на окружности
. Это не плоскость векторов
в выходном пространстве.
Теперь посчитаем сумму их квадратов:
Перекрестные члены взаимно уничтожились, а .
Это ключевой момент всего доказательства:
для любого сохраняется сумма квадратов двух скалярных произведений
— при любом угле поворота.

Анимация того же инварианта: два квадрата могут увеличиваться и уменьшаться, а их сумма постоянна. Поэтому связи с третьим вектором перераспределяются, но не мешают уменьшить общий функционал за счёт выбранной пары.
5. Достижение минимума: предельный переход
Итак, мы имеем функционал .
Множество всех ортонормированных базисов в непусто (достаточно взять стандартный базис). Значит, у множества значений существует точная нижняя грань (инфимум):
Мы хотим показать, что этот инфимум не просто существует как абстрактное число, а фактически достигается на некотором ортонормированном базисе .
Обычно в курсах анализа здесь говорят: «ортогональная группа компактна, а функция непрерывна, следовательно, по теореме Вейерштрасса минимум достигается».
Чтобы не скрывать суть за топологическими терминами, раскроем этот шаг явно через деление отрезков пополам (как в теореме Больцано — Вейерштрасса).
Строгое доказательство достижения минимума
По определению точной нижней грани для каждого натурального мы можем выбрать ортонормированный базис
, для которого:
Каждый вектор имеет единичную длину в , поэтому каждая из его координат лежит в отрезке
. Базис задается набором из
вещественных чисел.
Возьмем первую координату первого вектора: это числовая последовательность в отрезке . Разделим отрезок пополам. Хотя бы в одной из половин содержится бесконечно много членов последовательности.
Выберем эту половину и продолжим процесс деления. По принципу вложенных отрезков мы выделим подпоследовательность индексов, для которой первая координата сходится к некоторому числу.
Перейдем ко второй координате, просеивая уже выбранную подпоследовательность тем же методом. Поскольку общее число координат конечно (ровно ), мы повторим эту процедуру конечное число раз и получим одну общую подпоследовательность индексов
, в которой сходятся координаты всех векторов:
Проверим, образуют ли предельные векторы ортонормированный базис. Скалярное произведение является конечной суммой произведений координат, поэтому предельный переход сохраняет скалярные произведения:
где при
и
при
. Предельные векторы ортонормированы, а любой набор из ортонормированных векторов в автоматически является базисом.
Наконец, функционал — многочлен степени не выше четырёх от координат базисных векторов. Поэтому предельный переход совместим с вычислением :
Минимум действительно достигается: существует конкретный ортонормированный базис , на котором
.
Заметьте: мы пока не утверждаем, что . Мы лишь доказали, что значение функционала ни на каком другом базисе не может быть строго меньше
.
6. Решающий шаг: почему минимум не может быть положительным
Предположим, что абсолютный минимум положителен: .
Раз , в сумме квадратов обязан найтись хотя бы один ненулевой член. Значит, существует пара индексов , для которой:
Применим к паре нашу двумерную лемму: найдем угол
, при котором образы повернутых векторов становятся строго ортогональными:
Сформируем новый базис , заменив в векторы
на повернутые
, а остальные вектора оставив без изменений. Базис остается ортонормированным.
Что произошло со значением ?
Вклады всех пар, не содержащих и , не изменились.
Для каждого сумма вкладов двух пар сохранилась благодаря доказанному ранее тождеству:
Вклад самой пары уменьшился с
до 0.
Следовательно, суммарная неортогональность нового базиса равна точно:
Но так как , мы получаем:
Мы построили ортонормированный базис , значение функционала на котором строго меньше точной нижней грани . Полученное противоречие опровергает предположение .
Значит:
А раз минимум равен нулю и достигается на базисе , то:
Поскольку все слагаемые неотрицательны, каждое из них обязано быть нулем:
Образы векторов базиса попарно ортогональны.
7. Сборка прямоугольного SVD
Теперь аккуратно соберем итоговые матрицы для любого прямоугольного размера .
Пусть — найденный ортонормированный базис в , образы которого попарно ортогональны. Некоторые из этих образов могут быть нулевыми (например, если матрица вырождена или ).
1. Упорядочение.
Перенумеруем векторы базиса так, чтобы длины их образов шли по невозрастанию:
Число ненулевых образов в точности совпадает с размерностью пространства образов , то есть
. Если
, то
, и все образы нулевые. Если
, сумма формально не содержит слагаемых и равна нулю сразу.
2. Сингулярные числа.
Положим для каждого :
3. Базис выхода.
Определим первые векторов в простой нормировкой:
Так как образы попарно ортогональны, набор является ортонормированным в . Дополним его любым стандартным способом (например, процессом Грама — Шмидта) до полного ортонормированного базиса
пространства . Заметим: если , мы ни в коем случае не пытаемся строить векторы
для индексов больше
; выходное пространство строго -мерно.
4. Матричная запись.
Составим матрицы:
Обе матрицы составлены из ортонормированных базисов, поэтому они ортогональны: ,
. Обратите внимание: матрицы могут иметь определитель −1 (содержать отражение), требование быть «чистыми» вращениями на них не накладывается.
Определим матрицу размера : на позициях при
запишем числа
, а все остальные её элементы положим равными нулю.
Проверим произведение : его -й столбец равен . При
имеем
, а при
имеем
. Но именно такие столбцы дает произведение
. Следовательно:
Умножая справа на и учитывая, что , получаем:
Сингулярное разложение построено.
8. Исторический контекст и связь с вычислениями
Идея использовать функционал суммы квадратов неортогональности восходит к классическому методу вращений Якоби для диагонализации симметричных матриц.
В 1981 году математик Герберт Уилф (Herbert S. Wilf) опубликовал короткую двухстраничную заметку, в которой предложил доказывать спектральную теорему для симметричных матриц именно через глобальный минимум суммы квадратов внедиагональных элементов.
Связь этого доказательства с подходом Уилфа видна, если рассмотреть матрицу Грама системы векторов :
Ее элементы — в точности скалярные произведения . Внедиагональная сумма квадратов матрицы
равна:
Уилф минимизировал для произвольной симметричной матрицы. Мы же применили эту логику непосредственно к исходному отображению , даже не формируя матрицу и не требуя предварительного знания спектральной теории.
С этим рассуждением связан практический численный алгоритм — односторонний метод Якоби для SVD (one-sided Jacobi SVD). В нём последовательно ортогонализуют пары столбцов матрицы , накапливая вращения в . На практике итерации останавливают, когда скалярные произведения столбцов становятся достаточно малы относительно их норм.
Доказательство через минимум само по себе не устанавливает сходимость произвольного порядка вращений. Продуманные реализации метода могут особенно точно вычислять малые сингулярные числа; качество результата зависит от матрицы и реализации.
Например, документация LAPACK для DGESVJ отдельно оговаривает условия точности и критерий остановки [3].
Пример на Python
import numpy as np
A = np.array([[2.0, 1.0], [0.0, 1.0]])
x, y = A[:, 0], A[:, 1]
aa, bb = x @ x, y @ y
gamma = x @ y
# Выбираем один из корней уравнения <Av, Aw> = 0.
theta = 0.5 * np.arctan2(2.0 * gamma, aa - bb)
c, s = np.cos(theta), np.sin(theta)
V = np.array([[c, -s], [s, c]])
B = A @ V
sigma = np.linalg.norm(B, axis=0)
U = B / sigma # В этом примере обе нормы ненулевые.
assert np.allclose(V.T @ V, np.eye(2), atol=1e-12)
assert np.isclose(B[:, 0] @ B[:, 1], 0.0, atol=1e-12)
assert np.isclose(np.linalg.norm(B, "fro"), np.linalg.norm(A, "fro"))
assert np.allclose(U.T @ U, np.eye(2), atol=1e-12)
assert np.allclose(A, U @ np.diag(sigma) @ V.T, atol=1e-12)
print(f"Угол: {np.degrees(theta):.6f} градусов")
print("Сингулярные числа:", np.round(sigma, 6))
Результат:
Угол: 31.717474 градусов
Сингулярные числа: [2.288246 0.874032]
Проверки подтверждают ортонормированность базисов, ортогональность образов, сохранение нормы Фробениуса и восстановление исходной матрицы.
Схема доказательства одним предложением
Существование минимизирующего базиса инвариантность суммы квадратов скалярных произведений с третьими векторами при повороте пары строгое уменьшение на при предположении попарная ортогональность образов нормировка и получение
.
Источники
Herbert S. Wilf. An Algorithm-Inspired Proof of the Spectral Theorem in
. The American Mathematical Monthly, Vol. 88, No. 1 (1981), pp. 49–50. (PDF на странице автора)
Robert van de Geijn, Margaret Myers. Advanced Linear Algebra: Foundations to Frontiers. §11.3.3, Jacobi’s method for computing the Singular Value Decomposition. (Материалы курса)
LAPACK. Документация
DGESVJ: односторонний метод Якоби, условия относительной точности и критерий остановки. (Описание процедуры)
Если эта публикация вас вдохновила и вы хотите поддержать автора — не стесняйтесь нажать на кнопку
KioskNews shows a cleaned-up reading view extracted from the publisher’s page — the original always lives on their site, not ours.