局所極値を見つけるための最適なアルゴリズムは?
大雑把に言えば、局所極値(頂点)に最もよく収まるパラメータのリストを作る必要がある。
ハリネズミの例を使って、その針の先端の座標を示す。
どのような大域的探索のタスクでも、表の一番上にあるアルゴリズムが一番うまくいくだろう。例えば、関数が滑らかであったり、離散的であったりすることが分かっていれば、個別に最適なものを選ぶこともできるし、問題の最適化パラメータの数に応じて最適なものを選ぶこともできる。
通常,局所極限を求める必要があるような問題の設定はしない.なぜなら,ほとんどの実際的な問題では,局所極限の数は未知であり(そうでなければ,解析的な方法を使う方が簡単である),大域的極限の数は既知であり,1つである(同じ値を持つ大域的極限がいくつかあれば,それは1つであることと同じである)からである.そのため、通常は関数が可能な限り単調になるように問題を設定する。
一般的な場合、軌跡を探索する問題を解くアルゴリズムを私は知らない。このような場合、FFをどのように表現して問題を解くかを考えます。例えば、クラスタリングのアドオンとしてAOを使うなど、様々なアプローチが考えられる。また、FFをグローバル・ミニマムからグローバル・マキシマム(これはあらかじめ求めておく必要がある)までの仮想的な「層」に分割し、各層を順次調べていく、つまりAOのバッチ・タスク・マネージャーを作るというアプローチもある。
つまり、AOのバッチ・タスク・マネージャを作る必要があるのだ。要するに、局所極値探索の問題を解く一般的なアルゴリズムは存在しないのだ。特別なアルゴリズムを作るより、FFを修正する方が簡単です。
3. 現在の反復でアクティブなパラメータを選択するアルゴリズムは関係なく、最適化の範囲とステップを変更することができる。
1.AOは、最適化のためにどのようなパラメーターをいくつAOに提出してもかまわないので、すべてのパラメーターをAOに提出してもかまわないし、提出しなくてもかまわない。
2.2.どのアルゴリズムも、個別に適用することも、共同で適用することも、順次適用することも、組み合わせて適用することもできます。私は記事中のアルゴリズムを統一するよう努めた。
3.ご紹介したアルゴリズムは、原則として、最適化プロセス中に直接調整することができます。蓄積された母集団がリセットされないように初期化を修正するだけです。例えば、経過したエポックに比例して最適化パラメータのステップを減らす(または増やす)ことが可能です。
ありがとう。私は、多数のコアが関与している場合、最適化を強制的に中断することで、間接的にローカルなものを見つけています。大雑把に言うと、テスターに20のエージェントがあり、2000パスで最適化を中断します。
まあ、それは絶対に反科学的だ!)))))。でも賢いですね。
IWO、COA、ABC、BFOのように、母集団がロケールによってグループに分かれる傾向がある場合、これらのアルゴリズムの母集団は、エージェント間のユークリッド距離を測定することによって、エージェント(AOでは論理的な探索単位をエージェントと呼びます)の塊を分析することができます。
また、COAやHS、MAのようなロールバック(エージェントが同じ位置から異なる方向に繰り返し探索を試みること)アルゴリズムでは、試行回数のカウンタを設定し、いくつかの繰り返しによって母集団の状態をスライスし、試行回数が最も多いエージェントが局所極限となるようにすることができます。MAとBFOは、このようなカウンターをネイティブで持っています。
つまり、ローカルを探索する厳密な方法はない(グローバル探索はこの点で "厳密 "であると考えられる)と言いましたが、上で説明したように近似的に探索することはできます。厳密な解を得るためには、FFの差分情報を知る必要がある。
ZЫ.このトピックに興味のあるすべての人に興味深い質問です:(FF値の違いを考慮しない)局所的極限と大域的極限の違いは何ですか?
ZZY 最初の質問に答えたことで、多くの疑問がひとりでに消えてしまいました。
- 無料取引アプリ
- 8千を超えるシグナルをコピー
- 金融ニュースで金融マーケットを探索
新しい記事「母集団最適化アルゴリズム:SSG(Saplings Sowing and Growing up、苗木の播種と育成)」はパブリッシュされました:
SSG(Saplings Sowing and Growing up、苗木の播種と育成)アルゴリズムは、様々な条件下で優れた生存能力を発揮する、地球上で最も回復力のある生物の1つからインスピレーションを得ています。
このアルゴリズムは、著者による明確な説明がない(一般的な規定とアイデアしか提供されていない)数少ないものです。また、著者が提示したアルゴリズム演算子は、プログラムのアルゴリズム実装のための既成の指示書ではありません。子木と親木、その相互作用について明確な指示はありません。演算子の実行順序に決まりはなく、ユーザーはより良い苗を得るために順序を変更することができます。
広い意味では、SSGは最適化アルゴリズムではなく、他のアルゴリズムを補完して最適化の質を向上させるために設計された一般的なルールセットです。つまり、SSGはあらゆる進化的集団アルゴリズムのアドオンであるため、想像の余地があり、最適化アルゴリズムの具体的な実装を試す機会もあるのです。これまでのアルゴリズムを書きながら自分なりに考えたことや経験したことを、SSGとの連携に応用しました。以下、読者の判断のために、実験結果を紹介します。
アルゴリズムを理解し始めるには、木を最適化エージェントとして考える必要があります。木は最適化問題の解であり、各枝は問題の最適化されたパラメータです。子木と親木の抽象的かつ芸術的な図解を図1に示します。木の幹は、最適化すべきパラメータの集合体です。各枝は別々の最適化されたパラメータであり、枝の長さは対応するパラメータの値の許容範囲によって制限されます。枝の向きは関係なく、その違いを強調するために図に示しただけです。
作者: Andrey Dik