出力:TotalBase.dat (バイナリ軌跡データ)。
出力:TotalBase.dat (バイナリ軌跡データ)。
ステップ1を実行するにはどうすれば よいでしょうか?なぜなら、以前に学習したEncoder (Enc.nnw)とActor (Act.nnw)がないので、Research.mq5を 実行できないし、SignalsSignal1.csv ファイルがないので、ResearchRealORL.mq5も 実行できないから です 。
私の理解では、ステップ1のパイプラインでResearch.mq5またはResearchRealORL.mq5を以下のように実行する必要があります。
出力:TotalBase.dat (バイナリ軌跡データ)。
出力:TotalBase.dat (バイナリ軌跡データ)。
ステップ1を実行するにはどうすれば よいでしょうか?なぜなら、以前に学習したEncoder (Enc.nnw)とActor (Act.nnw)がないので、Research.mq5を 実行できないし、SignalsSignal1.csv ファイルがないので、ResearchRealORL.mq5も 実行できないから です 。
こんにちは、
Research.mq5には
//--- モデルをロードする float temp; //--- if(!Encoder.Load(FileName + "Enc.nnw", temp, temp, temp, dtStudied, true)) { CArrayObj *encoder = new CArrayObj(); if(!CreateEncoderDescriptions(encoder)) { delete encoder; return INIT_FAILED; } if(!Encoder.Create(encoder)) { delete encoder; return INIT_FAILED; } delete encoder; } if(!Actor.Load(FileName + "Act.nnw", temp, temp, temp, dtStudied, true)) { CArrayObj *actor = new CArrayObj(); CArrayObj *critic = new CArrayObj(); if(!CreateDescriptions(actor, critic)) { delete actor; delete critic; return INIT_FAILED; } if(!Actor.Create(actor)) { delete actor; delete critic; return INIT_FAILED; } delete actor; delete critic; } //---
プリトレーニングモデルがない場合、EAはランダムなパラメータでモデルを生成します。また、ランダムな軌跡からデータを収集することができます。
ResearchRealORL.mq5についてはこちらを ご覧ください。
- www.mql5.com
trajectory.mqhのレイヤー2-4(604行目あたり)のmambaフォルダ
問題があると思います。
new CLayerDescription()をMambaループの中に移動させたので、3つのレイヤーそれぞれに割り当てが発生します
これが私の書き方です。
for(int i = 2; i <= 4; i++) { if(!(descr = new CLayerDescription())) return false; descr.type = defNeuronMambaOCL; descr.window = BarDescr; //ウィンドウ descr.window_out = 4 * BarDescr; //インサイド・ディメンション prev_count = (int)(descr.count = HistoryBars); //単位 descr.batch = 1 e4; descr.activation = None; descr.optimization = ADAM; if(!encoder.Add(descr)) { delete descr; return false; } }
私が正しいのか間違っているのか、誰か教えてください。
in trajectory.mqh, layer 2-4 (around line 604) in mamba folder
問題があると思います。
new CLayerDescription()をMambaループの中に移動させたので、3つのレイヤーそれぞれに割り当てが発生します。
私ならこう書きます。
私が正しいか間違っているか、誰か教えてください。
こんにちは、Seyedsoroush Abtahiforooshaniさん。
この場合、我々はレイヤーを形成せず、そのアーキテクチャーの記述のみを行う。そしてプログラムはこの記述に基づいてニューロン層を生成する。最初の変形では、descr = new CLayerDescription()が配列の外に形成されるとき、1つのレイヤーに対して1つのdescrオブジェクトを形成し、そのポインタを必要な回数渡します。descrオブジェクトはモデルレイヤーを形成するときに変化しない。そのため、ニューロン層は同じアーキテクチャで形成されますが、各層は独自のパラメータを持ちます。
オブジェクトの形成をループに移した場合、作成されるモデルは何も変わりません。Descrの 複製が追加で作成されるだけで、モデルの形成後すぐに削除されます。このため、モデル形成時に余分な操作とメモリ消費が追加されます。モデルの操作には何の影響もありません。
- 無料取引アプリ
- 8千を超えるシグナルをコピー
- 金融ニュースで金融マーケットを探索
新しい記事「取引におけるニューラルネットワーク:状態空間モデル」はパブリッシュされました:
これまでにレビューしたモデルの多くは、Transformerアーキテクチャに基づいています。ただし、長いシーケンスを処理する場合には非効率的になる可能性があります。この記事では、状態空間モデルに基づく時系列予測の別の方向性について説明します。
近年、大規模モデルを新しいタスクに適応させるというパラダイムがますます普及しています。これらのモデルは、テキスト、画像、音声、時系列データなど、幅広いドメインの任意の生データを含む大規模なデータセットで事前学習されています。
この概念自体は特定のアーキテクチャに依存しませんが、ほとんどのモデルは単一のアーキテクチャ、すなわちTransformerとそのコア層である自己アテンション(Self-Attention)に基づいています。自己アテンションの効率性は、コンテキストウィンドウ内で情報を密に伝播させることで、複雑なデータのモデリングを可能にする能力に起因します。しかし、この特性には本質的な制約があります。すなわち、有限のウィンドウを超えたモデリングができないこと、およびウィンドウ長に対して計算コストが二次的に増大することです。
シーケンスモデリングのタスクにおいて、これに対する代替手法の一つとして、状態空間モデル(State Space Models、SSM)に基づく構造化シーケンスモデルの利用が挙げられます。これらのモデルは、再帰型ニューラルネットワーク(RNN)と畳み込みニューラルネットワーク(CNN)の組み合わせとして解釈でき、シーケンス長に対して線形または準線形の計算スケーリングを実現することで、高い計算効率を持ちます。さらに、特定のデータモダリティにおいて長距離依存関係をモデル化するための固有のメカニズムを備えています。
時系列予測において状態空間モデルを活用するためのアルゴリズムの一つとして、論文「Mamba:Linear-Time Sequence Modeling with Selective State Spaces」で紹介された手法があります。この論文では、新たなクラスの選択的状態空間モデルを提案しています。
作者: Dmitriy Gizlyk