Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
METHOD AND SYSTEM FOR CONVERTING PULSED-PROCESSING NEURAL NETWORK WITH INSTANTANEOUS INTEGRATION SYNAPSES INTO DYNAMIC INTEGRATION SYNAPSES
Document Type and Number:
WIPO Patent Application WO/2013/167780
Kind Code:
A1
Abstract:
The invention solves the technical problem associated with finding a way of making contributions as if using dynamic synapses, but using the simplest neural circuits possible, such as with instantaneous integration synapses. In this way, each neuron would be capable of making the correct decision, thereby allowing correct recognition on the part of the neural network. For this purpose, each input pulse is replaced with a train of "r" pulses and the "weight" value is attenuated by a value in the vicinity of "r". The "r" pulses are spaced apart for a characteristic time. The spacing of the "r" pulses may or may not be equidistant. Consequently, if a front of simultaneous pulses arrive at the neuron, originating from multiple neurons in the preceding layer, the trains of pulses are interleaved with one another and they all contribute to the decision of the neuron as to whether or not it should be activated.

Inventors:
SERRANO GOTARREDONA TERESA (ES)
LINARES BARRANCO BERNABE (ES)
Application Number:
PCT/ES2013/070285
Publication Date:
November 14, 2013
Filing Date:
May 07, 2013
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
CONSEJO SUPERIOR INVESTIGACION (ES)
International Classes:
G06F17/00
Other References:
JACOB VOGELSTEIN R ET AL.: "Dynamically Reconfigurable Silicon Array of Spiking Neurons With Conductance-Based Synapses.", IEEE TRANSACTIONS ON NEURAL NETWORKS, vol. 18, no. 1, 1 January 2007 (2007-01-01), PISCATAWAY, NJ, US, pages 253 - 265, XP011152920
ROBERT MILL ET AL.: "A Model of Stimulus-Specific Adaptation in Neuromorphic Analog VLSI.", IEEE TRANSACTIONS ON BIOMEDICAL CIRCUITS AND SYSTEMS, vol. 5, no. 5, 1 October 2011 (2011-10-01), US, pages 413 - 419, XP011358196
W. GERSTNER: "Pulsed Neural Networks", 1999, MIT PRESS, article "Spiking Neurons"
Y. LECUN; L. BOTTOU; Y. BENGIO; P.HAFFNER, CONVOLUTIONAL NEURAL NETWORKS
"Gradient-based learning applied to document recognition", PROCEEDINGS OF THE IEEE, vol. 86, November 1998 (1998-11-01), pages 2278 - 2324
MASQUELIER, T.; THORPE, SJ: "Unsupervised learning of visual features through spike timing-dependent plasticity", PLOS COMPUT. BIOL, vol. 3, 2007, pages E31
MASQUELIER, T.; GUYONNEAU, R.; THORPE, SJ: "Spike timing dependent plasticity finds the start of repeating patterns in continuous spike trains", PLOS ONE, vol. 3, 2008, pages EL377
MASQUELIER, T.; THORPE, SJ: "Learning to recognise objects using waves of spikes and spike timing-dependent plasticity", PROC. OF THE 2010 IEEE INT JOINT CONF ON NEURAL NETWORKS, 2010
L. CAMUS-MESA; C.ZAMARRENO-RAMOS; A. LINARES-BARRANCO; A. ACOSTA-JIMENEZ; T. SERRANO-GOTARREDONA; B. LINARES-BARRANCO: "An Event-Driven Multi-Processor Convolution Kernel Module for Event-Driven Vision Sensors", IEEE J. OF SOLID-STATE CIRCUITS, vol. 47, no. 2, February 2012 (2012-02-01), pages 504 - 517
L. CAMUS-MESA; A.ACOSTA-JIMENEZ; C. ZAMARRENO-RAMOS; T. SERRANO-GOTARREDONA; B.LINARES-BARRANCO: "A 32x32 Pixel Convolution Processor Chip for Address Event Vision Sensors with 155ns Event Latency and Throughput 20Meps", IEEE TRANS. CIRC. AND SYST, vol. 58, no. 4, April 2011 (2011-04-01), pages 777 - 790
L. CAMUS-MESA; C. ZAMARRENO-RAMOS; A. LINARES-BARRANCO; A. ACOSTA-JIMENEZ; T. SERRANO-GOTARREDONA; B. LINARES-BARRANCO: "An Event-Driven Multi-Processor Convolution Kernel Module for Event-Driven Vision Sensors", IEEE J. OF SOLID-STATE CIRCUITS, vol. 47, no. 2, February 2012 (2012-02-01), pages 504 - 517
L. CAMUS-MESA; A. ACOSTA-IMÉNEZ; C ZAMARRENO-RAMOS; T. SERRANO-GOTARREDONA; B. LINARES-BARRANCO: "A 32x32 Pixel Convolution Processor Chip for Address Event Vision Sensors with 155ns Event Latency and Throughput 20Meps", IEEE TRANS. CIRC. AND SYST, vol. 58, no. 4, April 2011 (2011-04-01), pages 777 - 790
See also references of EP 2849083A4
Attorney, Agent or Firm:
UNGRIA LÓPEZ, Javier (ES)
Download PDF:
Claims:
REIVINDICACIONES

1. - Método conversor de red neuronal de procesado por impulsos con sinapsis de integración instantánea a integración con sinapsis dinámica, caracterizado por que cada impulso o evento Ei de entrada recibido en un instante "t " en un sistema de procesado por impulsos, dicho impulso o evento es repetido "r" instantes futuros a la vez que el efecto de dicho impulso o evento Ei es atenuado por un módulo destino.

2. - Método según la reivindicación 1, caracterizado por que comprende los siguientes pasos:

i) por cada evento o impulso de entrada recibido en un instante "t", memorizar los valores de unos "p" parámetros asociados a cada evento o impulso para ser recuperados en un número finito "r" de instantes futuros t,+tn (n=l, 2, ... r); ii) por cada evento o impulso de entrada recibido, adicionalmente enviar el evento o impulso a su destino;

