Covariance matrix adaptation evolution strategy: CMA-ES

wiki blog

CMA-ES是一种进化算法,也就是一种黑箱优化算法。

Background

进化算法

基于种群的算法基本思路:

  • 产生初始采样种群,
  • 评估种群的适应度
  • 选择最优子集来更新参数.

简单高斯进化策略

种群的概率分布被建模为一个维的高斯分布,

基本算法:

  • 产生初始化参数
  • 从高斯分布中采集后代种群 where
  • 选择适应度最好的个样本, 重新计算新的均值和方差

协方差自适应进化策略 CMA-ES

CMA-ES有两个关键的新概念: - 使用一个协方差矩阵跟踪两个样本之间的依赖关系。这个协方差矩阵会是一个对角矩阵,且可以由一组标准正交基和一组特征值完全定义 - 使用控制更新步长。 - 均值的更新方向是最大化上一次成功的candidates的概率值;协方差的更新方向是最大化上一次更新的搜索方向。可以理解为是natural gradient descent. 另外还会对过去的数个搜索方向中,用PCA提取其主方向。 - 记录两个path. search path 主要是存储连续步长之间的相关性, 是为了计算好的相关性矩阵,第二个evolution path是为了控制步长。

采样方法:

为每一个样本计算适应度函数, 并排序选择前个。

均值更新:

步长的直觉如下: image 维护一个演化路径(evolution path) ,

这里的是均值。

image