Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cassandra/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Neural network 用单层感知器求解异或_Neural Network_Xor_Perceptron - Fatal编程技术网

Neural network 用单层感知器求解异或

Neural network 用单层感知器求解异或,neural-network,xor,perceptron,Neural Network,Xor,Perceptron,我一直听说XOR问题不能用单层感知器(不使用隐藏层)来解决,因为它不是线性可分的。我知道没有线性函数可以将类分开 但是,如果我们使用一个非单调的激活函数,比如sin()或cos(),情况仍然是这样吗?我想这些类型的函数可能能够将它们分开。不,没有“黑客”就不行 当以图形方式说明xor问题时,我们需要一个隐藏层的原因是直观的 不能绘制单个正弦或余弦函数来分隔这两种颜色。您需要一条额外的线(隐藏层),如下图所示: 是的,具有非单调激活函数的单层神经网络可以解决异或问题。更具体地说,周期函数会多次切

我一直听说XOR问题不能用单层感知器(不使用隐藏层)来解决,因为它不是线性可分的。我知道没有线性函数可以将类分开

但是,如果我们使用一个非单调的激活函数,比如sin()或cos(),情况仍然是这样吗?我想这些类型的函数可能能够将它们分开。

不,没有“黑客”就不行 当以图形方式说明xor问题时,我们需要一个隐藏层的原因是直观的

不能绘制单个正弦或余弦函数来分隔这两种颜色。您需要一条额外的线(隐藏层),如下图所示:


是的,具有非单调激活函数的单层神经网络可以解决异或问题。更具体地说,周期函数会多次切割XY平面。即使是一个或激活功能也会将其剪切两次

自己试试看:W1=W2=100,Wb=-100,activation=exp(-(Wx)^2)

  • exp(-100*0+100*0-100*1)^2)=~0
  • exp(-100*0+100*1-100*1)^2)=1
  • exp(-100*1+100*0-100*1)^2)=1
  • exp(-100*1+100*1-100*1)^2)=~0
或者使用abs激活:W1=-1,W2=1,Wb=0(是的,即使没有偏差,您也可以求解)

  • 绝对值(-1*0+1*0)=0
  • 绝对值(-1*0+1*1)=1
  • 绝对值(-1*1+1*0)=1
  • 绝对值(-1*1+1*1)=0
或者使用正弦:W1=W2=-PI/2,Wb=-PI

  • sin(-PI/2*0-PI/2*0-PI*1)=0
  • sin(-PI/2*0-PI/2*1-PI*1)=1
  • sin(-PI/2*1-PI/2*0-PI*1)=1
  • sin(-PI/2*1-PI/2*1-PI*1)=0

但是让我们假设存在一个非单调函数,局部看起来是这样的:这肯定会将类分开,对吗?我们能不能旋转/变换sin/cos函数以获得相同的行为?一个函数不能映射到两个不同的x值。如果图形映射如:x=0->y=0.8和y=-0.8(如您发布的图像中所示),则不能用常规函数来描述它。这阻止我们使用任何需要激活函数导数的方法。我不太明白为什么在(单层)感知器中会出现这种情况。我们可以简单地使用期望输出和计算的输出之间的差异来更新权重,对吗?我认为线性变换后转换到一个新的特征空间(显然应该有精心选择的系数)可以改变数据在二维空间中的位置。这可以除以非单调函数。