tf.nn.dropout 防止 overfitting

一、 Dropout原理簡述:

tf.nn.dropout是TensorFlow裡面為了防止或減輕過擬合而使用的函數,它一般用在全連接層

Dropout就是在不同的訓練過程中隨機扔掉一部分神經元。也就是讓某個神經元的激活值以一定的機率 p,讓其停止工作,這次訓練過程中不更新權值,也不參加神經網絡的計算。但是它的權重得保留下來(只是暫時不更新而已),因為下次樣本輸入時它可能又得工作了。示意圖如下:


Fig.1 (a) 為 full-connected neural network 示意圖;(b) 為使用 tf.nn.dropout() 後,每個神經元隨機 (機率 p) 停止運作

但在測試及驗證中:每個神經元都要參加運算,但其輸出要乘以概率 p。

二、tf.nn.dropout函數說明

tf.nn.dropout(x, keep_prob, noise_shape=None, seed=None,name=None)

上面方法中常用的是前兩個參數:

第一個參數x:指 input data

第二個參數 keep_prob : 設置神經元被選中的概率 p,在初始化時 keep_prob 是一個 place holder,
keep_prob = tf.placeholder(tf.float32) 。

tensorflow 在 run 時設置 keep_prob 具體的值 (0到1之間),例如 keep_prob : 0.5


Reference

[0] https://blog.csdn.net/huahuazhu/article/details/73649389

results matching ""

    No results matching ""