Метод главных компонент

Материал из MachineLearning.

(Различия между версиями)
Перейти к: навигация, поиск
м
 
(41 промежуточная версия не показана)
Строка 1: Строка 1:
-
'''Метод Главных Компонент''' (англ. Principal Components Analysis, PCA) — один из основных способов уменьшить [[размерность]] данных, потеряв наименьшее количество [[информация|информации]]. Изобретен К. Пирсоном (англ.[http://en.wikipedia.org/wiki/Karl_Pearson Karl Pearson]) в 1901 г. Применяется во многих областях, таких как [[распознавание образов]], [[компьютерное зрение]], [[сжатие данных]] и т. п. Вычисление главных компонент сводится к вычислению [[Собственные векторы, значения и пространства|собственных векторов]] и [[Собственные векторы, значения и пространства|собственных значений]] [[Ковариационная матрица| ковариационной матрицы]] исходных данных. Иногда метод главных компонент называют ''преобразованием Кархунена-Лоэва'' (англ. Karhunen-Loeve)<ref>В русскоязычной научной литературе распространено также написание ''преобразование Карунена-Лоэва'', соответствующее английскому прочтению финской фамилии</ref> или преобразованием Хотеллинга (англ. Hotelling transform). Другие способы уменьшения размерности данных — это [[метод независимых компонент]], многомерное шкалирование, а также многочисленные нелинейные обобщения: метод главных кривых и многообразий, [[Поиск наилучшей проекции|поиск наилучшей проекции]] (англ. Projection Pursuit), [[Искусственная нейронная сеть|нейросетевые]] методы «[[Нейросетевое сжатие данных|узкого горла]]», [[Самоорганизующаяся карта Кохонена|самоорганизующиеся карты Кохонена]] и др.
+
'''Метод Главных Компонент''' (англ. Principal Components Analysis, PCA) — один из основных способов уменьшить [[размерность]] данных, потеряв наименьшее количество [[информация|информации]]. Изобретен К. Пирсоном (англ.[http://en.wikipedia.org/wiki/Karl_Pearson Karl Pearson]) в 1901 г. Применяется во многих областях, таких как [[распознавание образов]], [[компьютерное зрение]], [[сжатие данных]] и т. п. Вычисление главных компонент сводится к вычислению собственных векторов и собственных значений [[Ковариационная матрица| ковариационной матрицы]] исходных данных или к [[Сингулярное разложение|сингулярному разложению]] матрицы данных. Иногда метод главных компонент называют ''преобразованием Кархунена-Лоэва'' (англ. Karhunen-Loeve)<ref>В русскоязычной научной литературе распространено также написание ''преобразование Карунена-Лоэва'', соответствующее английскому прочтению финской фамилии</ref> или преобразованием Хотеллинга (англ. Hotelling transform). Другие способы уменьшения размерности данных — это [[метод независимых компонент]], многомерное шкалирование, а также многочисленные нелинейные обобщения: метод главных кривых и многообразий, [[Поиск наилучшей проекции|поиск наилучшей проекции]] (англ. Projection Pursuit), [[Искусственная нейронная сеть|нейросетевые]] методы «[[Нейросетевое сжатие данных|узкого горла]]», [[Нейронная сеть Кохонена|самоорганизующиеся карты Кохонена]] и др.
== Формальная постановка задачи ==
== Формальная постановка задачи ==
-
{{UnderConstruction|[[Участник:Agor153|Agor153]] 03:21, 1 июля 2008 (MSD)}}
+
Задача анализа главных компонент, имеет, как минимум, четыре базовых версии:
 +
* аппроксимировать данные линейными многообразиями меньшей размерности;
 +
* найти подпространства меньшей размерности, в ортогональной проекции на которые разброс данных (т.е. среднеквадратичное уклонение от среднего значения) максимален;
 +
* найти подпространства меньшей размерности, в ортогональной проекции на которые среднеквадратичное расстояние между точками максимально;
 +
* для данной многомерной случайной величины построить такое ортогональное преобразование координат, что в результате корреляции между отдельными координатами обратятся в ноль.
-
 
+
Первые три версии оперируют конечными множествами данных. Они эквивалентны и не используют никакой гипотезы о статистическом порождении данных. Четвёртая версия оперирует случайными величинами. Конечные множества появляются здесь как выборки из данного распределения, а решение трёх первых задач — как приближение к «истинному» преобразованию Кархунена-Лоэва. При этом возникает дополнительный и не вполне тривиальный вопрос о точности этого приближения.
-
Задача анализа главных компонент, имеет, как минимум, три базовых версии:
+
-
* аппроксимировать данные [[Линейное многообразие|линейными многообразиями]] меньшей размерности;
+
-
* найти подпространства меньшей размерности, в ортогональной проекции на которые разброс данных максимален;
+
-
* для данной многомерной случайной величины построить такое ортогональное преобразования координат, что в результате корреляции между отдельными координатами обратятся в ноль.
+
-
 
+
-
Первые две версии оперируют конечными множествами данных. Они эквивалентны и не используют никакой гипотезы о статистическом порождении данных. Третья версия оперирует случайными величинами. Конечные множества появляются здесь как выборки из данного распределения, а решение двух первых задач — как приближение к «истинному» преобразованию Кархунена-Лоэва. При этом возникает дополнительный и не вполне тривиальный вопрос о точности этого приближения.
+
=== Аппроксимация данных линейными многообразиями ===
=== Аппроксимация данных линейными многообразиями ===
Строка 23: Строка 21:
где <tex>\operatorname{dist}(x_i, L_k) </tex> — евклидово расстояние от точки до линейного многообразия. Всякое <tex>k </tex>-мерное линейное многообразие в <tex>\mathbb{R}^n </tex> может быть задано как множество линейных комбинаций <tex>L_k = \{ a_0 +\beta_1 a_1 +...+ \beta_k a_k | \beta_i \in \mathbb{R} \} </tex>, где параметры <tex> \beta_i </tex> пробегают вещественную прямую <tex>\mathbb{R}</tex>, <tex>a_0 \in \mathbb{R}^n</tex> а <tex>\left\{a_1,..., a_k \right\} \subset \mathbb{R}^n</tex> — ортонормированный набор векторов
где <tex>\operatorname{dist}(x_i, L_k) </tex> — евклидово расстояние от точки до линейного многообразия. Всякое <tex>k </tex>-мерное линейное многообразие в <tex>\mathbb{R}^n </tex> может быть задано как множество линейных комбинаций <tex>L_k = \{ a_0 +\beta_1 a_1 +...+ \beta_k a_k | \beta_i \in \mathbb{R} \} </tex>, где параметры <tex> \beta_i </tex> пробегают вещественную прямую <tex>\mathbb{R}</tex>, <tex>a_0 \in \mathbb{R}^n</tex> а <tex>\left\{a_1,..., a_k \right\} \subset \mathbb{R}^n</tex> — ортонормированный набор векторов
: <tex>\operatorname{dist}^2(x_i, L_k) = \| x_i - a_0 - \sum_{j=1}^k a_j (a_j, x_i - a_0) \| ^2</tex>,
: <tex>\operatorname{dist}^2(x_i, L_k) = \| x_i - a_0 - \sum_{j=1}^k a_j (a_j, x_i - a_0) \| ^2</tex>,
-
где <tex>\| \cdot \| </tex> евклидова норма, <tex> \left(a_j, x_i\right) </tex> — евклидово скалярное произведение, или в координатной форме:
+
где <tex>\|^\ \cdot \ \|^\ </tex> евклидова норма, <tex> \left(a_j, x_i\right) </tex> — евклидово скалярное произведение, или в координатной форме:
: <tex> \operatorname{dist}^2(x_i, L_k) = \sum_{l=1}^n \left(x_{il} - a_{0l}- \sum_{j=1}^k a_{jl} \sum_{q=1}^n a_{jq}(x_{iq} - a_{0q}) \right)^2 </tex>.
: <tex> \operatorname{dist}^2(x_i, L_k) = \sum_{l=1}^n \left(x_{il} - a_{0l}- \sum_{j=1}^k a_{jl} \sum_{q=1}^n a_{jq}(x_{iq} - a_{0q}) \right)^2 </tex>.
Строка 64: Строка 62:
-
Пусть нам дан центрированный набор векторов данных <tex>x_i\in\mathbb{R}^n \; (i=1,...,m)</tex> ([[среднее арифметическое]] значение <tex> x_i </tex> равно нулю). Задача — найти такое [[ортогональное преобразование]] в новую [[Прямоугольная система координат|систему координат]], для которого были бы верны следующие условия:
+
Пусть нам дан центрированный набор векторов данных <tex>x_i\in\mathbb{R}^n \; (i=1,...,m)</tex> (среднее арифметическое значение <tex> x_i </tex> равно нулю). Задача — найти такое ортогональное преобразование в новую систему координат, для которого были бы верны следующие условия:
* [[Выборочная дисперсия]] данных вдоль первой координаты максимальна (эту координату называют первой ''главной компонентой'');
* [[Выборочная дисперсия]] данных вдоль первой координаты максимальна (эту координату называют первой ''главной компонентой'');
* Выборочная дисперсия данных вдоль второй координаты максимальна при условии ортогональности первой координате (вторая главная компонента);
* Выборочная дисперсия данных вдоль второй координаты максимальна при условии ортогональности первой координате (вторая главная компонента);
Строка 71: Строка 69:
* …
* …
-
[[Выборочная дисперсия]] данных вдоль направления, заданного нормированным вектором <tex> a_k</tex>, это
+
Выборочная дисперсия данных вдоль направления, заданного нормированным вектором <tex> a_k</tex>, это
-
: <tex>S^2_m \left[ (X, a_k) \right ] = \frac{1}{m} \sum\limits_{i=1}^m \left(\sum\limits_{j=1}^n x_{ij}a_{kj} \right)^2 </tex>
+
: <tex>S^2_m \left[ (X, a_k) \right ] = \frac{1}{m} \sum\limits_{i=1}^m \left(\sum\limits_{j=1}^n x_{ij}a_{kj} \right)^2</tex>
(поскольку данные центрированы, выборочная дисперсия здесь совпадает со средним квадратом уклонения от нуля).
(поскольку данные центрированы, выборочная дисперсия здесь совпадает со средним квадратом уклонения от нуля).
Строка 79: Строка 77:
: Если решение не единственно, то выбираем одно из них.
: Если решение не единственно, то выбираем одно из них.
* Вычитаем из данных проекцию на первую главную компоненту:
* Вычитаем из данных проекцию на первую главную компоненту:
-
: <tex>x_i:= x_i - a_1 \left(a_1,x_i\right) </tex>; в результате <tex>x_i \bot a_1</tex>;
+
: <tex>x_i:= x_i-a_1 \left(a_1,x_i\right) </tex>; в результате <tex>x_i \bot a_1</tex>;
* находим вторую главную компоненту как решение задачи
* находим вторую главную компоненту как решение задачи
: <tex>a_2 = \underset{\| a_2 \| =1}{\operatorname{argmax}}\,S^2_m \left [ (X, a_2) \right ];</tex>
: <tex>a_2 = \underset{\| a_2 \| =1}{\operatorname{argmax}}\,S^2_m \left [ (X, a_2) \right ];</tex>
Строка 85: Строка 83:
* …
* …
* Вычитаем проекцию на <tex>(k-1)</tex>-ю главную компоненту (напомним, что проекции на предшествующие <tex>k-2</tex> главные компоненты уже вычтены):
* Вычитаем проекцию на <tex>(k-1)</tex>-ю главную компоненту (напомним, что проекции на предшествующие <tex>k-2</tex> главные компоненты уже вычтены):
-
: <tex>x_i:= x_i - a_{k-1} \left(a_{k-1},x_i\right) </tex>; в результате <tex>x_i \bot a_l, (l = 1, \dots, k-1)</tex>;
+
: <tex>x_i:= x_i-a_{k-1} \left(a_{k-1},x_i\right) </tex>; в результате <tex>x_i \bot a_l, (l = 1,\dots k-1)</tex>;
* находим <tex>k</tex>-ю главную компоненту как решение задачи
* находим <tex>k</tex>-ю главную компоненту как решение задачи
: <tex>a_n = \underset{\| a_k\| = 1}{\operatorname{argmax}}\,S^2_m \left [ (X, a_k) \right ];</tex>
: <tex>a_n = \underset{\| a_k\| = 1}{\operatorname{argmax}}\,S^2_m \left [ (X, a_k) \right ];</tex>
: Если решение не единственно, то выбираем одно из них.
: Если решение не единственно, то выбираем одно из них.
-
*
+
* ...
-
Фактически, как и для задачи аппроксимации, на каждом шаге решается задача о первой главной компоненте для данных, из которых вычтены проекции на все ранее найденные главные компоненты. При большом числе итерации (большая размерность, много главных компонент) отклонения от ортогональности накапливаются и может потребоваться специальная коррекция алгоритма или другой алгоритм поиска собственных векторов ковариационной матрицы.
+
Фактически, как и для задачи аппроксимации, на каждом шаге решается задача о первой главной компоненте для данных, из которых вычтены проекции на все ранее найденные главные компоненты. При большом числе итерации (большая размерность, много главных компонент) отклонения от ортогональности накапливаются и может потребоваться специальная коррекция [[алгоритм]]а или другой алгоритм поиска собственных векторов ковариационной матрицы.
-
Решение задачи о наилучшей аппроксимации даёт то же множество решений <tex>\left\{a_i\right\}</tex>, что и поиск ортогональных проекций с наибольшим рассеянием, по очень простой причине: <tex>\| x_i - a_k (a_k,x_i)\| ^2 = \| x_i\| ^2 - (a_k,x_i)^2, </tex> и первое слагаемое не зависит от <tex> a_k</tex>. Только одно дополнение к задаче об аппроксимации: появляется последняя главная компонента <tex> a_n.</tex>
+
Решение задачи о наилучшей аппроксимации даёт то же множество решений <tex>\left\{a_i\right\}</tex>, что и поиск ортогональных проекций с наибольшим рассеянием, по очень простой причине: <tex>\| x_i-a_k (a_k, x_i)\|^2 \stackrel{\|a_k\|=1}{=} \| x_i\|^2-(a_k, x_i)^2, </tex> и первое слагаемое не зависит от <tex> a_k</tex>. Только одно дополнение к задаче об аппроксимации: появляется последняя главная компонента <tex> a_n.</tex>
=== Поиск ортогональных проекций с наибольшим среднеквадратичным расстоянием между точками ===
=== Поиск ортогональных проекций с наибольшим среднеквадратичным расстоянием между точками ===
Строка 99: Строка 97:
Ещё одна эквивалентная формулировка следует из очевидного тождества, верного для любых <tex>m</tex> векторов <tex> x_i</tex>:
Ещё одна эквивалентная формулировка следует из очевидного тождества, верного для любых <tex>m</tex> векторов <tex> x_i</tex>:
: <tex>\frac{1}{m(m-1)}\sum_{i,j=1}^m (x_i-x_j)^2 =\frac{2m^2}{m(m-1)}\left[\frac{1}{m}\sum_{i=1}^m x_i^2 - \left(\frac{1}{m}\sum_{i}^m x_i \right)^2\right].</tex>
: <tex>\frac{1}{m(m-1)}\sum_{i,j=1}^m (x_i-x_j)^2 =\frac{2m^2}{m(m-1)}\left[\frac{1}{m}\sum_{i=1}^m x_i^2 - \left(\frac{1}{m}\sum_{i}^m x_i \right)^2\right].</tex>
-
В левой части этого тождества стоит среднеквадратичное расстояние между точками, а в квадратных скобках справа — выборочная дисперсия. Таким образом, в методе главных компонент ищутся подпространства, в проекции на которые среднеквадратичное расстояние между точками максимально. Такая переформулировка позволяет строить обобщения с взвешиванием различных парных расстояний (а не только точек).
+
В левой части этого тождества стоит среднеквадратичное расстояние между точками, а в квадратных скобках справа — выборочная дисперсия. Таким образом, в методе главных компонент ищутся подпространства, в проекции на которые среднеквадратичное расстояние между точками максимально (или, что то же самое, его искажение в результате проекции минимально)<ref>''Зиновьев А. Ю.'', [http://pca.narod.ru/ZINANN.htm Визуализация многомерных данных], Красноярск, Изд. КГТУ, 2000.</ref>. Такая переформулировка позволяет строить обобщения с взвешиванием различных парных расстояний (а не только точек).
=== Аннулирование корреляций между координатами ===
=== Аннулирование корреляций между координатами ===
Строка 112: Строка 110:
Все задачи о главных компонентах приводят к задаче диагонализации ковариационной матрицы или выборочной ковариационной матрицы. Эмпирическая или выборочная ковариационная матрица, это
Все задачи о главных компонентах приводят к задаче диагонализации ковариационной матрицы или выборочной ковариационной матрицы. Эмпирическая или выборочная ковариационная матрица, это
-
: <tex>C = [c_{ij}],\ c_{ij} = \frac{1}{m} \sum_{l=1}^m (x_{li}-\overline{X_{i}})(x_{lj}-\overline{X_{j}}).</tex>
+
: <tex>C = [c_{ij}],\ c_{ij} = \frac{1}{m-1} \sum_{l=1}^m (x_{li}-\overline{X_{i}})(x_{lj}-\overline{X_{j}}).</tex>
[[Ковариационная матрица]] многомерной случайной величины <tex> X</tex>, это
[[Ковариационная матрица]] многомерной случайной величины <tex> X</tex>, это
: <tex>\Sigma = [\sigma_{ij}],\ \sigma_{ij} = \operatorname{cov}(X_i,X_j)=E[(X_i-\overline{X_i})(X_j-\overline{X_j})].</tex>
: <tex>\Sigma = [\sigma_{ij}],\ \sigma_{ij} = \operatorname{cov}(X_i,X_j)=E[(X_i-\overline{X_i})(X_j-\overline{X_j})].</tex>
Строка 121: Строка 119:
== [[Сингулярное разложение]] матрицы данных ==
== [[Сингулярное разложение]] матрицы данных ==
-
=== Идея сингулярного разложения ===
+
{{main|Простой итерационный алгоритм сингулярного разложения}}
-
Математическое содержание метода главных компонент — это ''спектральное разложение'' ковариационной матрицы <tex> C </tex>, то есть представление пространства данных в виде суммы взаимно ортогональных собственных подпространств <tex> C </tex>, а самой матрицы <tex> C </tex> — в виде линейной комбинации ортогональных проекторов на эти подпространства с коэффициентами <tex> \lambda_i </tex>. Если <tex>\operatorname{X}=\left\{x_1,..., x_m \right\}^T</tex> — матрица, составленная из векторов-строк центрированных данных, то <tex> C = \operatorname{X}^T\operatorname{X}</tex> и задача о спектральном разложении ковариационной матрицы <tex> C </tex> превращается в задачу о ''сингулярном разложении'' (англ. [http://en.wikipedia.org/wiki/Singular_value_decomposition Singular value decomposition]) матрицы данных <tex>\operatorname{X}</tex>.
+
-
Число <tex> \sigma \geq 0 </tex> называется '''сингулярным числом''' матрицы <tex>\operatorname{X}</tex> тогда и только тогда, когда существуют '''правый и левый сингулярные векторы''': такие <tex>m</tex>-мерный вектор-строка <tex>b_{\sigma}</tex> и <tex>n</tex>-мерный вектор-столбец <tex>a_{\sigma}</tex> (оба единичной длины), что выполнено два равенства:
+
Математическое содержание метода главных компонент — это ''спектральное разложение'' ковариационной матрицы <tex> C </tex>, то есть представление пространства данных в виде суммы взаимно ортогональных собственных подпространств <tex> C </tex>, а самой матрицы <tex> C </tex> — в виде линейной комбинации ортогональных проекторов на эти подпространства с коэффициентами <tex> \lambda_i </tex>. Если <tex>\operatorname{X}=\left\{x_1,..., x_m \right\}^T</tex> — матрица, составленная из векторов-строк центрированных данных, то <tex> C = \frac{1}{m-1}\operatorname{X}^T\operatorname{X}</tex> и задача о спектральном разложении ковариационной матрицы <tex> C </tex> превращается в задачу о ''сингулярном разложении'' (англ. [http://en.wikipedia.org/wiki/Singular_value_decomposition Singular value decomposition]) матрицы данных <tex>\operatorname{X}</tex>.
-
: <tex>\operatorname{X} a_{\sigma} = \sigma b_{\sigma}^T \;;\, \, b_{\sigma} \operatorname{X}= \sigma a_{\sigma}^T.</tex>
+
-
Пусть <tex>p= \operatorname{rang} \operatorname{X} \leq \min\{n,m\}</tex> — [[ранг матрицы]] данных. '''Сингулярное разложение''' матрицы данных <tex>\operatorname{X}</tex> — это её представление в виде
+
-
: <tex>\operatorname{X}= \sum_{l=1}^p \sigma_l b_l^T a_l^T \;; \;\operatorname{X}^T= \sum_{l=1}^p \sigma_l a_l b_l \; \left(x_{ij}=\sum_{l=1}^p \sigma_l b_{li}a_{lj}\right),</tex>
+
-
где <tex>\sigma_l > 0</tex> — сингулярное число, <tex>a_l=(a_{li}), \, i=1,... n</tex> — соответствующий правый сингулярный вектор-столбец, а <tex>b_l=(b_{li}), \, i=1,... m</tex> — соответствующий левый сингулярный вектор-строка (<tex>l=1,...p</tex>). Правые сингулярные векторы-столбцы <tex>a_l</tex>, участвующие в этом разложении, являются векторами главных компонент и собственными векторами эмпирической ковариационной матрицы
+
-
<tex>C =\operatorname{X} ^T \operatorname{X} </tex>, отвечающими положительным собственным числам <tex> \lambda_l=\sigma_l^2 > 0 </tex>.
+
-
Хотя формально задачи сингулярного разложения матрицы данных и спектрального разложения ковариационной матрицы совпадают, алгоритмы вычисления сингулярного разложения напрямую, без вычисления спектра ковариационной матрицы, более эффективны и устойчивы <ref>''Bau III, D., Trefethen, L. N.'', [http://books.google.com/books?id=bj-Lu6zjWbEC&pg=PA136&dq=isbn:9780898713619&sig=BmAatL8LDJZZRhfJIFVRHLQNJw0#PPP1,M1 Numerical linear algebra], Philadelphia: Society for Industrial and Applied Mathematics, 1997. (Lecture 31) ISBN 978-0-89871-361-9 </ref>.
+
Хотя формально задачи сингулярного разложения матрицы данных и спектрального разложения ковариационной матрицы совпадают, [[алгоритм]]ы вычисления сингулярного разложения напрямую, без вычисления ковариационной матрицы и её спектра, более эффективны и устойчивы <ref>''Bau III, D., Trefethen, L. N.'', [http://books.google.com/books?id=bj-Lu6zjWbEC&pg=PA136&dq=isbn:9780898713619&sig=BmAatL8LDJZZRhfJIFVRHLQNJw0#PPP1,M1 Numerical linear algebra], Philadelphia: Society for Industrial and Applied Mathematics, 1997. (Lecture 31) ISBN 978-0-89871-361-9 </ref>.
-
Теория сингулярного разложения была создана Дж. Дж. Сильвестром (англ.[http://en.wikipedia.org/wiki/James_Joseph_Sylvester J. J. Sylvester]}}) в 1889 г. и изложена во всех подробных руководствах по теории матриц <ref>''[[Гантмахер, Феликс Рувимович|Гантмахер Ф. Р.]]'', Теория матриц. — М.: Наука, 1966. — 576 стр.</ref>.
+
Теория сингулярного разложения была создана Дж. Дж. Сильвестром (англ. [http://en.wikipedia.org/wiki/James_Joseph_Sylvester J. J. Sylvester]) в 1889 г. и изложена во всех подробных руководствах по теории матриц <ref>''Гантмахер Ф. Р.'', Теория матриц. — М.: Наука, 1966. — 576 стр.</ref>.
-
=== Простой итерационный алгоритм сингулярного разложения ===
+
== Вычисление для больших и потоковых данных ==
-
Основная процедура — поиск наилучшего приближения произвольной <tex>m \times n</tex> матрицы <tex>X=(x_{ij})</tex> матрицей вида <tex>b \otimes a = (b_i a_j)</tex> (где <tex>b</tex> — <tex>m</tex>-мерный вектор, а <tex>a</tex> — <tex>n</tex>-мерный вектор) методом наименьших квадратов:
+
=== Рандомизированные алгоритмы ===
-
: <tex>F(b, a) = \frac{1}{2}\sum_{i=1}^m \sum_{j=1}^n (x_{ij} - b_i a_j )^2 \to \min</tex>
+
-
Решение этой задачи дается последовательными итерациями по явным формулам. При фиксированном векторе <tex>a=(a_j) </tex> значения <tex>b=(b_i) </tex>, доставляющие минимум форме <tex>F(b, a) </tex>, однозначно и явно определяются из равенств <tex>\partial F/ \partial b_i = 0</tex> :
+
-
: <tex>\frac{\partial F}{\partial b_i} = - \sum_{j=1}^n (x_{ij} - b_i a_j )a_j = 0; \;\; b_i = \frac{\sum_{j=1}^n x_{ij} a_j}{\sum_{j=1}^n a_j^2 }\, . </tex>
+
Для матриц данных с очень большим числом строк и/или столбцов точное вычисление сингулярного разложения может быть неприемлемо дорогим. Халко, Мартинссон и Тропп<ref>''Halko N., Martinsson P. G., Tropp J. A.'', Finding structure with randomness: Probabilistic algorithms for constructing approximate matrix decompositions, SIAM Review, 53 (2011) 2, 217—288.</ref> показали, что случайная проекция матрицы данных на низкоразмерное подпространство с последующим точным разложением уже существенно меньшей матрицы даёт приближённое сингулярное разложение (а значит, и приближённые главные компоненты) с контролируемой точностью и на порядки меньшей вычислительной стоимостью, чем прямое вычисление. Этот подход стал стандартом практического вычисления метода главных компонент на данных с миллионами наблюдений и признаков.
-
Аналогично, при фиксированном векторе <tex>b =(b_ i) </tex> определяются значения <tex>a=(a_j) </tex>:
+
-
: <tex>a_j = \frac{\sum_{i=1}^m b_i x_{ij} }{\sum_{i =1}^m b_i ^2 }\, . </tex>
+
-
B качестве начального приближения вектора <tex>a</tex> возьмем случайный вектор единичной длины, вычисляем вектор <tex>b</tex>, далее для этого вектора <tex>b</tex> вычисляем вектор <tex>a</tex> и т. д. Каждый шаг уменьшает значение <tex>F(b, a) </tex>. В качестве критерия остановки используется малость относительного уменьшения значения минимизируемого функционала <tex>F(b, a) </tex> за шаг итерации (<tex>\Delta F / F </tex>) или малость самого значения <tex>F</tex>.
+
=== Онлайн-вычисление: правило Ойя ===
-
В результате для матрицы <tex>X=(x_{ij})</tex> получили наилучшее приближение матрицей <tex>P_1</tex> вида <tex>b^1 \otimes a^1 = (b_i^1 a_j^1)</tex> (здесь верхним индексом обозначен номер итерации). Далее, из матрицы <tex>X</tex> вычитаем полученную матрицу <tex>P_1</tex>, и для полученной матрицы уклонений <tex>X_1=X-P_1</tex> вновь ищем наилучшее приближение <tex>P_2</tex> этого же вида и т. д., пока, например, норма <tex>X_k</tex> не станет достаточно малой. В результате получили итерационную процедуру разложения матрицы <tex>X</tex> в виде суммы матриц ранга 1, то есть <tex>X=P_1+P_2+... +P_q \; (P_l = b^l \otimes a^l) </tex> . Полагаем <tex> \sigma_l = \|a^l\| \|b^l\|</tex> и нормируем векторы <tex> a^l \, , \, b^l</tex>: <tex>a^l:= a^l/ \| a^l\|; \, \, b^l:= b^l/ \| b^l\|.</tex> В результате получена аппроксимация сингулярных чисел <tex> \sigma_l </tex> и сингулярных векторов (правых — <tex> a^l</tex> и левых — <tex>b^l</tex>).
+
Если данные поступают последовательно (потоком) и не помещаются в памяти целиком, применяют онлайн-обновление вида
-
К достоинствам этого алгоритма относится его исключительная простота и возможность почти без изменений перенести его на данные с пробелами<ref>''Россиев А. А.'',: [http://pca.narod.ru/DisRos.htm Итерационное моделирование неполных данных с помощью многообразий малой размерности], Изд-во СО РАН, 2005.</ref>, а также взвешенные данные.
+
: <tex>a_{t+1} = a_t + \eta_t\, y_t\,(x_t - y_t a_t), \qquad y_t = a_t^\top x_t,</tex>
-
Существуют различные модификации базового алгоритма, улучшающие точность и устойчивость. Например, векторы главных компонент <tex>a^l</tex> при разных <tex>l</tex> должны быть ортогональны «по построению», однако при большом числе итерации (большая размерность, много компонент) малые отклонения от ортогональности накапливаются и может потребоваться специальная коррекция <tex>a^l</tex> на каждом шаге, обеспечивающая его ортогональность ранее найденным главным компонентам.
+
предложенное Ойя<ref>''Oja E.'', A simplified neuron model as a principal component analyzer, Journal of Mathematical Biology, 15 (1982) 3, 267—273.</ref> — простое правило хеббовского обучения одного линейного нейрона, сходящееся к первой главной компоненте по мере поступления новых наблюдений <tex>x_t</tex> без необходимости хранить или повторно обрабатывать уже увиденные данные. Это правило стало одним из первых примеров биологически правдоподобного алгоритма обучения представлений и одной из точек соприкосновения метода главных компонент с теорией искусственных нейронных сетей.
-
 
+
-
Для квадратных симметричных положительно определённых матриц описанный алгоритм превращается в метод прямых итераций для поиска собственных векторов (см. статью [[Собственные векторы, значения и пространства]]).
+
== Матрица преобразования к главным компонентам ==
== Матрица преобразования к главным компонентам ==
Строка 176: Строка 162:
: <tex>\delta^2_k=\frac{1}{\operatorname{tr} C}\left(\operatorname{tr} C -\sum_{i=1}^k \lambda_{i}\right).</tex>
: <tex>\delta^2_k=\frac{1}{\operatorname{tr} C}\left(\operatorname{tr} C -\sum_{i=1}^k \lambda_{i}\right).</tex>
-
==Сколько главных компонент нужно оставлять==
+
== Оценка числа главных компонент по правилу сломанной трости ==
 +
 
 +
[[Изображение:5DFig.png|thumb|Пример: оценка числа главных компонент по правилу сломанной трости в размерности 5.]]
 +
Целевой подход к оценке числа главных компонент по необходимой доле объяснённой дисперсии формально применим всегда, однако неявно он предполагает, что нет разделения на "сигнал" и "шум", и любая заранее заданная точность имеет смысл. Поэтому часто более продуктивна иная эвристика, основывающаяся на гипотезе о наличии "сигнала" (сравнительно малая размерность, относительно большая амплитуда) и "шума" (большая размерность, относительно малая амплитуда). С этой точки зрения метод главных компонент работает как фильтр: сигнал содержится, в основном, в проекции на первые главные компоненты, а в остальных компонентах пропорция шума намного выше.
 +
 
 +
Вопрос, как оценить число необходимых главных компонент, если отношение "сигнал/шум" заранее неизвестно? Одним из наиболее популярных эвристических подходов является правило сломанной трости (англ. Broken stick model)<ref>''Cangelosi R. '', ''Goriely A.'', [http://www.biology-direct.com/content/2/1/2 Component retention in principal component analysis with application to cDNA microarray data], Biology Direct 2007, 2:2. [http://pca.narod.ru/ А также на сайте PCA].</ref>. Набор нормированных собственных чисел (<tex>\lambda_i / \tr C</tex>, <tex>i=1,...,n</tex>) сравнивается с распределением длин обломков трости единичной длины, сломанной в <tex>n-1</tex>-й случайно выбранной точке (точки разлома выбираются независимо и равнораспределены по длине трости). Пусть <tex>L_i</tex> (<tex>i=1,...,n</tex>) - длины полученных кусков трости, занумерованные в порядке убывания длины: <tex>L_1 \geq L_2 \geq \ldots \geq L_n</tex>. Нетрудно найти математическое ожидание <tex>L_i</tex>:
 +
:<tex>l_i=\operatorname{E}(L_i)=\frac{1}{n}\sum_{j=i}^{n} \frac{1}{j}.</tex>
 +
По правилу сломанной трости <tex>k</tex>-й собственный вектор (в порядке убывания собственных чисел <tex>\lambda_i</tex>) сохраняется в списке главных компонент, если
 +
:<tex>\frac{\lambda_1}{\tr C}>l_1 \& \frac{\lambda_2}{\tr C}>l_2 \& \ldots \& \frac{\lambda_k}{\tr C}>l_k.</tex>
 +
На Рис. приведён пример для 5-мерного случая:
 +
:<tex>l_1</tex>=(1+1/2+1/3+1/4+1/5)/5; <tex>l_2</tex>=(1/2+1/3+1/4+1/5)/5; <tex>l_3</tex>=(1/3+1/4+1/5)/5; <tex>l_4</tex>=(1/4+1/5)/5; <tex>l_5</tex>=(1/5)/5.
 +
Для примера выбрано
 +
:<tex>\frac{\lambda_1}{\tr C}</tex>=0.5; <tex>\frac{\lambda_2}{\tr C}</tex>=0.3; <tex>\frac{\lambda_3}{\tr C}</tex>=0.1; <tex>\frac{\lambda_4}{\tr C}</tex>=0.06; <tex>\frac{\lambda_5}{\tr C}</tex>=0.04.
 +
По правилу сломанной трости в этом примере следует оставлять 2 главных компоненты:
 +
:<tex>\frac{\lambda_1}{\tr C}>l_1 \;; \; \frac{\lambda_2}{\tr C}>l_2 \;; \;\frac{\lambda_3}{\tr C}<l_3\;.</tex>
== Нормировка ==
== Нормировка ==
Строка 215: Строка 215:
== Устойчивость главных компонент ==
== Устойчивость главных компонент ==
 +
 +
Найденные из выборки главные компоненты — это оценки собственных векторов истинной (генеральной) ковариационной матрицы <tex>\Sigma</tex>, и как всякие статистические оценки, они подвержены случайным колебаниям от выборки к выборке. Вопрос об устойчивости — это вопрос о том, насколько сильно малое возмущение ковариационной матрицы (за счёт конечности выборки, шума измерений или удаления/добавления небольшого числа наблюдений) может изменить найденные направления <tex>a_k</tex>.
 +
 +
'''Чувствительность к близким собственным значениям.''' Если истинная эмпирическая матрица <tex>C</tex> возмущена на <tex>E</tex> (<tex>\hat C = C+E</tex>), то по классической теореме о возмущении собственных векторов<ref>''Davis C., Kahan W. M.'', The rotation of eigenvectors by a perturbation. III, SIAM Journal on Numerical Analysis, 7 (1970) 1, 1—46.</ref> угол между истинным и возмущённым <tex>k</tex>-м собственным вектором ограничен, с точностью до постоянного множителя, отношением нормы возмущения к '''зазору между соседними собственными значениями''':
 +
 +
: <tex>\sin\theta(a_k,\hat a_k) \le \frac{\|E\|}{\min(\lambda_{k-1}-\lambda_k,\ \lambda_k-\lambda_{k+1})}.</tex>
 +
 +
Отсюда — практически важный вывод: направления, отвечающие хорошо разделённым (далеко отстоящим друг от друга) собственным значениям, устойчивы к малым возмущениям данных; направления же, отвечающие близким или совпадающим собственным значениям, определены плохо, и небольшое изменение выборки может произвольно «перемешать» соответствующие компоненты между собой — в согласии с замечанием о неединственности <tex>a_k</tex> при вырожденном спектре в разделе «Диагонализация ковариационной матрицы».
 +
 +
'''Классическая асимптотическая теория.''' Андерсон<ref>''Anderson T. W.'', Asymptotic theory for principal component analysis, The Annals of Mathematical Statistics, 34 (1963) 1, 122—148.</ref> показал, что при фиксированной размерности <tex>n</tex> и растущем объёме выборки <tex>m\to\infty</tex>, если собственные значения генеральной ковариационной матрицы попарно различны, выборочные собственные значения и собственные векторы — состоятельные и асимптотически нормальные оценки истинных, с дисперсией оценки <tex>a_k</tex>, обратно пропорциональной квадрату зазора <tex>(\lambda_k-\lambda_j)^{-2}</tex> до соседних собственных значений — количественное уточнение качественного вывода предыдущего пункта.
 +
 +
'''Неустойчивость в режиме больших размерностей.''' Классическая теория Андерсона предполагает, что размерность <tex>n</tex> фиксирована, а растёт только объём выборки <tex>m</tex>. Для многих задач машинного обучения — с сотнями и тысячами признаков при ограниченном числе наблюдений — более реалистичен режим, когда <tex>n</tex> и <tex>m</tex> растут одновременно, <tex>n/m\to\gamma>0</tex>. В этом режиме поведение метода главных компонент меняется качественно: Джонстон<ref>''Johnstone I. M.'', On the distribution of the largest eigenvalue in principal components analysis, The Annals of Statistics, 29 (2001) 2, 295—327.</ref> показал (методами теории случайных матриц), что даже для данных без какой-либо реальной структуры («шум») наибольшее выборочное собственное значение систематически завышает истинное и флуктуирует по универсальному закону Трейси — Видома, а Джонстон и Лу<ref>''Johnstone I. M., Lu A. Y.'', On Consistency and Sparsity for Principal Components Analysis in High Dimensions, Journal of the American Statistical Association, 104 (2009) 486, 682—693.</ref> установили, что в этом же режиме выборочные главные компоненты могут быть '''несостоятельными''' оценками истинных направлений — то есть не сходиться к ним даже при неограниченном росте <tex>m</tex> и <tex>n</tex> одновременно, — если соответствующее истинное собственное значение недостаточно велико по сравнению с «шумовым фоном» остальных направлений. Это явление — одна из главных причин практического интереса к регуляризованным вариантам метода, в частности к разреженному PCA (см. раздел «Ядерный, разреженный и робастный PCA»), который восстанавливает состоятельность оценки за счёт дополнительного предположения о разреженности истинных нагрузок.
 +
 +
'''Практическая оценка устойчивости.''' На практике устойчивость конкретного разложения (не полагаясь на асимптотические формулы) часто оценивают эмпирически, методом бутстрепа: по многократно передискретизированным версиям выборки заново вычисляют главные компоненты и смотрят на разброс получаемых направлений или объяснённой ими дисперсии; большой разброс свидетельствует о неустойчивости выбранного числа компонент или о близости соответствующих собственных значений.
== Анализ соответствий ==
== Анализ соответствий ==
-
Анализ соответствий (англ. [http://www.statsoft.com/textbook/stcoran.html Correspondence analysis])...
+
'''Анализ соответствий''' (франц. analyse des correspondances, англ. correspondence analysis) — аналог метода главных компонент для категориальных данных, представленных в виде таблицы сопряжённости (contingency table), а не в виде количественных признаков.
 +
 
 +
Пусть <tex>N=[n_{ij}]</tex> — таблица сопряжённости размера <tex>I\times J</tex> (например, число совместных наблюдений категории <tex>i</tex> одной номинальной переменной с категорией <tex>j</tex> другой), <tex>n=\sum_{ij}n_{ij}</tex> — общее число наблюдений, <tex>P=N/n=[p_{ij}]</tex> — матрица соответствия. Обозначим через <tex>r_i=\sum_j p_{ij}</tex> и <tex>c_j=\sum_i p_{ij}</tex> «массы» строк и столбцов (их маргинальные частоты). При независимости строковой и столбцовой переменных ожидаемая частота в ячейке <tex>(i,j)</tex> равнялась бы <tex>r_i c_j</tex>; анализ соответствий ищет главные направления отклонения наблюдаемых частот от этой гипотезы независимости, для чего строится матрица стандартизованных остатков
 +
 
 +
: <tex>s_{ij} = \frac{p_{ij} - r_i c_j}{\sqrt{r_i c_j}},</tex>
 +
 
 +
— в точности те слагаемые, сумма квадратов которых образует статистику <tex>\chi^2</tex> критерия независимости для данной таблицы сопряжённости. Сингулярное разложение этой матрицы, <tex>S=[s_{ij}]=U\Sigma V^\top</tex>, даёт «главные оси» анализа соответствий — координаты строк и столбцов таблицы в общем низкоразмерном пространстве, которые наносятся на одну диаграмму («карту соответствий»): категории строк и столбцов, часто встречающиеся друг с другом, оказываются на карте ближе, а редко встречающиеся вместе — дальше.
 +
 
 +
По математической структуре анализ соответствий эквивалентен методу главных компонент, применённому не к евклидовой, а к <tex>\chi^2</tex>-метрике между профилями строк (или столбцов) таблицы, взвешенными обратно пропорционально соответствующим массам <tex>r_i</tex> (<tex>c_j</tex>), — то есть той же задаче диагонализации, что обсуждалась выше, но для взвешенной и метрически преобразованной версии данных, а не для исходной ковариационной матрицы.
 +
 
 +
Метод восходит к работам по анализу таблиц сопряжённости 1930—1940-х годов; в частности, базовое уравнение метода связывают с работой Р. Фишера 1940 года по дискриминантному анализу категориальных признаков. Как самостоятельный, систематически развитый метод анализ соответствий был предложен и подробно разработан Ж.-П. Бензекри и французской школой анализа данных в 1960—1970-е годы<ref>''Benzécri J.-P. et coll.'', L'Analyse des Données. Tome 2: L'Analyse des Correspondances, Paris, Dunod, 1973 (2-е изд. 1976).</ref>; наиболее полное изложение теории и приложений метода на английском языке дал впоследствии Гринакр<ref>''Greenacre M. J.'', Theory and Applications of Correspondence Analysis, London, Academic Press, 1984. XI+364 pp. ISBN 0-12-299050-1.</ref>.
 +
 
 +
Метод особенно популярен в социальных науках, лингвистике (лексикометрия, анализ частотных таблиц «слово × документ») и маркетинговых исследованиях, где данные по своей природе категориальны, а не количественны, и где совместная визуализация категорий строк и столбцов на общей карте даёт содержательно интерпретируемую картину структуры данных — в этом смысле анализ соответствий для категориальных таблиц играет ту же роль, что метод главных компонент для количественных.
== Специальная терминология ==
== Специальная терминология ==
Строка 236: Строка 262:
Основная формула: <tex>\mathbf{X}=\mathbf{T}\mathbf{P}^T+\mathbf{E}.</tex>
Основная формула: <tex>\mathbf{X}=\mathbf{T}\mathbf{P}^T+\mathbf{E}.</tex>
-
== Пределы применимости и ограничения эффективности метода ==
+
== Вероятностная трактовка и связь с обучением представлений ==
 +
=== Вероятностный PCA ===
-
[[Изображение: BranchingPrincipalComponents.gif|thumb|250px| Построение ветвящихся главных компонент методом топологических грамматик. Крестики — точки данных, красное дерево с желтыми узлами — аппроксимирующий дендрит<ref name="TopGram">Описание метода можно найти в статье: ''Gorban A. N. , Sumner N. R., and Zinovyev A. Y.'', Topological grammars for data approximation, Applied Mathematics Letters, Volume 20, Issue 4 (2007), 382—386; или ''Gorban A. N. , Sumner N. R., and Zinovyev A. Y.'', [http://pca.narod.ru/contentsgkwz.htm Beyond The Concept of Manifolds: Principal Trees, Metro Maps, and Elastic Cubic Complexes] In: Gorban A. N. et al (Eds.), LNCSE 58, Springer, 2007 ISBN 978-3-540-73749-0; [http://arxiv.org/abs/0801.0176 а также в arXiv]</ref>.]]
+
Помимо четырёх классических постановок задачи (см. раздел «Формальная постановка задачи»), у метода главных компонент есть вероятностная переформулировка. '''Вероятностный PCA''' (Probabilistic PCA, PPCA) задаёт порождающую модель
-
Метод главных компонент применим всегда. Распространённое утверждение о том, что он применим только к [[Нормальное распределение|нормально распределённым]] данным (или для распределений, близких к нормальным) неверно: в исходной формулировке К. Пирсона ставится задача об ''аппроксимации'' конечного множества данных и отсутствует даже гипотеза о их статистическом порождении, не говоря уж о распределении.
+
: <tex>x = W z + \mu + \varepsilon, \qquad z\sim\mathcal N(0,I_k),\ \ \varepsilon\sim\mathcal N(0,\sigma^2 I_n),</tex>
-
Однако метод не всегда эффективно снижает размерность при заданных ограничениях на точность <tex> \delta_k</tex>. Прямые и плоскости не всегда обеспечивают хорошую аппроксимацию. Например, данные могут с хорошей точностью следовать какой-нибудь кривой, а эта кривая может быть сложно расположена в пространстве данных. В этом случае метод главных компонент для приемлемой точности потребует нескольких компонент (вместо одной), или вообще не даст снижения размерности при приемлемой точности. Для работы с такими «кривыми» главными компонентами изобретен метод главных многообразий<ref>С этой работы началось изучение главных многообразий. Диссертация ''T. Хасти'': ''Hastie T.'', [http://www.slac.stanford.edu/pubs/slacreports/slac-r-276.html Principal Curves and Surfaces], Ph.D Dissertation, Stanford Linear Accelerator Center, Stanford University, Stanford, California, US, November 1984. [http://pca.narod.ru/HastieThesis.htm А также на сайте PCA]</ref> и различные версии нелинейного метода главных компонент<ref>''Scholz M., Fraunholz M., Selbig J.'', [http://pca.narod.ru/contentsgkwz.htm Nonlinear Principal Component Analysis: Neural Network Models and Applications], In: Gorban A. N. et al (Eds.), LNCSE 58, Springer, 2007 ISBN 978-3-540-73749-0</ref><ref>''Yin H.'' [http://pca.narod.ru/contentsgkwz.htm Learning Nonlinear Principal Manifolds by Self-Organising Maps], In: Gorban A. N. et al (Eds.), LNCSE 58, Springer, 2007 ISBN 978-3-540-73749-0</ref>. Больше неприятностей могут доставить данные сложной топологии. Для их аппроксимации также изобретены различные методы, например [[Самоорганизующаяся карта Кохонена|самоорганизующиеся карты Кохонена]], [[нейронный газ]]<ref>''Martinetz, T.M., Berkovich, S.G., and Schulten K.J.'', Neural-gas network for vector quantization and its application to time-series prediction. IEEE Transactions on Neural Networks, 4 (1993) #4, 558—569.</ref> или топологические грамматики<ref name="TopGram"/>. Если данные статистически порождены с распределением, сильно отличающимся от нормального, то для аппроксимации распределения полезно перейти от главных компонент к ''независимым компонентам''<ref>''Hyvdrinen A, Karhunen J., and Oja E.'', Independent Component Analysis, A Volume in the Wiley Series on Adaptive and Learning Systems for Signal Processing, Communications, and Control. — John Wiley & Sons, Inc., 2001. — XVI+481 pp. ISBN 0-471-40540-X</ref>, которые уже не ортогональны в исходном скалярном произведении. Наконец, для изотропного распределения (даже нормального) вместо эллипсоида рассеяния получаем шар, и уменьшить размерность методами аппроксимации невозможно.
+
где <tex>z</tex> — ненаблюдаемые (скрытые) переменные меньшей размерности <tex>k<n</tex>. Маргинальное распределение наблюдаемых данных при этом гауссово: <tex>x\sim\mathcal N(\mu,\,WW^\top+\sigma^2 I_n)</tex>, а параметры <tex>W</tex> и <tex>\sigma^2</tex> оцениваются максимизацией правдоподобия<ref>''Tipping M. E., Bishop C. M.'', Probabilistic Principal Component Analysis, Journal of the Royal Statistical Society: Series B, 61 (1999) 3, 611—622.</ref>. При <tex>\sigma^2\to0</tex> максимально правдоподобное решение <tex>W</tex> совпадает (с точностью до вращения и масштаба столбцов) с классическими главными компонентами, полученными из диагонализации ковариационной матрицы. Оценка параметров <tex>W,\sigma^2</tex> естественно проводится [[EM-алгоритм]]ом, попеременно уточняющим апостериорное распределение скрытых переменных <tex>z</tex> и параметры модели — то есть частным случаем [[альтернированная минимизация|альтернированной минимизации]]. Вероятностная формулировка даёт, в частности, естественный способ работы с пропущенными значениями в данных и байесовские критерии выбора числа компонент <tex>k</tex>, дополняющие эвристику «сломанной трости» из соответствующего раздела.
-
== Примеры использования ==
+
=== PCA как линейный автокодировщик ===
-
=== Компрессия изображений и видео ===
+
Пусть <tex>x</tex> пропускается через линейный [[автокодировщик]] с <tex>k</tex>-мерным узким слоем: <tex>x \mapsto W_2 W_1 x</tex>, где <tex>W_1\in\mathbb{R}^{k\times n}</tex>, <tex>W_2\in\mathbb{R}^{n\times k}</tex>, а параметры подбираются минимизацией среднеквадратичной ошибки восстановления <tex>\sum_i \|x_i - W_2 W_1 x_i\|^2</tex>. Болди и Хорник<ref>''Baldi P., Hornik K.'', Neural networks and principal component analysis: Learning from examples without local minima, Neural Networks, 2 (1989) 1, 53—58.</ref> строго показали, что при такой (линейной, без нелинейностей активации) архитектуре целевая функция не имеет плохих локальных минимумов, а любое её глобально оптимальное решение натягивает то же самое <tex>k</tex>-мерное подпространство, что и первые <tex>k</tex> главных компонент, хотя сам автокодировщик обучается градиентными методами, а не диагонализацией ковариационной матрицы. Этот результат объясняет, почему PCA часто используют как быстрый и надёжный ориентир при оценке качества более сложных (нелинейных) автокодировщиков и как способ инициализации весов линейных слоёв нейронных сетей.
-
Для уменьшения пространственной избыточности пикселей при кодировании изображений и видео используется линейные преобразования блоков пикселей. Последующие квантования полученных коэффициентов и кодирование без потерь позволяют получить значительные коэффициенты сжатия. Использование преобразования PCA в качестве линейного преобразования является для некоторых типов данных оптимальным с точки зрения размера полученных данных при одинаковом искажении <ref>''Rao, K., Yip P.'' (eds.), The Transform and Data Compression Handbook, CRC Press, Baton Rouge, 2001.</ref>. На данный момент этот метод активно не используется, в основном из-за большой вычислительной сложности. Также сжатия данных можно достичь отбрасывая последние коэффициенты преобразования.
+
== Пределы применимости и ограничения эффективности метода ==
-
=== Подавление шума на изображениях <ref>''Muresan D. D., Parks T. W.'', Adaptive Principal Components and Image Denoising // IEEE International Conference on Image Processing (ICIP), September 2003, 101—104</ref> ===
 
-
Основная суть метода при удалении шума из блока пикселей представить окрестность этого блока в виде набора точек в многомерном пространстве, применить к нему PCA и оставить только первые компоненты преобразования. При этом предполагается, что в первых компонентах содержится основная полезная информация, оставшиеся же компоненты содержат ненужный шум. Применив обратное преобразование после редукции базиса главных компонент, мы получим изображение без шума.
+
[[Изображение: BranchingPrincipalComponents.gif|thumb|250px| Построение ветвящихся главных компонент методом топологических грамматик. Крестики точки данных, красное дерево с желтыми узлами — аппроксимирующий дендрит<ref name="TopGram">Описание метода можно найти в статье: ''Gorban A. N. , Sumner N. R., and Zinovyev A. Y.'', Topological grammars for data approximation, Applied Mathematics Letters, Volume 20, Issue 4 (2007), 382—386; или ''Gorban A. N. , Sumner N. R., and Zinovyev A. Y.'', [http://pca.narod.ru/contentsgkwz.htm Beyond The Concept of Manifolds: Principal Trees, Metro Maps, and Elastic Cubic Complexes] In: Gorban A. N. et al (Eds.), LNCSE 58, Springer, 2007 ISBN 978-3-540-73749-0; [http://arxiv.org/abs/0801.0176 а также в arXiv]</ref>.]]
-
=== Индексация видео ===
+
Метод главных компонент применим всегда. Распространённое утверждение о том, что он применим только к [[Нормальное распределение|нормально распределённым]] данным (или для распределений, близких к нормальным) неверно: в исходной формулировке К. Пирсона ставится задача об ''аппроксимации'' конечного множества данных и отсутствует даже гипотеза о их статистическом порождении, не говоря уж о распределении.
-
Основная идея — представить при помощи PCA каждый кадр видео несколькими значениями, которые в дальнейшем будут использоваться при построении базы данных и запросам к ней. Столь существенная редукция данных позволяет значительно увеличить скорость работы и устойчивость к ряду искажений в видео.
+
Однако метод не всегда эффективно снижает размерность при заданных ограничениях на точность <tex> \delta_k</tex>. Прямые и плоскости не всегда обеспечивают хорошую аппроксимацию. Например, данные могут с хорошей точностью следовать какой-нибудь кривой, а эта кривая может быть сложно расположена в пространстве данных. В этом случае метод главных компонент для приемлемой точности потребует нескольких компонент (вместо одной), или вообще не даст снижения размерности при приемлемой точности. Для работы с такими «кривыми» главными компонентами изобретен метод главных многообразий<ref>С этой работы началось изучение главных многообразий. Диссертация ''T. Хасти'': ''Hastie T.'', [http://www.slac.stanford.edu/pubs/slacreports/slac-r-276.html Principal Curves and Surfaces], Ph.D Dissertation, Stanford Linear Accelerator Center, Stanford University, Stanford, California, US, November 1984. [http://pca.narod.ru/HastieThesis.htm А также на сайте PCA]</ref> и различные версии нелинейного метода главных компонент<ref>''Scholz M., Fraunholz M., Selbig J.'', [http://pca.narod.ru/contentsgkwz.htm Nonlinear Principal Component Analysis: Neural Network Models and Applications], In: Gorban A. N. et al (Eds.), LNCSE 58, Springer, 2007 ISBN 978-3-540-73749-0</ref><ref>''Yin H.'' [http://pca.narod.ru/contentsgkwz.htm Learning Nonlinear Principal Manifolds by Self-Organising Maps], In: Gorban A. N. et al (Eds.), LNCSE 58, Springer, 2007 ISBN 978-3-540-73749-0</ref>. Больше неприятностей могут доставить данные сложной топологии. Для их аппроксимации также изобретены различные методы, например [[Самоорганизующаяся карта Кохонена|самоорганизующиеся карты Кохонена]], [[нейронный газ]]<ref>''Martinetz, T.M., Berkovich, S.G., and Schulten K.J.'', [http://pca.narod.ru/MartinesShultenNeuralGas1993.pdf Neural-gas network for vector quantization and its application to time-series prediction.] IEEE Transactions on Neural Networks, 4 (1993) #4, 558—569. На сайте [http://pca.narod.ru/ PCA]</ref> или топологические грамматики<ref name="TopGram"/>. Если данные статистически порождены с распределением, сильно отличающимся от нормального, то для аппроксимации распределения полезно перейти от главных компонент к ''независимым компонентам''<ref>''Hyvdrinen A, Karhunen J., and Oja E.'', Independent Component Analysis, A Volume in the Wiley Series on Adaptive and Learning Systems for Signal Processing, Communications, and Control. — John Wiley & Sons, Inc., 2001. — XVI+481 pp. ISBN 0-471-40540-X</ref>, которые уже не ортогональны в исходном скалярном произведении. Наконец, для изотропного распределения (даже нормального) вместо эллипсоида рассеяния получаем шар, и уменьшить размерность методами аппроксимации невозможно.
-
=== Биоинформатика ===
+
== Ядерный, разреженный и робастный PCA ==
-
[[Изображение:Streptomyces_coelicolor_sc.gif|thumb|250px|'''Рис. А.''' Проекция ДНК-блуждания на первые 2 главные компоненты для генома [[бактерии]] Streptomyces coelicolor]]
+
=== Ядерный PCA ===
-
[[Изображение:Streptomyces_coelicolor_sc_anim.gif|thumb|250px|'''Рис. Б.''' Проекция ДНК-блуждания на первые 3 главные компоненты для генома [[бактерии]] Streptomyces coelicolor. Вращение применяется для визуализации трехмерной конфигурации]]
+
-
Метод главных компонент интенсивно используется в [[Биоинформатика|биоинформатике]] для сокращения размерности описания, выделения значимой информации, визуализации данных и др. Один из распространнённых вариантов использования — анализ соответствий (англ. Correspondence Analysis)<ref>''Benzécri, J.-P.'', L'Analyse des Données. Volume II. L'Analyse des Correspondences, Dunod, Paris, France, 1973.</ref><ref>''Tekaia F.'', [http://www.pasteur.fr/~tekaia/caongenomes.html Use of Correspondence Analysis in Genome Exploration].</ref>. На иллюстрациях (Рис. А, Б) ''генетический текст'' (см. статью [[Трансляция (биология)]]) представлен как множество точек в 64-мерном пространстве частот триплетов. Каждая точка соответствует фрагменту [[ДНК]] в скользящем окне длиной 300 [[нуклеотид]]ов (ДНК-блуждание). Этот фрагмент разбивается на неперекрывающиеся триплеты, начиная с первой позиции. Относительные частоты этих триплетов в фрагменте и составляют 64-мерный вектор. На Рис. А представлена проекция на первые 2 главные компоненты для генома [[бактерии]] Streptomyces coelicolor. На Рис. Б представлена проекция на первые 3 главные комроненты. Оттенками красного и коричневого выделены фрагменты кодирующих последовательностей в прямой цепи ДНК, а оттенками зеленого выделены фрагменты кодирующих последовательностей в обратной цепи ДНК. Черным помечены фрагменты, принадлежащие некодирующей части. Анализ методом главных компонент большинства известных бактериальных [[геном]]ов представлен на специализированном сайте<ref>''Zinovyev A.'', [http://www.ihes.fr/~zinovyev/7clusters/index.htm Сluster structures in genomic word frequency distributions]; а также в [http://arxiv.org/abs/q-bio/0504013 arXiv: PCA and K-Means decipher genome].</ref>.
+
-
=== Хемометрика ===
+
Заменяя евклидово скалярное произведение <tex>(x_i,x_j)</tex> на значение некоторой ядерной функции <tex>k(x_i,x_j)=(\phi(x_i),\phi(x_j))</tex> для нелинейного отображения <tex>\phi</tex> в пространство более высокой (возможно, бесконечной) размерности, можно вычислить главные компоненты в этом пространстве признаков, не вычисляя <tex>\phi</tex> явно, — эквивалентная задача сводится к собственному разложению центрированной матрицы Грама <tex>K_{ij}=k(x_i,x_j)</tex><ref>''Schölkopf B., Smola A., Müller K.-R.'', Nonlinear component analysis as a kernel eigenvalue problem, Neural Computation, 10 (1998) 5, 1299—1319.</ref>. В отличие от рассмотренных выше главных многообразий и топологических грамматик, ядерный PCA сохраняет линейно-алгебраическую структуру исходной задачи (собственное разложение), перенося нелинейность целиком в выбор ядра.
-
Метод главных компонент — один из основных методов в [[Хемометрика|хемометрике]] (англ. [http://en.wikipedia.org/wiki/Chemometrics Chemometrics]). Позволяет разделить матрицу исходных данных X на две части: «содержательную» и «шум». По наиболее популярному определению <ref>Сайт «[http://www.chemometrics.ru/ Хемометрика]»</ref> «Хемометрика — это химическая дисциплина, применяющая математические, статистические и другие методы, основанные на формальной логике, для построения или отбора оптимальных методов измерения и планов эксперимента, а также для извлечения наиболее важной информации при анализе экспериментальных данных».
+
=== Разреженный PCA ===
-
=== Психодиагностика ===
+
Векторы главных компонент <tex>a_k</tex> в классической постановке, как правило, являются плотными линейными комбинациями всех <tex>n</tex> исходных координат, что затрудняет их содержательную интерпретацию при большом <tex>n</tex>. Цзоу, Хасти и Тибширани<ref>''Zou H., Hastie T., Tibshirani R.'', Sparse principal component analysis, Journal of Computational and Graphical Statistics, 15 (2006) 2, 265—286.</ref> предложили переформулировать задачу как регрессию с эластичной сетью (<tex>\ell_1+\ell_2</tex>-регуляризация), дающую компоненты с малым числом ненулевых координат при сохранении большей части объяснённой дисперсии — такой подход называется '''разреженным PCA''' (Sparse PCA).
-
[[Психодиагностика]] является одной из наиболее разработанных областей приложения метода главных компонент <ref>Дюк В. А., Компьютерная психодиагностика, С-Пб., 1994; отдельные разделы см. на сайте [http://psyfactor.org/lib/dyuk1.htm «Пси-фактор»]</ref>. Стратегия использования основывается на гипотезе об ''автоинформативности'' экспериментальных данных, которая подразумевает, что диагностическую модель можно создать путем аппроксимации геометрической структуры множества объектов в пространстве исходных признаков. Хорошую линейную диагностическую модель удается построить, когда значительная часть исходных признаков внутренне согласованна. Если эта внутренняя согласованность отражает искомый ''психологический конструкт'', то параметры линейной диагностической модели (веса признаков) дает метод главных компонент.
+
=== Робастный PCA ===
-
=== Общественные науки ===
+
Классический метод главных компонент чувствителен к грубым выбросам в данных: как видно из формулы остаточной дисперсии, даже одно сильно искажённое наблюдение способно заметно исказить найденные собственные векторы, поскольку выборочная ковариация — квадратичная функция уклонений. Устойчивость к выбросам через взвешивание попарных расстояний уже обсуждалась выше (см. раздел «Механическая аналогия и метод главных компонент для взвешенных данных»); отдельный, более поздний подход дали Кандес, Ли, Ма и Райт<ref>''Candès E. J., Li X., Ma Y., Wright J.'', Robust principal component analysis?, Journal of the ACM, 58 (2011) 3, статья 11.</ref>, показавшие, что при определённых условиях можно точно восстановить низкоранговую составляющую матрицы данных <tex>X</tex>, даже если неизвестная, но разреженная доля её элементов повреждена сколь угодно сильно, решая выпуклую задачу '''Principal Component Pursuit''':
-
Метод главных компонент — один из основных инструментов [[эконометрика|эконометрики]]. Он применяется для: (1) наглядного представления данных; (2) обеспечения лаконизма моделей, упрощения счета и интерпретации; (3) сжатия объемов хранимой информации. Метод обеспечивает максимальную информативность и минимальное искажение геометрической структуры исходных данных. В [[социология|социологии]] метод небходим для решения первых двух основных задач<ref>''Гуц А. К., Фролова Ю. В.'', Математические методы в социологии, Серия: Синергетика: от прошлого к будущему. — Издательство «УРСС», 2007. — 216 с.</ref>: (1) анализ данных (описание результатов опросов или других исследований, представленных в виде массивов числовых данных); (2) описание социальных явлений (построение моделей явлений, в том числе и математических моделей). В [[Политология|политологии]] метод главных компонент был основным инструментом проекта [http://worldpolities.org/ «Политический Атлас Современности»]<ref>Политический атлас современности: Опыт многомерного статистического анализа политических систем современных государств. — М.: Изд-во «МГИМО-Университет», 2007. — 272 с.</ref> для линейного и [http://pca.narod.ru/AtlasCartography2006.pdf нелинейного анализа рейтингов] 192 стран мира по пяти специально разработанным интегральным индексам (уровня жизни, международного влияния, угроз, государственности и демократии). Для картографии результатов этого анализа разработана [http://atlas.savvy.ru/ специальная ГИС] ([[Геоинформационная система]]), объединяющая географическое пространство с пространством признаков.
+
: <tex>\min_{L,S}\ \|L\|_* + \lambda\|S\|_1</tex> при <tex>X=L+S,</tex>
-
=== Сокращение размерности динамических моделей ===
+
где <tex>\|L\|_*</tex> — ядерная норма (сумма сингулярных чисел <tex>L</tex>), выпуклая релаксация ранга, а <tex>\|S\|_1</tex> поощряет разреженность матрицы выбросов <tex>S</tex>. В отличие от взвешивания попарных расстояний, этот метод не требует заранее знать, какие именно наблюдения — выбросы, и восстанавливает их положение как часть решения задачи оптимизации.
-
''Проклятие размерности'' (англ. [http://en.wikipedia.org/wiki/Curse_of_dimensionality Curse of dimensionality]}}) затрудняет моделирование сложных систем. Сокращение размерности модели — необходимое условие успеха моделирования. Для достижения этой цели создана разветвленная математическая технология. Метод главных компонент также используется в этих задачах (часто под названием ''истинное'' или ''собственное ортогональное разложение'' — англ. proper orthogonal decomposition (POD)). Например, при описании динамики [[турбулентность|турбулентности]] динамические переменные — поле скоростей — принадлежат бесконечномерному пространству (или, если предствлять поле его значениями на достаточно мелкой сетке, конечномерному пространству большой размерности). Можно набрать большую коллекцию мгновенных значений полей и применить к этому множеству многомерных «векторов данных» метод главных компонент. Эти главные компоненты называются также ''эмпирические [[собственные векторы]]''. В некоторых случаях (''структурная турбулентность'') метод дает впечатляющее сокращение размерности<ref>''Berkooz G, Holmes Ph., and. Lumley J. L'', The proper orthogonal decomposition in the analysis of turbulent flows, Annu. Rev. Fluid Mech. 25 (1993), 539—575. Первая публикация для анализа турбулентности — ''Lumley, J. L.'', The structure of inhomogeneous turbulence. In Atmospheric Turbulence and Wave Propagation, ed. A. M. Yaglom, V. I. Tatarski, pp. 166—178. Moscow: Nauka, 1967. (Атмосферная турбулентность и распространение радиоволн. Труды Международного коллоквиума. Москва, 15—22 июня 1965 г. Под ред. А. М. Яглома и В. И. Татарского. М.: Наука, 1967, 374 стр. с илл. и карт. (АН СССР. Междувед. геофиз. ком. Ин-т физики атмосферы). Интересно, что авторы этих работ возводят историю своего подхода к работам Косамби (англ. Kosambi) (1943), Лоэва (англ. Loeve) (1945), Кархунена (англ. Karhunen) (1946), Пугачева (англ. Pougachev) (1953), и Обухова (англ. Obukhov) (1954), потеряв совершенно Пирсона и 40 лет предшествующей истории метода.</ref> Другие области применения этой техники сокращения динамических моделей чрезвычайно разнообразны — от теоретических основ [[Химическая технология|химической технологии]] (англ. chemical engineering science) до [[Океанология|океанологии]] и [[Климатология|климатологии]].
+
== Примеры использования ==
 +
 
 +
{{main|Применение метода главных компонент}}
 +
 
 +
Метод главных компонент — наиболее популярный метод сокращения размерности во многих приложениях, в том числе в следующих областях:
 +
* Визуализация данных;
 +
* Компрессия изображений и видео;
 +
* Подавление шума на изображениях;
 +
* Индексация видео;
 +
* Биоинформатика;
 +
* Хемометрика;
 +
* Психодиагностика;
 +
* Общественные науки (включая политологию);
 +
* Сокращение размерности динамических моделей (в том числе в вычислительной гидродинамике).
 +
 
 +
Два примера подробнее иллюстрируют применение метода в задачах машинного обучения и искусственного интеллекта:
 +
 
 +
* '''Собственные лица (Eigenfaces).''' Тёрк и Пентланд<ref>''Turk M., Pentland A.'', Eigenfaces for recognition, Journal of Cognitive Neuroscience, 3 (1991) 1, 71—86.</ref> представили каждое изображение лица как точку в низкоразмерном подпространстве, натянутом на главные компоненты обучающего набора лиц («собственные лица»), а распознавание свели к сравнению координат в этом подпространстве одна из первых успешных систем автоматического распознавания лиц и по сей день учебный эталон применения PCA в компьютерном зрении.
 +
* '''Матричная факторизация в рекомендательных системах.''' Метод главных компонент — частный случай факторизации матрицы данных с ограничением ортогональности факторов; более общие билинейные модели матричной факторизации, включая факторизацию методом чередующихся наименьших квадратов (ALS) для рекомендательных систем<ref>''Koren Y., Bell R., Volinsky C.'', Matrix factorization techniques for recommender systems, Computer, 42 (2009) 8, 30—37.</ref>, оптимизируются методом [[альтернированная минимизация|альтернированной минимизации]], тогда как сам PCA через сингулярное разложение можно рассматривать как точное — не итеративное — решение соответствующей билинейной задачи при дополнительном ограничении ортогональности факторов.
== Литература ==
== Литература ==
Строка 297: Строка 339:
=== Сборник современных обзоров ===
=== Сборник современных обзоров ===
-
* ''Gorban A. N., Kegl B., Wunsch D., Zinovyev A. Y.'' (Eds.), [http://www.springer.com/west/home/math/cse?SGWID=4-10045-22-173750210-0 Principal Manifolds for Data Visualisation and Dimension Reduction], [http://www.springer.com/west/home/math/cse?SGWID=4-10045-69-173622682-0 Series: Lecture Notes in Computational Science and Engineering] 58, Springer, Berlin — Heidelberg — New York, 2007, XXIV, 340 p. 82 illus. ISBN 978-3-540-73749-0 (а также [http://pca.narod.ru/ онлайн]).
+
* ''Gorban A. N., Kegl B., Wunsch D., Zinovyev A. Y.'' (Eds.), [http://www.springer.com/west/home/math/cse?SGWID=4-10045-22-173750210-0 Principal Manifolds for Data Visualisation and Dimension Reduction], [http://www.springer.com/west/home/math/cse?SGWID=4-10045-69-173622682-0 Series: Lecture Notes in Computational Science and Engineering] 58, Springer, Berlin — Heidelberg — New York, 2008, XXIV, 340 p. 82 illus. ISBN 978-3-540-73749-0 (а также [http://pca.narod.ru/ онлайн]).
 +
 
 +
=== Современные работы по машинному обучению ===
 +
 
 +
* ''Oja E.'', A simplified neuron model as a principal component analyzer, Journal of Mathematical Biology, 15 (1982) 3, 267—273.
 +
* ''Turk M., Pentland A.'', Eigenfaces for recognition, Journal of Cognitive Neuroscience, 3 (1991) 1, 71—86.
 +
* ''Baldi P., Hornik K.'', Neural networks and principal component analysis: Learning from examples without local minima, Neural Networks, 2 (1989) 1, 53—58.
 +
* ''Schölkopf B., Smola A., Müller K.-R.'', Nonlinear component analysis as a kernel eigenvalue problem, Neural Computation, 10 (1998) 5, 1299—1319.
 +
* ''Tipping M. E., Bishop C. M.'', Probabilistic Principal Component Analysis, Journal of the Royal Statistical Society: Series B, 61 (1999) 3, 611—622.
 +
* ''Zou H., Hastie T., Tibshirani R.'', Sparse principal component analysis, Journal of Computational and Graphical Statistics, 15 (2006) 2, 265—286.
 +
* ''Candès E. J., Li X., Ma Y., Wright J.'', Robust principal component analysis?, Journal of the ACM, 58 (2011) 3, статья 11.
 +
* ''Halko N., Martinsson P. G., Tropp J. A.'', Finding structure with randomness: Probabilistic algorithms for constructing approximate matrix decompositions, SIAM Review, 53 (2011) 2, 217—288.
 +
* ''Koren Y., Bell R., Volinsky C.'', Matrix factorization techniques for recommender systems, Computer, 42 (2009) 8, 30—37.
== Ссылки ==
== Ссылки ==
-
* [http://csnet.otago.ac.nz/cosc453/student_tutorials/principal_components.pdf A tutorial on Principal Components Analysis], Lindsay I Smith, 2002
+
* [http://www.snl.salk.edu/~shlens/pub/notes/pca.pdf A tutorial on Principal Components Analysis], Jonathon Shlens, 22, 2009; Version 3.01.
* [http://pca.narod.ru Нелинейный метод главных компонент] (сайт-библиотека)
* [http://pca.narod.ru Нелинейный метод главных компонент] (сайт-библиотека)
 +
* [http://ru.wikipedia.org/wiki/Метод_главных_компонент Метод главных компонент на wikipedia.org]
 +
 +
== Учебное програмное обеспечение ==
 +
 +
Java-апплет «Метод главных компонент и самоорганизующиеся карты» (E.M. Mirkes, [http://www.math.le.ac.uk/people/ag153/homepage/PCA_SOM/PCA_SOM.html Principal Component Analysis and Self-Organizing Maps: applet]. University of Leicester, 2011). Свободно распространяемая программа с моделями метода главных компонент, [[Самоорганизующаяся карта Кохонена|самоорганизуюшихся карт]] (SOM) и растущих самоорганизующихся карт (Growing Self-Organized Maps, GSOM). Дано описание алгоритмов (англ.), приведены тьюториалы и некоторые публикации. Используется для выполнения небольших студенческих исследовательских работ по сравнению различных алгоритмов аппроксимации данных.
== Примечания ==
== Примечания ==
<references/>
<references/>
-
{{Заготовка}}
+
''Незарегистрированные пользователи не видят примечаний и основных литературных ссылок (дефект системы). Зарегистрироваться безопасно и просто.''
 +
 
[[Категория:Метод главных компонент]]
[[Категория:Метод главных компонент]]
[[Категория:Регрессионный анализ]]
[[Категория:Регрессионный анализ]]
Строка 313: Строка 373:
[[Категория:Машинное обучение]]
[[Категория:Машинное обучение]]
[[Категория:Энциклопедия анализа данных]]
[[Категория:Энциклопедия анализа данных]]
 +
[[Категория:Популярные и обзорные статьи]]

Текущая версия

Метод Главных Компонент (англ. Principal Components Analysis, PCA) — один из основных способов уменьшить размерность данных, потеряв наименьшее количество информации. Изобретен К. Пирсоном (англ.Karl Pearson) в 1901 г. Применяется во многих областях, таких как распознавание образов, компьютерное зрение, сжатие данных и т. п. Вычисление главных компонент сводится к вычислению собственных векторов и собственных значений ковариационной матрицы исходных данных или к сингулярному разложению матрицы данных. Иногда метод главных компонент называют преобразованием Кархунена-Лоэва (англ. Karhunen-Loeve)[1] или преобразованием Хотеллинга (англ. Hotelling transform). Другие способы уменьшения размерности данных — это метод независимых компонент, многомерное шкалирование, а также многочисленные нелинейные обобщения: метод главных кривых и многообразий, поиск наилучшей проекции (англ. Projection Pursuit), нейросетевые методы «узкого горла», самоорганизующиеся карты Кохонена и др.

Содержание

Формальная постановка задачи

Задача анализа главных компонент, имеет, как минимум, четыре базовых версии:

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

Первые три версии оперируют конечными множествами данных. Они эквивалентны и не используют никакой гипотезы о статистическом порождении данных. Четвёртая версия оперирует случайными величинами. Конечные множества появляются здесь как выборки из данного распределения, а решение трёх первых задач — как приближение к «истинному» преобразованию Кархунена-Лоэва. При этом возникает дополнительный и не вполне тривиальный вопрос о точности этого приближения.

Аппроксимация данных линейными многообразиями

Иллюстрация к знаменитой работе К. Пирсона (1901): даны точки  на плоскости,  — расстояние от  до прямой . Ищется прямая , минимизирующая сумму
Иллюстрация к знаменитой работе К. Пирсона (1901): даны точки  P_i на плоскости,   p_i — расстояние от   P_i до прямой  AB. Ищется прямая   AB, минимизирующая сумму \sum_i p_i^2

Метод главных компонент начинался с задачи наилучшей аппроксимации конечного множества точек прямыми и плоскостями (К. Пирсон, 1901). Дано конечное множество векторов x_1,x_2,...x_m \in\mathbb{R}^n . Для каждого  k = 0,1,..., n-1 среди всех k-мерных линейных многообразий в \mathbb{R}^n найти такое L_k \subset \mathbb{R}^n , что сумма квадратов уклонений  x_i от  L_k минимальна:

\sum_{i=1}^m \operatorname{dist}^2(x_i, L_k) \to \min,

где \operatorname{dist}(x_i, L_k) — евклидово расстояние от точки до линейного многообразия. Всякое k -мерное линейное многообразие в \mathbb{R}^n  может быть задано как множество линейных комбинаций L_k = \{ a_0 +\beta_1 a_1 +...+ \beta_k a_k | \beta_i \in \mathbb{R} \} , где параметры  \beta_i пробегают вещественную прямую \mathbb{R}, a_0 \in \mathbb{R}^n а \left\{a_1,..., a_k \right\} \subset \mathbb{R}^n — ортонормированный набор векторов

\operatorname{dist}^2(x_i, L_k) = \| x_i - a_0 - \sum_{j=1}^k a_j (a_j, x_i - a_0) \| ^2,

где \|^\ \cdot \ \|^\  евклидова норма,  \left(a_j, x_i\right) — евклидово скалярное произведение, или в координатной форме:

 \operatorname{dist}^2(x_i, L_k) = \sum_{l=1}^n \left(x_{il} - a_{0l}- \sum_{j=1}^k a_{jl} \sum_{q=1}^n a_{jq}(x_{iq} - a_{0q}) \right)^2 .

Решение задачи аппроксимации для   k = 0,1,..., n-1 даётся набором вложенных линейных многообразий L_0 \subset L_1 \subset ... L_{n-1} , L_k = \{ a_0 +\beta_1 a_1 +...+ \beta_k a_k | \beta_i \in \mathbb{R} \} . Эти линейные многообразия определяются ортонормированным набором векторов \left\{a_1,..., a_{n-1} \right\} (векторами главных компонент) и вектором   a_0 . Вектор  a_0 ищется, как решение задачи минимизации для  L_0 :

 a_0 = \underset{a_0\in\mathbb{R}^n}{\operatorname{argmin}} \left(\sum_{i=1}^m \operatorname{dist}^2(x_i, L_0)\right),

то есть

a_0 = \underset{a_0\in\mathbb{R}^n}{\operatorname{argmin}} \left (\sum_{i=1}^m \| x_i - a_0\| ^2\right) .

Это — выборочное среднее: a_0 = \frac{1}{m} \sum_{i=1}^m x_i = \overline{X}. Фреше в 1948 году обратил внимание, что вариационное определение среднего (как точки, минимизирующей сумму квадратов расстояний до точек данных) очень удобно для построения статистики в произвольном метрическом пространстве, и построил обобщение классической статистики для общих пространств (обобщённый метод наименьших квадратов).

Векторы главных компонент могут быть найдены как решения однотипных задач оптимизации:

1) централизуем данные (вычитаем среднее): x_i:= x_i - \overline{X_i}. Теперь \sum_{i=1}^m x_i =0 ;
2) находим первую главную компоненту как решение задачи;
a_1 = \underset{\| a_1 \| =1}{\operatorname{argmin}} \left( \sum_{i=1}^m \| x_i - a_1 (a_1,x_i)\| ^2\right).
Если решение не единственно, то выбираем одно из них.
3) Вычитаем из данных проекцию на первую главную компоненту:
x_i:= x_i - a_1 \left(a_1,x_i\right) ;
4) находим вторую главную компоненту как решение задачи
a_2 = \underset{\| a_2 \| =1}{\operatorname{argmin}} \left( \sum_{i=1}^m \| x_i - a_2 (a_2,x_i)\| ^2\right) .
Если решение не единственно, то выбираем одно из них.
2k-1) Вычитаем проекцию на (k-1)-ю главную компоненту (напомним, что проекции на предшествующие (k-2) главные компоненты уже вычтены):
x_i:= x_i - a_{k-1} \left(a_{k-1},x_i\right) ;
2k) находим k-ю главную компоненту как решение задачи:
a_k = \underset{\| a_k \| =1}{\operatorname{argmin}} \left( \sum_{i=1}^m \| x_i - a_k (a_k,x_i)\| ^2\right) .
Если решение не единственно, то выбираем одно из них.

На каждом подготовительном шаге    (2k-1) вычитаем проекцию на предшествующую главную компоненту. Найденные векторы \left\{a_1,..., a_{ n -1} \right\} ортонормированы просто в результате решения описанной задачи оптимизации, однако чтобы не дать ошибкам вычисления нарушить взаимную ортогональность векторов главных компонент, можно включать a_k \bot \{a_1,..., a_{k -1} \} в условия задачи оптимизации.

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

Поиск ортогональных проекций с наибольшим рассеянием

Первая главная компонента максимизирует выборочную дисперсию проекции данных
Первая главная компонента максимизирует выборочную дисперсию проекции данных


Пусть нам дан центрированный набор векторов данных x_i\in\mathbb{R}^n \; (i=1,...,m) (среднее арифметическое значение  x_i равно нулю). Задача — найти такое ортогональное преобразование в новую систему координат, для которого были бы верны следующие условия:

  • Выборочная дисперсия данных вдоль первой координаты максимальна (эту координату называют первой главной компонентой);
  • Выборочная дисперсия данных вдоль второй координаты максимальна при условии ортогональности первой координате (вторая главная компонента);
  • Выборочная дисперсия данных вдоль значений k-ой координаты максимальна при условии ортогональности первым k-1 координатам;

Выборочная дисперсия данных вдоль направления, заданного нормированным вектором  a_k, это

S^2_m \left[ (X, a_k) \right ] = \frac{1}{m} \sum\limits_{i=1}^m \left(\sum\limits_{j=1}^n x_{ij}a_{kj} \right)^2

(поскольку данные центрированы, выборочная дисперсия здесь совпадает со средним квадратом уклонения от нуля).

Формально, если A=\left \{a_1,...,a_n \right \}^T\in\mathbb{R}^{n \times n}, a_k\in\mathbb{R}^n — искомое преобразование, то для векторов a_k должны выполняться следующие условия:

  • a_1 = \underset{\| a_1 \| =1}{\operatorname{argmax}}\,S^2_m \left [(X, a_1) \right ];
Если решение не единственно, то выбираем одно из них.
  • Вычитаем из данных проекцию на первую главную компоненту:
x_i:= x_i-a_1 \left(a_1,x_i\right) ; в результате x_i \bot a_1;
  • находим вторую главную компоненту как решение задачи
a_2 = \underset{\| a_2 \| =1}{\operatorname{argmax}}\,S^2_m \left [ (X, a_2) \right ];
Если решение не единственно, то выбираем одно из них.
  • Вычитаем проекцию на (k-1)-ю главную компоненту (напомним, что проекции на предшествующие k-2 главные компоненты уже вычтены):
x_i:= x_i-a_{k-1} \left(a_{k-1},x_i\right) ; в результате x_i \bot a_l, (l = 1,\dots  k-1);
  • находим k-ю главную компоненту как решение задачи
a_n = \underset{\| a_k\| = 1}{\operatorname{argmax}}\,S^2_m \left [ (X, a_k) \right ];
Если решение не единственно, то выбираем одно из них.
  • ...

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

Решение задачи о наилучшей аппроксимации даёт то же множество решений \left\{a_i\right\}, что и поиск ортогональных проекций с наибольшим рассеянием, по очень простой причине: \| x_i-a_k (a_k, x_i)\|^2 \stackrel{\|a_k\|=1}{=} \| x_i\|^2-(a_k, x_i)^2, и первое слагаемое не зависит от  a_k. Только одно дополнение к задаче об аппроксимации: появляется последняя главная компонента  a_n.

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

Ещё одна эквивалентная формулировка следует из очевидного тождества, верного для любых m векторов  x_i:

\frac{1}{m(m-1)}\sum_{i,j=1}^m (x_i-x_j)^2 =\frac{2m^2}{m(m-1)}\left[\frac{1}{m}\sum_{i=1}^m x_i^2 - \left(\frac{1}{m}\sum_{i}^m x_i \right)^2\right].

В левой части этого тождества стоит среднеквадратичное расстояние между точками, а в квадратных скобках справа — выборочная дисперсия. Таким образом, в методе главных компонент ищутся подпространства, в проекции на которые среднеквадратичное расстояние между точками максимально (или, что то же самое, его искажение в результате проекции минимально)[1]. Такая переформулировка позволяет строить обобщения с взвешиванием различных парных расстояний (а не только точек).

Аннулирование корреляций между координатами

Для заданной  n-мерной случайной величины  X найти такой ортонормированный базис, \left\{a_1,..., a_n \right\}, в котором коэффициент ковариации между различными координатами равен нулю. После преобразования к этому базису

\operatorname{cov}(X_i,X_j)=0 для i \neq j .

Здесь  \operatorname{cov}(X_i,X_j)= \operatorname{E}[(X_i-\overline{X_i})(X_j-\overline{X_j})] — коэффициент ковариации.

Диагонализация ковариационной матрицы

Все задачи о главных компонентах приводят к задаче диагонализации ковариационной матрицы или выборочной ковариационной матрицы. Эмпирическая или выборочная ковариационная матрица, это

C = [c_{ij}],\ c_{ij} = \frac{1}{m-1} \sum_{l=1}^m (x_{li}-\overline{X_{i}})(x_{lj}-\overline{X_{j}}).

Ковариационная матрица многомерной случайной величины  X, это

\Sigma = [\sigma_{ij}],\ \sigma_{ij} = \operatorname{cov}(X_i,X_j)=E[(X_i-\overline{X_i})(X_j-\overline{X_j})].

Векторы главных компонент для задач о наилучшей аппроксимации и о поиске ортогональных проекций с наибольшим рассеянием — это ортонормированный набор  \left\{a_1,..., a_n \right\} собственных векторов эмпирической ковариационной матрицы C, расположенных в порядке убывания собственных значений \lambda: \lambda_1 \ge \lambda_2 \ge ... \ge \lambda_n \ge 0. Эти векторы служат оценкой для собственных векторов ковариационной матрицы \operatorname{cov}(X_i,X_j) . В базисе из собственных векторов ковариационной матрицы она, естественно, диагональна, и в этом базисе коэффициент ковариации между различными координатами равен нулю.

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

Сингулярное разложение матрицы данных

Математическое содержание метода главных компонент — это спектральное разложение ковариационной матрицы  C , то есть представление пространства данных в виде суммы взаимно ортогональных собственных подпространств  C , а самой матрицы  C — в виде линейной комбинации ортогональных проекторов на эти подпространства с коэффициентами  \lambda_i . Если \operatorname{X}=\left\{x_1,..., x_m \right\}^T — матрица, составленная из векторов-строк центрированных данных, то  C = \frac{1}{m-1}\operatorname{X}^T\operatorname{X} и задача о спектральном разложении ковариационной матрицы  C превращается в задачу о сингулярном разложении (англ. Singular value decomposition) матрицы данных \operatorname{X}.

Хотя формально задачи сингулярного разложения матрицы данных и спектрального разложения ковариационной матрицы совпадают, алгоритмы вычисления сингулярного разложения напрямую, без вычисления ковариационной матрицы и её спектра, более эффективны и устойчивы [1].

Теория сингулярного разложения была создана Дж. Дж. Сильвестром (англ. J. J. Sylvester) в 1889 г. и изложена во всех подробных руководствах по теории матриц [1].

Вычисление для больших и потоковых данных

Рандомизированные алгоритмы

Для матриц данных с очень большим числом строк и/или столбцов точное вычисление сингулярного разложения может быть неприемлемо дорогим. Халко, Мартинссон и Тропп[1] показали, что случайная проекция матрицы данных на низкоразмерное подпространство с последующим точным разложением уже существенно меньшей матрицы даёт приближённое сингулярное разложение (а значит, и приближённые главные компоненты) с контролируемой точностью и на порядки меньшей вычислительной стоимостью, чем прямое вычисление. Этот подход стал стандартом практического вычисления метода главных компонент на данных с миллионами наблюдений и признаков.

Онлайн-вычисление: правило Ойя

Если данные поступают последовательно (потоком) и не помещаются в памяти целиком, применяют онлайн-обновление вида

a_{t+1} = a_t + \eta_t\, y_t\,(x_t - y_t a_t), \qquad y_t = a_t^\top x_t,

предложенное Ойя[1] — простое правило хеббовского обучения одного линейного нейрона, сходящееся к первой главной компоненте по мере поступления новых наблюдений x_t без необходимости хранить или повторно обрабатывать уже увиденные данные. Это правило стало одним из первых примеров биологически правдоподобного алгоритма обучения представлений и одной из точек соприкосновения метода главных компонент с теорией искусственных нейронных сетей.

Матрица преобразования к главным компонентам

Матрица A преобразования данных к главным компонентам строится из векторов главных компонент: A=\left \{a_1,...,a_n \right \}^T. Здесь  a_i — ортонормированные векторы-столбцы главных компонент, расположенные в порядке убывания собственных значений, верхний индекс  T означает транспонирование. Матрица A является ортогональной: A A^T=1.

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

Остаточная дисперсия

Пусть данные центрированы, \overline{ X}=0. При замене векторов данных  x_i на их проекцию на первые  k главных компонент x_i \mapsto \sum_{j=1}^k a_j (a_j, x_i) вносится средний квадрат ошибки в расчете на один вектор данных:

\frac{1}{m} \sum_{i=1}^m \left\| x_i - \sum_{j=1}^k a_j (a_j, x_i) \right \| ^2=\sum_{l=k+1}^n \lambda_l,

где \lambda_1 \ge \lambda_2 \ge ... \ge \lambda_n \ge 0 собственные значения эмпирической ковариационной матрицы C, расположенные в порядке убывания, с учетом кратности.

Эта величина называется остаточной дисперсией. Величина

\frac{1}{m} \sum_{i=1}^m \left\| \sum_{j=1}^k a_j (a_j, x_i) \right\| ^2=\frac{1}{m} \sum_{i=1}^m  \sum_{j=1}^k (a_j, x_i)^2=\sum_{l=1}^k \lambda_l

называется объяснённой дисперсией. Их сумма равна выборочной дисперсии. Соответствующий квадрат относительной ошибки — это отношение остаточной дисперсии к выборочной дисперсии (то есть доля необъяснённой дисперсии):

\delta^2_k=\frac{\lambda_{k+1}+\lambda_{k+2}+...+\lambda_{n}}{\lambda_{1}+\lambda_{2}+...+\lambda_{n}}.

По относительной ошибке  \delta_k оценивается применимость метода главных компонент с проецированием на первые  k компонент.

Замечание: в большинстве вычислительных алгоритмов собственные числа  \lambda_i с соответствуюшими собственными векторами — главными компонентами  a_i вычисляются в порядке «от больших  \lambda_i — к меньшим». Для вычисления  \delta_k достаточно вычислить первые  k собственных чисел и след эмпирической ковариационной матрицы C, \operatorname{tr} C (сумму диагональных элементов C, то есть дисперсий по осям). Тогда

\delta^2_k=\frac{1}{\operatorname{tr} C}\left(\operatorname{tr} C -\sum_{i=1}^k \lambda_{i}\right).

Оценка числа главных компонент по правилу сломанной трости

Пример: оценка числа главных компонент по правилу сломанной трости в размерности 5.
Пример: оценка числа главных компонент по правилу сломанной трости в размерности 5.

Целевой подход к оценке числа главных компонент по необходимой доле объяснённой дисперсии формально применим всегда, однако неявно он предполагает, что нет разделения на "сигнал" и "шум", и любая заранее заданная точность имеет смысл. Поэтому часто более продуктивна иная эвристика, основывающаяся на гипотезе о наличии "сигнала" (сравнительно малая размерность, относительно большая амплитуда) и "шума" (большая размерность, относительно малая амплитуда). С этой точки зрения метод главных компонент работает как фильтр: сигнал содержится, в основном, в проекции на первые главные компоненты, а в остальных компонентах пропорция шума намного выше.

Вопрос, как оценить число необходимых главных компонент, если отношение "сигнал/шум" заранее неизвестно? Одним из наиболее популярных эвристических подходов является правило сломанной трости (англ. Broken stick model)[1]. Набор нормированных собственных чисел (\lambda_i / \tr C, i=1,...,n) сравнивается с распределением длин обломков трости единичной длины, сломанной в n-1-й случайно выбранной точке (точки разлома выбираются независимо и равнораспределены по длине трости). Пусть L_i (i=1,...,n) - длины полученных кусков трости, занумерованные в порядке убывания длины: L_1 \geq L_2 \geq \ldots \geq L_n. Нетрудно найти математическое ожидание L_i:

l_i=\operatorname{E}(L_i)=\frac{1}{n}\sum_{j=i}^{n} \frac{1}{j}.

По правилу сломанной трости k-й собственный вектор (в порядке убывания собственных чисел \lambda_i) сохраняется в списке главных компонент, если

\frac{\lambda_1}{\tr C}>l_1 \& \frac{\lambda_2}{\tr C}>l_2 \& \ldots \& \frac{\lambda_k}{\tr C}>l_k.

На Рис. приведён пример для 5-мерного случая:

l_1=(1+1/2+1/3+1/4+1/5)/5; l_2=(1/2+1/3+1/4+1/5)/5; l_3=(1/3+1/4+1/5)/5; l_4=(1/4+1/5)/5; l_5=(1/5)/5.

Для примера выбрано

\frac{\lambda_1}{\tr C}=0.5; \frac{\lambda_2}{\tr C}=0.3; \frac{\lambda_3}{\tr C}=0.1; \frac{\lambda_4}{\tr C}=0.06; \frac{\lambda_5}{\tr C}=0.04.

По правилу сломанной трости в этом примере следует оставлять 2 главных компоненты:

\frac{\lambda_1}{\tr C}>l_1 \;; \; \frac{\lambda_2}{\tr C}>l_2 \;; \;\frac{\lambda_3}{\tr C}<l_3\;.

Нормировка

Нормировка после приведения к главным компонентам

После проецирования на первые  k главных компонент с \lambda_1 \ge \lambda_2 \ge ... \ge \lambda_k > 0 удобно произвести нормировку на единичную (выборочную) дисперсию по осям. Дисперсия вдоль  iй главной компоненты равна \lambda_i > 0 \; (1 \le i \le k), поэтому для нормировки надо разделить соответствующую координату на  \sqrt{ \lambda_i}. Это преобразование не является ортогональным и не сохраняет скалярного произведения. Ковариационная матрица проекции данных после нормировки становится единичной, проекции на любые два ортогональных направления становятся независимыми величинами, а любой ортонормированный базис становится базисом главных компонент (напомним, что нормировка меняет отношение ортогональности векторов). Отображение из пространства исходных данных на первые  k главных компонент вместе с нормировкой задается матрицей

K=\left \{\frac{a_1}{\sqrt{ \lambda_1}},\frac{a_2}{\sqrt{ \lambda_2}},...,\frac{a_k}{\sqrt{ \lambda_k}} \right \}^T.

Именно это преобразование чаще всего называется преобразованием Кархунена-Лоэва. Здесь  a_i — векторы-столбцы, а верхний индекс  T означает транспонирование.

Нормировка до вычисления главных компонент

Предупреждение: не следует путать нормировку, проводимую после преобразования к главным компонентам, с нормировкой и «обезразмериванием» при предобработке данных, проводимой до вычисления главных компонент. Предварительная нормировка нужна для обоснованного выбора метрики, в которой будет вычисляться наилучшая аппроксимация денных, или будут искаться направления наибольшего разброса (что эквивалентно). Например, если данные представляют собой трёхмерные векторы из «метров, литров и килограмм», то при использовании стандартного евклидового расстояния разница в 1 метр по первой координате будет вносить тот же вклад, что разница в 1 литр по второй, или в 1 кг по третьей. Обычно системы единиц, в которых представлены исходные данные, недостаточно точно отображают наши представления о естественных масштабах по осям, и проводится «обезразмеривание»: каждая координата делится на некоторый масштаб, определяемый данными, целями их обработки и процессами измерения и сбора данных.

Есть три cущественно различных стандартных подхода к такой нормировке: на единичную дисперсию по осям (масштабы по осям равны средним квадратичным уклонениям — после этого преобразования ковариационная матрица совпадает с матрицей коэффициентов корреляции), на равную точность измерения (масштаб по оси пропорционален точности измерения данной величины) и на равные требования в задаче (масштаб по оси определяется требуемой точностью прогноза данной величины или допустимым её искажением — уровнем толерантности). На выбор предобработки влияют содержательная постановка задачи, а также условия сбора данных (например, если коллекция данных принципиально не завершена и данные будут ещё поступать, то нерационально выбирать нормировку строго на единичную дисперсию, даже если это соответствует смыслу задачи, поскольку это предполагает перенормировку всех данных после получения новой порции; разумнее выбрать некоторый масштаб, грубо оценивающий стандартное отклонение, и далее его не менять).

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

Механическая аналогия и метод главных компонент для взвешенных данных

Если сопоставить каждому вектору данных единичную массу, то эмпирическая ковариационная матрица  C совпадёт с тензором инерции этой системы точечных масс (делённым на полную массу  m), а задача о главных компонентых — с задачей приведения тензора инерции к главным осям. Можно использовать дополнительную свободу в выборе значений масс для учета важности точек данных или надежности их значений (важным данным или данным из более надежных источников приписываются бо́льшие массы). Если вектору данных  x_l придаётся масса  w_l, то вместо эмпирической ковариационной матрицы  C получим

C^w = [c^w_{ij}],\ c^w_{ij} = \frac{1}{\sum_{l} w_l} \sum_{l=1}^m w_l(x_{li}-\overline{X_{i}})(x_{lj}-\overline{X_{j}}).

Все дальнейшие операции по приведению к главным компонентам производятся так же, как и в основной версии метода: ищем ортонормированный собственный базис  C^w, упорядочиваем его по убыванию собственных значений, оцениваем средневзвешенную ошибку аппроксимации данных первыми  k компонентами (по суммам собственных чисел  C^w), нормируем и т. п.

Более общий способ взвешивания даёт максимизация взвешенной суммы попарных расстояний[1] между проекциями. Для каждых двух точек данных, x_l , \ x_q вводится вес d_{lq}; d_{lq}=d_{ql} и d_{l}=\sum_{q=1}^m d_{lq}. Вместо эмпирической ковариационной матрицы  C используется

C^d = [c^d_{ij}],\ c^d_{ij} =\sum_{l=1}^m d_l (x_{li}-\overline{X_{i}})(x_{lj}-\overline{X_{j}})  -\sum_{l \neq q, \ l,q=1}^m d_{lq}(x_{li} - \overline{X_{i}})(x_{qj}- \overline{X_{j}}).

При d_{lq}>0 симметричная матрица C^d положительно определена, поскольку положительна квадратичная форма:

\sum_{ij} c^d_{ij}a_i a_j = \frac{1}{2}\sum_{lq}d_{lq}\left(\sum_ia_i(x_{li}-x_{qi})\right)^2.

Далее ищем ортонормированный собственный базис  C^d, упорядочиваем его по убыванию собственных значений, оцениваем средневзвешенную ошибку аппроксимации данных первыми  k компонентами и т. д. — в точности так же, как и в основном алгоритме.

Этот способ применяется при наличии классов: для x_l , \ x_q из разных классов вес d_{lq} вес выбирается бо́льшим, чем для точек одного класса. В результате, в проекции на взвешенные главные компоненты различные классы «раздвигаются» на большее расстояние.

Другое применение — снижение влияния больших уклонений (оутлайеров, англ.Outlier), которые могут искажать картину из-за использования среднеквадратичного расстояния: если выбрать d_{lq}=1/ \| x_l -x_q \|, то влияние больших уклонений будет уменьшено. Таким образом, описанная модификация метода главных компонент является более робастной, чем классическая.

Устойчивость главных компонент

Найденные из выборки главные компоненты — это оценки собственных векторов истинной (генеральной) ковариационной матрицы \Sigma, и как всякие статистические оценки, они подвержены случайным колебаниям от выборки к выборке. Вопрос об устойчивости — это вопрос о том, насколько сильно малое возмущение ковариационной матрицы (за счёт конечности выборки, шума измерений или удаления/добавления небольшого числа наблюдений) может изменить найденные направления a_k.

Чувствительность к близким собственным значениям. Если истинная эмпирическая матрица C возмущена на E (\hat C = C+E), то по классической теореме о возмущении собственных векторов[1] угол между истинным и возмущённым k-м собственным вектором ограничен, с точностью до постоянного множителя, отношением нормы возмущения к зазору между соседними собственными значениями:

\sin\theta(a_k,\hat a_k) \le \frac{\|E\|}{\min(\lambda_{k-1}-\lambda_k,\ \lambda_k-\lambda_{k+1})}.

Отсюда — практически важный вывод: направления, отвечающие хорошо разделённым (далеко отстоящим друг от друга) собственным значениям, устойчивы к малым возмущениям данных; направления же, отвечающие близким или совпадающим собственным значениям, определены плохо, и небольшое изменение выборки может произвольно «перемешать» соответствующие компоненты между собой — в согласии с замечанием о неединственности a_k при вырожденном спектре в разделе «Диагонализация ковариационной матрицы».

Классическая асимптотическая теория. Андерсон[1] показал, что при фиксированной размерности n и растущем объёме выборки m\to\infty, если собственные значения генеральной ковариационной матрицы попарно различны, выборочные собственные значения и собственные векторы — состоятельные и асимптотически нормальные оценки истинных, с дисперсией оценки a_k, обратно пропорциональной квадрату зазора (\lambda_k-\lambda_j)^{-2} до соседних собственных значений — количественное уточнение качественного вывода предыдущего пункта.

Неустойчивость в режиме больших размерностей. Классическая теория Андерсона предполагает, что размерность n фиксирована, а растёт только объём выборки m. Для многих задач машинного обучения — с сотнями и тысячами признаков при ограниченном числе наблюдений — более реалистичен режим, когда n и m растут одновременно, n/m\to\gamma>0. В этом режиме поведение метода главных компонент меняется качественно: Джонстон[1] показал (методами теории случайных матриц), что даже для данных без какой-либо реальной структуры («шум») наибольшее выборочное собственное значение систематически завышает истинное и флуктуирует по универсальному закону Трейси — Видома, а Джонстон и Лу[1] установили, что в этом же режиме выборочные главные компоненты могут быть несостоятельными оценками истинных направлений — то есть не сходиться к ним даже при неограниченном росте m и n одновременно, — если соответствующее истинное собственное значение недостаточно велико по сравнению с «шумовым фоном» остальных направлений. Это явление — одна из главных причин практического интереса к регуляризованным вариантам метода, в частности к разреженному PCA (см. раздел «Ядерный, разреженный и робастный PCA»), который восстанавливает состоятельность оценки за счёт дополнительного предположения о разреженности истинных нагрузок.

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

Анализ соответствий

Анализ соответствий (франц. analyse des correspondances, англ. correspondence analysis) — аналог метода главных компонент для категориальных данных, представленных в виде таблицы сопряжённости (contingency table), а не в виде количественных признаков.

Пусть N=[n_{ij}] — таблица сопряжённости размера I\times J (например, число совместных наблюдений категории i одной номинальной переменной с категорией j другой), n=\sum_{ij}n_{ij} — общее число наблюдений, P=N/n=[p_{ij}] — матрица соответствия. Обозначим через r_i=\sum_j p_{ij} и c_j=\sum_i p_{ij} «массы» строк и столбцов (их маргинальные частоты). При независимости строковой и столбцовой переменных ожидаемая частота в ячейке (i,j) равнялась бы r_i c_j; анализ соответствий ищет главные направления отклонения наблюдаемых частот от этой гипотезы независимости, для чего строится матрица стандартизованных остатков

s_{ij} = \frac{p_{ij} - r_i c_j}{\sqrt{r_i c_j}},

— в точности те слагаемые, сумма квадратов которых образует статистику \chi^2 критерия независимости для данной таблицы сопряжённости. Сингулярное разложение этой матрицы, S=[s_{ij}]=U\Sigma V^\top, даёт «главные оси» анализа соответствий — координаты строк и столбцов таблицы в общем низкоразмерном пространстве, которые наносятся на одну диаграмму («карту соответствий»): категории строк и столбцов, часто встречающиеся друг с другом, оказываются на карте ближе, а редко встречающиеся вместе — дальше.

По математической структуре анализ соответствий эквивалентен методу главных компонент, применённому не к евклидовой, а к \chi^2-метрике между профилями строк (или столбцов) таблицы, взвешенными обратно пропорционально соответствующим массам r_i (c_j), — то есть той же задаче диагонализации, что обсуждалась выше, но для взвешенной и метрически преобразованной версии данных, а не для исходной ковариационной матрицы.

Метод восходит к работам по анализу таблиц сопряжённости 1930—1940-х годов; в частности, базовое уравнение метода связывают с работой Р. Фишера 1940 года по дискриминантному анализу категориальных признаков. Как самостоятельный, систематически развитый метод анализ соответствий был предложен и подробно разработан Ж.-П. Бензекри и французской школой анализа данных в 1960—1970-е годы[1]; наиболее полное изложение теории и приложений метода на английском языке дал впоследствии Гринакр[1].

Метод особенно популярен в социальных науках, лингвистике (лексикометрия, анализ частотных таблиц «слово × документ») и маркетинговых исследованиях, где данные по своей природе категориальны, а не количественны, и где совместная визуализация категорий строк и столбцов на общей карте даёт содержательно интерпретируемую картину структуры данных — в этом смысле анализ соответствий для категориальных таблиц играет ту же роль, что метод главных компонент для количественных.

Специальная терминология

В статистике при использовании метода главных компонент используют несколько специальных терминов.

Матрица данных \mathbf{X}=\{x_1,... x_m\}^T; каждая строка — вектор предобработанных данных (центрированных и правильно нормированных), число строк — m (количество векторов данных), число столбцов — n (размерность пространства данных);

Матрица нагрузок (Loadings) \mathbf{P}=\{a_1,... a_k\}; каждый столбец — вектор главных компонент, число строк — n (размерность пространства данных), число столбцов — k (количество векторов главных компонент, выбранных для проецирования);

Матрица счетов (Scores) \mathbf{T}=[t_{ij}]; \; t_{ij}=(x_i,a_j); каждая строка — проекция вектора данных на k главных компонент; число строк — m (количество векторов данных), число столбцов — k (количество векторов главных компонент, выбранных для проецирования);

Матрица Z-счетов (Z-scores) \mathbf{Z}=[z_{ij}]; \; z_{ij}=\frac{(x_i,a_j)}{\sqrt{ \lambda_j}}; каждая строка — проекция вектора данных на k главных компонент, нормированная на единичную выборочную дисперсию; число строк — m (количество векторов данных), число столбцов — k (количество векторов главных компонент, выбранных для проецирования);

Матрица ошибок (или остатков) (Errors or residuals) \mathbf{E}=\mathbf{X}-\mathbf{T}\mathbf{P}^T.

Основная формула: \mathbf{X}=\mathbf{T}\mathbf{P}^T+\mathbf{E}.

Вероятностная трактовка и связь с обучением представлений

Вероятностный PCA

Помимо четырёх классических постановок задачи (см. раздел «Формальная постановка задачи»), у метода главных компонент есть вероятностная переформулировка. Вероятностный PCA (Probabilistic PCA, PPCA) задаёт порождающую модель

x = W z + \mu + \varepsilon, \qquad z\sim\mathcal N(0,I_k),\ \ \varepsilon\sim\mathcal N(0,\sigma^2 I_n),

где z — ненаблюдаемые (скрытые) переменные меньшей размерности k<n. Маргинальное распределение наблюдаемых данных при этом гауссово: x\sim\mathcal N(\mu,\,WW^\top+\sigma^2 I_n), а параметры W и \sigma^2 оцениваются максимизацией правдоподобия[1]. При \sigma^2\to0 максимально правдоподобное решение W совпадает (с точностью до вращения и масштаба столбцов) с классическими главными компонентами, полученными из диагонализации ковариационной матрицы. Оценка параметров W,\sigma^2 естественно проводится EM-алгоритмом, попеременно уточняющим апостериорное распределение скрытых переменных z и параметры модели — то есть частным случаем альтернированной минимизации. Вероятностная формулировка даёт, в частности, естественный способ работы с пропущенными значениями в данных и байесовские критерии выбора числа компонент k, дополняющие эвристику «сломанной трости» из соответствующего раздела.

PCA как линейный автокодировщик

Пусть x пропускается через линейный автокодировщик с k-мерным узким слоем: x \mapsto W_2 W_1 x, где W_1\in\mathbb{R}^{k\times n}, W_2\in\mathbb{R}^{n\times k}, а параметры подбираются минимизацией среднеквадратичной ошибки восстановления \sum_i \|x_i - W_2 W_1 x_i\|^2. Болди и Хорник[1] строго показали, что при такой (линейной, без нелинейностей активации) архитектуре целевая функция не имеет плохих локальных минимумов, а любое её глобально оптимальное решение натягивает то же самое k-мерное подпространство, что и первые k главных компонент, хотя сам автокодировщик обучается градиентными методами, а не диагонализацией ковариационной матрицы. Этот результат объясняет, почему PCA часто используют как быстрый и надёжный ориентир при оценке качества более сложных (нелинейных) автокодировщиков и как способ инициализации весов линейных слоёв нейронных сетей.

Пределы применимости и ограничения эффективности метода

Построение ветвящихся главных компонент методом топологических грамматик. Крестики — точки данных, красное дерево с желтыми узлами — аппроксимирующий дендрит.
Построение ветвящихся главных компонент методом топологических грамматик. Крестики — точки данных, красное дерево с желтыми узлами — аппроксимирующий дендрит[1].

Метод главных компонент применим всегда. Распространённое утверждение о том, что он применим только к нормально распределённым данным (или для распределений, близких к нормальным) неверно: в исходной формулировке К. Пирсона ставится задача об аппроксимации конечного множества данных и отсутствует даже гипотеза о их статистическом порождении, не говоря уж о распределении.

Однако метод не всегда эффективно снижает размерность при заданных ограничениях на точность  \delta_k. Прямые и плоскости не всегда обеспечивают хорошую аппроксимацию. Например, данные могут с хорошей точностью следовать какой-нибудь кривой, а эта кривая может быть сложно расположена в пространстве данных. В этом случае метод главных компонент для приемлемой точности потребует нескольких компонент (вместо одной), или вообще не даст снижения размерности при приемлемой точности. Для работы с такими «кривыми» главными компонентами изобретен метод главных многообразий[1] и различные версии нелинейного метода главных компонент[1][1]. Больше неприятностей могут доставить данные сложной топологии. Для их аппроксимации также изобретены различные методы, например самоорганизующиеся карты Кохонена, нейронный газ[1] или топологические грамматики[1]. Если данные статистически порождены с распределением, сильно отличающимся от нормального, то для аппроксимации распределения полезно перейти от главных компонент к независимым компонентам[1], которые уже не ортогональны в исходном скалярном произведении. Наконец, для изотропного распределения (даже нормального) вместо эллипсоида рассеяния получаем шар, и уменьшить размерность методами аппроксимации невозможно.

Ядерный, разреженный и робастный PCA

Ядерный PCA

Заменяя евклидово скалярное произведение (x_i,x_j) на значение некоторой ядерной функции k(x_i,x_j)=(\phi(x_i),\phi(x_j)) для нелинейного отображения \phi в пространство более высокой (возможно, бесконечной) размерности, можно вычислить главные компоненты в этом пространстве признаков, не вычисляя \phi явно, — эквивалентная задача сводится к собственному разложению центрированной матрицы Грама K_{ij}=k(x_i,x_j)[1]. В отличие от рассмотренных выше главных многообразий и топологических грамматик, ядерный PCA сохраняет линейно-алгебраическую структуру исходной задачи (собственное разложение), перенося нелинейность целиком в выбор ядра.

Разреженный PCA

Векторы главных компонент a_k в классической постановке, как правило, являются плотными линейными комбинациями всех n исходных координат, что затрудняет их содержательную интерпретацию при большом n. Цзоу, Хасти и Тибширани[1] предложили переформулировать задачу как регрессию с эластичной сетью (\ell_1+\ell_2-регуляризация), дающую компоненты с малым числом ненулевых координат при сохранении большей части объяснённой дисперсии — такой подход называется разреженным PCA (Sparse PCA).

Робастный PCA

Классический метод главных компонент чувствителен к грубым выбросам в данных: как видно из формулы остаточной дисперсии, даже одно сильно искажённое наблюдение способно заметно исказить найденные собственные векторы, поскольку выборочная ковариация — квадратичная функция уклонений. Устойчивость к выбросам через взвешивание попарных расстояний уже обсуждалась выше (см. раздел «Механическая аналогия и метод главных компонент для взвешенных данных»); отдельный, более поздний подход дали Кандес, Ли, Ма и Райт[1], показавшие, что при определённых условиях можно точно восстановить низкоранговую составляющую матрицы данных X, даже если неизвестная, но разреженная доля её элементов повреждена сколь угодно сильно, решая выпуклую задачу Principal Component Pursuit:

\min_{L,S}\ \|L\|_* + \lambda\|S\|_1 при X=L+S,

где \|L\|_* — ядерная норма (сумма сингулярных чисел L), выпуклая релаксация ранга, а \|S\|_1 поощряет разреженность матрицы выбросов S. В отличие от взвешивания попарных расстояний, этот метод не требует заранее знать, какие именно наблюдения — выбросы, и восстанавливает их положение как часть решения задачи оптимизации.

Примеры использования

Метод главных компонент — наиболее популярный метод сокращения размерности во многих приложениях, в том числе в следующих областях:

  • Визуализация данных;
  • Компрессия изображений и видео;
  • Подавление шума на изображениях;
  • Индексация видео;
  • Биоинформатика;
  • Хемометрика;
  • Психодиагностика;
  • Общественные науки (включая политологию);
  • Сокращение размерности динамических моделей (в том числе — в вычислительной гидродинамике).

Два примера подробнее иллюстрируют применение метода в задачах машинного обучения и искусственного интеллекта:

  • Собственные лица (Eigenfaces). Тёрк и Пентланд[1] представили каждое изображение лица как точку в низкоразмерном подпространстве, натянутом на главные компоненты обучающего набора лиц («собственные лица»), а распознавание свели к сравнению координат в этом подпространстве — одна из первых успешных систем автоматического распознавания лиц и по сей день учебный эталон применения PCA в компьютерном зрении.
  • Матричная факторизация в рекомендательных системах. Метод главных компонент — частный случай факторизации матрицы данных с ограничением ортогональности факторов; более общие билинейные модели матричной факторизации, включая факторизацию методом чередующихся наименьших квадратов (ALS) для рекомендательных систем[1], оптимизируются методом альтернированной минимизации, тогда как сам PCA через сингулярное разложение можно рассматривать как точное — не итеративное — решение соответствующей билинейной задачи при дополнительном ограничении ортогональности факторов.

Литература

Классические работы

  • Pearson K., On lines and planes of closest fit to systems of points in space, Philosophical Magazine, (1901) 2, 559—572; а также на сайте PCA.
  • Sylvester J.J., On the reduction of a bilinear quantic of the nth order to the form of a sum of n products by a double orthogonal substitution, Messenger of Mathematics, 19 (1889), 42—46; а также на сайте PCA.
  • Frećhet M. Les élements aléatoires de nature quelconque dans un espace distancié. Ann. Inst. H. Poincaré, 10 (1948), 215—310.

Основные руководства (стандарт де-факто)

  • Айвазян С. А., Бухштабер В. М., Енюков И. С., Мешалкин Л. Д. Прикладная статистика. Классификация и снижение размерности.— М.: Финансы и статистика, 1989.— 607 с.
  • Рао С. Р., Линейные статистические методы и их применения.— М.: Наука (Физматлит), 1968.— 548 с.
  • Jolliffe I.T. Principal Component Analysis, Series: Springer Series in Statistics, 2nd ed., Springer, NY, 2002, XXIX, 487 p. 28 illus. ISBN 978-0-387-95442-4

Сборник современных обзоров

Современные работы по машинному обучению

  • Oja E., A simplified neuron model as a principal component analyzer, Journal of Mathematical Biology, 15 (1982) 3, 267—273.
  • Turk M., Pentland A., Eigenfaces for recognition, Journal of Cognitive Neuroscience, 3 (1991) 1, 71—86.
  • Baldi P., Hornik K., Neural networks and principal component analysis: Learning from examples without local minima, Neural Networks, 2 (1989) 1, 53—58.
  • Schölkopf B., Smola A., Müller K.-R., Nonlinear component analysis as a kernel eigenvalue problem, Neural Computation, 10 (1998) 5, 1299—1319.
  • Tipping M. E., Bishop C. M., Probabilistic Principal Component Analysis, Journal of the Royal Statistical Society: Series B, 61 (1999) 3, 611—622.
  • Zou H., Hastie T., Tibshirani R., Sparse principal component analysis, Journal of Computational and Graphical Statistics, 15 (2006) 2, 265—286.
  • Candès E. J., Li X., Ma Y., Wright J., Robust principal component analysis?, Journal of the ACM, 58 (2011) 3, статья 11.
  • Halko N., Martinsson P. G., Tropp J. A., Finding structure with randomness: Probabilistic algorithms for constructing approximate matrix decompositions, SIAM Review, 53 (2011) 2, 217—288.
  • Koren Y., Bell R., Volinsky C., Matrix factorization techniques for recommender systems, Computer, 42 (2009) 8, 30—37.

Ссылки

Учебное програмное обеспечение

Java-апплет «Метод главных компонент и самоорганизующиеся карты» (E.M. Mirkes, Principal Component Analysis and Self-Organizing Maps: applet. University of Leicester, 2011). Свободно распространяемая программа с моделями метода главных компонент, самоорганизуюшихся карт (SOM) и растущих самоорганизующихся карт (Growing Self-Organized Maps, GSOM). Дано описание алгоритмов (англ.), приведены тьюториалы и некоторые публикации. Используется для выполнения небольших студенческих исследовательских работ по сравнению различных алгоритмов аппроксимации данных.

Примечания


Незарегистрированные пользователи не видят примечаний и основных литературных ссылок (дефект системы). Зарегистрироваться безопасно и просто.

Личные инструменты