株式市場におけるアルファ碁とは

長くなるので省略しましたが、
正式タイトルは「株式市場におけるアルファ碁とはアルファ碁たりうるのか」です。

5月23日~27日に行われた「Future of Go summit」で、
囲碁の世界ランク1位の柯潔九段とアルファ碁の対局が行われました。
結果としてアルファ碁の3勝0敗であり、その力の凄まじさを見せ付けられる結果となりました。

特に第3局(黒番アルファ碁)では、
アルファ碁は序盤から人間には考えられないような手を連発し(黒13の詰め、黒21の手抜き、など)、
一気に形勢を決めてしまいました。
このように絶対的な法則に支配される世界では、AIの優位性が確立されたと言えるのでしょう。



では、果たしてこれが株式市場であればどうでしょうか?
今回は株式市場についてディープラーニングを適用したときの結果から検討を進めます。

今回の検討では畳み込みニューラルネットを使います。
畳み込みニューラルネットは、データの持つ次元構造を保持するため、
データの与え方によっては単純なニューラルネットよりも良い結果が得られるのでは、
と考えてのことです。

-------------------------------------------------------------------------------------
◆ディープラーニング概要
 (1)ニューラルネット構造
  ・畳み込みニューラルネットワーク
  ・層数=3(この程度の層数でディープと呼べるのかは分かりませんが)
  ・各層のフィルタ数、ニューロン数は非公開です。

 (2)データセット
  ・説明変数は非公開です(大したものは使っていません)。
  ・畳み込みを使うため、データセットの構造を少し工夫しています。
  ・目的変数(解答ラベル)は銘柄の騰落率であり、0/1の2値です(平均より上昇/下落)

 (3)訓練(インサンプル)データ/検証(アウトオブサンプル)データの考え方
  ・以下の図のように、1つの訓練データと2つの検証用データを使います。
   アウトオブサンプル1:訓練データと同一期間のものからランダムに抽出
              (当然、訓練データからは除外しておきます)
   アウトオブサンプル2:訓練データに対して未来の期間のもの

  170603-1.png

 (4)結果の比較
  ・ベンチマークとして同一説明変数の線形モデルの識別精度を算出し、比較を行います。

◆結果
170603-2.png

上記の結果を見て、「ディープラーニングによるモデルは過剰フィッティングが発生している」
と言えるのでしょうか?
結論として、「過剰フィッティングが発生しているとは言えない」と思います。
これはアウトオブサンプル1データでの劣化度合いがそれほど大きくないことが理由です。
訓練データの期間においてディープラーニングは市場を良く表現しておりモデル化の結果は良好です。
にも関わらずアウトオブサンプル2データで識別精度が大きく劣化する理由は、
「株式市場は水物であり、期間を隔ててモノが変わっている」としか言えないのです。

もう少し、詳細を見ていきます。
下記は、ニューラルネットのフィルタ数およびニューロン数が多いモデルと少ないモデルの比較です。
モデルの規模を縮小して表現力を落とすと、アウトオブサンプル2での識別精度が向上します。
その最高識別精度は約52%であり、線形モデルのそれとほぼ同等です。

170603-3.png

-----------------------------------------------------------------------------------------

要するに株式市場では時系列での構造変化(テーマの変遷とも言えます)が発生するため、
特定の期間において市場構造を上手く表現することに「意味がない」ということです。

囲碁で例えるならば、
過去の数十万局のデータから学習させたアルファ碁をいざ人と対戦させてみると、
そのときには囲碁のルールが全く変わっていた、ということになります。
例えばコウの上限が定められたり、ツケが禁止になったり、辺を1目として数えなくなったり、
という極端なルールの変化です。

よって株式市場でアルファ碁がアルファ碁であるためには、
上記のようなルールの変化の予測までを組み込んでいなければなりません。
単純なアルファ碁では与えられた世界にのみ強く適合しているため、このような変化に対応できません。
逆に言うと、適合の度合いが弱ければ弱いほど、極端な変化に対してロバストとなる可能性があります。

では、このルールの変化とは予測できるものなのでしょうか。
当然、そこには絶対的な法則は存在せず、それゆえにフレームワークも決めることはできません。
単純にモデルにデータを与えても、解決の糸口は見えてこないのです。
株式市場におけるAIの取り組みとは、他の分野と比べてかなり異質なものと言えるでしょう。


ヌメライに関する捕捉

ここ数日、ヌメライの検証ばかりしていました。
いくつか分かったことについて、捕捉として紹介します。

◆ランクについて
 前回、122位/854971モデルと報告しましたが、
 このランクの母数とは実際に予測結果をアップロードしたプレイヤー数であり、
 先週のトーナメントではその数はおよそ400名~500名でした。
 よって正しくは「122位/およそ500名」でした(失礼しました)。

 WIREDでは「7500名の匿名のデータサイエンティスト」と触れ込んでいましたが、
 実際にはそれらが淘汰され、残っているのは数百名です。

