59 votos

¿Núcleo lineal y núcleo no lineal para la máquina de vectores de apoyo?

Cuando se utiliza la máquina de vectores de apoyo, ¿hay alguna directriz sobre la elección del núcleo lineal frente al núcleo no lineal, como el RBF? Una vez oí que el núcleo no lineal tiende a no funcionar bien cuando el número de características es grande. ¿Hay alguna referencia sobre esta cuestión?

1 votos

Para mi sabiduría, esto se basa en el problema en cuestión y es peligroso utilizar tales túmulos en la práctica.

82voto

Marc Claesen Puntos 9818

Por lo general, la decisión consiste en utilizar un núcleo lineal o un núcleo RBF (también conocido como gaussiano). Hay que tener en cuenta dos factores principales:

  1. La resolución del problema de optimización para un núcleo lineal es mucho más rápido, véase, por ejemplo, LIBLINEAR.
  2. Normalmente, el mejor rendimiento predictivo posible es el de un núcleo no lineal (o al menos tan bueno como el lineal).

Se ha demostrado que el El núcleo lineal es una versión degenerada del RBF por lo que el núcleo lineal nunca es más preciso que un núcleo RBF correctamente ajustado. Citando el resumen del artículo que he enlazado:

El análisis también indica que si se ha realizado una selección completa del modelo utilizando el núcleo gaussiano, no es necesario considerar la SVM lineal.

Una regla básica se trata brevemente en el documento de la NTU guía práctica para la clasificación por vectores de apoyo (Apéndice C).

Si el número de características es grande, puede que no sea necesario mapear los datos a un espacio de mayor dimensión. Es decir, el mapeo no lineal no mejora el rendimiento. El uso del kernel lineal es suficiente, y sólo se busca el parámetro C.

Tu conclusión es más o menos correcta pero tienes el argumento al revés. En la práctica, el núcleo lineal tiende a funcionar muy bien cuando el número de características es grande (por ejemplo, no hay necesidad de mapear a un espacio de características de mayor dimensión). Un ejemplo típico de esto es la clasificación de documentos, con miles de dimensiones en el espacio de entrada.

En estos casos, los núcleos no lineales no son necesariamente más precisos que los lineales. Esto significa básicamente que los núcleos no lineales pierden su atractivo: requieren muchos más recursos para entrenar con poca o ninguna ganancia en el rendimiento predictivo, así que para qué molestarse.

TL;DR

Pruebe siempre primero el modo lineal, ya que es mucho más rápido de entrenar (Y de probar). Si la precisión es suficiente, dése una palmadita en la espalda por un trabajo bien hecho y pase al siguiente problema. Si no, pruebe con un núcleo no lineal.

50voto

Charles Ma Puntos 12330

Andrew Ng ofrece una buena explicación de la regla general en este video a partir del minuto 14:46, aunque merece la pena ver todo el vídeo.

Puntos clave

  • Utilice el núcleo lineal cuando el número de características sea mayor que el número de observaciones.
  • Utilice el núcleo gaussiano cuando el número de observaciones sea mayor que el número de características.
  • Si el número de observaciones es superior a 50.000, la velocidad podría ser un problema si se utiliza un núcleo gaussiano; por lo tanto, se podría utilizar un núcleo lineal.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X