iii) escribir en "r" posiciones de un módulo de memoria los parámetros del evento o impulso recibido; las posiciones de este módulo de memoria se van leyendo una a una a velocidad constante; según sean los instantes futuros ti+tn en que se deseen recuperar las "r" repeticiones del evento o impulso;

iv) recuperar de forma temporizada los "p" parámetros del evento o impulso en el número finito "r" de instantes futuros, siendo los intervalos de temporización fijos o variables;

v) extraer el evento en uno de los "r" instantes futuros, arbitrar mediante un arbitrador el envío del evento recuperado de la memoria con el envío de un evento nuevo que está siendo recibido en el mismo instante de tiempo ti; y, vi) debilitar los pesos en el módulo de destino, reprogramando éste con los valores de los pesos debilitados, para que el efecto de sustituir cada evento original por un número finito "r" de eventos sea equivalente.

3. - Bloque Planifícador de Eventos (1) para convertir una red neuronal de procesado por impulsos con sinapsis de integración instantánea en integración con sinapsis dinámica; dicho bloque Planifícador de Eventos es conectable a su salida con un bloque Enrutador de Eventos (12) y a su entrada con un módulo origen (10) que envía un flujo de impulsos o eventos Ei; el bloque Planifícador de Eventos (1) está caracterizado porque comprende:

• un módulo de memoria (5);

• un Arbitrador de Eventos de Salida (2);

• una máquina de estados finitos "FSM" (4) que comprende un registro de puntero (3), donde la máquina de estados finitos (4) escribe los "p" parámetros del evento en el módulo de memoria (5) recibidos en un instante "t " para que sean enviados al Arbitrador de Eventos de Salida (2) en "r" instantes de tiempo futuros;

• un Gestor de Eventos de Entrada (7) que envía directamente el evento al Arbitrador de Eventos de Salida (2) y, al mismo tiempo, a la máquina de estados finitos (4);

de tal forma que el arbitrador de eventos de salida (2) genera una señal que es el resultado de arbitrar cada evento o impulso entrante y el evento o impulso recuperado de la máquina de estados finitos (4), siendo dicha señal enviada a una Matriz Neuronal (13), donde es atenuada por un factor entorno a "r" , vía el Enrutador de Eventos (12).

4. - Bloque Planifícador de Eventos (1) según la reivindicación 3, caracterizado por que la máquina de estados finitos (4) comprende un registro de puntero (3) cuyo índice apunta a una posición del módulo de memoria (5), incrementándose dicho índice en un una posición después de un tiempo At de incremento de unidad temporal.

5 - Bloque Planifícador de Eventos (1) según una cualquiera de las reivindicaciones 3 a 4, caracterizado por que el módulo de memoria (5) es un registro circular de Q registros que comprende un número predeterminado de Q posiciones, cada una de las cuales comprende un bit de "ocupado" (6) y con capacidad de almacenamiento de los "p" parámetros del evento.

6. - Bloque Planificador de Eventos (1) según la reivindicación 1, caracterizado porque la máquina de estados finitos (4) previamente a escribir los "p" parámetros del evento en una de las "r" posiciones del módulo de memoria, cada una de las cuales se leerá en un instante tt+tn, detecta si el bit de "ocupado" (6) está activado, en cuyo caso los "p" parámetros del evento se escribirán en la posición siguiente o anterior del módulo de memoria (5) cuyo bit de "ocupado" (6) esté desactivado; en caso contrario, los "p" parámetros del evento se escriben en la posición del módulo de memoria (5) que se leerá en el instante t,+tn y se activa el bit de "ocupado" (6) de dicha posición de memoria.

7. - Bloque Planificador de Eventos (1) según una cualquiera de las reivindicaciones 3 a 6, caracterizado porque la máquina de estados finitos (4), para el instante de tiempo

"t ", lee los "p" parámetros del evento comprendidos en la posición del módulo de memoria (5) apuntada por el índice del registro de puntero (3) si el bit de "ocupado" (6) está activado, desactiva dicho bit de "ocupado" (6) y envía dichos "p" parámetros al arbitrador de eventos de salida (2).

8. - Bloque Planificador de Eventos (1) según una cualquiera de las reivindicaciones 3 a 7, caracterizado porque la máquina de estados finitos "FSM" (4) escribe los "p" parámetros del evento cambiando la polaridad del mismo en el módulo de memoria (5) para que sean enviados al Arbitrador de Eventos de Salida (2) en "r2" instantes de tiempo futuros posteriores a los "r" instantes de tiempo.

9 - Extractor de Mapas de Características (11B) conectable a su entrada con un módulo origen (10) del que recibe unos impulsos o eventos Ei; dicho extractor de mapas de características (11B) comprende un bloque Enrutador de Eventos (12); el extractor de mapas de características (1 IB) está caracterizado porque adicionalmente comprende el bloque Planifícador de Eventos (1) definido en una cualquiera de las reivindicaciones 1 a 5 y un bloque Matriz Neuronal (13) modificado.

10.- Extractor de Mapas de Características (1 1B) según la reivindicación 9, caracterizado porque en el bloque Matriz Neuronal (13) modificado, los pesos son debilitados tal que el efecto de sustituir cada evento original por un número finito "r" de eventos procedentes del bloque Planifícador de Eventos, sea equivalente.

Description:
Método y sistema conversor de red neuronal de procesado por impulsos con sinapsis de integración instantánea en integración con sinapsis dinámica. DESCRIPCIÓN

CAMPO DE LA INVENCIÓN

La presente invención se encuadra en el campo de los circuitos electrónicos, en particular circuitos integrados de procesado por impulsos que emulan el procesado neurológico de las neuronas biológicas.

ESTADO DE LA TÉCNICA

En neurociencia computacional se estudian algoritmos que imitan los procesamientos neuronales para efectuar algún tipo de función de alto nivel, como el reconocimiento automático de objetos en visión artificial. En estos sistemas es muy habitual emplear sinapsis con dinámica. Al emplear sinapsis con dinámica, el efecto que un impulso nervioso procedente de una neurona tiene sobre otra es tal que el estado interno de ésta última evoluciona de una forma parecida a como se indica en la Fig. 1.