◆トーナメントについて
 トーナメントは週単位で行われています。
 データセットの更新は、毎週木曜日のAM7:00(日本時間)です。
 おそらくヌメライのポートフォリオは週1で金曜日にリバランスしていると考えられます。

 一日にアップロードできる予測数は25であり、最後にアップロードした予測が有効となります。
 一度でも予測をアップロードすると、参加費として$0.15が貰えるようです。

◆ランク付けとスコア(LOGLOSS)の関係について
 スコアの基準値は勝率50%における0.693であり、低いほうが優秀となります。
 しかしLawDataによる機械学習では、どんな手法を使っても0.691が限界のようです。
 (ロジスティック回帰、RGF、NN、RF、XGBなど)
 (私のベストスコアも0.691です)

 これらの結果でスコア0.691を出してもTOP100に入ることはできません。
 TOP100に入るために重要な点は、単純なスコアの良し悪しではなく、
 他のプレイヤーの予測値との相関であると考えられます。
 よって、何か特殊な方法でデータをこねくり回すなど、人と違った工夫が必要となります。
 (なお、スコア0.690を達成すると、問答無用で1位となると思います。)
 (前回のトーナメントでは、TOPのXIRAX氏だけが0.690でした)


確かに人と違った予測をすることは重要ですが、
ランク上げのためだけにプログラムの行数を増やす意味のない作業になってしまいます。
このことから「ヌメライのトーナメントに参加することは全く技術磨きにはならないなぁ」、
と感じました。

この話題に興味がある方はごく少数だと思いますので、本記事で最後とします。
もしも興味がある方や質問がある方がいればコメントでお願いします。


-----------------------------------------------------------------------------------------
<参考:ヌメライでのベストランク>             更新日:2017/3/10

RANK=5@LOGLOSS=0.691、ROUND46 (※順位は高頻度で変動します)
170310-1.png


追記-ヌメライでランク入りしました。

一応報告しておきます。

ヌメライでランク入りしました(122位/854971モデル)
順位はかなりの頻度で変動するようです。
もう少し頑張ればビットコインが貰えるんでしょうかね?

AI投資には持論があり、それが一応証明された形となりました。

170305-1.png

究極のアンサンブル学習-ヌメライとは

『ビットコインで雇われた匿名の7500人が頭脳となるヘッジファンド「Numerai」』-WIRED、2/26

これまた面白いファンドのニュースが入ってきました。

ヌメライとは、クラウドソーシングによるアンサンブル学習を行うヘッジファンドです。
日本語でヌメライと発音すると少々格好悪いですが、
本来は「Numer.AI」であり「Numeric AI」の略であると思われます。

◆WIREDの要約
 ・クラウドソーシングで予測モデルを集め、個々のモデルからアンサンブル学習を行う。
  16年秋時点で4500人のソースが25万のモデルを作成。
  16年12月時点で7500人のソースが50万のモデルを作成。
  本日時点では85万のモデルが作成されています。
 ・毎週、TOP100がビットコインで報酬を受け取る。
 ・暗号化メソッドを使い、依頼主と請負者の双方の情報が保護される。
 ・ルネッサンステクノロジー等、様々な企業から出資を受けている。


これだけではイマイチどこが画期的か分かりませんので、もう少し詳細に説明します。

そもそものアンサンブル学習とは、個々に学習した複数の学習器(以下モデル)を融合させて、
汎化能力を向上させた一つの統合モデルを作成することです。
この場合、個々のモデルの精度が問われることはなく、
あくまでも全体として良い結果が得られれればよい、という考え方です。
ここで重要な点は各モデル間の相関を低くすることであり、
そのため各モデルの構築過程にランダム化手法を取り入れることが一般的です。
アンサンブル学習は一般的にトータルでの予測精度が高いと言われていますが、
モデルの数が数百程度の場合は偶然に説明力の低い変数が採用されてしまうことも起こりえます。

アンサンブル学習の各モデルは、
本来であればSFのAIのようなものが自律的に創造するのが一番良いのです。
これは人間が多数のストラテジーを考え、複数を並行運用する分散投資と同じことです。
しかしそのようなAIは存在しないため、
仕方なしに決定木などの分析テンプレートに当てはめてモデル作成しているのが実状です。

ヌメライは、この各モデルの構築をクラウドソーシングの力で人間に実行させるという、
AIの一部をマンパワーで置き換えた、逆発想の画期的な試みです。
単純なテンプレモデルと比較した場合、
当然ながら予測力が高く個々の相関が低いモデルが多数出来上がるのは間違いありません。
(しっかりしたデータサイエンティストが作れば、の話ですが)


また、そのソーシング体系にも目を見張るものがあります。
ヌメライは暗号化したデータセットを誰でもダウンロードできるようにしています。
暗号化されているため、ヌメライが採用している変数の詳細は表に出ることは決してありません。

