我正在实现向后传播的神经网络。权重初始化为(-0.5,0.5)。但是,在第一次将输入转发和错误并传播回去之后,权重增加到大约1000,有时甚至是2000。(在输入层和隐藏层之间)
网络的拓扑结构由3层组成:1个输入层,1个隐藏层和1个输出层。 输入层有95个节点,隐藏层有3个节点,输出层有2个节点。 训练数据集有40,000个条目,并使用z得分对其进行了归一化。
看到如此高的数字后,我怀疑我的实现,但是随后,在第一次传播时将学习率设置为1,如果每个条目的(output * error)= 0.25(合理)左右,则权重更改为大概是1000。
无论如何,神经网络中的权重是否应该这么高?
Gracias
答案 0 :(得分:0)
这么高的值不一定是一件坏事。权重可以很高,也可以很低。它们甚至可以为零!
假设您有两个班级:A和B
A类的输入通常总是在0.00001
附近。 B类的值相同,但某些输入值在0.001
附近。
节点的输入为w * x
A) 0.00001 * 1000 = 0.001
B) 0.001 * 1000 = 1
当您将诸如A的输出馈送到S形(您的激活函数)时,距离足够近将得到零结果。信号消失。
但是对于像B这样进入S形函数的输出,您会得到更大的值(不确定得手,但可能约为1)。因此信号被向前传播。
您的体重值取决于许多因素: