訓練集、開發集(驗證集)、測試集
偏差與方差
正則化
L2正則
Dropout
隨機丟棄部分神經元輸入,經常用于計算機視覺的神經網絡內,因為通常沒有足夠的訓練數據,很容易出現過擬合的問題
數據增強
訓練集規一化
可以使其圖像更均勻,梯度下降更容易收斂
梯度消失與梯度爆炸
梯度消失
-
激活函數:如Sigmoid或Tanh,其導數在輸入較大或較小時會趨近于零,梯度在多層傳播中逐漸減小。
-
網絡深度:層數越多,梯度經過多次連乘后變得更小。
梯度爆炸
-
權重初始化不當,導致梯度在傳播中不斷放大。
-
網絡深度增加,梯度連乘后變得過大。
參數初始化
He初始化與Xavier初始化
Mini-Batch梯度下降
在訓練集數據量較大時,每輪迭代只使用小部分數據進行訓練,大幅提高訓練速度
如何選擇batch大小
batch size太小會抖動嚴重,并且失去向量化帶來的加速優勢;太大則會每輪迭代成本很高
梯度下降算法的優化
Momentum 動量法傳播
指數加權平均(exponentially weighted averages)
可以看到指數加權平均展開之后就是每老一點的數據就多乘以一次一個接近一的系數,使得老的數據影響越來越小,近似的計算近一段時間的平均值,這樣相對直接取n填計算均值需要的內存更小。
如果單純以上面的公式進行計算,會發現由于??導致在初始化的幾天預測不準,大部分情況下只需要等待預熱期過去就好,但是如果你關注預熱期的準確度,可以每輪迭代增加一步
進行計算,當t比較小時可以放大結果,當t比較大時則分母接近于0影響漸小
梯度下降結合指數加權平均
即針對偏導數結果進行指數加權平均,這樣在偏導數震蕩時可以減小震蕩幅度,而連續同朝向時則可以加速收斂
RMSprop 均方根傳播
區別于指數加權平均,這里使用梯度的平方進行指數加權,加速收斂
Adam 亞當優化算法
Adam算法結合了Momentum和RMSprop,增加了參數防止分母為0,并且對結果進行了誤差校正
超參的選擇
的對最終效果的影響很小,
和
一般也使用固定值,分別為0.9和0.999,一般只需要對學習率
進行調參
學習率衰減
可以減小在接近收斂時的震蕩,加快收斂速度
局部最優問題
因為深度學習中都是高維空間,在高維空間中幾乎不會出現真正的局部最優點(需要所有維度上都是局部最小值或局部最大值),因此這個不是問題。
實際經常會出現的是鞍點,鞍點是指部分維度為局部最大值而部分維度是局部最小值,還有更多的維度并不是局部最值(所有維度梯度均為0的概率也是極低的)。這種情況下Adam等算法都可以幫助加速逃離鞍點。
超參調參
隨機取點,從粗到細
正態隨機
指數隨機
有時候不能直接正態分布的隨機取點,比如對于學習率和指數加權平均系數等,可以結合指數隨機增加特定區域隨機出的概率
batch normalization 批歸一化
前面講過訓練集歸一化,還可以進一步對中間輸出進行歸一化,同時為了避免值只能在(0,1)之間,增加了和
兩個可學習參數用于調整平均值
神經網絡訓練中應用歸一化
在計算z之后對z進行歸一化處理即可,β和γ均作為學習參數。通過歸一化可以減少網絡不同層的耦合,前一層網絡的變化始終將輸出保持一定范圍內,減少了對后面網絡層的影響。
由于歸一化過程中輸入會減掉平均值,所以在下面使用方式中的
并沒有用
作用
推理時處理歸一化
由于實際推理時可能只有一個輸入,沒有平均值、方差等統計值,此時需要使用訓練時得到的統計值,比如使用每個batch計算得到的μ和的指數加權平均。
Softmax regression 多類分類問題
輸出層神經元個數與分類數量一致,各神經元輸出之和為1。softmax的命名是跟hardmax相對的,hardmax是指輸出中只有一個1,其他均為0。
損失函數
后向傳播
訓練框架TensorFlow
兩種實現方式