Каково интуитивное объяснение того, как PCA превращается из геометрической задачи (с расстояниями) в задачу линейной алгебры (с собственными векторами)?


54

Я много читал о PCA, включая различные учебники и вопросы (такие как этот , этот , этот и этот ).

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

введите описание изображения здесь

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

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

Итак, мой вопрос: как PCA может превратиться из задачи геометрической оптимизации в задачу линейной алгебры? Может ли кто-нибудь дать интуитивное объяснение?

Я не ищу ответ, подобный этому, который гласит: «Когда вы решаете математическую проблему PCA, она оказывается эквивалентной поиску собственных значений и собственных векторов ковариационной матрицы». Пожалуйста, объясните, почему собственные векторы оказываются основными компонентами и почему собственные значения оказываются дисперсией проецируемых на них данных

Кстати, я инженер-программист, а не математик.

Примечание: рисунок выше был взят и изменен из этого руководства PCA .


2
В длинной ветке за вашей первой ссылкой есть ответ @ amoeba с анимацией, который объясняет суть. PCA - это вращение осей данных (столбцов) до тех пор, пока они не станут некоррелированными как векторы данных (переменные). Такая матрица вращения находится посредством собственного разложения или разложения по сингулярным значениям и называется матрицей собственного вектора.
ttnphns

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

1
optimization problemДа, проблема PCA может быть решена с помощью (итеративных, конвергентных) подходов оптимизации, я считаю. Но так как он имеет замкнутую форму решения с помощью математики, почему бы не использовать это более простое, эффективное решение?
ttnphns

Вы просите provide an intuitive explanation. Интересно, почему интуитивный и понятный ответ от амебы, с которым я связан, не подойдет вам. Вы спрашиваете, _why_ eigenvectors come out to be the principal components...почему? По определению! Собственные векторы являются основными направлениями облака данных.
ttnphns

6
@ttnphns: Я на самом деле думаю, что вопрос разумный. Вот как я это понимаю. СПС хочет найти направление максимальной дисперсии проекции. Это направление называется (по определению) первым главным направлением. С другой стороны, собственный вектор ковариационной матрицы является (по определению) таким вектором что . Так почему же первое главное направление задается собственным вектором с наибольшим собственным значением? Какая здесь интуиция? Это конечно не по определению. Я думал об этом, и я знаю, как это доказать, но это трудно объяснить интуитивно. w C w = λ wCwCw=λw
говорит амеба: восстанови монику

Ответы:


54

Постановка задачи

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

Верно. Я объясняю связь между этими двумя формулировками в моем ответе здесь (без математики) или здесь (с математикой).

Давайте возьмем вторую формулировку: PCA пытается найти направление, в котором проекция данных на него имеет максимально возможную дисперсию. Это направление по определению называется первым основным направлением. Мы можем формализовать это следующим образом: учитывая ковариационную матрицу , мы ищем вектор имеющий единичную длину, , такой, что максимально.Cww=1wCw

(На всякий случай, если это не ясно: если является центрированной матрицей данных, то проекция задается как а ее дисперсия .)XXw1n1(Xw)Xw=w(1n1XX)w=wCw

С другой стороны, собственный вектор по определению является любым вектором , для которого .CvCv=λv

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


Доказательств

Если кто-то откроет какую-либо книгу или учебник по PCA, он может найти там следующее почти однострочное доказательство приведенного выше утверждения. Мы хотим максимизировать при условии, что ; это можно сделать, введя множитель Лагранжа и максимизируя ; дифференцируя, мы получаем , который является уравнением собственного вектора. Мы видим, что фактически является наибольшим собственным значением, подставляя это решение в целевую функцию, которая даетwCww=ww=1wCwλ(ww1)Cwλw=0λwCwλ(ww1)=wCw=λww=λ . В силу того, что эта целевая функция должна быть максимизирована, должно быть наибольшим собственным значением, QED.λ

Это имеет тенденцию быть не очень интуитивным для большинства людей.

