Você está na página 1de 5

Implementacin de una Red Neuronal Pulsante o parametrizable en FPGA

Ivan Peralta1
1

Jos T. Molas1 e

Csar E. Mart 1,2 e nez

Hugo L. Runer1,2,3

Laboratorio de Ciberntica, Facultad de Ingenier Universidad Nacional de Entre R e a, os Ruta 11, Km. 10, Oro Verde, Entre R Argentina os, 2 Centro de Investigacin en Seales, Sistemas e Inteligencia Computacional (SINC(i)) o n Dpto. Informtica, Facultad de Ingenier - Universidad Nacional del Litoral a a CC217, Ciudad Universitaria, Paraje El Pozo, S3000, Santa Fe, Argentina 3 CONICET, Argentina

Abstract En este trabajo se presenta el dise o e implementacin de una red de neun o ronas pulsantes, con parmetros congurables a para utilizar en dispositivos tipo FPGA. Los parmetros congurables incluyen: cantidad de a neuronas en cada capa (entrada, oculta y salida), umbral de disparo de cada neurona, valor mximo de la funcin de respuesta neuronal, a o periodo refractario, retardos en la transmisin o de los pulsos entre cada neurona de cada capa y pesos de las sinapsis. Se detallan el funcionamiento, la estructura interna de cada neurona y sus conexiones con el resto. El funcionamiento de la red de neuronas pulsantes fue simulado e implementado en una placa que contiene una FPGA Spartan3E XC3S250E. Se presentan los resultados obtenidos en ambas etapas como validacin del procedimiento. o Keywords Redes FPGA, VHDL. 1. Introduccin o neuronales pulsantes,

contextos. La bsqueda de una analog ms cercana u a a a la realidad biolgica ha dado lugar recientemente a o la aparicin de las redes neuronales pulsantes (PNN, o del ingls Pulsed Neural Networks) [7]. e Las neuronas biolgicas procesan informacin eso o tructurada en el tiempo, por lo cual el fenmeno de o temporizacin es de crucial importancia en los clcuo a los realizados en los sistemas neuronales biolgicos. Es o importante tener en cuenta la frecuencia promedio de los potenciales de accin (PA), pero tambin se debe o e considerar la diferencia temporal entre estos potenciales. Las neuronas se comunican entre s en un lenguaje en el cual el signicado impartido a la neurona receptora es codicado en la sincronizacin de los potenciao les de accin. Estos conjuntos de potenciales de accin o o puede ser tratados como una seal. Una neurona puen de disparar(generar un PA) si dos PA en la entrada ocurren muy cercanas (en el tiempo), pero no disparar (o se inhibir) si las mismas dos PA cambian un a a poco su distancia (diferencia temporal entre los dos PA), sin importar si el intervalo que las separa es ms a largo o ms corto [4]. De esta manera la comunicaa cin, y tambin el clculo en las neuronas biolgicas o e a o diere completamente de la forma en la cual trabajan hasta ahora las computadoras y las redes neuronales articiales clsicas. a Si se puede codicar la informacin en la fase de los o potenciales de accin (o pulsos para las neuronas artio ciales), tambin se podr incorporar en los modelos e a de neuronas la habilidad de cambiar su comportamiento en funcin de la sincron de las seales de entrada. o a n Esto llevar a una regla de aprendizaje que permita a cambiar las propiedades temporales de las conexiones de la red, es decir a la idea de sinapsis dinmicas [8, 9]. a Tambin ha sido demostrado tericamente que la codie o cacin temporal es muy eciente cuando se necesita o un rpido procesado de la informacin [6]. Un aspecto a o muy importante al utilizar este tipo de redes neuronales, es la factibilidad de implementarlas directamente en un dispositivo FPGA (del ingls Field Programmae ble Gate Array) [2, 10]. Las FPGA son circuitos inte-

Las redes neuronales articiales (ANN, del ingls e Articial Neural Networks) estn compuestas por unia dades bsicas denominadas neuronas. Estas se encuena tran interconectadas mediante distintos pesos que determinan la intensidad con que interactuan dichas neuronas. Las ANNs actuales trabajan en base a neuronas que transmiten slo seales discretas de intensio n dad variable, todo est temporizado en la misma fora ma en que est temporizada una computadora digital, a en clicks de duracin invariable. Pero en las clulas o e vivas, la dimensin temporal, tanto en la seal de excio n tacin como en la respuesta, es tan importante como la o intensidad. Esta forma de trabajar de las ANNs se ha producido por una sobresimplicacin de los primeros o modelos biolgicos que aparentemente omitieron eso ta dimensin, que ahora aparece como crucial. Como o suele pasar, la simplicacin es vlida slo en algunos o a o

