ヌメライに関する捕捉

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

◆ランクについて
 前回、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つ出ています。
ただし、あくまでも「私の中では」ということであり、それが正解というわけでは全くありません。
「自分はこの手法を使っているよ」というコメントをお待ちしております。
(そのような懐の広い方は稀だと思います。私も自分の手法はシークレットです。)

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

AI日本株式オープン -続き

不定期掲載となった感じが全くしませんが、気にしないで下さい。
前回に引き続き、三菱UFJ信託銀行のAI日本株式オープンについて検証します。
今回検証するのは、日次予測に使用されているディープラーニングです。

◆参考資料
 (1)「新潮流で広がるクオンツ運用のフロンティア」-三菱UFJ信託銀行、2016年6月
 (2)「ディープラーニングで資産運用、三菱UFJ信託が新たな金融商品」-日経BP、2017年2月6日
 (3)その他、ニュース記事

◆ディープラーニングの手法
 以下に分かる範囲で列挙していきます。

 (1)入力変数
  およそ300の入力変数を採用。
  「当社が持つデータ全てを入力データとして使用している」とのこと。
  ・国内マクロ指標:GDP、機械受注、有効求人倍率、景気ウォッチャー指数など
  ・株式市場データ:株価指数の移動平均、売買高など
  ・他市場データ:為替、債券の騰落率など
  ・センチメント指数:VIXなど
 (2)目的変数
  翌日のTOPIXの上昇/下落
 (3)分析ツール
  海外製のオープンソフトウェア。TensorFlowではないようです。
 (4)ニューラルネットモデル
  中間層が多層に設定されているとのことですが、層数は不明です。

◆ディープラーニングの効果
 上記の参考資料(1)と(2)に、
 ディープラーニングに基づいてTOPIXを取引した場合のバランスカーブが記載されています。
 検証期間は資料(1)が10年3月~15年9月、資料(2)が12年3月末~15年8月末となっています。
 両者を比較すると殆ど同じ結果となっており、基本的に同じ手法を用いた結果と考えられます。
 ただし資料(2)では2015年8月のチャイナショックでの損失を回避できるように修正されています。

170210-1.png


◆検証内容および結果
 では上記のディープラーニングの効果とは、果たしてどのくらいのものなのでしょうか。
 ここでは、一般的な「とある手法」を用いて同様の取引を行った場合の結果と比較を行います。

170210-2.png


 なんと、殆ど同じ特性を再現できてしまいました。
 「とある手法」とは、これまでのコラムから容易に想像できると思います。
 入力に使った変数の数は、わずか「2」です。
 もちろんノンパラな手法ではないため、
 なぜこのような挙動となるのかしっかりと理由付けができます。


AI投信にこのディープラーニングモデルが採用されているかどうか、実際のところは不明です。
今回私が行った手法は公開しても何ら問題のないレベルと考えていますが、
手法の公開によりバッシングを受けた事例がありますので、公開は差し控えさせて頂きます。