Лучшее доказательство (см., Например, этот аккуратный ответ @cardinal ) говорит, что, поскольку является симметричной матрицей, она является диагональной в своем базисе собственных векторов. (На самом деле это называется спектральной теоремой .) Таким образом, мы можем выбрать ортогональный базис, а именно тот, который задается собственными векторами, где является диагональным и имеет собственные значения на диагонали. На этом основании упрощается до , или, другими словами, дисперсия определяется взвешенной суммой собственных значений. Почти сразу же, чтобы максимизировать это выражение, нужно просто взятьCCλiwCwλiwi2w=(1,0,0,,0)первый собственный вектор, дающий дисперсию (действительно, отклонение от этого решения и «обмен» частями наибольшего собственного значения на части меньших приведет только к меньшей общей дисперсии). Обратите внимание, что значение не зависит от базиса! Переход к базису собственных векторов равносилен вращению, поэтому в 2D можно представить просто вращение листа бумаги с диаграммой рассеяния; очевидно, это не может изменить любые отклонения.λ1wCw

Я думаю, что это очень интуитивный и очень полезный аргумент, но он опирается на спектральную теорему. Так что реальная проблема здесь, я думаю, заключается в следующем: какова интуиция, лежащая в основе спектральной теоремы?


Спектральная теорема

Возьмем симметричная матрица . Возьмите его собственный вектор с наибольшим собственным значением . Сделайте этот собственный вектор первым базисным вектором и случайным образом выберите другие базисные векторы (чтобы все они были ортонормированными). Как будет выглядеть на этом основании?Cw1λ1C

Он будет иметь в верхнем левом углу, потому что в этом базисе и должен быть равен .λ1w1=(1,0,00)Cw1=(C11,C21,Cp1)λ1w1=(λ1,0,00)

По тому же аргументу он будет иметь нули в первом столбце под .λ1

Но поскольку он симметричен, он будет иметь нули в первой строке после . Так это будет выглядеть так:λ1

C=(λ10000),

где пустое пространство означает, что там есть блок из нескольких элементов. Поскольку матрица симметрична, этот блок также будет симметричным. Таким образом, мы можем применить к нему точно такой же аргумент, эффективно используя второй собственный вектор в качестве второго базисного вектора и получая и по диагонали. Это может продолжаться до тех пор, пока станет диагональным. Это по существу спектральная теорема. (Обратите внимание, как это работает только потому, что симметричен.)λ1λ2CC


Вот более абстрактная переформулировка того же аргумента.

Мы знаем, что , поэтому первый собственный вектор определяет одномерное подпространство, где действует как скалярное умножение. Теперь возьмем любой вектор ортогональный . Тогда почти сразу же также ортогонален . На самом деле:Cw1=λ1w1Cvw1Cvw1

w1Cv=(w1Cv)=vCw1=vCw1=λ1vw1=λ10=0.

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


«Множитель Лагранжа» мне действительно понятен. Тем не менее, не могли бы вы сказать мне, почему нам нужно ограничение на единицу длины? Спасибо
Haitao Du

2
@ hxd1011 Здесь уже есть именно этот вопрос , но вкратце: это потому, что в противном случае вы можете умножить на любое число, и увеличится на квадрат этого числа. Таким образом, проблема становится плохо определенной: максимум этого выражения бесконечен. Фактически, дисперсия проекции на направление равна только если - единичная длина. wwCwwwCww
говорит амеба: восстанови монику

Я думаю, что может быть немного более знакомым большинству читателей; Я заменил это здесь. Благодарю. n1
говорит амеба: восстанови монику

@amoeba: Спасибо за ответ. Я смущен некоторыми вашими обозначениями. Вы используете w, чтобы указать вектор единичной длины, который оказывается первым собственным вектором (главный компонент). Когда я запускаю PCA в R (например prcomp(iris[,1:4], center=T, scale=T)), я вижу собственные векторы единичной длины с кучей поплавков, таких как (0.521, -0.269, 0.580, 0.564). Однако в своем ответе в разделе «Доказательства» вы пишете « Почти сразу же, чтобы максимизировать это выражение, нужно просто взять w = (1,0,0,…, 0), то есть первый собственный вектор . Почему собственный вектор в вашем доказательстве выглядит так хорошо сформированным?
stackoverflowuser2010

1
Привет @ user58865, спасибо за толчок: я просто забыл ответить в первый раз. Дело в том, что скаляр - это просто число. Любое число является «симметричным» :) и равно его транспонированию. Имеет ли это смысл? w1Cv
говорит амеба, восстанови Монику

5

