CMA-ESの基本
1 世代でやることは 3 段階しかない。
1. 生成#
分布から 個の候補を引く。
2. 評価と並べ替え#
を測り、良い順に並べる。以降 は 番目に良い候補を指す。
ここで値そのものは使わず、順位だけを使うのが重要。 を単調増加関数で変換しても(たとえば や にしても) 挙動が変わらない。この単調変換に対する不変性が、 スケールの分からない目的関数に対する頑健さの源になっている。
3. 更新#
上位 個の重み付き平均で中心を動かす。
重み は上位ほど大きく、。既定では 、。
既定値#
CMA-ES の実用上の強みは、ハイパーパラメータをほぼ触らなくてよいこと。 集団サイズの既定値は次元 から決まる。
利用者が決めるのは初期点 と初期ステップサイズ の 2 つだけ。 は「探索したい範囲の 1/4 程度」が目安とされる。
多峰性が強いとき
を既定より大きくすると、局所解に落ちにくくなる。 再始動戦略 (IPOP-CMA-ES) は これを自動化したもの。
参考文献#
- Nikolaus Hansen. The CMA Evolution Strategy: A Tutorial. 2016.(実装まで踏み込んだ標準的な解説) https://arxiv.org/abs/1604.00772
- Nikolaus Hansen, Andreas Ostermeier. Completely Derandomized Self-Adaptation in Evolution Strategies. Evolutionary Computation 9(2), 2001.(CMA-ES の原論文) https://doi.org/10.1162/106365601750190398
- CMA-ES 公式サイトと参照実装 pycma https://github.com/CMA-ES/pycma