¿Pero qué es la Neurona de McCulloch y Pitts (Neurona M-P)?

Andres Felipe Ocampo
8 min readDec 25, 2023

--

Vamos a continuar nuestra discusión sobre redes neuronales artificiales hablando de la primera neurona artificial, aquella que inventaron McCulloch y Pitts en 1943. Fijaros esta neurona artificial comúnmente denominada como Neurona M.P., se corresponde con la primera neurona artificial de la historia, tal y como habíamos visto anteriormente, cuando hablábamos del contexto histórico de la inteligencia artificial y concretamente del Deep Learning.

Bien!, se va a caracterizar porque va a recibir uno o más valores binarios {1,0} Es decir, va a recibir todas las características de entrada que nosotros queramos. Pero el valor que van a recibir estas características de entrada debe ser 1 o 0 si o no?, estamos enseñando a un software, recordar eso!!. De acuerdo, tiene que ser un valor binario.

Esto va a retornar, es decir, va a predecir también otro valor binario, va a ser capaz de predecir 1 o 0, de tomar una decisión que sea si o no activa su salida cuando más de un número determinado de valores de entrada se encuentran activos.

Qué quiere decir que la neurona se active o que los valores de entrada se encuentren activos? -> Quieren decir que son igual a 1. En este caso. Entonces, si nosotros tenemos un número de valores de entrada de características de entrada. Por ejemplo 5 características de entrada que sean igual a 1. Esa neurona se activará y por lo tanto el resultado la variable de salida va a ser también igual a 1.

En el caso de que el número de características de entrada que son igual a 1 no sea mayor o igual a 5. Entonces lo que pasará es que esa neurona no se activará y por lo tanto esa variable de salida, ese output de la función, esa predicción será igual a cero.

Muy bien!! es simple y la vez complejo vemos que viene esto super claro desde 1943, fijaros este número de valores de entrada o de características de entrada a partir del cual la neurona se activa.

Tenemos que establecerlo de manera manual y concretamente este número se va a denominar threshold o límite.

A modo de repaso, el Perceptrón es un clasificador binario de modelo lineal con una relación de entrada-salida simple como en el que se realiza un producto escalar de un n número de entradas con sus pesos asociados y luego enviamos esta “entrada de red” a una función de paso con un umbral definido.

Muy bien!!, es un límite y es una cosa muy común y que se utiliza con muchos algoritmos de inteligencia artificial, un límite a partir del cual pasa algo. En este caso ese threshold lo que nos marca es el límite a partir del cual la neurona se activa sin nuestro threshold, por ejemplo, es igual a 5.

Quiere decir que tiene que haber al menos 5 características de entrada, 5 variables de entrada que sean igual a 1 para que esa neurona se active, para que el output de la neurona sea también igual a 1.

Bien, pues ya hemos visto un poquito de manera genérica cómo va a funcionar esta neurona de McCulloch y Pitts y ahora vamos a entrar un poquito más en los entresijos de la neurona y verlo de manera formal.

Vamos a comenzar representando gráficamente esta neurona comúnmente en la literatura veréis que las neuronas artificiales y cuando veáis arquitecturas de redes neuronales artificiales, normalmente todas suelen representarse con un círculo.

Bien, pues esto que veis en el grafico muy basico, vamos a considerar que es esta neurona que inventaron McCulloch y Pitts y que ya sabemos que va a recibir una serie de inputs binarios y nos va a proporcionar un output, una predicción que también va a ser binaria si entramos un poquito más.

En qué forma esta neurona, concretamente esta neurona va a estar formada por dos funciones? Vamos a dividir esta neurona en dos y vamos a escribir dos funciones. La primera de ellas la vamos a denominar Z y va a consistir en una función matemática que va a realizar agregación de los inputs. Esto lo veremos ahora un poquito más adelante, en detalle.

De momento ponemos aquí que realiza agregación y vamos a tener una segunda función que vamos a denominar con la letra A. Una función de activación que ya veremos más adelante.

¿Qué quiere decir esto?

¿Qué es lo que va a hacer?

Es tomar una decisión.

En base a la agregación que ha realizado la función anterior, esto encaja bastante con lo que habíamos hablado previamente. Recordad, decíamos que esta neurona se activaba. Es decir, nos devolvía a 1, siempre y cuando un número determinado de las entradas fueran también igual a 1.

Con lo cual en algún momento tendremos que hacer el recuento. Esa agregación de qué entradas son igual a 1 y en algún otro momento tendremos que tomar una decisión. Es decir, tomar la decisión de que si un número determinado o un número de entradas es mayor a un número que hayamos establecido. Entonces esta neurona se active.

Bien, pues una vez establecido esto, vamos a ver cómo funcionaría esta neurona tomando una decisión real. Supongamos que, por ejemplo, la decisión que quiero tomar es una decisión cotidiana, como la siguiente pregunta Yo quiero que mi neurona responda a la pregunta de ¿si hoy voy a ir al cine?. Oh, no!

