AI聖經-深度學習-讀書筆記(八)-深度模型中的優化
這一樣整理的內容非常少,以後會補上的。由於水平有限,實在看不懂。目前只是《深度學習》的第一版筆記,以後會以專欄的形式從新整理,不再是簡單的摘錄,更多的加上自己的思考。
深度模型中的優化
0 簡介
深度學習演算法在很多情況下都涉及優化。本章主要關注一類特定的優化問題:尋找神經網路上的一組引數,它能顯著地降低代價函式,該代價函式通常包括整個訓練集上的效能評估和額外的正則化項。
1 學習與純優化有什麼不同
1.1 代理損失函式
基於最小化這種平均訓練誤差的訓練過程被稱為經驗風險最小化。經驗風險最小化很容易導致過擬合,在深度學習中,我們很少使用經驗風險最小化。通常我們會優化代理損失函式
1.2 批量演算法
機器學習演算法的目標函式通常可以分解為訓練樣本上的求和。機器學習中的優化演算法在計算引數的每一次更新的時候通常僅使用整個代價函式中一部分項來估計代價函式的期望值。
準確計算期望的代價非常大,因為我們需要在整個資料集上的每個樣本上評估模型。在實踐中,我們可以從資料集中隨機取樣少量的樣本,然後計算這些樣本上的平均值。
另一個促使我們從小數目樣本中獲得梯度的統計估計的動機是訓練集的冗餘。
批量梯度下降指使用全部資料集。批量指一組樣本。
小批量的大小的決定因素:
(1)更大的批量會計算更精確的梯度估計,但是回報卻是小於線性的;
(2)極小批量通常難以充分利用多核架構;
(3)所有樣本可以並行地處理,那麼記憶體消耗和批量大小會成正比;
(4)通常使用2的冪數作為批量大小可以獲得更少的執行時間,32-256;
(5)小批量在學習過程中加入噪聲,它們會有一些正則化的效果;
在資料集中的順序有很大的影響的情況下,很有必要再抽取小批量樣本前打亂樣本順序。
2 神經網路優化中的挑戰
梯度下降旨在朝下坡移動,而非明確尋求臨界點。而牛頓法的目標是尋求梯度為零的點。
梯度消失使得我們難以知道引數朝哪個方向移動能夠改變代價函式,而梯度爆炸會使學習不穩定。
3 基本演算法
隨機梯度下降(SGD)演算法中的一個關鍵引數是學習率,SGD使用固定的學習率。在實踐中,有必要隨著時間的推移逐漸降低學習率。
4 自適應學習率演算法
學習率是難以設定的超引數之一,因為它對模型的效能有顯著的影響。
AdaGrad
獨立地適應所有模型引數的學習率。
對於訓練深度神經網路模型而言,從訓練開始時積累梯度平方會導致有效學習率過早和過量的減小。
AdaGrad在某些深度模型上效果不錯,但不是全部。
AdaGrad旨在應用於凸問題時快速收斂。
RMSProp
使用指數衰減平均。
RMSProp已被證明是一種有效且實用的深度神經網路優化演算法。目前它是深度學習從業者經常使用的優化方法之一。
Adam
Adam通常被認為對超引數的選擇相當魯棒,儘管學習率有時需要從建議的預設修改。
這一樣整理的內容非常少,以後會補上的。由於水平有限,實在看不懂。目前只是《深度學習》的第一版筆記,以後會以專欄的形式從新整理,不再是簡單的摘錄,更多的加上自己的思考。