「记忆的科技园」改进布谷鸟算法在水质传感器部署上的应用( 二 )
为了模拟布谷鸟寻窝的方式 , 需要设定一下3种理性的状态:
(1)每只布谷鸟每次随机选择一个巢并且产生一个卵;
(2)在随机选择的一组寄生巢中 , 最好的寄生巢将会被保留到下一代;
(3)可利用的寄生巢数量是固定的 , 寄生巢的主人能发现一个外来鸟蛋的概率为Pa 。
布谷鸟算法中使用D维向量X=[X1 , X2 , … , XD]表示每一个布谷鸟 , 结合了全局搜索的随机游走和局部的随机游走 , 其中 , 全局搜索的随机游走如式(5)所示:
文章图片
其中 , r是缩放因子 , 是(0 , 1)区间内的随机数;Xg , i , Xg , k表示g代的两个随机数 。 CS算法流程如下:
(1)初始化种群 , 用每一个D维向量代表一个巢穴 , 同时计算出每个个体的适应度 。
(2)更新每个巢穴 , 按照式(9)产生新的解 , 产生的新解比原来的解好 , 则用新解替代旧解 。
(3)对每个巢穴 , 任选其他两个不一样的巢穴 , 对D维向量中的每个元素按照式(11)进行组合产生新解 , 产生的新解比原来的解好 , 则用新解替代旧解 。
(4)记录整个过程中的最优解 , 得到的最优解不满足设定的条件时返回步骤(2) , 直到满足条件或达到最大迭代次数则返回最优解 。
在布谷鸟算法中影响布谷鸟寻优效率的是Lévy飞行步长控制量的选择和淘汰概率 , 本文基于深度学习优化算法的思想来更新其参数 。
3基于深度学习的优化算法更新Lévy飞行步长
在深度学习中 , 为解决目标函数的最小值 , 常用梯度下降法进行优化 , 其基本思想是在每次迭代中 , 对每个变量 , 按照目标函数在该变量梯度的相反方向 , 更新对应的参数值 , 如式(12)所示:
其中 , J(θ)表示损失函数 , η表示学习率 , 其决定了在沿着让目标函数下降最大的方向上 , 下降的步长有多大 。
本文根据动量梯度下降法(GradientDescentwithMomentum)、均方根算法(RootMeanSquareprop)和Adam优化算法(AdamOptimizationAlgorithm)来更新布谷鸟算法中Lévy飞行的步长 。
3.1动量梯度下降法
动量梯度下降法的基本思想是计算梯度的指数加权平均数 , 并利用该梯度更新权重 , 如式(13)所示:
式中 , Vdw是速度更新的大小 , β1是权重 , Vt-1是t-1时刻的速度 , Vt是当前时刻速度的大小 , η是动量梯度下降中的学习率 。
布谷鸟算法中Lévy飞行步长更新采用动量梯度下降法的思想 , 即每次步长的更新由前一步的步长变化和当前阶段的步长变化共同来决定 , 如式(14)所示:
其中 , Δl是步长更新的大小 , Δlt-1是前一个时刻步长的更新 , η是步长更新的学习率 。
3.2均方根算法
均方根算法的基本思想是在梯度下降中 , 想缓解纵轴方向的学习率 , 然后加速横轴方向的学习率 , 则采用式(15)所示的微分平方的加权平均数 , 使下降速度变快 。
文章图片
其中 , Sdx为x方向上的速度变化 , Sdy为y方向上的速度变化 , β2是均方根中的权重 , α是均方根算法中的学习率 , ε是一个防止分母为零的十分小的正向量矩阵 。 通过改变Sdx和Sdy的大小来改变其在某一方向上的寻优速度 。
本文布谷鸟算法中Lévy飞行步长更新采用均方根算法的思想 , 如式(16)所示:
其中 , Sdxy表示循环中每个个体到种群最优位置距离的平均值 , Xg是寻优中的每个个体位置 , Xbest是种群的最优位置 。
3.3Adam优化算法
Adam优化算法基本上是将动量梯度下降法和均方根算法结合在一起 , 且要加上修正偏差 。 本文布谷鸟算法中Lévy飞行步长更新采用Adam优化算法的思想 , 如式(17)所示:
- 『科技快报网』微软暗示将对Windows 10进行大规模改进升级
- 难以:1979年老照片:难以忘却的青春记忆
- [快科技]MIUI 12来了?首批截图曝光:相机/手势/通知/广告等大量改进
- 电科技■Valve改进Steam平台调查系统以更准确统计VR头显数量
- 「风中的摇曳」疑13架运20B待交付,或在初期型上做2大改进,空军也玩“下饺子”
- 记忆的科技园▲「博文精选」MRAM关键工艺步骤
- 『快科技』iOS 14细节:苹果改进密码管理 避免重复多次输入减少麻烦
- 『丹书战史』为何元首没有要求继续改进生产?,斐迪南歼击车攻防这么强
- 『摊位』老照片80年代的菜市场,带你去逛记忆中的美食聚集地
- 『拓土开疆战四方』三五互联实控人龚少晖交9页学习改进报告:刷新了认知