Функции ядра с векторным выходом - DataScientist
1 голос
/ 04 сентября 2018

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

Если я просто хочу сделать данные линейно разделимыми (а не сразу использовать какой-либо классификатор), как сделать так, чтобы любая функция ядра (например, ядро ​​RBF) производила векторный вывод? ...

большое спасибо заранее.

1 Ответ

1 голос
/ 04 сентября 2018

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

Функции ядра выдают скалярные выходные данные по определению. Для заданных входных данных $x_1, x_2$ функция ядра $k$ выводит внутренний продукт (то есть точечный продукт) $x_1$ и $x_2$ при отображении в пространство признаков:

$$k(x_1, x_2) = \langle \Phi(x_1), \Phi(x_2) \rangle$$

Здесь $\Phi$ представляет (возможно, нелинейное) отображение из входного пространства в пространство признаков и неявно определяется функцией ядра. Методы ядра (например, SVM) не должны явно вычислять это отображение, потому что они могут работать напрямую с внутренними продуктами.

Но вы хотите сами представления пространств объектов. Предположим, у вас есть точки данных $\{x_1, \dots, x_n\}$ и вычисленная матрица ядра $K$, где $K_{ij} = k(x_i, x_j)$. Пусть матрица $Y$ обозначает представления пространственных объектов данных, где $i$-я строка содержит $\phi(x_i)$. Тогда согласно приведенному выше уравнению $Y$ является любым решением уравнения:

$$Y Y^T = K$$

Обратите внимание, что решение указывается только с точностью до поворотов и подписывает сальто, поскольку эти операции не изменяют произведение точек Кроме того, пространство признаков в некоторых случаях может быть очень многомерным (или даже бесконечным, как для ядра RBF). Однако восстановленные здесь представления пространств объектов будут иметь размерность не более $n$, поскольку $n$ точек данных не могут охватывать подпространство более высокой размерности.

На практике вы можете решить это уравнение, используя собственную декомпозицию матрицы ядра. Или, аналогично, используйте ядро ​​PCA, которое реализовано во многих программных пакетах. Это версия PCA с ядром, которая эквивалентна обычной PCA, работающей в функциональном пространстве. При желании вы можете отказаться от измерений с наименьшей дисперсией, чтобы получить приблизительные представления пространств объектов, которые являются более низкими.

...