你正在寻找一个数学上的解释,让我们先来对感知器是如何工作的样子:
输入被加权和总结出来的。如果它超过阈值θ,则返回1,否则返回0。 在XOR情况X1和X2可以是1或0,并且要搜索的权重W1和W2,以及一个阈值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情况下,你需要两行:
对于每一行,你需要一个隐藏的节点,然后结合东西放在一起,同时采取否定考虑在内。
这里你可以看到一个解决方案:
How to solve XOR problem with MLP neural network?
因此,关键是不要让非线性的,而是改写XOR成类似:
X1 XOR X2 == NOT(x1 AND x2)AND(x1或x2)
是的,我知道这一点。但是,如何通过添加隐藏层和压缩函数来获得解决异或问题的能力?我想到的方式是它能够插入多项式,因为它可以创建许多在某些点上互连的线路,因为MLP的功能仍然是线性的。根本没有指数,除了逻辑函数...这只是将值压缩到子空间。 –
这对我了解Perceptron以及处理异或问题的问题/可能性有很大的帮助,谢谢!什么可以帮助更多,是包括一个图形,如单层感知器的图形,但是可以解决异或问题的多层感知器。 –