超參數優化基本分為三類:網格搜索,隨機搜索和貝葉斯調參
先上算法圖:
在調參過程中,在給定的數據集下,不同參數組合X_t=(x1,x2,..xn)和指定的目標函數(比如auc,msre)之間的函數關系為y = f(X),X是給定范圍下的所有參數組合,S是采集函數,M是用來求后驗概率p(y | X)的模型(一般選用的都是高斯模型)。
在BayesianOptimization 這個庫,可以通過選擇init_points指定算法開始時隨機生成幾組參數(比如t組),那么開始得到D1:t={(x1, y1), (x2, y2), …, (xt, yt),我們認為y分布服從高斯分布,通過高斯過程得到(更新D后的y的條件概率分布p(y | Dt),有了條件概率分布就能得到f)目標函數的分布,采集函數又根據f,在開發和探索之間平衡,得到下一次最有可能最大化f的一組參數Xt+1,將這組參數加入Dt后得到Dt+1,將Dt+1帶入高斯分布中計算得到下一輪的y的概率分布。
參考:
貝葉斯,網格搜索,隨機搜索簡單應用:https://www.jianshu.com/p/5378ef009cae
貝葉斯python庫github地址:https://github.com/fmfn/BayesianOptimization
貝葉斯調參原理:
1、原理詳細介紹:http://www.jos.org.cn/html/2018/10/5607.htm#outline_anchor_5
2、高斯過程與采集函數關系:https://www.jianshu.com/p/5378ef009cae
3、暫時沒看懂的強大而精致的介紹:https://www.cnblogs.com/yangruiGB2312/p/9374377.html