El problema fundamental que aborda este trabajo es la necesidad de computación de Machine Learning con latencias ultra-bajas (sub-microsegundos a nanosegundos) y alta eficiencia energética, un requisito que las GPUs, a pesar de su paralelismo, no pueden satisfacer debido a la sobrecarga de scheduling, acceso a memoria y la naturaleza secuencial de la ejecución de instrucciones. Las FPGAs, con su capacidad de reconfiguración a nivel de hardware, ofrecen una vía para diseñar aceleradores personalizados que implementan redes neuronales directamente como lógica digital.

La propuesta central es que las Kolmogorov-Arnold Networks (KANs) son una arquitectura inherentemente adecuada para este tipo de aceleración. A diferencia de las Multi-Layer Perceptrons (MLPs) tradicionales que usan pesos escalares y funciones de activación fijas, las KANs emplean funciones de activación aprendibles en cada 'arista' de la red. Esta característica permite un mapeo eficiente a Lookup Tables (LUTs) en FPGAs, evitando la explosión combinatoria de LUTs para funciones multivariadas y facilitando la implementación de inferencia y, crucialmente, aprendizaje online en tiempo real directamente en el hardware reconfigurable.

Arquitectura del Sistema

La arquitectura propuesta se basa en la implementación directa de las funciones de activación de KANs como Lookup Tables (LUTs) en FPGAs. Para la inferencia de modelos pre-entrenados, cada función de activación $\phi_{q,p}(x)$ de una capa KAN se cuantifica usando un esquema de punto fijo y se convierte en una LUT. Estas LUTs se computan en paralelo, y sus salidas se suman mediante un árbol de sumadores para obtener la activación de la siguiente capa. La clave es que las KANs suman funciones univariadas, lo que evita la explosión exponencial de entradas en LUTs multivariadas.

Para el aprendizaje online en tiempo real, donde los coeficientes de las funciones de activación cambian dinámicamente, no se almacenan las funciones $\phi_{q,p}(x)$ completas en LUTs. En su lugar, se almacenan las funciones base B-spline $B_i(x)$ en LUTs. Las funciones $\phi_{q,p}(x)$ se reconstruyen como combinaciones lineales de estas B-splines con coeficientes $c_{q,p,i}$ que se actualizan en tiempo real. La localidad de las B-splines (solo un subconjunto es no-cero para cualquier entrada) permite que el hardware de la pasada hacia adelante y hacia atrás escale con el orden de la spline $S+1$, no con el número total de intervalos $G$. Esto se logra computando solo las $S+1$ funciones base activas, multiplicándolas por los coeficientes del intervalo actual y sumando los resultados. Los gradientes se calculan usando backpropagation estándar, con derivadas de B-splines precomputadas en LUTs y se aplican directamente a los coeficientes almacenados en la memoria de la FPGA.

Flujo de Inferencia KAN en FPGA (Modelo Pre-entrenado)

  1. 1 Input Quantization Cuantificación de la entrada real a formato de punto fijo.
  2. 2 Parallel LUT Lookup Cada función de activación $\phi_{q,p}(x)$ se busca en su LUT correspondiente...
  3. 3 Adder Tree Summation Las salidas de las LUTs se suman mediante un árbol de sumadores.
  4. 4 Output Quantization Cuantificación de la salida a formato de punto fijo.

Flujo de Aprendizaje Online KAN en FPGA

  1. 1 Input Quantization Cuantificación de la entrada real a formato de punto fijo.
  2. 2 Interval/Offset Calc Cálculo del índice de intervalo y offset para la entrada.
  3. 3 B-spline LUT Lookup Búsqueda de valores de las funciones base B-spline activas en LUTs.
  4. 4 Coefficient Multiplication Multiplicación de B-splines por coeficientes almacenados dinámicamente.
  5. 5 Summation (Forward Pass) Suma de productos para obtener la activación $\phi_{q,p}(x)$.
  6. 6 Error Calculation Comparación de la predicción con el valor objetivo.
  7. 7 Backward Pass (Gradient Calc) Cálculo de gradientes usando derivadas de B-splines de LUTs y backpropagation.
  8. 8 Coefficient Update Actualización directa de los coeficientes $c_{q,p,i}$ en la memoria de la FPGA.
CapaTecnologíaJustificación
compute FPGA (Field-Programmable Gate Array) Plataforma de hardware reconfigurable para implementación directa de lógica digital de redes neuronales, permitiendo latencias ultra-bajas y alta eficiencia. vs GPU (Graphics Processing Unit), CPU (Central Processing Unit), ASIC (Application-Specific Integrated Circuit)
data-processing Fixed-point quantization Esquema de representación numérica para mapear valores reales a bits, esencial para la implementación en hardware digital de FPGAs, balanceando precisión y rango. vs Floating-point quantization 8 bits totales con 4 bits fraccionales como ejemplo.
compute Lookup Table (LUT) Componente fundamental de las FPGAs para implementar funciones binarias arbitrarias, utilizado para almacenar funciones de activación KAN o funciones base B-spline.

Trade-offs

Ganancias
  • ▲▲ Latencia de inferencia
  • Eficiencia de hardware
  • Escalabilidad de aprendizaje online (parámetros vs. recursos)
Costes
  • Flexibilidad de programación
  • Complejidad de diseño de hardware
  • Rango de valores representables (con punto fijo)

Fundamentos Teóricos

El concepto de las Kolmogorov-Arnold Networks (KANs) se basa en el teorema de representación de Kolmogorov-Arnold de 1957, que establece que cualquier función continua multivariada puede representarse como una suma de funciones continuas univariadas. Este teorema, aunque no directamente aplicable a la construcción práctica de redes neuronales hasta hace poco, proporciona la base teórica para la arquitectura KAN, que explota esta idea para simplificar la complejidad de las funciones multivariadas en componentes univariados más manejables.

La utilización de B-splines como base funcional para las activaciones de KANs se conecta con la teoría de aproximación de funciones y el análisis numérico, donde las splines son ampliamente conocidas por su suavidad, localidad y capacidad para aproximar funciones arbitrarias de manera eficiente. La cuantificación de punto fijo y el mapeo a Lookup Tables (LUTs) en FPGAs se relaciona con los principios de diseño de hardware digital y la aritmética de precisión finita, un campo estudiado en la ingeniería informática y electrónica para optimizar el uso de recursos y la latencia en sistemas embebidos y aceleradores.