Я хочу реализовать алгоритм в статье, которая использует ядро SVD для декомпозиции матрицы данных. Итак, я читал материалы о методах ядра, ядре PCA и т. Д. Но это все еще очень неясно для меня, особенно когда речь идет о математических деталях, и у меня есть несколько вопросов.
Почему методы ядра? Или каковы преимущества методов ядра? Какова интуитивная цель?
Предполагается ли, что гораздо более многомерное пространство более реалистично в задачах реального мира и способно выявить нелинейные отношения в данных по сравнению с неядерными методами? Согласно материалам, методы ядра проецируют данные в многомерное пространство признаков, но им не нужно явно вычислять новое пространство признаков. Вместо этого достаточно вычислить только внутренние произведения между изображениями всех пар точек данных в пространстве признаков. Так зачем проецироваться в пространство более высокого измерения?
Напротив, SVD уменьшает пространство функций. Почему они делают это в разных направлениях? Методы ядра ищут более высокое измерение, в то время как SVD ищет более низкое измерение. Мне кажется странным объединять их. Согласно статье, которую я читаю ( Symeonidis et al. 2010 ), введение ядра SVD вместо SVD может решить проблему разреженности в данных, улучшая результаты.
Из сравнения на рисунке мы видим, что KPCA получает собственный вектор с более высокой дисперсией (собственным значением), чем PCA, я полагаю? Поскольку для наибольшей разницы проекций точек на собственный вектор (новые координаты), KPCA - это круг, а PCA - прямая линия, поэтому KPCA получает более высокую дисперсию, чем PCA. Значит ли это, что KPCA получает более высокие основные компоненты, чем PCA?
источник
Ответы:
PCA (как метод уменьшения размерности) пытается найти низкоразмерное линейное подпространство, к которому относятся данные. Но может случиться так, что данные ограничены низкоразмерным нелинейным подпространством. Что будет потом?
Взгляните на этот рисунок, взятый из учебника Бишопа «Распознавание образов и машинное обучение» (рисунок 12.16):
Точки данных здесь (слева) расположены в основном вдоль кривой в 2D. PCA не может уменьшить размерность с двух до одного, потому что точки не расположены вдоль прямой линии. Но, тем не менее, данные «очевидно» расположены вокруг одномерной нелинейной кривой. Так что пока PCA выходит из строя, должен быть другой путь! И действительно, ядро PCA может найти это нелинейное многообразие и обнаружить, что данные на самом деле почти одномерны.
Это достигается путем отображения данных в многомерное пространство. Это действительно может выглядеть как противоречие (ваш вопрос № 2), но это не так. Данные отображаются в многомерное пространство, но затем оказываются в более низком размерном подпространстве. Таким образом, вы увеличиваете размерность, чтобы иметь возможность ее уменьшить.
Суть «трюка с ядром» заключается в том, что на самом деле не нужно явно рассматривать пространство более высокой размерности, поэтому этот потенциально запутанный скачок в размерности выполняется полностью под прикрытием. Идея, однако, остается прежней.
источник