En Machine Learning, los kernel o núcleos es un método para el análisis de patrones, cuyo miembro más conocido son las Maquinas de Vectores de Soporte. La tarea general del análisis de patrones es encontrar y estudiar tipos generales de relaciones en conjuntos de datos.
Los kernel deben su nombre al uso de las funciones de núcleo, que les permiten operar en un espacio de características implícito y de alta dimensión sin tener que 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 es a menudo más barata que el cálculo explícito de las coordenadas.
i
Como se puede ver en la imagen, si encontramos una manera de mapear los datos desde el espacio bidimensional al espacio tridimensional, podremos encontrar una superficie de decisión que se divide claramente entre las diferentes clases. La idea principal es la de mapear todos los datos a una dimensión superior, en este caso 3 dimensiones, encontrar el límite y hacer la clasificación.
Sin embargo, cuando hay más dimensiones, los cálculos dentro de ese espacio se vuelven más caros, aquí es donde entre el truco del núcleo o kernel. El cual nos permite operar en el espacio de la característica original sin calcular las coordenadas de los datos en un espacio dimensional superior.
Lo que el truco del kernel hace por nosotros es ofrecer una forma más eficiente y menos costosa de transformar los datos en dimensiones superiores. Dicho esto, la aplicación del truco del kernel no se limita al algoritmo de Máquinas de Vectores de Soporte, cualquier cálculo que involucre los productos de puntos (x, y) puede utilizar este método.
Funciones de kernel
Hay diferentes kernel, acá explicaremos brevemente algunos de ellos:
- Kernel lineal: puede ser utilizado como el producto normal de dos observaciones dadas. El producto entre dos vectores es la suma de la multiplicación de cada par de valores de entrada.
- Kernel polinomial: este es una forma más generalizada del núcleo lineal. El kernel polinomial no solo observa las características dadas por las muestras de entrada para determinar su similitud, sino también las combinaciones de éstas. Con “n” características originales y “d” grados de polinomio produce n^d características expandidas.
- Kernel de base radial o RBF: a este también se le llama kernel gaussiano. RBF puede mapear un espacio de entrada en un espacio dimensional infinito.
Aquí gamma es un parámetro que va de 0 a 1. Un valor más alto de gamma encajará perfectamente en el conjunto de datos de entrenamiento, lo que provoca un ajuste excesivo. Gamma igual a 0.1 se considera un buen valor por defecto.
El kernel suena perfecto, sin embargo, una cosa crítica a tener en cuenta es que cuando mapeamos los datos a una dimensión superior, hay posibilidades de que podamos adaptar el modelo. Por lo tanto, la elección de la función correcta del kernel, incluyendo los parámetros correctos son de gran importancia.