Implementación del algoritmo de perceptrón para puerta lógica OR con entrada binaria de 2 bits

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}$.

Tabla de verdad de función lógica OR para variables binarias de 2 bits , es decir, el vector de entrada $\boldsymbol{x} : (\boldsymbol{x_{1}}, \boldsymbol{x_{2}})$y la salida correspondiente $\boldsymbol{y}$:

$\boldsymbol{x_{1}}$ $\boldsymbol{x_{2}}$ $\boldsymbol{y}$
0 0 0
0 1 1
1 0 1
1 1 1

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

\[$\boldsymbol{\hat{y}} = \Theta\left(w_{1} x_{1}+w_{2} x_{2}+b\right)$\]


For the implementation, considered weight parameters are $\boldsymbol{w_{1}} = 1, \boldsymbol{w_{2}} = 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
  
# OR Logic Function
# w1 = 1, w2 = 1, b = -0.5
def OR_logicFunction(x):
    w = np.array([1, 1])
    b = -0.5
    return perceptronModel(x, w, b)
  
# testing the Perceptron Model
test1 = np.array([0, 1])
test2 = np.array([1, 1])
test3 = np.array([0, 0])
test4 = np.array([1, 0])
  
print("OR({}, {}) = {}".format(0, 1, OR_logicFunction(test1)))
print("OR({}, {}) = {}".format(1, 1, OR_logicFunction(test2)))
print("OR({}, {}) = {}".format(0, 0, OR_logicFunction(test3)))
print("OR({}, {}) = {}".format(1, 0, OR_logicFunction(test4)))
Producción:

OR(0, 1) = 1
OR(1, 1) = 1
OR(0, 0) = 0
OR(1, 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 OR ( $\boldsymbol{y}$) de acuerdo con la tabla de verdad para la entrada binaria de 2 bits.
Por lo tanto, se verifica que el algoritmo de perceptrón para la puerta lógica OR 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 *