Cada impulso de entrada (14, 15, y 16) altera el estado de la neurona destino de manera que añade una zona inicial que sube a una cierta velocidad, seguida de una descarga a velocidad más lenta. Por ejemplo, el primer impulso de entrada (14) provoca el transitorio (17) en el estado de la neurona. Las contribuciones de los impulsos sucesivos (15 y 16) añaden las correspondientes contribuciones (18 y 19) dando lugar a una contribución total (20) que es la suma de las partes (17, 18 y 19). De esta manera, el efecto del impulso se prolonga durante un tiempo de unos cuantos milisegundos. Esto es muy convencional en el estado actual de la neurociencia computacional, como por ejemplo se describe en: W. Gerstner, "Spiking Neurons, " Ch. 1 in Pulsed Neural Networks, W. Maass and C. M. Bishop (Eds.), MIT Press, Cambridge MA, 1999.

Cuando se diseñan sistemas neuronales de visión artificial para reconocimiento de objetos, es habitual emplear estructuras jerárquicas como por ejemplo la que se muestra en la Fig.2 del tipo denominadas "Convolutional Neural Networks": Y. LeCun, L. Bottou, Y. Bengio, and P. Haffner. "Gradient-based learning applied to document recognition ", Proceedings of the IEEE , vol. 86, pp. 2278-2324, November 1998.

En estas redes, el sensor de visión (21) envía información a la primera capa de procesamiento (24). Esta primera capa extrae características (en inglés "features") muy simples de zonas pequeñas del campo visual. Por ejemplo, es muy usual emplear una matriz de filtros de Gabor, cada uno de los cuales identifica "segmentos" cortos a distintas orientaciones y escalas. Así, cada uno de los filtros (22), de la primera capa activaría aquellos píxeles donde se encuentre centrado un pequeño segmento (de varios píxeles de longitud y espesor, según la escala) de una cierta orientación. A estos filtros (como el 22), presentes en todas las capas, se les denomina "mapa de características" (o "feature map" en inglés). Cada neurona en un mapa de características envía sus impulsos a "campos proyectivos" (23) en mapas de características de las capas destino. De esta manera, la información se transmite a los mapas de características de la siguiente capa, la cual agrupa segmentos para identificar "trazos". La siguiente capa (26) agrupa "trazos" para formar y reconocer figuras más complejas, y así sucesivamente hasta reconocer objetos independientemente de su tamaño y orientación.

En un sistema de sensado visual y procesamiento por impulsos, como los biológicos, cada píxel (o neurona) en una capa recibe información de vecindarios de la capa anterior. Esto se ilustra en la Fig. 3.

Así por ejemplo, si se presenta la letra "A" a la entrada, se activan en la primera capa (32) aquellos píxeles que detectan los segmentos orientados (35 A, 35B, 35C). La segunda capa (33) identificaría, por ejemplo, intersecciones características entre segmentos. Y la tercera capa (34) agruparía estos últimos para identificar la letra "A" o descartar otras enviando impulsos negativos o inhibitorios. En todo este proceso, cada píxel (o neurona) en una capa recibe impulsos sucesivos tanto positivos como negativos de varios vecindarios de las capas anteriores, y debe tomar la decisión de identificar o no si está presente la característica que dicho píxel (neurona) define. Así, si se presenta la letra "A" como un flash, el sensor visual envía un número reducido de impulsos eléctricos desde los píxeles que sensaron la "A". Los píxeles (neuronas) de las siguientes capas irán recibiendo impulsos positivos y negativos de vecindarios de píxeles de la capa anterior, que determinarán si la característica a detectar por dicha neurona se encuentra presente o no. Para que una neurona pueda determinar si está presente o no la característica que ella representa, debe reunir la contribución de un número seguro de impulsos positivos y negativos de la capa anterior. Para evitar que los primeros impulsos que lleguen induzcan a la neurona a tomar una decisión errónea, la naturaleza emplea el método descrito en la Fig. 1, que corresponde a un comportamiento de integración sináptico con dinámica. Esto es, cada vez que se recibe un impulso, el estado de la neurona crece primero (por ejemplo, en las neuronas biológicas este tiempo suele ser de pocos milisegundos) hasta alcanzar un máximo, y después se relaja volviendo a su estado de reposo. Si el impulso recibido es positivo aumenta el estado, y si es negativo disminuye. De esta manera, cuando la neurona reciba todo un frente de impulsos esparcidos en pocos milisegundos, sus contribuciones serán agregadas y restadas en la forma indicada en la Fig. 1. Esto permite que cada neurona tenga en cuenta la contribución de un gran número de impulsos que lleguen en una ventana de tiempo de pocos milisegundos, sin tomar una decisión precipitada con solo los primeros que lleguen.

Este tipo de modelado matemático se emplea comúnmente entre los investigadores de neurociencia computacional que desarrollan programas software emuladores de los procesos neuronales, tales como: W. Gerstner, "Spiking Neurons, " Ch. 1 in Pulsed Neural Networks, W. Maass and C. M. Bishop (Eds.), MIT Press, Cambridge MA, 1999; Masquelier, T., and Thorpe, S. J. (2007). Unsupervised learning of visual features through spike timing dependent plasticity. PLoS Comput. Biol. 3, e31. Masquelier, T., Guyonneau, R., and Thorpe, S. J. (2008). Spike timing dependent plasticity finds the start of repeating patterns in continuous spike trains. PLoS ONE 3, el377; y, Masquelier, T., and Thorpe, S. J. (2010). "Learning to recognize objects using waves of spikes and spike timingdependent plasticity, " in Proc. of the 2010 IEEE Int. Joint Conf. on Neural Networks, Barcelona.

Sin embargo, en realizaciones de circuitos hardware resulta muy complejo y caro hacer circuitos de neuronas con sinapsis dinámicas que respondan de la manera indicada en la Fig.1. En realizaciones de circuitos, dado que se pretende integrar en un mismo microchip muchos miles o millones de neuronas, es imprescindible simplificar al máximo cada neurona. En consecuencia, es muy habitual, en una realización digital, emplear neuronas muy simples como la indicada en la Fig. 4, que realizan un método de integración sináptico instantáneo, es decir sinapsis sin dinámica.

