目 录
第1章 贝叶斯优化简介 1
1.1 寻找昂贵黑盒函数的最优解 2
1.1.1 昂贵的黑盒优化问题示例:超参数调优 2
1.1.2 昂贵黑盒优化问题 4
1.1.3 其他昂贵黑盒优化问题的示例 5
1.2 引入贝叶斯优化 6
1.2.1 使用高斯过程进行建模 7
1.2.2 使用贝叶斯优化策略进行决策 10
1.2.3 将高斯过程和优化策略结合起来形成优化循环 11
1.2.4 贝叶斯优化的实际应用 13
1.3 你将从本书中学到什么 18
1.4 本章小结 19
第Ⅰ部分 使用高斯过程建模
第2章 高斯过程作为函数上的分布 23
2.1 如何以贝叶斯方式出售你的房子 25
2.2 运用多元高斯分布对相关性建模并进行贝叶斯更新 27
2.2.1 使用多元高斯分布联合建模多个变量 27
2.2.2 更新多元高斯分布 30
2.2.3 使用高维高斯分布建模多个变量 33
2.3 从有限维高斯分布到无限维高斯分布 35
2.4 在Python中实现高斯过程 40
2.4.1 设置训练数据 40
2.4.2 实现一个高斯过程类 42
2.4.3 使用高斯过程进行预测 44
2.4.4 高斯过程的预测可视化 45
2.4.5 超越一维目标函数 48
2.5 练习题 51
2.6 本章小结 52
第3章 通过均值和协方差函数定制高斯过程 53
3.1 贝叶斯模型中先验的重要性 54
3.2 将已知的信息融入高斯过程 57
3.3 使用均值函数定义函数行为 58
3.3.1 使用零均值函数作为基本策略 59
3.3.2 使用常数函数和梯度下降法 61
3.3.3 使用线性函数和梯度下降法 65
3.3.4 通过实现自定义均值函数来使用二次函数 67
3.4 用协方差函数定义变异性和平滑性 70
3.4.1 协方差函数的尺度设置 70
3.4.2 使用不同的协方差函数控制平滑度 73
3.4.3 使用多个长度尺度来模拟不同水平的变异性 76
3.5 练习题 79
3.6 本章小结 80
第Ⅱ部分 使用贝叶斯优化进行决策
第4章 通过基于改进的策略优化最佳结果 85
4.1 在贝叶斯优化中探索搜索空间 86
4.1.1 贝叶斯优化循环与策略 87
4.1.2 平衡探索与利用 96
4.2 在贝叶斯优化中寻找改进 98
4.2.1 使用高斯过程衡量改进 99
4.2.2 计算改进的概率 101
4.2.3 实施PoI策略 106
4.3 优化期望改进值 109
4.4 练习题 112
4.4.1 练习题1:使用PoI鼓励探索 112
4.4.2 练习题2:使用BayesOpt进行超参数调优 112
4.5 本章小结 114
第5章 使用类似多臂老虎机的策略探索搜索空间 117
5.1 多臂老虎机问题简介 118
5.1.1 在游乐场寻找最佳老虎机 118
5.1.2 从多臂老虎机到贝叶斯优化 121
5.2 在不确定性下保持乐观:上置信界策略 122
5.2.1 不确定性下的乐观主义 123
5.2.2 平衡探索与利用 125
5.2.3 使用BoTorch实现 127
5.3 使用汤普森采样策略进行智能采样 129
5.3.1 用一个样本来代表未知量 129
5.3.2 在BoTorch中实现汤普森采样策略 132
5.4 练习题 137
5.4.1 练习题1:为UCB策略设置探索计划 137
5.4.2 练习题2:使用贝叶斯优化进行超参数调优 138
5.5 本章小结 138
第6章 使用基于熵的信息论策略 141
6.1 使用信息论衡量知识 142
6.1.1 使用熵来衡量不确定性 142
6.1.2 使用熵寻找遥控器 144
6.1.3 使用熵的二分搜索 147
6.2 贝叶斯优化中的熵搜索 152
6.2.1 使用信息论寻找最优解 152
6.2.2 使用BoTorch实现熵搜索 156
6.3 练习题 158
6.3.1 练习题1:将先验知识融入熵搜索 158
6.3.2 练习题2:用于超参数调优的贝叶斯优化 160
6.4 本章小结 161
第Ⅲ部分 将贝叶斯优化扩展到特定设置
第7章 使用批量优化最大化吞吐量 165
7.1 同时进行多个函数评估 166
7.1.1 并行利用所有可用资源 166
7.1.2 为什么不在批量设置中使用常规的贝叶斯优化策略 168
7.2 计算一批点的改进和上置信界 170
7.2.1 将优化启发式方法扩展到批量设置 170
7.2.2 实现批量改进和UCB策略 176
7.3 练习题1:通过重采样将TS扩展到批量设置 183
7.4 使用信息论计算一批点的值 184
7.4.1 通过循环求精找到最具信息量的批量点集 184
7.4.2 使用BoTorch实现批量熵搜索 186
7.5 练习题2:优化飞机设计 189
7.6 本章小结 192
第8章 通过约束优化满足额外的约束条件 193
8.1 在约束优化问题中考虑约束条件 194
8.1.1 约束条件对优化问题解的影响 194
8.1.2 约束感知的贝叶斯优化框架 197
8.2 贝叶斯优化中的约束感知决策 198
8.3 练习题1:手动计算约束EI 203
8.4 使用BoTorch实现约束EI 204
8.5 练习题2:飞机设计的约束优化 208
8.6 本章小结 210
第9章 通过多保真度优化平衡效用和成本 211
9.1 使用低保真度近似来研究成本高昂的现象 212
9.2 高斯过程的多保真度建模 216
9.2.1 格式化多保真度数据集 216
9.2.2 训练一个多保真度高斯过程 220
9.3 在多保真度优化中平衡信息和成本 224
9.3.1 建模不同保真度查询的成本 225
9.3.2 优化每一美元信息量以指导优化 226
9.4 在多保真度优化中衡量性能 232
9.5 练习题1:可视化多保真度优化中的平均性能 236
9.6 练习题2:使用多个低保真近似的多保真度优化 238
9.7 本章小结 239
第10章 通过成对比较进行偏好优化学习 241
10.1 使用成对比较的黑盒优化 243
10.2 制定偏好优化问题和格式化成对比较数据 246
10.3 训练基于偏好的GP 250
10.4 通过“山丘之王”游戏进行偏好优化 254
10.5 本章小结 258
第11章 同时优化多个目标 259
11.1 使用BayesOpt平衡多个优化目标 260
11.2 寻找最佳数据点的边界 262
11.3 优化最佳数据边界 269
11.4 练习题:飞机设计的多目标优化 275
11.5 本章小结 275
第Ⅳ部分 特殊高斯过程模型
第12章 将高斯过程扩展到大数据集 279
12.1 在大型数据集上训练GP 280
12.1.1 设置学习任务 281
12.1.2 训练一个常规的GP 284
12.1.3 训练常规GP时面临的
问题 286
12.2 从大型数据集中自动
选择代表性点 289
12.2.1 缩小两个GP之间的差异 289
12.2.2 小批量训练模型 291
12.2.3 实现近似模型 293
12.3 通过考虑损失曲面的几何特性来实现更优的优化 299
12.4 练习题 304
12.5 本章小结 306
第13章 融合高斯过程与神经网络 307
13.1 包含结构的数据 308
13.2 在结构化数据中捕捉相似性 311
13.2.1 使用GPyTorch实现核函数 311
13.2.2 在PyTorch中处理图像 312
13.2.3 计算两幅图像的协方差 313
13.2.4 在图像数据上训练GP 315
13.3 使用神经网络处理复杂的结构化数据 318
13.3.1 为什么使用神经网络进行建模 318
13.3.2 在GPyTorch中实现组合模型 320
13.4 本章小结 327
附录A 练习题实现方案(在线提供)