2017-07-03 93 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

謝謝正是我一直在尋找! –