記事「最適化アルゴリズムの効率における乱数生成器の品質の役割」についてのディスカッション - ページ 4

 
Andrey Dik #:

そう、もちろん、変更を加えたり、改良を加えたりね。だからコードベースは素晴らしい解決策になるだろう。

gitよりも優れている。バージョン履歴を見たり、各ファイルのすべての変更点を簡単に見たり、問題を報告したり、特定のコード行にコメントしたり、他にもいろいろできる。

 

IMHOは、最適化の有効性を評価するために、OOSサンプル(例えば、k-foldクロスバリデーション)上で発見されたパラメータのパフォーマンスが第一に重要であると考えます。

通常、問題は最も綿密な最適化アルゴリズムを見つけることではなく、システムを可能な限り良好に動作させ続けることです。バックテストで最も最適なパラメーターは、フォワードでは十分に長持ちしないような気がします。したがって、効率性は他の方法で評価されるべきです。例えば、平均で最も高いFF値を与えるパラメーターの連続した滑らかなクラスターの大きさで評価されるべきです。

ところで、表には速度の比較は見られなかった。

 
Stanislav Korotky #:

そして、最適化の効率を評価するためには、OOSサンプル(例えば、k-fold cross validation)上で発見されたパラメータの作業が第一に重要です。

通常、問題は最も綿密な最適化アルゴリズムを見つけることではなく、システムを可能な限り良好に動作させ続けることです。バックテストでの最適なパラメータは、フォワードでは十分に長持ちしないような気がします。従って、効率性は他の方法で評価されるべきで、例えば、FFの平均最高値を与えるパラメータの連続した滑らかなクラスタの大きさによって評価されるべきです。

ところで、表には速度の比較は見られなかった。

トレーディング・システムの頑健性の問題に触れているが、この問題は最適化アルゴリズム自体とは直接関係がない。

この連載では、ツールとしての最適化アルゴリズムそのものを検討し、相互に比較しています。

アルゴリズムのコード実行速度は、実用的なタスクにおけるFFの計算に比べればごくわずかであり、測定を行うことに特別な意味はない。

大雑把に言えば、我々は単なるシャベルを比較しているのであり、どのシャベルがどの深さまで地面をよく切るかは関係ない。


システムパラメーターの最適化とロバスト性は異なるものであり、なぜか誤って結びつけられている。ロバストパラメータを特定するためには、(結果の後処理として、あるいは最適化と並行して)システムの挙動が共通するパラメータのクラスターを特定するなど、他の方法を用いるべきである。

 
Andrey Dik #:

取引システムの堅牢性の問題に触れているが、この問題は最適化アルゴリズムそのものとは直接関係ない。

しかし、あなたはHSCの品質が最適化に与える影響の問題を掘り下げることにした(つまり、最適化アルゴリズムに直接関係することから逸脱した)。これは称賛に値する。しかし、もっと重要なのは発見された解の安定性であり、それはおそらくFF空間における「より良い」の評価方法の違いによって達成されるものだと思います。これは、最適化アルゴリズムとその実用性に直接関係する。

 
Stanislav Korotky #:

1.あなたは、DSTの品質が最適化に与える影響の問題を掘り下げることにした(つまり、最適化アルゴリズムに直接関係することから逸脱した)。これは称賛に値する。

2.しかし、もっと重要なのは、発見された解の安定性であり、これはおそらく、FF空間における「ベターネス」を推定するさまざまな方法によって達成される。これは最適化アルゴリズムとその実用性に直接関係する。

1.HCSの質の影響に関する疑問は正当なものである。というのも、これまでに検討されたアルゴリズ ムはすべて(Nelder-Meadアルゴリズムを除く)、本質的に確率的なものばかりだからである。したがって、DSTはAOに直接関係する。

2.上の投稿で答えました。少し付け加えますが、テストは私たちが必要とする役割を果たすテスト関数を使用します。これは、今を実現するためにとても重要なことです。すべての可能な集合のすべての可能な実行、すなわち完全な列挙を実行する能力を持つことを想像してみてください。さて、その中からいくつかを選択する必要があると想像してみてほしい。どのように選択するのでしょうか?- 全パラメーターから選ぶ基準があります。完全な探索によって得られるすべての可能なパラメータ(解)から、どのパラメータ(解)を選択するかがわかっていれば、最適化においてどの基準を適用すべきかがわかります。基準の役割はFFが果たします。

システムのロバスト性を確保するためには、どのようなFFを適用すればよいのでしょうか?- 最適化アルゴリズムはこの問いに答えないし、答えたこともない。最適化アルゴリズムは、何を探すべきかを知っている場合にのみ、発見に役立つ。

FFを選択する責任はすべて研究者にある。

HFの品質がAOの結果に与える影響についての質問は、このフォーラムや他のフォーラムで何度も出てきた。
 

最適化は多くの神話、悪用、誤解に包まれている:

