PCA и ICA для введения в машинное обучение

машинное обучение

Это 12-й день моего участия в августовском испытании обновлений. Узнайте подробности события:Испытание августовского обновления

Эта статья является шестой в серии заметок курса Эндрю Нг по машинному обучению и в основном посвящена обычно используемому алгоритму уменьшения размерности данных — алгоритму анализа основных компонентов PCA, и в то же время расширяет другой алгоритм — анализ независимых компонентов ICA.

Анализ основных компонентов PCA

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

Что такое уменьшение размерности

Ссылаясь на определение арбузной книги,Снижение размерностиТо есть исходное многомерное атрибутивное пространство преобразуется в низкоразмерное подпространство посредством некоторого математического преобразования. В этом подпространстве плотность выборки сильно увеличивается, и вычисление расстояния становится проще.

На самом деле уменьшение размерности — это, как правило, проекция от высокоразмерного к низкоразмерному.

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

在这里插入图片描述

PCA (Principal Component Analysis)

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

Ошибка проекции:

在这里插入图片描述

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

Цель PCA состоит в том, что мы хотим найти вектор направления (Vector direction), чтобы среднеквадратическая ошибка этой ошибки проецирования была как можно меньше.

Очевидно, что это пример с точностью до одного измерения. Полное описание этого PCA:

Если вы хотите свести n-мерные данные к k-мерным, цель состоит в том, чтобы найти такой набор векторовu1,u2,u3,...,uku_1,u_2,u_3,...,u_k, так что общая ошибка проецирования всех данных, спроецированных на этот набор векторов, минимизирована. На самом деле этот набор векторов должен быть ортогонален в исходном пространстве. Этот новый k-мерный ортогональный признак также называется главным компонентом, который представляет собой k-мерный признак, реконструированный на основе исходного n-мерного признака.

Поток алгоритма

  1. Средняя нормализация.

  2. Вычислите ковариационную матрицу:

    Σ=1mi=1n(x(i))(x(i))T=1mXTX\Sigma = \dfrac{1}{m} \sum\limits_{i=1}^{n}(x^{(i)})(x^{(i)})^T = \dfrac{1}{m} X^TX

  3. пройти черезсингулярное разложениеВычислить ковариационную матрицуΣ\SigmaизВектор признаков:

    (U,S,VT)=SVD(Σ)(U,S,V^T)=SVD(\Sigma)

  4. отUUперед выборомkkвектора, получитьn×kn\times kМатрица измерений, сUreduceU_{reduce}Выражать.kkозначает, что мы хотим преобразовать данные изnnразмер внизkkизмерение.

  5. Вычислить новые собственные векторыz(i)z^{(i)}:

    z(i)=UreduceT*x(i) z^{(i)}=U^T_{reduce} * x^{(i)}

Понятно, что конечный результат закономерен.k×1k \times 1измерение.

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

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

Независимый компонентный анализ ICA

Вышеупомянутый PCA представляет собой процесс извлечения информации для уменьшения размерности исходных данных, а следующий упомянутыйНезависимый компонентный анализ или ICA (независимый компонентный анализ), представляет собой процесс разделения информации.

введение проблемы

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

Начнем с классической задачи о коктейльной вечеринке. Проблема вот в чем: в комнате естьnnЛюди устраивают вечеринку, и они могут говорить одновременно. расставлены в разных углах комнатыnnЗвуковые приемники, каждый приемник может одновременно захватывать каждый моментnnНаложение голосов отдельных голосов. Расстояние между каждым приемником и каждым человеком разное, поэтому перекрытие звука, принимаемого каждым приемником, также разное. После вечеринки мы получаемmmзвуковые образцы, каждый образец в определенный моментii,отnnНабор звуковых данных, собранных ресивером, как из этого получитьmmнабор образцов изолированnnА как насчет соответствующих голосов динамиков?

Давайте внимательнее посмотрим на описание проблемы, используяssдля представления источника звукового сигнала, издаваемого всеми во все времена, этоn×mn\times mматрица, каждая строка представляет человекаmmПоследовательность звуковых сигналов за один раз, всегоnnлиния, т.е.nnличный.

s=[s1,s2,...,sn]Ts=[s_1,s_2,...,s_n]^T

xxотбирается каждый разnnЛинейная комбинация отдельных голосовых данных. такжеn×mn\times mматрица. этоmmвремя, общая выборкаmmгрупповые образцы, и каждый образецnnразмерный. верхний индекс здесьiiозначает момент,xix^{i}представляет собой компонент, представляющийiiвсе, кто получает во все временаnnЛинейная комбинация звуковых сигналов.

x=[x(1)x(2)x(m)]x(i)=[x1(i),x2(i),...,xn(i)]Tx=\begin{bmatrix} |&|&\dots&|\\x^{(1)} & x^{(2)}&\dots&x^{(m)}\\|&|&\dots&|\end{bmatrix} \\ x^{(i)}=[x_1^{(i)},x_2^{(i)},...,x_n^{(i)}]^T

Итак, имеем следующую модель:

x=As[x(1)x(2)x(m)]=A[s1(1)s1(2)s1(m)s2(1)s2(2)s2(m)sn(1)sn(2)sn(m)]x=As\\ \begin{bmatrix} |&|&\dots&|\\x^{(1)} & x^{(2)}&\dots&x^{(m)}\\|&|&\dots&|\end{bmatrix}=A\begin{bmatrix} s_1^{(1)}&s_1^{(2)}&\dots&s_1^{(m)}\\s_2^{(1)}&s_2^{(2)}&\dots&s_2^{(m)}\\\vdots&\vdots&\ddots&\vdots \\s_n^{(1)}&s_n^{(2)}&\dots&s_n^{(m)}\end{bmatrix}

