ニューラルネットワークのプログラミングに関する質問 - ページ 6

 
Vinin:


入力256個、ニューロン256個につき隠れ層1個の普通のグリッドを作りました。そして、1つのニューロンからなる出力層。そして、私はそれをすべてMT4で完璧に訓練しました。

1.遺伝的 テスターのアルゴリズムか、それとも内部のメッシュ学習アルゴリズムか?

 
Reshetov:
テスターの遺伝的アルゴリズムによるものか、それとも内部のメッシュ学習アルゴリズムによるものか?

すべてスクリプトで行う。内部アルゴリズム
 
最適化でバリエーションが増えたがカウンターを作り、最適なオプションをグローバル変数 に保存しました。結果が良くなったので書き直した。ぴったりとしたものがありました。
 
ポイントは、最後の3つを除いて、すべての重みと閾値をテスターGAに拾わせ、レポートの入力パラメータを参照していることです。10000本のバーを最適化するのに5分もかからないので、学習効果が高いです。それに、256の入力は必要ありません。3つあれば十分で、その上、グリッドは白黒に再トレーニングされます。
 
Reshetov:


入力は3つで十分なので、256も必要ありません。それがあっても、グリッドは黒で再トレーニングされます。

これは、このトピックの範囲をはるかに超えています。議論に値しない。千人千色
 
Vinin:

これはもう、トピックの範囲外ですね。議論する必要はない。人それぞれです。


話題はとっくに失速しているのだから、何の害もないだろう...。

レシェトフ


それに、3つでも十分悪いので、256の入力は必要ありません。彼らも黒でグリッドを再トレーニングします。


本当に再トレーニングをするのですか?もしかして、単にアーキテクチャの弱さから「汎用性・計算能力」が不足しているのでは?

2つのワゴンの交差点にいる専門家はオプティマイザーで調整しますが、よほど運が良くないとフォワードにしか効きません。しかも、明らかにオーバートレーニングの話ではないのに...。

実際、オーバーシュートと戦うのは簡単です。トレーニングのサンプル数を増やして、コントロールまたはOOSで安定したプラスにするのです。NSは全サンプルを記憶することができず、一般化するしかない。この場合、システムの特性低下は避けられませんが、ここでは、例えば、入力に大きく依存します。

 
Figar0:


まあ、話題はとっくに終わっていて、害はないのですが...。

しかし、モデレーターと議論するのはやめたほうがいい。少なくとも、IMHOのルールに違反することはありませんし、万が一の場合は行政に訴える権利もあります。

Figar0:


本当に再研修は?もしかして、アーキテクチャが弱いから「汎用性・計算能力」が足りないだけ?

はい、そうです。

証明するのは簡単です。要は、最適化の結果が 非常に粒ぞろいだと、前方のものは彼らにとっては不成功なのです。しかし、これらの結果はまさに指標によって整理され、そしてフォワードがすでに成功を与えている、より地に足の着いた価値を探すことができるのです。成功したフォワードは、まさにこの結果が重々しすぎず、かといってパフュームすぎない最適化の結果に群がっていると言った方が正しいでしょう。

最もシンプルな例です。履歴をきちんとした間隔で取り、TakeとStopを外し、TSを設定して、バーごとにVSのTCの読み取りを行い、取引に使用します。つまり、グリッドの読みが開放位置のウールに反している場合、それを反転させるのです。グリッドは、数個のディールしか開かず、そのすべてが勝利するように設定されている(利益要素がない)。1層パーセプトロンでも、標準的なネットでも遭遇したことがない。グリッドはそこそこ間違っていることが多いので、長い履歴でストップやテイクオーバーがなくても、ちゃんとトレードしてくれるんです。

これは、第1層を修正したことで、どうにかして隠れ層の入力に厳密に線形分離されたデータを与えることができるようになったからだと思います。私のデザインはローゼンブラットよりもずっとシンプルだから、誰にもわからない。その理由の多くは、GAでネットワーク全体をすべての入力パラメータについてワンパスで調整するためで、GAは直接ではないものの、極限を探す戦車のようなものですが、こうした最適化のための多因子データは、明確な極限やいくつかの極限がある限り、アスファルトに指を2本置いたようなものです。一方、第1層は原始的であるため、非常に迅速かつ十分なチューニングが可能です。

