2

我正在写一个神经网络类,遇到了两个我不明白的概念。谁能告诉我biasandmomentum是什么和做什么

4

3 回答 3

7

偏差是给予神经元的恒定输入。例如,在正常的前馈网络中,您可能有 2 个输入单元、2 个隐藏单元和 1 个输出单元。除了来自输入单元的输入之外,一个恒定的偏差值(比如说 1)将进入隐藏单元和输出单元。

动量是在学习开始时使用的额外学习率,以使学习更快。例如,学习误差最初通常非常大,因此您从高动量开始并更积极地调整权重。稍后在学习过程中,随着您的错误减少,动量也应该减少,因此您学习得更慢,但您不太可能超越目标。

于 2010-01-12T05:53:43.180 回答
3

偏差允许神经元接受更广泛的输入值。动量可以被认为是梯度下降过程中的步长。

在一个典型的节点中,偏置和来自前一层的所有输入都被加权、求和,然后压缩到输出值。挤压函数以零为中心,并且随着加权和变得非常正或非常负,灵敏度显着降低。但是,有时您希望压缩的敏感部分位于输入的某个区域,而不是在零附近。偏差输入允许学习算法改变节点的响应来实现这一点。

除了 Charles Ma 所描述的之外,动量还可以帮助将学习算法带入局部最小值以找到更好的解决方案。

于 2010-01-12T06:23:56.490 回答
0

考虑偏差的一种直观方式就像线性方程中的 b 项。其定义为:

y=mx + b

m 项是斜率,b 告诉您直线与 y 轴相交的位置。如果您增加或减少此项,该线将在 y 轴上下移动。神经网络创建一个超平面来分离集群,因此偏差会在训练过程中上下移动,直到收敛到最小值并希望找到适合您的训练样本的匹配。

如前所述,这一时刻将减少梯度下降期间的振荡。它将在训练开始时增加步长,并在训练结束时减小。您可以将其视为在负梯度方向上采取更大的步骤,朝向最小值,并在接近它时采取更小的步骤。这有几个好处:

  1. 它提高了训练速度。
  2. 您越过最小值的风险较低,因此它永远不会收敛,尤其是在高学习率的情况下。
  3. 可能超过局部最小值。
于 2016-06-13T19:59:22.117 回答