Mi Proyecto Fin de Carrera (2003): redes de neuronas de integración y disparo optimizadas con algoritmos genéticos

Julio de 2003. En la Escuela Técnica Superior de Ingeniería Informática de la Universidad de Málaga defendí mi Proyecto Fin de Carrera de Ingeniería en Informática: «Modelo de codificación y desarrollo de operadores genéticos para la optimización de redes de neuronas de integración y disparo», dirigido por Francisco J. Veredas Navarro. El tribunal lo calificó con Sobresaliente, con propuesta a Matrícula de Honor. Puedes descargar la memoria completa en PDF aquí.

Veintitrés años después me apetecía volver sobre él, no solo por nostalgia, sino porque el proyecto se sitúa justo en un punto de inflexión poco conocido: el momento en que redes neuronales y algoritmos genéticos, dos ideas que hoy conviven de forma natural bajo el paraguas de la IA, empezaban a combinarse en serio como campo de estudio propio, mucho antes de que existieran GPU para entrenar nada y una década antes del big bang del deep learning.

El contexto: la IA en 2003, antes del deep learning

En 2003 la palabra «IA» no evocaba lo que evoca hoy. No había transformers, no había ChatGPT, ni siquiera existía todavía la reformulación moderna del deep learning (el término se popularizaría años más tarde). El campo de las redes neuronales artificiales llevaba desde mediados de los 80 en una segunda ola de interés, tras el largo invierno provocado por las limitaciones del Perceptrón simple que Rosenblatt había presentado en 1957 y que Minsky y Papert desmontaron en 1969. La reactivación llegó de la mano de John Hopfield en 1982 y de la publicación en 1986 de Parallel Distributed Processing de Rumelhart y McClelland, que popularizó la retropropagación para entrenar redes multicapa.

En paralelo, la computación evolutiva —algoritmos genéticos, estrategias de evolución, programación evolutiva— llevaba desarrollándose desde los años 60 gracias a John Holland en la Universidad de Michigan, con su libro seminal Adaptation in Natural and Artificial Systems (1975), y David Goldberg como uno de sus discípulos más influyentes en llevarlo a problemas industriales reales.

Cruzar ambos campos —usar algoritmos genéticos para diseñar la topología de una red neuronal, en lugar de a mano o con reglas de aprendizaje clásicas— era en 2003 una línea de investigación activa pero todavía joven, con más preguntas abiertas que respuestas consolidadas. Ese fue exactamente el terreno del proyecto.

El problema: diseñar redes neuronales con evolución artificial

La optimización de circuitos neuronales se había abordado tradicionalmente con reglas de aprendizaje (la regla de Hebb, la retropropagación) que ajustan pesos sinápticos sobre una topología ya fijada. Pero esas reglas no siempre son aplicables a modelos neuronales complejos o biológicamente realistas. El proyecto proponía usar algoritmos genéticos para buscar directamente la topología de conexionado, no solo los pesos, sobre un modelo de neurona mucho más cercano al comportamiento biológico real que el perceptrón clásico: el modelo de integración y disparo (integrate-and-fire), que reproduce características como el periodo refractario o la hiperpolarización de membrana tras cada disparo.

Esquema de una neurona biológica con dendritas, núcleo y axón, y de un circuito formado por varias neuronas conectadas
Fig. 1.1 de la memoria: representación de una neurona biológica y de un circuito formado por varias neuronas conectadas — la base sobre la que se construye el modelo de integración y disparo.

Los objetivos del proyecto eran tres:

  • Diseñar un método de codificación de redes de neuronas de integración y disparo aplicable a algoritmos genéticos, portable a modelos neuronales más complejos.
  • Desarrollar operadores genéticos (cruzamiento y mutación) adecuados a ese modelo de codificación.
  • Aplicar el algoritmo resultante a la búsqueda de conexionados alternativos a circuitos neuronales propuestos por neurofisiólogos, como los que aparecen en la vía visual de los mamíferos.

Codificación celular: el genoma como árbol de instrucciones

El núcleo técnico del proyecto era un modelo de codificación celular adaptada, partido del modelo de codificación celular de Frédéric Gruau. En lugar de codificar explícitamente cada neurona y cada conexión en el genoma (codificación directa), el genoma se representa como un árbol de genes: instrucciones que, aplicadas mediante un proceso llamado desarrollo embrionario, van «construyendo» la red neuronal célula a célula, de forma parecida a como un embrión biológico se desarrolla a partir de una única célula siguiendo instrucciones genéticas.

Dos estructuras con forma de espiral, resultado del desarrollo embrionario de dos genomas distintos, mostrando su naturaleza fractal
Fig. 1.6 de la memoria: dos individuos generados por desarrollo embrionario a partir de genomas distintos. Su fisionomía fractal —autosimilar a distintas escalas— es consecuencia directa de aplicar el mismo conjunto de genes una y otra vez.

Este enfoque implícito busca evitar un problema clásico de los algoritmos genéticos aplicados a estructuras complejas: la disrupción del cruzamiento, el fenómeno por el cual cruzar dos individuos bien valorados produce descendencia inválida o de baja calidad porque el cruzamiento rompe estructuras coherentes del genoma. Para mitigarlo, el proyecto estructuró el genoma de forma que el espacio de búsqueda quedara reducido a topologías de red válidas, y ajustó las políticas de selección para no sustituir individuos por otros peor valorados, eliminando así la disrupción «a posteriori».

