Neural network 为什么这个XOR神经网络有两个输出?
通常,求解异或的简单神经网络应该有2个输入、2个隐层神经元、1个输出层神经元 但是,以下示例实现有2个输出神经元,我不明白: 为什么作者在里面放了两个输出神经元 编辑:Neural network 为什么这个XOR神经网络有两个输出?,neural-network,artificial-intelligence,deep-learning,xor,deeplearning4j,Neural Network,Artificial Intelligence,Deep Learning,Xor,Deeplearning4j,通常,求解异或的简单神经网络应该有2个输入、2个隐层神经元、1个输出层神经元 但是,以下示例实现有2个输出神经元,我不明白: 为什么作者在里面放了两个输出神经元 编辑: 该示例的作者指出,他在隐藏层使用了4个神经元,在输出层使用了2个神经元。但我仍然不明白为什么,为什么是{4,2}形状而不是{2,1}?作者最后使用了评估类(用于统计网络给出正确结果的频率)。该类需要每个分类一个神经元才能正常工作,即一个输出神经元表示真,一个输出神经元表示假 这称为一个热编码。我们的想法是每个类有一个神经元。每
该示例的作者指出,他在隐藏层使用了4个神经元,在输出层使用了2个神经元。但我仍然不明白为什么,为什么是{4,2}形状而不是{2,1}?作者最后使用了评估类(用于统计网络给出正确结果的频率)。该类需要每个分类一个神经元才能正常工作,即一个输出神经元表示真,一个输出神经元表示假 这称为一个热编码。我们的想法是每个类有一个神经元。每个神经元给出该类的概率
我不知道他为什么用4个隐藏的神经元。2应该足够了(如果我没记错的话)。这样想可能会有帮助:
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
训练集的So[[0,0],0],[0,1],0]等
如果使用的是两列标签集,0
和1
对应于true
或false
因此,[0,0]正确映射为false,[1,0]正确映射为true,等等
这里有一篇对原文稍加修改的不错的文章:他在顶部的评论中解释了这一点。(这是另一个关于正式数学的解释有多好的问题)对于所有未来的问题,JFYI,Gitter频道上有一个活跃的开发社区:是的,聊天室很有趣,有人帮我找到了如何匹配激活函数和丢失函数我发现只有当我们没有太多的类来分类时,一个热编码才是好的是的,我不知道为什么他也使用了4个隐藏神经元,我改为2个,它仍然工作得很好!因为在输出层会有太多的一个热神经元,我不知道,但如果我们需要对其进行分类呢many@johnlowvale我从没见过别的东西。我所知道的最大类数是ImageNet的1000个。一个热编码是没有问题的。它也给我带来了一些困惑。前两个数字位于4×2表中。第三个数字(自行关闭)是该坐标处的值。我在deeplearning4j聊天室问了一个人,他说这是因为输出层的softmax激活功能