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 ...
随机推荐
- YARP+AgileConfig 5分钟实现一个支持配置热更新的代理网关
YARP 是微软开源的一个反向代理项目,英文名叫 Yet Another Reverse Proxy .所谓反向代理最有名的那就是 nginx 了,没错 YARP 也可以用来完成 nginx 的大部分 ...
- adjective
形容词用来描述名词或代词:副词用来描述剩下的(动词.形容词.副词和整句).adverb: to word. Adjectives are used almost exclusively to modi ...
- day11 函数
day11 函数 一.函数基础 """ 1 什么是函数 函数是盛放代码的容器:把实现某一功能的代码放到一个函数内就制造一个工具 2 为何要用函数 没有用函数之前程序的问题 ...
- map和forEach的区别
总结 forEach()可以做到的东西,map()也同样可以.反过来也是如此. map()会分配内存空间存储新数组并返回,forEach()不会返回数据. forEach()允许callback更改原 ...
- node环境变量配置
1.Node.js 官方网站下载:https://nodejs.org/en/ 2.打开安装,傻瓜式下一步即可,然后配置环境变量 3.因为在执行例如npm install webpack -g等命令全 ...
- jenkins之分布式
在jenkins的slave节点安装jdk(注:slave节点不需要安装jenkins) #:安装jdk环境 root@ubuntu:/usr/local/src# ls jdk-8u191-linu ...
- Linux:sqlldr命令
第一步:写一个 ctl格式的控制文件 CTL 控制文件的内容 : load data --1. 控制文件标识 infile 'xxx.txt' --2. 要导入的数据文件名 insert into t ...
- 【Linux】【Services】【SaaS】Docker+kubernetes(2. 配置NTP服务chrony)
1. 简介 1.1. 这次使用另外一个轻量级的NTP服务,chrony.这是openstack推荐使用的ntp服务. 1.2. 官方网站:https://chrony.tuxfamily.org/ 2 ...
- 如何使用pycharm克隆阿里云项目
我们回到PyCharm刚打开时的界面,如图1-1所示: 点击"Check out from Version Control" => "Git",如图1 ...
- 转:select、poll、epoll之间的区别总结[整理]
转:select.poll.epoll之间的区别总结[整理] select,poll,epoll都是IO多路复用的机制.I/O多路复用就通过一种机制,可以监视多个描述符,一旦某个描述符就绪(一般是读就 ...