news 2026/4/16 16:30:25

感知机(感知机的局限性)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
感知机(感知机的局限性)

感知机的局限性

到这里我们已经知道,使用感知机可以实现与门、与非门、或门三种逻
辑电路。现在我们来考虑一下异或门(XOR gate)。

异或门

异或门也被称为逻辑异或电路。如图2-5所示,仅当$x_1 $ 或 $x_2 $ 中的一方为1时,才会输出1(“异或”是拒绝其他的意思)。那么,要用感知机实现这个异或门的话,应该设定什么样的权重参数呢?

实际上,用前面介绍的感知机是无法实现这个异或门的。为什么用感知
机可以实现与门、或门,却无法实现异或门呢?下面我们尝试通过画图来思
考其中的原因。

首先,我们试着将或门的动作形象化。或门的情况下,当权重参数
(b,w1w_1w1,w2w_2w2) = (-0.5, 1.0, 1.0)时,可满足图2-4的真值表条件。此时,感知机
可用下面的式(2.3)表示。

y={0(−0.5+x1+x2≤0)1(−0.5+x1+x2>0)(2.3) y = \begin{cases} 0 & (-0.5 + x_1 + x_2 \leq 0) \\ 1 & (-0.5 + x_1 + x_2 > 0) \end{cases} \tag{2.3}y={01(0.5+x1+x20)(0.5+x1+x2>0)(2.3)

式(2.3)表示的感知机会生成由直线 ( -0.5 +x1x_1x1+x2x_2x2= 0 ) 分隔的两个空间。其中一个空间输出1,另一个空间输出0,如图2-6所示。

中的○和△分开。实际上,刚才的那条直线就将这4 个点正确地分开了。
那么,换成异或门的话会如何呢?能否像或门那样,用一条直线作出分
割图2-7 中的○和△的空间呢?

想要用一条直线将图2-7 中的○和△分开,无论如何都做不到。事实上,
用一条直线是无法将○和△分开的。

线性和非线性

图2-7 中的○和△无法用一条直线分开,但是如果将“直线”这个限制条
件去掉,就可以实现了。比如,我们可以像图2-8 那样,作出分开○和△的空间。

感知机的局限性就在于它只能表示由一条直线分割的空间。图2-8这样弯
曲的曲线无法用感知机表示。另外,由图2-8这样的曲线分割而成的空间称为
非线性空间,由直线分割而成的空间称为线性空间。线性、非线性这两个术
语在机器学习领域很常见,可以将其想象成图2-6和图2-8所示的直线和曲线。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/16 9:21:34

感知机的致命缺陷:为什么它连简单的异或问题都解决不了?

感知机的致命缺陷:为什么它连简单的异或问题都解决不了?无法解决异或门问题,暴露了感知机的本质局限性感知机的辉煌战绩 在之前的讨论中,我们已经见证了感知机的强大能力——它能够完美实现三种基本逻辑电路: 与门&…

作者头像 李华
网站建设 2026/4/16 9:20:50

PyTorch QoS保障机制:基于Miniconda-Python3.9环境实现

PyTorch QoS保障机制:基于Miniconda-Python3.9环境实现 在现代AI研发中,一个看似简单却频繁困扰开发者的问题是:“为什么代码在我机器上能跑,到了服务器就报错?” 更进一步地,在团队协作、模型复现和生产部…

作者头像 李华
网站建设 2026/4/15 20:08:48

Miniconda-Python3.9环境下实现PyTorch模型混沌工程实验

Miniconda-Python3.9环境下实现PyTorch模型混沌工程实验 在深度学习系统日益复杂的今天,一个让人头疼的问题始终存在:为什么同样的代码,在开发机上运行流畅,部署到生产环境却频繁崩溃?更糟糕的是,这类故障往…

作者头像 李华
网站建设 2026/4/16 11:05:44

Miniconda-Python3.9环境下使用PyTorch Lightning简化训练流程

Miniconda-Python3.9环境下使用PyTorch Lightning简化训练流程 在深度学习项目中,一个常见的场景是:你终于调通了一个新模型的训练脚本,结果换到另一台机器上却因为包版本不一致、CUDA 版本冲突或缺少某个依赖而无法运行。更糟的是&#xff0…

作者头像 李华
网站建设 2026/4/16 16:02:32

Java锁相关概念的简单理解

Java中锁的概念 自旋锁:是指当一个线程在获取锁的时候,如果锁已经被其它线程获取,那么该线程将循环等待,然后不断的判断锁是否能够被成功获取,直到获取到锁才会退出循环 乐观锁:假定没有冲突,在修改数据时如果发现数据…

作者头像 李华