为什么感知器代码⽆法完成异或功能

感知器在面对异或问题时无法找到合适的超平面进行分类,因为异或是非线性问题,而感知器只能解决线性可分问题。代码实验证明了这一点,对于与、或问题感知器则能有效分类。

异或问题的真值表如下:

X1 X2 OUT
0 0 0
1 0 1
0 1 1
1 1 0

就是说两个不一样,就是真(1),如果把异或问题表现为二维的分布,就是这样

输入图片说明

这样就很直观的把异或问题表现为点在二维平面上分布的问题。

感知机的作用就是就是在一个超平面上画一条线,线的一边为一类。如果感知机只有两个输入,就是在二维平面上,划线然后分类。

输入图片说明

如上图所示,在”异或“问题上找不到一条直线能把X和O分开,这就是说这是一个不能用直线分类的问题,这类问题叫非线性问题。同理,“同或”问题一样不能解决。如果是“与”“或”问题就是可以解决的。

感知器的代码实现:

#!/usr/bin/env python3
import numpy as n
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值