機器學習之訓練神經網路:最佳做法

Lois發表於2020-06-28

本部分介紹了反向傳播演算法的失敗案例,以及正則化神經網路的常見方法。

失敗案例

很多常見情況都會導致反向傳播演算法出錯。

梯度消失

較低層(更接近輸入)的梯度可能會變得非常小。在深度網路中,計算這些梯度時,可能涉及許多小項的乘積。
當較低層的梯度逐漸消失到 0 時,這些層的訓練速度會非常緩慢,甚至不再訓練。
ReLU 啟用函式有助於防止梯度消失。

梯度爆炸

如果網路中的權重過大,則較低層的梯度會涉及許多大項的乘積。在這種情況下,梯度就會爆炸:梯度過大導致難以收斂。
批標準化可以降低學習速率,因而有助於防止梯度爆炸。

ReLU 單元消失

一旦 ReLU 單元的加權和低於 0,ReLU 單元就可能會停滯。它會輸出對網路輸出沒有任何貢獻的 0 啟用,而梯度在反向傳播演算法期間將無法再從中流過。由於梯度的來源被切斷,ReLU 的輸入無法作出足夠的改變來使加權和恢復到 0 以上。
降低學習速率有助於防止 ReLU 單元消失。

丟失正則化

這稱為丟棄的另一種形式的正則化,可用於神經網路。其工作原理是,在梯度下降法的每一步中隨機丟棄一些網路單元。丟棄越多,正則化效果就越強:

  • 0.0 = 無丟棄正則化
  • 1.0 = 丟棄所有內容。模型學不到任何規律。
  • 0.0 和 1.0 之間的值更有用。
本作品採用《CC 協議》,轉載必須註明作者和本文連結
Hacking

相關文章