6 votos

Cuándo el método basado en el kernel rinde más que el normal

Estoy acostumbrado a los modelos lineales. Puedo ver el aumento del uso del método basado en el kernel, especialmente en el aprendizaje automático.

A continuación se muestra un ejemplo de núcleo gaussiano utilizando gausspr del paquete R kernlab . La función es una implementación de procesos gaussianos para la clasificación y la regresión.

require(kernlab)
x <- seq(-20,20,0.1)
y <- sin(x)/x + rnorm(401,sd=0.03)

# regression with gaussian processes
foo <- gausspr(x, y)
foo

# predict and plot
ytest <- predict(foo, x)
plot(x, y, type ="l")
lines(x, ytest, col="red")

Los métodos del núcleo disponibles en este paquete incluyen:

rbfdot Función de núcleo de base radial "gaussiana"

polydot Función de núcleo polinómico

vanilladot Función de núcleo lineal

tanhdot Función kernel tangente hiperbólica

laplacedot Función de núcleo laplaciano

besseldot Función de núcleo de Bessel

anovadot Función de núcleo ANOVA RBF

splinedot Núcleo de splines

Mi primera pregunta es ¿cómo sé que es mejor utilizar las versiones del núcleo?

La segunda cuestión es cómo seleccionar el núcleo que se va a utilizar.

0 votos

Hay una pregunta muy relacionada aquí .

3voto

iliasfl Puntos 1440

No hay una respuesta fácil a esta pregunta.

Lo normal es empezar a experimentar con la función de núcleo lineal (a la que supongo que se refiere como "regular"). Si los datos no son linealmente separables, habrá errores. Por lo tanto, si el rendimiento no es satisfactorio, habría que probar algunas funciones de núcleo no lineales.

Las siguientes opciones típicas son RBF y kernel polinómico de grados 2 o 3. Lo mejor depende de la geometría de las muestras de sus problemas. La idea es que intentes encontrar una función kernel que mapee tus muestras en un espacio de mayor dimensión, en el que las muestras se vuelvan linealmente separables. En la práctica, hay que probar una a una las diferentes opciones hasta encontrar algo que funcione satisfactoriamente para su problema. Sin embargo, los kernels más exóticos suelen tener algún tipo de aplicación o datos específicos en mente y, a menos que sepa que los necesita, probablemente pueda obviarlos.

Hay algunas compensaciones que debes tener en cuenta a medida que aumentas la complejidad y empiezas a explorar los núcleos no lineales:

  • es más fácil sobreajustar los datos (se empieza a ajustar el ruido)
  • la complejidad computacional aumenta (más requisitos de tiempo/memoria)
  • hay que ajustar más hiperparámetros (como la gamma y el grado para los núcleos polinómicos)

3voto

liggett78 Puntos 8268

Sólo algunos pensamientos más a la respuesta anterior:

¿Qué es el método Kernel o Kernel?

Núcleo o núcleo positivo-definido En álgebra lineal, se dice que una matriz real simétrica n × n M es definida positiva si zTMz es positiva para cada vector columna z no nulo de n números reales. Aquí zT denota la transposición de z. Los métodos kernel son una clase de algoritmos para el análisis de patrones, cuyo miembro más conocido es la máquina de vectores de soporte (SVM).

¿Qué es la SVM?

Desde wikipedia : "En el aprendizaje automático, las máquinas de vectores de apoyo (SVM, también redes de vectores de apoyo) son modelos de aprendizaje supervisado con algoritmos de aprendizaje asociados que analizan datos y reconocen patrones, utilizados para la clasificación y el análisis de regresión. Dado un conjunto de ejemplos de entrenamiento, cada uno marcado como perteneciente a una de dos categorías, un algoritmo de entrenamiento SVM construye un modelo que asigna los nuevos ejemplos a una categoría o a otra, lo que lo convierte en un clasificador lineal binario no probabilístico. Un modelo SVM es una representación de los ejemplos como puntos en el espacio, mapeados de forma que los ejemplos de las distintas categorías estén divididos por una clara brecha lo más amplia posible. Los nuevos ejemplos se sitúan en ese mismo espacio y se predice su pertenencia a una categoría en función del lado de la brecha en el que se encuentren.

Además de realizar una clasificación lineal, las SVM pueden realizar eficazmente una clasificación no lineal utilizando lo que se denomina el truco del núcleo , mapeando implícitamente sus entradas en espacios de características de alta dimensión".

Métodos del núcleo deben su nombre al uso de funciones del núcleo que les permiten operar en un espacio de características implícito de alta dimensión sin calcular nunca las coordenadas de los datos en ese espacio, sino simplemente calculando los productos internos entre las imágenes de todos los pares de datos en el espacio de características. Esta operación suele ser más barata que el cálculo explícito de las coordenadas. Este enfoque se denomina truco del núcleo .

Entre los algoritmos capaces de operar con núcleos se encuentran el perceptrón de núcleo, las máquinas de vectores de apoyo (SVM), los procesos gaussianos, el análisis de componentes principales (PCA), el análisis de correlación canónica, la regresión de cresta, la agrupación espectral, los filtros adaptativos lineales y muchos otros. Cualquier modelo lineal puede convertirse en un modelo no lineal aplicando el "truco del núcleo" al modelo: sustituyendo sus características (predictores) por un función kernel .

Función de base radial

El núcleo de la función de base radial (gaussiana), o núcleo RBF, es una función de núcleo popular utilizada en la clasificación de máquinas de vectores de apoyo.

Núcleo de Fisher El núcleo de Fisher, llamado así en honor a Sir Ronald Fisher, es una función que mide la similitud de dos objetos sobre la base de conjuntos de medidas para cada objeto y un modelo estadístico. En un procedimiento de clasificación, la clase de un nuevo objeto (cuya clase real se desconoce) puede estimarse minimizando, en todas las clases, un promedio de la distancia del núcleo de Fisher desde el nuevo objeto a cada miembro conocido de la clase dada.El núcleo de Fisher es el núcleo de un modelo probabilístico generativo. Como tal, constituye un puente entre los modelos generativos y probabilísticos de documentos.

Núcleo polinómico El kernel polinómico es una función kernel comúnmente utilizada con las máquinas de vectores de soporte (SVM) y otros modelos kernelizados, que representa la similitud de los vectores (muestras de entrenamiento) en un espacio de características sobre polinomios de las variables originales, permitiendo el aprendizaje de modelos no lineales.

Intuitivamente, el kernel polinómico no sólo examina las características dadas de las muestras de entrada para determinar su similitud, sino también las combinaciones de éstas. En el contexto del análisis de regresión, estas combinaciones se conocen como características de interacción. El espacio de características (implícito) de un núcleo polinómico es equivalente al de la regresión polinómica, pero sin la explosión combinatoria en el número de parámetros que hay que aprender.

El núcleo RBF es más popular en la clasificación SVM que el núcleo polinómico. El grado más común es d=2.

Por lo tanto, la respuesta a la pregunta de qué núcleo utilizar es: (1) Probar primero con el más sencillo y luego pasar a otros más complejos, ya que el sobreajuste es un peligro (2) Aprender de otros ejemplos trabajados, para tipos de datos similares. Esta puede ser una solución rápida, muchas veces

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