記事「原子軌道探索(AOS)アルゴリズム:改良版」についてのディスカッション

 

新しい記事「原子軌道探索(AOS)アルゴリズム:改良版」はパブリッシュされました:

第2部では、AOS (Atomic Orbital Search)アルゴリズムの改良版の開発を続け、特定の演算子に注目して効率性と適応性の向上を図ります。アルゴリズムの基礎とメカニズムを分析した後、複雑な解探索空間を解析する能力を高めるための性能向上のアイデアについて議論し、最適化ツールとしての機能を拡張する新しいアプローチを提案します。

第2部では、この優れたアイデアを見過ごすことなく、AOSアルゴリズムの改良に焦点を当てます。特に、この手法特有の演算子に注目し、それらが効率性と適応性の向上にどう寄与できるかを分析します。

AOSアルゴリズムの研究を進める中で、その探索空間における探索手法に関して多くの興味深い側面が見えてきました。研究を通じて、この興味深いアルゴリズムをさらに改善するためのいくつかのアイデアも思いつきました。特に、複雑な解探索空間を探索する能力を向上させることで、アルゴリズムの性能を高めるための既存手法の再構築に注力しました。これらの改良を既存のAOSアルゴリズムの構造にどのように統合できるかを検討し、最適化問題解決のためのより強力なツールにすることを目指します。したがって、本稿の目的は既存のメカニズムを分析するだけでなく、AOSアルゴリズムの能力を大幅に拡張できる新たなアプローチを提案することにもあります。


作者: Andrey Dik

 

記事をありがとう!

昨日と今日、Hilly関数とalglibメソッドについてしばらく考えていました。以下は私の考えです。

この関数の最大値を求めるには、特にパラメータの数が10以上の場合、勾配法を適用するのは無意味である。勾配法は瞬時に局所極限から抜け出せなくなる。また、パラメータ空間の新しい点から何度再スタートしても、勾配法が瞬時に解を見つける正しい空間領域に到達する確率は、パラメータの数が増えるにつれてゼロになる傾向がある。

例えば、lbfgsや2(2)反復のCGが、どのようなパラメータ数でも最大値を見つける空間の点は、{x = -1,2 , y = 0.5}である。


lbfgs

しかし、私が言ったように、この領域に入る可能性はゼロに等しい。乱数を生成するのに100年はかかるだろう。

したがって、この記事で紹介した遺伝的アルゴリズム(偵察と探索空間の縮小ができる)と、より有利な点から素早く極限を見つける勾配法を組み合わせる必要がある。

 
Evgeniy Chernish #:

記事をありがとう!

ご意見ありがとうございます。

与えられた関数の最大値を求めるために、特にパラメータの数が10以上の場合、勾配法を使うのは無意味です。

その通りです。

これが組合せ最適化法の課題なのです。

古典的な「蟻」のような組合せ手法は、「巡回セールスマン問題」や「ナップザック問題」のような問題、つまり一定のステップ(グラフの辺)を持つ離散問題用に設計されている。多次元的な「連続」問題に対しては、これらのアルゴリズムは全く設計されていない。例えば、ニューラルネットワークのトレーニングのようなタスクに対しては。たしかに、組み合わせ論的特性は確率的ヒューリスティック手法にとって非常に有用だが、このような実問題に近いテスト問題をうまく解くための唯一かつ十分な特性ではない。アルゴの探索戦略自体も重要である。

勾配ベースのものは、単に局所的な極限で即座に立ち往生してしまう。そして、パラメータ空間の新しい点から何度再スタートしても、パラメータの数が増えるにつれて、勾配法が瞬時に解を見つける空間の正しい領域に到達する確率はゼロになる傾向がある。

その通りだ。

しかし、この領域に到達する確率は、すでに述べたように、単純にゼロである。乱数を発生させるのに100年くらいかかるでしょう。

そうです。低次元空間(1~2次元)では、大域近傍に到達するのは非常に簡単で、単純な乱数生成器でも十分機能します。しかし、問題の次元が大きくなるとすべてが一変し、運ではなくアルゴリズムの探索特性が重要な役割を果たすようになる。

したがって、この記事で紹介されている遺伝的アルゴリズム(探索を行い、探索空間を縮小する)と勾配法を組み合わせる必要がある。

「遺伝的」とは、おそらく「発見的」という意味だろう。なぜ「魚には傘が必要」なのか、「なぜ鍛冶屋が必要なのか? 鍛冶屋は必要ない」)))。連続空間の複雑な多次元問題を解く効率的な方法があり、それは母集団法の記事で説明されている。そして古典的な勾配問題には、一次元の解析的に決定可能な問題という独自のタスクがあります(この問題では同等のものはなく、高速で正確な収束があります)。

