對TensorFlow深度學習中常見參數的總結分析
神經網絡中常見的參數有:初始學習率、學習率衰減率、隱藏層節點數量、迭代輪數、正則化系數、滑動平均衰減率、批訓練數量七個參數
。 對這七個參數,大部分情況下,神經網絡的參數選優是通過實驗
來調整的。 一個想法是,通過測試數據來評判參數的效果,但是這種方法會導致過擬合測試數據,失去評判未知數據的意義。而我們訓練神經網絡的目的,恰恰是為了預測未知數據。 所以,為了評判各種參數的效果,一般會從訓練數據中抽取一部分作為驗證數據。 驗證數據的選取方法也是非常重要的,一般來說選取的驗證數據分布越接近測試數據分布,模型在驗證數據上的表現越可以體現模型在測試數據上的表現。
-
不同參數模型的效果比較
以前提到過,設計神經網絡時候的
5
種優化方法。一個是神經網絡結構設計上,需要使用激活函數和多層隱藏層;另一個是,神經網路優化時,可以使用指數衰減的學習率、加入正則化的損失函數、滑動平均模型。 影響最大的是:調整神經網絡的結構,包括隱藏層和激活函數。這說明,神經網絡的結構對最終模型的效果有本質影響
。 另外的,滑動平均模型、指數衰減率和正則化項對正確率的提升並不是特別明顯。這是因為滑動平均模型和指數衰減的學習率在一定程度上都是限制神經網絡中參數更新的速度
。如果模型的收斂速度很快,這兩種優化對最終模型的影響不大。 這兩個個優化手段,能否說優化作用不大呢? 其實不是的。當問題更加復雜時,迭代不會這么快接近收斂,這時候滑動平均模型和指數衰減的學習率可以發揮更大的作用
。 還有一個正則化項,對模型效果帶來的提升要相對顯著。使用了正則化項損失函數的神經網絡模型可以降低大約6%的錯誤率。 只優化交叉熵的模型可以更好的擬合訓練數據(交叉熵損失更小),但是卻不能很好的挖掘數據中潛在的規律來判斷未知的測試數據,所以在測試數據上正確率低。
總結一下的話,激活函數和隱藏層對模型的效果帶來質的飛躍;滑動平均模型、學習率衰減率、正則化項對最終正確率的提升效果不明顯,但是需要解決的問題和使用的神經網絡更加復雜時,這些優化方法將更有可能對訓練效果產生更大的影響。