現代のニューラルネットワークは、入力層を複雑にしすぎてしまったと思うんです。そのため、あまり十分に機能しない。そして、多層ネットワークでは、第1層が最も重要で、隠れ層に何を出力するかによって、最終的な結果に影響を与えるからです。結局、通常のグリッドは3層構造であることが多く、隠れ層と出力層はすでに多次元空間におけるプリミティブな線形平面である。

もう一つの仕掛けは、入力データの動的正規化である。スタティックに適用すると、ボラティリティが変化すると(フォワードでは確実に変化する)、結果に影響が出る。私はこの問題を、ダイナミックに解決しました。

 
Reshetov:

....

前ページのようなエントランスは?そこそこスベってますね・・・。NSでどんな魔法を使ったら、こんなプリミティブな結果が得られるのか、想像もつかない。そして、どこでトレーニングサンプルを取っても、SOSで上り坂になるというのは、どういうことなのでしょうか。結果は本当に安定しているのでしょうか?他のペアや楽器はどうですか?EURUSDは最も予測しやすいものです。

レシェトフ

グリッドが適応されないようにするために、取引戦略をいじる必要があったのです。

私にも理解できません。NSがシグナルを出すべきであり、トレーニングの段階でTSによってNSを指示するのは、個人的には非論理的だと思うのです。ここではなぜか、その逆のアプローチに...。TSはどのような方向にねじれたのでしょうか?

レシェトフ

もう一つの仕掛けは、入力データの動的正規化である。スタティックに適用すると、ボラティリティが変化すると(フォワードでは確実に変化する)、結果に影響が出る。私はこの問題を、ダイナミックに解決しました。

私も実践していますが、うまくいくときもあれば、そうでないときもあります。また、インプットにもよるだろうが、それらのインプットは確実に利益をもたらすだろう。もちろん、動的正規化は入力に情報性を持たせるが、学習が難しくなる。学習は「簡単」なので、プラスの結果に働くのは理にかなっている。

 
Figar0:

前ページのようなエントランスは?そこは手を振っている時期でスレ違いなのですが・・・。

ウェービング期間を一定にしています。以前は入力パラメータだったのですが、いろいろと成功したフォワードテストを集めてみると、まさにこの定数に踊らされているという結論に達しました。

Figar0:


こんな原始的なものを使って、NSがどんなマジックを使って結果を出すのか、想像もつかない...。

...

私も理解できません。NSがシグナルを出すべきで、トレーニングの段階でTSを通してNSを指示するのは、個人的には非論理的だと思います。ここではなぜか、その逆のアプローチに...。TSはどのような方向にねじれたのでしょうか?

これだけのものを1日で組み立てたわけではなく、長い時間をかけて少しずつ組み立てていったのです。あるものは徐々に追加され、あるものは磨かれ、あるものはアルゴリズムから削除されました。

によって行われた。

1.コードを最小化するためにミケランジェロの方法:石の塊から不要なものを削り取り、彫刻を作る(後にこの方法はオッカムと彼のカミソリに帰結した)。

2. テスターの最適化の制約を回避できる

3.フィッティングを解消するために、これだけの厚みにTCを搭載した

Figar0:

では、どこでトレーニングサンプルを取っても、OOSでは上り坂になるというのは本当なのでしょうか?結果は本当に安定しているのでしょうか?他のペアや楽器はどうですか?EURUSDは最も予測しやすい。

OOSでの結果は別物、プラムもある。結果を知っていながらフィッティングした後、グリッドがスプレッドに流出しなかったとしたら驚きです。全部が全部利益だとは言っていない。一番「おいしい」ものを選んだと言ったのだ(全部見ていないので、もっと「おいしい」ものがあるかもしれない--世の中にはたくさんありすぎる)。

