Covariance matrix adaptation evolution strategy: CMA-ES
CMA-ES是一种进化算法,也就是一种黑箱优化算法。
Background
进化算法
基于种群的算法基本思路:
- 产生初始采样种群,
- 评估种群的适应度
- 选择最优子集来更新参数.
简单高斯进化策略
种群的概率分布被建模为一个维的高斯分布,
基本算法:
- 产生初始化参数
- 从高斯分布中采集后代种群 where
- 选择适应度最好的个样本, 重新计算新的均值和方差
协方差自适应进化策略 CMA-ES
CMA-ES有两个关键的新概念: - 使用一个协方差矩阵跟踪两个样本之间的依赖关系。这个协方差矩阵会是一个对角矩阵,且可以由一组标准正交基和一组特征值完全定义 - 使用控制更新步长。 - 均值的更新方向是最大化上一次成功的candidates的概率值;协方差的更新方向是最大化上一次更新的搜索方向。可以理解为是natural gradient descent. 另外还会对过去的数个搜索方向中,用PCA提取其主方向。 - 记录两个path. search path 主要是存储连续步长之间的相关性, 是为了计算好的相关性矩阵,第二个evolution path是为了控制步长。
采样方法:
为每一个样本计算适应度函数, 并排序选择前个。
均值更新:
步长的直觉如下: 维护一个演化路径(evolution path) ,
这里的是均值。