ジオマーリン

仕様を公開してアドバイスを受けながら geomerlin.com を構築していくスタイル。このシステムではデータサイエンスと人工知能技術により地政学リスクを算出しています。

地政学リスクの指標 GPR-Indexの投資への応用

 前回、地政学リスクGPR Indexの説明をアップロードした。

geomerlin-com.hatenablog.com

応用として地政学的影響下の石油価格(WTI)の予想値導出につながる研究結果がプレトリア大学から発表されているので、調べた内容を記録しておく。これがどれほど画期的なものかを考えるのが難しいが、GPRの真剣な応用が広がる様子が分かる。

 

 このリンクの論文では、GPR-Indexを多変数の分散回帰に適用している(http://www.up.ac.za/media/shared/61/WP/wp_2017_02.zp106058.pdf

研究結論としては

 ①VAR-BEKK-GARCHモデル という GARCHモデル(ARCHモデル - Wikipedia)の拡張版が地政学リスクこみのモデルを作る際には適当である

 ②石油価格と地政学リスクは関係あるが、株の平均インデックスと地政学リスクはあまり相関がない

 ③GPR indexのタイムラグによって石油価格と株インデックスの共分散は顕著に減少している

 

 ここで言えそうなことはGPRインデックス算出のタイムラグを縮めると株価へ地政学リスクが波及するようになるかもしれないということである。

 

 論文で踊っている式は、基本的にGPRに対して、価格がどれほど激しく動いているか=ボラティリティを予測する式である。ボラティリティが予測できると、ここからオプション価格をモンテカルロシュミレーションやベイズ推定などで予測できる。

 導出されている式

f:id:geomerlin-com:20170507095805j:plain

 について要約を入れると

 ポートフォリオの利益 = (定数) + (ある一定期までのリターンの変動の和) + (地政学リスク×定数) + (現時点の確率変数)

 

 ・(利益の共分散) = (未知のパラメータ3つ同士の掛け算) + (未知のパラメータ4つと直前の確率変数4つ同士の掛け算) +(直前までの利益の共分散とパラメータ4つ同士の掛け算) + (係数×直前の地政学リスク) 

 

 上の式はパラメーター推定をしたあと、最終的に価格の予想につながる

 下の式は、価格の予想のためのボラティリティの推定につながる。

 未知のパラメーターが大量にあることに疑問を持つ方がいるかもしれない。なぜなら、このパラメータは事前に簡単に測れるものでないどころか、そもそも求まらないものだからだ。

 これらのパラメータは大量の価格データと照合して、最尤法で推定されることとなる。

 

 GPRの応用が早くもこうして十分に高度な金融工学に使われていることが分かった。次はGPRの応用が他にどのような分野に応用されるか調べたいと思う。

 

 

地政学リスクの指標 GPR Index の自動算出

 このまえニューラルネットで算出したGPRについて、より詳しいドキュメントとしてこのページをアップロードしたい。

 前回はこちら

geomerlin-com.hatenablog.com

 

 まずGPRのソースについて

 

 この論文(https://www2.bc.edu/matteo-iacoviello/gpr_files/GPR_PAPER.pdf )はアメリカ合衆国連邦準備制度から研究結果として出されている。題を訳して「地政学リスクを算出する」である。Dario Caldara、 Matteo Iacoviello 両氏は主要メディアからカウントできる地政学的単語(分類として 紛争・テロ・核リスク他8種類が挙がっている)からGPRを形式的に算出できるとしている。この値は実際に石油市場価格・株価と強い相関がある。

 

 指標GPRの現在の使用状況について

 GPRは段々と認知されてきたようで、

 この論文ではGPRを用いて具体的なインデックス価格への地政学的事象によるインパクトを予想する式が導出されている。(https://mpra.ub.uni-muenchen.de/59760/1/MPRA_paper_59760.pdf)後ほど内容を紹介する予定・・・

 

 「地政学リスク」という単語が紙面に踊るだけで中身がないのが現状である。しかしこの指標GPRが重要なインデックスとして認知され、地政学リスクは数値化されるのが当然という状況が来るかもしれない。

 

 ニューラルネットでの算出の意義について

 GPRは上述の通り、地政学的イベント発生→メディアでの反応→連邦準備制度による数値確定 という段階を踏む。これを瞬時に少ない誤差で数値を算出すると、リアルタイムで地政学リスク=GPRを発表できる。これは、投資判断からニュースの序列決めまで幅広く応用できる。

 

 我々のシステムの問題点

 両氏の論文に添付されたデータセットでは月ごとのGPRが発表されている。我々のシステムでは、月ごとのニュースとGPRを教師データ・セットとしているが、これは一つのニュースのGPRとしては不適切である。そして、ニュースの背景にあるべき多くのコーパスを捨象している。

 よって次のようなアップグレードが望ましい

 

f:id:geomerlin-com:20170506001415p:plain

 リンク構造つき文書データの埋め込みはグラフコンボリューションによって行うことを試そうと考えている。これはつい先日、有向グラフをニューラルネットに入力する手段があるというタイムリーな情報がきたので、幸運だとしか言いようがない。

tech-blog.abeja.asia

 有向グラフ×ニューラルネットが成功しない場合、Doc2Vecを用いて背景コーパス情報を内包しようと考えている。

 

 GPRの使用は今後広がってゆくと考えられる。地政学関係者が機会を逃さないようにこちらのシステム,geomerlin.com で支援したいと考える。

 

 

なぜプログラミング言語はたくさんあるのか?

 プログラミングを勉強するにしても、開発するにしても必ず考えるのは「どの言語にするか?」

 

 昔英語を習い始めたとき、「同じ意味を伝えられるのになんで外国語やるんだろう?」と漠然と考えた覚えがある。

 「同じマシンで同じ動作をさせるのになぜプログラミング言語はちがうのか?」は大学で僕の最初の疑問だった。

 

 この問題の答えの候補を3つほど挙げよう

 ①構造的・論理的な違いがある

 ②計算の論理構造は一緒だが、人間の都合・必要により、違う言語が開発された

 ③人間の愚かさにより同じ構造・必要のものが大量に作られた

 

 結論から言えば、3つ全部が正しいと思う。

 ①と②は表裏一体の問題で、

 簡単に言えば、コンピューターの処理は全部レジスタとCPUへの命令で書けるから機械語(最も細かいプログラミング言語)は一通りに書ける。しかし人間の設定する言語の目的も考慮すると機械語の作り方がひと通りには書けない。よって①・②は正しい。

 ②と③も表裏一体で、同じ目的だけど、今ある処理系・言語との相性を考えるとそれぞれの処理系にあわせて違うものができてしまう。楽をしたいから違うものを作る、という都合と愚かさは表裏一体という話だ。(僕はそれを愚かだとは考えない。)

 

 

 「論理的に同じなのに人間のせいで違う」説の穴

 この説の裏にはプログラミング=数学という世界観がみてとれる。数学では同じ定理を違う形式であらわすことがあるが、基本的に一つの表現さえすれば問題ない。新しいルールを覚える必要はないはずだ。プログラミングが論理的なら一つでいいはずだというのは自然な考え方だと思う。

 しかしながら、数学チックに全部公理系で表したときに、処理をどうやって表現するだろう?コンピューターの処理の記述を数学チックに述語論理で表現するとしよう。(オートマトンの遷移図では厳密でない)

 簡単な話、基本的に数学には時間の概念がない。ピタゴラスの定理は100万年後も同じように証明できる。だから単なる述語論理ではなく時相論理を導入しなければ処理は書ききれない。実際に述語論理をベースにしたProlog言語は京大によってTemporal Prologに改良されたし、述語論理ベースの形式手法Alloyは時相論理にあたるものを自前で組み込んでいるらしい。

 では時間の概念を入れた時相論理でプログラミング言語を統一できるかといえば、違う。時相論理では外部からの全く予想不能な入力に他の言語と同じオーダーの速さ対応できる保証がない。それを人手で対応しようとしたとき論理ベースではデバッグ・リーバスエンジニアリングの難易度が絶望的に上がる。もしこれが人手ではなく他のシステムができるのならある意味これは「統一言語」だと思う。よく言う「プログラミングすら人工知能にされる」というアレである。

 基本的にプログラミングの処理はコンピュータハードウェアという物理的制限と時間・順序が重要である点、そして外部入力が多い点で、結局数学とは全く違った世界になっている。

 

 メタプログラミングによる統一言語が可能」説の穴

 こういった、時相論理システムやAI技術によるメタプログラミングが言語を統一するという話は面白いと思う。しかしこのメタプログラミング言語はどうせ一つにならず、大量に生まれることだろう。それも、既存のプログラミング言語より全然多い数で。

 なぜそう思うかといえば、そもそも今あるほとんどの言語はアセンブリ言語C言語Javaメタプログラミング・互換系である。メタ化することでものすごい数の言語が生まれたのが現実だ。つまり、メタ化することは言語を統一するのが目的ではなく、コンピュータでやれることを増やすのが目的だ。webサイトを高機能にするためにJavascriptが生まれ、スマートフォンで指の操作でいろいろできるようにSwiftが生まれたと思う。目的の数<言語の数だ。

 

 これからも言語は増えていくだろう。コンピューターで出来ることは増えていくから。

 

 

サイトを大きく更新 ・・・海外のリスクとネガティブ情報に焦点を絞った

 

geomerlin.comのシステムの目的を「世界情勢を理解しやすいサイト」から「海外のリスク情報を保証するサイト」へと変更した。

 変化を簡単に説明すると、今までのサイトは「マレーシアの最近のニュースを可視化するサイト」だったが、これからは「マレーシアに旅行したりビジネスしたり投資したりしたら、どんな嫌なことが起こるかを表示するサイト」になる。

 

 ここでユーザーが集まり、危険情報を交換できるようにしたい。どの国がリスクが高いかというのは人それぞれ意見が違い、思想・経験の違いが反映されるからだ。

 このサイトのコンセプトは「ユーザーの思想を大切にするサイト」である。

 ユーザーの思想を大切にするサイトには2つのことが必要だと思う。

①思想が反映されるシステムにすること

②思想が役に立つシステムの目的が存在すること

前日のサイトの更新は②が修正されたということだ。

 

 そして地政学リスクの算出にもユーザーの助けが欲しい。それはAugur(http://www.augur-japan.com/)の試みでもある「人間の集合知による意思決定は信用できる」という前提に基づくことになるが。地政学リスクの順序づけさえ、ユーザーコミュニティで行えれば、数値の算出はたやすくニューラルネットワークで行える。「マレーシアとミャンマーどっちが今危ないか」をコミュニティで判断できればよい。

 ここで算出される地政学リスクが信用できる指標として使われることが重要だと思う。これがシステムの目的である「世界のリスクの可視化」を可能にする。

自然言語処理@深層学習を少ない教師データで効果を出す提案(ベクトル化、スパースモデリング)

たくさんデータを集めることのほうが、プログラミングよりもよっぽど大変なニューラルネット

自然言語処理だと、教師データを作れそうで作れないからすごくフラストレーションがたまる。

 

ここで真剣に教師データ不足について考察してみる。

教師データ不足を分析すると二通りの不足の仕方がでてくる。

①大量に使えそうなデータは存在するが加工が容易ではない

②教師データが本当にない

 

まず解決方法をそれぞれ見当をつけてみる

①大量に使えそうなデータは存在するが加工が容易ではない→2段階で学習する

②教師データが本当にない→スパースモデリング

 

こう見当をつけた理由は以下の通り

①word2vecに加工しておけば、大量のコーパスデータを背後に準備できるから、訓練データで出てない単語でも推測できる。

 

自然言語処理は特にbagofwords形式だとスカスカになるからL1正則化で精度を上げられる。

 

調べてみたところChainerにはL1正則化が準備されている!!!

これで精度が上がったら報告しようと思う。

AI時代に重要なのは技術かリベラル・アーツか? 『記号と再帰』の表紙をみて思ったこと。

 リベラル・アーツ教育はなぜ見捨てられないのだろう?

 

 簡単な話、リベラル・アーツ教育の定義が「それさえしっかりやっていれば、何が大切か分かる教育」とすることもできるからなのかもしれない。

 

 しかし、僕はなんだか計算哲学の本からは違う答えが匂ってくる気がした。

 田中久美子の「記号と再帰」を3年前に読んだときを思い出した。このコンピューター哲学の本は、哲学的記号論ソシュール/パース)と、ラムダ計算理論やプログラミング言語設計を結びつけて面白い結論を出した本だった。

 

「基本的に関数は”一つの入力と一つの出力”に帰着できるが、再帰関数は関数名が必須となってしまうため”一つの入力と一つの出力と一つの関数名”までにしか帰着できない。そしてこれは二項関係と三項関係に対応する。三項関係はつまりネットワークだ。」

と要約できる主張だった。

 この本は明らかにゲーデルエッシャー・バッハの影響を受けていて、壮大な計算論が割り切れない哲学に回収されるところもどこか似ていた。(GEBは途中を読み飛ばしたこともあり、語れるほど熟読していない)

 そして二冊ともなぜか、その視点自体が結論や経過よりも魅力的だったことを覚えている。その視点とは、再帰(フィードバック)構造とネットワークへの形式システムの拡張が知能の根源だと考える視点だ。

 

 たぶん今AI界で活躍しているのはゲーデルエッシャー・バッハを読んだ世代だと思う。そして今AIの中心的な議題として残るベイズ主義・フィードバック構造・創発・ネットワーク・平衝は全部数学・統計・計算機で回収できず、どこか割り切れない哲学が割り込んでいるカンジがある。

 

 AI時代にこそ必要なのはリベラル・アーツなのではないか。そう思わせるものこそ、AI時代を作った書籍なんだよなーと思った。

 

 だけど、「機械学習が今すごいから、お前ら全員古文をガリ勉しろ」っていうのは、なんか明らかにおかしい。たぶん「リベラル・アーツが重要」っていう思想の要約は「成熟した価値観を持て」ということでしかない気がする。それって学校で教わるものではなくない?というカンジもする。

 

 この投資家の対談は面白いと思う。投資の世界では知能システムによる運用成績がヒトよりよくなってしまったことが有名だ。それも知りながらこのヒトはこう言っているのだと思う。

 

www.businessinsider.jp

 

 それに対してこの記事も面白い

www.gizmodo.jp

 

 どちらの記事でも共通するのは、「技術者は無視できない」という世界観と、「単なる技術者」に畏怖の念を覚えていないところだ。もしリベラル・アーツとやらが、技術も”成熟した価値観”も与える教育なら、ほぼ全員がそれを求めるところだろう。ひとつ言えるのは、そんな教育今まで見たこともないし、聞いたこともない。利害が絡んだ嫌な経験がない「綺麗なリベラル・アーツ」が成熟した価値観を与える気がしないし、技術力だけで社会の頂点にたてる「パワフルな技術者」も知らないから。

 

 

 これほど、僕もふくめ全員がグチャグチャ悩むトピックだけど、一番すっきりする答えをくれるのは技術至上主義のシンギュラリティ論者だな。

 だって彼らの主張は

 「みんな将来脳みそにプラグぶっさすんだから、勉強なんて無駄無駄無駄」

 だから。

 

 ここでこのシンギュラリティ的な考え方には教養はないと感じる。なぜなら簡単に考えすぎて、慎重さが足らないから。そして思うのはリベラル・アーツっていうのはグチャグチャ悩む能力だってこと。つまりよく言えば「考える体力」みたいなのと関係がある。ホフスタッターも田中久美子もみんながどうでも良いって思うものを、数学・計算機と哲学についてずっとグチャグチャ考えて、あんなに非凡な成果をだしたんだなと思う。

 

 リベラル・アーツが見捨てられない理由はもう簡単だ。

 誰も頭にまだプラグをぶっさしてないなら、技術者だろうが投資家だろうがテクノロジー・エリートだろうがグチャグチャ考える必要があるからだ。

 

無駄っぽいことについてグチャグチャ考えることが許される世の中、それがリベラル・アーツ重視な世の中なら、大歓迎だな。だってグチャグチャこの文章を書いたんだから。

地政学リスク(GPR)を算出する知能システムを組んだ

要約地政学リスクの教師データを作成し、ディープラーニングシステムを組んだ。タイトルを入力すると地政学リスクが算出されるシステムである。この効果は http://geomerlin.comで確認できる。

 

トランプvs北朝鮮の市場への影響が発端となって、「地政学リスク」という単語がまた注目されている。

どのくらい注目されているのかは下図で一発(検索回数)

 

  しかし、「リスク」という表現がなされているだけで、メディアではどういう指標でどうやって算出しているかが全く報じられていない。

 もし地政学リスクが算出できるものでないならば、そのような表現をする必要がどのくらいあるだろうか?「地政学リスク」ではなく「危険性」でよくないだろうか?

むろん地政学界隈の先生方はそんな状況を許すわけがなく、ちゃんとGPRと言う指標が次の論文で指摘されている。

Dario Caldara , Matteo Iacoviello 共著 「地政学リスクを算出する」

https://www2.bc.edu/matteo-iacoviello/gpr_files/GPR_PAPER.pdf

 

この論文から次のグラフを引用させて頂く

f:id:geomerlin-com:20170416222122p:plain

このグラフがGPRの月次グラフであり、データセットも公開されている。

GPRの算出方法は論文中に書いてあるのでここでは割愛させて頂く。

すこし西側中心の指標に見えてしまうのは、”地政学リスク”の定義が「地政学的要因による市場への波及リスク」であることを考えれば、差し引いて納得できるのではと思う。

最も重要なことは、これにより教師データが作れるというところにある

というわけで各年月次の地政学的事象をwikipediaデータから取得し、これとGPRをセットにして教師データを作成した。

これをニューラルネットワーク(chainer)で学習させ、文章(ヘッドライン)に対してGPRが近似として算出するシステムとなった。

ニューラルネットの構成は次のとおりである

①入力はBagOfWords形式

ドロップアウトなし

③出力層は1ユニット、GPRをそのまま出力

 

結果がつぎのとおり。

次の僕が勝手に作ったヘッドラインを打ち込んで見る。

①"アジア経済が再び成長の兆し、ドル高の影響か?"
②"ロシア,ユーゴ空爆。1000人死亡"
③"アメリカ,ユーゴへ空爆。1000人死亡"
④"フランス、シリアへ軍事介入。空爆を開始"
⑤"アメリカで同時テロ発生1000人死亡。ISILか?"
⑥"アメリカ陸軍、イラクへ再び侵攻。イラク戦争再燃”

①GPR:52.08543396
②GPR:67.87326813
③GPR:89.07659912
④GPR:98.18653107
⑤GPR:118.4070816
⑥GPR:165.49940491

 

予想通りの順番にはなった。個人的には②が小さすぎるかな?

とにもかくにも、ある程度マトモな地政学リスクの導出システムができた。

これはgeomerlinにすぐに反映させようと思う。そして改良していきたい思う。

geomerlin.com