記事「取引におけるニューラルネットワーク:状態空間モデル」についてのディスカッション

 

新しい記事「取引におけるニューラルネットワーク:状態空間モデル」はパブリッシュされました:

これまでにレビューしたモデルの多くは、Transformerアーキテクチャに基づいています。ただし、長いシーケンスを処理する場合には非効率的になる可能性があります。この記事では、状態空間モデルに基づく時系列予測の別の方向性について説明します。

近年、大規模モデルを新しいタスクに適応させるというパラダイムがますます普及しています。これらのモデルは、テキスト、画像、音声、時系列データなど、幅広いドメインの任意の生データを含む大規模なデータセットで事前学習されています。

この概念自体は特定のアーキテクチャに依存しませんが、ほとんどのモデルは単一のアーキテクチャ、すなわちTransformerとそのコア層である自己アテンション(Self-Attention)に基づいています。自己アテンションの効率性は、コンテキストウィンドウ内で情報を密に伝播させることで、複雑なデータのモデリングを可能にする能力に起因します。しかし、この特性には本質的な制約があります。すなわち、有限のウィンドウを超えたモデリングができないこと、およびウィンドウ長に対して計算コストが二次的に増大することです。

シーケンスモデリングのタスクにおいて、これに対する代替手法の一つとして、状態空間モデル(State Space Models、SSM)に基づく構造化シーケンスモデルの利用が挙げられます。これらのモデルは、再帰型ニューラルネットワーク(RNN)と畳み込みニューラルネットワーク(CNN)の組み合わせとして解釈でき、シーケンス長に対して線形または準線形の計算スケーリングを実現することで、高い計算効率を持ちます。さらに、特定のデータモダリティにおいて長距離依存関係をモデル化するための固有のメカニズムを備えています。

時系列予測において状態空間モデルを活用するためのアルゴリズムの一つとして、論文「Mamba:Linear-Time Sequence Modeling with Selective State Spaces」で紹介された手法があります。この論文では、新たなクラスの選択的状態空間モデルを提案しています。

 

作者: Dmitriy Gizlyk

 
私の理解では、ステップ1のパイプラインでResearch.mq5またはResearchRealORL.mq5を以下のように実行する必要があります。

Research.mq5を実行する場合
目的
エンコーダー(Enc.nnw)とアクター(Act.nnw)を使って取引アクション(買い/売り、出来高、TP、SL)を予測する。
これらのアクションから軌跡を収集し、TotalBase.datに保存する。
要件
事前にトレーニングされたEncoder (Enc.nnw)とActor (Act.nnw)が必要です。
この2つのファイルがないと、市場の状態をエンコードし、アクションを予測するためにEAを実行することができません。

出力:TotalBase.dat (バイナリ軌跡データ)。


ResearchRealORL.mq5を実行した場合
目的
SignalsSignal1.csvからの実際の履歴に基づいて取引をシミュレートする(Actorからの予測の代わり)。
これらの取引から軌跡を収集し、TotalBase.datに保存する。
要件
取引履歴(オープン/クローズ時間、タイプ、数量、価格など)を含むSignalsSignal1.csvファイルが必要。
予測の代わりにSignal1.csvのデータを使用するため、エンコーダーやアクターは不要。

出力:TotalBase.dat (バイナリ軌跡データ)。


ステップ1を実行するにはどうすれば よいでしょうか?なぜなら、以前に学習したEncoder (Enc.nnw)とActor (Act.nnw)がないので、Research.mq5を 実行できないし、SignalsSignal1.csv ファイルがないので、ResearchRealORL.mq5も 実行できないから です

 
trungns #:
私の理解では、ステップ1のパイプラインでResearch.mq5またはResearchRealORL.mq5を以下のように実行する必要があります。

Research.mq5を実行する場合
目的
エンコーダー(Enc.nnw)とアクター(Act.nnw)を使って取引アクション(買い/売り、出来高、TP、SL)を予測する。
これらのアクションから軌跡を収集し、TotalBase.datに保存する。
要件
事前にトレーニングされたEncoder (Enc.nnw)とActor (Act.nnw)が必要です。
この2つのファイルがないと、市場の状態をエンコードし、アクションを予測するためにEAを実行することができません。

出力:TotalBase.dat (バイナリ軌跡データ)。


ResearchRealORL.mq5を実行した場合
目的
SignalsSignal1.csvからの実際の履歴に基づいて取引をシミュレートする(Actorからの予測の代わり)。
これらの取引から軌跡を収集し、TotalBase.datに保存する。
要件
取引履歴(オープン/クローズ時間、タイプ、数量、価格など)を含むSignalsSignal1.csvファイルが必要。
予測の代わりにSignal1.csvのデータを使用するため、エンコーダーやアクターは不要。

出力: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についてはこちらを ご覧ください。

Neural networks made easy (Part 67): Using past experience to solve new tasks
Neural networks made easy (Part 67): Using past experience to solve new tasks
  • www.mql5.com
In this article, we continue discussing methods for collecting data into a training set. Obviously, the learning process requires constant interaction with the environment. However, situations can be different.