两层感知机解决异或(XOR)问题

两层感知机解决异或(XOR)问题

前言

本文的内容主要参考《深度学习入门》这本书

最近翻看《深度学习入门》一书时,对感知机解决异或问题产生了一些疑问。经过与同学的探讨,终于弄清楚了为什么两层感知机能够解决异或(XOR)问题,以及两层感知机解决异或问题时的权重应该如何设置。

文章脉络是这样的,

首先我会简单介绍什么是感知机

然后会介绍一下一些简单的逻辑电路(与门,与非门,或门),并介绍如何用感知机实现这些逻辑电路

最后我会介绍异或门,引出单层感知机的局限性,进而引出用两层感知机解决异或问题

感知机

感知机接收多个输入信号,输出一个信号。注意,感知机的信号只有(0/1)两种取值

感知机示例

上图是一个接收两个输入信号的感知机的例子。 x 1 x_1 x1 x 2 x_2 x2是输入信号, y y y是输出信号, w 1 w_1 w1 w 2 w_2 w2 是权重。图中的〇称为“神经元”或者“节点”。
那么接下来的一个问题是,刚刚说了感知机的信号只有两种取值(0/1),那么什么时候输出信号的取值是0,什么时候输出信号的取值是1呢

计算法则:

首先神经元会计算传送过来的信号总和( w 1 x 1 + w 2 x 2 w_1x_1+w_2x_2 w1x1+w2x2),然后我们会人为的给定一个阈值 θ \theta θ),当传送过来信号的总和大于阈值的时候,输出信号为1,反之,传送过来的信号的总和小于等于阈值的时候,输出信号的取值为0
y = { 0 ( w 1 x 1 + w 2 x 2 ≤ θ ) 1 ( w 1 x 1 + w 2 x 2 > θ ) y= \begin{cases} 0& \text{($w_1x_1+w_2x_2 \leq \theta$)}\\ 1& \text{($w_1x_1+w_2x_2 \gt \theta$)} \end{cases} y={ 01(w1x1+w2x2θ)(w1x1+w2x2>θ)

简单逻辑电路

与门

与门仅在两个输入均为1时输出1,其他时候输出0。用真值表表示为:

与门真值表

将其画在图上则为:

与门样本点示例图

下面考虑用感知机来表示这个与门。需要做的就确定能满足上图真值表的 w 1 , w 2 , θ w_1,w_2,\theta w1,w2,θ的值。那么设定什么样的值才能制作出满足上图真值表的感知机呢

还记得我们初中学过的直线表达式吗, a x + b y + c = 0 ax+by+c=0 ax+by+c=0,当某一点 ( x 0 , y 0 ) (x_0,y_0) (x0,y0)在这条直线下方时,有 a x 0 + b y 0 + c < 0 ax_0+by_0+c\lt0 ax0+b

评论 12
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值