"New Neural "は、MetaTrader 5プラットフォーム用のオープンソース・ニューラルネットワークエンジンプロジェクトです。 - ページ 44

 
ウラン です。

指定された範囲のPRNGクラス。

利点:初期設定の異なる複数のランドムを持つことができる。

は、10 lmまでの任意の範囲の値を均等に分布させることができます(残念ながら、それ以上の値を配列で得ることはできません)。

10回の呼び出しで、Rand()は標準的なrandを50μs上回りました(時間 rnd.Rand()=344 時間 rand()=391)。

欠点:Srand()の初期化に時間がかかる、標準的な範囲は32768(766μs)、1Lは2分近くかかる。

10ラックの上限は確認していませんが、時間がだんだん伸びていくので、とてつもなく長いのでしょう。


健全な批判は受け入れる。



詳しく教えてください。

これらの機能はどのような目的で必要なのでしょうか?

   uint              control(){return(gcnt-1);};// получить значение счётчика при последнем автоматическом запросе Rand

   uint              Rand(uint i){return(res[i]);};// запрос Rand по указанному i (счётчик не изменяется)

あるいは、ちょっとした使い方の例も。

標準のものではダメなんですか?

 
her.human:

詳しく教えてください。

これらの機能は、どのような目的で必要なのでしょうか?

   uint              control(){return(gcnt-1);};// получить значение счётчика при последнем автоматическом запросе Rand

   uint              Rand(uint i){return(res[i]);};// запрос Rand по указанному i (счётчик не изменяется)

あるいは、その使い方のちょっとした例。

標準のものではダメなんですか?

これらの関数は、ランダムな配列の一部または全部を単純にコピーしたり、Rand()の特定の呼び出しで発行された値を取得するために必要とされるかもしれません。

Rand()はいろいろな意味で不満がある。

1) 0から100までの一様分布の 配列を得たい場合、標準から直接得ることはできません(アルゴリズムを修正する必要があります)。

2) 2つのシーケンスを同時に使用することはできません、srandの初期化、以前の初期化を使用することが不可能になります。

3) 標準のランドの範囲では、32768個のパーツしか使用できず、それ以外のものは使用できません。100000で割るのもどうかと思うが、10の倍数で割るのもダメだ。例:範囲 [-1;1] があり、3桁目までのステップに分割する必要がある場合、クラスを範囲2000で初期化し、次に

Rand()/1000.-1.

を生成し、[-1;1]の範囲から0.001刻みでPRNGを取得します。

標準のものではできません。

 
誰が、何を、教えてください、タスクを最適化する他の方法はないのでしょうか?
 
ウラン です。

これらの関数は、ランダムな配列の一部または全部を単純にコピーしたり、Rand()の特定の呼び出しで発行された値を取得するために必要となる場合があります。

スタンダートは、いろいろな意味で不満が残る。

1) 0から100までの一様分布の配列を得たい場合、標準から直接得ることはできません(アルゴリズムを修正する必要があります)。

2) 2つのシーケンスを同時に使用することは不可能であり、srandの初期化により、以前の初期化を使用することが不可能になります。

3) 標準の rand の範囲では、32768 の部分にのみ分割を行うことができ、それ以外の方法では分割を行うことはできません。100000に分けるという話でもなく、10の倍数にも分けられないでしょう。例えば、範囲 [-1;1] があって、それを第3符号の精度で段階的に分割する必要があるので、2000の範囲にクラスを初期化する必要があります。

とし,[-1;1]の範囲から0.001ステップでPRNGを取得します。

標準のものではできません。

1)同意見です。

2)明確でない?どのような目的で必要なのでしょうか?

3) あまりコードには触れなかったのですが、1)を参照しているようです。

そこで、この2つの機能に関して質問させてください。

そんなクラス(機能)が絶対に必要です。しかし、誰も無駄なブレーキは必要ないのです。

 

もし、ステップ2を理解するのが難しいのであれば、そもそもなぜPRNGが必要なのかを決めるべきかもしれません。

そうすれば、なぜ相関のない2つのPRNG列を同時に持つ必要があるのかが明らかになる。

 
ウラン です。

もし、ステップ2を理解するのが難しいのであれば、そもそもなぜPRNGが必要なのかを決めるべきかもしれません。

そうすれば、なぜ相関のない2つのPRNG配列が同時に存在するのかが明らかになるはずです。


不思議な話ですが、相関のないPRNG配列があります。

ニューラルネットワークが何のためにあるのか理解できないのですが?

 
人間で ある。

このニューラルネットワークは何のためにあるのかがわからないのですが?

別に、今時は派手なだけなんですけどね...。

ウラン です。

利点:初期設定の異なる複数のランドムを持つことができる。

では、それぞれのオブジェクトが異なるシーケンスをリードしているのですか?

欠点:Srand()の初期化に時間がかかる、標準的な範囲は32768(766μs)、1ラムはほぼ2分である。

ここが本当に、非現実的で怖いところです。こんなはずじゃなかった。

ちょっとでも隙があったら見ます。
 
彼女.人間:

不思議な話ですが、相関のないPRNG配列があります。

ニューラルネットワークは何のためにあるのか、よくわからない。

忘れた頃に思い出させてくれるのは、randを32768回呼び出した後(再初期化しない場合)、シーケンスが繰り返されることです。

従って、1つの初期化で時間的に並列な2つの配列を生成する場合、一部の区間は相関を持つ可能性がある(これは必須ではないが、可能性はある)。

ネットワークには、MontecarloやGAなど様々なアルゴリズムがありますが、どのアルゴリズムでも重みの初期値が必要です。

 
TheXpert:

何も、最近は派手なだけですが...。

1) それぞれのオブジェクトが異なるシーケンスをリードするわけですか?

2)ここが、本当に、怖い、非現実的なんです。そんなことはないはずです。

ちょっとでも隙間ができたら見る。

1 はい、どのオブジェクトもsrand()でシーケンスを記憶し、標準のrand()と同じようにぐるぐる回っています。

2 すでにできる限り最適化した、より悪い状態です。

簡単に、問題を解決しやすくするために、そこで行ったことを説明します。

準備の後、我々は一時的な配列増加シーケンス(カウンタ値)を書き、その後、ジェネレータは、範囲rengeから値を与える(このインデックスは、一時的なもので、結果のバッファの値としてすぐに、renge(ジェネレータを与えることはできません値)を置くresに割り当てるときに要求されています。)tempにrengeがある場合は,すでにresに値が代入されているので,クイックソート(rengeを配列の最後まで持っていく)をして,残りの未処理の配列で範囲を切り捨てています.そして、すべてのResが満杯になるまで続けます。

 
ウラン です。

もし忘れても、32768回randを呼び出した後(再初期化しない場合)、そのシーケンスが繰り返されます。

従って、1つの初期化で2つの配列を時間的に並列に生成した場合、部分的に相関を持つ可能性がある(強制ではないが、その可能性はある)。

ネットワークにはMontecarloやGAなど様々なアルゴリズムがありますが、どのアルゴリズムでも重みを初期化する必要があります。

すべて憶測です。証拠がないのです。

GAでいろいろ実験して、PRNGがループする(繰り返される)ことに疑問を感じていたんです。リールのことではないことがわかったのですが...。(これは私のことです)。

結論:PRNGはGAの動作に影響を与えない。

初期化について。

ゼロやPRNG、ファイルからの初期化など、選択肢を 増やしたいという希望があります。