使用蒙特卡罗树搜索学习搜索空间分区的黑盒优化

Learning Search Space Partition for Black-box Optimization using Monte Carlo Tree Search

1.摘要

本文研究的问题是高维决策空间找最优解,且从决策变量到函数值的函数没有显示给出,即黑盒优化。通常情况下,我们使用贝叶斯优化,这可以参考我的另一篇文章:高维设计空间中多目标优化的智能采样框架,但这样做容易出现一个问题,当维度比较高时,随着采样点的增多,搜索速度会越来越慢,且表现不好。但如果不这么做的话,如果我们采取贪心策略只在一个地方搜索我们可能会陷入局部最优。
本文借鉴LA-NAS(神经网络结构优化的NAS方面论文),使用了一个LA-MCTS方法,它可以使用较少的样本及其函数值学习搜索空间的分区。
LaNAS使用线性划分并在每个区域执行均匀采样,而LA-MCTS采用非线性决策边界,并学习局部模型来选择好的候选对象。 如果非线性分区函数和局部模型与地面真相黑盒函数很好地吻合,那么用更少的样本就可以达到良好的分区和候选。 LA-MCTS作为一种启发式算法,使用现有的黑盒优化器(例如BO、TU RBO)作为其局部模型,在一般的黑盒优化和强化学习基准中实现了很强的性能,特别是对于高维问题。

2.介绍

黑盒优化在许多场景中得到了广泛的应用,包括神经结构搜索(NAS)、机器人规划、大型数据库中的超参数调优、分布式系统、集成电路设计等。
假设我们使用暴力算法,找到最优解的时间复杂度为指数级(指数为变量X的维度),所以我们通常的做法是使用学习的方法–使用较少的样本针对多个类别学习多个代理模型,再使用该代理模型在每个类别进行划分。例如前面那篇文章就采用了贝叶斯优化建立高斯模型的方法。但是当函数是非线性,维度较高比较复杂的时候,就需要很多的样本才能完成这个任务。
为了解决这一问题,最近的工作开始探索适合有希望区域的局部模型的空间划分和局部建模,并在高维问题中取得了很强的实验结果。
在本文中,我们提出了LA-MCTS,一种启发式算法,它以分层的方式递归地学习空间划分。 给定一个区域内的几个样本,它首先根据它们的函数值执行无监督的K均值算法,使用K均值标签学习分类器,并将该区域划分为好的和坏的子区域(具有高/低函数值)。
相比LaNAS,LA-MCTS具有如下三点优势:

  1. La-NAS学习的是超平面,而LA-MCTS学习一个更灵活的非线性决策边界
  2. La-NAS只是在每个区域执行简单均匀采样作为下一个样本来评估,而我们对表现良好的区域进行了关键观察,并利用像BO这样的现有函数逼近器来寻找一个有希望更好的数据点。这使得LA-MCTS是一种启发式算法,可以用来增强现有的算法,这些算法通过构建本地模型进行优化。
  3. La-NAS的优势主要集中在神经结构搜索(<20个离散参数),但我们的方法在一般黑盒优化方面表现出很强的性能

3.相关工作

略,想看的话可以评论区留言

4.具体算法

在这里插入图片描述

4.1建立蒙特卡洛树划分区域

这部分是这篇文献的核心,讲述了LA-MCTS如何逐步学习和找到空间中有希望得到好解的区域,以便求解器,如贝叶斯优化(Bayesian Optimizations,BO)可以在Ω中重点关注关键区域,以提高其性能。Ω符号含义见上表。

建立蒙特卡洛树的最终目的是将整个空间迭代地划分成好的和不好的区域,这意味着好的区域当中也会被划分成好的与不好的区域。
具体如下:

  1. 看下图中的图(a)部分,每个节点代表的是一个区域,例如A节点就代表 Ω A Ω_A ΩA区域,该节点还包含另外两个信息, n A n_A nA代表该区域的样本数, v A v_A vA代表这些样本的函数值f的均值。
  2. 我们模拟一遍建树的过程就懂了,首先,把Ω作为root节点即A节点,我们使用K均值聚类方法把空间的采样点划分成两类,这时空间中的每个点都有自己的标签,要么1要么2。
  3. 再使用SVM算法在类别1和类别2的采样点之间找到一个超平面,于是有了 Ω B Ω_B ΩB Ω C Ω_C ΩC,如下图(d)
  4. 重复上述操作,直到达到预设的结束标准(比如叶节点数<20个停止)。

在这里插入图片描述

4.2搜索过程
在这里插入图片描述
上图显示了搜索过程的三个步骤:

  1. 使用原有的采样点动态地加深树
  2. 选择一个划分的区域进行采样
  3. 使用BO进行采样,并且使用SVM对路径上的边界进行新的划分

4.2.1通过分裂动态构建树

首先我们计算 Ω i Ω_i Ωi区域的表现,即其均值 v A v_A vA。然后我们新加一个点 x i x_i xi,随着不断增加采样点,| v A v_A vA- v A ′ v'_A vA|会不断减少, v A ′ v'_A vA为新加后的均值。当这个值比较小后,我们可以认为该区域已经差不多可以分裂了,于是我们可以像上图a那样进行分裂。如此循环。当然不一定用这种方式判断是否要分裂,比如我们也可以考虑 Ω i Ω_i Ωi区域的采样点的数量的阈值来控制分裂。

4.2.2使用UCB选择路径
为了防止局部最优,我们定义了ucb为:
在这里插入图片描述
如图b,我们会选择UCB得分更高的节点进行搜索。 C p C_p Cp表示搜索时探索的程度,当 C p = 0 C_p=0 Cp=0时,为贪心策略,容易进入局部最优。 n p n_p np为父节点采样点数, n j n_j nj为当前节点采样点数, v j v_j vj为当前节点均值。

4.2.3使用BO进行采样
如上图c所示,我们通过一个支持向量机集得到一个采样区域F。

5.实验

参考这篇博客有详细讨论关于这篇文献的内容,蒙特卡洛树搜索_布朗大学和FAIR开源LA-MCTS,及其在神经网络结构搜索的应用
本文实现的代码在[GitHub]
(https://github.com/facebookresearch/LaMCTS)上,读者可自行去使用学习

返回贝叶斯优化优秀论文总结目录

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小怪兽会微笑

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值