《进化优化》第6章 进化策略

文章目录

  • 6.1 (1+1) 进化策略
  • 6.2 1/5规则:推导
    • 走廊问题
  • 6.3 μ+1进化策略
  • 6.4 μ+λ和(μ,λ)进化策略
  • 6.5 自身自适应进化策略
    • 协方差阵自适应CMA

6.1 (1+1) 进化策略

假设f(x)是随机向量x的函数,我们想要最大化适应度f(x).进化策略最早的算法初始化单个候选解并评价它的适应度,然后让候选解变异并评价变异后的个体的适应度.这两个候选解(父代和子代)中最好的那一个成为下一代的起点. 进化策略最初是为离散问题设计的,在离散搜索空间中采用小的变异很容易陷入局部最优值,所以后来把它改为在连续搜索空间中采用连续的变异,如算法6.1所示.

算法6.1被称为(1+1)-ES((1+1)进化策略),因为每代由1个父代和1个子代组成,并从父代和子代中选出最好的作为下一代的个体.(1+1)-ES也被称为二元进化策略,它与爬山策略非常相似,与种群规模为1的进化规划相同.下面的定理保证(1+1)-ES 最终能找到f(x)的全局最大值.
在这里插入图片描述
这个定理告诉我们,如果有足够时间,采用随机变异探索搜索空间最终能访问到整个搜索空间(在计算机的精度之内)并找到全局最优值。

在这里插入图片描述
在(1+1)-ES 算法6.1中的方差σ2是可调参数的值是一个折中.

  • σ应该足够大以使变异能够在合理的时间内到达搜索空间的每一个区域.
  • σ应该足够小以便找到在用户所需分辨率之内的最优解.

在进化策略向前推进时减小σ也许是适当的.在进化策略刚开始时,较大的σ值会允许进化策略进行粗粒度的搜索以靠近最优解.
在进化策略快要结束时,较小的σ值会让进化策略微调它的候选解并以更小的分辨率收敛到最优解.

算法6.1中的变异称为各向同性,因为x0的每个元素的变异方差相同,实际上,可以实施下面的非各向同性变异:
在这里插入图片描述

20%的变异能改进适应度函数f(x),如果变异成功率高于20%,则变异过小,带来的改进也小,收敛时间变长;如果变异成功率低于20%,则变异过大,带来的改进虽大但并不会经常发生,这样也会让收敛时间变长。

在(1+1)-ES 中,如果成功的变异与总变异的比值小于1/5,则应该减小标准差σ.如果这个比值大于1/5,则应该增大标准差.

让σ减小或增大的因子:
在这里插入图片描述
自适应(1+1)-ES需要定义移动窗口长度G.我们想让G足够大以便得到更准确的变异成功率,但G又不要大到令σ的自适应反应迟缓,建议如下:
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

6.2 1/5规则:推导

走廊问题

假设一个n维最小化问题,其费用函数为f(x),其中x =[x1, x2,… ,xn] .本节聚焦在走廊问题上,它的域为
在这里插入图片描述
走廊问题的费用函数为:
在这里插入图片描述

进化策略中个体x0根据x1<–x0+r变异,这里r是n元随机向量,对于j属于[1,n],我们用x0j表示向量x0的第j个元素,x1j表示向量x1的第j个元素。

x0的每个元素的变异量从均值为零方差为σ2的高斯分布中选择,因此x1j的概率密度函数可以写成:
在这里插入图片描述

6.3 μ+1进化策略

最早对(1+1)-ES的一般化是(u+1)-ES.在(μ+1)-ES 中,每代用μ个父代,这里是由用户定义的参数.每个父代由相应的σ向量控制其变异的大小.父代组合形成单个子代,然后让子代变异.在μ个父代和这个子代中选出最好的μ个个体成为下一代的μ个父代.算法6.3是对它的总结.由于(μ+1)-ES 保留了每一代最好的个体,它奉行精英主义;也就是说,从一代到下一代,最好的个体绝不会变差.(μ+1)-ES也被称为稳态进化策略。由于在每一代的最后,从整个种群中只去掉一个个体,所以可以称这个策略为最差灭绝,它是适者生存的另一面。

在这里插入图片描述
重组的方式有很多:

  • 离散性交
    在这里插入图片描述

  • 中间性交
    在这里插入图片描述

  • 全局交叉
    在这里插入图片描述

  • 中间全局交叉
    在这里插入图片描述

6.4 μ+λ和(μ,λ)进化策略

接下来对进化策略的一般化是(μ+λ)-ES.在(μ+λ)-ES 中,种群规模为u,每一代生成λ个子代.在生成子代之后,父代和子代总共有(μ+λ)个个体.在这些个体中选出最好的μ个作为下一代的父代.

另一个常用的进化策略是(μ,λ)-ES.在(μ,λ)-ES 中,从入个子代中选出最好μ个个体作为下一代的父代.换言之,μ个父代中无一生存到下一代;而是从λ个子代选出μ个个体的子集作为下一代的父代.在(μ,λ)-ES 中,我们需要保证所选的λ≥ μ.前一代的父代决不能生存到下一代,每一个个体的生命限定为一代.

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

