13 votos

¿Debo usar el truco del núcleo siempre que sea posible para datos no lineales?

Recientemente aprendí sobre el uso del truco del núcleo, que mapea datos en espacios dimensionales más altos en un intento de alinear los datos en esas dimensiones. ¿Hay algún caso donde debo evitar usar esta técnica? ¿Es sólo una cuestión de encontrar la función del núcleo derecho?

Datos lineales esto por supuesto no es útil, pero para datos no lineales, esto siempre parece útil. Utilizando clasificadores lineales es mucho más fácil que no lineal en términos de escalabilidad y tiempo de entrenamiento.

10voto

Colin Gravill Puntos 2100

El precio que paga por el Kernel Trick en general, para los métodos lineales, es tener peor de la generalización de los límites. Para un modelo lineal de su VC dimensión también es lineal en términos del número de dimensiones (por ejemplo, VC dimensión para un tipo perceptrón es d + 1).

Ahora, si usted va a realizar un complejo no lineal de transformación para un alto el espacio tridimensional de la VC de la dimensión de su hipótesis de conjunto es significativamente mayor, como su ahora lineales en términos del número de dimensiones en el nuevo, de alta el espacio tridimensional. Y con ella, la generalización obligado sube.

Máquinas de Vectores soporte explotar el Kernel Truco de la manera más eficiente, haciendo dos cosas:

9voto

lejlot Puntos 1379

Para datos lineales supuesto, esto no es útil, pero para los no-lineal de los datos, esto parece siempre útil. El uso de clasificadores lineales es mucho más fácil que la de los no-lineal en términos de tiempo de entrenamiento y la escalabilidad.

@BartoszKP ya se ha explicado ¿por qué es el kernel truco útil. Para abordar plenamente su pregunta, sin embargo, me gustaría señalar, que kernelization es no es la única opción para tratar con los no linealmente separables de datos.

Hay al menos tres buenas, las alternativas comunes para delinearization de la modelo:

  • Neutal de red basados en los métodos, donde agregar uno (o más) de las capas de unidades de procesamiento, capaz de transformar sus datos en el linealmente separables caso. En el caso más simple es una sigmoide basado en la capa, la cual añade la no-linealidad del proceso. Una vez que se inicializa aleatoriamente que están recibiendo actualizaciones durante el gradiente basado en la optimización de la capa superior (la que realmente resuelve el problema de programación lineal).
  • En particular, en lo profundo de las técnicas de aprendizaje puede ser utilizado para preparar los datos para su posterior clasificación lineal. Es idea muy similar a la anterior, pero aquí el primer tren de procesamiento capas con el fin de encontrar un buen punto de partida para el ajuste fino a partir de la formación de algunas modelo lineal.
  • Al azar de las proyecciones - usted puede probar (no lineal) de las proyecciones de algunos predefinidos espacio y tren clasificador lineal en la parte superior de ellos. Esta idea está muy explotado en los llamados extremos de la máquina de aprendizaje, donde muy eficiente lineal solucionadores se utilizan para entrenar un clasificador simple aleatorio proyecciones, y lograr un rendimiento muy bueno (no lineal problemas de clasificación y regresión, echa un vistazo por ejemplo extremas de aprendizaje de máquinas).

Para resumir - kernelization es un gran delinearization técnica, y usted puede utilizarlo, cuando el problema es no lineal, pero esto no debe ser ciega "si entonces" appraoch. Este es sólo uno de al menos algunos métodos interesantes, que pueden conducir a diferentes resultados, dependiendo del problema y de los requisitos. En particular, el OLMO tiende a encontrar muy similar a las soluciones dadas por kernelized SVM, mientras que al mismo tiempo pueden ser entrenados filas de magnitud más rápido (por lo que se amplía mucho mejor que kernelized SVMs).

6voto

iliasfl Puntos 1440

Voy a tratar de darle una forma menos técnica de la respuesta a su pregunta.

De hecho, lineal debe ser preferido y debe ser la primera opción para la razón por la que usted menciona, el tiempo de formación, escalabilidad, además de la facilidad en la interpretación del modelo final, la elección de trabajar en primal o dual, más tolerancia al sobreajuste etc.

Si el lineal no dar un rendimiento satisfactorio, entonces usted puede intentar no-lineal de las soluciones. Algunos de los trade-offs:

  • la elección de kernel no es evidente, por lo general, usted necesita para poner a prueba las diferentes opciones
  • existe el peligro de sobreajuste el conjunto de entrenamiento. En realidad es bastante fácil overfit si quieres. Para evitar el sobreajuste usted necesita un fuerte marco de evaluación (debe medir la varianza/estabilidad de rendimiento en invisible de datos) y que necesita de suficientes datos para poder hacer la selección del modelo
  • trabajar en dual, y por lo tanto no se puede interpretar el modelo final, es decir, usted no puede decir que la característica X es más importante que la función Y etc.
  • el tiempo de formación se incrementa el volumen de los datos (menos con el número de características, ya que es en el doble)

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