18 Modelo McCulloch y Pitts
El modelo de McCulloch y Pitts, concebido por Warren McCulloch, neurocientífico, y Walter Pitts, lógico matemático, en 1943 (McCulloch y Pitts 1943), representa uno de los fundamentos teóricos de las redes neuronales y la inteligencia artificial. Este modelo es una simplificación abstracta de las neuronas biológicas, propuesta para entender cómo podrían las neuronas del cerebro generar patrones complejos de pensamiento a partir de operaciones simples.
En esencia, el modelo describe una neurona como una unidad de procesamiento binario, que recibe entradas, las procesa y luego produce una salida. Las entradas se conectan a los receptores exitatorios o inhibitorio de la neurona. Los receptores exitatorios contribuyen a que la neurona pueda producir una exitación, mientras que las inhibitorias mantienen la neurona apagada.
La neurona de McCulloch y Pitts (MyP) opera sumando las señales en los receptores exitatorios. Si la suma total de dichas señales alcanza un cierto umbral, la neurona se activa y emite una señal (1); de lo contrario, permanece inactiva (0).
Este modelo introdujo la idea de que las redes de tales neuronas podrían implementar cualquier función de cálculo lógico, al permitirles organizarse en circuitos que realizan operaciones lógicas básicas como AND, OR y NOT. Así, se estableció un puente entre la biología del cerebro y los principios de la computación, sugiriendo que redes complejas de estas unidades podrían teóricamente simular aspectos del pensamiento humano (McCulloch y Pitts 1943).
A pesar de su simplicidad y las limitaciones inherentes en comparación con la complejidad de las neuronas biológicas reales, el modelo de McCulloch y Pitts ha tenido un impacto duradero en el desarrollo de las redes neuronales artificiales estableciéndose como el primer modelo de una neurona artificial (Prieto et al. 2000).
18.1 Reglas de operación
Para formalizar el modelo de McCulloch y Pitts, representaremos una neurona con la letra \(C\). La neurona se configura con tres elementos: la entrada exitatoria, la entrada inhibitoria y el umbral. La entrada exitatoria, \(E = \{e_1, \dots, e_n \}\), está compuesta por un conjunto de \(n\) elementos binarios (i.e. \(e_i \in \{0,1\}\)) mientras que la entrada inhibitoria, \(I = \{\iota_1, \dots, \iota_m \}\), contiene \(m\) elementos también binarios (\(\iota_i \in \{0,1\}\)). Nótese que las entradas pueden también ser conjuntos vacíos. Tanto las entradas como la salida, \(s\), están limitadas a valores binarios, es decir, \(e, \iota \in {0,1}\). Por su parte, el umbral \(u\) puede tomar valores naturales, es decir, \(u \in \mathbb{N}\). Dado lo anterior, la salida de la neurona, escrita como $$
= C(E,I,u), $$
se calcula usando las siguientes reglas (Resumidas en el algoritmo #alg:modelo_myp):
# Algoritmo de inferencia de una neurona de McCulloch y Pitts.
[tb]
Entrada: $E = \{e_1, \dots, e_n \$, $I = \{\iota_1, \dots, \iota_m \}$, $u$}
Salida: $\hat{y$}
%$\texttt{Inicializar}(W)$# Inicializar pesos
SI ($\exists i_i = 1; i \in I$) ENTONCES
$\hat{y} = 0$
SI NO
\uIf{$\sum_{i=1}^{n} e_i \geq u$}
$\hat{y} = 1$
SI NO
$\hat{y} = 0$
return $\hat{y$}
- En caso de que alguna de las entradas inhibitorias esté activa la neurona no se exita, es decir,
| \(C(E,I,u) = 0\) | if |
\(\exists \iota_i=1; \iota_i \in I\) |
- La neurona se exita si la integral de sus entradas exitatorias es igual o superior al umbral, es decir,
| \(C(E,I,u) = 1\) | if |
\(\sum_{i=1}^{n} e_i \geq u; e_i \in I\) |
- En cualquier otro caso la neurona permanece sin exitación.
Las reglas anteriores causan que las salidas del modelo MyP siempre sean binarias, formalmente, $$
C(E,I,u):{0,1}^n {0,1}^m {0,1}$$
Para representar las neuronas de forma gráfica utilizaremos la notación propuesta por Marvin Minsky (Marvin Lee Minsky 1967), donde se utiliza un medio círculo para representar la neurona y una línea para su axón, además las entradas exitatorias se representan con flechas y las inhibitorias con lineas terminadas en círculo. Observe la figura 1.

Suponga una neurona MyP que tiene cero entradas exitatorias, una inhibitoria y el umbral esta establecido en cero. Es decir, \(C=(E=\varnothing, I=\{\iota_1 \}, u = 0)\). Dibuje el diagrama correspondiente y determine la tabla de posibles salidas y analice el comportamiento.
SOLUCION: El diagrama de dicha neurona solo tiene una entrada conectada tal como se muestra a continuación:

Para hallar las salidas usaremos los dos posibles valores de la entrada. Cuando \(\iota_1\) es igual a cero. La salida se calcula a partir de la sumatoria sobre \(E\), como no hay elementos en \(E\) dicha sumatoria será cero. Esto se compara con el umbral, \(u\), dado que la sumatoria iguala al umbral, la salida de la neurona es uno. Para el segundo caso, cuando \(\iota_1 = 1\). La salida se ve inhabilitada y por tanto la salida sera cero. Esto se resumen en la tabla siguiente.
\(\iota_1\) \(s\) ———– —–
0 1 1 0
Calcule la tabla de salidas de una neurona de MyP definida por las entradas \(E=[e_1], I = [\iota_1]\) y un un umbral \(u = 1\). De acuerdo al diagrama siguiente:

SOLUCION: Utilizando las reglas de operación podemos observar que el único caso donde la neurona produce una salida es cuando la entrada inhibitoria esta en cero y la entrada exitatoria es igual a uno, dado que esta cantidad iguala al umbral establecido a uno. Por lo tanto, la tabla de salidas se escribiría como:
\(e_1, \iota_1\) \(s\) —————- —–
0, 0 0
0, 1 0
1, 0 1
1, 1 0
18.2 Parámetros
El modelo de MyP se puede configurar de diversas maneras. Si suponemos que dicho modelo tienen \(n\) entradas, el parámetro que podemos configurar es la selección de la conexión. Es decir, para cada entrada especificaremos si es una entrada exitatoria o inhibitoria. Por lo cual haremos \(n\) especificaciones. Adicionalmente debemos establecer el valor del umbral. Formalmente, para este modelo los parámetros se especifican como:
$$
= { c_1, , c_n, u }$$
, donde \(c_i\) puede tomar uno de dos valores. Es decir $$
c_i { ‘exitatoria’, ‘inhibitoria’ }$$
y \(n \in \mathrm{N}^+\). Por lo tanto, podemos decir que el total de parámetros del modelo MyP es \(n+1\). Usualmente esto se escribe como:
$$
18.3 Implementación
Para implementar una neurona de McCulloch y Pitts en una función de Python podemos seguir el enfoque codificado en el cuadro de python siguiente y explicado a continuación. En caso de que exista almenos una entrada inhibitoria activa se debe retornar cero directamente. En caso contrario, se debe calcular la suma de las entradas exitatorias. Si la suma es mayor o igual que el umbral, la función retorna 1; de lo contrario la función retorna cero.
#Implementacion de la neurona de McCulloch y Pitts
def neuronaMyP(E,I,u):
for inhibitoria in I:
if inhibitoria == 1:
return 0
integracion = 0
for exitatoria in E:
integracion = integracion + exitatoria
if integracion >= u:
return 1
else:
return 018.4 Limitaciones del modelo
El modelo de McCulloch y Pitts fue una de las primeras aproximaciones teóricas para simular cómo las neuronas en el cerebro podrían operar en términos lógicos. Este modelo introdujo la noción de la neurona como un dispositivo binario, que realiza cálculos basados en funciones booleanas. A pesar de ser pionero, el modelo tenía limitaciones en cuanto a las posibles funciones booleanas que podría representar. e.g. el model MyP no puede representar la función xor entre otras. Sin embargo, dado que se considera una como una compuerta de umbralizado universal, una combinación arbitraria de neuronas MyP podría representar cualquier función booleana (Hassoun 1995) (Cameron 1960).
El modelo de McCulloch y Pitts trataba a las neuronas como dispositivos extremadamente simples que solo podían disparar o no disparar y no incorporaba ninguna forma de aprendizaje o ajuste de los pesos sinápticos. Esto lo hacía poco flexible para simular procesos más complejos del cerebro, esto provocó su reemplazo o evolución hacia modelos más sofisticados como el de Rosenblatt, denominado perceptrón, que estudiaremos en la siguiente lección.
Adicionalmente, existe forma de extender el modelo MyP a redes de MyP donde varias neuronas se interconectan en capas para resolver problemas no lineales. Estas redes están fuera del alcance de este libro pero los lectores más ávidos pueden consultar (Marvin L. Minsky y Papert 1988) y (Hassoun 1995) como lecturas adicionales. De ser así, podemos traer una conclusíon interesante acerca de la capacidad de dichas redes, y es que, cualquier función booleana de \(n\) variables puede implementarse utilizando una red de dos capas con un máximo de \(2^{n-1}\) compuertas AND en la primera capa (capa oculta) y una sola compuerta OR en la segunda capa (capa de salida) (Kohavi y Jha 2009).
18.5 Ejercicios
Dada la neurona de MyP $$
C(E = [x_1, x_2], I=[i_1,i_2], u=1),$$
obtenga su diagrama gráfico y la tabla de salidas para todas las posibles entradas.
Diseñe una neurona de MyP que imite el comportamiento de una compuerta lógica ‘OR’. Verifique su comportamiento para todas las posibles entradas.
Diseñe una neurona de MyP que calcule el funcionamiento de una compuerta lógica ‘AND’. Además, verifique su comportamiento para todas las posibles entradas.
Diseñe una neurona de MyP de tal forma que cuando al menos dos de tres entradas se encuentren activas la salida se active. La salida debe estar apagada para cualquier otro caso. Verifique su comportamiento.
Diseñe una neurona de MyP que controle el encendido de una máquina industrial. La máquina tiene dos interruptores de activación y un botón de paro de emergencia. La salida de la neurona debe activarse únicamente si ambos interruptores de activación están encendidos. Sin embargo, si el botón de paro de emergencia es presionado, la máquina no debe encenderse bajo ninguna circunstancia, incluso si los otros interruptores están activos.
Diseñe una neurona de MyP que dados cuatro datos de entrada, \(a\), \(b\), \(c\) y \(d\). En particular, las entradas \(c\) y \(d\) tienen un valor unitario; pero la entrada \(a\) cuenta doble; y la entrada \(b\) cuenta triple. La salida de la neurona debe ser uno cuando en total se acumule un valor de al menos cuatro. Para cualquier otro caso, la salida es cero. Verifique su comportamiento. Pista: pude replicar un dato para que se convierta en mas de una entrada.
Implemente un programa en Python que reciba como entrada vectores de longitud y valor arbitrarios y que calcule la salida de una neurona de McCulloch y Pitts.
Grafique la linea que separa las entradas de un modelo MyP.