- 为什么在神经网络中使用偏置节点?
- 您应该使用几个?
- 您应该在哪些层中使用它们:所有隐藏层和输出层?
Answers:
神经网络中的偏置节点是始终处于“打开”状态的节点。即,将其值设置为而不考虑给定模式中的数据。它类似于回归模型中的截距,并且具有相同的功能。如果神经网络在给定的层中没有偏置节点,则它将无法在下一层中产生与0不同的输出(在线性范围内,或者在传递时与0转换对应的值)功能值是0时的激活函数)。
考虑一个简单的示例:您有一个前馈感知器,其中有2个输入节点和x 2,以及1个输出节点y。 x 1和x 2是二进制特征,并设置为参考水平x 1 = x 2 = 0。将这些2 0乘以您喜欢的权重w 1和w 2,将乘积求和,然后将其通过您喜欢的任何激活函数。没有偏置节点,只有一个输出值是可能的,这可能会产生非常差的拟合。例如,使用逻辑激活函数,必须为.5,这对于对罕见事件进行分类非常糟糕。
偏置节点为神经网络模型提供了相当大的灵活性。在上面给出的示例中,唯一的预测比例可能的,而不偏压节点是,但与偏压节点,任何在比例(0 ,1 )可以为图案,其中是拟合X 1 = X 2 = 0。对于每个层,Ĵ,在添加有偏置节点,偏置节点将增加Ñ Ĵ + 1要估计的附加参数/重量(其中Ñ Ĵ + 1是在层节点的数目Ĵ)。要拟合的参数更多,意味着要训练的神经网络将成比例地花费更长的时间。如果您没有足够多的数据要学习的权重,那么它也增加了过度拟合的机会。
考虑到这一点,我们可以回答您的明确问题:
简单简短的答案:
在我的硕士论文中进行了几次实验(例如,第59页),我发现偏差对于第一层可能很重要,但尤其是在最后的完全连接层上,它似乎没有太大作用。因此,可以在前几层而不是最后一层使用它们。只需训练网络,绘制偏置节点的权重分布并在权重似乎太接近零时修剪它们。
这可能高度依赖于网络体系结构/数据集。
1
在上一层中具有恒定的值,而下一层中的每个神经元具有一个权重(一个偏差值)。
在神经网络中,批量归一化目前是制作智能“偏置节点”的黄金标准。您无需调整神经元的偏差值,而是调整神经元输入的协方差。因此,在CNN中,您可以在卷积层和下一个完全连接的层(例如ReLus)之间应用批量归一化。从理论上讲,所有完全连接的层都可以从“批次归一化”中受益,但是由于每个批次归一化都带有自己的参数,因此在实践中实现起来非常昂贵。
关于原因,大多数答案已经解释了,特别是当输入将激活推到极限时,神经元容易受到饱和梯度的影响。在ReLu的情况下,将其推到左侧,渐变为0。通常,在训练模型时,首先将神经网络的输入归一化。批处理规范化是一种规范神经网络内部各层之间输入的方法。