我可以使用多类别分类来使用感知器来解决XOR功能吗?

时间:2015-07-09 13:41:01

标签: machine-learning neural-network perceptron

我很困惑为什么具有多类别分类的感知器,例如,具有三个输入和两个输出单元(没有隐藏层)不能用于解决XOR问题?可以吗?

另外,我使用sigmoid激活函数实现了一个具有三个输入单元和一个输出单元的感知器,它似乎学习了XOR功能。但文献似乎说这是不可能的。我错过了什么吗?

1 个答案:

答案 0 :(得分:0)

简而言之:

  

我很困惑为什么一个具有多种类别的感知器   分类,例如,有三个输入和两个输出单元(没有   隐藏层)不能用于解决XOR问题?可以吗?

两个输出神经元是什么意思?作为效果,您可以获得两个输出信号,例如

0 0 -> 0 1 
1 0 -> 0 0
0 1 -> 0 0
1 1 -> 1 0

你能用它代表xor吗?是的,您可以在其上构建另一个模型并将0 0分类到一个类,将0 11 0分类到另一个类,但这相当于创建隐藏图层。换句话说 - 你想要做的事实上与隐藏层正在做的完全相同。您正在寻找一些使问题更容易的中间表示 - 但是这种表示本身不是解决方案。你还需要一层抽象。

  

另外,我实现了一个具有三个输入单元和一个输出的感知器   单位使用sigmoid激活功能,它似乎学习了   XOR功能。但文献似乎说这不是   可能。我错过了什么吗?

不,你没有实现这一目标。根本不可能将XOR函数表示为单层隐藏层网络 - 实际上输出神经元的激活函数对分离能力没有任何影响。如果您提供代码,现在可以向您显示错误 - 您只能确定至少在以下某项中出现错误:

  • 准备数据,你的数据集不是XOR问题(你的第三个输入是什么?它可以是一些常数值 - 所谓的偏差,否则它不是XOR)
  • 处理数据,你实际上并没有使用单个感知器
  • 评估 - 您的方法实际上无法学习XOR,但您的评估显示相反。