Esquema del operador de cruzamiento genético: dos individuos padre representados como árboles intercambian un subárbol para producir un individuo hijo
Fig. 2.3 de la memoria: el operador de cruzamiento intercambia subárboles entre dos individuos padre. El hijo conserva la estructura básica de uno de ellos y hereda un rasgo del otro a través del subárbol intercambiado.

Cómo se evaluaba una red: el correlograma cruzado

Para redes tan simples como las binarias, evaluar un individuo es sencillo: se comprueba si resuelve o no la función lógica objetivo. Pero para redes de neuronas de integración y disparo, con comportamiento estocástico y una dinámica temporal continua, hacía falta otra herramienta: el correlograma cruzado, una técnica de neurofisiología que compara la actividad temporal de dos neuronas (sus trenes de disparos) para inferir el tipo e intensidad de conexión que existe entre ellas. Cada individuo de la población generaba un correlograma cruzado a partir de la actividad de dos de sus neuronas, que se comparaba con un correlograma de referencia aportado por el experimentador: cuanto más se pareciera un individuo al circuito objetivo, mejor evaluación recibía.

Correlograma cruzado de una red con 15 neuronas, con un pico de disparos sincronizados en torno al retardo cero y su vector de caracterización
Fig. 3.20 de la memoria: correlograma de uno de los mejores individuos encontrados por el algoritmo genético (15 neuronas, fitness 7,31), comparado contra el correlograma de referencia de la conexión monosináptica objetivo.

Resultados: lo que funcionó y lo que no

El trabajo se probó en dos escalones de complejidad creciente:

Redes binarias para problemas lógicos

Un primer prototipo aplicó el modelo a la optimización de topologías de redes neuronales binarias para resolver problemas lógicos. Los resultados mejoraron a los obtenidos por otros autores en el mismo tipo de problemas mediante programación genética, como los de John Koza, y sirvieron para validar el potencial del modelo antes de dar el salto a un modelo neuronal más realista.

Redes de integración y disparo

La segunda aplicación —el objetivo final del proyecto— buscaba conexionados alternativos a un circuito monosináptico de referencia, usando redes de neuronas de integración y disparo. Antes de llegar ahí hizo falta un estudio propio del modelo neuronal: se fijaron los rangos de pesos sinápticos que mantienen una actividad neuronal correcta, y se demostró una equivalencia entre ciertos parámetros de modelos de ruido con distribución uniforme y con distribución gaussiana, lo que permite sustituir el modelo de ruido gaussiano (computacionalmente caro) por el uniforme (mucho más barato) sin perder validez.

El resultado más interesante, sin embargo, fue en cierto modo negativo, y por eso valioso: las mejores soluciones encontradas por el algoritmo genético se aproximaban al circuito monosináptico objetivo, pero nunca lo alcanzaban. La conclusión del proyecto fue que, para el modelo neuronal de integración y disparo empleado y sus limitaciones, no existen conexionados alternativos capaces de reproducir exactamente el comportamiento de dos neuronas conectadas monosinápticamente. La exhaustividad de las distintas aproximaciones obtenidas, lejos de ser un fracaso, confirmaba que el algoritmo genético estaba explorando correctamente un espacio de soluciones muy complejo, y que las políticas de selección y sustitución de individuos resultaron decisivas para la eficacia de la búsqueda en ambos experimentos.

El equipo detrás: GEB, UMA y SUNY

El proyecto se enmarcaba en el trabajo del Grupo de Estudios en Biomimética (GEB) de la Universidad de Málaga, en colaboración con el departamento de Ciencias Biológicas de la Universidad Pública de Nueva York (SUNY). Aquella colaboración entre ingeniería informática y neurofisiología es, precisamente, la razón por la que el proyecto podía permitirse usar herramientas propias de la biología experimental —como el correlograma cruzado— para evaluar redes generadas por software.

Veintitrés años después

Releer este proyecto en 2026 es un ejercicio curioso. Muchas de las preguntas que aborda —cómo evitar la disrupción del cruzamiento, cómo codificar estructuras complejas de forma que se puedan combinar sin romperse, cómo evolucionar arquitecturas en vez de diseñarlas a mano— siguen vivas hoy bajo nombres como Neural Architecture Search o NeuroEvolution. Las redes de neuronas de spiking (el nombre moderno para las de integración y disparo) han pasado de ser una curiosidad biológicamente fiel a convertirse en la base de los chips neuromórficos actuales, precisamente por su eficiencia energética frente a las redes convolucionales clásicas. Y la codificación implícita tipo Gruau tiene un heredero directo en técnicas como HyperNEAT o en la propia forma en que hoy se generan arquitecturas mediante búsqueda evolutiva o aprendizaje por refuerzo.

Lo que en 2003 se hacía con Kdevelop, C++ y diagramas UML en Rational Rose, sobre poblaciones pequeñas por pura limitación de cómputo, hoy se haría con GPUs, frameworks de simulación neuronal a gran escala y órdenes de magnitud más de generaciones. Pero la pregunta de fondo —¿puede la evolución artificial encontrar estructuras que el diseño manual no encontraría?— es la misma pregunta que sigue moviendo buena parte de la investigación en IA actual.

Referencias