反向傳播是 最常見的類神經網路訓練演算法 這讓多層類神經網路能夠使用梯度下降法。 許多機器學習程式碼程式庫 (例如 Keras) 會自動處理反向傳播,因此您不必執行 基礎計算方式請觀看以下影片 反向傳播的運作方式概念總覽:
類神經網路訓練的最佳做法
本節說明反向傳播失敗情況,以及 常見的標準做法
消失漸層
底層神經元的梯度 較靠近輸入層的網路層 可能會變得很小 在「深網路」 (具備 多個隱藏層),則計算這些梯度可能會包含 許多小字詞的乘積
當較低層的漸層值接近 0 時,漸層會 就說「消失」梯度下降的圖層訓練速度非常緩慢 。
ReLU 活化功能有助於避免漸層消失。
爆炸漸層
如果網路中的權重非常大,則代表 包含許多大型字詞的在這個範例中,您可以 爆炸梯度:梯度過大而無法凝結。
批次正規化有助於避免爆炸梯度,因為能降低 學習率
無效 ReLU 單位
當 ReLU 單位的加權總和低於 0 時,ReLU 單位可以 以及卡住它會輸出 0,不會對網路的輸出產生任何影響, 和梯度也無法再於反向傳播期間穿過內建 梯度來源遭到切斷,因此對 ReLU 的輸入可能無任何變化 將加權總和放回 0
降低學習率有助於防止 ReLU 單位減少。
丟棄規則正規化
另一種正則化是另一種形式 丟棄正則化 對類神經網路來說非常實用運作方式是隨機「退出」 針對單一梯度步驟的網路啟用單位啟用數量。 捨棄越多,正則化越強:
- 0.0 = 沒有丟棄正則化。
- 1.0 = 捨棄所有節點。模型不會學習任何資訊,
- 介於 0.0 和 1.0 之間的值 = 更實用。