Экартом и Янгом был получен результат 1936 года ( https://ccrma.stanford.edu/~dattorro/eckart%26young.1936.pdf ), в котором говорится:

1rdkukvkT=argminX^ϵM(r)||XX^||F2

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

Это общий результат для матриц и на первый взгляд не имеет ничего общего с наборами данных или уменьшением размерности.

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


4

Это мой взгляд на линейную алгебру позади PCA. В линейной алгебре одной из ключевых теорем является . В нем говорится, что если S является любой симметричной n на n матрицей с действительными коэффициентами, то S имеет n собственных векторов, причем все собственные значения являются действительными. Это означает, что мы можем написать с D диагональной матрицей с положительными элементами. Это и нет ничего плохого в предположении . А - это изменение базисной матрицы. То есть, если наш исходный базис был , то относительно базиса, заданногоSpectral TheoremS=ADA1D=diag(λ1,λ2,,λn)λ1λ2λnx1,x2,,xnA(x1),A(x2),A(xn)действие S диагонально. Это также означает, что можно рассматривать как ортогональный базис с Если бы наша ковариационная матрица была для n наблюдений n переменных, мы бы сделали это. Базис, предоставленный является базой PCA. Это следует из фактов линейной алгебры. По сути, это так, потому что базис PCA является базисом собственных векторов, и существует не более n собственных векторов квадратной матрицы размера n. Конечно, большинство матриц данных не являются квадратными. Если X - матрица данных с n наблюдениями p переменных, то X имеет размер n по p. Я буду предполагать, что (больше наблюдений, чем переменных) и чтоA(xi)||A(xi)||=λiA(xi)
n>prk(X)=p(все переменные линейно независимы). Никакое предположение не является необходимым, но оно поможет с интуицией. Линейная алгебра имеет обобщение из спектральной теоремы, называемое сингулярным разложением. Для такого X он утверждает, что с U, V ортонормированными (квадратными) матрицами размера n и p и вещественная диагональная матрица с только неотрицательной записи по диагонали. Опять же, мы можем переставить базис V так, чтобы В матричных терминах это означало, что если и если . X=UΣVtΣ=(sij)s11s22spp>0X(vi)=siiuiipsii=0i>nviдать разложение PCA. Точнее - разложение PCA. Почему? Опять же, линейная алгебра говорит, что могут быть только собственные векторы. SVD дает новые переменные (заданные столбцами V), которые являются ортогональными и имеют убывающую норму. ΣVt


4

«который одновременно максимизирует дисперсию проецируемых данных». Вы слышали о коэффициенте Рэлея ? Может быть, это один из способов увидеть это. А именно, коэффициент Релея ковариационной матрицы дает дисперсию проецируемых данных. (а вики-страница объясняет, почему собственные векторы максимизируют фактор Рэлея)


1

@amoeba дает аккуратную формализацию и доказательство:

Мы можем формализовать это следующим образом: учитывая ковариационную матрицу C, мы ищем вектор w, имеющий единичную длину, ‖w‖ = 1, такой, что w T Cw является максимальным.

Но я думаю, что есть одно интуитивное доказательство:

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

Мы можем интерпретировать w T Cw как точечное произведение между вектором w и Cw, которое получается путем преобразования w :

w T Cw = ‖w‖ * ‖Cw‖ * cos (w, Cw)

Поскольку w имеет фиксированную длину, для максимизации w T Cw нам понадобится:

  1. увеличить imizeCw‖
  2. увеличить cos (w, Cw)

Оказывается, если мы возьмем w как собственный вектор C с наибольшим собственным значением, мы можем заархивировать оба одновременно:

  1. ‖Cw‖ - это максимум, (если w отклоняется от этого собственного вектора, разложите его вдоль ортогональных собственных векторов, вы должны увидеть уменьшение «Cw».)
  2. w и Cw в одном направлении, cos (w, Cw) = 1, не более

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


доказательство 1

разложить w на ортогональный первичный и вторичный собственные векторы v1 и v2 , предположим, что их длина равна v1 и v2 соответственно. мы хотим доказать

1 w) 2 > ((λ 1 v1) 2 + (λ 2 v2) 2 )

поскольку λ 1 > λ 2 , мы имеем

((λ 1 v1) 2 + (λ 2 v2) 2 )

<((λ 1 v1) 2 + (λ 1 v2) 2 )

= (λ 1 ) 2 * (v1 2 + v2 2 )

= (λ 1 ) 2 * w 2

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.