Simulación eficiente de estructuras neuronales basadas en el sistema nervioso
- Carrillo Sánchez, Richard R.
- Eduardo Ros Vidal Director/a
- Francisco José Pelayo Valle Director/a
- Eva Martínez Ortigosa Director/a
Universidad de defensa: Universidad de Granada
Fecha de defensa: 20 de julio de 2009
- Alberto Prieto Espinosa Presidente/a
- Julio Ortega Lopera Secretario/a
- Egidio Ugo D'Angelo Vocal
- Samuel F. Romero García Vocal
- Pilar Martínez Ortigosa Vocal
Tipo: Tesis
Resumen
El estudio realizado se centra en el ámbito de la simulación de redes neuronales de impulsos (spiking neural networks), Este tipo de redes neuronales, calificadas por algunos como la tercera generación de redes neuronales, utilizan modelos de neurona que definen su comportamiento de forma más similar a las neuronas presentes en la biología, es decir, son más realistas desde el punto de vista fisiológico que las redes neuronales clásicas. Relacionados con este tipo de simulaciones, existen distintos campos de trabajo, por una parte se encuentran los neurofisiólogos que aplican la simulación de estas redes a la investigación sobre neuronas y circuitos nerviosos presentes en la biología. Para éstos, aquello fundamental en una simulación es que los resultados de ésta sean relativamente precisos numéricamente y que los modelos de neurona y red empleados aborden el grado de detalle suficiente. De esta forma, los resultados de las simulaciones pueden ser comparados con los datos obtenidos de la biología, a través normalmente de electrofisiología. Por otra parte, se encuentra el campo de la ciencia de la computación. En este campo, los ingenieros utilizan estas redes como elementos de computación para aplicarlos a la resolución de problemas. Para estas aplicaciones lo deseable es que las simulaciones sean eficientes y en algunos casos incluso que se ejecuten en tiempo real. Nuestro objetivo ha sido el desarrollo de una herramienta de simulación que por una parte soporte modelos neuronales con el grado necesario para que pueda ser utilizado en el campo de la fisiología y por otra parte sea lo suficientemente eficiente en términos de carga computacional de forma que pueda ser aplicada a problemas de ingeniería, como es el control de robots. El principal medio de transmisión de información en los circuitos nerviosos son los impulsos eléctricos (spikes) producidos por las neuronas como potenciales de acción. Estos impulsos, disparan cambios en la dinámica de las neuronas a las que llegan, pudiendo hacer que estas neuronas generen a su vez nuevos impulsos los cuales son propagados a otras neuronas. Una de las características de estos impulsos es que no se suelen producir de forma muy continua o frecuente. Esta dispersión en el tiempo puede ser aprovechada en el esquema de simulación empleado en la red neuronal, dando origen a los esquemas de simulación dirigidos por eventos (event-driven simulation). Tradicionalmente, cuando se requería simular redes neuronales de impulsos definidas por modelos relativamente complejos, se empleaban los llamados esquemas de simulación dirigidos por tiempo (time-driven simulation). En estos esquemas de simulación, se aplica un método genérico de resolución numérica de ecuaciones diferenciales (por ejemplo el método de Runge-Kutta o el método de Euler), el cual divide el tiempo en pequeños pasos de tiempo y en cada paso de tiempo se evalúan las ecuaciones que definen el modelo de neurona y se actualizan las variables de estado de cada neurona. Dado que estos métodos están basados en integración numérica, cuanto más cortos son los pasos de tiempo en los que se divide la simulación, tanto más precisos son los resultados obtenido por ésta, pero también más tiempo requiere la simulación para ejecutarse. En un esquema de simulación dirigido por eventos, las variables de estado de las neuronas son actualizadas sólo cuando reciben un evento que modifique su evolución normal. Estos eventos recibidos suelen ser los impulsos eléctricos que llegan de otras neuronas. Dado que estos impulsos no suelen ser muy abundantes, especialmente cuando se usa codificación dispersa (sparse coding), el número de actualizaciones neuronales realizadas es bajo y por tanto el número de operaciones requeridas para simular la red es bajo también. Con los cual, las simulaciones neuronales que usan este esquema suelen ser muy eficientes en tiempo. El inconveniente que presenta este esquema, es que los impulsos pueden llegar en cualquier momento a la neurona, luego se necesita una expresión matemática que permita calcular el valor de las variables de estado neuronales desde la última vez que fueron actualizadas hasta el momento en el que se ha recibido el nuevo impulso. Dado que los modelos de neurona complejos suelen estar definidos por sistema de ecuaciones diferenciales que no suelen ser susceptibles de ser integradas analíticamente, esta expresión matemática que permita actualizar las variables directamente, no existe. Por tanto, se necesita un método de resolución numérica de ecuaciones diferenciales para obtener los valores de las variables de estado neuronales. Sin embargo, no queremos ejecutar este tipo de métodos durante la simulación debido a su carga computacional. La solución propuesta es, en una fase previa a las simulaciones de las redes neuronales y utilizando un método resolución numérica, ejecutar un conjunto de simulaciones de una sola neurona para cada tipo neuronal y cada uno de sus posibles estados iniciales (dentro de un dominio razonable de valores para cada variable) y con una duración suficiente para que el estado neuronal se estabilice. Esto nos provee de todos los valores de las variables de estado neuronales que podemos necesitar durante la simulación de una red. Para agilizar el acceso a estos valores se almacenan en un conjunto de tablas de consulta (lookup tables), que junto con los metadatos necesarios para acceder a ellas, constituye para la fase real de simulación toda la información necesaria para caracterizar un tipo de neurona. De esta forma, se permite la ejecución de redes neuronales definidas por modelos relativamente complejos y de forma eficiente. Hemos empleado el esquema propuesto de simulación para redes con los siguientes modelos neuronales: "integración y disparo" (integrate-and-fire neuron) con sinapsis basadas en conductancia y con sinapsis eléctricas, células granulares cerebelares (las cuales presentan propiedades como resonancia, disparo en ráfaga (bursting) y oscilaciones subumbral) y Hodgkin-Huxley. Tomando como base las neuronas de tipo "integración y disparo", se ha evaluado la eficiencia en tiempo de computación y la precisión del esquema de simulación propuesto con respecto a otros métodos de simulación. También se ha probado la capacidad del modelo de sinapsis eléctrica para reproducir los fenómenos de sincronización. Finalmente se ha utilizado una red neuronal con estructura cerebelar para el control de un brazo robot en tiempo real incluyendo aprendizaje basado en plasticidad sináptica dependiente de la temporización de los impulsos (spike-timing-dependent plasticity).