2017-07-03 60 views
1

我目前在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 #??? 

回答

3

初始化偏见。由于权重中的小随机数提供了非对称性中断,所以初始化偏差为零是可能且常见的。对于ReLU非线性,一些人喜欢对所有偏差使用小的常数值,例如0.01,因为这可以确保所有的ReLU单位在开始时触发,因此获得并传播一些梯度。然而,如果这提供了一致的改进(实际上一些结果看起来 表明这表现出更糟糕),并且它更简单地使用0偏倚初始化来简化 。

来源:http://cs231n.github.io/neural-networks-2/

+0

谢谢正是我一直在寻找! –