コインがくしゅう日記

日々のコインで学んだなにか

暗号通貨Numeraiについて

f:id:elu_18:20170625181027p:plain

なぜ記事を書いたのか

ツイッター上で以下のような記事を見かけました。

https://www.sensational.shop/vctypes/numerai-ai

Numeraiを宣伝してくれるのは自分も投資しているので良いのですが、 違和感ある内容だったので、もう少し(自分が知りうる限り)正確な情報を書いておくため筆をとりました。

(機械学習界隈の方は、だいぶ直感的な表現をしている部分もあり, 厳しいツッコミは遠慮したい所存です。。。)

Numeraiとは

Numeraiとは、 予測が難しい為替や株の動向を予測したい主催者が、

  1. 予測アルゴリズムの精度を競い賞金が貰える競技会を開く
  2. 予測アルゴリズムをたくさん集める
  3. それらを統合して最強のアルゴリズムを作る(そして主催者が儲ける)

プロジェクトです。
$NMRはコンペに参加する人が賞金を貰うための賭け金として使われるトークンです。
このままでは?な人が多いかもしれないので、もう少し説明します。

小難しい話しやがって、うっせーよオタクが!

という方はfiatが流入する可能性あたりから読み始めると良いと思います。

どうやって将来を予測するのか?

将来のことを予測するには色々な方法があると思いますが、
近年、コンピュータを使って行う予測として注目されているのが機械学習です。
この中でも、既に分かっているデータの関係性に着目して、
未知のデータの関係性を予測する枠組みは 教師あり学習と呼ばれる分類になります。
Numeraiもこの教師あり学習に含まれるアルゴリズムを前提としたプロジェクトになっていると思われます。

より良い予測アルゴリズム(界隈では予測モデルと言います)を作ることができれば、
例えば、未来の株や為替の値をより正確に当てることができるため、儲ける機会を増やすことができます。

良い予測モデルとは何か?

教師あり学習において、良い予測モデルとは何でしょうか?
人によって色々な意見があると思いますが、計算資源を無限に使ってよいなら、
それは汎化誤差の小さい予測モデルだと私は思います。

汎化誤差とは何か?

予測モデルの評価タイミングには二種類あります。

  1. 学習に使ったデータの関係をどのくらい再現できるか
  2. 未知の(これからやってくる将来の)データの関係をどのくらい予測できるか

①の予測誤差を経験誤差と言い、②の予測誤差を汎化誤差といいます。

汎化誤差が小さいと何故良いか?

為替や株の動向を予測するために、我々は未知のデータを予測することに興味があります。
いくらバックテストで予測精度が良い(つまり経験誤差が小さい)モデルでも、実際に運用してみたら全然当たらないモデルは、使えないどころか害悪でしかないです。

汎化誤差を小さくするにはどうするべきか?

汎化誤差を減らす有効な方法の一つとしてアンサンブル学習というものが提案されています。

これは簡単に言ってしまえば、強力な予測モデルを一つ作るのではなく
ちょっとだけ良いモデルの出力を複数集めて、多数決などにより最終的な出力を決めてしまうというやり方です。 完全な多数決でなく各モデルがどのくらい信用できるかで重みをつけて投票させたりします。

詳しい説明はしませんが興味のある人は、この辺とか、この辺などを読むと良いでしょう。

結局、良い予測モデルを作るには?

良い予測モデル作る=汎化誤差が小さいモデルを作るという仮説が正しいとした場合、 ちょっとだけ良いモデルをたくさん考えてもらって集めて予測するのが良さそうです。

しかし、人はタダではちょっとだけ良いモデルを考案してくれないため、 手間賃として賞金をお支払しましょう(ただし分け合ってね)というのがNumeraiなのです。

賞金の分配方法

では主催者が用意した賞金はどのように分け与えられるのでしょうか。
考案した予測モデルをコンペに投稿する人間は参加する際に、

  1. 予測モデルの信頼度(C
  2. 賭け$NMR額(S

を同時に提出します。 ①のC(予測モデルの信頼度)の単位は例えば賞金が$USDならば、
NMR/USDになっており、1USDの賞金を得るために何NMRを賭けるかをきめます。
そして、それに②のSを賭けると最大で貰える賞金額が決定します。

たとえば、Aさんが{C:0.1NMR/USD, S:50000NMR} を提出した場合は、
Aさんは最大5000USDを貰う権利があるというわけです。

そして、ここが面白い所なのですが、賞金が貰えるかどうかは
モデルの予測精度ではなくC(予測モデルの信頼度)の大小によって
決まる仕組みなのです。

例えば賞金100万USDのコンペがあったとして、

  • イさん:予測精度60%, {C:0.1NMR/USD, S:50000NMR}
  • ロさん:予測精度70%, {C:0.05NMR/USD, S:1000NMR}
  • ハさん:予測精度80%, {C:0.01NMR/USD, S:5000NMR}

の参加者がいたときに
イ>ロ>ハの順で(予測精度とは関係なく)Cが大きいため
イさんが50万USDもらえて、ロさんも50万USDもらえるけど、ハさんは賞金が枯渇してるから
賞金が貰えないという結果になるわけです。

つまり、どれほど良い予測モデルを作ったとしても、Cが小さければ審査すらしてもらえないのです。
また、Cが大きくても、賭けNMRが小さければ賞金は全然貰えないということです。

これでは頑張って予測モデルを作った意味が全くないので、
参加者は自分の予測モデルの勝ち目が高そうならCを上げて、賞金審査順位を上げてかつ賭けNMR額も上げる。あまり勝てないと思うときは、Cを下げて、賞金審査順位に食い込めたときの利幅を最大にする行動をとりそうです。

資金が流入する(かもしれない)仕組み

さてようやく暗号通貨らしい話になるのですが(長かった…)
資金(fiat money)が流入する可能性としては、

  1. コンペに参加して賞金ほしい人間がfiatでNMRを買って賭ける
  2. コンペに参加させたい人間に企業がfiatでNMR買って渡す

がありそうです。
1番はあまり需要がなさそうですが、2番はそこそこありそうです。 Numeraiと似たコンペとして先日Googleに買収されたKaggleがあります。
こちらにはプライベートコンペティションと言って、 コンペ上位の常連の方に、参加するだけで(最終的な予測精度の順位にかかわらず)一定のお金を渡すから参加してもらう、という仕組みがあるようです。
Kaggleの成功によって、強い参加者何人かを集めてモデルを統合するとかなり良い結果が出ることが証明されつつあるので、今後活用が広まっていく可能性はありそうです。

まとめ

Numeraiとは

  1. 予測アルゴリズムの精度を競い賞金が貰える競技会を開く
  2. 予測アルゴリズムをたくさん集める
  3. それらを統合して最強のアルゴリズムを作る(そして主催者が儲ける)プロジェクト
  4. $NMRはコンペに参加する人が賞金を貰うための賭け金として使われるトーク
  5. 参加する人たちが(買う|渡される)ことによってfiatの流入があるかもしれない

ということでした。
今後どうなるかは分かりませんが、私は面白い社会実験の参加賃として投げ銭をしてみました。


記事を読んだ方にご意見、ご批判、投げ銭などしてもらえると大変嬉しいです。
筆者が喜びます!(特に投げ銭!w)m(_ _)m
BTCアドレス↓
3Cxo7gac8zsbop9vU3P4ZvjxKPMsGxenm8