6

有人请给我一个数学正确的解释,为什么多层感知器可以解决异或问题?神经网络:求解XOR

我的感知器的解释如下:

具有两个输入和enter image description hereenter image description here感知器具有以下的线性函数,因此是能够解决线性separateable问题,诸如AND和OR。

enter image description here

enter image description here是基本步骤的功能。

我认为它的方式是,我内enter image description here两份+号分隔作为替代和enter image description hereenter image description here我得到enter image description here这是一条线。 通过应用阶跃函数,我得到了关于输入的一个集群。我将其解释为由该行分隔的空格之一。

因为MLP的功能仍然是线性的,我怎么用数学的方式来解释这个问题,更重要的是:为什么它能够在线性时解决异或问题?是因为它插入了一个多项式吗?

回答

5

你正在寻找一个数学上的解释,让我们先来对感知器是如何工作的样子:

Simple perceptron with two-dim input

输入被加权和总结出来的。如果它超过阈值θ,则返回1,否则返回0。 在XOR情况X1X2可以是1或0,并且要搜索的权重W1W2,以及一个阈值THETA,使得在X1 XOR X2的情况下:

W1 * X1 + W2 * X2> = THETA

OR

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 =>不可能由于前2箱子

一般而言,具有感知只能定义是线性可分的,即线,平面,超平面等等的功能

但对于XOR情况下,你需要两行:

enter image description here

对于每一行,你需要一个隐藏的节点,然后结合东西放在一起,同时采取否定考虑在内。

这里你可以看到一个解决方案:

How to solve XOR problem with MLP neural network?

因此,关键是不要让非线性的,而是改写XOR成类似:

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

+0

是的,我知道这一点。但是,如何通过添加隐藏层和压缩函数来获得解决异或问题的能力?我想到的方式是它能够插入多项式,因为它可以创建许多在某些点上互连的线路,因为MLP的功能仍然是线性的。根本没有指数,除了逻辑函数...这只是将值压缩到子空间。 –

+0

这对我了解Perceptron以及处理异或问题的问题/可能性有很大的帮助,谢谢!什么可以帮助更多,是包括一个图形,如单层感知器的图形,但是可以解决异或问题的多层感知器。 –

3

感知器真正在做的是将输入空间(在XOR - 真实平面的情况下)划分为由较低维的仿射子空间(在异或 - 行的情况下)分隔的两个部分,并将不同的类分配给不同的类部分。 (0,0),(1,1)与(1,0),(0,1)分开的方式没有这样划分平面的线。

多层感知器也将输入空间分成两部分,但这种划分不仅限于仿射分离,因此可以分离异或类。

5

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

enter image description here

由于,建模一个非线性决策边界不能通过一个简单的只包含输入和输出层的神经网络来完成。因此,需要一个隐含层来模拟所需的非线性决策边界。另一方面,像AND,OR这样的函数不具有线性决策边界,因此可以通过简单的输入输出神经网络进行建模。