計算梯度:反向傳播
訓練神經網絡實例一
損失函數難以最優化
如何選擇學習速率?
太小:訓練所需時間長,迭代次數多,容易陷入局部優化;
太大:難以訓練
如何選擇學習速率?
用不同的學習速率訓練,找到更好值;
又更“聰明”的方式:自適應性學習速率(取決於學習過程快慢、梯度大小等);
自適應學習速率算法:
ADAM
Momentum
NAG
Adagrad
Adadelta
RMSProp
請參考:http://sebastianruder.com/optimizing-gradient-descent/
訓練神經網絡實例二(MiniBatches)
隨機梯度下降
小批量(MiniBatches)
MiniBatches的優點
更準確的梯度估計;
平滑收斂;
允許較大的學習率;
小批量導致快速訓練!
可並行化計算+實現GPU上顯著的速度提升。
訓練神經網絡實例三(防止過擬合)
正則化
Dropout;
Early Stopping;
Weight Regularization……
Dropout
訓練過程中,隨機地將一些激活單元設置為0
通常“drop”50%的隱藏層層激活單元;
強制神經網絡不依賴任何1個節點;
隨機地……
Early Stopping
不給網絡過擬合的時間(機會);
……
Epoch 15: Train: 85% Validation: 80%
Epoch 16: Train: 87% Validation: 82%
Epoch 17: Train: 90% Validation: 85% 在這裡停止!
Epoch 18: Train: 95% Validation: 83%
Epoch 19: Train: 97% Validation: 78%
Epoch 20: Train: 98% Validation: 75%
權重正則化(Weight Regularization)
大的權重值通常意味著存在過擬合;
將權重加入損失函數中進行訓練;
保持小權重值。
核心概念回顧
感知器分類器
堆疊感知器形成神經網絡
將實際問題抽象成神經網絡問題
反向傳播訓練神經網絡
改進深層神經網絡的訓練方法