他の戦略との唯一の違い:成功したフォワードは手動で簡単に見つけることができ(最適化結果が 整理されると混雑する)、選択肢はかなり広い+個々の入力パラメータによるまともなスライス、つまり緩やかな下降で極値。

他のペアの中では、ゴールドとGBPUSDで少しテストしました。

 
Reshetov:

悲観論は、ストラテジー・テスターの限界によって決定されます。つまり、入力値の範囲が大きいか、同じ値の数が制限を超えると、オプティマイザーは起動を拒否します。やっぱり限界があるんですね。

今日、3:3:1アーキテクチャ(入力に3ニューロン、隠し入力3、出力1)で、全てMQL4で書かれたニューラルネットワークの構築をようやく完了しました。すべてのレイヤーはテスターGAを使用して構成されています。しかし、問題は、1つのレイヤーに対して、少なくとも12個の入力パラメータが必要で、少なくとも-1から1までの値を1刻みで指定する必要があることだ(Rosenblattのように)。でも、オプティマイザーはそんなにたくさんは処理できないんです。もがきながら1層目を簡略化することになったのです。

他人のメッシュに対して、自作はバージョンアップが可能な点が良いですね。例えば、最初のレイヤーを非標準にしたほか、入力データの動的正規化も追加しました。

入力される信号は、極めて原始的なものです。

つまり、重みと閾値を簡単に選択でき、テスト結果に一度も誤りがないことが証明された(profit factorなし)。しかし、そのようなフィッティングの後、フォワードテストはすぐにスプレッドで急降下を始める。グリッドの調整をさせないように、取引戦略をいじる必要があったのです。

脳みそが裏返るような思いもしましたが、頑張った甲斐がありました。

以上がテスト結果です。1から273の案件まで - 最適化、そしてフォワードテスト。

そして、こちらがフォワードテストです。

フォワードテストの結果を紹介します。

ストラテジーテスターレポート
RNN
Alpari-Demo (Build 409)

シンボルマーク EURUSD (ユーロ vs 米ドル)
期間 1時間(上半期) 2011.10.24 00:00 ~ 2012.01.13 23:59 (2011.10.24 ~ 2012.01.14)
モデル 始値による(バー始値制御が明示されているExpert Advisorのみ)
パラメータ t1=54; t2=4; t3=48; x1=194; x2=128; x3=68; y1=1; y2=1; y3=-1; t4=136; sl=900; lots=1; mn=888.となる。

歴史に残るバー 2431 モデル化されたダニ 3862 シミュレーション品質 非対称性
チャートの不一致エラー 0




初回入金額 10000.00



当期純利益 14713.00 利益合計 40711.60 全損 -25998.60
収益性 1.57 期待されるペイオフ 88.10

絶対値ドローダウン 2721.60 最大ドローダウン 4800.00 (39.74%) 相対的ドローダウン 39.74% (4800.00)

総取引高 167 ショートポジション(勝率) 101 (67.33%) ロングポジション(勝率) 66 (92.42%)

利益を得た取引(全体の割合) 129 (77.25%) 損失取引(全体に占める割合) 38 (22.75%)
最大 儲け話 900.00 負け組み -907.20
平均値 得な話 315.59 負け組み -684.17
最大 れんしょう 13 (2557.00) 継続的損失(ロス) 4 (-3605.40)
最大 継続的な利益(勝利数) 3511.60 (11) 連続損失(損失数) -3605.40 (4)
平均値 連勝 4 継続的な損失 1





一番面白いのは、チャート上でも最適化区間が順方向より悪くなっていることがわかることです。これはめったにないことです。他のフォワードは、最適化よりもずっと悪い結果が出ているのですが、それでも一番良い結果が出ているのです。


ご指摘ありがとうございます。あなたとVininは、私にとっての権威です。一番面白いのは、お二人とも正しいことを言っているのに、同じ目標に向かって並行して進んでいることに気づいていないことです。片方から取って、もう片方から取って、今結果を待っているところです。新しい方向性を作っているが、非常に難しい!!!