請負者はそれをダウンロードし、学習用のデータセットでモデルを構築します。
請負者はモデルをヌメライに提出する義務はなく、予測結果のみアップロードすれば良いのです。
これはFXや株のシステムトレード販売ではありえないことです。
モデルを提出する必要がないため、請負者の知的財産は全て保護されます。
また、それらが保護されているがゆえにヌメライは大量のデータを集めることが可能となっており、
まさしく両者でwin-winの関係が成立しています。


さて、もう少し詳細に見ていきます。

ヌメライのホームページのトップには、ランキング形式でTOP400程度が張り出されています。
具体的なランク付けは、ヌメライの最終アンサンブルモデルに対するウェイトと相関で決定されます。

また、同時にLOGLOSSという評価値が記載されています。
(LOGLOSSは参考値でありランクに考慮されません)
LOGLOSSとは対数損失関数であり、勝率50%の0.69314を境に低いほうが優秀な成績となります。
TOPのXIRAX氏のLOGLOSSは0.690となっており、これを単純に勝率換算すると約54%となります。
このあたりが現実的に達成可能な勝率の上限だと思います。
(様々なアセットが入り混じった数十万のデータセットにおける予測性能の上限、という意味です)
時折、勝率60%や70%という記事を見掛けますが、ヌメライの結果からすると、
それらは明らかにオーバーフィッティングの産物であると言えます。

最後にヌメライの学習用データセットですが、
説明変数は50個の特徴量×21万7千サンプルであり、
これに対応する目的変数は同数のサンプルのバイナリ値となっています。
しかし、この学習用データセットを見て、「あれ?」っと思ってしまいました。
このデータセットをどのように捉えるかで、
AI投資に対する経験値(機械学習の経験値ではありません)が問われるような気がします。

他にもいろいろと分かったことがあるのですが、本記事はここまでとします。
興味があったら是非確かめてみてください。


機械学習の手法

AI投資の話が続いていますが、ご容赦下さい。
(そろそろ終わりにしたいと思います)

最近はシステムトレーダーの方で機械学習を使っている方、もしくは手を出そうとしている方が
増えてきているのでは、と思います。
本コラムでは主だった機械学習の手法についてまとめてみたいと思います。
なお、以下の内容は様々な解釈が存在するので一例として考えていただくほうがよいと思います。


wikiによると機械学習という言葉のそもそもの定義は、
「明示的にプログラムしなくても学習する能力をコンピュータに与える研究分野」となっています。
しかし私は、そもそもの語源は機械学習(machine learning)ではなく、
機械的学習(mechanical learning)ではなかったのかなぁ、と思います。
つまり機械による学習ではなく、予めプロセスを定義し固定した機械的な反復学習ということです。
まあ人工知能や機械学習の括りは曖昧であるため、どのような解釈でも良いのかもしれません。

さて、ファイナンスデータの分析手法はざっくり以下のようにまとめることができます。
統計的な手法と計算的な手法に分類されます。

(1)統計的手法(パラメトリック)
 ・ロジスティック回帰(要するにGLM)
 ・主成分分析(PCA)
 ・判別分析(LDAなど)
(2)統計的手法(ノンパラメトリック)
 ・決定木(ランダムフォレストは集団学習ですがモデルの分類上ここに属します)
 ・最近傍法(k-NN)
 ※ここでいうノンパラとは、本来の意味である「分布のパラメータを仮定しない」という意味です。
  要するに母集団がどのような分布であるか全く気にしない手法です。
(3)ソフトコンピューティング
 ・NN(ディープラーニングはモデルの分類上ここに属します)
 ・SVM
 ・ファジー
 ・進化的手法(GAなど)
 ・ベイズ的確率手法

一般的に言われるAIとは、(3)のソフトコンピューティングの手法を指します。
ソフトコンピューティングとは統計モデルがなくとも無理やり数値計算でモデルに当てはめるもので、
人工知能(AI)というよりも計算知能(CI)という呼び方がよく当てはまります。
一方で、機械学習とは「機械による数値的な学習」という解釈ができますので、
(1)や(2)も数値計算を扱っていれば機械学習と呼ぶことができると思います。


さてこれらを見て「この中で最も優れた手法は何なのか」という疑問が浮かびます。
当然ながらこの答えは「何をしたいのか、その目的や用途による」ということになります。
従ってもう少し具体的に言うと、

『株価の値動きを予測するために最も適した手法はどれなのか?』

このあたりは識者の方としっかりとディスカッションしたい内容ですね。
実はこれ、私の中では結論が1つ出ています。
ただし、あくまでも「私の中では」ということであり、それが正解というわけでは全くありません。
「自分はこの手法を使っているよ」というコメントをお待ちしております。
(そのような懐の広い方は稀だと思います。私も自分の手法はシークレットです。)

せっかく始めたのにノウハウを公開されると困る、という方もいらっしゃると思いますので、
機械学習について触れるのはここまでにするつもりです。