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?
svm
terminology
kernel-trick
Franck Dernoncourt
fuente
fuente
Respuestas:
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.
fuente
De Williams, Christopher KI y Carl Edward Rasmussen. " Procesos gaussianos para el aprendizaje automático " . MIT Press 2, no. 3 (2006). Página 80 .
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.
fuente
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:
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.
fuente