Modelo de McCullock-Pitts

Modelo de McCullock-Pitts

Se tiene registro que los primeros investigadores en proponer un modelo matemático de una neurona fueron W. McCullock y W. Pitts en 1943 en el artículo A Logical Calculus of the ideas immanent in nervious activity.

Ellos describen a su neurona artificial como un objeto que tiene una puerta lógica con salidas binarias. En el mismo artículo McCulloch y Pitts demuestran que mediante redes basadas en este modelo de neurona se podía realizar cualquier función lógica.

A continuación mostramos un ejemplo de modelo neuronal con dos entradas x e y, que es representado en la siguiente figura.

El modelo anterior consta de:

  • entradas x e y,

  • Pesos w_1 y w_1 correspondientes a cada entrada.

  • un término aditivo b

  • una función de activación f

  • una salida z

En resumen, se tiene que las entradas x e y son el estímulo que el modelo recibe del entorno que lo rodea, y la salida z es la respuesta al estímulo.

En este modelo, la salida neuronal z esta dada por

Función de Activación

La función de activación se suele considerar determinista, y en la mayor parte de los modelos es monótona creciente y continua.

Las funciones de activación más empleadas en las redes neuronales se muestra en la siguiente tabla.

El umbral, es un valor crítico que se utiliza en la función de activación para determinar si la neurona debe activarse (emitir una salida de 1) o no (emitir una salida de 0).

En otras palabras, la función de activación toma la forma de un "interruptor" que se enciende o apaga en función del valor de la suma ponderada en relación con el umbral.

El umbral es un parámetro ajustable que se utiliza para controlar la sensibilidad de la neurona a las entradas, es decir, puedes controlar cuánta influencia deben tener las entradas para que la neurona emita una salida.

El umbral es un componente importante en el diseño y el ajuste de neuronas y perceptrones, ya que permite definir la región en la que la neurona emitirá una salida activa y contribuye a su capacidad de tomar decisiones.

En conclusión, la elección adecuada del umbral es esencial para que la neurona realice la tarea deseada de manera efectiva.

Implementación en Python

Mostramos un ejemplo de una apliación en Python de una neurona de McCullock-Pitts

Definimos las entradas x e y, los pesos w_1 y w_2, y el término aditivo b

# Entradas para la neurona
inputs = [0, 1]
# Pesos para las entradas
weights = [0.5, 0.5]
# término aditivo
b = 0.5
# Umbral para la función de activación
umbral = 0.6 

Definimos la función de activación.

# Definición de una función de activación simple
def step_function(x, umbral=0):
    # Esto describe una función piso
    return 1 if x >= umbral else 0

Definimos una función, que describe la neurona de McCulloch-Pitts

# Implementación de una neurona de McCulloch-Pitts
def mcculloch_pitts_neuron(inputs, weights, b, umbral):
    weighted_sum = sum(w * x for w, x in zip(weights, inputs)) + b
    output = step_function(weighted_sum, umbral)
    return output

Por último, calculamos la neurona el resultado de la neurona.

output = mcculloch_pitts_neuron(inputs, weights, b, umbral)
print(f"Entradas: {inputs}")
print(f"Pesos: {weights}")
print(f"Umbral: {umbral}")
print(f"Salida: {output}")

Código completo

Lo anterior, se encuentra disponible en el siguiente google colab: https://github.com/mevangelista-alvarado/neural_networks/blob/main/Neurona_Artificial_1.ipynb

Last updated