热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

非线性门控感知器算法的实现与应用分析

非逻辑门感知器算法的实现原文:https://www . geeksforgeeks . org/非逻辑门感知器算法的实现/在机

非逻辑门感知器算法的实现

原文:https://www . geeksforgeeks . org/非逻辑门感知器算法的实现/

在机器学习领域,感知器是一种用于二进制分类器的监督学习算法。感知器模型实现以下功能:

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

对于权重向量$\boldsymbol{w}$和偏差参数$\boldsymbol{b}$的特定选择,模型预测相应输入向量$\boldsymbol{x}$的输出$\boldsymbol{\hat{y}}$

NOT 逻辑函数真值表只有 1 位二进制输入(0 或 1),即输入向量$\boldsymbol{x}$和相应的输出$\boldsymbol{y}$


















$\boldsymbol{x}$$\boldsymbol{y}$
Zeroone
oneZero

现在对于输入向量$\boldsymbol{x}$的相应权重向量$\boldsymbol{w}$,关联的感知器函数可以定义为:

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


为实现,考虑的权重参数为$\boldsymbol{w} = -1$,偏差参数为$\boldsymbol{b} = 0.5$

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

Output:

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

这里,根据真值表,每个测试输入的模型预测输出($\boldsymbol{\hat{y}}$)与非逻辑门常规输出($\boldsymbol{y}$)精确匹配。
由此验证了非逻辑门的感知器算法是正确实现的。


推荐阅读
author-avatar
六月__的__旅行
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有