精神実験をしてみよう。システムパラメーターのすべての可能なバリエーションは、完全な列挙によって得られる。 この場合、最適化アルゴリズムは完全に除外される。 パラメータのすべての可能なバリエーションを手にして、どのパラメータを選択する かという疑問が生じる。- この質問に対する答えを知っていれば、すべての可能な変種からの選択基準をフィットネス関数の形で記述することが可能であり、それはすでに最適化のプロセスに適用することができます。こうして最適化アルゴリズムは、完全探索と同じように、より速く、望みの結果を得ることができるようになります。この精神的な実験を行った結果、最適化アルゴリズムが発見したことに「罪」があるのではなく、希望する基準を正確に記述しなかったユーザーが罪を犯していることが明らかになった。

これは重要なことだ。

 
Andrey Khatimlianskii #:

gitよりも優れている。バージョン履歴を見ることができ、各ファイルのすべての変更点を簡単に見ることができ、問題を報告したり、特定のコード行にコメントしたりすることができます。

アンドレイ、あなたがコメントする人たちの一人であることをうれしく思います。

githubを使うのは簡単ではないよ。)

 
Andrey Dik #:

アンドリュー、コメント欄で君に会えて嬉しいよ。

githubを使うのは簡単ではないよ。)

興味深いトピックだ!

githubの場合 -- 学び、実験するのにせいぜい1日、あとは純粋に楽しむだけだ。お手伝いします。


アンドレイ・ディク#:

最適化は多くの神話、悪用、誤解に包まれているので、もう一度繰り返したい:

精神的な実験をしてみよう。システムパラメーターのすべての可能なバリエーションは、完全な列挙によって得られる。 この場合、最適化アルゴリズムは完全に除外される。 パラメータのすべての可能なバリエーションを手にしたとき、どのパラメータを選ぶべきかという疑問が生じる。- この質問に対する答えを知っていれば、すべての可能な変種からの選択基準をフィットネス関数の形で記述することが可能であり、それはすでに最適化のプロセスに適用することができます。こうして最適化アルゴリズムは、完全探索と同じように、より速く、望みの結果を得ることができるようになります。このような精神的な実験を行った結果、最適化アルゴリズムが発見したことに「罪」があるのではなく、ユーザーが希望する基準を正確に記述しなかったことに「罪」があることが明らかになりました。

そしてこれが重要だ。

スタニスラフの指摘を支持する。

FFは周囲の空間を記述することはできない。

そして、研究者の仕事は、結果がギザギザで悪い単一の鋭いピークを見つけることではなく、結果があまり変わらない、多かれ少なかれ広範なプラトーを見つけることである。

FFはどうやって空間における自分の位置を決めることができるのだろうか?FFは絶対座標しか知らない。だから、(グローバルとはいえ)最大値を探すのではなく、最良のプラトーを探すアルゴリズム(耳が痛いかもしれないが、最適化とは呼ばない)が必要なのだ。最良」の定義はもちろん別の興味深い問題だが、プラトーの中心からのパラメータは、堀に囲まれた鋭いピークからのパラメータよりも、フォワード上ではるかに安定することは明らかだ。

 
Andrey Khatimlianskii #:

スタニスラフの考えを支持する。

FFは周囲の空間を描写することができない。

そして、研究者の仕事は、結果がギザギザで悪い1つの鋭いピークを見つけることではなく、結果があまり変わらない、多かれ少なかれ広範なプラトーを見つけることである。

FFはどのようにして空間における自分の位置を決めることができるのだろうか?FFは絶対座標しか知らない。だから、(グローバルとはいえ)最大値を探すのではなく、最良のプラトーを探すアルゴリズム(耳障りがよければ、最適化とは呼ばない)が必要なのだ。最良」の定義はもちろん別の興味深い問題だが、プラトーの中心からのパラメータは、堀に囲まれた鋭いピークからのパラメータよりも、フォワード上ではるかに安定することは明らかだ。

スタニスラフが話していることと、あなたが今話していることは、最適化とは何の関係もない。また、フィットネス関数を正しく理解していない面もある。しかし、最適化とハイライトカラーを分けることに同意したことはすでに良いことだ。

これらの問題をカバーするには、専用の別記事が必要なようだ。

しかし、まずはここから始めましょう。では、もう一度、システムパラメーターの完全な掃引を行う機会があると仮定しよう。原理的に可能なすべてのパラメータを使用して、システムの履歴を実行します。では、次の質問に答えてください:「可能なすべてのパラメーターの中から、新しいデータでシステムを実行するために使用する1セット(または数セット)を選択する方法はありますか?これはあなただけでなく、この質問に答えようとするすべての人に向けた質問です。見てわかるように、今は最適化アルゴリズムについて話しているのではなく、未知のデータに対してシステムを実行するためのパラメータセットの選択について話しているだけです。

 
Andrey Dik #:

システムのパラメーターを完全に検索できる可能性があるとしよう。私たちは、原則的に可能なすべてのパラメータでシステムの履歴を実行します。では、次の質問に答えてください:「可能なすべてのパラメーターの中から、新しいデータに対するシステム操作に使用できるパラメーターを1セット(または数セット)選択する方法はありますか?

私なら、地元の高い丘(崖ではない)の頂上だけを選びます。