En la figura 4 se muestra una realización digital de un circuito de una neurona. Cada vez que la neurona (40) recibe un impulso de entrada (41), se suma un "peso" (48) a un registro de n bits (47) que representa el "estado" de la neurona. El "peso" que se suma depende de la neurona de la que procede el impulso de entrada, y puede estar almacenado en una memoria local compartida por todas las neuronas. Esto se realiza por ejemplo en L. Camuñas-Mesa, C. Zamarreño-Ramos, A. Linares-Barranco, A. Acosta- Jiménez, T. Serrano-Gotarredona, and B. Linares-Barranco, "An Event-Driven Multi- Kernel Convolution Processor Module for Event-Driven Vision Sensors, " IEEE J. of Solid-State Circuits, vol. 47, No. 2, pp. 504-517, Feb. 2012 o en L. Camuñas-Mesa, A. Acosta- Jiménez, C. Zamarreño-Ramos, T. Serrano-Gotarredona, and B. Linares- Barranco, "A 32x32 Pixel Convolution Processor Chip for Address Event Vision Sensors with 155ns Event Latency and 20Meps Throughput, " IEEE Trans. Circ. and Syst. Part-I, vol. 58, No. 4, pp. 777-790, April 2011. Conforme van llegando impulsos de entrada se suman o restan los pesos (según sean impulsos positivos o negativos). Para ello se usa un circuito sumador/restador (42). El estado de la neurona se compara, mediante un circuito comparador (44), en cada instante con un valor "umbral" (43). Cuando el estado exceda del "umbral", el registro se resetea mediante una señal de "reset" (46) a un valor de reposo y la neurona envía un impulso por su salida (45).

En el caso de emplear "Convolutional Neural Networks" (como en las Figuras 2 y 3) con módulos hardware de Representación de Evento de Dirección "AER" (Address Event Representation), los dispositivos de integración sináptica instantánea comprenderían una multitud de bloques extractores de mapas de características. Cada bloque extractor de mapas de características del estado de la técnica, a su vez consiste en dos bloques: un bloque Enrutador de Eventos y un bloque Matriz Neuronal. El bloque Matriz Neuronal es el que contiene una matriz (o "array" en inglés) de circuitos digitales como el mostrado en la figura 4, donde los "pesos" que representan el "estado" de la neurona son programados según las necesidades de cada realización.

La Fig. 5a) muestra la evolución temporal del estado de la neurona, cuando recibe impulsos de entrada positivos y negativos (realizando integración sináptica instantánea) hasta alcanzar el umbral y enviar su propio impulso de salida. Dado que cada neurona debe detectar si recibe una serie de características dentro de una ventana temporal, es deseable dotarla de un mecanismo de descarga de su estado, tal y como se ilustra en la Fig. 5b). Esto se puede hacer, por ejemplo, enviando periódicamente a todas las neuronas unos impulsos negativos débiles. Esto se hace así, por ejemplo, en filtros convolucionadores por eventos (impulsos) en realizaciones digitales como los descritos en L. Camuñas-Mesa, C. Zamarreño-Ramos, A. Linares-Barranco, A. Acosta- Jiménez, T. Serrano-Gotarredona, and B. Linares-Barranco, "An Event-Driven Multi-Kernel Convolution Processor Module for Event-Driven Vision Sensors, " IEEE J. of Solid- State Circuits, vol. 47, No. 2, pp. 504-517, Feb. 2012 o en L. Camuñas-Mesa, A. Acosta- iménez, C Zamarreño-Ramos, T. Serrano-Gotarredona, and B. Linares- Barranco, "A 32x32 Pixel Convolution Processor Chip for Address Event Vision Sensors with 155ns Event Latency and 20Meps Throughput, " IEEE Trans. Circ. and Syst. Part-I, vol. 58, No. 4, pp. 777-790, April 2011.

Sin embargo, el método ilustrado en las Fig. 4 y 5 es tal que la contribución de cada impulso de entrada es instantáneo (es decir, es un método de sinapsis instantánea), a diferencia de cómo se hacía la contribución en la Fig. 1 (es decir, mediante un método de sinapsis con dinámica). Por tanto, las neuronas no esperan a calcular la contribución total de todos los eventos que llegarían en una ventana de tiempo. Al contrario, si llegan unos pocos impulsos positivos que hagan llegar el estado de la neurona al umbral (I th ), la neurona toma la decisión de activarse, aunque inmediatamente después llegaran muchos impulsos negativos. La consecuencia de efectuar las contribuciones de los impulsos de esta manera instantánea es que las neuronas van tomando decisiones erróneas y la capacidad de efectuar reconocimiento de la red neuronal se pierde.

Por tanto, el problema técnico planteado en el estado de la técnica es encontrar una forma de efectuar las contribuciones como si se emplearan sinapsis dinámicas, pero empleando circuitos neuronales lo más simples posibles como con las sinapsis de integración instantánea. De esa manera, cada neurona sería capaz de tomar la decisión correcta y ello permitiría un correcto reconocimiento por parte de la red neuronal. DESCRIPCIÓN DE LA INVENCIÓN

La presente invención resuelve el problema técnico planteado, tomando como base la Fig. 5b), esto es, una neurona con relajación con método de sinapsis de integración instantánea. La Fig. 6 ilustra el efecto de la presente invención sobre los impulsos de entrada recibidos a la entrada de la neurona. Cada impulso de entrada (52) es reemplazado por un tren de "r" impulsos (51) y el valor de "peso" (es decir, el efecto del impulso) se atenúa asimismo por un valor entorno a "r". Los "r" impulsos se espacian durante un tiempo característico. Este tiempo característico es de unos pocos milisegundos en las neuronas biológicas, pero en una aplicación de, por ejemplo, visión artificial este tiempo se adaptaría a la naturaleza y velocidad de la realidad visual bajo observación. El espaciado de los "r" impulsos puede ser equidistante o no. Esto permite que si llegara un frente de impulsos simultáneos a la neurona, procedentes de varias neuronas de la capa anterior (en una ventana temporal de milisegundos), los trenes de impulsos se intercalarían entre sí y todos contribuirían en la decisión de la neurona de activarse o no.

