1. 程式人生 > >提升深度學習模型效能及網路調參

提升深度學習模型效能及網路調參

 

提升深度學習模型效能及網路調參

 

https://www.toutiao.com/a6637086018950398472/

 

 

影象處理與機器視覺 2018-12-25 10:42:00

深度學習有很多的引數需要優化,調整訓練資料或是問題的抽象定義方法可能會帶來巨大的效果改善,甚至是顯著的改善。

1、提升模型容量

要想提升模型容量,可以向深度網路逐漸新增層和節點,更深的層會輸出更復雜的模型資料。調參過程更重實踐而非理論,所以逐漸新增層和節點,可以與模型過擬合,而後面可以用正則化方式再將其調低。

2、模型與資料集設計變化

我們應該在啟用函式之前密切監控啟用直方圖,如果它們的規模差別很大,不以零為中心或非正態分佈時,那麼梯度下降將會無效,使用歸一化。如果深度網路有大量無效節點,那麼我們應該進一步追蹤該問題。它可能是由bug、權重初始化或梯度消失導致的。如果都不是,則試驗一些高階ReLU函式。

3、資料集收集與清洗

如果要構建自己的資料集,最好就是仔細研究如何收集樣本,找最優質的資源,過濾掉與問題無關的所有資料,分析誤差。可以添加捲積層和小型濾波器來改變模型,亦可以精細化專案範圍,縮小樣本範圍。

4、資料增強

對於圖片來說,我們可以使用資料增強方法如旋轉、隨機剪裁、移位等方式來對已有資料進行修改,生成更多的資料,以便後續收集有標籤的資料做為訓練樣本。

5、半監督學習

可以使用無標註資料補充訓練資料,使用模型分類資料,把具備高置信預測的樣本新增到具備對應標籤預測的訓練資料集中。

 

6、調整引數

1、學習率調整

2、超引數調整

3、稀疏度

4、啟用函式

5、高階調參

7、網格搜尋

一些超引數是高度相關的。我們應該使用對數尺度上的可能性網格一起調整它們。網格搜尋的計算量很大,對於較小的專案,它們會被零星使用。開始用較少的迭代來調整粗粒度引數,在後期的細調階段,我們會使用更長的迭代,並將數值調至3(或更低)。

8、模型集合

在機器學習中,我們可以從決策樹中投票進行預測。在深度學習中,可以從隨機猜測開始訓練,優化模型也不是唯一的。使用驗證資料集測試多次選出表現最佳的模型,也可以讓多個模型進行內部投票,最終輸出預測結果。

9、模型提升

在微調模型以外,也可以嘗試使用模型的不同變體來提升模組效能,效能重大提升的背後往往是模型設計的改變。不過有些時候對模型進行微調也可以提升機器學習的效能,最終的判斷可能會取決於你對相應任務的基準測試結果。

10、實驗框架

深度學習開發需要依賴大量經驗,調節超引數是一件非常乏味的工作。建立實驗框架可以加速這一過程。例如:將模型定義外化為字串以便調節,但是通常不能為小團隊帶來收益。這樣做的話程式碼的簡潔性和可追溯性損失會遠比受益要大,這意味著難以對程式碼進行簡單的修改。

很多AI雲產品已經開始提供自動調節超引數的特性,雖然目前這種技術仍處於初始階段,但無需人類自己編寫框架的流程應該是大勢所趨。