贝叶斯超参数优化

The intuitions behind Tree-structured Parzen estimator

Reference

[1] Frazier P I. A tutorial on bayesian optimization[J]. arXiv preprint arXiv:1807.02811, 2018.

[2] Bergstra J S, Bardenet R, Bengio Y, et al. Algorithms for hyper-parameter optimization[C]//Advances in neural information processing systems. 2011: 2546-2554.

[3] Xia Y, Liu C, Li Y Y, et al. A boosted decision tree approach using Bayesian hyper-parameter optimization for credit scoring[J]. Expert Systems with Applications, 2017, 78: 225-241.

[4] A Conceptual Explanation of Bayesian Hyperparameter Optimization for Machine Learning

1. Bayesian hyper-parameter optimization

贝叶斯超参数优化是一种为序列模式的模型提供的求全局优化的方法。

针对的问题:求解object function:

min_{x\in A} f(x)

主要适用的情景:

  • x的维度不是太大,一般会限制在d\lt20,x可以理解为一个超参数序列
  • f(x)是一个计算起来很消耗时间的函数,例如损失函数
  • f(x)很难求导
  • ......

举例:

image.png

纵坐标是f(x),很明显如果是我们人工去选择下一组超参数的话,会在左下角score=20的这几个点中间去搜索,而不会还是进行一个全局的抽样。这实际就是一个贝叶斯优化过程。

但是对于Random search,grid search这些方法,并不会利用到历史的信息来进行选择。

2. Sequential model-based global optimization (SMBO)

2.1 伪代码

序列化模型全局优化(SMBO)是把贝叶斯优化的一个形式化的定义。具体的伪代码如下:

image.png

伪代码中出现的符号含义:

  • \lambda:超参数

  • L:object function,通常是损失函数

  • H:记录了所有(超参数\lambda, L)的历史集合

  • S_{t}:一个从超参数\lambda \to L的映射概率模型

循环一共进行T次:

  1. 每次先根据已有的历史试验集合找出一个更可能拥有更小objective function的超参数集合\lambda
  2. 之后计算实际的object function的值
  3. 加入历史集合
  4. 更新S

2.2 一些粗浅的理解

  1. 不断的利用历史试验(trial)记录,构建出了一个下面的概率模型:

    P(objective\ function\ score\quad |\quad hyperparameters)

  2. 叫做贝叶斯的原因是出现了先验概率的思想

  3. 核心想法是在更有可能得到更好结果的超参数范围内选择新的超参数

2.4 核心要素

2.4.1 Domain

不同的超参数有自己的取值范围,以及先验分布,例如均匀分布,log均匀分布等

2.4.2 Objective Function

Objective Function是我们想要优化的目标。接受超参数作为输入,输出的值可以是超参数实例化后拟合了训练集的经验风险函数,如均方误差。

我们不会直接拿这个作为优化目标,而是使用下面的替代函数Surrogate Function。

2.4.3 Surrogate Function

替代函数,也叫做响应面(response surface),是基于之前的历史记录的一种关于objective function的概率表示。

叫做响应面是因为它是在高维层次的objective function score的关于超参数的概率。如下图:

image.png

存在几种不同的替代函数,如:

  • Gaussian Processes
  • Random Forest regression
  • Tree-structured Parzen Estimator

2.4.4 Selection Function

选择函数是如何根据前面的Surrogate Function,来选择新的超参数集合进行试验。

关于选择函数也有不同的表示,例如:

  • Expected Improvement (EI)
  • Probability of Improvement

3 Tree-structured Parzen estimator(TPE)

3.1 基础认识

  1. Tree:超参数优化问题可以理解为在图结构的参数空间上不断寻找objective function最优解的问题。所谓tree,是提出TPE的作者将该优化问题限制在了树状结构上,例如:
image.png

一些超参数只有在其它的超参数确定后才能够进行确认,例如网络的层数与每一层的节点数量,当然这不意味着这两个超参数是相关的。实际上在TPE中,要求所估计的超参数必须是相互独立的

  1. Parzen:Parzen–Rosenblatt window是在核密度估计问题中,由 Emanuel ParzenMurray Rosenblatt提出的能够根据当前的观察值和先验分布类型,估计估计值的概率密度。一般的函数如下:
image.png
image.png

在TPE中,假设了核函数都是高斯核函数

3.2 具体过程推演

3.2.1 Expected Improvement (EI)

对于选择一组新的超参数后的objective function的提升可以表示为:

I(\lambda) = max(c^{*}-c(\lambda), 0) \tag{1}

