遺伝的アルゴリズムにおける微分進化とは何ですか?
用語 1
遺伝的アルゴリズムで 微分進化differential evolutionとは 突然変異を起こすときに特定の方向directionを与える戦略を指す。
説明
方向を与えるという点から推測できるように、微分進化はそれ自体で 勾配降下法と似たアイデアに基づく。目的関数が微分可能であれば変異自体を 導関数の方向に起こすことができ、微分のためのコストがあまりに大きいか微分できない場合には問題に応じていくつかの戦略を試すことができる2.

微分はできないが関数の評価evaluationが大きな負担でないなら、解集合が ベクトル空間である場合、以下のようにランダムに選んだ解同士の差を利用して変異方向を決められる:
- 個体の中から $\mathbf{a}, \mathbf{b}, \mathbf{c}$ をランダムに選ぶ。
- ハイパーパラメータ $w \in \mathbb{R}$ に対して暫定ベクトル $\mathbf{z} = \mathbf{a} + w(\mathbf{b}-\mathbf{c})$ を計算する。
- $\mathbf{z}$ と $\mathbf{a}$ を比較し、$\mathbf{z}$ の適合度fitnessがより高い場合は、$\mathbf{a}$ を $\mathbf{z}$ に置き換える。
ここで $\mathbf{b}-\mathbf{c}$ は正確に微分の意味というよりも、多様体の形状がまったく分からない目的関数に対して攻める場合における「筋の通った方向」程度の意味を持つ。たとえば、すべての次元で1だけ増加するようなベクトルというわけではなく、遺伝的アルゴリズムの反復過程の中で実際に発見されうることが重要だ。
Kochenderfer. (2025). Algorithms for Optimization(2nd Edition): p166. ↩︎
S. Das and P. N. Suganthan, “Differential Evolution: A Survey of the State-of-the-Art,” in IEEE Transactions on Evolutionary Computation, vol. 15, no. 1, pp. 4-31, Feb. 2011, doi: https://doi.org/10.1109/TEVC.2010.2059031 ↩︎
