SHADE:用成功历史保留多种参数经验
SHADE:用成功历史保留多种参数经验
JADE 把成功参数压缩为一对采样中心。SHADE(Success-History based Adaptive Differential Evolution)由 Tanabe 与 Fukunaga 于 2013 年提出,改用多个历史中心。它主要改变参数控制层,仍沿用 current-to-pbest 变异和外部档案。
两种“记忆”不要混淆
| 对象 | 保存什么 | 在哪里使用 |
|---|---|---|
| 解档案 | 被替换的旧父代向量 | 提供差分供体 |
| 参数记忆 | 组成功参数的统计中心 | 生成新参数 |
生成第 个试验时,随机抽取槽位 ,围绕该槽的中心采样 。一代结束后,把成功样本汇总到当前写入槽 ;有有效成功样本时写入并推进 ,到末尾再回到首槽。
这里保存的是历史统计量,不是每次成功试验的完整日志,也不是按槽位把种群固定分成 个子群。
原版 SHADE 的更新
令严格改进样本的收益为 ,归一化权重为
2013 年原版使用加权 Lehmer 均值更新 ,加权算术均值更新 :
当 为空时不更新。后续 SHADE 1.1 / L-SHADE 的 更新采用加权 Lehmer 均值,并带有特殊零值处理;不能把后者的公式直接标成 2013 年原版。
一个更新例子
设两次成功的收益分别为 ,对应 、。则权重为 :
这是人为构造的算例,不是论文实验。它显示,较大收益对中心影响更大,但被更新的只是一个槽;其他槽仍保留此前的参数经验。因此下一代不必全部围绕本代结果采样。
多槽机制能解决什么
从存储结构看,多槽使反馈不必立即覆盖全部历史经验。代价是多了记忆长度 :记忆太短可能快速遗忘,太长可能保留不再适用的中心。这里是机制层面的取舍,不能据此直接确定最优 。
还有一个容易忽视的性质:若目标函数做正仿射变换 、,收益权重保持不变;若做一般的单调非线性变换,排序可能不变,收益比例却会变化。因此“相同排序”并不保证相同的参数适应轨迹。
从参数记忆走向预算调度
SHADE 控制的是“怎样采样参数”,并不自动回答“还应保留多少个体”。当评价预算逐渐消耗时,固定大种群可能使同一批个体得到的更新轮次有限。L-SHADE 因而把种群规模也纳入调度。
复现时应明确 SHADE 的版本、成功判据、记忆长度、档案容量及 的设置。本文解释机制,未运行原论文的基准实验。
参考资料
- Tanabe, R.; Fukunaga, A. (2013). Success-History Based Parameter Adaptation for Differential Evolution,重点见第 V 节。
- Tanabe, R.; Fukunaga, A. (2014). Improving the Search Performance of SHADE Using Linear Population Size Reduction,包含 SHADE 1.1 的参数更新。