La consecuencia es que de esta manera se emula un comportamiento de sinapsis con dinámica (no instantánea) y las neuronas no toman una decisión precipitada con los primeros impulsos que lleguen. Al contrario, al permitir intercalar trenes de impulsos más débiles, es posible consensuar la contribución procedente de un número mayor de neuronas que envíen sus impulsos durante los mismos milisegundos. El resultado es que se consigue emular el comportamiento biológico de las sinapsis con dinámica que se describe en la Fig. 1, sin necesidad de complicar la circuitería interna de las neuronas del chip que siguen siendo circuitos sencillos que realizan una integración sináptica instantánea, como la mostrada en la Fig. 4. La presente invención resuelve el problema técnico planteado distribuyendo durante un intervalo de tiempo más prolongado el efecto de la contribución instantánea de un impulso de entrada a una neurona artificial.

Para ello, en un primer aspecto de la presente invención, se describe un bloque Planificador de Eventos para convertir una red neuronal de procesado por impulsos con sinapsis de integración instantánea en integración con sinapsis dinámica. Como se ha mencionado anteriormente, hay redes neuronales en el estado previo de la técnica que consisten en un bloque Enrutador de Eventos ("Event Router") y un bloque Matriz Neuronal ("Neuron Array") interconectados entre sí para formar un dispositivo de integración sináptica instantánea, donde el Enrutador de eventos recibe a su entrada un flujo de impulsos o eventos Ei procedentes de un módulo origen.

El novedoso bloque Planificador de Eventos se dispone entre el módulo de origen y el bloque Enrutador de Eventos. Dependiendo de la forma de realización de la invención, el bloque Planificador de Eventos puede estar dentro del extractor de mapas de características (comprendido en el dispositivo de integración sináptica instantánea) o constituir una entidad propia. En una realización preferente, el novedoso bloque Planificador de Eventos ("Event Scheduler") comprende: i) un módulo de memoria; ii) un Arbitrador de Eventos de Salida; iii) una máquina de estados finitos (FSM) que comprende un registro de puntero, donde la máquina de estados finitos escribe los "p" parámetros del evento en el módulo de memoria recibidos en un instante "t " para que sean enviados al Arbitrador de Eventos de Salida en "r" instantes de tiempo futuros; y, iv) un Gestor de Eventos de Entrada que envía directamente el evento al Arbitrador de Eventos de Salida y, al mismo tiempo, a la máquina de estados finitos. De tal forma que el Arbitrador de Eventos de Salida genera una señal que es el resultado de arbitrar [(esto es, cuando dos eventos son simultáneos (el procedente de la entrada y el procedente de leer el modulo de memoria), dado que solamente se pueden enviar a la siguiente etapa de uno en uno, es necesario el uso de un arbitrador que resuelve el conflicto. El arbitrador hace esperar a uno de ellos mientras envía el otro, y después envía el que ha esperado)] cada evento o impulso entrante y el evento o impulso recuperado de la máquina de estados finitos, siendo enviada la señal al bloque Matriz Neuronal, donde es atenuada por un factor entorno a "r", vía el bloque Enrutador de Eventos.

El bloque Planificador de Eventos de la presente invención está enmarcado en un sistema de procesado por Representación de Evento de Dirección "AER" (Address Event Representation en inglés). El dispositivo conversor de la presente invención tal y como está descrito (párrafo anterior) es capaz de repetir en el tiempo "r" veces la contribución de un impulso neuronal en sistemas de procesado por eventos o impulsos.

En la realización preferida de la invención, la máquina de estados finitos ("Finite State Machine", en inglés, FSM) comprende un registro de puntero cuyo índice apunta a una posición del módulo de memoria, incrementándose el índice en un una posición después de un tiempo At de incremento de unidad temporal.

Asimismo, y para la mencionada realización preferida de la invención, el módulo de memoria es un registro circular de Q registros que comprende un número predeterminado de Q posiciones, cada una de las cuales comprende un bit de "ocupado" y con capacidad de almacenamiento de los "p" parámetros del evento. La máquina de estados finitos previamente a escribir los "p" parámetros del evento en "r" posiciones del módulo de memoria, cada una de las cuales se escogerá para que sea leída en un instante t t +t n , detecta si el bit de "ocupado" está activado, en cuyo caso los "p" parámetros del evento se escribirán en la posición siguiente o anterior del módulo de memoria cuyo bit de "ocupado" esté desactivado; en caso contrario, los "p" parámetros del evento se escriben en la posición del módulo de memoria que se leerá en el instante t,+t n y se activa el bit de "ocupado" de dicha posición de memoria. La máquina de estados finitos, para el instante de tiempo "t ", lee los "p" parámetros del evento comprendidos en la posición del módulo de memoria apuntada por el índice del registro de puntero si el bit de "ocupado" está activado, desactiva dicho bit de "ocupado" y envía dichos "p" parámetros al Arbitrador de Eventos de Salida.

El bloque Planificador de Eventos de la presente invención tiene un efecto sobre los pesos de los eventos que llegan al bloque de Matriz Neuronal. Para compensar el efecto del bloque Planificador de Eventos de la presente invención, es necesario reprogramar los pesos comprendidos en el bloque de Matriz Neuronal de tal forma que el efecto de sustituir cada evento original por un número finito "r" de eventos sea equivalente.

Por tanto, un segundo aspecto de la invención es un extractor de mapas de características conectable a su entrada con un módulo origen del que recibe unos impulsos o eventos Ei. El novedoso extractor de mapas de características comprende un bloque Enrutador de Eventos convencional. El extractor de mapas de características de la presente invención está caracterizado porque adicionalmente comprende el bloque Planificador de Eventos de la presente invención y un bloque Matriz Neuronal modificado. El bloque Matriz Neuronal modificado es reprogramado para que sea equivalente el efecto de sustituir cada evento original por un número finito "r" de eventos. Es decir, los pesos son debilitados tal que el efecto de sustituir cada evento original por un número finito "r" de eventos procedentes del bloque Planificador de Eventos, sea equivalente.

