本篇博客先介绍一些 naive 的方法来解决 BBO 问题,这样可以让大家了解到为什么DFO在实际中,如此受到欢迎。

两个缩写:
derivative free optimization (DFO) :无导数优化
black-box optimization (BBO) :黑箱优化
两者的两点区别:
(1)对于某些优化问题,可能存在导数,但获取或估计导数在计算上可能会很难。此类问题最好通过DFO解决,而不是BBO解决;
(2)BBO还包括研究用于解决问题的启发式方法或特用的方法;

1. ES算法(Exhaustive Search)

优化问题:
min{f(x),x∈Ω}\begin{aligned} min\{f(x),x\in \Omega\} \end{aligned} min{f(x),x∈Ω}​
即:优化目标是f(x)f(x)f(x),约束条件是x∈Ωx\in\Omegax∈Ω。设SSS是闭集Ω\OmegaΩ的可数紧集,则ES算法求解最优解的算法流程为:

看完流程可知,上述算法的实质就是“遍历”。。。。。

遍历所有解寻找最大的那个,因此,叫做 Exhaustive Search,而此时的优化求解的确没有用到导数,满足了DFO的要求。文中假设ES算法可以无休止地运行下去,故该算法的收敛性可得到证明,这里只给出收敛性成立的定理,不给出证明步骤,定理如下:

顺便提一句,在RnR^nRn中寻找一个可数的集合SSS,那集合SSS的规模可不小,准确地说是无穷个元素(因为他有可数个元素),也由此可知是没有办法在有限次叠代后终止ES算法的,因此ES算法不具备实用性,只存在于理论中。

2. GS算法( Grid Search)

上一节的ES算法对Ω\OmegaΩ没有要求,但当Ω\OmegaΩ是有界的集合时,则可使用本节的GE算法。

该算法的算法流程是:

看完流程可知,上述算法的实质就是“抽样”的思想,即:等距切分集合Ω\OmegaΩ为ppp份后,再遍历。。。。。。

这样一来相比ES而言,至少是可行的,不再只是理论上可行而实际上无法求解的了,但是GS算法仍然需要庞大的计算搜索工作,实际中虽然可行,但是难以采用。最后,GS算法的收敛性证明及收敛性定理都省略,可参考原书。

3. CS算法(Coordinate Search)

CS算法是GS的改进,该算法的思想略有类似于梯度下降,其算法流程如下:

如果提供了约束集ΩΩΩ,则只要违反该约束,就可以通过将目标函数值设置为+∞+\infty+∞再应用CS算法即可。

下图为CS算法再二维平面搜索过程的叠代实例,初始点为(2,2),初始步长为1,搜索方向为四个方向。第一次叠代搜索成功,寻找并得到了比当前值小的一组解。第二次叠代搜索失败,因此,步长减半,继续搜索。

对于n维问题,算法的每次迭代都精确地探索2n个方向。但是叠代需要有一个判定迭代终止的条件,这里的条件可以是步长小于某数值,或者叠代超过N次,或运行到明天早上8点停止等等。

说明:
(1)CS算法得到的是局部最优解,GS算法得到的是全局最优解;
(2)CS算法的收敛性问题:

(3)(待确定?) 根据上述收敛性可知,若目标函数是不可微函数或f(x;d)≥0f(x;d)\geq0f(x;d)≥0时(尤其是是凸函数时,则任意点处都≥0\geq0≥0),此时CS算法可能会失败;

4. CS算法初始点的选取

可采用“拉丁超立方抽样(Latin hypercube sampling,LHS)”的方式,选取多组初始点。在统计抽样中,拉丁方阵是指每行、每列仅包含一个样本的方阵。拉丁超立方则是拉丁方阵在多维中的推广,每个与轴垂直的超平面最多含有一个样本。假设有N个变量(维度),可以将每个变量分为M个概率相同的区间。此时,可以选取M个满足拉丁超立方条件的样本点。需要注意的是,拉丁超立方抽样要求每个变量的分区数量M相同。不过,该方法并不要求当变量增加时样本数M同样增加。

LHS算法流程如下:

抽取案例如下图:

LHS的方式可以作为许多算法选取初始点的方案。

5. 求解BBO问题的高水平算法

下表列出了后文待介绍的的高水平BBO算法:

(遗传算法等启发式类型的,我们不予介绍了)

