最適化とサンプル外テスト。 - ページ 4

 

そうですね、確かに!

さらに、(批判も考慮して)単純な実行になかなか納得できない人への反論も大きいことを指摘しておきたい。

"物事の本質を必要以上に複雑化してはならない!"(Br.オッカム)。

最初の最適化に続いて、2番目の最適化(サンプル外)を行うことで、シンプルかつ十分な解決策となるのです

結局のところ、私たちは利益を上げることを目的としているのであって、最適化のために最適化を行うわけではありません。

 
Vita:

--> スラッシングも同じこと(マーキング、チェック)です。 スプリッティングは、ストレートスルーと比べて、どんなプラスアルファがあるのでしょうか?


分割することで、情報を効果的にフィルタリングすることができます。量的にも。

Vitaが書いた(a):

--> サンプル全体の最適化結果を処理する」というのが、集合Dを捨てるという意味であれば、私は反対です。 中間損失(サンプル内またはサンプル外)を与える結果を捨てることは、サンプル全体の最適化自体の中で解決される基本的なタスクです。 つまり、最適化後の処理は必要ありません。結果はすぐに集合Bです。 また、サンプル外での時間のかかる余計なチェックは必要ありません。

数学的な意味での最適化なのか、実際のテスターでの最適化なのか、どちらでしょうか?サンプルは、私の理解では、今は両方のサンプルが含まれています。両方のサンプルに対して不要な3つのセットを実行することで、時間を節約できると思いますか?実装に関しては、自分でテスターを一から書けば、おそらく実装コストは無視できないでしょう。実行してみて、それからまた質問に戻ってくればいいのです。

 
leonid553:

そうですね、確かに!

加えて、(批判も考慮した上で)単純な思想の実現になかなか納得できない人への反論も大きいことを指摘したい。

"物事の本質を必要以上に複雑化してはならない!"(Br.オッカム)。

最初の最適化に続いて、2番目の最適化(サンプル外)を行うことで、シンプルかつ十分な解決策となるのです

結局のところ、私たちは最適化のための最適化ではなく、利益という目標を追求しているのです。


私もそうで、オッカムに完全に同意している。最適化を2回行うべきではありません。1回で十分です。

Expert Advisorの最適 化の後、オプティマイザが提案するパラメーターのセットを十数個もサンプルとして実行しなければならないことがよくある」とおっしゃっていましたね。

サンプル-アウトサンプルに分けずに、全人口で実行することも、十分な解決策であり、さらに簡単な解決策です。

 

Vita さん、断固反対です。そうでなければ、ニューラルネットワークでは、すべてのデータを3つの部分に分割することはできません。つまり、本当のフィッティングは1回目だけで、3回目にはそれがどう転んでもいいように......。そして、「オッカムのカミソリ」か「システムの信頼性の喪失」かの選択は、システムの作り手に委ねられているのです。

大雑把に言うと、A+B+Cでの最適化は、上記の処理と全く同じではありません。

 
数理さん、彼が言いたいのは、結果の(組み合わせ論を忘れてはいけない)を全部集めて、4つのセットに分け、そのうちの3つを捨てるということだと思います。
 
Mathemat:

Vita さん、断固反対です。しかも、本当の最適化は最初の部分だけで、2番目は学習終了のタイミングを決めるだけ、3番目は単発のテストのためだけである。


ニューラルネットワークのデータを3分割するのは、法則(2x2=4など)を学習して、そのパターンを明らかにするために存在しているのではないでしょうか。 そして、それがある場合にのみ、です。そうでない場合は、ニューラルネットワークが単独でカーブにフィットすることになります。

そうすると、テスターの仕事は、学習やパターンの検出ではなく、最適なパラメータのセットを見つけることだと思えたんです。これは、単純なブルートフォースや遺伝的アルゴリズム、あるいはニューラルネットワークで行うことができる。しかし、一度サンプルに最適なパラメータのセットを見つけたら、カーブフィッティングを避けるにはどうしたらいいのでしょうか?原理は?サンプル外れのテストをすると消えてしまう集合の悪い要素は何でしょうか?

 
lna01:
Vita です。

--> スラッシングも同じこと(マーキング、チェック)です。 スプリッティングは、ストレートスルーと比べて、どんなプラスアルファがあるのでしょうか?


分割することで、情報を効果的にフィルタリングすることができます。量的にも。

--> 分割は、サンプル内またはサンプル外での損失はあるが、合計の累積利益がある結果をフィルタリングします。それはそれで捨てがたいのですが。

Vitaが書いた(a):

--> サンプル全体の最適化結果を処理する」というのが、集合Dを捨てるという意味であれば、私は反対です。中間損失(サンプル内またはサンプル外)を与える結果を捨てることは、サンプル全体の最適化自体の中で解決される基本的なタスクです。 つまり、最適化後の処理は必要ありません。結果はすぐに集合Bです。また、時間のかかるサンプル外の追加チェックは必要ありません。

数学的な意味での最適化なのか、実際のテスターでの最適化なのか、どちらでしょうか?サンプルは、私の理解では、今は両方のサンプルが含まれています。両方のサンプルに対して不要な3つのセットを実行することで、時間を節約できると思いますか?実装に関しては、自分でテスターを一から書けば、おそらく実装コストは無視できないでしょう。実装を試してみてから、質問に戻ろう。