6.5 自身自适应进化策略

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

协方差阵自适应CMA

CMA-ES的目标是尽可能好地用进化策略变异的分布与目标函数轮廓匹配。由此得到的匹配只有当目标函数为二次函数时会很完美,不过很多目标函数在它们的最优值附近都可以用二次函数近似。

CMA-ES的缺点在于复杂的自适应性策略以及复杂的可调参数设置。因此介绍CMA-ES的一个简化版本,它被称为协方差阵自身自适应进化策略CMSA-ES:在进化过程中学习搜索空间的形状,并调整变异方差。

学习参数:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

进化策略与遗传算法类似,但遗传算法最初是通过将候选解编码成位串来进化,而进化策略则总是在连续参数上操作.尽管遗传算法经常被用来处理连续参数,这两个算法还是存在哲学上的差别:进化策略的操作往往是在与问题陈述接近的表述形式上,而遗传算法的操作却往往在与问题最初陈述很不同的表示形式上.两个算法之间的另一个差别在于遗传算法强调重组,而进化策略强调变异.对于具体的优化问题,我们可以根据这些差别选择合适的算法.如果对于一个特别的问题,探索比开发更重要,我们可能得用进化策略.而如果开发更重要,就可能要用遗传算法.

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/131323.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【移远QuecPython】EC800M物联网开发板调用网络API(使用SIM卡联网并调用高德地图API的定位坐标转换)

【移远QuecPython】EC800M物联网开发板调用网络API&#xff08;使用SIM卡联网并调用高德地图API的定位坐标转换&#xff09; 高德API使用方法&#xff1a; 文章目录 API相关配置SIM卡联网网络操作API调用 高德地图API产品介绍适用场景使用限制使用说明坐标转换 附录&#xff…

第12章_MySQL数据类型精讲

文章目录 1 MySQL中的数据类型2 整数类型2.1 类型介绍2.2 可选属性2.2.1 M2.2.2 UNSIGNED2.2.3 ZEROFILL 2.3 适用场景2.4 如何选择演示代码 3 浮点类型3.1 类型介绍 本章的内容测试建议使用 MySQL5.7进行测试。3.2 数据精度说明3.3 精度误差说明 4 定点数类型4.1 类型介绍4.2 …

哈希表----数据结构

引入 如果你是一个队伍的队长&#xff0c;现在有 24 个队员&#xff0c;需要将他们分成 6 组&#xff0c;你会怎么分&#xff1f;其实有一种方法是让所有人排成一排&#xff0c;然后从队头开始报数&#xff0c;报的数字就是编号。当所有人都报完数后&#xff0c;这 24 人也被分…

D-Link账号密码泄露

构造payload&#xff1a; /getcfg.php SERVICESDEVICE.ACCOUNT&attackture%0D%0AAUTHORIZED_GROUP%3D1漏洞证明&#xff1a; 文笔生疏&#xff0c;措辞浅薄&#xff0c;望各位大佬不吝赐教&#xff0c;万分感谢。 免责声明&#xff1a;由于传播或利用此文所提供的信息、技…

IDEA集成Docker插件打包服务镜像与运行【附Docker命令汇总】

Docker官网 Docker官网&#xff1a;https://www.docker.com/ Docker Hub官网&#xff1a;http://hub.docker.com/ 什么是Docker Docker 是一个开源的容器引擎&#xff0c;可以轻松的为任何应用创建一个轻量级的、可移植的、自给自足的容器。开发者和系统管理员在笔记本上编…

ELK搭建以及使用教程(多pipiline)

1、环境准备 服务器&#xff1a;Centos7 Jdk版本&#xff1a;1.8 Es版本&#xff1a;7.12.1 kibana版本&#xff1a;7.12.1 logstash版本:7.12.1 IP地址安装软件192.168.50.211Es&#xff0c;Kibana&#xff0c;logstash 2、安装docker 安装步骤参考&#xff1a;https:…

在Node.js中,什么是中间件(middleware)?它们的作用是什么?

聚沙成塔每天进步一点点 ⭐ 专栏简介 前端入门之旅&#xff1a;探索Web开发的奇妙世界 欢迎来到前端入门之旅&#xff01;感兴趣的可以订阅本专栏哦&#xff01;这个专栏是为那些对Web开发感兴趣、刚刚踏入前端领域的朋友们量身打造的。无论你是完全的新手还是有一些基础的开发…

【音视频 | opus】opus编解码库(opus-1.4)详细介绍以及使用——附带解码示例代码

&#x1f601;博客主页&#x1f601;&#xff1a;&#x1f680;https://blog.csdn.net/wkd_007&#x1f680; &#x1f911;博客内容&#x1f911;&#xff1a;&#x1f36d;嵌入式开发、Linux、C语言、C、数据结构、音视频&#x1f36d; &#x1f923;本文内容&#x1f923;&a…