в,AA— неизвестная матрица смешивания, очевидноAAдаn×nn\times nразмерный и должен быть полного ранга.

Текущая ситуацияA,sВ виденеизвестно,xxизвестно, мы должны найти способxxзапуститьssиAA, этот процесс также называется слепым разделением сигналов. Звучит потрясающе, так что давайте посмотрим поближе.

алгоритм

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

Сначала сделаем преобразование, пустьW=A1W=A^{-1},Тотs(i)=A1x(i)=Wx(i)s^{(i)}=A^{-1}x^{(i)}=Wx^{(i)},WWтакже может быть выражено как[w1T,w2T,...,wnT]T[w_1^T,w_2^T,...,w_n^T]^T, поэтому для каждого компонента исходного сигнала имеем:

sj(i)=wjTx(i)s_j^{(i)}=w^T_jx^{(i)}

Затем принимаем звуковой сигнал от каждого человекаsjs_jнезависимы, и существует плотность вероятностиps(sj)p_s(s_j), то дано времяiiСовместная плотность вероятности исходного сигнала равна:

p(s)=j=1nps(sj)p(s)=\prod_{j=1}^np_s(s_j)

имеютp(s)p(s), мы хотим получить вероятность дискретизированного сигнала, как ее получить?

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

Fx(a)=P(xa)=P(Asa)=P(sWa)=Fs(Wa)F_x(a)=P(x\le a)=P(As\le a)=P(s\le Wa)=F_s(Wa)

Затем попросите гида:

Fx'(a)=Fs'(Wa)=Wps(Wa)=px(a)F'_x(a)=F'_s(Wa)=|W|p_s(Wa)=p_x(a)

Итак, есть:

p(x)=ps(Wx)W=Wj=1nps(wjTx)p(x)=p_s(Wx)|W|=|W|\prod_{j=1}^np_s(w_j^Tx)

на основе оценки максимального правдоподобия

Функция правдоподобия:

L(W)=ps(Wx)W=Wj=1nps(wjTx)L(W)=p_s(Wx)|W|=|W|\prod_{j=1}^np_s(w_j^Tx)

Даны обучающие выборкиx(i)=(x(1),x(2),...,x(m)x^{(i)}=(x^{(1)},x^{(2)},...,x^{(m}), найдите логарифмическое правдоподобие:

lnL(W)=i=1m{j=1nln  ps(wjTx(i))+lnW}lnL(W)= \sum_{i=1}^m\{ \sum_{j=1}^nln\;p_s(w^T_jx^{(i)})+ln|W|\}

Классические предположения и неопределенности ICA

классическая гипотеза

1. Каждый компонент независим друг от друга

Это один из самых основных и важных принципов ICA, и очень интересно, что как только это предположение дано, мы можем решить модель определенным образом. Объяснение этому состоит в том, что если любая последовательность случайных величин (x1,x2,...,xn) статистически независима друг от друга, то это означает, что мы не можем получить никакой информации о случайной величине xj из остальных переменных.

2. Очень сильное предположение ICA:Независимые компоненты подчиняются негауссовскому распределению..

Это связано с тем, что если исходный сигнал является гауссовским, то есть все независимые компоненты являются гауссовыми, то их совместное распределение вероятностей будет равномерным, а плотность будет полностью симметричной, как показано в двумерном гауссовском распределении на рисунке ниже . Как видно извне, гауссова переменная(x1,x2)(x_1,x_2)Распределение любого ортогонального преобразования имеет и(x1,x2)(x_1,x_2)Точно такая же раздача. Поскольку случайная величина гауссовского распределения имеет характеристику, состоящую в том, что кумулянт высокого порядка равен 0, может быть бесконечное число A после разложения с помощью ICA.

在这里插入图片描述

Разложение, выполненное ICA, уникально, если исходный сигнал не является гауссовым. Вот почемуКак правило, в стандартном анализе независимых компонентов не более чем одному компоненту разрешается подчиняться распределению Гаусса..

3. Предположим, что матрица смешивания A является квадратной матрицей

Это очевидно, чтобы сделать A обратимым и легко вычисляемым.

Неопределенность

с одинаковыми статистическими характеристикамиxxВозможно, из двух разных систем:

x=As=(Aα)(α1s)x=As=(A\alpha)(\alpha^{-1}s)

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

Факторы, которые ICA не может определить

  • Невозможно определить дисперсию независимых компонентов
  • Невозможно определить порядок независимых компонентов

резюме

Ни PCA, ни ICA не требуют от вас конкретных предположений о распределении исходного сигнала.

Если наблюдаемый сигнал является гауссовским, то исходный сигнал в это время также является гауссовым, и PCA и ICA в это время эквивалентны.

Большинство алгоритмов ICA требуют предварительной обработки данных:Сначала используйте PCA, чтобы получить y, а затем нормализовать каждый компонент y (то есть разделить каждый компонент на его собственное стандартное отклонение), чтобы получить z. Z, полученный после предварительной обработки, удовлетворяет следующим свойствам:

  • Отдельные компоненты z не коррелированы;
  • Дисперсия каждого компонента z равна 1.