Autor correspondiente: lruner@bioingenieria.edu.ar

grados digitales cuyo comportamiento puede ser programado por el usuario. Permiten reemplazar grandes diseos digitales que antes se implementaban con comn ponentes discretos (como compuertas y ip-ops) por un solo integrado. Las FPGAs tienen una capacidad lgica de hasta millones de compuertas, incluyen ino terfaces programables para varios estndares de intera face elctrica y tienen bloques de funciones especiales e embebidos entre la lgica programable, tales como meo moria, multiplicadores o CPUs completas. Otra caracter stica importante es su capacidad de procesamiento paralelo. Esto es debido a que el funcionamiento de todas las estructuras lgicas implementadas pueden ser o sincronizadas mediante una unica seal de reloj. Con n esta caracter stica pueden ser utilizadas para cmputo o en tiempo real en muchas aplicaciones, incluyendo la que aqu se presenta. En la Figura 1 se muestra un esquema completo del proceso para entrenar y probar una PNN. Este trabajo no est focalizado en los algoritmos de entrenamiento a de la PNN y el entrenamiento se podr realizar antes a de programar la FPGA. Para entrenar la red existen distintos algoritmos tradicionales como evaluacin del o gradiente del error, mtodos estad e sticos, mtodos evoe lutivos y aprendizaje Hebbiano [5]. Otro aspecto que no incluye este trabajo son los mtodos de conversin e o de seales de entrada en trenes de pulsos. n

en la seccin dos se explica el modelo propuesto de la o red neuronal pulsante, en la tercera parte se detalla el diseo del a estructura y el programa de la red neuron nal, detallando cada componente y capa, en la cuarta seccin se explica la implementacin, simulacin y reo o o sultados, y en las secciones cinco y seis se detallan las conclusiones, trabajos futuros y agradecimientos. 2. Modelo propuesto de red neuronal pulsante

Seal de entrada

Codificacin en Pulsos

Modelo de PNN
W

Seal de Salida

Etapa de Entrenamiento

Mdulo de Entrenamiento Conversin Real - Entero

Etapa de Reconocimiento

Programador

PNN (FPGA)

Seal de Salida

La estructura de red neuronal pulsante consta de tres capas: capa de entrada, oculta y salida. Cada una de las neuronas de la capa de entrada se conectan con todas las neuronas de la capa oculta y todas las neuronas de la capa oculta se conectan con todas las neuronas de la capa de salida. En la modelizacin de una red pulsante existe un o compromiso entre la plausibilidad biolgica y el coso to en tiempo de ejecucin del modelo. En la prctica, o a uno de los modelos ms utilizados es el conocido como a Integra-y-dispara (IFM), cuya descripcin se preseno ta en la Figura 2 [3]. El funcionamiento puede describirse de la siguiente forma. Un pulso generado por la neurona j llega a la sinapsis con la neurona i, produciendo una corriente en el circuito RC, que representa las propiedades elctricas del soma de i. El circuito e RC acta como un integrador con prdida. El resultau e do de la integracin actual es el voltaje de respuesta o (f ) u(t tj ). Si muchos pulsos pre-sinpticos llegan en a un intervalo corto, entonces el voltaje total puede so(f ) brepasar el umbral , en algn tiempo ti . En ese u instante se genera un pulso de salida. Al mismo tiempo, el circuito se pone a tierra para llevar el voltaje a cero nuevamente. Para este modelo, el parmetro paa ra entrenar en cada neurona es la constante RC. Otra posibilidad es reemplazar el comportamiento dinmico a de la sinapsis con un ltro IIR o FIR. Los algoritmos de entrenamiento que se podr utilizar son los traan dicionales como el de retropropagacin, o alguno de o los no supervisados como los basados en la teor del a aprendizaje Hebbiano, pero estos no estn implemena tados en este trabajo.

