Machine learning 神经网络的初始偏差值

Machine learning 神经网络的初始偏差值,machine-learning,tensorflow,bias-neuron,Machine Learning,Tensorflow,Bias Neuron,我目前正在tensorflow中建立一个CNN,我正在使用He正常权重初始化来初始化我的权重矩阵。然而,我不确定应该如何初始化我的偏差值。我使用ReLU作为每个卷积层之间的激活函数。是否有初始化偏差值的标准方法 # Define approximate xavier weight initialization (with RelU correction described by He) def xavier_over_two(shape): std = np.sqrt(shape[0]

我目前正在tensorflow中建立一个CNN,我正在使用He正常权重初始化来初始化我的权重矩阵。然而,我不确定应该如何初始化我的偏差值。我使用ReLU作为每个卷积层之间的激活函数。是否有初始化偏差值的标准方法

# Define approximate xavier weight initialization (with RelU correction described by He)
def xavier_over_two(shape):
    std = np.sqrt(shape[0] * shape[1] * shape[2])
    return tf.random_normal(shape, stddev=std)

def bias_init(shape):
    return #???
初始化偏差。初始化偏差是可能的,也是常见的 偏差为零,因为不对称断裂由 权重中的小随机数。对于ReLU非线性,有些 人们喜欢使用较小的常量值,如0.01来表示所有偏差 因为这样可以确保所有ReLU单元在开始和结束时都会开火 因此,获得并传播一些梯度。然而,目前尚不清楚 如果这提供了持续的改进(事实上,一些结果似乎 表示这表现更差),更常见的是 使用0偏差初始化


来源:

注意最后一层的偏差的具体情况。正如Andrej Karpathy在他的文章中所解释的:

初始化井。正确初始化最终层权重。例如,如果要对平均值为50的某些值进行回归,则将最终偏差初始化为50。如果您有一个正:负比率为1:10的不平衡数据集,请在logits上设置偏差,以便您的网络在初始化时预测概率为0.1正确设置这些参数将加快收敛速度,消除“曲棍球棒”损失曲线,而在最初的几次迭代中,您的网络基本上只是在学习偏差。


谢谢你,这正是我想要的!