参考文献:A. Auger and N. Hansen, “A restart CMA evolution strategy with increasing population size,” 2005 IEEE Congress on Evolutionary Computation
背景在2001年的时候,柏林工业大学的 Hansen教授和Ostermeier教授在进化策略(ES)的随机自适应机制上取得了重大突破,开发了协方差矩阵自适应策略(CMA-ES),通过调整多元正太分布的协方差矩阵,CMA-ES可以迅速匹配目标函数形状并快速收敛。
但CMA-ES毕竟是一个局部优化器,无法进行全局优化任务,所以在2005年的CEC单目标竞赛中,Auger博士和她的导师Hansen教授带来了IPOP-CMA-ES,为CMA-ES配备了全局优化机制并力压群雄取得了冠军。
- 最好的个体目标函数值误差 error 持续(
10
+
⌈
30
n
λ
⌉
10+ left lceil frac{30n}{lambda} right rceil
10+⌈λ30n⌉)代为0或者小于
1
0
−
12
10^{-12}
10−12多元正态分布的标准差
σ
sigma
σ在所有方向上小于
1
0
−
12
10^{-12}
10−12,或者进化路径
p
c
p_{c}
pc的所有元素小于
1
0
−
12
10^{-12}
10−12在协方差矩阵C主轴上增加
0.1
⋅
σ
0.1 cdot sigma
0.1⋅σ没有改变
X
⃗
w
g
vec{X}_{w}^g
X
wg(均值点)或者在C的每个元素上增加
0.2
⋅
σ
0.2 cdot sigma
0.2⋅σ没有改变
X
⃗
w
g
vec{X}_{w}^g
X
wg协方差矩阵的条件数超过
1
0
14
10^{14}
1014(这个条件数我不太懂,有会的大神可以说一下,但我感觉应该是用来反映协方差矩阵的敏感性的)
每次重启,IPOP都会将种群数量 N 乘以2倍,作者说合理的factor在1.5到5之间,最后经过多次试验发现2和3最好,然后又说2的时候可以实现最大次数的重启
实验IPOP-CMA-ES在10,30,50D的25个测试函数上验证,初始步长设置为
B
−
C
2
frac{B-C}{2}
2B−C,B和C是边界值
最后结果显示最大的种群数量增加到640448480,也就是重启了
2
6
2^6
26次,这算力太强了,基本上多模函数的极值都摸了个遍
IPOP-CMA-ES其实增加的机制就两个:重启和种群线形增加,这看起来很简单,但是殊不知作者背后可能做了几万次实验,特别是重启条件和增加因子的确定,都耗费大量时间
总的来说,IPOPCMA在单模态上没啥改善,但是在多模和复合这两类函数提升很大,也印证了它的全局搜索特性
其实好的算法不一定要很复杂,有时候简单的逻辑也可以实现更好的性能。
比如IPOPCMA,很复杂吗?一点都不觉得,德国人很牛吗?也不是,但我觉得他们有一点我很敬佩,就是花时间精力把几万次实验做好做细,不像国内某些所谓的大牛每年水几十篇论文,但实际的东西一样没有,这种工匠精神才是我们科研人需要学习的东西



