3. 多层感知机算法和异或门的 Python 实现

        前面介绍过感知机算法和一些简单的 Python 实践,这些都是单层实现,感知机还可以通过叠加层来构建多层感知机。

2. 感知机算法和简单 Python 实现-CSDN博客

1. 多层感知机介绍

        单层感知机只能表示线性空间,多层感知机就可以表示非线性空间。多层感知机在理论上可以表示计算机。

2. 异或门的 Python 实现

2.1 异或门真值表达

        异或门即:两个输入信号,一个输出信号,当两个输入信号分别是 0 和 1 时候,输出 1,否则输出 0

异或门的真值表达式
输入信号输出信号 y
x1x2异或门
1000
2101
3011
4110

2.2 Python 实现

        异或门可以认为是对一个与非门信号、一个或门信号,进行与门操作。

def AND(x1,x2):
    w1,w2=0.5,0.5
    w=np.array([w1,w2]) # 权重转换成 array 方便计算
    x=np.array([x1,x2]) # 输入信号转换成 array 方便计算
    b=-0.7 #设置偏置
    tmp=np.sum(w*x)+b
    if(tmp<=0):
        return(0)
    else:
        return(1)
def NAND(x1,x2):
    w1,w2 = -0.5,-0.5
    w=np.array([w1,w2]) # 权重转换成 array 方便计算
    x=np.array([x1,x2]) # 输入信号转换成 array 方便计算
    b=0.7 #设置偏置
    tmp=np.sum(w*x)+b
    if(tmp<=0):
        return(0)
    else:
        return(1)
def  OR(x1,x2):
    w1,w2 = 0.5,0.5
    w=np.array([w1,w2]) # 权重转换成 array 方便计算,权重和 AND 不同
    x=np.array([x1,x2]) # 输入信号转换成 array 方便计算
    b=-0.2 #设置偏置,偏置和 AND 不同
    tmp=np.sum(w*x)+b
    if(tmp<=0):
        return(0)
    else:
        return(1)
        
def  XOR(x1,x2):
    s1=NAND(x1,x2)
    s2=OR(x1,x2)
    y=AND(s1,s2)
    return(y)
    
print(XOR(0,0))
print(XOR(0,1))
print(XOR(1,0))
print(XOR(1,1))

代码结果如下

  • 5
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

江南野栀子

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值