第G7周:Semi-Supervised GAN 理论与实战

&#x1f368; 本文为&#x1f517;365天深度学习训练营 中的学习记录博客 &#x1f366; 参考文章&#xff1a;365天深度学习训练营-第G7周&#xff1a;Semi-Supervised GAN 理论与实战&#xff08;训练营内部成员可读&#xff09; &#x1f356; 原作者&#xff1a;K同学啊|接…

Centralized Feature Pyramid for Object Detection解读

Centralized Feature Pyramid for Object Detection 问题 主流的特征金字塔集中于层间特征交互&#xff0c;而忽略了层内特征规则。尽管一些方法试图在注意力机制或视觉变换器的帮助下学习紧凑的层内特征表示&#xff0c;但它们忽略了对密集预测任务非常重要的被忽略的角点区…

【论文精读】PlanT: Explainable Planning Transformers via Object-Level Representations

1 基本信息 院校&#xff1a;德国的图宾根大学 网站&#xff1a;https://www.katrinrenz.de/plant 2 论文背景 2.1 现有问题 现在的基于学习的方法使用高精地图和BEV&#xff0c;认为准确的&#xff08;达到像素级的pixel-level&#xff09;场景理解是鲁棒的输出的关键。re…

Java自学第1课:安装JDK+Eclipse

1 引言 在学习前&#xff0c;我想说一句&#xff0c;那就是为什么要学习Java。 每个人的出发点都不同&#xff0c;对于做信息化的工程技术人员来说&#xff0c;java不懂&#xff0c;就没法干项目。 尽管有c和matlab等基础&#xff0c;但java看起来与这些语言都不太一样。 做…

基于单片机的智能饮水机系统

收藏和点赞&#xff0c;您的关注是我创作的动力 文章目录 概要 一、系统设计方案分析2.1 设计功能及性能分析2.2设计方案分析 二、系统的硬件设计3.1 系统设计框图系统软件设计4.1 总体介绍原理图 四、 结论 概要 现在很多学校以及家庭使用的饮水机的功能都是比较单一的&#…

MySQL InnoDB数据存储结构

1. 数据库的存储结构&#xff1a;页 索引结构给我们提供了高效的索引方式&#xff0c;不过索引信息以及数据记录都是保存在文件上的&#xff0c;确切说是存储在页结构中。另一方面&#xff0c;索引是在存储引擎中实现的&#xff0c;MySQL服务器上的存储引擎负责对表中数据的读…

分享68个工作总结PPT,总有一款适合您

分享68个工作总结PPT&#xff0c;总有一款适合您 PPT下载链接&#xff1a;https://pan.baidu.com/s/1juus0gmesBFxJ-5KZgSMdQ?pwd8888 提取码&#xff1a;8888 Python采集代码下载链接&#xff1a;采集代码.zip - 蓝奏云 学习知识费力气&#xff0c;收集整理更不易。知识付…

C语言----每日五道选择题Day1

1.第一题 1、指出下列代码的缺陷&#xff08; &#xff09;【多选】 float f[10]; // 假设这里有对f进行初始化的代码 for(int i 0; i < 10;) {if(f[i] 0)break; } A: for(int i 0; i < 10;)这一行写错了 B: f是float型数据直接做相等判断有风险 C: f[i]应该是…

[MICROSAR Adaptive] --- autosar官方文档阅读建议

目前互联网上没有太多的 Adaptive AUTOSAR 的学习资料,官方文档是一个很不错的途径。看过官方文档才发现,目前很多关于 Adaptive AUTOSAR 的文章都是官方文档的简化翻译,不如直接看官方文档更全面深入。 1 Adaptive AUTOSAR 文档官方下载地址 https://www.autosar.org/sta…

微信小程序:实现多个按钮提交表单

效果 核心步骤 通过data-type给不同按钮进行设置&#xff0c;便于很好的区分不同按钮执行不同功能 data-type"" 完整代码 wxml <form action"" bindsubmit"formSubmit"><button style"margin-bottom:5%" data-type"pa…

[黑马程序员SpringBoot2]——运维实用篇

目录&#xff1a; 工程打包与运行打包插件Boot工程快速启动&#xff08;Linux版本&#xff09;临时属性配置文件4级分类自定义配置文件多环境开发(yaml版)多环境开发多文件版&#xff08;yaml版&#xff09;多环境开发多文件版&#xff08;properties版&#xff09;多环境分组…

难题来了:分库分表后,查询太慢了,如何优化?

说在前面&#xff1a; 尼恩社群中&#xff0c;很多小伙伴反馈&#xff0c; Sharding-JDBC 分页查询的速度超级慢&#xff0c; 怎么处理&#xff1f; 反馈这个问题的小伙伴&#xff0c;很多很多。 而且这个问题&#xff0c;也是面试的核心难题。前段时间&#xff0c;有小伙伴…