ElemedexEnciclopedia de bolsillo de arquitecturas de IA

Glosario (MT) › Piezas de arquitectura

MT091

Truco del núcleo (kernel)

También: función núcleo, kernel, métodos de núcleo

En inglés: Kernel trick

Recurso que permite a un algoritmo lineal trabajar como si los datos estuvieran en un espacio de muchísimas dimensiones, sin calcular nunca las coordenadas en ese espacio.

Un clasificador lineal solo traza fronteras rectas (hiperplanos). Pero si antes se transforman los datos con una función no lineal Φ, una frontera recta en el espacio transformado puede ser curva en el original (Witten et al., 2017, p. 252). El problema es el costo: con 10 atributos y todos los productos de 5 factores, hay más de 2000 coeficientes que aprender (Witten et al., 2017, pp. 252–253).

El truco. Algoritmos como la Máquina de vectores de soporte solo usan los datos a través de productos punto entre pares de ejemplos. Basta, entonces, con una función K(x, y) que dé directamente el producto punto en el espacio transformado:

K(x, y) = Φ(x)·Φ(y)

sin calcular nunca Φ (Witten et al., 2017, pp. 255–256). Ejemplo con dos atributos: el núcleo polinomial (x·y)² es igual a Φ(x)·Φ(y) con Φ(x) = (x₁², √2·x₁x₂, x₂²). Calcular (x·y)² es barato; el espacio de Φ puede ser enorme, incluso infinito en el caso del núcleo gaussiano (RBF). Con el núcleo sigmoide, una SVM equivale a un perceptrón con una capa oculta (Witten et al., 2017, p. 256).

Por qué importó. Combinado con el hiperplano de margen máximo de las máquinas de vectores de soporte (Cortes y Vapnik, 1995), el truco dio fronteras no lineales con garantías teóricas y poco sobreajuste (Witten et al., 2017, p. 255). Las SVM fueron durante años uno de los métodos más populares, hasta el auge del aprendizaje profundo (Chollet, 2021, sec. 1.2.3).

La diferencia con las redes. Chollet (2021) subraya que el núcleo suele diseñarse a mano: en una SVM solo se aprende el hiperplano, no la representación (2021, sec. 1.2.3). Un núcleo es, en el fondo, una medida de semejanza elegida por el diseñador, y puede definirse sobre cadenas, árboles o conjuntos (Witten et al., 2017, p. 273); con núcleos de cadenas se clasificaron textos (Lodhi et al., 2002). Las redes profundas, en cambio, aprenden su propia representación. Desde el debate empirismo–innatismo, el núcleo es un sesgo innato sobre qué se parece a qué. Curiosamente, la atención de los transformers puede leerse como un núcleo aprendido: una semejanza entre consulta y clave usada para suavizar sobre los valores (Tsai et al., 2019).

Fuentes

  • Chollet, F. (2021). Deep learning with Python (2nd ed.). Manning Publications. §
  • Cortes, C., & Vapnik, V. (1995). Support-vector networks. Machine Learning, 20(3), 273–297. https://doi.org/10.1007/BF00994018 §
  • Lodhi, H., Saunders, C., Shawe-Taylor, J., Cristianini, N., & Watkins, C. (2002). Text classification using string kernels. Journal of Machine Learning Research, 2, 419–444. https://www.jmlr.org/papers/v2/lodhi02a.html §
  • Tsai, Y.-H. H., Bai, S., Yamada, M., Morency, L.-P., & Salakhutdinov, R. (2019). Transformer dissection: An unified understanding for transformer’s attention via the lens of kernel. In K. Inui, J. Jiang, V. Ng, & X. Wan (Eds.), Proceedings of the 2019 Conference on Empirical Methods in Natural Language Processing and the 9th International Joint Conference on Natural Language Processing (EMNLP-IJCNLP) (pp. 4344–4353). Association for Computational Linguistics. https://doi.org/10.18653/v1/D19-1443 §
  • Witten, I. H., Frank, E., Hall, M. A., & Pal, C. J. (2017). Data mining: Practical machine learning tools and techniques (4th ed.). Morgan Kaufmann. https://doi.org/10.1016/C2015-0-02071-8 §