AutoML--参数自动搜索

最近有一个模型调优的事情,正好过年的时候看过automl里面有一个贝叶斯参数优化,尝试用了一下,感觉还比较有效。


1.目前常见的调参方法

  • Grid Search,当参数空间较小时,网格搜索是个不错的选择,并且容易并行化;当参数空间较大时,网格搜索效率会变得极低,通常该方法需结合一定的调参经验来缩小参数空间。
  • Random Search,随机搜索,相当于对参数空间的简单随机抽样,在相同的参数空间下,实际效果要比网格搜索低,但搜索效率更快。有时候会先用随机搜索确定每个参数的大致范围,然后再用网格搜索进行密集运算。
  • 手动调参,靠经验直觉。
  • 自动调参,自动超参数调整形成了关于超参数设置和模型性能之间关系的知识,能利用先验知识选择下一组超参数。
    首先在多个配置中收集性能,然后进行一些推断并确定接下来要尝试的配置。目的是在找到最佳状态时尽量减少试验次数。
    这个过程本质上是顺序的,不容易并行化。
    调整超参数的大多数方法都属于基于顺序模型的全局优化(SMBO)。这些方法使用代理函数来逼近真正的黑盒函数。SMBO的内部循环是对该替代品的优化,或者对代理进行某种转换。最大化此代理的配置将是下一个应该尝试的配置。SMBO算法在优化替代品的标准以及他们根据观察历史对替代品进行建模的方式上有所不同。最近在文献中提出了几种用于超参数的SMBO方法:
    • Bayesian Optimization:使用高斯过程对代理进行建模,通常优化 Expected Improvement(EI),这是新试验将在当前最佳观察上改进的预期概率。高斯过程是函数的分布。来自高斯过程的样本是整个函数。训练高斯过程涉及将此分布拟合到给定数据,以便生成接近观察数据的函数。使用高斯过程,可以计算搜索空间中任何点的EI。接下来将尝试给出最高的EI。贝叶斯优化通常为连续超参数(例如learning rate, regularization coefficient…)提供 non-trivial/off-the-grid 值,并且在一些好的数据集上击败人类表现。Spearmint是一个众所周知的贝叶斯优化实现。
    • SMAC:使用随机森林对目标函数进行建模,从随机森林认为最优的区域(高EI)中抽取下一个点。
    • TPE:是SMAC的改进版本,其中两个分离的模型用于模拟后验。众所周知的TPE实现是hyperopt。

2. 贝叶斯调优

2.1 基础原理

贝叶斯调优的原理是建立在高斯过程回归上,而高斯过程回归则是在求解目标函数的后验分布,具体原理见黄橙橙:高斯过程回归?效果意想不到的好

假设 x 是超参数集合, f(x) 是模型效,如果模型训练是很快的,那么我们总是可以遍历 x ,找到最优的 f(x) ,如网格搜索。但现实情况则是相反,模型训练的代价是昂贵的,所以我们要充分利用之前已经尝试过的 (x, f(x)) 集合。

因此贝叶斯优化其实就是想求出后验概率 p(f|x, x, f(x)) 的分布,其中 f* 就是指未尝试的f(x),x* 是指对应的未尝试的超参数,而 x, f(x) 则是指尝试过的超参数和模型效果,即 x 的参数下实际训练得到的模型效果。
如果我们能拟合出这个后验概率分布,那么我们就可以在 x 下,预估 f(x) 的值,既然分布都知道了,那么取最优的 x 就可以了。

2.2 基本概念

Prior Function 先验函数

基于概率分布,用于描述目标函数的分布,拟合目标函数曲线。不同的分布,PF不同,效果是不一样的。

Acquisition Function 收获函数

从上面的介绍可以看出,贝叶斯调优是一个顺序模型,即每次取一组参数 x 来得到真实的 f(x) ,从而用得到的结果来矫正对后验概率分布的预估,合理的是,当对参数空间采样越多时,得到的分布就越准确,但是模型训练的代价是昂贵的,我们不能任性的采样,需要一个指标来评估采样的质量。这就是Acquisition Function,也就是收获函数。最简单的收获函数可以设定为max(mean + var),即某组参数下, f(x) 的均值和方差之和取最大值,这是因为均值越大,说明模型效果越好,方差越大,说明该区域评估出的分布不是很准确,需要额外的取样来矫正。

2.3 贝叶斯优化的基本思想

一句话总结:建立目标函数的概率模型,并用它来选择最有希望的超参数来评估真实的目标函数。
基本思想是:利用先验知识逼近未知目标函数的后验分布从而调节超参。花一点时间选择下一个超参数,以减少对目标函数的调用。

建立代理模型的目标函数(Prior Function/先验函数)

  1. 找到在代理上表现最佳的超参数(利用EI值,根据Acquisition Function得出EI)
  2. 将这些超参数应用于真正的目标函数
  3. 更新包含新结果的代理模型
  4. 重复步骤2-4,直到达到最大迭代次数或时间
  5. 基于顺序模型的优化方法(SMBO)是贝叶斯优化的形式化。顺序是指一个接一个地运行试验,每次通过应用贝叶斯推理和更新概率模型(代理)来尝试更好的超参数。

2.4 贝叶斯优化的优点

  1. 能利用先验知识高效地调节超参数,每个试验不独立,前一个推动下一个选择
  2. 通过减少计算任务而加速寻找最优参数的进程
  3. 不依赖人为猜测所需的样本量为多少,优化技术基于随机性,概率分布
  4. 在目标函数未知且计算复杂度高的情况下极其强大
  5. 通常适用于连续值的超参,例如 learning rate, regularization coefficient
  6. 在测试集表现优秀于手工调参结果,泛化性/鲁棒性好
  7. 不易陷入局部最优
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 214,922评论 6 497
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,591评论 3 389
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 160,546评论 0 350
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,467评论 1 288
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,553评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,580评论 1 293
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,588评论 3 414
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,334评论 0 270
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,780评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,092评论 2 330
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,270评论 1 344
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,925评论 5 338
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,573评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,194评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,437评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,154评论 2 366
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,127评论 2 352