当前位置:   article > 正文

神经网络入门①多层感知器如何解决异或问题?_感知机异或运算

感知机异或运算

1. 多层感知器


在这里插入图片描述

人工智能是最近非常热的一个话题,它的发展将对人类的生产活动产生革命性的影响。

机器学习是实现人工智能的有效手段,深度学习作为机器学习领域中最有潜力的方向,引起了广泛的关注。

感知机(perceptron)早在20世纪50年代就提出来了1,但直到近几年深度学习的崛起,神经网络才再次走入大众的视野,并且成为了当下最热门的研究方向之一。

一个单层的感知器只能解决线性问题,而要解决如“异或”等非线性问题,则需要引入多层感知器

其原理是通过叠加多个线性的单元,构成非线性的网络

首先考虑一个简单的“与”运算

Y = A & B Y=A\&B Y=A&B

其真值表如下

ABYC
0000
0101
1001
1112

只有当 A A A B B B都为1的时候 Y Y Y才为1,表中 C C C A A A B B B的数学运算值,即

C = A + B C=A+B C=A+B

将真值表转化为图的形式,其中横坐标 A B AB AB表示 A A A B B B组成的2比特的数。例如:当 A = 1 A=1 A=1 B = 0 B=0 B=0时, A B = 10 ( 二进制 ) = 2 ( 十进制 ) AB=10(二进制)=2(十进制) AB=10(二进制)=2(十进制)
在这里插入图片描述

观察 C C C的取值与 Y Y Y的关系,可以得到,当 A A A B B B的线性加和大于1.5时,可以认为 A & B A\&B A&B为1,小于等于1.5时则为0

因此通过引入一个非线性激活函数,可以将数学运算值转化为“与”运算,该运算可以描述为:

s g n ( A + B − 1.5 ) sgn(A+B-1.5) sgn(A+B1.5)

其中 s g n sgn sgn表示符号函数

因此一个具有“与”运算功能的神经网络可以表示为

在这里插入图片描述

一个“或”运算问题如下

Y = A ∣ B Y=A|B Y=AB

通过上述方式可以得到一个具有“或”运算功能的神经网络可以表示为

在这里插入图片描述

同理可得到具有“非”运算功能的神经元

Y = A ˜ Y=\~A Y=A˜
在这里插入图片描述

考虑一个“异或”问题:

Y = A ⊕ B Y=A⊕B Y=AB

这是一个非线性对应关系,无法用一个简单的神经元表示

但是从逻辑上分析,一个“异或”问题可以转化为“与”和“或”问题的组合,即

Y = A ⊕ B = ( A ∣ B ) & ( A ˜ ∣ B ˜ ) Y=A⊕B=(A|B)\&(\~A|\~B) Y=AB=(AB)&(A˜B˜)

则其对应的神经网络可以表示为

在这里插入图片描述
检验一下真值表

ABYC1C2CY
000-0.51.5-0.50
0110.50.50.51
1010.50.50.51
1101.5-0.5-0.50

可以看到多层感知器可以解决“异或”问题

2. BP算法


待续

参考文献


  1. Rosenblatt, F., 1958. The perceptron: a probabilistic model for information storage and organization in the brain. Psychological review, 65(6), p.386. ↩︎

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/喵喵爱编程/article/detail/921438
推荐阅读
相关标签
  

闽ICP备14008679号