神经网络:为啥感知器规则只适用于线性可分数据?
Posted
技术标签:
【中文标题】神经网络:为啥感知器规则只适用于线性可分数据?【英文标题】:Neural Networks: Why does the perceptron rule only work for linearly separable data?神经网络:为什么感知器规则只适用于线性可分数据? 【发布时间】:2012-12-08 22:37:53 【问题描述】:我以前asked 解释了线性可分数据。仍在阅读 Mitchell 的机器学习书,我很难理解为什么感知器规则仅适用于线性可分数据?
Mitchell 定义感知器如下:
也就是说,如果加权输入的总和超过某个阈值,则 y 为 1 或 -1。
现在,问题是确定一个权重向量,使感知器为每个给定的训练示例产生正确的输出(1 或 -1)。实现这一点的一种方法是通过感知器规则:
学习可接受的权重向量的一种方法是从随机开始 权重,然后迭代地将感知器应用于每个训练 例如,在错误分类时修改感知器权重 一个例子。重复这个过程,迭代训练 根据需要多次示例,直到感知器对所有示例进行分类 正确训练示例。每一步都修改权重 根据感知器训练规则,修改权重 wi 根据规则与输入 xi 关联:
所以,我的问题是:为什么这只适用于线性可分数据?谢谢。
【问题讨论】:
【参考方案1】:因为w
和x
的点积是x
s 的线性组合,而您实际上是使用超平面a_1 x_1 + … + a_n x_n > 0
将数据分成2 个类
考虑一个 2D 示例:X = (x, y)
和 W = (a, b)
,然后是 X * W = a*x + b*y
。 sgn
如果其参数大于 0,则返回 1,也就是说,对于类 #1,您有 a*x + b*y > 0
,它等价于 y > -a/b x
(假设 b != 0)。而且这个方程是线性的,将一个二维平面分成两部分。
【讨论】:
对不起,我的头爆炸了。我不太了解(没有强大的数学背景)。你能详细说明一下吗? :) 具体来说,我不太明白:“2 个类使用超平面 a_1 x_1 + ... + a_n x_n > 0”和“这个方程是线性的,将 2D 平面分成 2 个部分”...a_1 x_1 + … + a_n x_n
> 0 在 n 维空间中形成一个((n-1)维,但没关系)超平面。它类似于二维空间(平面)中的一条线(一维对象)。所以对于任意点是w * x > 0
或w * x <= 0
。这就是为什么类数是 2。
y > -a/b x
只是 y = -a/b x
用不等式替换相等。很容易看出,对于任意 x
的不等式版本,我们应该取所有高于点 y = -a/b x
的 y
s 以上是关于神经网络:为啥感知器规则只适用于线性可分数据?的主要内容,如果未能解决你的问题,请参考以下文章