市場のエチケット、あるいは地雷原でのマナー - ページ 31

 
paralocus писал(а)>>

Neurton さん、こんにちは。とにかく、まだ二重には縁がない。

OROで単層パーセプトロンを書いて、昨日一日中動かしていました。挙動がおかしいんです。学習したりしなかったり、エポック数に破滅的に依存する。

というわけで、私の結果は以下の通りです。8エポック-グリッドは学習しない、12エポック-グリッドは学習する、13エポック-グリッドは学習しない。

要するに、まだできないことを自慢している結果です。

いずれにせよ、私が実装したアルゴリズムについて説明します。見落としがないか確認する。

1.パーセプトロンはD個の 2値入力を持ち、そのうちの1つは定数+1である。

2.使用するBPは、Openの 回数に応じたCotierのインクリメントを順次行うものです。

3.すべての重みは、開始前に+/-1の範囲から小さなランダムな値で初期化されます。

4.学習ベクトルの長さは、P = 4 *D*D/D = 4*D として計算されます。

5.ここで,Test はn+1 番 目,つまり次の読み出し時の BP の値,OUTn 番目の 読み出し時のグリッド出力である.

6.入力Qs での誤差の値は、グリッド誤差Qs にスクイーズ関数の微分値(1 - OUT+OUT)を乗じることで、Q = Qs *(1 - OUT*OUT)......となる。

7.ニューロンに入る各重みの補正ベクトルCOR[i] += Q*D[i] を計算し、エポック中に累積する。

8.SQR[i] += COR[i]*COR[i] は、ニューロンに含まれる各重みについて、エポック全体で別々に計算され、蓄積されます。

9.エポック終了時に、各重みに対して個人補正を計算し、その重みに加えるW[i] += COR[i]/SQR[i]

係数を(1 - j/N)にすることと、絶対値が20以上伸びた重みをランダムにすることを試してみました。ランダム化するとより効果的です。

P.S. 本文中の誤りを訂正しました。

paralocus、入力に彼女を貼り付ける This:

オープニング価格の代わりにそして、その結果を投稿してください。もし学習しないのであれば、エラーは致命的であり、真剣に検索する必要があります。

P.S. ベクトルノルムで割るのか、二乗で割るのか?ノルムでやればいいのですが、書いてあることは根を取らない二乗和のように見えます。

 

ありがとうございます、試してみます。

AUDUSD, H4, D = 13, 33 epochsの結果です。2009.01.08~2009.05.21の一部履歴でテスト実施。

オプティマイザーで得られたポイント(エポック数:31, 25, 14, 10, 7)はもっと多いのですが、その分結果が悪くなっています。





追伸:その通りですルートは...二乗...。取り出すの忘れてた!

 
paralocus писал(а)>>

追伸:その通りですルートは...二乗...。取り出すの忘れてた!

あのチャパエフのジョークのように!:-)

 
Neutron >> :

あのチャパエフのジョークと同じだ!:-)

-:) ...泣きながら、サーベルを研ぐ...。

 

いや、Petyaは庭の茂みを全部引き抜いたんだ。平方根を求めろと言われたんだ:-)

ほら、見てください。これは2つの入力を持つ2層Ns-caで、各サンプルに8つの学習エポックがあります。全部で500サンプルで、10回の独立した実験の平均値として正しい予測確率を算出する(結果の統計的有意性のため)。

赤は学習用サンプル、青はテスト用サンプルでの結果を示しています。この結果は、ネットワークが過剰に訓練されていないことを示すものであり、良いことだと言えます。多くの場合、短すぎる学習ベクトル(最適な長さよりも短い)を選択し、学習サンプルにほぼ100%の影響を与えることが間違いです。同時に、トレーニングに参加しなかったサンプルの予測結果には目もくれないのですこの場合、通常、結果はゼロに近くなります。これはオーバートレーニングであり、グリッドは単にレッスンを暗記しただけで、自分自身を構成することができないのです。そして、落第する原因は何だろうと考えるのです。

 

万歳!!!!

入金額が1Kを超えました

Neutronさん、グリッドのバイナリエントリーは、テストサンプルの計算式で学習させるのですか?

 

この式で構築したBPを、同じ価格刻み Hの セグメントに分割し、最初の差を取る。刻みを±1まで切り上げて、予測するようにしています。Hn Fig. 横軸に水平線 Hを pips単位で、縦軸に確率をプロットしています。つまり、エントリーはバイナリーです。

 

それでわかったんです。この数式を目で見るために、私はインジケーターとしてチャートに貼り付けました。グリッド入力にこれだけのものを載せましたが、結果を見る方法がわかりません。

すなわち、テスターではできない。重さをプリントアウトして見るしかない...。生きているかどうか

いや、そんなことはないんです。得られたBPを同じ増分のセグメントに分割せず、D カウントで連続した増分のBPを取ったのです。

 
paralocus писал(а)>>

それでわかったんです。この数式を目で見るために、私はインジケーターとしてチャートに貼り付けました。グリッド入力にこれだけのものを載せましたが、結果を見る方法がわかりません。

つまり、テスターでは無理なんです。重さをプリントアウトして見るしかない...。生きているかどうか

いや、そんなことはないんです。出来上がったBPを等間隔に区切らず、D カウントで連続したBPの増分を取っています。

Comment()でウェイトを表示するのはどうでしょうか?

 
FION >> :

Comment()で重さを表示することは可能ですか?

できますが、それ以降にComment()を呼び出すと、前の出力と同じグラフィック座標で実行されるため、前の出力の結果が「詰まって」しまうので、不便です。したがって、Print()の方がよい。