Dropout 方法可以解决 overfitting(過度學習,過度擬合),以下介紹TensorFlow Dropout技術。
Dropout是一種用於減少過度擬合的正則化技術。 該技術暫時從網絡中刪除單元(人工神經元),以及所有這些單元的傳入和傳出連接。 下圖說明工作原理。
TensorFlow提供了tf.nn.dropout()函數,您可以使用它來實現dropout。
我們來看一個如何使用tf.nn.dropout()的例子。
keep_prob = tf.placeholder(tf.float32) # probability to keep units
hidden_layer = tf.add(tf.matmul(features, weights[0]), biases[0])
hidden_layer = tf.nn.relu(hidden_layer)
hidden_layer = tf.nn.dropout(hidden_layer, keep_prob)
logits = tf.add(tf.matmul(hidden_layer, weights[1]), biases[1])
上面的代碼說明瞭如何將dropout應用於神經網絡。
tf.nn.dropout()函數接受兩個參數:
在訓練期間,keep_prob的良好起始值為0.5。
在測試期間,使用keep_prob值1.0來保留所有單元並最大化模型的功能。