时间:2024-06-04
? 在学习最优模型参数时,梯度下降并不是唯一的选择,在不知道目标函数的精确解析或不能直接计算梯度的情况下,一种无梯度随机优化算法—进化策略 将能发挥不可替代的作用。
? 本系列文章分上下两篇,从经典二元和多元进化策略,到设计巧妙的协方差自适应调整的进化策略 ,分别从算法介绍、理解和应用等方面进行整理和讨论。
? 进化策略是一种黑箱优化算法 ,诞生于进化算法 家族。进化算法是一种基于种群划分的优化算法,其灵感源于自然选择。自然选择认为具有有利于生存特性的个体可以世代生存,并将好的特性传给下一代。由于不需要使用梯度更新、利用函数的内部知识,所以进化策略适用于无梯度优化、黑盒优化和连续变量的函数优化问题等场景。
? 同神经网络梯度下降算法一样,进化策略也是最优化算法的一种,但不同的是,进化策略是一种不需要建立中间复杂函数关系的黑盒算法,通过干预来影响结果,逐步选取最优点迭代,只需定义 就可直接对目标进行参数优化。针对中等规模的参数寻优,进化策略能表现出很好的效果。对于一个优化问题,如果不能够直接对 和 定义其之间的联系,或者说他们联系很多且不好确定时,则可直接选用进化策略。
图1. 黑箱模型
? 进化策略的主要思路是通过反复迭代调整一个正态分布进行搜索,主要有以下三步:采样产生新解、计算目标函数值和更新分布参数 。在算法每次进化中,一次完整的迭代称为一代 、一个候选解称为一个个体、计算目标函数值的过程称为评估、每次迭代产生的新的候选解称为子代 、通过选择得到的用于产生子代的解称为父代 ,其中每次迭代的正态分布一般写成:
其中三个参数所起的作用为:
? 进化策略设计的核心是对上面三个参数进行调整,尤其是步长参数和协方差矩阵的调整,以达到尽可能好的搜索效果,而且这些参数对算法收敛速率有非常重要的影响。 一般地, 参数调整的基本思路是,调整参数使沿好的搜索方向进行搜索的概率增大。
图2. 正态分布采样和 2-D 标准正态分布
? 根据产生解和选择解的方式不同,进化策略可以分为如下几种类型:
? 是进化策略的一种形式,每次迭代只产生一个新解,通过与父代进行比较,较好的一个成为下一次迭代的父代,其他的则直接舍去,并相应的调整分布参数,该算法也是众多形式中比较方便有效的一种,算法流程描述如下:
? 二元 的变异强度是由一个为 的正态分布 产生所决定的,这里理解 为变异强度,通过控制分布、选取扰动影响进化强度;通过对比扰动带来的 选择成功变异的扰动,进而控制进化方向,因此能否找到最优解很大程度上取决于 。
? 这里补充下 提出的著名"",根据历史成功变异能力不断的调控 。成功的变异与所有变异的比率应该是,若比率大于,则应增加变异强度进一步搜寻最优解,否则就降低变异强度。计算公式如下,提出将因子 用于 更新规则:
? 利用最优变异强度和"",可使得 优于简单的蒙特卡洛方法,且在多元 中引入种群方法可以使 更进一步。在 中引入多个个体的方法可形成两种进化策略: 和 。
图3. 和 原理
? 是一种"加法策略“,其中 个父代通过仅使用变异来创建 个子代。由于在选择操作中同时使用了父代和子代,因此是一个 精英算法。但在某些优化场景中, 尽管保留精英是必要的,但并不能控制精英主义的程度,容易导致算法收敛于局部最优,减少继续对末知空间的探索。为了避免出现这个问题,提出了一种新的 。
? 的思路是每次迭代产生 个新解,其中较好的 个成为下一次迭代的父代,其他的直接舍去,并相应的调整分布参数。这种方法中所有解都只存活一代,避免长时间陷入某个范围,且每次只保留产生的最好解,该方法常用于理论分析。
? 二维 函数常被用于测试连续黑盒优化算法,如下为该函数值分布图和自上而下的二维图,图中较浅的区域代表的较高值,如图可知该函数存在许多局部最优值,因此优化算法的任务就是找到一组模型参数 ,使 尽可能地接近全局最大值。
图5. 二维 函数示意图
? 下面分别展示了经典 和简单遗传算法 在 函数上的探索效果,可以看到经典 除了最佳解之外,会丢掉所有其他解,这是一种“贪婪”的做法,一般只适用于简单问题,对于更复杂的问题,容易陷入局部最优解。遗传算法 则是通过跟踪一组多样化的候选解来帮助多样性,以繁衍下一代,然而在实践中,大多数精英存活种群中的解决方案会随着时间的推移,同样会收敛到一个局部最优。
图6. 和 在二维 函数上的探索效果对比
? 简单 和 的缺点是其标准差噪声参数都是固定的,有时我们希望探索更多有用的可行解范围,需要增加搜索空间的标准差,或者在接近一个良好解时,只想微调一下解决方案时,能够自动调整搜索空间大小和移动方向,因此出现了协方差自适应调整的进化策略。
? 相比于上面几种简单的集中式方法,从名字就能看出,该算法能够进行自适应的进行参数调整,最终使得产生好解的概率逐渐增大。更多关于 的基本原理、算法步骤及其在无人机和集群参数优化中的应用,将在下文进一步探讨。
[1]. Hansen, Nikolaus. "The CMA evolution strategy: A tutorial." arXiv preprint arXiv:1604.00772 (2016).
[2]. 公众号:进化策略算法(CMA-ES)理解
[3]. A Visual Guide to Evolution Strategies
[4]. The CMA Evolution Strategy
[5]. Hansen, Nikolaus, and Andreas Ostermeier. "Completely derandomized self-adaptation in evolution strategies." Evolutionary computation 9.2 (2001): 159-195.
[6]. 知乎:进化策略-简介1
[7]. CSDN:进化计算-进化策略(Evolutionary Strategies,ES)前世今生与代码共享
本文共2357字
申请文章授权请联系后台运营人员
▌公众号:西湖大学智能无人系统课题组
▌Bilibili:西湖大学智能无人系统
▌Youtube:Aerial robotics @ Westlake University
▌实验室网站:https://shiyuzhao.westlake.edu.cn
浅析智能优化算法—进化策略 (上)