En un tercer aspecto de la presente invención, se describe un método conversor de red neuronal de procesado por impulsos con sinapsis de integración instantánea a integración con sinapsis dinámica. De esta forma, el método de la presente invención permite realizar un comportamiento de integración de sinapsis con dinámica empleando circuitos cuyo comportamiento sea el de sinapsis instantáneas. El método consiste en repetir en el tiempo la contribución de un impulso neuronal en sistemas de procesado por eventos o impulsos, haciendo que la contribución de los eventos repetidos sea más débil que el original.

El método de la presente invención comprende, para cada impulso o evento Ei de entrada recibido en un instante "t " en un sistema de procesado por representación de dirección de evento "AER", repetir cada impulso o evento Ei en los "r" instantes futuros a la vez que el efecto de cada impulso o evento Ei es atenuado en el módulo destino (bloque destino).

El método conversor de red neuronal de procesado por impulsos con sinapsis de integración instantánea a integración con sinapsis dinámica de la presente invención comprende los siguientes pasos: i) por cada evento o impulso de entrada recibido en un instante "t", memorizar los valores de sus "p" parámetros asociados a cada evento o impulso para ser recuperados en un número finito "r" de instantes futuros t,+t n (n=l, 2, ... r); ii) por cada evento o impulso de entrada recibido, adicionalmente enviar el evento o impulso a su destino (independientemente del proceso de almacenamiento del paso anterior);

iii) escribir en "r" posiciones de un módulo de memoria los parámetros del evento o impulso recibido; las posiciones de este módulo de memoria se van leyendo una a una a velocidad constante; según sean los instantes futuros ti+t n en que se deseen recuperar las "r" repeticiones del evento o impulso, así habrá que seleccionar las "r" posiciones en el módulo de memoria;

iv) recuperar de forma temporizada los "p" parámetros del evento o impulso en el número finito "r" de instantes futuros, siendo los intervalos de temporización fijos o variables;

v) extraer el evento en uno de los "r" instantes futuros (cada vez que corresponda), arbitrar [(esto es, cuando dos eventos son simultáneos (el procedente de la entrada y el procedente de leer el modulo de memoria), dado que solamente se pueden enviar a la siguiente etapa de uno en uno, es necesario el uso de un arbitrador que resuelve el conflicto. El arbitrador hace esperar a uno de ellos mientras envía el otro, y después envía el que ha esperado)] mediante un arbitrador el envío del evento recuperado de la memoria con el envío de un evento nuevo que está siendo recibido (si es que lo está recibiendo) en el mismo instante de tiempo ti; y,

vi) debilitar los pesos en el módulo de destino, reprogramando éste con los valores de los pesos debilitados, para que el efecto de sustituir cada evento original por un número finito "r" de eventos sea equivalente.

En la forma de realización preferida de la invención referida al método y en correspondencia con la realización preferida de la invención referida al sistema formado por el Planificador de Eventos y el Extractor de Mapas de Características, ambos de la presente invención, cada impulso o evento Ei de entrada recibido en un instante "t " en un sistema de procesado por representación de evento de dirección "AER" es repetido en "r" instantes futuros a la vez que el efecto de dicho impulso o evento Ei es atenuado por la Matriz Neuronal ("Neuronal Array"). En el paso i), el Gestor de Eventos de Entrada recibe impulsos o eventos de entrada E¡, cada uno de los cuales llega en su instante t,. En el paso ii), cada impulso o evento de entrada E, recibido en su instante de llegada t, se envía directamente al Arbitrador de Eventos de Salida que, arbitrándolo con los impulsos o eventos memorizados que pueda enviar la FSM, lo enviará a la salida del Arbitrador de Eventos de Salida. En el paso iii), por cada evento de entrada E, la máquina de estados finitos (FSM) escribirá sus "p" parámetros en aquellas "r" posiciones de memoria del módulo de memoria que se lean en los instantes futuros t,+t n (n=l, 2, ... r). Si una posición de memoria tuviera su bit de "ocupado" activo, se escribirá el evento en la posición anterior o posterior más cercana cuyo bit de "ocupado" esté desactivado. En aquella posición de memoria donde se escriba el evento se activará su bit de "ocupado". En el paso iv), la FSM va leyendo con pasos temporales At las posiciones consecutivas del módulo de memoria. Si su bit de "ocupado" está activado, éste se desactiva, se extraen (y opcionalmente se borran) los "p" parámetros del evento almacenado y se envía al Arbitrador de Eventos de Salida. En el paso v), el Arbitrador de Eventos de Salida arbitrará los eventos procedentes de la FSM con los procedentes del Gestor de Eventos de Entrada que puedan coincidir en el tiempo. En el paso vi), en el módulo de destino, que es el bloque Matriz Neuronal ("Neuron Array"), los pesos deben estar atenuados por un factor entorno a "r". Esto es llevado a cabo mediante la reprogramación de los pesos comprendidos en el bloque Matriz Neuronal.

En un cuarto aspecto de la invención, en las neuronas puede suprimirse el mecanismo de descarga de su estado hasta alcanzar un estado de reposo, si al tren de "r" repeticiones del evento de entrada se le añaden otras "r2" repeticiones posteriores del evento cambiando la polaridad del evento en estas "r2" repeticiones. Para ello, el Planificador de Eventos de la presente invención comprende que la máquina de estados finitos "FSM" (4) escriba los "p" parámetros del evento cambiando la polaridad del mismo en el módulo de memoria para que sean enviados al Arbitrador de Eventos de Salida en "r2" instantes de tiempo futuros posteriores a los "r" instantes de tiempo. Esto se detalla en la Fig. 6B. En la parte superior (Fig. 6B i)) se muestra la evolución del estado (31) de una neurona receptora de un impulso a través de una sinapsis con dinámica, al igual que se explicaba en la Fig. l . En la parte central (Fig. 6B ii)) se muestra el método indicado hasta ahora en que en una realización con sinapsis instantáneas y neuronas con mecanismo de descarga, se reemplaza cada impulso de entrada por un tren de "r" impulsos más débiles. De esta manera se obtiene la evolución (32) del estado de la neurona. En la parte inferior (Fig. 6B iii)) se emplearía una neurona que no tiene mecanismo de descarga con sinapsis instantáneas, en la que el impulso de entrada se sustituye por dos trenes consecutivos. Un primer tren de "r" impulsos, igual que antes, más un segundo tren de "r2" impulsos de polaridad opuesta que terminan llevando el estado de la neurona hasta su estado de reposo.

