Перейти к основному содержимому

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

Новые признаки как проекции

В машинном обучении мы привыкли работать с исходными признаками объекта x=(x1,x2,,xD)T\boldsymbol{x} = (x^1, x^2, \dots, x^D)^T. Однако часто гораздо полезнее рассматривать не сами значения признаков, а их линейные комбинации. Любую такую комбинацию можно представить как скалярное произведение вектора объекта x\boldsymbol{x} на некоторый вектор весов v\boldsymbol{v}:

z=i=1Dvixi=x,v=vTxz = \sum_{i=1}^D v^i x^i = \langle \boldsymbol{x}, \boldsymbol{v} \rangle = \boldsymbol{v}^T \boldsymbol{x}

Рассмотрим примеры того, как линейные комбинации позволяют извлекать смысл из данных:

  1. Средняя оценка: Если x=[5,4,3,5,4]\boldsymbol{x} = [5, 4, 3, 5, 4] — оценки студента по 5 предметам, а v=[1/5,1/5,1/5,1/5,1/5]T\boldsymbol{v} = [1/5, 1/5, 1/5, 1/5, 1/5]^T, то z=vTxz=\boldsymbol{v}^T \boldsymbol{x} равен его среднему баллу.

  2. Разница стоимостей: Если x=[ptoday,pyesterday]\boldsymbol{x} = [p_{today}, p_{yesterday}] — цены акции, а v=[1,1]T\boldsymbol{v} = [1, -1]^T, то zz характеризует суточное изменение цены.

  3. Суммарная активность: Если x\boldsymbol{x} — количество действий пользователя в разные часы суток, скалярное произведение его на v=[1,1,...1]\boldsymbol{v} = [1,1,...1] покажет общее количество действий за сутки.

  4. Цветовой баланс: В обработке изображений проекция RGB-вектора на [0.299,0.587,0.114]T[0.299, 0.587, 0.114]^T позволяет перевести цветной пиксель в яркость (оттенки серого).

Если мы ограничим вектор v\boldsymbol{v} условием единичной нормы (v=1\|\boldsymbol{v}\|=1), то значение проекции x\boldsymbol{x} на v\boldsymbol{v} можно находить как скалярное произведение:

z=xTv=x,vz = \boldsymbol{x}^T \boldsymbol{v} = \langle \boldsymbol{x}, \boldsymbol{v}\rangle
Почему так?

Скалярное произведение двух векторов x\boldsymbol{x} и v\boldsymbol{v} можно выразить через их длины и косинус угла θ\theta между ними:

z=x,v=xvcosθz = \langle \boldsymbol{x}, \boldsymbol{v} \rangle = \|\boldsymbol{x}\| \cdot \|\boldsymbol{v}\| \cdot \cos \theta

Если мы наложим условие единичной нормы v=1\|\boldsymbol{v}\| = 1, формула упрощается:

z=xcosθz = \|\boldsymbol{x}\| \cdot \cos \theta

Последнее выражение как раз и равно длине проекции (со знаком, в зависимости от сонаправленности векторов).

Возникает вопрос: какие именно вектора v\boldsymbol{v} обеспечивают максимальное сохранение информации об исходных данных?

Метод главных компонент (principal component analysis, PCA [1]) решает эту задачу, предлагая последовательно находить направления, вдоль которых данные сохраняют наибольшую изменчивость.

Определение и свойства

Индивидуально каждая kkглавная компонента (principal component) определяется как направление vk\boldsymbol{v}_k, которое обеспечивает максимальную дисперсию проекций данных на него при условии, что этот вектор ортогонален всем ранее найденным компонентам v1,,vk1\boldsymbol{v}_1, \dots, \boldsymbol{v}_{k-1}.

Линейная оболочка первых KK главных компонент образует KK-мерное подпространство наилучшей аппроксимации. Оно является оптимальным в глобальном смысле: среди всех возможных подпространств размерности KK именно это подпространство лучше всего описывает структуру исходных данных:

  • максимизируя средний квадрат длин проекций объектов x1,...xN\boldsymbol{x}_1,...\boldsymbol{x}_N на это подпространство;

  • минимизируя средний квадрат длин ошибок аппроксимации исходных объектов их проекциями.