Bien? Yo quiero que mi neurona responda a esta pregunta. Lógicamente va a requerir una serie de valores de entrada, de características de entrada. En este caso, las características de entrada que yo voy a definir, a partir de las cuales la neurona tiene que tomar una decisión, van a ser las siguientes Voy a definir una primera característica de entrada que voy a denotar con X1, que básicamente va a ser la respuesta a la siguiente pregunta

¿Es fin de semana?

¿Tareas que realizar?

¿El cine está cerrado?

¿Estrenan película hoy?

¿Tengo dinero?

Estas van a ser las características de entrada que va a recibir nuestra neurona artificial y a partir de estas características de entrada, que básicamente fijaros que el valor que pueden tomar es un valor binario.

Es fin de semana si o no (1–0)tengo tareas que realizar si o no (1–0). Esta es el cine cerrado si o no (1–0), estrenan película hoy si o no (1–0), tengo dinero si o no (1–0)

En base a estas características de entrada la neurona va a tener que tomar una decisión, con lo cual vamos a representar esto gráficamente.

Tendremos nuestras características x 1, 2, 3 y 4. Las va a recibir esta neurona y en base a estas características va a tomar una decisión que vamos a denotar con la I, con el circunflejo arriba.

Fijaros en una cosa, super importante.

Nosotros siempre vamos a responder sí o no. Y en este caso el sí se va a corresponder con el 1. Es decir, si la neurona nos devuelve un 1. Querrá decir que si voy al cine, si la neurona responde un cero, querrá decir que no? y así con cada pregunta

Bien, pues una vez que tenemos definidas las características de entrada, a partir de las cuales queremos que nuestra neurona tome una decisión en base a la respuesta que nosotros demos a estas preguntas y a los valores que reciban estas características de entrada. Lo siguiente es ver cómo trabajan estas funciones que hemos definido que tiene internamente la neurona está Z y está concretamente Z. Hemos dicho que es la función de agregación Z recibe este x1, x2, x3, x4, x5. De acuerdo?.

Comúnmente esto lo veréis. Con la siguiente notación Z(X) en este caso pues se corresponde con x1, x2, x3, x4 y x5 que recibe de acuerdo, es una manera también de representarlo sin que sea tan larga la manera de escribirlo bien.

Más adelante veremos que eso también se corresponde con una manera de vector esas entradas. Vamos a ver qué es lo que hace esta función. Fijaros, va a realizar una agregación muy sencillita. Concretamente va a consistir en lo siguiente desde igual a 1 hasta N. Teniendo en cuenta que N va a ser igual al número de características de entrada. Fijaros que en este caso n? Es igual a 5, porque tengo cinco características de entrada.

Básicamente que vamos a coger X-1, vamos a sumar todas nuestras entradas identificadas como x, éste será el resultado que nos proporcionará esta función de agregación Z, una vez que tenemos este resultado, la función Z, lo que vamos a hacer es que este resultado entre en la función de activación, en la función de decisión que nos dará otro output diferente. Cómo vamos a definir esta función de activación?

Pues fijaros la función de activación que voy a escribir aquí arriba va a consistir fundamentalmente en tomar una decisión en la que dirá que esta función es igual a 1, si Z(X) la función que hemos definido previamente es mayor o igual a un threshold al que nosotros definamos o es 0.

Si Z(X) es menor a un threshold, recordad lo que habíamos hablado anteriormente.

Si un número determinado de entradas está activo, entonces la neurona se activa este número determinado. Hemos dicho que se define manualmente y que nosotros lo vamos a denominar como Threshold con un valor de 3.

Bien, pues esto es muy sencillito ahora mismo, para calcular si nosotros vamos al cine o yo, no sería tan sencillo como marcar con 1 o 0 a nuestras preguntas y vemos si la funcio Z con la agregación activa la neurona.

Por lo tanto, esta función Z lo que va a hacer es sumar x1 más seguidos, más x3 más x4, etc. El resultado de Z, por lo tanto será igual a 3.

Este resultado lo recibirá esta función de activación que fijaros que nos dice que es igual a 1 si Z es mayor o igual al 3.

En este caso es igual al threshold porque refresco de 3. Por lo tanto nuestra neurona nos devolverá un Y1 >- 1. Es decir, se activará. Y por lo tanto lo que nos está diciendo es básicamente que las decisiones que nosotros tomamon es que SI podemos ir al cine hoy en base a esas entradas que hemos recibido, ahora imaginatelo de manera predictiva y que te lo recuerde en un calendario o una notificacion cuando tu lo tengas programado que cada X tiempo se realice esta serie de preguntas, ahora tus ideas basandose en conceptos biologico y humanos podrías trasladarlas al software, simplemente espectacular no?

--

--

Andres Felipe Ocampo
Andres Felipe Ocampo

Written by Andres Felipe Ocampo

Digital Manager and Sr Lead iOS Engineer

No responses yet