提出了一种基于强化学习的算子选择方法。通过将决策变量视为状态,将候选算子视为行动,将适应度改进视为奖励,将种群进化视为环境,智能体使用深度神经网络学习策略,估计给定状态下每个行动的Q值。Q值表示算子在未来而不是过去所带来的累积适应度改善,因此,未来几代有望产生更好的后代解决方案
通过将所提出的
算子选择方法嵌入到具有动态资源分配的基于分解的MOEA中,开发了MOEA
从以下四个部分进行汇报
首先是文章背景
进化算法是处理多目标优化问题的最有效技术之一
现有进化算法中,算子定义了基于父代生成子代的规则
比如:遗传算法通过交叉和变异算子生成后代,其中交叉算子提供了良好的探索能力,而变异算子可以帮助解逃离局部最优
但是不存在在所有MOP上优于任何其他算子的算子
这意味着在解决特定MOP时要有针对性的选择算子
这种选择过程对于解决许多计算成本高的现实问题是不切实际的
所以就需要自适应选择算子
自适应算子选择在复杂优化问题上的优势很明显,但是也面临着探索与开发的两难境地
在求解MOP时,因为每个解都有多个目标值,应该同时考虑收敛性和多样性。
文中就提出了提出一种基于强化学习的算子选择方法: 将决策变量视为状态,将候选算子视为行动,将适应度改进视为奖励,将种群进化视为环境,agent使用深度神经网络学习策略,估计给定状态下每个行动的Q值。
通过将所提出的算子选择方法嵌入到具有动态资源分配的基于分解的MOEA中,agent迭代地更新深度神经网络以指导算子的选择。所提出的MOEA表现出高度通用性,实现了比现存MOEA更好的性能。
接下来介绍一下文中的基本概念
为了解决各种未知的MOP,之前的研究已经提出了一些自适应算子选择方法
现有的自适应算子选择本质上是多臂老虎机问题
在不知道从每个臂获得的奖励的概率分布的情况下,使多个臂上固定数量的游戏的总奖励最大化
主要用到两种策略,信用分配策略和算子选择策略,其中前者根据算子最近生成的子代解案带来的适应度改进来奖励算子,后者根据所有算子的奖励来决定选择下一个算子
对于信用分配策略来说,常用的是根据子代解带来的目标值的提高来奖励算子
为了跟踪搜索过程的动态,建议使用滑动窗口保存最近生成的子代解带来的改进
需要注意的是,因为更关注少但大的改进,每个算子的奖励被设置为其滑动窗口最大值而非平均值
对于算子选择策略来说,如果直接用贪心策略,会陷入局部最优的状况,现在也有一些好的选择策略,轮盘赌、置信上限算法等
也有遇到一些问题,由于试验次数有限和算子的随机性,信用分配策略可能会不准确地奖励算子;
算子选择策略根据其历史回报来选择算子,但在前几代表现良好的算子在未来几代可能无效。
所于使用深度强化学习来辅助信用分配和算子选择
与进化计算为静态问题寻找最优解相比,强化学习旨在为有限或无限数量的动态问题找到最优解。本文中将其应用于MOEA的算子选择。
学习在每个状态下采取行动的策略π,其中该行动使当前状态下的预期累积奖励最大化:在每次迭代t时,angent根据策略在当前状态st采取动作at,然后环境接收该动作,生成奖励rt,并转移到下一状态st+1。
强化学习目前包括基于策略的方法和基于价值的方法。
本文强化学习使用的算法是Q-Learning算法
使用深度神经网络来近似具有连续状态空间的动作值函数。
(深度Q网络)DQN将获得的元组存储在经验重放池中以形成训练集
神经网络使用损失的梯度下降进行训练
基于q-learing的dqn是用以下两个公式进行训练
左边是评估网络对st状态做出的估计
td target 是st状态得到的奖励和目标网络对st+1做出的估计
这个差值就是td error
对损失的平方作梯度下降来降低损失,训练模型
本文是把基于强化学习的算子选择方法嵌入到具有动态资源分配的基于分解的MOEA中
也就是这个MOEA/DDQN算法
这是MOEA/DDQN算法的流程图,可以看到
每次进行种群迭代,强化学习agent都会和MOEA进行两次交互
在生成子代解之前,agent根据神经网络为MOEA选择一个算子(即动作);生成子代解后,MOEA将适应度改进(即奖励)发送给agent,用于训练神经网络。
这边是算法伪码
首先随机初始化种群
生成相同数量的均匀分布权重向量
确定每个权重向量的邻域
并将它们的效用设置为1
初始化变量z∗
,Q(深度学习)、 R(奖励队列)、T(经验回放池)
选出M个极值解和基于效用选择的10元锦标赛选出的|P|/5−M个 个体组成
mating pool中的每个解p被视为主要亲本,从p的邻居或整个种群中随机选择的解被视为其他亲本
算子选择策略选出算子
使用算子生成子代
子代解更新理想点
这边就是moead中替换p的邻域解的过程,子解最多可以替换邻域中的nr个解
替换完成进行奖励分配
把zhuang态转移添加到经验回放池中
进行神经网络的训练
迭代超过50次更新pi gengxin
接下来讲一下算子选择策略,和信用分配策略
在进行一次种群迭代后,可以进行对算子奖励的分配
将子解x与父解邻域中的所有解进行比较,并通过公式计算其对邻域y的适应度改进
邻域适应度改进NFIx被进一步计算为被 子解替换的至多nr个解的适应度改进之和。
将由算子及其带来的邻域适应度改进NFIx入队
算子的奖励被设置为其队列中的最大NFI值
其基本思想是,罕见但大的改进比频繁而小的改进更重要
是用神经网络来选择算子。在基于父解生成子解之前,每个算子的Q值由输入状态的神经网络计算,并通过轮盘选择根据它们的Q值选择一个算子。
值得注意的是,一旦算子不存在于经验回访池T中,算子将被强制选择,而不是轮盘选择。
也就是说用dqn选择算子之后,还需要检查是否有其他算子从没被选择过,如果存在这样的算子就直接选择该算子
为了验证所提出的MOEA/DDQN的性能,将其与几种经典或最新MOEA进行了比较
所提出的方法的框架与比较的MOEA相同,而MOEA/D-DQN的主要贡献在于基于强化学习的算子选择方法。
实验涉及四个测试套件,共有31个基准MOP。
采用取自UCI机器学习知识库[71]的三个数据集进行训练,得到三个MOPs
采用反向代际距离(IGD)[72]来评估基准MOP的所获得的解,采用超体积[73]来评估所获得的神经网络训练解决方案。
总的来说,MOEA/D-DQN在34个MOP中的18个上表现出最佳性能,在不同测试套件上的性能达到了平衡,它明显优于大多数MOPs上的四个MOEA。
最后研究了MOEA/D中使用的邻域大小对MOEA/D-DQN性能的影响。可以观察到,当邻域大小大于15时,获得的IGD值非常相似,这意味着MOEA/DDQN的性能对相对较大的邻域大小不敏感,实验中将邻域大小设置为20是合理的。
实验设置:
比较的MOEA的所有参数都是按照其原始论文中的建议设置的,实验结果来自PlatEMO
所比较的算法详细的参数设置如下表
对于MOEA/D-DQN中的神经网络,采用了七层全连接神经网络,其中输入层大小为D+M
(决策变量数量和目标数量之和)
输出层大小与候选算子的数量相同
五个隐藏层的大小分别为128、256、128、64和32
神经网络的训练,epoch学习率为0.01,其中R的大小与种群大小相同,T的大小为512。
R是? T是经验回放池
batch size:16
实验涉及四个测试套件,共有31个基准MOP。
D M
UF/ZDT: 30 2
ZDT4/ZDT6: 10 2
UF8-UF10 30 3
DTLZ/WFG * 3
DTLZ2-DTLZ6/WFG1-WFG9 12 3
DTLZ1 7
DTLZ7 22
神经网络训练数据集从UCI机器学习库[71]中提取的用于训练
采用反向代际距离(IGD)[72]来评估基准MOP的所获得的解,采用超体积[73]来评估所获得的神经网络训练解决方案。