Как выбрать направление, сохраняющее максимум разброса?
В прошлом уроке про матрицы мы видели: у симметричной матрицы есть
ортогональные собственные направления. Сейчас окажется, что именно они отвечают на
важнейший вопрос анализа данных — вдоль каких осей облако точек разбросано сильнее
всего. Так рождается метод главных компонент: не магия, а прямое следствие
ортогональности и множителей Лагранжа.
Проекция на единичный вектор
Пусть у нас n объектов, у каждого — вектор признаков xi. Спроецируем их на
единичное направление u: проекция i-го объекта равна числу zi=xi⊤u.
Насколько «широко» точки разъезжаются вдоль этой оси, измеряет выборочная дисперсия
проекций. Если данные центрированы (среднее вычтено), она равна
n1i∑zi2=u⊤(n1Xc⊤Xc)u=u⊤Su,S=n1Xc⊤Xc.
Здесь S — ковариационная матрица. Первая главная компонента — это направление,
вдоль которого разброс максимален:
u1=arg∥u∥=1maxu⊤Su.
На реальных данных это видно сразу. Возьмём знаменитый набор ирисов Фишера и два
признака — длину и ширину лепестка. Облако вытянуто по диагонали; вращая ось
проекции, мы получаем разную дисперсию, и она достигает максимума ровно вдоль
длинной оси облака.
Рис. 38.1. Дисперсия проекции зависит от направления
Каждому углу оси проекции отвечает своя дисперсия u⊤Su. Максимум 3,66
достигается вдоль вытянутой оси облака — это и есть первая главная компонента.
Центрировать обязательно
Вычитание среднего — не формальность. Без него первая ось может просто указывать из
начала координат к далёкому облаку, описывая его положение, а не внутренний разброс.
Вращайте ось над реальным облаком ирисов и следите за столбиком дисперсии справа:
он максимален, когда ось совпадает с длинной осью облака. Переключатель
центрирования по-настоящему пересчитывает данные — выключите его и увидите, как ось
теряет смысл, уводя к началу координат.
От Лагранжа к собственному вектору
Откуда берётся оптимальное направление? Это задача на условный экстремум:
максимизировать u⊤Su при ограничении u⊤u=1. Составим лагранжиан
L(u,λ)=u⊤Su−λ(u⊤u−1).
Приравняв производную к нулю, получаем 2Su−2λu=0, то есть
Su=λu.
Оптимальное направление — собственный вектор ковариационной матрицы, а само
λ равно дисперсии проекции вдоль него. Максимум достигается на собственном
векторе с наибольшим собственным значением.
Если снять ограничение u⊤u=1 и разрешить вектору любую длину, та же задача
записывается одной дробью
R(u)=u⊤uu⊤Su,
которую называют отношением Рэлея. Растяжение вектора не меняет её значения, так что
максимум по всем ненулевым u и максимум по единичным — это одно и то же число
λ1. Отношение Рэлея — рабочий инструмент численной линейной алгебры: через
него оценивают собственные значения, не находя собственных векторов точно.
Как эти векторы находят на самом деле
Уравнение Su=λu выглядит так, будто ответ можно выписать формулой. Для матрицы
4×4 это ещё правда: характеристический многочлен четвёртой степени решается в
радикалах. Начиная с пятого порядка формулы нет — и не будет, это теорема Абеля. А
ковариационные матрицы в машинном обучении бывают тысячного порядка. Значит,
собственные направления не вычисляют, а итерируют.
Простейший способ напрашивается сам. Возьмите произвольный вектор, умножьте на S,
нормируйте, повторите:
uk+1=∥Suk∥Suk.
Разложим старт по собственному базису: u0=∑jcjvj. Каждое умножение на S
множит j-е слагаемое на λj, поэтому после k шагов доля j-й компоненты
относительно первой равна (λj/λ1)kcj/c1. Всё, кроме старшего
направления, гаснет геометрически, и скорость задаёт отношение соседних собственных
значений.
Рис. 38.4. Собственные направления итерируют, а не решают формулой
Обе панели считаны на настоящей ковариации всех четырёх измерений ириса. Слева:
старт взят почти вдоль самого слабого направления, и всё равно через семь умножений
на S угол до первой главной оси падает до машинной точности. Пунктир — теоретическая
скорость (λ2/λ1)k при λ2/λ1=0,0574; реальная кривая
идёт даже круче, потому что у старта была ничтожная примесь первого направления. Справа:
QR-итерации Ak+1=RkQk гасят внедиагональную часть к четырнадцатому шагу, и на
диагонали проступают все собственные значения сразу: 4,228, 0,243, 0,078, …
Степенной метод даёт одно направление — старшее. Чтобы получить весь набор, применяют
QR-алгоритм: матрицу раскладывают на ортогональную и треугольную части, Ak=QkRk, и
перемножают их в обратном порядке, Ak+1=RkQk. Каждый такой шаг — преобразование
подобия, поэтому собственные значения не меняются, а внедиагональная часть тает. Для
симметричной матрицы предел диагонален, и на диагонали стоят ровно те λj,
которые нам нужны.
Собственные векторы ковариации ортогональны
Ковариационная матрица симметрична, а у симметричной матрицы собственные векторы,
отвечающие разным собственным значениям, взаимно перпендикулярны. Поэтому главные
компоненты образуют ортонормированный базис: вторая ось перпендикулярна первой,
третья — первым двум, и так далее.
Рис. 38.2. Главные оси — ортогональные собственные векторы ковариации
Эллипс рассеяния и две его оси. Длинная — первая компонента (λ1=3,66),
короткая перпендикулярная — вторая (λ2=0,04). Длины полуосей равны
λ.
Русская линия здесь ведёт к самому понятию ортогональности в статистике. П. Л.
Чебышёв и его школа развили теорию ортогональных многочленов и метод наименьших
квадратов, где взаимно перпендикулярные направления позволяют раскладывать величину
на независимые вклады. Главные компоненты — это ровно такой ортогональный базис,
только построенный по разбросу самих данных.
Следующие компоненты и SVD
Вторая компонента максимизирует дисперсию среди направлений, перпендикулярных первой,
третья — перпендикулярных первым двум. На практике компоненты почти никогда не ищут
через явную ковариацию: вместо этого раскладывают саму центрированную матрицу данных
сингулярным разложением
Xc=UΣV⊤.
Столбцы V — это и есть главные компоненты, а собственные значения ковариации
связаны с сингулярными числами: λj=σj2/n. Такой путь численно
устойчивее, потому что не требует возводить данные в квадрат при построении S.
Спектр и объяснённая дисперсия
Как понять, сколько компонент оставить? Собственные значения, выстроенные по
убыванию, образуют спектр (scree plot): первые несколько велики, дальше — быстрый
спад. Накопленная доля объяснённой дисперсии
Rm=λ1+⋯+λdλ1+⋯+λm
говорит, какую долю разброса удерживают первые m осей. На реальных рукописных
цифрах 8×8 уже 13 компонент из 64 удерживают 80% дисперсии.
Слева: спектр (красный) круто падает, накопленная дисперсия (синяя) достигает 80%
уже при 13 компонентах. Справа: цифра, восстановленная по m компонентам, от
размытой к чёткой.