Метод порождает новое признаковое описание объектов в виде длин проекций объекта на первые KK главных компонент, компактно и информативно описывающих исходные данные:

x=[x1,...xD][z1,...zK]\boldsymbol{x}=[x^1,...x^D]\to [z^1,...z^K] x=k=1Kzkvk\boldsymbol{x}=\sum_{k=1}^K z^k \boldsymbol{v}_k

Как будет доказано далее, новые признаки обладают удобными свойствами:

  • они являются нескоррелированными;
  • вектора значений каждого признака линейно независимы, если ранг матрицы признаков не ниже KK: rgXK\text{rg} X\ge K.

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

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

Как будет показано в следующей главе, главные компоненты представляют собой собственные векторы v1,,vD\boldsymbol{v}_1, \dots, \boldsymbol{v}_D ковариационной матрицы признаков Σ\Sigma, где признаки предварительно центрируются относительно их средних значений. При этом каждое соответствующее собственное значение (eigenvalue) λk\lambda_k характеризует величину дисперсии (информативности), сосредоточенной вдоль соответствующей компоненты vk\boldsymbol{v}_k.

Алгоритм применения

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

  1. Центрирование данных:
xnxnμ\boldsymbol{x}_n \leftarrow \boldsymbol{x}_n - \boldsymbol{\mu} μ=1Nn=1Nxn\boldsymbol{\mu} = \frac{1}{N} \sum_{n=1}^N \boldsymbol{x}_n
  1. Вычисление ковариационной матрицы Σ\Sigma (которая будет вещественной и симметричной) и её спектральное разложение [2]:
Σ=1Nn=1NxnxnT=VΛVT\Sigma = \frac{1}{N} \sum_{n=1}^N \boldsymbol{x}_n \boldsymbol{x}_n^T = V \Lambda V^T Λ=Diag{λ1,...λD}\Lambda = \text{Diag}\{\lambda_1,...\lambda_D\}
  1. Переход к новым признакам:
zn=VKTxn\boldsymbol{z}_n = V_K^T \boldsymbol{x}_n

где VK=[v1,...vK]RD×KV_K=[\boldsymbol{v}_1,...\boldsymbol{v}_K]\in\mathbb{R}^{D\times K} — матрица, составленная из первых KK столбцов матрицы собственных векторов V=[v1,...vD]RD×DV=[\boldsymbol{v}_1,...\boldsymbol{v}_D]\in\mathbb{R}^{D\times D}, отвечающих максимальным собственным значениям λ1λ2...λK\lambda_1\ge\lambda_2\ge...\lambda_K. Вектора v1,...vK\boldsymbol{v}_1,...\boldsymbol{v}_K и будут первыми KK главными компонентами.

При этом собственные значения λ1,λ2,...λK\lambda_1,\lambda_2,...\lambda_K описывают количество информации, которое соответствующие компоненты v1,v2,...vK\boldsymbol{v}_1,\boldsymbol{v}_2,...\boldsymbol{v}_K по отдельности описывают в исходных данных.

Аппроксимации в исходном признаковом пространстве

Если требуется получить вектор аппроксимации x^n\hat{\boldsymbol{x}}_n, извлекаемый по первым KK главным компонентам исходного вектора xn\boldsymbol{x}_n, это можно сделать, вернувшись из базиса главных компонент в исходное признаковое пространство по следующей формуле:

x^n=μ+VKzn=μ+i=1Kznivi\hat{\boldsymbol{x}}_n = \boldsymbol{\mu} + V_K \boldsymbol{z}_n = \boldsymbol{\mu} + \sum_{i=1}^K z_n^i \boldsymbol{v}_i

Это может быть полезным, например, для в задачах фильтрации данных от шума:

  1. данные представляются в компактном маломерном пространстве

  2. данные восстанавливаются по этому сжатому представлению

Очевидно, при таком преобразовании будут восстановлены лишь самые основные зависимости, а шум - отфильтрован.

Применение метода на практике

Метод главных компонент (principal component analysis, PCA) находит широкое применение в анализе данных, когда необходимо упростить структуру признакового пространства, максимально сохранив при этом исходную информацию.

