Pythonの遺伝的アルゴリズムアプローチを使用して関数がその最小値を達成するポイントを見つける方法の例を探していました。DEAPのドキュメントを確認しましたが、その例を理解するのは非常に困難でした。例えば:
def function(x,y):
return x*y+3*x-x**2
xとyの両方の初期ランダム値(同じ次元からのものではない)を供給することができる遺伝的アルゴリズムを作成する方法についての参考文献を探しています。遺伝的アルゴリズムの作成と使用の経験を持つ誰かが私にこれについていくつかのガイダンスを提供できますか?
2
この問題は微積分学を使用して分析的に解決でき、統計学習を必要としません。数値解が必要だとすると、遺伝的アルゴリズムではなく確率的勾配降下法を使用すると、より簡単に解くことができます。また、yで線形である関数を定義し、最も速くスケーリングするx項が-x ^ 2のようになっていることにも注意してください。そのため、ほとんどのパラメーター体制では、解は興味深いものではありません(xmax、ymin)。もう少し時間をかけて、より意味のある例を見つけ、SGDとGAの間で決定することをお勧めします。これが本当の遺伝的アルゴリズムの例です
—
AN6U5
こんにちは、実際には単なる例です。実際には、私の関数は2つの入れ子関数の組み合わせであり、ヘッシアンはありません。
—
gm1 2016年
しかし、確率的勾配降下法と遺伝的アルゴリズムの関係を理解していますか?そして、あなたが提供した例は非常に単純なので、2つの間に違いはありませんか?私が手に入れているのは、違いを不当に利用するためにもっと複雑な例が必要であり、したがって後者をよりよく理解することです。
—
AN6U5 2016年
それから一般化するために、それが先例のような些細な例が記述されている例を探していました。
—
gm1 2016年