自然進化戦略(NES )は、ブラックボックス問題に対する数値最適化アルゴリズムの一種です。進化戦略と原理的には類似しており、自然勾配に従って 探索分布の(連続的な)パラメータを、より高い期待適応度へと反復的に更新します。
方法
一般的な手順は次のとおりです。パラメータ化された検索分布を使用して一連の検索ポイントが生成され、各ポイントで適合度関数が評価されます。分布のパラメータ(戦略パラメータを含む)により、アルゴリズムは適合度関数の(ローカル)構造を適応的に捉えることができます。たとえば、ガウス分布の場合、これは平均と共分散行列で構成されます。サンプルから、NES はパラメータに対する検索勾配を、より高い期待適合度に向かうものとして推定します。次に NES は自然勾配に沿って勾配上昇ステップを実行します。これは、単純な勾配とは異なり、不確実性に関して更新を再正規化する 2 次手法です。このステップは、振動、早期収束、および特定のパラメータ化から生じる望ましくない影響を防ぐため、非常に重要です。停止基準が満たされるまで、プロセス全体が繰り返されます。
NESファミリーのすべてのメンバーは、同じ原理に基づいて動作します。ただし、確率分布の種類と勾配近似法が異なります。探索空間が異なると、必要な探索分布も異なります。例えば、低次元では、共分散行列全体をモデル化することが非常に効果的です。一方、高次元では、共分散を対角線のみに制限する方がスケーラブルです。さらに、高度に多峰性の探索空間では、ガウス分布ではなくコーシー分布などの裾野の厚い分布が効果的です。最後に、自然勾配を解析的に計算できる分布と、標本から勾配を推定する必要があるより一般的な分布との間に区別があります。
検索勾配
探索分布のパラメータと、で評価された適応度関数を表すものとする。NESは、探索分布の下で期待される適応度を最大化するという目的を追求します。



![{\displaystyle J(\theta )=\operatorname {E} _{\theta }[f(x)]=\int f(x)\;\pi (x\,|\,\theta )\;dx}](data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)
勾配上昇法によって、勾配は次のように書き直すことができる。



![{\displaystyle =\int {\Big [}f(x)\;\nabla _{\theta }\log \pi (x\,|\,\theta ){\Big ]}\;\pi (x\,|\,\theta )\;dx}](data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)
![{\displaystyle =\operatorname {E} _{\theta }\left[f(x)\;\nabla _{\theta }\log \pi (x\,|\,\theta )\right]}](data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)
つまり、の期待値に における対数微分を掛けたものである。実際には、有限個のサンプル に基づくモンテカルロ近似を使用することができる。


。
最後に、探索分布のパラメータは反復的に更新することができる。

自然勾配上昇
NES は更新に単純な確率的勾配を使用する代わりに、単純な (バニラ) 勾配に比べて多くの利点があることがわかっている自然勾配に従います。たとえば、
- 勾配方向は探索分布のパラメータ化とは無関係である
- 更新の規模は不確実性に基づいて自動的に調整され、高原と尾根での収束が加速されます。
NESのアップデートは
、
ここではフィッシャー情報行列です。フィッシャー行列は正確に計算できる場合もありますが、そうでない場合は対数微分を再利用してサンプルから推定されます。 

フィットネスシェイプ
NESは、アルゴリズムをより堅牢にし、適応度関数の単調増加変換に対して不変にするために、ランクベースの適応度シェーピングを利用しています。この目的のために、集団の適応度は効用値 の集合に変換されます。i番目に優れた個体を とします。適応度を効用で置き換えると、勾配推定値は次のようになります。 

。
効用関数の選択はアルゴリズムの自由なパラメータです。
擬似コード
入力:
1 回繰り返し 2 for do
// λは母集団の大きさ 3つの サンプル
4 適応度を評価する
5 対数微分を計算する
6 終わり 7 ユーティリティを
ランクに基づいて割り当てる 8 勾配を推定する
9 推定する
// または正確に計算する 10 更新パラメータ
// ηは学習率 停止基準が満たされる まで 11
参照
参考文献
- D. ヴィアストラ、T. シャウル、J. ピーターズ、J. シュミットフーバー (2008)。自然進化戦略。 IEEE 進化計算会議 (CEC)。
- Y. Sun, D. Wierstra, T. Schaul, J. Schmidhuber (2009).自然勾配を用いた確率的探索. 国際機械学習会議 (ICML).
- T. Glasmachers、T. Schaul、Y. Sun、D. Wierstra、J. Schmidhuber (2010).指数関数的自然進化戦略. 遺伝的・進化的計算会議 (GECCO).
- T. Schaul、T. Glasmachers、J. Schmidhuber (2011).自然進化戦略のための高次元とヘビーテール. 遺伝的・進化的計算会議 (GECCO).
- T. Schaul (2012).自然進化戦略は球面関数に収束する. 遺伝的・進化的計算会議 (GECCO).
外部リンク