通常,解决XOR的简单神经网络应该有2个输入,隐藏层中有2个神经元,输出层中有1个神经元。
但是,以下示例实现有2个输出神经元,我不明白:
为什么作者在其中放置了2个输出神经元?
修改: 该例子的作者指出,他在隐藏层使用4个神经元,在输出层使用2个神经元。但是我仍然没有理解为什么,为什么形状为{4,2}而不是{2,1}?
答案 0 :(得分:3)
这称为一个热门编码。这个想法是你每班有一个神经元。每个神经元都给出了该类的概率。
我不知道为什么他会使用4个隐藏的神经元。 2应该足够了(如果我没记错的话)。
答案 1 :(得分:1)
作者最后使用Evaluation类(有关网络给出正确结果的频率的统计数据)。该类需要每个分类一个神经元才能正常工作,即一个输出神经元为真,一个为假。
答案 2 :(得分:0)
这样思考可能会有所帮助:
Training Set Label Set
0 | 1 0 | 1
0 | 0 | 0 0 | 0 | 1
1 | 1 | 0 1 | 1 | 0
2 | 0 | 1 2 | 1 | 0
3 | 1 | 1 3 | 0 | 1
因此,训练集的[[0,0],0],[[0,1],0]等。
如果您使用两列标签集,则0
和1
对应于true
或false
。
因此,[0,0]正确映射为false,[1,0]正确映射为true,等等。
可以在这里找到一篇不错的文章,对文章的原始内容稍作修改:https://medium.com/autonomous-agents/how-to-teach-logic-to-your-neuralnetworks-116215c71a49