1

経験的な人間のデータと 6 パラメーターの認知モデルからシミュレートされたデータの間の損失関数を最小化しようとしています。モデルは非常にうるさいです。モデルは PYTHON でプログラムされていることに注意してください。

標準的な方法は、シンプレックス検索を使用することです。ただし、シンプレックスは最初の推測に大きく依存するため、極小値を取得するリスクが高くなります。だから私は2つの質問があります:

1)遺伝的アルゴリズムを使用して、最初にグローバル最小値のおおよその位置を検索し、その結果をシンプレックス検索の開始点として使用できないかどうか疑問に思っています。それが良い考えであれば、誰かがPythonで適切な遺伝的アルゴリズムの良い実装を知っていますか?

2) シンプレックス検索にはどの反射定数、膨張定数、収縮定数を使用すればよいですか?

どんな助けでも大歓迎です。

乾杯、マット

4

1 に答える 1

3

あなたの関数は非常にノイズが多く、次元が少なく、進化的アルゴリズムを試すことにオープンであるため、実際にシンプレックス最適化プロセスを共分散行列適応進化戦略に置き換えることをお勧めします。

このアルゴリズムは、ブラック ボックス最適化コミュニティによって、50 次元未満の複雑な問題に対して最も効率的なアルゴリズムの 1 つとして認識されています。作者によって詳細に説明されています:こちら.

著者は、ここで Python でのアルゴリズムの実装を提供しています。進化的アルゴリズムのフレームワークであるDEAPは、CMA-ES の Python 実装とさまざまなアプリケーションの例も提供します。これは私が使いやすいと思います (免責事項、私は DEAP の主要な開発者の 1 人です)。

于 2012-12-25T20:45:21.577 に答える