Tensorflow2-tensorflow-keras-深度神經網絡(DNN)_dropout

Dropout

用於防止過擬合
dropout

  • 左圖是正常的全連接神經網絡
  • 右圖將某些節點強制設為0,則對於此節點連接的線將會失效(無輸出or輸出為0),生成新的子網絡稱之為dropout操作
    • 將某些神經單元棄用
    • 且每次訓練棄用掉的單元數量是隨機
  • 通常只讓某幾層進行dropout,而非每一層都添加
  • 使用API:只要添加(add)dropout的layer就相當於對前一層Dense進行dropout
    • keras.layers.AlphaDropout(rate):相較於一般dropout更加強大
      • rate:丟掉單元的比例為何(為0-1之間的小數);一般都設為0.5
      • AlphaDropout的過程均值和方差不會改變;因此其歸一化的性質也不變
        • 可與batch_normalization或是selu激活函數一起使用
        • 不會使原本的分布發生大幅度的改變
    • keras.layers.Dropout(rate):如一開始介紹純淨的dropout

Example