BREVE DESCRIPCIÓN DE LAS FIGURAS La figura 1 muestra la evolución del estado interno de una neurona por efecto de un tren de impulsos nerviosos procedentes de otras neuronas con sinapsis dinámicas.

La figura 2 muestra unas estructuras jerárquicas en diseños de sistemas neuronales de visión artificial.

La figura 3 muestra un sistema de sensado visual y procesamiento por impulsos, como los biológicos donde cada píxel o neurona en una capa recibe información de vecindarios de la capa anterior.

La figura 4 muestra una realización digital de un circuito de una neurona sencilla que realiza un método de integración sináptico instantáneo, es decir, sinapsis sin dinámica. La figura 5a) muestra la evolución temporal del estado de la neurona, cuando recibe impulsos de entrada positivos y negativos (realizando integración sináptica instantánea) hasta alcanzar el umbral y enviar su propio impulso de salida.

La figura 5b) muestra un mecanismo de descarga del estado de una neurona para detectar si recibe una serie de características dentro de una ventana temporal.

La figura 6A) muestra el efecto de la presente invención sobre los impulsos de entrada recibidos a la entrada de la neurona. La figura 6Bi) muestra la evolución del estado de una neurona receptora de un impulso a través de una sinapsis con dinámica.

La figura 6Bii) muestra el método indicado hasta ahora en que en una realización con sinapsis instantáneas y neuronas con mecanismo de descarga, se reemplaza cada impulso de entrada por un tren de "r" impulsos más débiles.

La figura 6Biii) muestra una neurona que no tiene mecanismo de descarga con sinapsis instantáneas, en la que el impulso de entrada se sustituye por dos trenes consecutivos. La figura 7 muestra un sistema de sensado y procesado por eventos, y más concretamente un esquema de un sistema AER (Address Event Representation).

La figura 8A muestra una estructura típica del interior de un módulo extractor de mapas de características en sistemas AER que contiene dos bloques.

La figura 8B muestra la estructura del interior de un módulo extractor de mapas de características en sistemas AER modificada por la presente invención.

La figura 9 muestra la estructura del Planificador de Eventos según la presente invención.

La figura 10 muestra un diagrama de flujo donde de detallan los pasos del método de la presente invención.

EJEMPLO DE REALIZACIÓN DE LA INVENCIÓN

La presente invención se enmarca dentro de un sistema de sensado y procesado por eventos como el mostrado en la figura 7, la cual muestra un esquema de un sistema AER (Address Event Representation). Como ha sido mencionado en el apartado anterior, la figura 6 ilustra el efecto de la presente invención sobre los impulsos de entrada recibidos a la entrada de la neurona. Es decir, cada impulso de entrada (52) es reemplazado por un tren de "r" impulsos (51) y el valor de "peso" se atenúa asimismo por un valor entorno a "r" (el valor exacto se optimiza para cada aplicación concreta), de tal forma que una forma de onda como la mostrada en la figura 5b) es modificada por la presente invención dando lugar a una forma de onda como la mostrada en la figura 6A. Los "r" impulsos se espacian entre sí para que el tren de pulsos tenga una duración parecida a la duración de las rampas de subida en la Fig.6. Esta duración varía según la aplicación de la invención, pero es típicamente de pocos milisegundos (1 ó 2) o fracciones de milisegundo. De igual forma, el espaciado de los "r" impulsos puede ser equidistante o no.

El sistema de sensado y procesado por eventos mostrado en la figura 7 está formado por uno o más sensores, en este caso una retina de visión AER (55), unos conjuntos de módulos procesadores de eventos (56, 57, 58) (que contienen los bloques l ia u 11b), y unos canales o buses AER (59, 60, 61) que envían los eventos de unos módulos a otros. Los eventos Ei normalmente están formados por una palabra digital que contiene las coordenadas (x ; , y,) de la neurona productora del evento más un bit de signo s¡. Así Ei = (XÍ, y, ,s¡) y cada evento contendría p=3 parámetros. Pero, en general, la información que transporte un impulso o evento Ei podría ser cualquier otro conjunto de datos de "p" parámetros, según se haya concebido el sistema AER. El tiempo t, en que se produce el evento es el tiempo característico del evento Ei. Cada vez que un evento Ei llega a un módulo destino (56, 57, ó 58), éste lo envía a un "campo proyectivo" de neuronas (x,, y¡) en módulos de la capa destino. Así, por ejemplo, si se trata de un módulo convolucionador (o mapa de características o "feature map"), cada vez que se envía el evento Ei a una neurona "f del campo proyectivo, se le asigna un peso que depende de la distancia dy entre las coordenadas (x ; , y,) y (x,, y¡).

La Fig. 8A muestra una estructura típica del interior de estos módulos. El módulo de destino (extractor de mapas de características en sistemas AER) (l ia) contiene dos bloques (12, 13). Un Enrutador de Eventos ("Event Router") (12) y un bloque Matriz Neuronal ("Neuron Array") (13). El bloque Enrutador de Eventos ("Event Router") (12) recibe el evento de entrada Ei del módulo origen (10) y se lo envía al conjunto de neuronas del "campo proyectivo" en la Matriz Neuronal ("Neuron Array") (13), a cada una con su correspondiente peso dy. Estos pesos están almacenados dentro del bloque Matriz Neuronal (13). Este bloque Matriz Neuronal ("Neuron Array") (13) suele ser una matriz bidimensional de neuronas. Cada neurona podría estar descrita por el esquema ilustrado en la figura 4. En el esquema de la figura 8A, los eventos que van llegando añaden su contribución de manera instantánea a las neuronas de destino, tal como ilustra la figura 5. Por el contrario, la presente invención inserta un bloque en cada módulo procesador AER, que denominaremos Planificador de Eventos ("Event Scheduler") (1), entre el canal de entrada AER y el bloque que distribuye los eventos a la matriz de neuronas Enrutador de Eventos ("Event Router") (12). De esta forma, se obtiene un nuevo extractor de mapas de características (11b) que comprende el Planificador de Eventos (1) de la presente invención, un Enrutador de Eventos (12) convencional y un bloque de Matriz Neuronal (13) modificado para compensar el efecto del Planificador de Eventos sobre los pesos de los eventos. La función del Planificador de Eventos ("Event Scheduler") (1) es la siguiente: por cada evento de entrada Ei que se reciba en un instante t¡, el Planificador de Eventos ("Event Scheduler") (1) repite el mismo evento en "r" instantes futuros t, + t n con n = 1, 2, ... r. La presente invención añade una nueva funcionalidad al bloque Matriz Neuronal (13) y es readaptar los pesos originales di j (esto es, atenuarse), ya que ahora cada evento de entrada se mapea a r+1 eventos destinados a cada una de las neuronas de los campos proyectivos.