black-box优化——第一篇:基础BBO算法相关推荐

  1. Webpack系列-第一篇基础杂记

    系列文章 Webpack系列-第一篇基础杂记 Webpack系列-第二篇插件机制杂记 Webpack系列-第三篇流程杂记 前言 公司的前端项目基本都是用Webpack来做工程化的,而Webpack虽然 ...

  2. 重温《数据库系统概论》【第一篇 基础篇】【第5章 数据库完整性】

    本篇内容为中国人民大学教授王珊.萨师煊的<数据库系统概论>自学课程的复习笔记,学习视频源于小破站(传送门),对应视频P32-P36,属教材"[第一篇 基础篇]"的&qu ...

  3. 重温《数据库系统概论》【第一篇 基础篇】【第4章 数据库安全性】

    本篇内容为中国人民大学教授王珊.萨师煊的<数据库系统概论>自学课程的复习笔记,学习视频源于小破站(传送门),对应视频P28-P31,属教材"[第一篇 基础篇]"的&qu ...

  4. 重温《数据库系统概论》【第一篇 基础篇】【第3章 关系数据库标准语言SQL】

    本篇内容为中国人民大学教授王珊.萨师煊的<数据库系统概论>自学课程的复习笔记,学习视频源于小破站(传送门),对应视频P16-P27,属教材"[第一篇 基础篇]"的&qu ...

  5. 重温《数据库系统概论》【第一篇 基础篇】【第2章 关系数据库】

    本篇内容为中国人民大学教授王珊.萨师煊的<数据库系统概论>自学课程的复习笔记,学习视频源于小破站(传送门),对应视频P9-P15,属教材"[第一篇 基础篇]"的&quo ...

  6. 重温《数据库系统概论》【第一篇 基础篇】【第1章 绪论】

    时隔两年,重温数据库,再次学习人大教授王珊.萨师煊的<数据库系统概论>,别有一番滋味在心头,或许这就是软件"不归路"上的感悟吧,又一次打开课本,记忆犹新,在已经学习过大 ...

  7. nginx对listen端口的优化 -- 第一篇

    微信公众号:郑尔多斯 关注可了解更多的Nginx知识.任何问题或建议,请公众号留言; 关注公众号,有趣有内涵的文章第一时间送达! listen端口优化 本篇文章主要是分析配置文件解析完毕之后对list ...

  8. zabbix监控第一篇---基础使用

    zabbix监控系统第一篇---安装和简单使用 在本文中主要讲一下目前比较流行的zabbix监控系统的安装和使用,实验以最新的zabbix版本为准. 1. 监控系统简介: 业界常用的监控系统主要包括N ...

  9. 【深入剖析Tomcat笔记】第一篇 基础知识储备

    基础知识储备 最近突然在想,做了这么久的WEB相关,像tomcat.apache这些服务器究竟是什么东西,恰好碰到<How Tomcat Works>(中文版<深入剖析Tomcat& ...

最新文章

  1. YOLOv5x6模型来了! 同样支持CPU上ONNX部署与推理
  2. Linux卸载蓝牙模块,Linux 下调试低功耗蓝牙的笔记
  3. 如何避免无意义的区块链项目
  4. jsp中获取list长度
  5. iRobot新款OS能让军用机器人上战场
  6. 神经网络-Neural Network 简介
  7. 冲击波病毒内幕点滴(4)
  8. 使用预计算实时全局光照优化照明-项目介绍
  9. 惠威T200B刷机 Q群
  10. Android相同包名不同签名的apk安装失败问题分析
  11. c4d导出obj格式有破面_c4d导出obj格式错误怎么办 c4d导出obj格式教程
  12. 【第五课】ArcCatalog和ArcToolbox初识
  13. excel相乘再相加_excel现乘积再求和如何自动生成
  14. 33.什么是wildcard(通配符)查询?如何进行通配符查询?如何使用java进行wildcard (通配符)查询?嘻哈的简写笔记——Elastic Search
  15. 国家开放大学2021春1130卫生法学题目
  16. 王思聪 远程操控女主播“翻床”
  17. python学习实验报告(第一周)
  18. try{}里有一个return语句,那么紧跟在这个try后的finally{}里的...
  19. 一行能装逼的JavaScript代码的延伸
  20. 51单片机之蜂鸣器为什么不响

热门文章

  1. bzoj1069 [SCOI2007]最大土地面积 凸包+单调性
  2. 【英语学习】【Level 07】U06 First Time L1 My very first trip
  3. 【英语学习】【WOTD】yen 释义/词源/示例
  4. 【英语学习】【Daily English】U07 Restaurant L01 What's a seafood paella, though?
  5. eval() python_python的eval和exec的区别与联系
  6. Lua: 给 Redis 用户的入门指导
  7. android bitmap to base64_Android基础(11)—你需要知道的内存知识
  8. iOS不同版本适配问题
  9. Linux 相关小技巧
  10. 期权、RSU的区别与行权事宜