導語
在做模型的時候發現調參尤其是調Hyper-parameter真是惆悵T T……像Logistic Regression、SVM這類參數少的還能憑感覺手動調調,遇上Random Forest、AdaBoost這些參數多的咬著牙也能調出好結果,說到神經網絡,那就真是無語淚先流了……是時候考慮如何才能高效調參了(握拳)!
1. Grid Search
顧名思義,Grid Search將所有參數劃分成網格,網格中任意一個點所代表的參數組合都有可能最優參數搭配。
Grid Search一個明顯的優勢在于它能完全遍歷(brute-force search method)所有用戶所指定的參數搭配,但也因此引發了它最大的缺點:效率低,因此也無法普適地有效解決Hyper-parameter調參問題。
The number of grid points increases exponentially with the number of decision variables, which makes it computationally very costly.
Source: Parameter Tuning Using Gaussian Processes (Jinjin Ma, The university of Waikato, 2012)
2. Randomized Search
Randomized Search為模型隨機選取參數(Stochastic Search Process),選取用戶指定次數后,從中選擇效果最好的參數搭配。其中選取的參數點來源于通過網格劃分所得到的參數點(劃分過程與Grid Search同)。事實上,對于很多數據集和一些常用的算法,Random Search都表現不俗。
3. Gaussian Process Optimization
關于利用高斯過程調參,一個不得不提到的概念就是Expected Improvement。
The basic idea underlying EI is to estimate the improvement of possible candidate points over the current best value and to sample at the particular point next where the expected improvement is maximum.
而利用高斯過程進行優化的目標就是在盡可能少的嘗試中挑選出最佳的參數組合。
不知死活的筆者發現了一個大牛運用Gaussian Process實現的Bayesian Optimization。但是不知道為什么,當筆者用這個包對幾個以前已經調好參的模型進行調參時,結果并不如之前的結果好,所以在這一方面還有待于更深入的研究。