私のブログにリンクを張るつもりはありませんが、私の本当の意味を明確にする方法は他にありません。この記事はかなり長く、3 つの部分 ( 1、2、3 ) に分かれていますが、興味がある場合は読む価値があります。
ずっと前 (少なくとも 5 年前)、私は「数学的バクテリア」を生成する Python プログラムをプログラミングしました。これらのバクテリアは、単純なオペコードベースの遺伝子コードを持つ Python オブジェクトです。それらに数値を入力すると、コードの実行に応じて数値が返されます。それらの遺伝子コードを無作為に生成し、これらのオブジェクトに環境選択を適用して、事前定義された期待値と同様の結果を生成します。次に、それらを複製させ、突然変異を導入し、進化させます。その結果は非常に興味深いものです。彼らの遺伝子コードは基本的に、トレーニング データセットの値が異なっていても、単純な方程式を解く方法を学習するからです。
さて、これはただのおもちゃです。無駄にする時間があり、好奇心を満たしたかったのです。ただし、研究に関しては、何かが行われたと思います...ここで車輪を再発明していると思います。私がプログラムしたような in silico バクテリアを作成するためのより深刻な試みを知っていますか?
これは実際には「遺伝的アルゴリズム」ではないことに注意してください。遺伝的アルゴリズムは、進化/選択を使用して、特定のスコアリング関数に対するパラメーターのベクトルを改善する場合です。これはちょっと違う。特定のスコアリング関数に対して、パラメーターではなくコードを最適化します。