La diferencia de los núcleos en SVM?

27

¿Puede alguien decirme la diferencia entre los núcleos en SVM:

  1. Lineal
  2. Polinomio
  3. Gaussiano (RBF)
  4. Sigmoideo

Porque, como sabemos, ese kernel se utiliza para asignar nuestro espacio de entrada al espacio de características de alta dimensionalidad. Y en ese espacio de características, encontramos el límite linealmente separable.

¿Cuándo se usan (bajo qué condiciones) y por qué?

usuario3378327
fuente

Respuestas:

4

El núcleo lineal es lo que cabría esperar, un modelo lineal. Creo que el núcleo polinomial es similar, pero el límite es de un orden definido pero arbitrario

(por ejemplo, orden 3: a=b1+b2X+b3X2+b4X3 ).

RBF utiliza curvas normales alrededor de los puntos de datos y las suma para que el límite de decisión se pueda definir mediante un tipo de condición de topología, como curvas donde la suma está por encima de un valor de 0.5. (ver esta foto )

No estoy seguro de cuál es el núcleo sigmoide, a menos que sea similar al modelo de regresión logística donde se utiliza una función logística para definir curvas según donde el valor logístico sea mayor que algún valor (probabilidad de modelado), como 0.5 como el normal caso.

John Yetter
fuente
Entonces, ¿podemos obtener el hiperplano (límite) ligeramente separable, si usamos el núcleo lineal? y si usamos un núcleo polinomial o RBF, el hiperlano (para polinomio) podría ser un círculo de clases agrupadas (para RBF) y curva ?? ¿¿está bien?? scikit-learn.org/stable/modules/svm.html
user3378327
Cada uno de los kernals funciona para versiones de alta dimensión de sus respectivos límites. Eso responde tu pregunta? No está limitado a tres dimensiones para cualquier núcleo que conozca.
John Yetter
Solo quiero dejarlo claro. Entonces, ¿el límite mediante el uso del núcleo lineal es lineal? ¿Para RBF es como un círculo de clase agrupada? y para polinomio, puede ser una curva basada en el grado del polinomio?
user3378327
No diría que RBF es un círculo de clase agrupada. Según tengo entendido, aplica una función basada en una distribución normal en cada punto de datos y suma estas funciones. Luego se forma un límite mediante la curva que representa un cierto valor en esa función. Si alguien que ha contribuido a una biblioteca SVM pudiera intervenir, eso podría ayudar. Creo que su comprensión de los otros dos núcleos es correcta.
John Yetter
U dijo que Linier Kernel es lo que esperaba (obtener una clase separable) usando Kernel. y al usar el clasificador SVM, lo llamamos LINIER SVM. Pero, ¿cómo si podemos obtener los datos separables sin ningún núcleo en SVM? ¿Cómo lo llamamos? ¿Todavía SVM Linier o SVM no Linier?
user3378327
11

Confiar en el conocimiento básico del lector sobre los núcleos.

K(X,Y)=XTY

Núcleo polinomial:K(X,Y)=(γXTY+r)d,γ>0

Función de base radial (RBF) Kernel: que en forma simple se puede escribir comoK(X,Y)=exp(XY2/2σ2)exp(γXY2),γ>0

Kernel sigmoide: que es similar a la función sigmoide en la regresión logística.K(X,Y)=tanh(γXTY+r)

Aquí , y son parámetros del núcleo.rdγ

Ashok Choudhary
fuente
3
Si bien la información en su respuesta es correcta, no creo que responda la pregunta aquí planteada, que es más sobre cuál es la diferencia práctica entre ellos, es decir , cuándo usar uno u otro.
Firebug
1
Sorprendentemente, estas definiciones simples son difíciles de encontrar. Deberían ser lo primero que se presenta cuando se habla de las diferencias de los núcleos, sin embargo, existe una falla generalizada para establecerlos.
cammil
¿Hay alguna fuente oficial para esto? (Los probé y parecen correctos, pero me gustaría poder citarlos.)
Christian Eriksson
6

Esta pregunta puede responderse desde un punto de vista teórico y práctico. Según el teorema según el teorema del almuerzo sin almuerzo, no hay garantías de que un núcleo funcione mejor que el otro. Eso es a priori, nunca se sabe ni se puede averiguar qué núcleo funcionará mejor.

Desde el punto de vista práctico, consulte la siguiente página:

¿Cómo seleccionar el núcleo para SVM?

Gnattuha
fuente
1

Al reflexionar sobre para qué sirve un núcleo "bueno" o cuándo debe usarse, no existen reglas estrictas y rápidas.

Si su clasificador / regresor está funcionando bien con un núcleo dado, es apropiado, si no, considere cambiar a otro.

Puede obtener información sobre cómo puede funcionar su kernel, específicamente si es un modelo de clasificación, al revisar algunos ejemplos de visualización, por ejemplo, https://gist.github.com/WittmannF/60680723ed8dd0cb993051a7448f7805

Será
fuente