tf.zeros在卷积神经网络 ( , tf.truncated_normal, )中初始化偏差的正确方法是什么tf.random_normal,为什么?
偏差应该保持不变吗?我们甚至需要深度神经网络(如 VGG-16)中的偏差吗?
在孪生神经网络中,我们是否也与权重共享偏差?
tf.zeros在卷积神经网络 ( , tf.truncated_normal, )中初始化偏差的正确方法是什么tf.random_normal,为什么?
偏差应该保持不变吗?我们甚至需要深度神经网络(如 VGG-16)中的偏差吗?
在孪生神经网络中,我们是否也与权重共享偏差?
只是注意到这个问题的答案建议将 CNN 偏差设置为 0,引用 CS231n 斯坦福课程:
初始化偏差。将偏差初始化为零是可能且常见的,因为不对称破坏是由权重中的小随机数提供的。对于 ReLU 非线性,有些人喜欢对所有偏差使用小的常数值,例如 0.01,因为这可以确保所有 ReLU 单元在开始时触发,从而获得并传播一些梯度。但是,尚不清楚这是否提供了一致的改进(事实上,一些结果似乎表明这表现得更差),并且更常见的是简单地使用 0 偏差初始化。
通常你将它们初始化为 1.0
偏差应该是可训练的变量,而不是恒定的,必须允许它们的值在训练期间发生变化。在我所知道的每一个深度网络架构中,偏见都是必要的,没有它们,你的网络很可能无法学习任何东西。
我不知道孪生神经网络是什么,但是在共享权重的架构(例如卷积神经网络)中,权重和偏差总是成对共享的,两者的组合定义了一个层。