В области многомерного статистического анализа , ядра анализа главных компонент (РСА ядра) [1] является продолжением основного компонентного анализа (РСА) с использованием методики методов ядра . Используя ядро, первоначально линейные операции PCA выполняются в воспроизводящем гильбертовом пространстве ядра .
Предыстория: Linear PCA [ править ]
Напомним, что обычный PCA работает с данными с нулевым центром; это,
- ,
где - одно из многомерных наблюдений. Он работает путем диагонализации ковариационной матрицы ,
другими словами, он дает собственное разложение ковариационной матрицы:
который можно переписать как
- . [2]
(См. Также: Матрица ковариации как линейный оператор )
Введение ядра в PCA [ править ]
Чтобы понять полезность ядра PCA, особенно для кластеризации, обратите внимание, что, хотя N точек, как правило, нельзя разделить линейно по размерам, их почти всегда можно разделить линейно по размерам. То есть, если дано N точек, если мы отобразим их в N -мерное пространство с
- где ,
легко построить гиперплоскость , разделяющую точки на произвольные кластеры. Конечно, это создает линейно независимые векторы, поэтому нет ковариации, на которой можно было бы выполнять собственное разложение явно, как это было бы в линейном PCA.
Вместо этого в ядре PCA «выбирается» нетривиальная, произвольная функция, которая никогда не вычисляется явно, что дает возможность использовать функции очень высокой размерности , если нам никогда не придется фактически оценивать данные в этом пространстве. Поскольку мы обычно стараемся избегать работы в -пространстве, которое мы будем называть «пространством функций», мы можем создать ядро N-by-N
который представляет внутреннее пространство продукта (см. матрицу Грамиана ) трудноразрешимого в противном случае пространства признаков. Двойственная форма, возникающая при создании ядра, позволяет нам математически сформулировать версию PCA, в которой мы никогда не решаем собственные векторы и собственные значения ковариационной матрицы в -пространстве (см. Уловку с ядром ). N-элементы в каждом столбце K представляют собой скалярное произведение одной точки преобразованных данных по отношению ко всем преобразованным точкам (N точек). Некоторые известные ядра показаны в примере ниже.
Поскольку мы никогда не работаем непосредственно в пространстве функций, формулировка ядра PCA ограничена тем, что вычисляет не сами основные компоненты, а проекции наших данных на эти компоненты. Чтобы оценить проекцию из точки в пространстве признаков на k-й главный компонент (где верхний индекс k означает компонент k, а не степени k)
Отметим, что это означает скалярное произведение, которое является просто элементами ядра . Кажется, все, что осталось, это вычислить и нормализовать , что можно сделать, решив уравнение для собственных векторов
где N - количество точек данных в наборе, а и - собственные значения и собственные векторы K. Затем, чтобы нормализовать собственные векторы , мы требуем, чтобы
Следует проявлять осторожность в отношении того факта, что независимо от того, имеет ли оно нулевое среднее значение в исходном пространстве, не гарантируется его центрирование в пространстве функций (которое мы никогда не вычисляем явно). Поскольку для проведения эффективного анализа главных компонент требуются центрированные данные, мы « централизуем » K, чтобы он стал
где обозначает матрицу размером N на N, для которой каждый элемент принимает значение . Мы используем для выполнения описанный выше алгоритм ядра PCA.
Здесь следует проиллюстрировать одно предостережение относительно ядра PCA. В линейном PCA мы можем использовать собственные значения для ранжирования собственных векторов в зависимости от того, какая часть вариации данных улавливается каждым главным компонентом. Это полезно для уменьшения размерности данных, а также может применяться к KPCA. Однако на практике бывают случаи, когда все варианты данных совпадают. Обычно это вызвано неправильным выбором масштаба ядра.
Большие наборы данных [ править ]
На практике большой набор данных приводит к большому K, и сохранение K может стать проблемой. Один из способов справиться с этим - выполнить кластеризацию набора данных и заполнить ядро средствами этих кластеров. Поскольку даже этот метод может дать относительно большое значение K, обычно вычисляются только верхние собственные значения P, а собственные векторы собственных значений вычисляются таким образом.
Пример [ править ]
Рассмотрим три концентрических облака точек (показаны); мы хотим использовать ядро PCA для идентификации этих групп. Цвет точек не представляет информацию, задействованную в алгоритме, а только показывает, как преобразование перемещает точки данных.
Сначала рассмотрим ядро
Применение этого к ядру PCA дает следующее изображение.
Теперь рассмотрим гауссовское ядро:
То есть это ядро является мерой близости, равной 1, когда точки совпадают, и равной 0 на бесконечности.
Обратите внимание, в частности, что первого главного компонента достаточно, чтобы различать три разные группы, что невозможно с использованием только линейного PCA, потому что линейный PCA работает только в данном (в данном случае двумерном) пространстве, в котором эти концентрические облака точек находятся линейно не разделимы.
Приложения [ править ]
Было продемонстрировано, что ядро PCA полезно для обнаружения новизны [3] и устранения шумов в изображениях. [4]
См. Также [ править ]
- Кластерный анализ
- Многолинейный PCA
- Мультилинейное подпространственное обучение
- Нелинейное уменьшение размерности
- Спектральная кластеризация
Ссылки [ править ]
- ^ Schölkopf, Бернхард (1998). «Нелинейный компонентный анализ как проблема собственных значений ядра». Нейронные вычисления . 10 (5): 1299–1319. CiteSeerX 10.1.1.100.3636 . DOI : 10.1162 / 089976698300017467 . S2CID 6674407 .
- ^ Нелинейный анализ компонентов как проблема собственных значений ядра (Технический отчет)
- Перейти ↑ Hoffmann, Heiko (2007). «Ядро PCA для обнаружения новинок» . Распознавание образов . 40 (3): 863–874. DOI : 10.1016 / j.patcog.2006.07.009 .
- ^ Ядро PCA и снижение шума в пространствах функций. НИПС, 1999 г.