什么是超參數
所謂超參數,就是機器學習模型里面的框架參數,比如聚類方法里面類的個數,或者話題模型里面話題的個數等等,都稱為超參數。它們跟訓練過程中學習的參數(權重)是不一樣的,通常是手工設定,不斷試錯調整,或者對一系列窮舉出來的參數組合一通枚舉(叫做網格搜索)。深度學習和神經網絡模型,有很多這樣的參數需要學習,這就是為什么過去這么多年從業者棄之不顧的原因。以前給人的印象,深度學習就是“黑魔法”。時至今日,非參數學習研究正在幫助深度學習更加自動的優化模型參數選擇,當然有經驗的專家仍然是必須的。
超參數調試處理
- 在機器學習領域,超參數比較少的情況下,我們之前利用設置網格點的方式來調試超參數;
- 但在深度學習領域,超參數較多的情況下,不是設置規則的網格點,而是隨機選擇點進行調試。這樣做是因為在我們處理問題的時候,是無法知道哪個超參數是更重要的,所以隨機的方式去測試超參數點的性能,更為合理,這樣可以探究更超參數的潛在價值。
如果在某一區域找到一個效果好的點,將關注點放到點附近的小區域內繼續尋找。
為超參數選擇合適的范圍
Scale均勻隨機
在超參數選擇的時候,一些超參數是在一個范圍內進行均勻隨機取值,如隱藏層神經元結點的個數、隱藏層的層數等。但是有一些超參數的選擇做均勻隨機取值是不合適的,這里需要按照一定的比例在不同的小范圍內進行均勻隨機取值,以學習率α的選擇為例,在0.001,…,1范圍內進行選擇:
如上圖所示,如果在 0.001,…,1 的范圍內進行進行均勻隨機取值,則有90%的概率 選擇范圍在 0.1∼1 之間,而只有10%的概率才能選擇到0.001∼0.1之間,顯然是不合理的。
所以在選擇的時候,在不同比例范圍內進行均勻隨機取值,如0.001∼0.001、0.001∼0.01、0.01∼0.1、0.1∼1 范圍內選擇。
超參數調試實踐–Pandas vs. Caviar
在超參數調試的實際操作中,我們需要根據我們現有的計算資源來決定以什么樣的方式去調試超參數,進而對模型進行改進。下面是不同情況下的兩種方式:
- 在計算資源有限的情況下,使用第一種,僅調試一個模型,每天不斷優化;
- 在計算資源充足的情況下,使用第二種,同時並行調試多個模型,選取其中最好的模型。
本系列博客系人工智能社區(www.studyai.com)推出的視頻課程<<scikit-learn從0到1全面掌握>>的教案,均為授課老師 Antares博士 原創。我們允許進行全文鏈接式轉載,但必須注明出處與原始鏈接。
鏈接:http://www.studyai.com/article/2fd97e83c5474bba
DeepMind提出新型超參數最優化方法:性能超越手動調參和貝葉斯優化
《Population Based Training of Neural Networks》
參考文獻:
1.http://blog.csdn.net/yc1203968305/article/details/78503480