Implementation of Perceptron Algorithm for NOT Logic Gate


In the field of Machine Learning, the Perceptron is a Supervised Learning Algorithm for binary classifiers. The Perceptron Model implements the following function:

    \[ \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} \]

For a particular choice of the weight vector $\boldsymbol{w}$ and bias parameter $\boldsymbol{b}$, the model predicts output $\boldsymbol{\hat{y}}$ for the corresponding input vector $\boldsymbol{x}$.

NOT logical function truth table is of only 1-bit binary input (0 or 1), i.e, the input vector $\boldsymbol{x}$ and the corresponding output $\boldsymbol{y}$

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

Now for the corresponding weight vector $\boldsymbol{w}$ of the input vector $\boldsymbol{x}$, the associated Perceptron Function can be defined as:



    \[$\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$.

Python Implementation:

filter_none

edit
close

play_arrow

link
brightness_4
code

# 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)))

chevron_right


Output:

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

Here, the model predicted output ($\boldsymbol{\hat{y}}$) for each of the test inputs are exactly matched with the NOT logic gate conventional output ($\boldsymbol{y}$) according to the truth table.
Hence, it is verified that the perceptron algorithm for NOT logic gate is correctly implemented.




My Personal Notes arrow_drop_up

Check out this Author's contributed articles.

If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.