我有几个关于反向传播的问题。我正在尝试学习神经网络理论背后的基础知识,并想从小处着手,构建一个简单的 XOR 分类器。我已经阅读了很多文章并浏览了多本教科书 - 但我似乎无法教这个东西 XOR 的模式。
首先,我不清楚反向传播的学习模型。这是一些伪代码来表示我如何尝试训练网络。[假设我的网络设置正确(即:多个输入连接到隐藏层连接到输出层并且所有连接正确)]。
SET guess = getNetworkOutput() // Note this is using a sigmoid activation function.
SET error = desiredOutput - guess
SET delta = learningConstant * error * sigmoidDerivative(guess)
For Each Node in inputNodes
For Each Weight in inputNodes[n]
inputNodes[n].weight[j] += delta;
// At this point, I am assuming the first layer has been trained.
// Then I recurse a similar function over the hidden layer and output layer.
// The prime difference being that it further divi's up the adjustment delta.
我意识到这可能还不够,我很乐意解释我实施的任何部分。使用上述算法,我的神经网络确实得到了训练。但不正确。输出总是
XOR 1 1 [smallest number]
XOR 0 0 [largest number]
XOR 1 0 [medium number]
XOR 0 1 [medium number]
我永远无法将 [1,1] [0,0] 训练为相同的值。
如果您有任何建议、其他资源、文章、博客等供我查看,我非常有兴趣了解有关此主题的更多信息。感谢您的帮助,我非常感谢!