Bayesian Optimization with a Finite Budget: An Approximate Dynamic Programming Approach
Lam R, Willcox K, Wolpert D H, et al. Bayesian Optimization with a Finite Budget: An Approximate Dynamic Programming Approach[C]. neural information processing systems, 2016: 883-891.
@article{lam2016bayesian,
title={Bayesian Optimization with a Finite Budget: An Approximate Dynamic Programming Approach},
author={Lam, Remi and Willcox, Karen and Wolpert, David H},
pages={883--891},
year={2016}}
概
贝叶斯优化中的多步优化策略. 像经典的EI方法, 就是只考虑一步, 即希望找到
\]
的期望收益最大化的点\(x_{k+1}\)为下一个评估点.
上式中的\(f_{min}^{\mathcal{S}_k}\)是指目标函数在集合\(\mathcal{S}_k\)上的最小值.
主要内容
考虑如下动态规划, 第k步的
状态: \(\mathcal{S}_k\), 即观测到的点;
控制: \(u_k\), 且\(u_k(\mathcal{S}_k)=x_{k+1}\)
扰动: \(w_k:=f_{k+1} \sim p(f(x_{k+1})|\mathcal{S}_k)\);
设状态转移为:
\]
收益(效用函数):
J_k(x_{k+1}) = \max_{x_{k+1}} U_k,\\
J_N=r_N(x_{N+1}).
\]
很自然的想法是, 我们最大化\(U_1\), 来获得所需的评估点, 但是问题是, 这个是一个嵌套的最大化优化问题, 不易求解.
本文采用rollout 算法来估计\(U_k\), 具体如下:
给定基本的决策控制\(\pi = (\pi_1, \ldots, \pi_N)\)(比如最大化EI), 为了最优化\(U_k\), 我们先选择用\(H_{k+1}\)估计\(J_{k+1}\), 其定义如下:

其中\(n \in \{k+1, \ldots, N-1\}\), \(\gamma \in [0, 1]\) 用以调节增量.
\(H_n\)是一个期望, 可以用Gauss-Hermite正交化估计:

其中\(\tilde{N} = \min \{k+h, N\}\), 用以限制最大的估计步数, \(\alpha^{(q)}\)是正交系数, \(f_{n+1}^{(q)}\)是Hermite多项式的根(大概).
于是, \(U_k(x_{k+1},\mathcal{S}_k)\)便可用下式估计:


算法如下:
Input: \(h, \gamma, N, \mathcal{S}_1\);
repeat N:
- 根据(20)近似最大化\(U_k\)
- 更新\(\mathcal{S}_{k+1}=\mathcal{S}_k \cup \{(x_{k+1},f_{k+1})\}\)
out: \(f_{min}^{S_{N+1}}\).
Bayesian Optimization with a Finite Budget: An Approximate Dynamic Programming Approach的更多相关文章
- 【转载】AutoML--超参数调优之Bayesian Optimization
原文:Auto Machine Learning笔记 - Bayesian Optimization 优化器是机器学习中很重要的一个环节.当确定损失函数时,你需要一个优化器使损失函数的参数能够快速有效 ...
- 贝叶斯优化(Bayesian Optimization)深入理解
目前在研究Automated Machine Learning,其中有一个子领域是实现网络超参数自动化搜索,而常见的搜索方法有Grid Search.Random Search以及贝叶斯优化搜索.前两 ...
- Bayesian Optimization使用Hyperopt进行参数调优
超参数优化 Bayesian Optimization使用Hyperopt进行参数调优 1. 前言 本文将介绍一种快速有效的方法用于实现机器学习模型的调参.有两种常用的调参方法:网格搜索和随机搜索.每 ...
- 贝叶斯优化 Bayesian Optimization
贝叶斯优化 Bayesian Optimization 2018年07月02日 22:28:06 余生最年轻 阅读数 4821更多 分类专栏: 机器学习 版权声明:本文为博主原创文章,遵循CC 4 ...
- PP: Taking the human out of the loop: A review of bayesian optimization
Problem: Design problem parameters consist of the search space of your model. Scientists design expe ...
- 贝叶斯优化(Bayesian Optimization)只需要看这一篇就够了,算法到python实现
贝叶斯优化 (BayesianOptimization) 1 问题提出 神经网咯是有许多超参数决定的,例如网络深度,学习率,正则等等.如何寻找最好的超参数组合,是一个老人靠经验,新人靠运气的任务. 穷 ...
- [Optimization] Dynamic programming
“就是迭代,被众人说得这么玄乎" “之所以归为优化,是因为动态规划本质是一个systemetic bruce force" “因为systemetic,所以比穷举好了许多,就认为是 ...
- [Optimization] Advanced Dynamic programming
这里主要是较为详细地理解动态规划的思想,思考一些高质量的案例,同时也响应如下这么一句口号: “迭代(regression)是人,递归(recursion)是神!” Video series for D ...
- [Algorithm] Meeting hour optimization (Kanpsack problem) and Dynamic programming
For example we have array of meeting objects: const data = [ { name: }, { name: }, { name: }, { name ...
随机推荐
- node环境变量配置
1.Node.js 官方网站下载:https://nodejs.org/en/ 2.打开安装,傻瓜式下一步即可,然后配置环境变量 3.因为在执行例如npm install webpack -g等命令全 ...
- APICloud - 提交项目 点击右键 没有git这个选项
你们是不是也遇到过这个问题,吧项目检出来后,花了很久的时间,好不容易吧项目改完,提交的时候点击鼠标右键,发现git选项没有在里面了,找不到,但是这个问题也不是很常遇到,机率很小,下面我来告诉你们吧 原 ...
- zookeeper 异常 :stat is not executed because it is not in the whitelist. Connection closed b
1 .问题 1.启动 zookeeper 后 用指令: telnet 127.0.0.1 2181 连接 提示输入指令 :stat 后报错,然后关闭连接 2.问题解决: 修改启动指令 zkServe ...
- 【Java基础】ArrayList初始化操作
要用60个零初始化列表,请执行以下操作: List<Integer> list = new ArrayList<Integer>(Collections.nCopies(60, ...
- fatal: unable to access 'https://github.com/xxxxx/xxxx.git/': Failed to connect to github.com port 443: Timed out
今天使用git push的时候提示"fatal: unable to access 'https://github.com/xxxxx/xxxx.git/': Failed to conne ...
- 【Java】基本语法学习笔记
1.数组 *数组的创建 int[] array = {1,2,3,4,5}; 注意区别于C++ int a[] = (1)两种输出方法 public class number { public sta ...
- markDodn使用技巧
markdown 标题 一级标题书写语法: 井符(#)加上空格加上标题名称 二级标题书写语法: 两个井符(#)加上空格加上标题名称 三级标题书写语法: 三个井符(#)加上空格加上标题名称 字体 字体加 ...
- tableau添加参考线
一.将数据窗口切换至分析窗口-点击自定义-参考线 二.出现编辑参考线和参考区间的界面(整个表指的是整个视图,每区指的是如下2018就是一个区,每单元格指的是横轴的最小值) 三.我们分别为每区添加最大值 ...
- Oracle命名规则
1.长度不能超过三十个字符 2. 不要使用Oracle关键字 比如:id name table 3. 不能使用数字开头 包含:数字 字母 下划线 美元符号 4. 建议用 英文单词,不要去用中 ...
- Android Service VS AsyncTask VS Thread
这三种方式的设计目的是不同的. Service: 适用于在后台长期持续运行的动作,如:播放音乐,查看网络数据.注意,在开发文档中,service本身是在UI线程中,所以所需的操作应该创建一个新的线程来 ...