神经网络每个神经元的偏置

14

我一直在追随Andrew NG关于神经网络的视频。在这些视频中,他并没有为每个神经元关联一个偏置,而是在每个层的头部添加了一个偏置单元,在计算完激活后与计算一起使用来计算下一层的激活(前向传播)。

然而,在其他一些机器学习博客和视频中,例如这个,每个神经元都有一个偏置。这种差异的原因是什么,有什么影响?

2个回答

10

这两种方法都代表着相同的偏置概念。对于每个单元(除了输入节点),您需要计算激活函数值的加权点积,并将其与来自前一层(在前馈网络的情况下)的激活向量和标量偏置值相加:

 (w * a) + b
在Andrew Ng的课程中,这个值是通过使用向量化技巧来计算的,在这种技巧中,你需要将你的激活值与指定的偏置常数(通常为1)连接起来,这样就可以完成任务了(因为这个常数对于不同节点有自己的权重 - 所以这完全相当于为每个节点增加另一个偏置值)。

但是在吴恩达的课程中,如果我们添加一个单一的偏置,那么下一层的所有神经元都会有相同的偏置吗?如果我们为每个神经元初始化一个偏置,这种情况就不会发生,因为我们可以为不同的神经元初始化不同的偏置。 - RaviTej310
5
偏置值是相同的,但每个节点对其具有不同的权重。因此,例如如果某个节点具有偏置权重w_0,且偏置常数为a_0,则相应的偏置值等于w_0 * a_0。您可以通过学习正确的权重w_0来简单地调整每个偏置值。 - Marcin Możejko
为什么偏置单元只能添加到神经网络的开头?也就是说,为什么必须在开头添加一个一向量?为什么不能在结尾添加? - chia yongkang

1
关于两者之间的差异,@Marcin已经很好地回答了。
有趣的是,在他的deeplearning.ai深度学习专业课程中,Andrew采取了与他的机器学习课程不同的方法(在那里他为每个隐藏层采取了一个偏置项),并将偏置项与每个相关神经元相关联。
尽管这两种方法都试图实现相同的结果,但在我看来,将每个神经元与一个偏置相关联的方法更加明确,并且在超参数调整方面非常有帮助,特别是当您处理大型神经网络架构时,如CNN、深度神经网络等。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接