神经网络权重太大吗?

时间:2019-03-08 23:14:38

标签: tensorflow machine-learning neural-network

我正在实现向后传播的神经网络。权重初始化为(-0.5,0.5)。但是,在第一次将输入转发和错误​​并传播回去之后,权重增加到大约1000,有时甚至是2000。(在输入层和隐藏层之间)

网络的拓扑结构由3层组成:1个输入层,1个隐藏层和1个输出层。 输入层有95个节点,隐藏层有3个节点,输出层有2个节点。 训练数据集有40,000个条目,并使用z得分对其进行了归一化。

看到如此高的数字后,我怀疑我的实现,但是随后,在第一次传播时将学习率设置为1,如果每个条目的(output * error)= 0.25(合理)左右,则权重更改为大概是1000。

无论如何,神经网络中的权重是否应该这么高?

Gracias

1 个答案:

答案 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)。因此信号被向前传播。

您的体重值取决于许多因素:

  • 数据
  • 要解决的问题
  • 您的激活功能选择
  • 每层神经元的数量
  • 层数
  • 其他权重的价值!