Figura 1: Estructura funcional con otros mdulos que o se proyectan implementar. Este trabajo presenta una manera de utilizar las carter a sticas del lenguaje VHDL (VHDL representa la combinacin de VHSIC y HDL, donde VHSIC es o Very High Speed Integrated Circuit y HDL es Hardware Description Language) para denir distintas caracter sticas estructurales y variables numricas de la e red neuronal pulsante. Estos parmetros son denidos, a previamente a la programacin, en un archivo especial o de conguracin (packaging) y pueden ser fcilmente o a modicados para recongurar la red neuronal pulsante. La organizacin del trabajo es la siguiente: en la o seccin uno se presenta una introduccin al trabajo, o o

Figura 2: Esquema de funcionamiento del modelo Integra-y-dispara. Adaptado de [3]. Nuestro modelo est inspirado en el funcionamiena to del IFM pero utilizando seales de entrada y salin da binarias, adems de aritmtica entera. A manera a e de ejemplo, se explica a continuacin el funcionamieno

to de una neurona hipottica perteneciente a la capa e oculta de una red neuronal de dos neuronas de entrada y dos neuronas de salida. Esta neurona posee dos registros internos que se conectan a una salida de cada una de las neuronas de la capa de entrada, estos registros estn inicialmente con valor cero. En el momento en a que un pulso llega por una de las entradas, dichos registros internos comienzan a incrementar su valor describiendo una recta hasta llegar a un cierto umbral, la pendiente de dicha recta depende del peso de la conexin entre las dos neuronas involucradas. Una vez o llegado a ese umbral comienza a decaer restndole un a valor de uno (-1) en cada ciclo de reloj. En otro registro llamado suma se va almacenando la suma de los registros internos. En el instante en que la suma sobrepasa un UMBRAL determinado se dispara un pulso que entra al primer bit de los FIFOs (del ingls First e Input First Ouput) de salida, el pulso se dirigir hacia a las neuronas de salida con retardos determinados por la longitud de dichos FIFOs. 3. Dise o de la estructura y programa de la n red

3. 1.

Componente FIFO

Una manera de simular los retardos de manera eciente con una FPGA es utilizar estructuras de tipo colas (FIFO) de registros de bits. El principio se basa en utilizar un bit para modelar un pulso que es introducido al inicio del FIFO y luego de transcurridos cierta cantidad de pulsos de reloj, este bit se ve reejado en la salida del FIFO. La cantidad de registros del FIFO (largo de la estructura) determina el retardo de la conexin sinptica entre dos neuronas de distintas o a capas. 3. 2. Neurona de la capa de entrada

Las neuronas de la capa de entrada poseen: una uni ca seal de entrada, una seal de reset, una seal de n n n reloj y un vector de seales de salida de dimensin n o igual a la cantidad de neuronas de la capa oculta. Cada una de las seales del vector de salida se conectan n a una entrada de cada una de las neuronas de la capa oculta. 3. 3. Neurona de la capa oculta

La estructura de la red es similar a la utilizada en [1] para demostrar el funcionamiento del algoritgmo SpikeProp. La cantidad de neuronas de la red se detallan en la Tabla 1. Los parmetros como umbral a de suma, periodo refrctario, pesos (parte inferior de a la Tabla 1) fueron obtenidos por prueba y error. Este proceso consisti en ajustar los valores para que la o PNN genere al menos un pulso en la capa de salida, al ser estimulada con pulsos en la capa de entrada. La capacidad de congurar la PNN fue implementada a travs de un archivo que contiene un packaging e en lenguaje VHDL. Para evitar problemas de sincronismo, cada componente recibe la misma seal de reloj. n La PNN implementada trabaja esclusivamente con valores enteros. Cada tipo de neurona segn la capa, fue u programada en un archivo VHDL como componentes distintos. Se programaron tres componentes para cada capa: de entrada, oculta y salida, y cada uno contiene una cantidad variable de FIFOs segn su cantidad de u salidas. Tambin se program un componente para el e o FIFO y un componente PNN que contiene a todas las neuronas. Se aprovech la ventaja de trabajar con un lenguaje o jerrquico para la modelizacin de los distintos coma o ponentes, desde uno sencillo a uno ms complejo. Paa ra modelizar los distintos retardos sinpticos entre las a neuronas se implement un componente FIFO a nivel o de bits, con una longitud congurable que determina el retardo de la conexin. Se dise un componente bao no se que modela una neurona y luego por medio de los parmetros y un comando que permite la replicacin a o de componentes, se conguran las neuronas de cada capa en particular.

