反向傳播是類神經網路最常見的訓練演算法。這可讓梯度下降演算法適用於多層類神經網路。許多機器學習程式碼程式庫 (例如 Keras) 會自動處理反向傳播,因此您不必自行執行任何基礎計算。歡迎觀看以下影片,瞭解反向傳播的運作方式:
類神經網路訓練的最佳做法
本節說明反向傳播失敗情況,以及將類神經網路正規化的最常見方式。
消失的漸層
較低層級的神經網路 (較接近輸入層) 的梯度可能會變得非常小。在深度網路 (含有多個隱藏層的網路) 中,計算這些梯度可能需要取許多小項的乘積。
當較低層級的漸層值趨近於 0 時,漸層就會「消失」。梯度下降的圖層訓練速度非常緩慢,或者完全不會。
ReLU 活化函式可避免梯度消失。
爆炸漸層
如果網路中的權重非常大,較低層的梯度涉及許多大型字詞的產物。在這種情況下,您可能會遇到爆炸式漸層:漸層過大而無法收斂。
批次規格化可防止梯度爆炸,降低學習率也能達到相同效果。
無效的 ReLU 單元
一旦 ReLU 單元的加權總和低於 0,ReLU 單元就會卡住。它會輸出 0,對網路的輸出並無任何影響,而且梯度在反向傳播期間無法再流經這個輸出。在漸層來源切斷的情況下,對 ReLU 的輸入做出任何變化,使加權總和無法回復到 0 以上。
降低學習率有助於防止 ReLU 單位減少。
丟棄規則正規化
另一種正規化形式稱為捨棄正規化,可用於神經網路。其運作方式是隨機「放棄」網路中單一梯度步驟的單元啟動。放棄的資料越多,正則化強度就越高:
- 0.0 = 沒有丟棄正則化。
- 1.0 = 捨棄所有節點。模型不會學習任何資訊,
- 值介於 0.0 和 1.0 之間 = 更實用。