そして質問ですが、ヒューリスティックスの速度についてどのような印象をお持ちですか?

SZY:

ああ、なんと多くの不思議な発見があることだろう。

悟りの精神を準備し

そして経験、誤りの息子、

そして天才、逆説の友、

そして偶然、神の発明者。


ZZZY ちょっと待って。未知の探索空間では、どの瞬間、どの反復のステップにおいても、それが本当にグローバルに向かう有望な方向であるかどうかを知ることは不可能である。したがって、最初に偵察し、後で改良することは不可能である。全体探索戦略だけが機能し、それらはうまく機能するか、あるいはうまく機能しないかのどちらかである。この目的のために、タスクの仕様に応じてアルゴリズムを選択するための評価表が保管されている。

 
Andrey Dik #:
その通りである。低次元空間(1-2次元)では、大域的な近傍に入るのは非常に簡単で、単純なランダム・ジェネレーターがこれに役立つことさえある。しかし、問題の次元が大きくなるとすべてが一変し、運ではなくアルゴリズムの探索特性が重要な役割を果たすようになる。

つまり、失敗するのだ。

Andrey Dik#:
それから質問ですが、ヒューリスティックのスピードについてはどう思われますか?

高速に動作するという事実にもかかわらず。1000個のパラメーターで0.4という結果です。

だから、GAと勾配法を組み合わせて最大にするのが理にかなっていると直感的に思いました。そうでなければ、別々にやっても関数は解けない。実際にテストしたわけではありませんが。


P.S.やはりこの関数は厚すぎると思います。実際のタスク(例えばニューラルネットワークのトレーニング)では、そのような問題はありませんが、そこでも誤差表面はすべてローカル・ミニマムになります。

 
Evgeniy Chernish #:

1.良い仕事をしていない

2.仕事が速いのに。1000個のパラメータに対する結果は0.4といったところだ。

3.だから、GAと勾配法を組み合わせて最大値を求めるのが理にかなっていると直感的に思った。そうでなければ、別々にやっても関数は解けない。実際にはテストしていない。

4.P.S.やはりこの関数は厚すぎると思います。実際のタスク(例えばニューラルネットワークのトレーニング)では、そのような問題はありませんが、そこでもエラーサーフェスはすべてローカルミニマムになります。

1.対応できない」とはどういう意味ですか?ターゲット関数へのアクセス数には制限があり、より良い結果を示したのは対処できない方である))。許可されるアクセス数を増やすべきか?それなら、より機敏で複雑な関数に適応した方が、いずれにせよゴールにたどり着けるだろう。参照数を増やしても、状況は変わらない。

2.0.3を示す者もいれば、0.2を示す者もいれば、0.001を示す者もいる。

3.直感的には、何百もの組み合わせとバリエーションが試され、再試行されている。与えられたエポック(反復)数でより良い結果を示すものがより良い。ターゲットへの参照回数を増やし、どちらが先にゴールに到達するかを見る。

4.4.難しいタスクでリーダーがいる場合、簡単なタスクでもリーダーはアウトサイダーより悪い結果を示すと思いますか?控えめに言ってもそうではない。私は今、グリッド・トレーニングという、より "簡単 "だが現実的な課題に取り組んでいる。いつものように結果をシェアするつもりだ。面白いだろう。


とにかく実験して、いろいろなアルゴリズム、いろいろなタスクを試してみてください。そのためのツールはすべて用意したつもりだ。

 
Andrey Dik #:

1."失敗 "とはどういう意味ですか?対象関数へのアクセス数には制限があり、最高の結果を示した方は対応できない方です))。許可されるアクセス数を増やすべきか?それなら、より機敏で複雑な関数に適応している方が、いずれにせよゴールにたどり着けるだろう。参照数を増やしても、状況は変わらない。

2.0.3という人もいれば、0.2という人もいるし、0.001という人もいる。

3.直感的には、何百もの組み合わせとバリエーションが試され、再試行されている。与えられたエポック(反復)数でより良い結果を示すものがより良い。ターゲットへの参照回数を増やし、どちらが先にゴールに到達するか見てみよう。

4.4.難しいタスクでリーダーがいる場合、簡単なタスクでもリーダーは部外者より悪い結果を示すと思いますか?控えめに言ってもそうではない。私は今、グリッド・トレーニングという、より "簡単 "だが現実的な課題に取り組んでいる。いつものように結果をシェアするつもりだ。興味深いものになるだろう。


一つのことに固執せず、いろいろなアルゴリズム、いろいろなタスクを試してみてほしい。そのためのツールはすべて提供するつもりだ。

私は実験をしているのだ、

ANS

現実的なタスクについては、戦闘に近いタスクでアルゴリズムをテストするのが正しい。

遺伝的ネットワークがどのように訓練されるかを見るのは二重に興味深い。