基于强化学习的人工免疫算法参数优化
2020-12-28张亚飞李明智
王 洁,张亚飞,李明智
(1.国网新疆电力有限公司电力科学研究院,乌鲁木齐 830011;2.新疆农业大学,乌鲁木齐 830052)
引言
智能汇控小室是智能变电站重要的室外设备,汇集着多种种类、功能不同的高度复杂的自动装置,装置尺寸不一,层次交叉,温湿度变化较大,存在非线性、复杂程度高、参数优化难等问题。如何实现有限空间的最优设计,实现恒温变化,减少电能损耗,关系着汇控小室在变电站这种特殊环境下智能化发展的速度,而空间优化首先要解决的问题是系统参数的优化。在解决各种装置中实际复杂系统参数优化问题中,常伴有多个局部最优解或全局最优解,归根结底该类问题为多峰函数优化问题。
在寻找全局最优解的方法中,常用的算法有人工蜂群算法[1]、小生境遗传算法[2]、小生境人工鱼群算法[3]、基于小生境的粒子群算法[4]、改进的遗传算法等[5-8],在解决多峰函数寻优方面取得了较好的效果,但这些算法局部搜索能力弱,很难获取更多的峰值点,易陷入局部最优解。基于人工免疫算法(AIA)的优化方法具有自组织、自适应、自学习的特性,且鲁棒性高、易于并行,广泛应用于多峰函数的寻优。朱葛俊[9]提出一种基于人工免疫的改进蚁群优化算法,有效解决了多峰函数寻优易陷入局部最优问题,且具有很高的迭代寻有效率;汪桂金[10]采用多种群人工免疫算法对多峰函数进行优化,通过多个独立抗体种群经过免疫获得最佳抗体,较人工免疫算法具有更高的寻优精度;何庆[11]提出一种基于自适应免疫粒子群算法,采用种群粒子亲和度和浓度群自适应调整搜索例子的速度和方向,具有较好的全局收敛性和优化性能;程林辉[12]提出一种并行免疫遗传算法,通过免疫记忆库记录最优解,获得较好的收敛性;吴建辉[13]提出一种基于圆内衍生变异的免疫双向蛙跳算法,寻优精度和搜索到的极值点数目均有明显提高;胡博[14]提出基于均匀设计的免疫克隆多峰函数优化,该算法的寻优能力较强。虽然采用人工免疫算法对多峰函数寻优有很大优势,但在解决参数整定问题时却显得较为困难。与此同时,在普通的Q-learning中,当状态和动作空间离散且维数不高时,可使用Q-Table储存每个状态动作的Q值,而当状态和动作空间为连续高维时,使用Q-Table不能满足要求。
为解决此类问题,本研究提出对高维Q值采用深度学习的拟合方式,并利用DQN对人工免疫算法变异、交叉算子进行参数优化工作的算法。
1 AIA多峰函数寻优算法
AIA最早是模拟生物的免疫机制过程而产生的一种优化算法,经不断改进而广泛用于实际工程中车间作业调度、机器人路径优化、机械空间优化、医学图像识别、函数优化等方面。AIA优化过程类似于遗传算法(GA),要经历选择、交叉、变异过程,在接种疫苗的作用下,免疫选择免疫算子。较GA算法不同的是AIA算法具有记忆功能,可保存优质抗体,加快收敛速度从而获得最优解。
1.1 AIA实现基本步骤
在实际的应用中,根据免疫系统机制和原理的不同进行模拟,AIA大致可分为一般免疫算法、否定选择算法、克隆选择算法和混合免疫算法4种,基本计算步骤如下:(1)抗原识别。将根据算法优化实际情况确立目标函数,并设定相关参数、亲和度函数,即免疫系统确认抗原的入侵;(2)产生初始抗体。随机产生抗体群,清除曾经出现的抗原,从最优解数据库当中选择部分抗体;(3)适应度值计算。对选择的抗体进行适应度值计算,即计算抗体和抗原的亲和度并进行排序;(4)免疫处理。对当前种群进行免疫处理得到新种群,亲和度较低的抗体被变异后抗体取代,亲和度高的抗体将被保留;(5)产生抗体。通过交叉算子与变异算子产生新一代抗体;(6)终止记忆细胞的迭代。当迭代至设置阈值时结束整个过程。
在AIA流程过程中,主要是解决迭代参数如何确定的问题。AIA作为一种改进的智能算法,在求解抗体过程中通过不断交叉与变异过程增加了抗体的多样性,从而增加了全局的搜索能力,该过程中主要求解抗体浓度与抗体适应度值。
1.2 AIA重要算子
抗原与抗体亲和度是用来模拟免疫应答过程中抗体与抗原特异性的结合程度,与遗传算法中的适应度相似,根据要解决问题的特征设计合适的函数。亲和度评价算子通常用函数aff(x)表示,一般的抗体x和抗原间的亲和度可定义为:
式中:fitness为根据问题特征设计的目标问题(抗原)和可行解(抗体)之间的适应度函数,也是为了方便处理而选择的变形函数。对于抗体与抗体间亲和度的计算基于距离的方式可表示为:
式中:ai,k和bi,k为抗体ai和bi的k维,L为抗体编码的总维数。
对于亲和度高的抗体,随着群体更新抗体浓度会逐渐增大,非常影响抗体多样性的产生。为克服此类缺陷,需对抗体浓度进行调节,实现降低浓度高的抗体被选择的概率,增加浓度低的抗体的选择机会。有关抗体浓度Cv定义如下:
式中:n为种群规模,aff(ai,bj)为i和j两抗体间的亲和度。
2 DQN-AIA参数优化设计
2.1 DQN简述
DNQ的是一种基于价值的深度强化学习,其本质为Q Learning算法,主要功能为求解最优策略的Q值。Q Learning算法源于游戏策略,目的是为了获得更高的奖励,通过移动按键的方向和执行相应操作来获得分值,其中按键作为一种状态,执行动作来获得最大的未来奖励,游戏的整个过程可以描述为状态、动作、奖励的集合,如式4所示。
式中:si表示状态,ai表示执行动作,ri+1为执行完动作后的奖励,最终以sn结束。si+1的概率取决于现在的状态si和动作ai。折扣未来奖励表达式如式5所示。
式中,a为贴现因子,其值范围(0,1)。折扣未来奖励在时间t的数值可以根据时间在t+1时简化,如式6所示。
在Q Learning中,需定义一个Q(s,a)函数,用来表示在状态s下执行a动作获得的最好得分,如式7所示。
在DQN中,可将神经网络作为Q函数,游戏屏幕作为状态,结合每个动作输出Q的值,当神经网络结束后,可获得所有的Q值,并得出最优解。基于DQN思想,将x与y的值作为状态,执行动作为上下左右移动,奖励则为Q值,将其应用于多峰函数参数优化过程,提出DQN-AIA设计思想。
2.2 DQN-AIA设计
结合DNQ的思想,对AIA的交叉算子参数与变异算子参数进行优化。优化设计思路是将深度学习的状态输入作为人工免疫算法的变异算子与交叉算子参数,从而获取Q的值,计算如式8所示。
多峰函数包含x与y两个变量,利用人工免疫算法寻优将x与y的值不断迭代多峰函数中来获取峰值,利用DQN深化学习优化,根据x与y的上下左右移动获取[x,y]的输出值,通过寻优从而拟合多峰函数的极值。DQN-AIA优化算法的设计步骤如下:(1)参数传递。在AIA的基础上,设置变量x与y初始值及步长,即设置x与y在多种组合方式下的初始值及步长,根据DQN神经网络的状态作为输入参数不断发送至AIA算法;(2)抗体更新。AIA接收到DQN的状态参数,获得了交叉算子参数和变异算子参数,使其不断循环在AIA步骤的(5)-(6);(3)获得Q值。通过连续的迭代,DQN可获得若干奖励值,奖励值描绘了多峰函数极值分布情况或趋势。当迭代终止,绘制出DQN的Q值,即可模拟出多峰函数的最佳极值情况。
3 仿真试验及分析
本研究模拟DQN-AIA系统参数优化软件有PyCharm2018和Matlab2017A,利用PyCharm2018模拟数据传输服务端,在Matlab2017A中模拟数据接收客户端,并通过状态参数传递与Q值的不断更新实现DQN-AIA拟合,得出最大Q值。为验证结果,本次仿真采用多峰函数,其表达式如式9所示。
通过多峰函数的式(9)仿真如图1所示,仿真结果不仅受正弦函数与余弦函数约束,同时还受到x与y值的约束,且由于函数本身存在正负变换的性质,使得函数存在多个峰值。式(9)中,若交叉算子参数取0.6,变异算子参数取0.8时,有最高极值为3.18;采用人工免疫算法调参进行模拟多峰函数的极值时,缩小x与y的取值范围,设置初始值为(0.2∶0.1∶0.2)。与此同时,种群规模设置为50,记忆容量为10个,迭代次数为30次,多样性评价参数为0.95,相似性评价参数为0.1,交叉概率为0.5,变异概率为1。利用人工免疫算法进行多峰函数寻优仿真结果如图2所示。
为获得较好的结果,采用10组人工免疫散发进行多峰函数优化结果平均值来获得优化效果图。图2中X轴为交叉算子参数,Y轴为变异算子参数,范围为0.2~0.8。由图2可知,图2波动性结果大致与图1吻合,不能较好地反映极值情况。因此,为获取最大Q值,在人工免疫算法的基础上,采用DQN对人工免疫算法进行参数调优,得出结果如图3所示。
从图3可知,基于人工免疫算法的DQN调优,交叉算子与变异算子参数均为0.8时是DQN预测的最佳结果,得出DQN最大Q值,通过DQN调节人工免疫算法的参数进行优化,优化后的参数接近人工免疫算法在测试中的最优参数。因此,采用DQN进行优化是合理且可行的方法。
4 结束语
本研究提出的一种基于强化学习的人工免疫算法的参数优化方法,能够逼近人工免疫算法的多峰函数,可以实现多峰函数的参数优化,节约大量的调参时间。与此同时,参数优化也为后期研究智能汇控小室内部规模优化、温湿度等多因素优化控制值、故障诊断的准确率奠定基础。