感知机(Perceptron)为什么不能表示异或(XOR)

感知机(Perceptron)为什么不能表示异或(XOR)1.感知机不能表示异或在很早之前学PatternRecognition相关课程的时候,老师在课堂上就说过感知机遇到的一个大问题就是无法表示异或问题(XOR)。后来接触深度学习相关的内容,开头部分肯定会提到感知机,提到感知机也必会提到不能表示异或的问题。正好抽出点时间,稍微搞明白一下为什么感知机不能表示异或。2.感知机的数学定义感知机到底是什么呢?首先来看一下他的数学定义:假设输入空间(即样本的

大家好,又见面了,我是你们的朋友全栈君。

项目github地址:bitcarmanlee easy-algorithm-interview-and-practice
欢迎大家star,留言,一起学习进步

1.感知机不能表示异或

在很早之前学Pattern Recognition相关课程的时候,老师在课堂上就说过感知机遇到的一个大问题就是无法表示异或问题(XOR)。后来接触深度学习相关的内容,开头部分肯定会提到感知机,提到感知机也必会提到不能表示异或的问题。正好抽出点时间,稍微搞明白一下为什么感知机不能表示异或。

2.感知机的数学定义

感知机到底是什么呢?首先来看一下他的数学定义:
假设输入空间(即样本的特征空间)为 X ⊆ R n X \subseteq R ^ n XRn,输出空间为 y = { + 1 , − 1 } y = \{+1, -1\} y={
+1,1}
。输入位 x ⊂ X x \subset X xX表示样本的特征向量,对应于输入空间(特征空间)的点;输出 y ⊂ Y y \subset Y yY表示样本类别。由输入空间到输出空间对应的函数关系如下:
f ( x ) = s i g n ( w ⋅ x + b ) f(x) = sign(w\cdot x + b) f(x)=sign(wx+b)

此函数被称为感知机。其中, w w w b b b为感知机的模型参数, w ⊂ R n w \subset R^n wRn为权重(weight)或权值向量(weight vector), b ⊂ R b \subset R bR为偏置(bias), w ⋅ x w \cdot x wx表示 w w w x x x的内积,而 s i g n sign sign是符合函数,即:
KaTeX parse error: No such environment: equation at position 7: \begin{̲e̲q̲u̲a̲t̲i̲o̲n̲}̲ sign(x) = \…
感知机是一种线性分类模型,属于判别模型。

3.异或是线性不可分

异或之所以重要,是因为它相对于其他逻辑关系,例如与(AND), 或(OR)等,异或是线性不可分的。
这里写图片描述

由这幅简单的示意图可以看出来,and(与)、or(或)、not and(与非)等运算很容易用一条直线分开,但是异或运算中,图示的1,2,3条许仙都无法分开,异或运算就是典型的非线性问题!

具体的数学证明过程可以看后面的参考内容

参考文献:

1.https://zh.wikipedia.org/wiki/%E6%84%9F%E7%9F%A5%E5%99%A8
2.https://www.zybuluo.com/ArrowLLL/note/827264 有数学证明过程
3.https://zhuanlan.zhihu.com/p/30155870

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/160193.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)
blank

相关推荐

  • mysql是mpp数据库_mysql迁移mpp数据库Greenplum[通俗易懂]

    mysql是mpp数据库_mysql迁移mpp数据库Greenplum[通俗易懂]1.场景描述因兄弟项目中mysql有点扛不住了,要做sql优化,但是业务有点小复杂,优化起来有点麻烦(sql嵌套有点多),便想着用Mpp数据库Greenplum测试下,看性能和复杂度怎么样,趟趟水。2.解决方案初步的想法是:因为mysql和postgresql(Greenplum建立在postgresql之上,i’m软件老王)都是使用的标准sql,直接把mysql的建表语句在Greenplum…

    2022年10月31日
  • 您的pycharm评估已过期_pycharm许可证过期

    您的pycharm评估已过期_pycharm许可证过期2020年10月国企,看来需每年操作一次

  • 我是如何自学C语言的(一个菜鸟的学习路)「建议收藏」

    我是如何自学C语言的(一个菜鸟的学习路)「建议收藏」—————————————————————————————————————————零基础扫盲课:计算机科学速成课(扫盲课):http://www.bilibili.com/video/av21376839?…

  • MSDN 6.0 之 Platform SDK 内容导航

    MSDN 6.0 之 Platform SDK 内容导航MSDN6.0之PlatformSDK内容导航王天平,北京,荣丰20082005年7月3日从头文件说起实际上在每个用C编写的Windows程式的开头都可看到:#includeWINDOWS.H是主要的引入头文件,它包含了其他Windows头文件,这些头文件的某些也包含了其他头文件。这些头文件中最重要的和最基本的是:l        WINDEF.H基本类型定义。l        

  • 【Java面试系列】SpringBoot面试题

    【Java面试系列】SpringBoot面试题目录1.SpringBoot面试题2.题目解析1、什么是SpringBoot?2、SpringBoot有哪些优点?3、什么是JavaConfig?4、如何重新加载SpringBoot上的更改,而无需重新启动服务器?5、SpringBoot中的监视器是什么?6、如何在SpringBoot中禁用Actuator端点安全性?7、如何在…

  • Java 字符串包含_实现字符串的复制

    Java 字符串包含_实现字符串的复制1问题描述给定一长字符串A和一短字符串B。请问,如何最快地判断出短字符串B中的所有字符是否都在长字符串A中?请编写一个判断函数实现此功能。为简单起见,假设输入的字符串只包含小写英文字母。下面举几个例子。(1)如果字符串A是”abcd”,字符串B是”bad”,答案是包含,因为字符串B中的字母都在字符串A中,或者说B是A的真子集。(2)如果字符串A是”abcd”,字符串B是”bce”,答案是…

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号