【資料極客】Week3_訓練深度神經網路的技巧
Tips for Training DNN 訓練深度神經網路技巧
【李巨集毅2017秋天 課程】
1 Vanishing Gradient Problem 梯度消失問題
在輸入層部分,即便有很大的變化,通過 Sigmoid
啟用函式之後, 輸出結果都會被對映在0到1之間,對於輸出層對損失函式的微分是比較小的,造成梯度消失問題。
2 ReLU (Rectified Linear Unit)
- ReLU
- 計算速度快
- 生物學理由
- 無窮多的帶有不同偏置的
sigmoid
函式 - 解決了梯度消失問題
如果某個 neuron 輸出是0, 說明該節點是無用的, 可以直接從網路中去掉, 剩下的 非零 節點就是線性的。
結果函式是ReLU
的話, 那麼區域性網路是線性的, 整體網路是非線性的。
- ReLU - variant
3 Maxout
選取每一組的最大的輸出值作為最終的輸出結果。放多少個元素為一組, 自己可以調參。
ReLU
是一個特殊的Maxout
, 但是Maxout
相較於ReLU
的優勢在於,Maxout
可以根據不同的引數學習出不同的啟用函式(Activition Function
)
右邊綠色折線部分就是學習出來的啟用函式。
4 Adaptive Learning Rate
Adagrad
具體可參照 1.2 節內容
在Adagrad的更新規則中,學習率
分子分佈約分之後得到
t
步梯度平方的累加和。
這裡分母可能為0, 所以在分母位置加上一個極小值
可以看到演算法不斷的迭, 分母會越來越大, 整體的學習率會越來越小。
#### RMSProp
RMSProp 是進階版的 Adagrad
與Adagrad
不同的是在分母位置, 累加之前幾部的梯度平方和的時候, 進行了加權求和。
其中
5 Momentum 動量
其中
…..
6 Adam
Adam = RMSProp + Momentum
7 Early Stopping 提早終止
需要驗證集 Validation Set
確定 Testing Set
中的最小的損失函式值是多少。
8 Regularization 正則化
- New loss function to be minimized 新的最小化損失函式
找到一組權重, 不僅要最小化 Original Loss 的損失函式同時還要讓接近0
Original Loss
,可以是最小二乘法最小化損失函式、也可以是交叉熵損失函式。。。
右下角,是當損失函式為 L2
2範數的時候, 正則化項的形式, 通常在計算的時候不考慮正則化項。
所以
每一個引數在update之前都會乘上一個接近於 1 的數, 這也就是所有的權值引數為什麼越來越小的緣故, 權值衰減。
- 規則化項用 L1 範數的時候
w>0
的時候, w<0
的時候