1. 遺伝的アルゴリズム (GA) と進化的アルゴリズム EA の基本概念

進化的アルゴリズム (進化的アルゴリズム、EA と呼ばれる) とも呼ばれます。これは特定のアルゴリズムではなく、「アルゴリズム クラスター」であり、遺伝的アルゴリズム (GA) は進化的アルゴリズムのクラスです。

機械学習における4種類の進化アルゴリズム(遺伝的アルゴリズム、差分進化アルゴリズム、共進化アルゴリズム、分布推定アルゴリズム)を詳しく解説

基本コンセプト:

フィットネス

いわゆる適応度は、本質的にはコスト関数または法則として理解でき、初期集団の個体の適応度を計算することで、初期集団の個体が良いか悪いかの尺度を得ることができます。

外部フィットネス、内部フィットネス

外因性適応度と内因性適応度は、進化生物学の分野における 2 つの概念です。

外因性適応度とは、環境(気候、気温、食物などのすべての非生物的要因)への適応による個人または集団への選択圧を指します。言い換えれば、それは個人または集団の適応度による生存、生殖、またはその他の成功を指します。

固有の適応度(内因性適応度)とは、遺伝情報、つまり個人または集団のゲノムの寄与の長所と短所を指します。固有の適応度は、個人または集団のゲノム内のさまざまな遺伝子および遺伝子型 (それらの発現、機能、相互作用など) に依存します。

高い外部適応度、高い内部適応度

高い外部適応度および高い本質的適応度は、それぞれ環境および遺伝情報に適応する際の個人または集団の適応度が高いことを指し、その結果、生存率および生殖成功率が高くなります。

外部適応度が高いということは、個人または集団がその形態、行動、その他の特性に応じて現在の環境条件によりよく適応でき、生存と生殖成功の可能性がより高くなることを意味します。これは、彼らがより効果的に適応し、環境の変化やリスク要因にうまく対応できることを意味します。

高い固有適応度とは、個体または集団のゲノムに含まれる優れた遺伝子および遺伝子型を指し、これにより生存能力および生殖能力が向上する可能性があります。たとえば、特定の環境条件下では、より強力な免疫システム、より速い成長速度、より高い知能などを示します。

選ぶ

淘汰操作とは、集団における個体の適応度関数値によって測られる優劣の度合いに応じて、淘汰されるか次世代に引き継がれるかを決定する操作である。

クロス

交叉操作は、選択した 2 つの個体 p1 と p2 を親ノードとして使用し、2 つのコード値の一部を交換します。2 つのノードが次のようなバイナリ コードで表現されていると仮定します。

ここに画像の説明を書きます

 1 から 7 までの乱数をランダムに生成し、それが 3 であると仮定し、次の図に示すように p1 と p2 の最後の 3 ビットを交換すると、クロスオーバー操作が完了します。

ここに画像の説明を書きます

もちろん、これは非常に単純なクロスオーバー方法であり、業界で一般的に使用されているクロスオーバー方法はアナログ バイナリ クロスオーバーです。

突然変異

突然変異操作は、次のように、ノード p2 のバイナリ コードのいくつかの未知の上位位置の値を変更することです。

1 1 0 1 1 1 1

1 から 8 までの乱数をランダムに生成し (6 であると仮定)、コードの 6 番目のビットを変更して 1 を 0 に変更します。以下の図に示すように、クロスオーバー操作が完了します。

1 1 0 1 1 0 1

これはまだ単純な突然変異操作であり、業界で一般的に使用されている突然変異操作には、ガウス突然変異とコーシー突然変異が含まれます。

アルゴリズムの収束

上記の操作を通じて、遺伝的アルゴリズムの一般的な流れを紹介しましたが、アルゴリズムが収束するかどうかという疑問が残ります。これはアルゴリズムの最も重要な点です。

ラドルフは文献 [Radolph G. Convergence Analysis of Canonical Genetic Algorithms. IEEE Transactions on Neural Network, 1994,5(1): 96-101.] の中で、一般的な遺伝的アルゴリズムは必ずしも収束するわけではなく、最適な収束が得られるのは次の場合のみであることを証明しました。個々

ここに画像の説明を書きます
遺伝的アルゴリズムのフレームワーク

進化的アルゴリズム

進化的アルゴリズムには、遺伝的アルゴリズム、進化的プログラミング、進化的プログラミング、進化的戦略などが含まれます。進化的アルゴリズムの基本的な枠組みは、依然として単純な遺伝的アルゴリズムによって記述される枠組みですが、進化的手法(選択、交叉、突然変異、集団など)には大きな違いがあります。制御など) 多くの変更があり、進化的アルゴリズムの一般的なブロック図は次の図のように説明できます。

ここに画像の説明を書きます

遺伝的アルゴリズムと同様に、進化的アルゴリズムの収束も、最適な個体が保存される場合に一般的な進化計算が収束することです。ただし、進化的アルゴリズムの結果の多くは遺伝的アルゴリズムに由来しています。

遺伝的アルゴリズムは交叉操作により多くの注意を払い、突然変異操作はアルゴリズムの補助操作であると信じていますが、進化的プログラミングと進化戦略は一般的な意味で交叉は突然変異より優れているわけではなく、さらには突然変異よりも優れていると信じています。クロスオーバー動作は必要ない場合があります。

コード: https://github.com/MorvanZhou/Eevolutionary-Algorithm

はじめに:進化的アルゴリズム | Python を気にする必要はありません

おすすめ

転載: blog.csdn.net/weixin_43135178/article/details/130724856