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

时间:2018-05-02 14:21:00

标签: c# neural-network artificial-intelligence

我编写了一个人工神经网络,它适用于简单的任务,但如果我尝试更复杂的任务[在我的情况下检测28x28px图像的手写],权重会随机填充[不规则增加和减少,跳跃非常高:例如,输出神经元是1并且在下一次训练之后0.1和在超文本训练之后它是0.9]。 我的人工智能从0到1计算值。

我打算的方式:

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

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

g++ -g main.cpp nmssmsoftsusy.cpp decays.cpp /path/config.h -o main

有人知道一种更好的方法来计算权重吗?

1 个答案:

答案 0 :(得分:2)

我认为问题在于这部分(answer - expectedAnswer)。 根据{{​​1}}的值,answer的结果可以是积极的,也可以是否定的。该计算的否定结果导致负权重。负重会给您计算下一个答案和/或体重带来混乱。 权重必须介于0和1之间。