martes, 1 de diciembre de 2009

CIRCUITOS LOGICOS CON NEURONAS

INTRODUCCION

En el estado de relajación el interior de una neurona se encuentra a un potencial de -70mV con respecto al exterior circundante. Una neurona puede recibir múltiples estímulos a través de sus dendritas y emitir estímulos a través de sus botones terminales. Estos estímulos son básicamente de dos tipos según sus efectos:
  • Excitadores: Aumentan su potencial interno, por ejemplo al recibir un estimulo de este tipo el interior de la neurona puede pasar a -68mV.
  • Inhibidores: Reducen su potencial interno, por ejemplo al recibir un estimulo de este tipo el interior de la neurona puede pasar de -68mV a -70mV.
Existen receptores que reciben señales excitadoras y otros receptores que reciben señales inhibidoras, un receptor inhibidor no recibir una señal excitadora.

Cualquiera de los estímulos se disipa en el tiempo, de modo que una neurona estimulada a -68mV volvería a -70mV por si misma. Para que una neurona se dispare y estimule a sus cercanos debe de alcanzar un potencial de -65mV, lo cual indica que debe de recibir más estímulos excitadores que inhibidores en un intervalo breve de tiempo para evitar la disipación antes mencionada. La estimulación que puede producir una neurona puede ser también excitadora o/y inhibidora, pero siempre será de la misma forma, cuando la neurona se dispare siempre hará lo mismo. Después del disparo la neurona vuelve a -70mV al cabo de un periodo refractario de 1 mS.

Lo presentado es un modelo muy simplificado del funcionamiento de una neurona, que es mucho más complejo. Nos serviremos de esto para realizar un primera aproximación a su lógica.


PLANTEAMIENTO LOGICO

Supongamos que la neurona es una sistema con {A1,A2,....An} receptores excitadores y {B1,B2,.....Bm} receptores inhibidores, esto hace un total de m+n inputs. La información de los inputs se procesa y el resultado se envía a las salida Z y X, siendo Z la salida excitadora y X la salida inhibidora. Una neurona en realidad tiene múltiples salidas, las cuales se obtendrían bifurcando las salidas Z y X cuantas veces se quiera o necesite, lo dejaremos así para no complicar la notación.

Si utilizamos la lógica binaria, estas salidas Z y X se encuentran a 0 inicialmente y no envían señales. Un 1 en Z significa que esta enviando una señal excitadora (señal E de ahora en adelante) y un 1 en X significa que esta enviando una señal inhibidora (señal I de ahora en adelante), cuando la neurona se dispare tanto X como Z se pondrán a 1. Puede que la neurona no excite a ninguna, en ese caso simplemente la salida X se encontrara desconectada a otras neuronas.

Se comento que la neurona necesitaba recibir mas señales E que I para dispararse, en realidad es necesario realizar una integración dado que el conjunto de estímulos que recibe es grande y su influencia inexacta. En este planteamiento supondremos que para que la neurona se dispare se necesitan recibir K impulsos mas E que I.

Por lo tanto lo que hace la neurona de nuestro modelo es sumar todos los impulsos E y sumar todos los impulsos I, a continuación compara los tamaños de E y I+K. Pudiéndose dar 2 situaciones:

E mayor = I+K la neurona se dispara y {X,Z}={1,1}
E menor I+K la neurona no se dispara y {X,Z}={0,0}

El diagrama simplificado de la neurona resultaría de la siguiente forma:

Aclaro que cada uno de los An tiene el mismo peso en la suma binaria. Una A y una B cualquiera pueden estar en 1 o 0, y la salida se activara (1) cuando la neurona se dispare.

Este diagrama puede expandirse hasta el nivel de puertas lógicas, esto es operaciones {and, or, not....}, si utilizamos 8 entradas el resultado es un diagrama que ocuparía una pagina utilizando símbolos pequeños, puede hacerlo cualquiera con algunos conocimientos básicos. Para mayor número de entradas la progresión es aritmética, el diagrama lógico de una neurona típica con 1000 conexiones ocuparía un folio equivalente a 125 DIN-A4, aunque quizás pudiera simplificarse. En definitiva, tenemos que una neurona a grandes rasgos se comporta como dos sumadores y un comparador. Una implicación de lo presentado es que una red neuronal puede en virtud de las simplificaciones realizadas transquibrirse a un esquema de puertas lógicas.


NEURONAS COMO PUERTAS LOGICAS

LOGICA COMBINACIONAL

El siguiente paso será trasformar las neuronas en puertas lógicas simples capaces de realizar las operaciones lógicas básicas.  Las operaciones básicas se realizaran sobre dos líneas de entrada, a las que llamaremos Q y P. El objetivo es unir estas líneas con las entradas A o B, ahora puede que la línea Q solo pueda unirse con las líneas A o solo con la B, o con ambas y lo mismo pasaría con P. Cuando la conducción es entre neurona y neurona, la salida del comparador tiene dos tomas, una para cada tipo de receptor, de forma que los canales Q y P pueden transmitir en este caso datos a ambos (A y B).

Transmision entre neuronas

