Implementación del algoritmo Perceptron para NOT Logic Gate

En el campo del Aprendizaje Automático, el Perceptrón es un Algoritmo de Aprendizaje Supervisado para clasificadores binarios. El modelo Perceptron implementa la siguiente función:

\[ \begin{array}{c} \hat{y}=\Theta\left(w_{1} x_{1}+w_{2} x_{2}+\ldots+w_{n} x_{n}+b\right) \\ =\Theta(\mathbf{w} \cdot \mathbf{x}+b) \\ \text { where } \Theta(v)=\left\{\begin{array}{cc} 1 & \text { if } v \geqslant 0 \\ 0 & \text { otherwise } \end{array}\right. \end{array} \]

Para una elección particular del vector de peso $\boldsymbol{w}$y el parámetro de sesgo $\boldsymbol{b}$, el modelo predice la salida $\boldsymbol{\hat{y}}$para el vector de entrada correspondiente $\boldsymbol{x}$.

La tabla de verdad de la función NO lógica es solo de entrada binaria de 1 bit (0 o 1), es decir, el vector de entrada $\boldsymbol{x}$y la salida correspondiente $\boldsymbol{y}$:

$\boldsymbol{x}$ $\boldsymbol{y}$
0 1
1 0

Ahora, para el vector de peso correspondiente $\boldsymbol{w}$del vector de entrada $\boldsymbol{x}$, la función de perceptrón asociada se puede definir como:

\[$\boldsymbol{\hat{y}} = \Theta\left(w x+b\right)$\]


For the implementation, considered weight parameter is $\boldsymbol{w} = -1$ and the bias parameter is $\boldsymbol{b} = 0.5$.

Implementación de Python:

# importing Python library
import numpy as np
  
# define Unit Step Function
def unitStep(v):
    if v >= 0:
        return 1
    else:
        return 0
  
# design Perceptron Model
def perceptronModel(x, w, b):
    v = np.dot(w, x) + b
    y = unitStep(v)
    return y
  
# NOT Logic Function
# w = -1, b = 0.5
def NOT_logicFunction(x):
    w = -1
    b = 0.5
    return perceptronModel(x, w, b)
  
# testing the Perceptron Model
test1 = np.array(1)
test2 = np.array(0)
  
print("NOT({}) = {}".format(1, NOT_logicFunction(test1)))
print("NOT({}) = {}".format(0, NOT_logicFunction(test2)))
Producción:

NOT(1) = 0
NOT(0) = 1

Aquí, la salida predicha del modelo ( $\boldsymbol{\hat{y}}$) para cada una de las entradas de prueba coincide exactamente con la salida convencional de la puerta lógica NOT ( $\boldsymbol{y}$) de acuerdo con la tabla de verdad.
Por lo tanto, se verifica que el algoritmo de perceptrón para la puerta lógica NOT está implementado correctamente.

Publicación traducida automáticamente

Artículo escrito por goodday451999 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *