首页 / 深度学习 / 【原创】深度学习第3弹:神经元的极限
【原创】深度学习第3弹:神经元的极限
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了【原创】深度学习第3弹:神经元的极限,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2782字,纯文字阅读大概需要4分钟。
内容图文
![【原创】深度学习第3弹:神经元的极限](/upload/InfoBanner/zyjiaocheng/993/50ff420fcc744866a6945921ad0d1d2c.jpg)
文章目录
一、前文回顾
上一节我们通过神经元模拟了逻辑与,非,或门。你会发现他们的构造其实一样的,都是一个神经元,不同的是权重值不一样,那么同样的方法我们来模拟一下另外一个逻辑电路:异或门XOR
二、异或门是什么?
?XOR门就是对于两个输入信号x1或者x2,相同则输出0,相异则输出1的一种逻辑电路。如下表所示:
x1 | x2 | y |
---|---|---|
0 | 0 | 0 |
1 | 0 | 1 |
0 | 1 | 1 |
1 | 1 | 1 |
?那么神经元也可以通过人工设定权重来实现XOR门吗?很肯定的告诉你:不行!!
三、线性与非线性
1.线性
?我们先回顾一下或门。当权重参数(w1,w2,b)=(1.0,1.0,-0.5)的时候,我们就可以用神经元来构造一个或门。
?为了更直观的了解它,我们用二维坐标图来看一下。上图神经元所表示的其实就是用一条x1+x2-0.5=0的直线把二维平面分割成两部分,一边的值为0,一边的值为1。正如下图点虚线把二维平面分割为两部分,灰色部分为0,另外一边为1。
?因为当(x1,x2)=(0,0)的时候或门输出为零,其余输出为1,所以在二维坐标里面我们用▲代表1,●代表0。你会发现我们的这条直线很完美的把0和1都分开了。这就是线性。
2.非线性
?那么在回头再看看XOR门,同样的在二维坐标用▲和●标出0和1的值。你会发现无论你怎么画,都不可能画出一条完美的把0和1区域分开的直线(如下图所示,只有曲线可以划分)。这就是非线性。
四、神经元的极限
?神经元可以模拟与,或,非门,但是却无法模拟异或门,这便是神经元的极限。所以我们要换个思路来思考:把神经元组合起来试试(下图所示),看能不能解决异或门这个难题。
?x1和x2分别代表初始输入信号,s1代表非门(NAND)的输出,s2代表或门(OR)的输出,s1和s2又分别作为与门(AND)的输入,y是与门的输出。
※整理一下真理值表
x1 | x2 | s1=(x1 NAND x2) | s2=(x1 OR x2) | y=(s1 AND s2) |
---|---|---|---|---|
0 | 0 | 1 | 0 | 0 |
1 | 0 | 1 | 1 | 1 |
0 | 1 | 1 | 1 | 1 |
1 | 1 | 0 | 1 | 0 |
和本文一开始的真理值表结果完全一致。
用Python来验证一下。
def calculate(x1, opt, x2, ):
if opt is "AND":
# 与门的权重参数
w1, w2, b = 0.5, 0.5, -0.7
elif opt is "NAND":
# 非门的权重参数
w1, w2, b = -0.5, -0.5, 0.7
elif opt is "OR":
# 或门的权重参数
w1, w2, b = 0.5, 0.5, -0.2
else:
return -1
# 输入信号*权重+偏置值
sum = x1 * w1 + x2 * w2 + b
if sum <= 0:
return 0
else:
return 1
def xor_gate(x1, x2):
# s1= x1 NAND x2
s1 = calculate(x1, "NAND", x2)
# s1= x1 OR x2
s2 = calculate(x1, "OR", x2)
# y = s1 AND s2
y = calculate(s1, "AND", s2)
return y
打印结果:
print("x1 = 0, x2 = 0, y =", xor_gate(0, 0))
print("x1 = 1, x2 = 0, y =", xor_gate(1, 0))
print("x1 = 0, x2 = 1, y =", xor_gate(0, 1))
print("x1 = 1, x2 = 1, y =", xor_gate(1, 1))
#↓↓↓↓↓↓↓↓↓↓↓output↓↓↓↓↓↓↓↓↓↓↓↓
x1 = 0, x2 = 0, y = 0
x1 = 1, x2 = 0, y = 1
x1 = 0, x2 = 1, y = 1
x1 = 1, x2 = 1, y = 0
OK,和真理表值完全一致。
五、总结
?因为异或门在二维平面不可以被直线分割(也可以称为非线性),所以神经元无法模拟异或门,但是通过三个其他神经元(与门,或门,非门)的组合便可以完美解决这个问题。而这三兄弟的组合我们就可以称为一个神经网络。
?为了庆祝这个神经网络的诞生,我给他取了一个霸气的名字:小D。所以下节的主题便是【小D的诞生】。
※关注个人微信公众号:DeepVisionZero
?获取更多精彩内容
内容总结
以上是互联网集市为您收集整理的【原创】深度学习第3弹:神经元的极限全部内容,希望文章能够帮你解决【原创】深度学习第3弹:神经元的极限所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。