神经网络:求解XOR

Bas*_*ian 7 artificial-intelligence machine-learning perceptron neural-network

有人可以给我一个数学正确的解释,为什么多层感知器可以解决XOR问题?

我对感知器的解释如下:

具有两个输入的感知器 在此输入图像描述在此输入图像描述 具有以下线性函数,因此能够解决线性可分离问题,例如AND和OR.

在此输入图像描述

在此输入图像描述 是基本步骤功能.

我想到的方式是我用这两个部分代替 在此输入图像描述 用+号分隔为 在此输入图像描述在此输入图像描述 我明白了 在此输入图像描述这是一条线.通过应用步进函数,我得到关于输入的一个聚类.我将其解释为由该行分隔的空格之一.

因为MLP的功能仍然是线性的,我如何以数学方式解释这一点,更重要的是:为什么它仍然是线性的时能够解决XOR问题?是因为它插入多项式?

Nag*_*ddi 6

尝试绘制两个变量x 1x 2的XOR函数的样本空间.分离正(y = 1)和负例(y = 0)的决策边界显然不是直线,而是如下的非线性决策边界:

在此输入图像描述

因为,非线性决策边界的建模不能通过仅由输入和输出层组成的简单神经网络来完成.因此,需要隐藏层来模拟所需的非线性决策边界.另一方面,像AND,OR,NOT这样的函数具有线性决策边界,因此可以通过简单的输入输出神经网络来建模.


小智 6

您正在寻找数学解释,所以我们先来看看感知器的工作原理:

简单的感知器具有双暗输入

输入被加权并总结.如果它超过阈值θ,则返回1,否则为0.在XOR情况下,x1x2可以是1或0,并且您正在搜索权重w1w2以及阈值theta,以便在x1 XOR x2的情况下:

w1*x1 + w2*x2 > = theta

要么

w1*x1 + w2*x2 - theta> = 0

首先,您可以看到该函数是线性的.这意味着它定义了一条线.但是当你观察样本空间时,没有可以将正面与负面情况分开的线.

其次,你可以尝试一下.拿一个任意的θ,让我们说0.5.

情况1:x1 = 1,x2 = 0 => w1需要> 0.5

情况2:x1 = 0,x2 = 1 => w2需要> 0.5

情况3:由于前两种情况,x1 = 1,x2 = 1 => w1 + w2需要<0.5 =>不可能

通常,使用感知器,您只能定义线性可分离的函数,即线,平面,超平面等.

但对于XOR案例,您需要两行:

在此输入图像描述

对于每一行,您需要一个隐藏节点,然后将所有内容组合在一起,同时考虑到否定.

您可以在此处查看解决方案:

如何用MLP神经网络解决XOR问题?

所以诀窍不是获得非线性,而是将XOR重写为:

x1 XOR x2 == NOT(x1x2)AND(x1x2)