Рассмотрим основные способы его использования:

  1. Визуализация данных: При K=2K=2 или K=3K=3 многомерные объекты можно отобразить на плоскости или в пространстве. Это позволяет визуализировать многомерные данные, увидеть на них кластерную структуру, аномалии и общие закономерности.

    При решении задачи классификации информативно отображать полученные точки разными цветами, отвечающими разным классам.

  2. Сжатие данных: Метод позволяет хранить основную информацию о многомерных объектах, используя небольшое число признаков.

    Например, в методе Eigenfaces [3] изображения человеческих лиц компактно представляются в виде линейной комбинации небольшого числа «эталонных» лиц наподобие того, как детальный фоторобот лица составляется всего по нескольким характеристикам.

  3. Фильтрация шума (noise filtering): Если предположить, что компоненты с очень малыми собственными числами λi\lambda_i описывают лишь случайные флуктуации в данных, то представляя объекты как комбинацию только первых самых значимых главных компонент мы получим версии объектов, очищенные от шума.

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

  5. Компактное информативное описание: Вместо исходного многомерного описания данных, которое часто бывает избыточным, метод генерирует компактное информативное описание данных, которое легче обрабатывать последующими алгоритмами. При этом, настраивая число используемых компонент KK, можно эффективно управлять степенью переобучения модели: уменьшение KK снижает эффективную сложность модели, ограничивая её способность «подстраиваться» под шум в данных.

Предварительная подготовка признаков

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

Это важно по следующим причинам:

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

  • Если один признак имеет большой диапазон принимаемых значений, а другой — низкий, то метод будет смещён в направлении первого признака только из-за разницы в масштабе.

Вычислительная сложность

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

Сложность нахождения всех собственных векторов и собственных чисел матрицы размера D×DD \times D равна O(D3)O(D^3).

Главные компоненты можно также найти из сингулярного разложения (singular value decomposition, SVD [4]) матрицы данных XX.

На практике нас чаще всего интересует не полное разложение, а нахождение только первых KK главных компонент. В этом случае их можно вычислить существенно быстрее с использованием степенного метода (power method) .

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

Для оценки информативности выбранных направлений (компонент) и определения их оптимального количества KK используют два ключевых показателя: индивидуальную и накопленную доли объяснённой дисперсии.

Доля объяснённой дисперсии

Доля объяснённой дисперсии (Explained Variance Ratio, EVR) для kk-й компоненты показывает, какую часть суммарного разброса (изменчивости) данных описывает именно это направление:

EVRk=λkj=1DλjEVR_k = \frac{\lambda_k}{\sum_{j=1}^D \lambda_j}

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

Накопленная доля объяснённой дисперсии

Накопленная доля объяснённой дисперсии (Cumulative Explained Variance Ratio, CEVR) характеризует суммарную информативность первых KK выбранных главных компонент:

CEVRK=i=1Kλij=1DλjCEVR_K = \frac{\sum_{i=1}^K \lambda_i}{\sum_{j=1}^D \lambda_j}

Данная величина монотонно возрастает с увеличением KK и достигает 1, когда число компонент становится равным исходной размерности признакового пространства DD.

Эта величина также используется для подбора числа главных компонент: задают порог (обычно 0.9, 0.95 или 0.99), а далее выбирают минимальное число первых KK главных компонент, которые сохраняют заданную долю объяснённой дисперсии.

В последующих главах будут

  • аналитически выведены главные компоненты;

  • доказаны свойства проекций на главные компоненты;

  • показана глобальная оптимальность первых KK главных компонент.

Поскольку данные описываются конечной выборкой объектов x1,x2,...xN\boldsymbol{x}_1,\boldsymbol{x}_2,...\boldsymbol{x}_N, то операции математического ожидания и дисперсии в этих главах следует понимать в конечном пространстве исходов этой выборки, т.е. как выборочное среднее и выборочную дисперсию.

Литература

  1. Pearson K. LIII. On lines and planes of closest fit to systems of points in space //The London, Edinburgh, and Dublin philosophical magazine and journal of science. – 1901. – Т. 2. – №. 11. – С. 559-572.
  2. Википедия: спектральное разложение матрицы.
  3. Wikipedia: Eigenface.
  4. Wikipedia: Singular value decomposition.