La figura 9 muestra un ejemplo de realización del Planificador de Eventos

("Event Scheduler") (1). Este Planificador de Eventos ("Event Scheduler") (1) comprende los siguientes elementos. Un Gestor de Eventos de Entrada ("Input Event Manager") (7) que recibe los eventos (8) del canal AER de entrada correspondiente. Un módulo de memoria, que en este ejemplo es un registro circular de Q registros (5). Una máquina de estados finitos "FSM" (4) que contiene un registro "pointer" (3). Y un Arbitrador de Eventos de Salida (2) que envía unos eventos (9) al bloque Enrutador de Eventos ("Event Router") (12).

La máquina de estados finitos (4) contiene un registro "pointer" (3) cuyo índice apunta a una posición del módulo de memoria (5). El índice se incrementa continuamente cada paso temporal Δΐ para apuntar a la siguiente posición del módulo de memoria (5). En el módulo de memoria (5), cada posición de memoria contiene un bit de "ocupado" (6) más otros bits para albergar los parámetros propios de un evento dado Ei. Cada vez que el Gestor de Eventos de Entrada (7) recibe un evento nuevo Ei en un instante t¡, éste lo envía al Arbitrador de Eventos de Salida ("Event Arbiter") (2) para que lo envíe a la salida , pero además la FSM (4) copia sus parámetros a "r" posiciones del módulo de memoria (5) de tal manera que el "pointer" (3) lea las posiciones en instantes futuros ti + t n con n = 1, 2, ... r. Asimismo, en estas posiciones se activará el bit de "ocupado" 6. Si una posición de memoria donde se quiera escribir un evento Ei ya estuviera ocupada, el evento Ei se escribirá en la siguiente (o anterior) disponible cuyo bit de "ocupado" no estuviera activado.

Al mismo tiempo, la FSM (4) va leyendo el registro al que apunta "pointer" (3) y si su bit de ocupado está activo, lee el evento Ei, desactiva el bit de "ocupado" (6), y envía los parámetros Ei al Arbitrador de Eventos de Salida (2).

El número Q de posiciones de memoria del módulo de memoria (5) hay que dimensionarlo adecuadamente según sea el parámetro "r", la máxima tasa de eventos de entrada p max , el paso temporal At, y el máximo instante futuro t n . Así, como en cada momento el módulo de memoria de Q posiciones debe almacenar información hasta un tiempo futuro t n , se debe cumplir que: Q At = t n . Por otro lado, si durante un tiempo t n llegaran eventos a la máxima tasa p max , el registro debería ser capaz de albergar p max r- t n eventos. Por tanto, se debe cumplir que Q > p max - r- t n . O, equivalentemente, debe verificarse que p max - r -At≤ 1.

La relación del método descrito más arriba con los componentes descritos en el ejemplo de realización de la fig.9 es como sigue:

i) por cada evento de entrada E, (8) que se recibe en el Gestor de Eventos de Entrada (7) en un instante "t", los "p" valores de sus parámetros son memorizados en un módulo de memoria (por ejemplo, un registro circular de Q registros en la figura 9), para ser recuperados en un número finito de "r" instantes futuros t,+t n (n=l, 2, ... r);

ii) cada vez que se reciba un evento de entrada E, (8), adicionalmente enviar el evento a su destino, es decir, al Arbitrador de Eventos de Salida (2) (independientemente del proceso de almacenamiento del paso siguiente) que, arbitrándolo con los eventos memorizados que pueda enviar la FSM (4), lo enviará al bloque Enrutador de Eventos (12) a través de la salida (9) del Arbitrador de Eventos de Salida (2); los "p" parámetros del evento entrada E, (8) son escritos en "r" posiciones de un módulo de memoria por la FSM (4); las posiciones de este módulo de memoria se van leyendo una a una a velocidad constante; según sean los instantes futuros t,+t n (n=l, 2, ... r) en que se deseen recuperar las "r" repeticiones del evento, así habrá que seleccionar las "r" posiciones en el módulo de memoria. Si una posición de memoria tuviera su bit de "ocupado" activo, se escribirá el evento en la posición anterior o posterior más cercana cuyo bit de "ocupado" esté desactivado. En aquella posición de memoria donde se escriba el evento se activará su bit de "ocupado".

ir leyendo una a una las posiciones del módulo de memoria y en aquellas donde esté almacenado una de las "r" repeticiones de un evento recuperar sus "p" parámetros. La FSM (4) va leyendo con pasos temporales At las posiciones consecutivas del módulo de memoria. Si su bit de "ocupado" está activado, se extraen los "p" parámetros del evento almacenado y se envía al arbitrador (2). cada vez que se extrae una de las "r" repeticiones de un evento almacenado en el pasado, el arbitrador (2) arbitrará los eventos procedentes de la FSM (4) con los procedentes del gestor de eventos de entrada (7) que puedan coincidir en el tiempo; y,

debilitar los pesos en el módulo de destino, reprogramando éste con los valores de los pesos debilitados, para que el efecto de sustituir cada evento original por un número finito "r" de eventos sea equivalente. El módulo de destino es el Array Neuronal ("Neuron Array") (13), el cual atenúa los pesos por un factor entorno a "r".