c^{*}是当前记录的H中所有c的一个分割点,我们这里直接认为c表示的就是风险函数。

通过这样的转换,我们就把原来的objective function最优问题转换成了一个新的问题。

如果新的\lambda对应的c(\lambda)更小,则它是更好的超参数设置,但是这需要训练,然后求出风险函数,并不是我们想要的。

那么如果一个新的\lambda对应的提升的期望是大于0的,那么可认为这个\lambda是有较大可能使得风险减小的。故有:

\begin{split}EI(\lambda) &= \int\limits_{-\infty}^{c^{*}}(c^{*}-c)P_{S_{t-1}}(c|\lambda)dc \\ &= \int\limits_{-\infty}^{c^{*}}(c^{*}-c)\frac{p(\lambda|c)p(c)}{p(\lambda)}dc \end{split} \tag{2}

式子中的p(\lambda|c)定义为:

p(\lambda|c) = \left\{ \begin{aligned} &l(\lambda) \quad c \lt c^{*} \\ &g(\lambda) \quad c \ge c^{*} \end{aligned} \right. \tag{3}

c^{*}是一个阈值,通常是在H所有的c中,满足p(c<c^{*})=\gamma\gamma默认可设置为0.15。这样所有的历史记录就分成了两部分,即风险较小的那部分和风险相对较大的那部分,l(\lambda)是由所有的风险较小的那部分的超参数集合形成的分布,g(\lambda)是由所有的风险较大的那部分的超参数集合形成的分布。如下图:

image.png
image.png

直觉上我们从风险较小的分布中抽样新的超参数,应该是比较合理的,下面的数学推理也证明了这一点。

继续推导公式2:

\begin{split} p(\lambda) &= \int_{R}p(\lambda|c)p(c)dc \\ &= \int_{-\infty}^{c^{*}}p(\lambda|c)p(c)dc + \int_{c^{*}}^{+\infty}p(\lambda|c)p(c)dc \\ &= \gamma l(\lambda)+(1-\gamma) g(\lambda) \end{split}

\begin{split} \int_{-\infty}^{c*} (c^{*}-c)p(\lambda|c)p(c)dc &= l(\lambda)\int_{-\infty}^{c*}(c^{*}-c)p(\lambda|c)p(c)dc \\ &=\gamma c^{*}l(\lambda) -l(\lambda) \int_{-\infty}^{c*} cp(c)dc \end{split}

最终得到:

\begin{split} EI(\lambda) &= \frac{\gamma c^{*}l(\lambda) -l(\lambda) \int_{-\infty}^{c*} cp(c)dc}{\gamma l(\lambda)+(1-\gamma) g(\lambda)} \\ & \propto \big( \gamma+\frac{g(\lambda)}{l(\lambda)}(1-\gamma) \big)^{-1} \end{split}

这说明在l(\lambda)的分布下取样得到的参数更有可能让EI(\lambda)有更大的值。

3.2.2 估计超参数的分布

c^{*}将历史记录分为了两部分,以 c \lt c^{*} 的那部分超参数集合为例。

假设存在n个取值 (x_1,x_2, \dots, x_n) ,那么概率密度的估计是

\hat{p}(x) = \frac{1}{nh}\sum\limits_{i=1}^{n}K\big( \frac{x-x_i}{h} \big)

其中

K\big( \frac{x-x_i}{h} \big) = \frac{1}{\sqrt{2\pi}} exp\big( -\frac{1}{2}(\frac{x-x_i}{h})^2 \big)

3.2.3 求解的过程

利用TPE,首先对于所有的超参数形成的那棵树进行设置,因为TPE要求所有的超参数要相互独立,即一种正交的概念,即效果不能相互影响,例如学习率,提升树方法的迭代次数,和树的最大深度就存在一个权衡,所以需要先固定一些不能一起用于优化的超参数,如固定学习率和迭代次数。

由树从根结点从上而下的利用Parzen estimator,对某一个节点,在 l(\lambda)分布下采样,比如采样100次。

每一次的采样得到的超参数集合可以分别得到它们的概率,然后相乘得到联合概率,算出 l(\lambda)g(\lambda)。选取其中 l(\lambda)/g(\lambda) 的最大值,作为这一次迭代选取的超参数。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,390评论 5 459
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,821评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,632评论 0 319
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,170评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,033评论 4 355
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,098评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,511评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,204评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,479评论 1 290
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,572评论 2 309
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,341评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,213评论 3 312
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,576评论 3 298
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,893评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,171评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,486评论 2 341
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,676评论 2 335

推荐阅读更多精彩内容