神经网络如何解决异或问题

数据挖掘 神经网络 深度学习
2021-09-18 03:17:04

我正在阅读关于神经网络的精彩教程。这是我见过的最好的教程,但我无法理解以下一件事:

在上面的链接中,它正在讨论神经工作如何解决 XOR 问题。

它说我们需要两条线来分隔四个点。但我不知道第二张桌子。

异或:

input1    input2    output
  0         0         0
  0         1         1
  1         0         1
  1         1         0

第一张表:

input1    input2    output
  0         0         0
  0         1         1
  1         0         1
  1         1         1

在我看来,第一个表是可以的,因为它包含 XOR,这意味着第二个表需要做的是删除第四个输入。所以我认为第二张表应该如下:

input1    input2    output
  0         0         1
  0         1         1
  1         0         1
  1         1         0

它在链接中如何说第二个表是这样的:

input1    input2    output
  0         0         0
  0         1         0
  1         0         0
  1         1         1

总之,我可以理解为什么单层神经网络不能解决 XOR 问题,但我无法理解两层神经网络如何工作来解决它。

2个回答

请注意,第一个表(橙色线)正在执行 OR 操作,而第二个表(蓝线)正在执行 AND 操作。XOR 可以定义为(x OR y) AND NOT (x AND y)(xy)¬(xy),换句话说:橙色应该火,蓝色不应该火。如果我们现在从您的教程中查看此图:

在此处输入图像描述

我们可以看到第二层中蓝色的权重是负的,并且足够小(更负),以至于如果蓝色触发,输出永远不会触发,即如果两个输入都触发,输出将无法触发。

0+01: 不应该开火

2+01:(xy)=T 不应该开火

0+1.1>1:(xy)¬(xy)=T 应该开火

2+1.11:(xy)(xy)=T 不应该开火

您所指的表正在执行 OR 操作。每当您的网络中只有一个神经元时,您就可以使用一条线来分隔您的数据。但对于异或数据,您必须有两个行分隔符。解决这个问题的常见方法是在第一层有两个神经元,它们都做 OR 操作,而在第二层有一个神经元来做和操作。如果你把这两层叠加起来,你就会得到结果。我建议你看看这个的形状来看看非线性决策边界。第二个表也在做AND操作。