- Kolmogorov-Arnold Networks (KANs) tienen una estructura distinta a la de las redes neuronales tradicionales y muestran resultados más interpretables y precisos incluso a pequeña escala, por lo que podrían convertirse en una herramienta para que científicos encuentren nuevas hipótesis a partir de datos físicos
- Mientras que las MLP tradicionales dependen de los pesos de las sinapsis y de las funciones de activación de las neuronas, en KAN las sinapsis aprenden funciones de entrada-salida y las neuronas solo calculan la suma de las salidas de las sinapsis
- En datos de leyes físicas y experimentos con nudos topológicos, el rendimiento de KAN mejoró más rápido al aumentar su escala, y al resolver ecuaciones diferenciales parciales fue 100 veces más preciso que una MLP con 100 veces más parámetros
- Los investigadores visualizaron las formas de las funciones internas de KAN y la importancia de las conexiones, podaron las conexiones débiles y, en algunos casos, reconstruyeron la función física que generó el dataset como una función intuitiva de una sola línea
- KAN requiere más tiempo de entrenamiento por parámetro y es difícil de aprovechar en GPU, pero como necesita menos parámetros, sigue siendo práctico a pequeña escala, como en problemas de física
La nueva arquitectura de red neuronal que propone KAN
- Las redes neuronales artificiales, en el centro de la IA moderna, sostienen chatbots y generadores de imágenes, pero por la gran cantidad de neuronas pueden convertirse en una caja negra cuyo funcionamiento interno es difícil de interpretar
- La nueva arquitectura Kolmogorov-Arnold Networks (KANs) es más interpretable que las redes neuronales tradicionales y, en los experimentos, mostró resultados más precisos incluso siendo más pequeña
- Sus desarrolladores consideran que esta arquitectura puede representar datos físicos de forma concisa y ayudar a científicos a descubrir nuevas hipótesis sobre las leyes de la naturaleza
- Brice Ménard, de Johns Hopkins University, señala que durante más de la última década el diseño de redes neuronales ha dependido en gran medida de ajustes por prueba y error, y valora positivamente la aparición de una nueva arquitectura como KAN, diseñada a partir de primeros principios
Diferencias entre las MLP tradicionales y KAN
- En las redes neuronales tradicionales, una sinapsis aprende un único peso que representa la fuerza de conexión entre dos neuronas
- La neurona calcula una suma ponderada de las entradas de las neuronas de la capa anterior y luego aplica una función de activación simple a esa suma
- La forma en la que todas las neuronas están conectadas con todas las neuronas de la siguiente capa se conoce como multi-layer perceptron (MLP)
- En KAN, los roles cambian
- Las sinapsis aprenden una función de activación que mapea entradas a salidas, en lugar de una simple fuerza de conexión
- Esta función puede ser una spline, una combinación de varias funciones, y puede ser distinta para cada conexión
- Las neuronas se vuelven más simples y solo suman las salidas de las sinapsis anteriores
- El nombre KAN proviene de los matemáticos Kolmogorov y Arnold, quienes estudiaron formas de componer funciones
- El objetivo de esta arquitectura es ofrecer mayor flexibilidad al representar datos con menos parámetros de entrenamiento
Rendimiento observado en tareas científicas
- Los investigadores probaron KAN en tareas científicas relativamente simples
- Algunos experimentos usaron leyes físicas sencillas, como la velocidad a la que dos objetos que se mueven a velocidades relativistas pasan uno junto al otro
- Generaron puntos de datos de entrada-salida mediante ecuaciones
- Para cada función física, entrenaron la red con parte de los datos y la probaron con el resto
- A medida que aumentaba su tamaño, KAN mejoró su rendimiento más rápido que las MLP
- Al resolver ecuaciones diferenciales parciales, una KAN fue 100 veces más precisa que una MLP con 100 veces más parámetros
- En otro experimento, se entrenó para predecir una propiedad llamada signature de un nudo, a partir de otras propiedades de nudos topológicos
- La MLP alcanzó una precisión de prueba del 78% con unos 300,000 parámetros
- KAN alcanzó una precisión de prueba del 81.6% con unos 200 parámetros
Interpretabilidad y reconstrucción de funciones
- Los investigadores pudieron desplegar visualmente KAN para ver la forma de las funciones de activación y la importancia de cada conexión
- Las conexiones débiles se podían podar de forma manual o automática
- Algunas funciones de activación podían sustituirse por funciones más simples, como funciones sine o exponential
- Como resultado, se pudo resumir toda la KAN, incluidas sus funciones de activación componentes, en una función de una sola línea e intuitiva
- En algunos casos, reconstruyó perfectamente la función física que había generado el dataset
- Ziming Liu, de MIT y del NSF AI Institute for Artificial Intelligence and Fundamental Interactions, considera que si se introduce en KAN un dataset difícil de interpretar, se pueden generar hipótesis y, observando el diagrama de KAN, ajustar la estructura cuando sea necesario
Combinación con CNN y transformers
- El preprint de KAN ya fue citado en decenas de artículos
- Alexander Bodner, de University of San Andrés, y sus colegas combinaron KAN con CNN, ampliamente usadas en procesamiento de imágenes, para crear Convolutional KANs
- En tareas de clasificación de dígitos escritos a mano e imágenes de ropa, Convolutional KANs mostró una precisión casi igual a la de una CNN tradicional
- En clasificación de dígitos, ambas redes tuvieron 99% de precisión
- En clasificación de ropa, ambas redes tuvieron 90% de precisión
- El modelo combinado con KAN usó alrededor de 40% menos parámetros
- Bodner señaló que los datasets usados eran simples, pero que otros equipos con más recursos de cómputo empezaron a escalar las redes
- Otros investigadores están combinando KAN con transformers, ampliamente usados en modelos de lenguaje de gran escala
Entrenamiento lento y alcance de aplicación
- Una desventaja de KAN es que el entrenamiento por parámetro tarda más
- Una de las razones de la lentitud del entrenamiento es que resulta difícil aprovechar las GPU
- Aun así, KAN necesita menos parámetros
- Ziming Liu considera que, aunque KAN no reemplace a las enormes CNN o transformers para procesamiento de imágenes y lenguaje, en muchas tareas pequeñas de física el tiempo de entrenamiento podría no ser un problema
- Liu está investigando formas de incorporar conocimiento previo de expertos en KAN
- Por ejemplo, una persona podría elegir directamente las funciones de activación
- También está evaluando métodos para extraer conocimiento de KAN fácilmente mediante una interfaz simple
- A largo plazo, KAN podría ayudar a descubrir superconductores de alta temperatura o a explorar métodos para controlar la fusión nuclear
1 comentarios
Opiniones de Hacker News
Experimenté directamente con KAN en modelado a pequeña escala y lo documenté en un artículo, comparándolo con redes neuronales normales: https://news.ycombinator.com/item?id=40855028
La conclusión principal es que KAN es mucho más difícil de entrenar que una red neuronal normal. La pérdida por parámetro generalmente puede ajustarse a niveles similares, pero requirió mucha afinación de hiperparámetros y técnicas adicionales propias de la estructura de KAN. En cambio, una red neuronal básica se entrenó con mucha más facilidad y funcionó bien bajo un rango más amplio de condiciones
En el entrenamiento de redes neuronales ya se ha acumulado un esfuerzo enorme, y optimizadores como Adam también fueron diseñados y optimizados en buena medida para redes neuronales, así que no creo que sea una comparación completamente justa. KAN tiene potencial, pero no es una solución universal, y también me resulta algo dudosa la afirmación de que los splines que se usan normalmente sean mucho más interpretables que analizar las salidas de neuronas en capas inferiores
https://cprimozic.net/blog/trying-out-kans/
Al final, investigar consiste en encontrar qué mejoras cambian la utilidad, y es interesante seguir el avance en https://github.com/mintisan/awesome-kan y ver distintos intentos. Entre KAN y las redes neuronales con funciones de activación fijas hay un espacio continuo de investigación basado en ajustar funciones de activación
Por ejemplo, un conjunto simple de funciones de activación parametrizadas como xsigmoid(mx) puede comportarse como ReLU cuando m es grande, como GeLU cuando m=1.7 y como SiLU cuando m=1. Hay varios puntos posibles: una única función de activación por neurona, funciones de activación con varios parámetros, aproximadores de funciones, hasta una KAN completa sin pesos; quien pueda calcular con una fórmula unificada dónde conviene colocar parámetros adicionales para obtener el mayor efecto probablemente recibirá mucho reconocimiento
Estoy 100% de acuerdo en que KAN no será más interpretable. Una sola neurona puede entenderse, pero en cuanto se empieza a componer este tipo de cosas, la interpretabilidad desaparece rápidamente
KAN puede modelarse como otra estructura de activación dentro de un perceptrón multicapa común, y no sorprende porque tiene mucha flexibilidad. Hice un gráfico que organiza varios tipos de estructuras: https://x.com/thomasahle/status/1796902311765434694
Curiosamente, KAN no es eficiente si se implementa con multiplicación de matrices normal de PyTorch, pero puede volverse muy rápida usando kernels CUDA personalizados o torch.compile: https://x.com/thomasahle/status/1798408687981297844
Discusión anterior sobre las redes Kolmogorov-Arnold: https://news.ycombinator.com/item?id=40219205
“La desventaja de KAN es que el tiempo de entrenamiento por parámetro es mayor, en parte porque no puede aprovechar las GPU. Pero necesita menos parámetros. Liu dice que, aunque KAN no reemplace a las enormes CNN o Transformer para procesamiento de imágenes y lenguaje, en muchos problemas de física a pequeña escala el tiempo de entrenamiento no será un problema.”
Ni siquiera dice que en el futuro quizá pueda aprovechar GPU, así que se lee como una limitación fundamental
Me pregunto si este enfoque podría aplicarse a KAN de forma rentable. En particular, me intriga si sería posible entrenar un modelo interpretable usando un modelo de lenguaje preentrenado como LlaMa-3
“Luego se pudo resumir todo el KAN como una función intuitiva de una sola línea y, en algunos casos, reconstruyó perfectamente la función física que generó el dataset”.
La idea de KAN es realmente interesante, pero, en sentido estricto, una red neuronal tradicional también puede escribirse como alguna expresión cerrada de una sola línea. Solo que esa línea sería muy larga. Aunque se pudiera crear la misma frontera de decisión con menos neuronas, no tengo claro si usar splines en lugar de pesos hace que la expresión en sí sea menos compleja.
En principio se podría hacer algo parecido con un perceptrón multicapa, pero la representación de un perceptrón multicapa está bastante distribuida, así que la sparsificación y la simbolización podrían ser más difíciles.
¿Me lo podrían explicar como si tuviera cinco años? Entiendo que una red neuronal intenta reducir la función de pérdida para obtener mejores resultados, pero me pregunto qué es realmente distinto en KAN.
Una red neuronal común, es decir, un perceptrón multicapa, tiene matrices llenas de números de punto flotante que actúan como pesos. Los pesos son funciones lineales como y=wx, así que si dibujas la entrada x y la salida y en coordenadas, obtienes una línea recta. Si aumentas o reduces la entrada, la salida también aumenta o se reduce en una proporción constante, y el efecto no se vuelve de pronto mayor, menor ni cambia de dirección.
Por eso la red aprende pesos en varias capas y los conecta con unas funciones que no se aprenden, sino que forman parte del diseño, algo así como un pegamento mágico. Como resultado, la relación compleja entre entrada y salida se va construyendo al pasar por varias capas.
En cambio, en KAN, en lugar de pesos, es decir, funciones lineales, se hace que la red aprenda otro tipo de funciones. Estas funciones son no lineales, de modo que al aumentar la entrada, la salida puede subir de forma acelerada o incluso cambiar de dirección y disminuir. Puede aprender relaciones mucho más complejas entre entrada y salida, pero se pierde parte de la eficiencia de las GPU optimizadas para enormes operaciones con matrices, y quizá se necesite CPU para cálculos matemáticos arbitrarios.
Así que KAN tiene “neuronas” menos numerosas pero más complejas, y cada neurona está formada por una función compleja. El atractivo parece ser que, si miras una sola de esas neuronas, puedes obtener una fórmula clara que explica qué hace. En un perceptrón multicapa hay que seguir los pesos de varias capas, así que entender el comportamiento completo requiere más trabajo.
Dicho eso, las funciones que salen de KAN probablemente tampoco sean fórmulas intuitivas dignas de los apuntes de Isaac Newton, sino que estarán llenas de constantes raras y términos poco intuitivos que se cancelan entre sí.
output = simple_function(sum(many_inputs*many_weights) + extra_weight_for_bias), mientras que una capa KAN se parece más aoutput = sum(fancy_functions(many_inputs)). Podría estar equivocado; apenas ha pasado un día.f(x, y). La salida de KAN es una fórmula más legible comoexp(0.3sin(x) + 4cos(y)), y eso es lo que significa que sea interpretable.Me pregunto si el conjunto de funciones aprendidas puede reproducir tablas de verdad de lógica de primer orden. Parece fácil de comprobar.
En cualquier caso, desde el punto de vista de la diferenciabilidad es una buena noticia. Ahora mismo expresar condiciones
ifen JAX es complicado y, al menos para mí, en la práctica es una barrera para la optimización; si las condiciones se pueden aprender y ya están dentro de la red, me parece excelente.Hace unas semanas invitamos a Ziming Liu al London Machine Learning Meetup. Dio una excelente charla sobre este trabajo tan interesante, y la grabación está aquí: https://youtu.be/FYYZZVV5vlY?si=ReoygVJMgY9oje3p
Soy un poco escéptico. En los años 80 y 90 también hubo muchos papers y experimentos sobre varias arquitecturas de redes neuronales artificiales alternativas a
f(x*w+b). Pero los modelos prácticos de mejor rendimiento de hoy siguen basándose en multiplicación-acumulación-umbral. Al final, es por velocidad y simplicidad.“La desventaja de KAN es que el tiempo de entrenamiento por parámetro es mayor, en parte porque no puede aprovechar la GPU”.
Esto parece una brecha grande. Me pregunto si alguien sabe si es una incompatibilidad estructural fundamental, o si simplemente nadie ha escrito todavía los kernels CUDA necesarios.