第11课:优化神经网络——梯度优化
上一篇,我們主要介紹了在神經網絡模型中如何防止出現過擬合問題。常用的方法是 L1、L2 正則化,Dropout 正則化,Data Augmentation,Early Stopping 等。本文將重點介紹如何使用梯度優化來使神經網絡訓練更快更有效率。
Mini-Batch 梯度下降
神經網絡反向傳播的過程需要使用梯度下降算法來優化網絡參數,迭代更新。我們之前介紹的梯度下降算法做法是每次訓練都使用全部 m 個訓練樣本(稱為 Batch)。該做法的缺點是當 m 很大的時候,例如百萬數量級(這在大型的深度學習神經網絡里是比較常見的),會影響運算速度,增加模型的訓練時間。
為了解決這一問題,我們可以將 m 個樣本均勻分割成若干個子集,每個子集包含較少的樣本數量。一般子集包含的樣本數量為 64、128、256 等,較常使用 2 的冪數。計算機存儲數據一般是 2 的冪,這樣設置可以提高運算速度。然后,對每個子集依次進行訓練。所有的子集都訓練完成之后,可以說一次訓練就完成了,我們稱之為一次 epoch。這就是 Mini-Batch 梯度下降算法。
例如總的訓練樣本數量 m = 320000,拆分成 T=5000 個子集,每個 Mini-Batch 包含樣本的個數是 64。我們將每個 Mini-Batch 的輸入記為 $X^{\{t\}}$,輸出記為 $Y^{\{t\}}$,$t=1,2,\cdots,T$。
這里總結下神經網絡參數標記中各個上標一般表示的含義:
$X^{(i)}$ :第 $i$ 個樣本;
總結
以上是生活随笔為你收集整理的第11课:优化神经网络——梯度优化的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: VC实现在ListBox中选择背景位图
- 下一篇: 人设崩塌?万茜被盗号甩锅程序员,却两次被