3-感知机的局限性与多层感知机
1. 异或门
仅当x1或x2中的一方为 1时,才会输出1。
-
实际上,用前面介绍的感知机是无法实现这个异或门的。
-
为什么用感知 机可以实现与门、或门,却无法实现异或门呢?下面我们尝试通过画图来思考其中的原因。
-
将或门的动作形象化。或门的情况下,当权重参数(b, w1,w2) = (−0.5, 1.0, 1.0) 时可以满足真值表条件。此时,感知机可用下图表示。
-
图中,○表示0,△表示1;
-
可以看出,只有在(x1,x 2) = (0, 0)时输出0,而在 (x1,x2) 为 (0,1)、(1,0)、(1,1)时输出1。
-
如果想制作或门,用直线把图中的○和△分开就可以了。实际上,上面那条直线就将这4个点正确地分开了。
那么,换成异或门的话会如何呢?能否像或门那样,用一条直线作出分割下图中的○和△的空间呢
很明显, 用一条直线是无法将○和△分开的。
2. 线性和非线性
虽然上面第二个图无法用直线将○和△分开,但可以用曲线,如图:
感知机的局限性就在于它只能表示由一条直线分割的空间
由这样的曲线分割而成的空间称为 非线性空间,由直线分割而成的空间称为线性空间。
3. 多层感知机
感知机不能表示异或门让人深感遗憾,但也无需悲观。实际上,感知机 的绝妙之处在于它可以“叠加层“
- 异或门可通过组合我们前面做好的与门、与非门、或门进行配置得到。
异或门的真值表:
x 1 x_1 x1 | x 2 x_2 x2 | s 1 s_1 s1 | s 2 s_2 s2 | y y y |
---|---|---|---|---|
0 | 0 | 1 | 0 | 0 |
1 | 0 | 1 | 1 | 1 |
0 | 1 | 1 | 1 | 1 |
1 | 1 | 0 | 1 | 0 |
4. 异或门的实现
使用之前定义的 AND函数、NAND函数、OR函数,可以像下面这样(轻松地)实现。
def XOR(x1, x2):
s1 = NAND(x1, x2)
s2 = OR(x1, x2)
y = AND(s1, s2)
return y
#预期结果:
XOR(0, 0) # 输出0
XOR(1, 0) # 输出1
XOR(0, 1) # 输出1
XOR(1, 1) # 输出0
异或门是一种多层结构的神经网络。这里,将最左边的 一列称为第0层
,中间的一列称为第1层
,最右边的一列称为第2层
,共3层
图2-13 所示的感知机与前面介绍的与门、或门的感知机形状不 同。
实际上,与门、或门是单层感知机,而异或门是2层感知机(不过,有的文献认为图2-13的感知机是由3层构成的,故也称为3层感知机)。叠加了多层的感知机也称为多层感知机
本文来自博客园,作者:aJream,转载请记得标明出处:https://www.cnblogs.com/ajream/p/15383614.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· winform 绘制太阳,地球,月球 运作规律
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人