人工神经网络:计算权重?

我编写了一个人工神经网络,它适用于简单的任务,但是如果我尝试更复杂的任务(在我的情况下使用28x28px图像检测笔迹),权重就会随机产生[在非常高的跳动下不规则地增加和减少:例如,输出神经元为1,在下一次训练后为0.1,在下一次训练后为0.9]。我的ANN会计算0到1之间的值。


我的计算方式:


float value = 0;

foreach (Connection c in connections)

{

    value += c.GetValue();

}

value = MathA.Sigmoid(value);

this.value = value;

我现在计算新权重的方式:


float newWeight = currentWeight * lernRate * entrieNeuronValue * (answer - expectedAnswer);

有谁知道更好的重量计算方法?


万千封印
浏览 291回答 1
1回答

大话西游666

我认为问题出在这部分(answer - expectedAnswer)。根据answer结果的值,(answer - expectedAnswer)可以是正值或负值。该计算的负结果导致负权重。负权重会使您对下一个答案和/或权重的计算混乱。权重必须在0到1之间。
打开App,查看更多内容
随时随地看视频慕课网APP