超参数优化基本分为三类:网格搜索,随机搜索和贝叶斯调参
先上算法图:
在调参过程中,在给定的数据集下,不同参数组合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