本文は、DDPGアルゴリズムに辿り着く為、幾つ強化学習の手法を復習してから、DDPGの紹介を次にします。最後は、DDPGを用いて、FXの取引を少し試してみます。1、DDPGの前、強化学習のおさらい理解しやすい為、精密な定義を求めず、基本はシンプルなグラフ+式の形で紹介します。Learning(強化学習)強化学習といえば、以下のようなイメージのグラフが使われていることが多いですね。上記グラフを参照するより、最基礎なロジックが自明的なので、本文は略します。本文に共通で使われているアルファベット(ギリシア文字)を以下のように定義します。network種類の数より、大体以下の3タープに分けられます。functionとして、Q-learningという手法がこちらで挙げます。([0,1])*returnより計算されます。tにおいてのQ値は、stateとactionを条件(input)とし、期間中の累計期待reward(output)です。functionがこちらで挙げます。functionも収益を最優するための戦略調整であり、一番単純な形で表現すると、以下の式となります。学習より繰り返して調整し、最適の戦略を図ります。gradientの部分を少し深く入りますと、まずの式を拡張します。#重要:固定ではなく、確率関数であることを注意してください!更に、式の左と右をに関して微分とると、最終は以下の式に辿り着きます(詳細は省略)。networkがあります。ascent)流れです。直感的イメージ以外、Actor-Criticのメリットについて、式によりも簡単に説明します。gradientから見てみましょう。拡張する際と同じ手法を使うと、gradientの式が以下の形に変換できます。parameterの更新は、実際はモンテカルロ手法(ランダムでサンプリング)より実施されます。上記式のlog確率と最終の累計rewardが高いボラを生じる可能性があります。rewardが0の際に、機械はactionがいいか悪いかを分別することができないという問題もあります。以上の懸念点を解決するため、プレーンgradient式に制限項目を導入します。Actor-Criticの式です。Actor-Criticを加えて、更に一層の制限をかけるアルゴリズム。valueのみで評価することではなく、この特定なactionと一般的なactionの成果比較を評価します。functionであり、即ち上で述べた一般的や平均的なrewardです。functionだけで大丈夫です。networkに持ち込む手法です。A2Cと比べて、A3Cは理論上の優位性がありそうですあが、近年の研究より、メリットが目立たないみたいですので、処理パフォーマンスを考えると、やはりA2Cのほうがいいですね。(DDPG)前セッションの幾つアルゴリズムを踏まえ、DDPG手法を紹介します。論文の精密定義を引用します。みれば、複雑そうですが、段階を分けて順番に説明します。Actor-Criticの構造図を参照してくだい。メインな違う点も幾つあります。networkはよく似ていますが、区別はActorのoutputです。(directly)A2Cのoutputは現在戦略のreward期待値なので、policyの更新には過去経験(バッファに保存された過去の訓練結果)の利用は不可になる。reward)をbufferに保存することができる。Bufferの利用が可能になり、更新policyの分散が抑えられます。networkはただ原始networkのtime-delayedバージョン。network内の計算構造は、実際は原始のnetworkと同じです。valueの差を最小化するように工夫します。bufferが利用されたため、平均値も取りました。updatesoft更新を利用するので、parameterの安定性が更に向上する。3、DDPGでFX取引をやってみる(初歩)今回のブログが、メインはコンセプトの紹介ですので、実践について一番単純な取引条件をベースし、少し触ってみます。・取引単位:1000・一回の最大取引数量:5000(5単位)・資本金上限なし(自由に取引できる)・ロスカットなし(リスクコントロールしない)・決済の損益だけを計算し、保有ポジションの損益計算しない6回のテストにおいて、予測為替レートは以下のようになります。収益はそれぞれ5011、5888、7490、4872、3573、5304となります。なんと全部プラス!(Lucky!)しかし、実際は違うテスト期間をやってみると、大損が出た時も結構あります。残念!次のステップ次の内容として、まず、取引条件の設定やアルゴリズムparameterのチューニングにより、DDPGロボ取引を深く検証し、取引詳細などの結果を見せます。あと、ベイズ統計学の利用やTD3などの拡張手法を紹介し、各手法performanceの比較検証も行います。最後に次世代システム研究室では、ビッグデータ解析プラットホームの設計・開発を行うアーキテクトとデータサイエンティストを募集しています。ご応募をお願いします。皆さんのご応募をお待ちしています。