人工神经网络为什么需要BIAS?我们应该为每一层分别设置BIAS吗?

时间:2011-08-24 12:03:57

标签: machine-learning neural-network bias-neuron

我想制作一个模型来预测输入信号的未来响应,我的网络架构是[3,5,1]:

  • 3个输入,
  • 隐藏层中的5个神经元,
  • 输出层中的1个神经元。

我的问题是:

  1. 我们应该为每个隐藏和输出层分别设置BIAS吗?
  2. 我们是否应该在每一层为BIAS分配权重(因为BIAS会成为我们网络的额外价值并导致网络负担过重)?
  3. 为什么BIAS总是设置为1?如果eta具有不同的值,为什么我们不将BIAS设置为不同的值?
  4. 为什么我们总是将log sigmoid函数用于非线性函数,我们可以使用tanh吗?

1 个答案:

答案 0 :(得分:10)

所以,我认为,如果我们退一步讨论偏见单位在NN中应扮演的角色,那么大部分都会清楚。

偏差单位意味着允许网络中的单位学习适当的阈值(即在达到某个总输入后,开始发送正激活),因为正常的总输入意味着正激活。

例如,如果您的偏置单位的权重为-2且某个神经元x的权重,那么如果所有其他输入加起来大于-2,则神经元x将提供正激活。

所以,以此为背景,你的答案是:

  1. 不,一个偏置输入总是足够的,因为它可以根据每个单元的重量不同地影响不同的神经元。
  2. 一般来说,将偏差权重转移到每个非输入单位是一个好主意,因为否则那些没有偏差权重的单位将具有始终为零的阈值。
  3. 自阈值以来,一旦学会应该在试验中保持一致。请记住,偏差表示每个单位如何与输入相互作用;它本身不是输入。
  4. 你当然可以和很多人一样。任何sqaushing功能通常用作激活功能。