[go: up one dir, main page]

ES2338751T3 - Componente de una red neuronal. - Google Patents

Componente de una red neuronal. Download PDF

Info

Publication number
ES2338751T3
ES2338751T3 ES00968107T ES00968107T ES2338751T3 ES 2338751 T3 ES2338751 T3 ES 2338751T3 ES 00968107 T ES00968107 T ES 00968107T ES 00968107 T ES00968107 T ES 00968107T ES 2338751 T3 ES2338751 T3 ES 2338751T3
Authority
ES
Spain
Prior art keywords
component
neural network
processor element
processor
network according
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
ES00968107T
Other languages
English (en)
Inventor
Stephen Byrun Furber
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
University of Manchester
Original Assignee
University of Manchester
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by University of Manchester filed Critical University of Manchester
Application granted granted Critical
Publication of ES2338751T3 publication Critical patent/ES2338751T3/es
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Neurology (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • Artificial Intelligence (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Computational Linguistics (AREA)
  • Image Analysis (AREA)
  • Thermistors And Varistors (AREA)
  • Magnetic Resonance Imaging Apparatus (AREA)
  • Complex Calculations (AREA)
  • Circuit For Audible Band Transducer (AREA)
  • Feedback Control In General (AREA)
  • Image Processing (AREA)
  • Facsimile Image Signal Circuits (AREA)
  • Transition And Organic Metals Composition Catalysts For Addition Polymerization (AREA)
  • Polyethers (AREA)

Abstract

Un componente de una red neuronal, comprendiendo el componente una pluralidad de entradas (1), al menos un elemento procesador (3), al menos una salida (4), y una memoria digital (2) que almacena valores en direcciones respectivamente correspondientes con el al menos un elemento procesador (3), en el cual el al menos un elemento procesador (3) está dispuesto para recibir un valor que comprende una instrucción desde la memoria digital (2) en respuesta a una señal de entrada desde un elemento procesador (3) de un componente adicional de la red neuronal, y obtiene instrucciones del valor que se recibe desde la memoria digital (2) para ejecutar una de entre una pluralidad de operaciones.

Description

Componente de una red neuronal.
La presente invención se refiere a un componente de una red neuronal.
Las redes neuronales son arquitecturas de cómputo inspiradas en la biología para procesar información. Cada vez se usan más para resolver problemas que son difíciles de resolver con programas de algoritmos convencionales que se ejecutan en ordenadores convencionales con programas almacenados. Éstos son típicamente problemas de asociación de patrones tales como predicciones del mercado de valores, reconocimiento facial y reconocimiento del habla. Algunas aplicaciones para redes neuronales son comercialmente significativas. Por ejemplo, el touchpad de muchos ordenadores portátiles usa una red neuronal para mejorar la fiabilidad (los sistemas neuronales son relativamente insensibles al ruido).
Las neuronas son generalmente dispositivos con entradas múltiples, y una única salida. La fuerza de la señal de salida de una neurona es una función de la suma ponderada de las entradas de dicha neurona y puede representarse mediante la siguiente ecuación:
1
En donde X_{j} son las entradas a la neurona (posiblemente desde otras neuronas), W_{ij} son los pesos aplicados a las entradas,
la suma \sum\limits_{j} W_{ij} \cdot X_{j} es el nivel de activación de la neurona (una medida interna del estado de la neurona), T_{i} es el umbral de la neurona, f_{i} es una función de activación (usualmente no lineal), e Y_{i} es la salida de la neurona i-ésima. Cuando el nivel de activación excede el umbral la neurona generará una salida.
Un peso asociado a una entrada dada puede ser positivo, en cuyo caso una señal recibida en dicha entrada provocará un aumento del nivel de activación. Un peso positivo puede por lo tanto considerarse como una entrada excitadora. En algunos casos un peso asociado con una entrada dada puede ser negativo, en cuyo caso una señal recibida en dicha entrada provocará una disminución del nivel de activación. Un peso negativo puede considerarse por lo tanto como una entrada inhibidora.
Las conexiones entre las neuronas se refuerzan o se debilitan mediante el ajuste de los valores de los pesos. Por ejemplo, el peso asociado con una entrada concreta de una neurona dada puede aumentarse cada vez que esa entrada recibe una señal. Una señal de entrada recurrente (es decir, una señal recibida varias veces en la misma entrada) aumentará gradualmente el peso asociado con dicha entrada. Una señal recibida en dicha entrada causará por lo tanto un aumento mayor del nivel de activación de la neurona.
La función de activación es normalmente la misma para todas las neuronas y es fija; a menudo se usa una función sigmoidea.
La actividad de la neurona i-ésima en las redes neuronales conocidas está limitada a ser una función monotónica de sus entradas X_{i}, determinada por los valores de los pesos W_{ij}. Esto restringe la capacidad de las redes neuronales conocidas para emular comportamientos más complejos, y no monotónicos.
La Patente Estadounidense n° 5.278.945 (American Neurological, Inc) describe un aparato procesador neuronal. El aparato procesador neuronal implementa una red neuronal mediante el procesamiento simultáneo de una pluralidad de neuronas usando las mismas entradas sinápticas. Una memoria RAM de pesos externa accede secuencialmente al peso de los datos. Los datos de entrada y los datos de peso pueden configurarse tanto como una única entrada o como una pluralidad de entradas procesadas simultáneamente. El aparato procesador neuronal puede usarse para implementar una red neuronal completa, o puede implementarse usando una pluralidad de dispositivos, implementando cada uno de los dispositivos un número predeterminado de capas neuronales.
Un objetivo de la presente invención es proporcionar un componente de una red neuronal que supere la desventaja mencionada anteriormente.
De acuerdo con un primer aspecto de la invención se proporciona un componente de una red neuronal, comprendiendo el componente una pluralidad de entradas, al menos un elemento procesador, al menos una salida, y una memoria digital que almacena valores en unas direcciones respectivamente correspondientes con el al menos un elemento procesador, en el cual el al menos un elemento procesador está dispuesto para recibir un valor que comprende una instrucción desde la memoria digital en respuesta a una señal de entrada desde un elemento procesador de un componente adicional de la red neuronal, y obtiene instrucciones del valor que se recibe desde la memoria digital para ejecutar una de entre una pluralidad de operaciones.
La invención contrasta con las redes neuronales de la técnica anterior, en las que siempre se suma un valor recibido por un elemento procesador a un nivel de activación del elemento procesador (el valor siempre es un peso). El elemento procesador de la invención es capaz de ejecutar una pluralidad de operaciones, y por lo tanto el valor recibido debe actuar como una instrucción para que el elemento procesador elija una de las instrucciones para su ejecución.
El nivel de activación de un elemento procesador es un valor interno indicativo de la excitación de ese elemento procesador.
Convenientemente, la operación es la suma del valor a un nivel de activación del al menos un elemento procesador.
Convenientemente, la operación es una atenuación de un nivel de activación del al menos un elemento procesador hasta cero, mediante el aumento del nivel de activación si es negativo o la disminución del nivel de activación si es positivo.
Convenientemente, la tasa de atenuación es dependiente del valor recibido desde la memoria digital.
Preferiblemente, la atenuación está controlada por un reloj.
Convenientemente, la operación comprende la generación de una salida por el al menos un elemento procesador, y luego la reposición de un nivel de activación del al menos un elemento procesador a un nivel mínimo predeterminado.
Convenientemente, la operación comprende reposicionar un nivel de activación del al menos un elemento procesador a un nivel mínimo predeterminado sin que el al menos un elemento procesador genere una salida.
Convenientemente, la operación comprende modificar un nivel de activación del al menos un elemento procesador de acuerdo con un algoritmo de aprendizaje automático.
Convenientemente, la operación comprende modificar el valor retenido en la memoria digital de acuerdo con un algoritmo de aprendizaje automático.
Convenientemente, el algoritmo de aprendizaje automático comprende un algoritmo de aprendizaje de Hebbian.
Convenientemente, la salida generada por el componente de una red neuronal comprende un número representativo de la dirección del elemento procesador desde el cual se emitió la salida.
Convenientemente, el componente de una red neuronal está provisto de unos medios de arbitraje y codificación dispuestos para determinar el orden cronológico de los impulsos de señal recibidos desde los elementos procesadores, y para representar cada impulso de señal como un número. Esto es ventajoso porque supera el problema de restricción de pines en la comunicación off-chip, reemplazando por ejemplo 256 pines, si cada salida neuronal tiene su propio pin, por 8 pines (donde se usa codificación de dirección binaria de 8 bits).
Convenientemente, el componente de una red neuronal comprende adicionalmente un procesador convencional con acceso de lectura/escritura a la memoria digital.
Convenientemente, los accesos del procesador convencional a la memoria digital se someten a arbitraje asíncronamente con los accesos requeridos por los elementos procesadores neuronales.
Convenientemente, un gran número de componentes de una red neuronal son supervisados por una red paralela de procesadores convencionales.
Preferiblemente, la memoria digital es una Memoria de Acceso Aleatorio (RAM).
Convenientemente, el componente funciona de manera asíncrona. Alternativamente, el componente de una red neuronal puede funcionar de manera temporizada.
De acuerdo con un segundo aspecto de la invención se proporciona un procedimiento para operar un componente de una red neuronal, comprendiendo el procedimiento almacenar valores en una memoria digital en direcciones que corresponden respectivamente al menos a un elemento procesador, transfiriendo un valor que comprende una instrucción hasta el al menos un elemento procesador en respuesta a una señal de entrada desde un elemento procesador de un componente adicional de la red neuronal y ejecutando una de entre una pluralidad de operaciones en el elemento procesador en respuesta al valor que se recibe desde la memoria digital.
El procedimiento puede incluir cualquiera de las anteriores características convenientes o preferibles del primer aspecto de la invención.
A continuación se describirá una realización específica de la invención, a modo de ejemplo únicamente, con referencia a las Figuras adjuntas, en las cuales:
La Figura 1 es una representación esquemática de una realización de un componente de una red neuronal de acuerdo con la invención;
La Figura 2 es una representación esquemática del componente de una red neuronal, incluyendo unos medios de arbitraje y codificación;
La Figura 3 es una representación esquemática de los medios de arbitraje y codificación mostrados en la Figura 2;
La Figura 4 es un gráfico ilustrando un mecanismo de aprendizaje de Hebbian; y
Las Figuras 5a a 5c son diagramas de flujo que ilustran el funcionamiento del componente de una red neuronal.
Un componente de una red neuronal tal como el que se muestra en la Figura 1 comprende 1024 entradas 1, una Memoria de Acceso Aleatorio (RAM) 2, 256 elementos procesadores 3 y 256 salidas 4.
Cada entrada porta una señal desde un elemento procesador de un componente previo de la red neuronal. Cada entrada porta sólo 1 bit de información, en otras palabras está "conectada" o "desconectada". Las señales de entrada adoptan la forma de impulsos en las entradas.
La RAM 2 contiene un conjunto de valores. Cada combinación de entrada y salida tiene adjudicada una dirección diferente en la RAM (el número de direcciones es 1024x256). Refiriéndose a la Figura 1, para ayudar al lector y sólo con propósitos ilustrativos, puede considerarse la RAM como una matriz bidimensional que comprende columnas y filas, conteniendo cada fila todos los valores pertenecientes a una entrada concreta, y conteniendo cada columna todos los valores pertenecientes a un elemento procesador concreto. Tal como se discute más adelante, una proporción significativa de las direcciones RAM puede contener valores nulos.
En respuesta a un impulso recibido en una entrada dada, la RAM 2 busca valores localizados en la fila correspondiente a dicha entrada. Cada valor se envía al elemento procesador 3 correspondiente a la columna en la que el valor está localizado. El nivel de activación del elemento procesador 3 (una medida interna del estado del elemento procesador) se modifica de acuerdo con el valor que se recibe. Cada elemento procesador 3 actúa como una neurona, y tiene 1024 entradas y 1 salida.
En contraste con la técnica anterior, los valores almacenados en la RAM 2 pueden ser pesos o pueden ser instrucciones. Cuando el valor enviado a un elemento procesador 3 es una instrucción, el elemento procesador 3 lleva a cabo una operación de acuerdo con la instrucción, tal como se describe más adelante. Cuando el valor enviado a un elemento procesador 3 es un peso, dicho peso se suma al nivel de activación del elemento procesador 3. La operación de un elemento procesador "i" puede expresarse matemáticamente como:
\vskip1.000000\baselineskip
2
\vskip1.000000\baselineskip
En donde X_{i} son entradas a la neurona, W_{ij} son los pesos, la suma \sum\limits_{j} W_{ij} \cdot X_{j} es el nivel de activación de la neurona, T_{i} es el umbral del elemento procesador, f_{i} es una función de activación (usualmente no lineal), e Y_{i} es la salida del elemento procesador i-ésimo. El elemento procesador emite un impulso cuando el nivel de activación excede el umbral (este es de hecho la activación de la neurona).
En el presente ejemplo, j, que designa una entrada específica puede estar entre 1 y 1024, e i, que designa una salida específica puede estar entre 1 y 256.
Muchas de las redes neuronales de la técnica anterior comprenden neuronas que generan valores de salida analógicos. Por ejemplo, refiriéndose a la ecuación anterior, la salida Y_{i} de una neurona sería un número que tuviera un valor entre 0 y 1. Esta salida, al entrar en una subsiguiente neurona, sería multiplicada por un peso, y el resultado de la multiplicación sería añadido al nivel de activación de dicha subsiguiente neurona.
La realización descrita de la invención opera de una forma diferente a las redes neuronales analógicas, en el sentido de que un elemento procesador (neurona) tiene sólo dos posibles salidas, es decir 1 ó 0 (o de manera equivalente "conectada" o "desconectada"). Un impulso de salida es generado por un elemento procesador siempre que el nivel de activación de dicho elemento procesador excede su umbral. Desde el punto de vista de un observador externo, una salida de impulsos de un elemento procesador puede considerarse como el equivalente de una salida analógica. Por ejemplo, si un elemento procesador generara 23 impulsos por segundo, entonces esto podría considerarse como el equivalente de un valor analógico nocional de 0,23. A partir de ahora la generación de impulsos de los elementos procesador se denominará "codificación de tasa de impulsos".
A primera vista puede parecer que la codificación de tasa de impulsos es muy intensa a nivel computacional cuando se compara con el uso de señales analógicas. Por ejemplo, un peso adjudicado a una entrada dada de una neurona puede ser multiplicado por la señal analógica 0,23 en un solo cálculo, y luego añadido al nivel de activación de la neurona. Por el contrario, cuando se usa la codificación de tasa de impulsos el peso debe sumarse al nivel de activación de la neurona 23 veces (es decir una vez por cada impulso), precisando 23 cálculos separados. Se hace observar sin embargo que a menudo no hay salida desde una neurona dada. Cuando se usa la codificación de tasa de impulsos, en esta eventualidad no se efectúa ningún cálculo ya que no se reciben impulsos de entrada. Por el contrario, en las redes neuronales conocidas, un valor cero de salida es efectivamente un valor de salida que resulta ser cero. Los pesos de las neuronas se multiplican por el valor de salida cero, y el resultado (también cero) se suma a los niveles de activación de las neuronas. Este cálculo, que no tiene efecto sobre los niveles de activación de las neuronas, se produce con mucha frecuencia y es un gran despilfarro a nivel computacional. El uso de la codificación de tasa de impulsos evita el despilfarro de esta multiplicación por cero.
El componente de una red neuronal está provisto de 256 elementos procesadores 3. Cada elemento procesador 3 actúa como una neurona, y tiene 1024 entradas y 1 salida. Si hubiera que proporcionar conexiones individuales entre cada elemento procesador y cada componente subsiguiente de una red neuronal, el número de de conexiones se volvería rápidamente tan grande que sería impracticable. Para evitar este problema, tal como se muestra en la Figura 2, las salidas de los elementos procesadores están todas dirigidas hacia una única línea 5 de salida de 8 bits. Un impulso de salida desde un elemento procesador dado es convertido en un número binario de 8 bits representativo de dicho elemento procesador, el cual es portado por la línea de salida. Esta conversión, que puede denominarse "codificación direccional de sucesos", es llevada a cabo por una unidad 6 de arbitraje y codificación.
El funcionamiento de la unidad 6 de arbitraje y codificación está ilustrado esquemáticamente en la Figura 3. La unidad 6 tiene dos funciones: determinar el orden cronológico en el que van a enviarse los impulsos hasta la línea 5 de salida, y convertir cada salida en un número indicativo del elemento procesador que generó dicha salida. La unidad 6 consigue ambas funciones simultáneamente. La unidad 6 que se muestra en la Figura 3 es para un conjunto de ocho elementos procesadores.
Una primera fila de la unidad 6 comprende cuatro bloques 10-13 de arbitraje y codificación. Un lado de entrada de un primer bloque 10 de arbitraje y codificación está provisto de dos entradas a, b y dos salidas a_{ack}, b_{ack} de confirmación. Cuando la salida de un elemento procesador se pone en alta, ésta se recibe en la entrada a, una primera salida del bloque 10 se pone en alta, y una segunda salida z emite simultáneamente un número de 1 bit representativo de la entrada a (en este caso el número binario es "1"). Entonces la salida de confirmación a_{ack} se pone en alta, indicando por lo tanto al elemento procesador que el bloque 10 ha procesado la salida. Entonces la salida del elemento procesador se pone en baja.
Si la entrada a y la entrada b se ponen en alta aproximadamente al mismo tiempo, entonces un elemento Seitz de exclusión mutua determina qué entrada ha sido la primera en ponerse en alta (los elementos de exclusión mutua se describen en las páginas 260 y subsiguientes de la "Introducción a los Sistemas VLSI" de Mead y Conway, publicado por Addison Wesley). Por consiguiente se genera la salida desde el bloque 10. Una vez que se ha generado la salida, y se ha devuelto una confirmación al elemento procesador apropiado, el bloque 10 procesa y emite la última de las entradas.
Una segunda fila de la unidad 6 comprende una pareja de bloques 14, 15 de arbitraje y codificación. Refiriéndose a un primer bloque 14 de la pareja, dos entradas y, w están conectadas a las salidas de los bloques 10, 11 precedentes. Una primera salida u del bloque 14 se pone en alta en respuesta a una señal de entrada, y una segunda salida v emite simultáneamente un número de 2 bits. El bit más significativo del número de 2 bits representa la entrada y, y el bit menos significativo del número de dos bits representa la entrada a del bloque 10 precedente. Por lo tanto, el número de 2 bits es el número binario "11".
La tercera y última fila de la unidad 6 funciona de la misma manera que las filas anteriores. La salida del bloque 16 individual que comprende la última fila es un número binario de 3 bits, y en este caso el número es "111".
En la descripción de la Figura 1, se dice que la salida del elemento procesador 3 tiene la forma de un impulso. Se observará que en la descripción de la Figura 3 se dice que la salida del elemento procesador está en alta de manera continua y sólo termina una vez que se ha recibido una señal de confirmación desde el elemento procesador. Esta modificación es necesaria para permitir que la unidad 6 de arbitraje y codificación funcione correctamente.
Refiriéndose a la Figura 2, se precisan 8 filas de bloques de arbitraje y codificación para generar una salida con un número binario de 8 bits.
Refiriéndose a la Figura 2, hay cuatro líneas 19 de entrada de 8 bits conectadas a los elementos procesadores 3 y a la RAM 2. Se usa una unidad 20 de arbitraje y codificación para arbitrar entre las cuatro líneas 19 de entrada. La unidad 20 de arbitraje y codificación funciona de la manera representada esquemáticamente en la Figura 2 y descrita anteriormente. En este caso la unidad de arbitraje y codificación incluye dos filas de bloques. La unidad de arbitraje y codificación tiene una salida de 10 bits, siendo usados los dos bits extra para distinguir entre las cuatro líneas 19 de entrada de 8 bits.
La salida de 10 bits de la unidad 20 de arbitraje y codificación está conectada a un decodificador 21. El decodificador convierte cada número de entrada de 10 bits en una salida por una correspondiente línea 1 de salida de 1 bit (hay 1024 líneas de salida). Las líneas 1 de salida corresponden a las líneas 1 de entrada representadas en la Figura 1.
En el sistema de codificación de tasa de impulsos usado en la realización de la invención, la comunicación entre los componentes de la red neuronal se produce en una escala de tiempo del orden de 1 \mus. Esto parece instantáneo en comparación con la resolución temporal de las neuronas que se activan a una tasa que no supera un orden de 1 kHz.
El hecho de que la red neuronal sea digital proporciona un grado de flexibilidad nunca visto en componentes de redes neuronales analógicas. En concreto, puede almacenarse un amplio rango de valores en la RAM 2, y esto permite usar algunos de los valores como "instrucciones" para el elemento procesador 3. El término "instrucción" pretende significar que se instruye al elemento procesador para que lleve a cabo una operación diferente a la de simplemente sumar el valor del nivel de activación. En las redes neuronales conocidas de la técnica anterior, la acción llevada a cabo por una neurona es siempre la misma, es decir sumar un valor al nivel de activación. El uso de instrucciones permite a los elementos procesadores 3 tener mucha más flexibilidad en su funcionamiento.
El uso de instrucciones proporciona una red neuronal que tiene propiedades más cercanas a las neuronas biológicas reales. Una de tales propiedades es una integración "con fugas", en otras palabras un nivel de activación que desciende si no hay actividad de entrada durante un periodo de tiempo. Otra propiedad es la "refracción", que quiere decir que un elemento procesador 3 ignora todas las entradas durante un cierto periodo de tiempo posterior a la activación. Esto limita la tasa de activación máxima del elemento procesador (es decir la tasa a la que el elemento procesador 3 puede producir impulsos de salida), evitando por lo tanto que la red neuronal se vuelva inestable debido a una actividad neuronal siempre creciente. Tanto la integración con refracción como la integración con fugas implican cierta dependencia del tiempo real.
En la realización descrita de la invención se proporciona la integración con refracción y con fugas usando un suceso de referencia en tiempo real, por ejemplo un reloj de 32 kHz (no representado en las Figuras 1 ó 2). Los impulsos del reloj pueden transmitirse como un número binario concreto a través de la entrada de 8 bits (por ejemplo 00000001). Cuando se precisa una integración con fugas, el valor almacenado en cada dirección de RAM correspondiente a dicho número de entrada dará instrucciones al elemento procesador para disminuir su nivel de activación si el nivel de activación es positivo y para aumentar el nivel de activación si es negativo. Distintos valores contenidos en la RAM pueden dar instrucciones para diferentes tasas de integración con fugas, por ejemplo aumentar/disminuir en respuesta a cada impulso del reloj, o aumentar/disminuir en respuesta a cada segundo impulso del reloj.
Puede proporcionarse una instrucción que determine si deberá ajustarse el peso o no mediante algoritmos de aprendizaje (por ejemplo algoritmos de aprendizaje de Hebbian). A modo de ejemplo de una neurona con capacidades de aprendizaje, puede modelarse el siguiente comportamiento neuronal, tal como se muestra en la Figura 4.
El nivel de activación del elemento procesador opera dentro del rango {-L, +T}, en donde -L es el nivel refractario y T es el umbral que, al ser alcanzado, hace que el elemento procesador emita un impulso de salida y el nivel de activación sea repuesto a -L. {-L, 0} es el rango refractario del elemento procesador: si se transmite un peso al elemento procesador en respuesta a un impulso de entrada, no se suma el peso al nivel de activación (el nivel de activación no se cambia), y se disminuye el propio peso. {0, F} es el rango débilmente excitado: si se transmite un peso hasta el elemento procesador en respuesta a un impulso de entrada, se sumará al nivel de activación y el mecanismo de aprendizaje no aplicará cambios al propio peso. {F, T} es el rango fuertemente excitado: si se transmite un peso hasta el elemento procesador en respuesta a un impulso de entrada, se sumará al nivel de activación y el propio peso aumentará.
El funcionamiento de un elemento procesador, dispuesto para funcionar de acuerdo con el modelo representado en la Figura 3, se muestra de forma esquemática mediante un diagrama de flujo en la Figura 5a-c.
Refiriéndose primero a la Figura 5a, se recibe un impulso en una entrada j dada. El valor asociado a dicha entrada j para un elemento procesador dado se recupera desde la RAM y se transmite hasta el elemento procesador. El valor estará dentro de uno de entre tres rangos: un primer rango corresponde a los pesos que han de sumarse al nivel de activación, un segundo nivel corresponde a los pesos que han de sumarse al nivel de activación y además han de dar instrucciones al elemento procesador para que el peso asociado a dicha entrada sea aumentado, y un tercer rango comprende instrucciones distintas de los pesos.
El resto de la Figura 5 a trata sobre un valor que está dentro del primer rango. El valor se suma al nivel de activación del elemento procesador (si el peso es negativo el nivel de activación se reducirá). Si el nivel de activación que sigue a la suma del valor es menor que el umbral T entonces no se toma ninguna medida adicional. Si el nivel de activación es mayor que el umbral T, entonces el elemento procesador emite un impulso de salida y el nivel de activación del elemento procesador se reduce a -L.
Si el valor entra dentro del segundo rango entonces el funcionamiento del elemento procesador es tal como se muestra en las ramificaciones del diagrama de flujo de la Figura 5b. Si el nivel de activación del elemento procesador es mayor o igual que cero entonces el valor se suma al nivel de activación del elemento procesador. A continuación, si el nivel de activación es mayor que cero entonces el valor guardado en la RAM aumenta.
Si el nivel de activación del elemento procesador es menor que cero entonces el valor no se suma al nivel de activación, y el valor guardado en la RAM disminuye.
Si el valor entra dentro del tercer rango, ello indica alguna otra forma de instrucción. Por ejemplo, tal como se muestra en la Figura 5c, el elemento procesador puede ser instruido para emitir un impulso independientemente del nivel de activación, y reposicionar el nivel de activación al nivel refractario.
Este algoritmo de aprendizaje de Hebbian, que resulta en una red neuronal estable si se eligen unos valores apropiados, depende de un mecanismo para retornar el nivel de activación desde -L hasta 0 que es independiente del procesamiento numérico de los pesos, y por lo tanto depende del uso de una instrucción de "incremento a cero con el tiempo" que puede implementarse tal como se describe a continuación.
Los expertos en la técnica comprenderán que los elementos procesadores pueden ser capaces de ejecutar otras instrucciones, que pueden estar definidas por valores almacenados en la memoria de valores RAM. Por ejemplo, el nivel de activación puede ser repuesto al nivel refractario sin activar la neurona. Esto modela una entrada fuertemente inhibitoria.
Refiriéndose otra vez a la Figura 1, el componente de una red neuronal puede incluir un procesador convencional (no representado) con acceso de lectura/escritura a la memoria RAM 4 de valores. Adicionalmente, el procesador puede tener la capacidad de monitorizar y generar entradas y salidas a los flujos de actividad neuronal, usando dispositivos periféricos con una interfaz adecuada incorporados al componente de una red neuronal.
El procesador accede a la memoria RAM 4 de valores y los flujos de actividad neuronal pueden arbitrarse asíncronamente hacia la red completamente operativa con una mínima interferencia con el proceso neuronal siempre y cuando la red no esté operando al borde de la saturación en ese momento. Un procesador de monitorización podría supervisar un número de componentes de una red neuronal, pero un sistema muy grande podría precisar de varios de tales procesadores. Una implementación basada en tecnología DRAM de 1 Gbit podría tener un procesador de monitorización en cada chip. Por lo tanto, la red neuronal puede implementarse como una cantidad muy elevada de componentes de una red neuronal supervisados por una red paralela de procesadores convencionales. Un mérito de la invención es la facilidad con la que la arquitectura conecta con máquinas convencionales. El procesador de monitorización extiende ampliamente la flexibilidad de la arquitectura y proporciona un estrecho acoplamiento entre el procesamiento neuronal y una máquina secuencial convencional.
Si la comunicación se implementa usando una lógica temporizada, la información de activación temporal estará cuantizada. Si se usa una lógica asíncrona, se evitará dicha cuantización. El uso de la lógica asíncrona es por lo tanto ventajoso.
Aunque en la realización ilustrada un elemento procesador corresponde a una neurona, se observará que un elemento procesador puede ser responsable de llevar a cabo los cálculos para más de una neurona.

Claims (18)

1. Un componente de una red neuronal, comprendiendo el componente una pluralidad de entradas (1), al menos un elemento procesador (3), al menos una salida (4), y una memoria digital (2) que almacena valores en direcciones respectivamente correspondientes con el al menos un elemento procesador (3), en el cual el al menos un elemento procesador (3) está dispuesto para recibir un valor que comprende una instrucción desde la memoria digital (2) en respuesta a una señal de entrada desde un elemento procesador (3) de un componente adicional de la red neuronal, y obtiene instrucciones del valor que se recibe desde la memoria digital (2) para ejecutar una de entre una pluralidad de operaciones.
2. Un componente de una red neuronal de acuerdo con la reivindicación 1, en el cual la operación es la suma del valor a un nivel de activación del al menos un elemento procesador (3).
3. Un componente de una red neuronal de acuerdo con la reivindicación 1, en el cual la operación es una atenuación de un nivel de activación del al menos un elemento procesador (3) hasta cero, mediante el aumento del nivel de activación si es negativo o la disminución del nivel de activación si es positivo.
4. Un componente de una red neuronal de acuerdo con la reivindicación 3, en el cual la tasa de atenuación es dependiente del valor recibido desde la memoria digital (2).
5. Un componente de una red neuronal de acuerdo con la reivindicación 3 ó 4, en el cual la atenuación está controlada por un reloj.
6. Un componente de una red neuronal de acuerdo con la reivindicación 1, en el cual la operación comprende la generación de una salida por el al menos un elemento procesador (3), y luego la reposición de un nivel de activación del al menos un elemento procesador (3) a un nivel mínimo predeterminado.
7. Un componente de una red neuronal de acuerdo con la reivindicación 1, en el cual la operación comprende reposicionar un nivel de activación del al menos un elemento procesador (3) a un nivel mínimo predeterminado sin que el al menos un elemento procesador (3) genere una salida.
8. Un componente de una red neuronal de acuerdo con la reivindicación 1, en el cual la operación comprende modificar un nivel de activación del al menos un elemento procesador (3) de acuerdo con un algoritmo de aprendizaje automático.
9. Un componente de una red neuronal de acuerdo con la reivindicación 1 o la Reivindicación 8, en el cual la operación comprende modificar el valor retenido en la memoria digital (2) de acuerdo con un algoritmo de aprendizaje automático.
10. Un componente de una red neuronal de acuerdo con la reivindicación 8 o la Reivindicación 9, en el cual el logaritmo de aprendizaje automático comprende un logaritmo de aprendizaje de Hebbian.
11. Un componente de una red neuronal de acuerdo con cualquier reivindicación precedente, en el cual la salida (4) generada por el componente de una red neuronal comprende un número representativo de la dirección del elemento procesador (3) desde el cual se emitió la salida (4).
12. Un componente de una red neuronal de acuerdo con la reivindicación 11, en el cual el componente de una red neuronal está provisto de unos medios (6) de arbitraje y codificación dispuestos para determinar el orden cronológico de los impulsos de señal recibidos desde los elementos procesadores, y para representar cada impulso de señal como un número.
13. Un componente de una red neuronal de acuerdo con cualquier reivindicación precedente, comprendiendo adicionalmente un procesador convencional con acceso de lectura/escritura a la memoria digital (2).
14. Un componente de una red neuronal de acuerdo con la reivindicación 13, en el cual los accesos del procesador convencional a la memoria digital (2) son sometidos a un arbitraje asíncrono con los accesos requeridos por los elementos procesadores (3) neuronales.
15. Un componente de una red neuronal de acuerdo con las reivindicaciones 13 ó 14, en el cual un gran número de componentes de una red neuronal son supervisados por una red paralela de procesadores convencionales.
16. Un componente de una red neuronal de acuerdo con cualquier reivindicación anterior, en el cual la memoria digital (2) es una Memoria de Acceso Aleatorio (RAM) (2).
17. Un componente de una red neuronal de acuerdo con cualquier reivindicación anterior, en el cual el componente trabaja de manera asíncrona.
18. Un procedimiento para operar un componente de una red neuronal, comprendiendo el procedimiento almacenar valores en una memoria digital (2) en direcciones respectivamente correspondientes a al menos un elemento procesador (3), transfiriendo un valor que comprende una instrucción hasta el al menos un elemento procesador (3) en respuesta a una señal de entrada (1) desde un elemento procesador (3) de un componente adicional de la red neuronal y ejecutando una de entre una pluralidad de operaciones en el elemento procesador (3) en respuesta al valor que se recibe desde la memoria digital (2).
ES00968107T 1999-10-15 2000-10-16 Componente de una red neuronal. Expired - Lifetime ES2338751T3 (es)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
GB9924310 1999-10-15
GBGB9924310.7A GB9924310D0 (en) 1999-10-15 1999-10-15 Neural network component

Publications (1)

Publication Number Publication Date
ES2338751T3 true ES2338751T3 (es) 2010-05-12

Family

ID=10862720

Family Applications (1)

Application Number Title Priority Date Filing Date
ES00968107T Expired - Lifetime ES2338751T3 (es) 1999-10-15 2000-10-16 Componente de una red neuronal.

Country Status (9)

Country Link
US (1) US7457787B1 (es)
EP (1) EP1224619B1 (es)
JP (1) JP4931311B2 (es)
AT (1) ATE457503T1 (es)
AU (1) AU7806500A (es)
DE (1) DE60043824D1 (es)
ES (1) ES2338751T3 (es)
GB (1) GB9924310D0 (es)
WO (1) WO2001029766A2 (es)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8515885B2 (en) 2010-10-29 2013-08-20 International Business Machines Corporation Neuromorphic and synaptronic spiking neural network with synaptic weights learned using simulation
US8812414B2 (en) 2011-05-31 2014-08-19 International Business Machines Corporation Low-power event-driven neural computing architecture in neural networks
US8843425B2 (en) * 2011-07-29 2014-09-23 International Business Machines Corporation Hierarchical routing for two-way information flow and structural plasticity in neural networks
US8909576B2 (en) * 2011-09-16 2014-12-09 International Business Machines Corporation Neuromorphic event-driven neural computing architecture in a scalable neural network
US8924322B2 (en) * 2012-06-15 2014-12-30 International Business Machines Corporation Multi-processor cortical simulations with reciprocal connections with shared weights
US9218564B2 (en) 2012-07-30 2015-12-22 International Business Machines Corporation Providing transposable access to a synapse array using a recursive array layout
US8918351B2 (en) 2012-07-30 2014-12-23 International Business Machines Corporation Providing transposable access to a synapse array using column aggregation
US9159020B2 (en) 2012-09-14 2015-10-13 International Business Machines Corporation Multiplexing physical neurons to optimize power and area
US8990130B2 (en) 2012-11-21 2015-03-24 International Business Machines Corporation Consolidating multiple neurosynaptic cores into one memory
US9558443B2 (en) 2013-08-02 2017-01-31 International Business Machines Corporation Dual deterministic and stochastic neurosynaptic core circuit
US9852006B2 (en) 2014-03-28 2017-12-26 International Business Machines Corporation Consolidating multiple neurosynaptic core circuits into one reconfigurable memory block maintaining neuronal information for the core circuits
US10410109B2 (en) 2014-08-25 2019-09-10 International Business Machines Corporation Peripheral device interconnections for neurosynaptic systems
US10832137B2 (en) 2018-01-30 2020-11-10 D5Ai Llc Merging multiple nodal networks
WO2019152308A1 (en) * 2018-01-30 2019-08-08 D5Ai Llc Self-organizing partially ordered networks

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5148385A (en) * 1987-02-04 1992-09-15 Texas Instruments Incorporated Serial systolic processor
JP2588195B2 (ja) * 1987-05-28 1997-03-05 株式会社東芝 パルス入力装置
JP2804069B2 (ja) * 1989-03-10 1998-09-24 株式会社日立製作所 情報処理装置
JPH02310666A (ja) * 1989-05-25 1990-12-26 Mitsubishi Electric Corp 半導体神経回路装置
JP3210319B2 (ja) 1990-03-01 2001-09-17 株式会社東芝 ニューロチップおよびそのチップを用いたニューロコンピュータ
DE4215179A1 (de) * 1991-05-08 1992-11-12 Caterpillar Inc Prozessor und verarbeitendes element zum gebrauch in einem neural- oder nervennetzwerk
US6894639B1 (en) * 1991-12-18 2005-05-17 Raytheon Company Generalized hebbian learning for principal component analysis and automatic target recognition, systems and method
US5278945A (en) * 1992-01-10 1994-01-11 American Neuralogical, Inc. Neural processor apparatus
US5404556A (en) * 1992-06-15 1995-04-04 California Institute Of Technology Apparatus for carrying out asynchronous communication among integrated circuits
US5920852A (en) * 1996-04-30 1999-07-06 Grannet Corporation Large memory storage and retrieval (LAMSTAR) network
JPH1091605A (ja) * 1997-05-09 1998-04-10 Hitachi Ltd 情報処理装置
IL133384A0 (en) * 1997-06-11 2001-04-30 Univ Southern California Dynamic synapse for signal processing in neural networks
US6516309B1 (en) * 1998-07-17 2003-02-04 Advanced Research & Technology Institute Method and apparatus for evolving a neural network

Also Published As

Publication number Publication date
JP4931311B2 (ja) 2012-05-16
EP1224619B1 (en) 2010-02-10
EP1224619A2 (en) 2002-07-24
WO2001029766A3 (en) 2002-04-25
AU7806500A (en) 2001-04-30
JP2003512683A (ja) 2003-04-02
DE60043824D1 (de) 2010-03-25
US7457787B1 (en) 2008-11-25
WO2001029766A2 (en) 2001-04-26
GB9924310D0 (en) 1999-12-15
ATE457503T1 (de) 2010-02-15

Similar Documents

Publication Publication Date Title
ES2338751T3 (es) Componente de una red neuronal.
US11055609B2 (en) Single router shared by a plurality of chip structures
US11604974B2 (en) Neural network computation circuit including non-volatile semiconductor memory element
CA2817802C (en) Electronic synapses for reinforcement learning
US11620505B2 (en) Neuromorphic package devices and neuromorphic computing systems
Schrauwen et al. Compact hardware liquid state machines on FPGA for real-time speech recognition
JP5963315B2 (ja) シミュレーションを使用して学習されるシナプス重みを用いるニューロモーフィック/シナプトロニック・スパイキング・ニューラル・ネットワークのための方法、デバイス、および回路
US9165245B2 (en) Apparatus and method for partial evaluation of synaptic updates based on system events
US10628732B2 (en) Reconfigurable and customizable general-purpose circuits for neural networks
WO1991019267A1 (en) Neural network processor
WO2013043903A1 (en) Apparatus and methods for synaptic update in a pulse-coded network
KR20200026586A (ko) 2차원 어레이 기반 뉴로모픽 프로세서 및 그 동작 방법
Qiao et al. A neuromorphic-hardware oriented bio-plausible online-learning spiking neural network model
KR20220038516A (ko) 메모리 내 인공 신경망
Smith Implementing neural models in silicon
US11574174B2 (en) Wearable electronic device with built-in intelligent monitoring implemented using deep learning accelerator and random access memory
US11741043B2 (en) Multi-core processing and memory arrangement
Volk et al. Number representation and arithmetic in the human brain
Ortigosa et al. FPGA implementation of a perceptron-like neural network for embedded applications
CN113703837A (zh) 数据处理装置以及人工智能处理器
Card Limits to neural computations in digital arrays