我知道梯度下降和反向传播算法。我没有得到的是:什么时候使用偏见很重要,以及如何使用它?
例如,当映射AND
函数时,当我使用两个输入和一个输出时,它不能给出正确的权重。但是,当我使用三个输入(其中一个是偏差)时,它会给出正确的权重。
我认为偏见几乎总是有帮助的。实际上,偏差值使您可以将激活功能向左或向右移动,这对于成功学习至关重要。
看一个简单的例子可能会有所帮助。考虑以下无偏差的 1 输入 1 输出网络:
网络的输出是通过将输入(x)乘以权重(w 0 )并将结果传递给某种激活函数(例如 S 型函数)来计算的。
这是该网络针对 w 0 的各种值计算的函数:
改变权重 w 0本质上改变了 S 形的 “陡度”。这很有用,但是如果您希望网络在 x 为 2 时输出 0,该怎么办?仅仅改变 S 型曲线的陡度是不能起作用的 -您希望能够将整个曲线向右移动。
这正是偏见允许您执行的操作。如果我们向该网络添加偏见,如下所示:
... 然后网络的输出变为 sig(w 0 * x + w 1 * 1.0)。这是 w 1 的各种值的网络输出的样子:
w 1的权重为 - 5 时,曲线向右移动,这使我们拥有一个在 x 为 2 时输出 0 的网络。
一种理解偏差是什么的更简单的方法:它在某种程度上类似于线性函数的常数 b
y = 轴 + b
它使您可以上下移动线以更好地将预测与数据拟合。
如果没有b ,则直线始终穿过原点(0,0),因此拟合度可能会较差。