为什么感知机不能表示异或?

为什么感知机不能表示异或。

1.感知机的数学定义
感知机可以简单地理解为单层的神经网络。
感知机到底是什么呢?首先来看一下他的数学定义:
假设输入空间(即样本的特征空间)为X⊆Rn,输出空间为y={+1,−1}。输入位x⊂X表示样本的特征向量,对应于输入空间(特征空间)的点;输出y⊂Y表示样本类别。由输入空间到输出空间对应的函数关系如下:
f(x)=sign(w⋅x)+b

此函数被称为感知机
其中,w,与b为感知机的模型参数,w⊂Rn,为权重(weight)或权值向量(weight vector),b⊂R为偏置(bias),w⋅x表示w与x的内积,而sign是符号函数,即:

在这里插入图片描述

感知机是一种线性分类模型,属于判别模型。
2.异或是线性不可分
异或之所以重要,是因为它相对于其他逻辑关系,例如与(AND), 或(OR)等,异或是线性不可分的
在这里插入图片描述
如图,你不可能用一条线区分x o 这个两个部分。
在这里插入图片描述

3.那含有隐藏层的神经网络为什们可以表示异或呢,主要是在输入到隐藏层之间加了激活函数,网络变成了一个非线性的函数。表达能力提升了。如果没有激活函数,就算是你有多少个隐藏层还是不行,不能表示异或。
参考:
神经网络表示异或图解
感知机

猜你喜欢

转载自blog.csdn.net/qq_38574975/article/details/107521152