--> " 私の理解では、サンプリングは両方のサンプルを含むようになりました。" - すみません、私はあなたにそう思わせるつもりはなかったのです。忘れてください。

私が言いたかったのは、本物のMetaTraderのテスターでは、サンプル+アンサンプルの母集団を最適化しても、サンプルを最適化した後にサンプル外でテストするのと同じ結果を得られるということです。 テスターでは、「エキスパートプロパティ」ボタンから「テスト」「最適化」タブで、好きな長さと深さの損失を解消することが可能です。そして、サンプルを最適化した後にサンプル外テストを行うことは、他のものを排除せず、全く何も追加しないという事実を私は支持しているので、これが問題の解決策となる。

残念ながら、任意の 曲線の下で完璧なパラメータ最適化を達成できるのは、数学的な意味においてである。サンプル外の「将来のための」テストは、サンプル+サンプル外の与えられた 母集団全体に対して、隠された、しかしやはり同じ些細な最適化であるかのようなトリックです。将来の保証はない、カーブフィッティングからの脱却はない。実行可能なパラメータは、別の方法で見つけなければならない。

 
ニューラルネットワークのデータを3つに分けるのは、そのパターンを明らかにするために、法則(2x2=4など)を教えるために存在しているのではないでしょうか。

そうです、Vitaは パターンの識別のためです。そして、私たちはここで何をするのでしょうか?この同定が、初期母集団の些細な「記憶」(=カーバフィット)に陥らないよう、さらに2つのデータセットが考案されている。NSでは次のように動作する。目標関数(通常は予測や分類の誤り)の減少に向けて集合A(訓練集合)で学習する。学習は、Aに関する誤差が単調に減少するように構成されています。

同時に、セットB(検証セット)でも、同じパラメータで同じエラーをテストしています。そこでは、誤差が潮汐関数として変化する(最初は下がり、次に最小になり、そして上昇する)。集合Bの誤差が最小になった時点で学習を停止し、さらに集合Aの学習を続けると、誤差が小さくなっても集合Bの誤差はすでに大きくなっているため、カーバフィッティングになる。このとき、ネットワークの汎化能力は低下すると言われている。そのため、Aへのフィッティングを限界まで行わず、強制的に学習を停止しています(ここが、メタクオート・オプティマイザが行うフィッティングと、アルゴリズムの根本的な違いです)。

最後に、学習が停止したパラメータのセットを第3集合C(テスト集合)に対して実行する。Cのデータは以前のトレーニングに影響を与えないので、これはトレーニングの質の真のチェックである。もちろん、見つかったパラメータでNSが安定に動作する保証はありませんが、このアルゴリズムは少なくとも95%の擬似グラールをキャンセルします(このフォーラムには1つ以上あります :)。

また、1つのデータ片に対する単純な検索は、最も純粋なカーバフィッティングであり、トレーニングエリアでは理想的だが、その外では価値がない。

もちろん、MT4はニューラルネットワークプログラムではないので、一般的なアルゴリズムは再設計する必要がありますが、それでも、私たちが「最適化」と呼ぶ、つまらないカーバフィットよりはましです、へへ...。

 
Vita:

私が言いたかったのは、本物のMetaTraderのテスターでは、サンプル+サンプル外の母集団を最適化しても、サンプルに続いてサンプル外のテストを最適化するのと同じ結果を得ることができる、ということです。Expert Advisor のプロパティ」ボタン、「テスト」「最適化」タブにより、任意の長さ、深さの損失を取り除くことができます。

すべてはタスクの定義に依存する。テスト時間に対する利益分布の均等 性の程度を無視すれば、MTテスターの標準能力は本当に十分であり、費やした時間は同程度になる。これをおろそかにしていいのでしょうか?人それぞれ、経験や見解があります。確かにフィッティングという言い方もできますが、近似という 言い方のほうがより正確なのではないでしょうか。すべての近似値が未来に外挿できるわけではなく、利益の均一性の基準は、明らかに外挿に適さない変種を拒否することを可能にするだけです。もちろん、IMHOです。

 
Mathemat:

また、1つのデータに対する単純なオーバーシュートは、トレーニングエリア内では完璧だが、その外では価値のない、純粋なカーバフィッティングである。

--> その通りです。

しかし、プロットを断片的に分割することで何ができるのでしょうか。3つの異なるフラグメントでの「疑似学習」が何につながるのか? 個々のプロットでの利益につながるのか? そのような適合性はどのようにすればよいのか?オフプロットでの収益性を保証するものなのでしょうか? そう思うのであれば、ぜひともそうしてください。さらに、このテスターでは、各フラグメントA, B, C...のカーブを滑らかにすることができます。利益を出す。

ただ、ニューラルネットワークは、このテーマとは無縁なので、もうやめましょう。人々は怪しげな利点のために手動で面倒なことをしています。ところで、私は指摘しましたが、それ以上何も聞いていません。サンプルでの最適化とサンプル外でのテスト後の結果は、どのような方法で、ありふれた実行よりも優れているのでしょうか。このように、我々はニューラルネットワークの理論ではなく、実際の仕事と結果を話しているのです。 私が指摘した以外の、本当の利点がまだあるとすれば、それを指摘していただけませんか。