神经网络的XOR问题。对初学者的解释

2,979 阅读5分钟

在各种逻辑门中,XOR或也称为 "排他性或 "问题是逻辑运算之一,当对二进制输入执行时,对不同的输入组合产生输出,而对相同的输入组合不产生输出。XOR逻辑产生的输出在超平面上不是线性可分的。因此,在这篇文章中,让我们看看什么是XOR逻辑,以及如何使用神经网络整合XOR逻辑。

目录

  1. 什么是XOR操作逻辑?
  2. 点的线性可分离性
  3. 为什么感知器不能解决XOR问题?
  4. 如何用神经网络解决XOR问题?
  5. 摘要

什么是XOR操作逻辑?

让我们试着用一个真值表来理解XOR操作逻辑。

从下面的真值表可以推断出,对于不同的输入状态,XOR会产生一个输出,对于相同的输入,XOR逻辑不会产生任何输出。XOR逻辑的输出是由下面的方程式产生的。

XY输出
000
011
101
110

输出= X.Y'+X'.Y

XOR门通常被称为NOT和AND门的组合,这种类型的逻辑在密码学和容错方面有广泛的应用。一个XOR门的逻辑图如下所示。

你是否在寻找一个完整的数据科学中使用的Python库。查看这里.

点的线性可分离性

点的线性可分离性是指在超平面上对数据点进行分类的能力,以避免平面上的类的重叠。每个类别都应该落在分离线之上或之下,那么它们就被称为线性可分离的数据点。关于逻辑门的操作,如AND或OR,这种逻辑产生的输出在超平面上是线性可分离的。

线性可分离的数据点如下图所示。

因此,在这里我们可以看到,图中的粉色小点和红色三角点没有相互重叠,线性线很容易将两个类别分开,图中的上边界可以被视为一个分类,下面的区域可以被视为另一个分类区域。

神经网络中对线性分离性的需求

神经网络中需要线性可分离性,因为神经网络的基本操作是在N维空间中进行的,神经网络的数据点必须是线性可分离的,以消除错误的权重更新和错误的分类问题 数据的线性可分离性也被认为是先决条件之一,它有助于将输入空间轻松解释为点,无论网络是正还是负,都能在超平面上线性分离数据点。

为什么感知器不能解决XOR问题?

Perceptrons主要被称为 "线性分类器",只能用于线性分离的用例,而XOR是其中一种逻辑操作,它不是线性分离的,因为数据点会与线性线的数据点重叠,或者不同的类别出现在线性线的单边。

让我们用XOR逻辑产生的输出和XOR逻辑的相应图形来理解为什么感知器不能用于XOR逻辑,如下图所示。

在上图中,我们可以看到在线性可分离线的上方,红色三角形与粉红点重叠,使用XOR逻辑不可能实现数据点的线性可分离。因此,这时多个神经元也被称为多层感知器,在隐蔽层中使用,以便在权重更新时引起一些偏差,并使用XOR逻辑产生数据点的线性分离性。所以现在让我们了解如何用神经网络解决XOR问题。

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

神经网络的XOR问题可以通过使用多层感知器或具有输入层、隐藏层和输出层的神经网络架构来解决。因此,在通过神经网络进行前向传播时,权重被更新到相应的层,并执行XOR逻辑。解决XOR问题的神经网络架构如下所示。

因此,有了这个整体架构和每层之间的某些权重参数,XOR逻辑的输出可以通过前向传播产生。整个神经网络架构使用Relu激活函数,以确保每个过程中的权重更新为1或0,其中对于正的权重集,特定神经元的输出将是1,对于负的权重更新,特定神经元将是0。因此,让我们了解第一个输入状态的一个输出。

例子:对于X1=0和X2=0,我们应该得到一个0的输入值,让我们来解决它。

解决方案。考虑到X1=0和X2=0

h1=relu(0.1+0.1+0) = 0

h2=relu(0.1+0.1+0)=0

所以现在我们已经得到了从输入层传播到隐藏层的权重。所以现在让我们从隐藏层传播到输出层

y=relu(0.1+0. (-2))=0

这就是多层神经网络或也被称为多层感知器(MLP)用于解决XOR问题的方法,对于所有其他的输入集,可以验证上面提供的架构,并且可以得到XOR逻辑的正确结果。

总结

因此,在各种逻辑运算中,XOR逻辑运算是这样一个问题,即使用单神经元或感知器不可能实现数据点的线性分离。因此,为了解决神经网络的XOR问题,有必要在神经网络结构中使用多个具有一定权重和适当激活函数的神经元来解决神经网络的XOR问题。

The postXOR problem with neural networks:对初学者的解释出现在印度分析杂志上。