DQN法やその派生モデルを用いて様々なモデルを訓練する際、Q関数の値を過大評価するという問題がよく現れます。これは、離散的な行動を持つモデルでも、連続的な行動の空間で問題を解くときでも特徴的です。この現象の原因や、その結果に対する対処法は、個々のケースによって異なります。したがって、この問題を解決するための統合的なアプローチが重要です。そのようなアプローチの1つが、2018年2月に発表された記事「Addressing Function Approximation Error in Actor-Critic Methods」で紹介されています。ここでは、TD3 (Twin Delayed Deep Deterministic policy gradient)と呼ばれるアルゴリズムが提案されています。このアルゴリズムはDDPGを論理的に継承したものであり、モデル学習の質を高めるいくつかの改良を導入しています。
新しい記事「ニューラルネットワークが簡単に(第48回):Q関数値の過大評価を減らす方法」はパブリッシュされました:
前回は、連続的な行動空間でモデルを学習できるDDPG法を紹介しました。しかし、他のQ学習法と同様、DDPGはQ関数値を過大評価しやすくなります。この問題によって、しばしば最適でない戦略でエージェントを訓練することになります。この記事では、前述の問題を克服するためのいくつかのアプローチを見ていきます。
DQN法やその派生モデルを用いて様々なモデルを訓練する際、Q関数の値を過大評価するという問題がよく現れます。これは、離散的な行動を持つモデルでも、連続的な行動の空間で問題を解くときでも特徴的です。この現象の原因や、その結果に対する対処法は、個々のケースによって異なります。したがって、この問題を解決するための統合的なアプローチが重要です。そのようなアプローチの1つが、2018年2月に発表された記事「Addressing Function Approximation Error in Actor-Critic Methods」で紹介されています。ここでは、TD3 (Twin Delayed Deep Deterministic policy gradient)と呼ばれるアルゴリズムが提案されています。このアルゴリズムはDDPGを論理的に継承したものであり、モデル学習の質を高めるいくつかの改良を導入しています。
まず、著者は2つ目のCriticを加えます。このアイデアは新しいものではなく、以前にも離散行動空間モデルで使われたことがあります。しかし、このメソッドの著者らは、2番目のCriticの使用について、彼らの理解、ビジョン、アプローチに貢献しています。
このアイデアは、両方のCriticsがランダムなパラメータで初期化され、同じデータで並列に学習されるというものです。異なる初期パラメータで初期化され、異なる状態から訓練を開始します。しかし、どちらのCriticも同じデータで訓練されているので、同じ(望ましいグローバルな)最小値に向かって動くはずです。訓練中に予測結果が収束するのはごく自然なことです。しかし、さまざまな要因の影響により、両者は同一ではありません。いずれもQ関数の過大評価という問題がありますが、ある時点において、一方のモデルはQ関数を過大評価し、もう一方のモデルは過小評価します。両方のモデルがQ関数を過大評価する場合でも、一方のモデルの誤差はもう一方のモデルの誤差よりも小さくなります。これらの仮定に基づき、このメソッドの著者は、両Criticの訓練に最小予測値を使用することを提案します。こうして、学習過程におけるQ関数の過大評価や誤差の蓄積の影響を最小限に抑えます。
訓練に移り、得られた結果を検証してみましょう。例によって、モデルは2023年1月から5月までのEURUSD H1の履歴データで訓練されました。指標パラメータとすべてのハイパーパラメータはデフォルト値に設定しました。
訓練はかなり長引き、反復されました。最初の段階では、200の軌跡のデータベースが作成されました。最初の訓練は、1,000,000回繰り返されました。Actorの方策は、Criticのパラメータを10回更新するごとに1回更新されました。ターゲットモデルのソフトアップデートは、Criticスのアップデートが1,000回繰り返されるごとにおこなわれました。
その後、さらに50の軌跡が例データベースに追加され、モデル訓練の第2段階が開始されました。同時に、Actorモデルとターゲットモデルを更新するまでの反復回数を、それぞれ3回と100回に減らしました。
約5回の訓練サイクル(各サイクルで50の軌道を追加)の後、訓練セットで利益を生み出すことができるモデルが得られました。訓練サンプルの5ヵ月後、モデルは収入のほぼ10%を受け取ることができました。これは最高の結果ではありません。58件の取引がおこなわれました。利益を上げたのは40%にも満ちません。プロフィットファクターは1.05、リカバリーファクターは1.50です。利益を上げたのは、利益を上げたポジションの大きさによるものです。1回の取引から得られた平均利益は、平均損失の1.6倍です。最大利益は、1回の取引による最大損失の3.5倍です。
作者: Dmitriy Gizlyk