1. 程式人生 > >MLCC筆記15 - 訓練神經網絡 (Training Neural Networks)

MLCC筆記15 - 訓練神經網絡 (Training Neural Networks)

加權 -i left int 反向傳播 技術 來源 機制 1.2

原文鏈接:https://developers.google.com/machine-learning/crash-course/ml-intro

1- 最佳做法

1.1 失敗案例

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

梯度消失

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

梯度爆炸

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

ReLU 單元消失

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

1.2 丟棄正則化

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

  • 0.0 = 無丟棄正則化。
  • 1.0 = 丟棄所有內容。模型學不到任何規律。
  • 0.0 和 1.0 之間的值更有用。

2- 編程練習

xxx

3- 關鍵詞

激活函數 (activation function)
一種函數(例如 ReLU 或 S 型函數),用於對上一層的所有輸入求加權和,然後生成一個輸出值(通常為非線性值),並將其傳遞給下一層。

反向傳播算法 (backpropagation)
在神經網絡上執行梯度下降法的主要算法。
該算法會先按前向傳播方式計算(並緩存)每個節點的輸出值,然後再按反向傳播遍歷圖的方式計算損失函數值相對於每個參數的偏導數。

丟棄正則化 (dropout regularization)
正則化的一種形式,在訓練神經網絡方面非常有用。
丟棄正則化的運作機制是,在一個梯度步長中移除從神經網絡層中隨機選擇的固定數量的單元。
丟棄的單元越多,正則化效果就越強。這類似於訓練神經網絡以模擬較小網絡的指數級規模集成學習。

梯度下降法 (gradient descent)


一種通過計算並且減小梯度將損失降至最低的技術,它以訓練數據為條件,來計算損失相對於模型參數的梯度。
通俗來說,梯度下降法以叠代方式調整參數,逐漸找到權重和偏差的最佳組合,從而將損失降至最低。

修正線性單元 (ReLU, Rectified Linear Unit)
一種激活函數,其規則如下:

    • 如果輸入為負數或 0,則輸出 0。
    • 如果輸入為正數,則輸出等於輸入。

MLCC筆記15 - 訓練神經網絡 (Training Neural Networks)