Las neuronas de la capa oculta poseen: un vector de seales de entrada de dimensin igual a la cantidad de n o neuronas de la capa anterior (entrada), un vector de valores de pesos de igual dimensin que el vector de las o seales de entrada, la seal de reset, la seal del reloj y n n n un vector de seales de salida de igual dimensin que n o la cantidad de neuronas de la capa de salida. Cada una de las seales del vector de salida se conecta a n una entrada de las neuronas de la capa de salida. 3. 4. Neurona de la capa de salida

Las neuronas de la capa de salida poseen: un vector de seales de entrada de dimensin igual a la cantidad n o de neuronas de la capa oculta, un vector de valores de pesos de igual dimensin que el vector de las seales o n de entrada, una unica seal de salida y las seales de n n reset y reloj. La Figura 3 muestra esquemticamente la arquiteca tura de cada tipo de neurona. 4. Implementacin, simulacin y resultados o o

El diseo fue implementado en un kit de desarron llo Basys Board de la empresa Digilent que contiene una FPGA Spartan3E XC3S250E con una capacidad equivalente de 250 mil compuertas lgicas. Se asignao ron dos pulsadores a las neuronas de la capa de entrada, dos LEDs a las neuronas de la capa de salida, la seal de reset a un pulsador y la seal de reloj de n n la placa a un divisor de frecuencia para lograr observar los resultados por medio de los LEDs. La Figura 4 muestra una fotograf del kit de desarrollo experia mentado. Durante la simulacin software se lograron o varios pulsos de las neuronas de salida a partir de un generador de pulsos que fue programado como entrada. El software fue impactado en la FPGA y se congur un pulsador para poder introducir los pulsos de o

Figura 4: Imagen del kit de desarrollo empleado para implementar la PNN en la FPGA.

Tabla 1: Conguracin de la red pulsante. o


Parametro Neuronas en la capa de entrada Neuronas en la capa oculta Neuronas en la capa de salida Umbral de Suma Valor Mximo de Registros a Per odo Refractario Longitud FIFOs Capa de Entrada Longitud FIFOs Capa Oculta Longitud FIFOs Capa de Salida Pesos de Capas Entrada-Oculta Pesos de Capas Oculta-Salida Valor 2 3 2 100 60 10 {(3,6,8);(2,8,4)} {(10,3);(5,6);(7,8)} {(3,5)} {(2,5,1);(3,8,4)} {(2,2);(1,2);(5,14)}

Figura 3: Estructura interna de una neurona de la capa de entrada (arriba), capa oculta (medio) y capa de salida (abajo).

entrada, y se vericaron los mismos resultados que con la simulacin. o Para la simulacin se utiliz el software ISIM (vero o sin 12.2 (nt)) de la empresa Xilinx Inc. Se congur en o o el archivo de estructuras una red neuronal pulsante de dos neuronas de entrada, tres ocultas y dos de salida. La Tabla 1 muestra los valores de los pesos y retardos utilizados en la simulacin e implementacin. La o o Figura 5 muestra el comportamiento interno de una neurona de la capa oculta para un umbral de registros de 60 unidades y un umbral de suma de 100 unidades. Con la conguracin utilizada se lograron obtener o tres pulsos de salida retardados en el tiempo luego de un est mulo inicial (pulso de entrada) que fue el mismo resultado obtenido por medio de la simulacin (Figura o 6). El almacenamiento de datos se realiz con registros o de 32 bits. Sin embargo, dado que los valores guardados no necesitan una resolucin tan elevada, se podr o an utilizar registros de menor tamao, por ej. 8 bits, a n n de reducir el consumo de recursos del dispositivo. Un aspecto importante a mencionar es que la velocidad de entrada de datos es la velocidad del reloj, es

Figura 5: Valores de los registros internos y la suma de ellos de una neurona de la capa oculta, en funcin o del tiempo (pulsos de reloj).

