错误阅读有关的神经网络(反向传播)的一些文章后,我尝试自己写一个简单的神经网络。神经网络,反向传播,在训练
香港专业教育学院决定XOR神经网络, 我的问题是,当我试图对网络进行训练, 如果我只用一个例子来训练网络,可以说,1,1,0(如输入1,输入2,targetOutput )。经过500次列车+ + - 网络回答0.05。 但如果我尝试更多然后一个例子(可以说2个不同的或全部的4种可能性)网络的目标是0.5作为输出:( 我在谷歌搜索为我的错误没有结果:S 生病尝试给尽可能多的细节我所能来帮助查找错误的:通过定义
有2,2,1和2,4,1(inputlayer,hiddenlayer,outputlayer)-ive尝试网络
-the输出为每个神经:
double input = 0.0;
for (int n = 0; n < layers[i].Count; n++)
input += layers[i][n].Output * weights[n];
而'i'是当前图层和权重是所有权重从前ous层。
value*(1-value)*(targetvalue-value);
而“价值”是神经输出和“targetvalue”为当前神经目标输出:
-the最后层(输出层)误差由下式定义。
-the误差为其他neurals定义由:
foreach neural in the nextlayer
sum+=neural.value*currentneural.weights[neural];
-all网络中的权重由如下公式(从神经的重量 - >神经2)适应
weight+=LearnRate*neural.myvalue*neural2.error;
而LearnRate是新学习率(在我的网络中定义为0.25)。 对于每个神经-the biasweight被定义为:
bias+=LearnRate*neural.myerror*neural.Bias;
偏置是常量值= 1。
是几乎所有我可以详细, 正如我所说的输出目标为0.5不同的训练实例:(
非常感谢你非常多的帮助^ _ ^。
您是否编写了自己的实现或者是否使用框架? –
这真的很有趣,他保护后,他无法回答他的问题:) – PythEch