universalizador

Se podría tener un canal Q o P que solo es transmisible a un tipo de receptor (A o B), por ejemplo una célula somática que solo puede trasmitir a A. Es posible "universalizar" a través de una neurona este tipo de señales discriminantes para que puedan llegar tanto a A como a B. Veamos como seria el esquema de un posible universalizador.


Si la neurona tuviera una K de 1 entonces bastaría con conectar el canal con la toma A o B compatibles y a continuación "conectar a tierra" el resto de A´s y B´s. Conectar a tierra significa que se el resto de conexiones de la neurona son aislados, conectar a tierra en electrónica significa poner un 0. Si K es diferente a 1 entonces basta con multiplicar el canal de llegada de los datos para que un solo impulso active la salida del comparador.
 
Negador

El negador convierte el bit de un canal en su opuesto, una neurona negadora podría tener el siguiente diagrama:
negador 

En la imagen anterior se ha cambiado el aspecto de la neurona con respecto a otras imágenes. El signo menos de la caja indica que es un negador, también se representa la K de la neurona.  Para K=1 una toma A (recordemos que se trata de un receptor de excitación) se conecta a Vcc que en electrónica representa el. Dado que para una neurona el 1 provocado de esta manera no duraría mucho tiempo en la practica seria quizás necesario conectar Vcc a una multitud de A´s y Q´s a otra multitud de B´s tal que al recibir la neurona las señales inhibidoras asociadas dejara de emitir pulsos por Z y X. No obstante y para no complicar un asunto que tiene fácil solución, se considerara que el objetivo de una puerta lógica es procesar los bits que llegan en pulsos en un determinado instante a los receptores implicados.


Sumador, "O"

El sumador procesa los bits de dos canales y da como salida un 0 solo si ambas entradas son 0, en caso contrario da 1. Se trata pues de una puerta "or". Veamos un posible esquema de sumador para K=1.

Sumador

Para K mayor que 1 solo es necesario multiplicar los canales P y Q. Para poder determinar todas las permutaciones lógicas posibles se necesita la siguiente puerta.

o exclusiva

Para conseguir esta puerta lógica se utilizaran 2 neuronas acopladas de la siguiente manera:

o exclusiva

Si se inspecciona se comprueba que si P y Q son iguales solo entonces las salidas son 0. Para construir esta puerta se ha necesitado multiplicar las señales P y Q, lo cual se puede conseguir mediante el uso de un universalizador y utilizando sus múltiples salidas.

Mediante la utilización conjunta de los elementos ahora descritos quedan cubiertas todas las operaciones de la lógica combinacional. Aunque es posible diseñar circuitos en una sola neurona que cubran las necesidades requeridas en la lógica combinacional, trabajo para casa.


MEMORIA Y LOGICA SECUENCIAL

Una neurona es incapaz de memorizar el 1 dado que el estado asociado a este 1 dura un breve periodo de tiempo del ciclo de excitación. Como unidad capaz de guardar un bit de datos se propondrá un anillo de memoria.

Anillo de memoria 

El anillo de memoria se basa en la excitación sucesiva de una neurona a la siguiente en un anillo, de forma que un 1 se trasmite indefinidamente dentro de este. Sobre este anillo es posible realizar dos operaciones básicas que son:
  • Introducción de datos: puesta a 0 mediante el reset y puesta a 1 mediante el set.
  • Recuperación de datos.
El siguiente es un ejemplo de anillo de memoria:

Anillo de memoria

Se han simplificado los diagramas eliminando por ejemplo la toma a tierra de modo que la neurona esta cogiendo cada vez un aspecto más abstracto, pero sigue estando ahí. Las tres salidas se han unida en una sola, en electrónica eso no es posible pero trabajando con neuronas si, pues esas tres señales que vallan a cualquier neurona se comportaran como un único input 1.  Un 1 en la señal azul borra el 1 de la salida, y un 1 en la señal roja añade un 1.

Si al anillo de memoria se le añadieran dos sumadores, 1 para combinar la señal de reset con una señal de reloj y otro sumador para combinar la señal de ser con otra señal de reloj se habría obtenido un biestable RS sincrono.

Biestable JK

A partir del biestable JK es posible obtener fácilmente los biestables T y D, teniendo así todos los elementos necesarios para desarrollar la lógica secuencial. A continuación un circuito neuronal que cumple las mismas funciones de un biestable JK:


Se ha omitido la señal de reloj, por tanto se trata de un biestable asíncrono. Se puede conseguir un biestable JK sincrono añadiendo la señal del reloj a las 4 neuronas de la izquierda y aumentando el tipo K en una unidad. Se recuerda que el biestable JK se diferencia del RS en que si tanto la entrada J como K son 1, entonces el valor almacenado cambia a su opuesto. De modo que podrían realizarse las operaciones propias de la lógica secuencial y del almacenamiento de memoria.


CONSIDERACIONES

A partir de los elementos expuestos en principio es posible construir un procesador e diseñar software que pueda utilizarse para realizar todo tipo de tareas (lógica programable), todo ello basado en neuronas.