Referencias e [1] S.M. Bohte, J.N. Kok, and H. La Poutr. Errorbackpropagation in temporally encoded networks of spiking neurons. Neurocomputing, 48(1-4):17 37, 2002. [2] Pedro Ferreira, Pedro Ribeiro, Ana Antunes, and Fernando Dias. Articial neural networks processor: A hardware implementation using a FPGA. In Jrgen Becker, Marco Platzner, and Serge Veru nalde, editors, Field Programmable Logic and Application, volume 3203 of Lecture Notes in Computer Science, pages 10841086. Springer Berlin / Heidelberg, 2004. 10.1007/978-3-540-30117-2132. Figura 6: Pantalla del simulador donde se pueden ver distintas seales y valores de registros como: seal de n n reloj (clk), seales de entrada (entrada[0:1]) , valon res de los pesos de las sinapsis (pesos[0:1]) y seales n de salida (salida[0:1]). [3] Wulfram Gerstner, Ritz Raphael, and van Hemmen Leo. Why spikes? Hebbian learning and retrieval of time-resolved excitation patterns. Biological Cybernetics, 69:503515, 1993. [4] Terrence J. Precision of pulse-coupled networks of integrate-and-re neurons. Network: Computation in Neural Systems, 12(2):215233, 2001. [5] Andrzej Kasinski and Filip Ponulak. Comparison of supervised learning methods for spike time coding in spiking neural networks. Int. J. Appl. Math. Comput. Sci, 16(1):101113, 2006. [6] W. Maass. Paradigms for computing with spiking neurons. In J. L. van Hemmen, J. D. Cowan, and E. Domany, editors, Models of Neural Networks. Early Vision and Attention, volume 4, chapter 9, pages 373402. Springer (New York), 2002. [7] Wolfgang Maass. Computing with spiking neurons. In W. Maass and C. M. Bishop, editors, Pulsed Neural Networks, pages 5585. MIT Press (Cambridge), 1999. Ref. 32. [8] Wolfgang Maass and Anthony M. Zador. Computing and learning with dynamic synapses. 1999. [9] Maurizio Mattia and Paolo Del Giudice. Ecient event-driven simulation of large networks of spiking neurons and dynamical synapses. Neural Computation, 12:23052329, 2000. [10] Horacio Rostro-Gonzalez, Jose Hugo BarronZambrano, Cesar Torres-Huitzil, and Bernard Girau. Low-cost hardware implementations for discrete-time spiking neural networks. In Cinqui`me confrence plni`re franaise de Neurose e e e c ciences Computationnelles, Neurocomp10, Lyon, France, Aug 2010. paper ID #34 Partially supported by the CorTex-Mex project and the SEP and the CONACYT of Mexico.

decir por cada seal de reloj puede ingresar un pulso n a cualquiera de las neuronas de entrada. El perido de o retardo en la aparicin de la salida ante una entrada o determinada, depende de los pesos y los retardos (longitudes de los FIFOs) entre las neuronas de cada capa. A medida que los pesos aumentan y las longitudes de los FIFOs son ms pequeos, el retardo en la aparicin a n o de la salida de la red se reduce. Finalmente, para estimar el tamao de la red que n se podr implementar con la FPGA Spartan3E y el a diseo actual, se aument el nmero de neuronas de n o u la capa media hasta colmar el dispositivo, resultando un mximo de 5 neuronas, ocupando el 96 % de sus a slices. De manera similar se procedi con una Virtex5 o XC5VFX30T y se concluy que el mismo diseo ocuo n par slo el 4 % de sus slices. a o 5. Conclusiones y trabajos futuros

En este trabajo se present el diseo e implementao n cin de una red neuronal pulsante mediante una FPo GA. En futuros trabajos se disearn e implementarn n a a otros mdulos, como el de entrenamiento o-line de o la PNN a partir de las distintas estrategias de aprendizaje supervisado existentes. Una vez entrenada la PNN podr realizar alguna tarea en tiempo real, por a ejemplo, la clasicacin de fonemas. Otro aspecto a o considerar es la estrategia de codicacin adecuada de o seales analgicas en trminos de pulsos temporales, n o e para permitir seales de entrada arbitrarias en tiempo n real, por ejemplo a partir de un generador de seales o n bien utilizando seales obtenidas en ambientes reales. n 6. Agradecimientos

Agradecemos al Dr. Alfredo Rosado Muoz por su n colaboracin y asesoramiento, que hicieron posible la o realizacin del presente trabajo. o

Você também pode gostar