¿Qué es un núcleo y qué lo distingue de otras funciones?

13

Parece que hay muchos algoritmos de aprendizaje automático que dependen de las funciones del núcleo. SVMs y NNs para nombrar solo dos. Entonces, ¿cuál es la definición de una función del núcleo y cuáles son los requisitos para que sea válida?

Franck Dernoncourt
fuente
55
No diría que los NN dependen de las funciones del kernel: confían en una función de transferencia para lograr la no linealidad, pero esto no es lo mismo que una función del kernel
tdc

Respuestas:

11

Para x, y en S, ciertas funciones K (x, y) pueden expresarse como un producto interno (generalmente en un espacio diferente). A menudo se hace referencia a K como un núcleo o una función del núcleo. La palabra kernel se usa de diferentes maneras en las matemáticas, pero este es el uso más común en el aprendizaje automático.

El truco del núcleo es una forma de mapear observaciones de un conjunto general S en un espacio interno de producto V (equipado con su norma natural), sin tener que calcular explícitamente el mapeo, con la esperanza de que las observaciones obtengan una estructura lineal significativa en V Esto es importante en términos de eficiencia (computación de productos de puntos en un espacio dimensional muy alto muy rápidamente) y practicidad (podemos convertir algoritmos lineales ML en algoritmos ML no lineales).

Para que una función K se considere un núcleo válido, debe cumplir las condiciones de Mercer . Esto, en términos prácticos, significa que debemos asegurarnos de que la matriz del kernel (que computa el producto del kernel de cada punto de datos que tiene) siempre sea positiva semi-definida. Esto asegurará que la función objetivo del entrenamiento sea convexa, una propiedad muy importante.

carlosdc
fuente
Gracias @carlosdc, pero me temo que intentas enseñarle a este viejo perro nuevos trucos. Mucho de eso está muy por encima de mi cabeza. Leí las condiciones de Mercer, pero su significado en el mundo real se me pierde. Asumo de lo anterior que la integral de un núcleo debe estar limitada a un valor finito. ¿Es correcta esa suposición?
1
La parte de que el objetivo es convexo si la matriz del núcleo es PSD depende del objetivo. Esto es cierto para SVM, pero con los procesos gaussianos, el punto es que la matriz de Kernel es una matriz de covarianza válida y, por lo tanto, invertible.
bayerj
2

De Williams, Christopher KI y Carl Edward Rasmussen. " Procesos gaussianos para el aprendizaje automático " . MIT Press 2, no. 3 (2006). Página 80 .

kernel = una función de dos argumentos la asignación de un par de entradas , x 'X en R .xXxXR

Además, kernel = kernel function.

Los núcleos utilizados en los algoritmos de aprendizaje automático generalmente satisfacen más propiedades, como ser semidefinidos positivos.

Franck Dernoncourt
fuente
2

Voy a intentar una explicación menos técnica.

Primero, comience con el producto escalar entre dos vectores. Esto te dice cuán "similares" son los vectores. Si los vectores representan puntos en su conjunto de datos, el producto de puntos le dice si son similares o no.

Pero, en algunos (muchos) casos, el producto punto no es la mejor métrica de similitud. Por ejemplo:

  • Quizás los puntos que tienen productos de bajo punto son similares por otras razones.
  • Puede tener elementos de datos que no están bien representados como puntos.

Entonces, en lugar de usar el producto punto, usa un "núcleo" que es solo una función que toma dos puntos y le da una medida de su similitud. No estoy 100% seguro de qué condiciones técnicas debe cumplir una función para ser técnicamente un núcleo, pero esta es la idea.

Una cosa muy buena es que el kernel puede ayudarlo a poner su conocimiento de dominio en el problema en el sentido de que puede decir que dos puntos son iguales debido a la razón xyz que surge de su conocimiento del dominio.

cuadrado redondo
fuente