時をかける人工知能 〜たった1つの数値で結果から原因に遡る:Over the AI ―― AIの向こう側に(6)(1/11 ページ)
「ベイジアンネットワーク」は、私が最も使い倒している人工知能技術の1つです。ある事柄について、たった1つしか信頼に値する数字がなくても、「現在の結果」から「過去の原因」を、遡(さかのぼ)って推測できる。そんな技術なのです。
今、ちまたをにぎわせているAI(人工知能)。しかしAIは、特に新しい話題ではなく、何十年も前から隆盛と衰退を繰り返してきたテーマなのです。にもかかわらず、その実態は曖昧なまま……。本連載では、AIの栄枯盛衰を見てきた著者が、AIについてたっぷりと検証していきます。果たして”AIの彼方(かなた)”には、中堅主任研究員が夢見るような”知能”があるのでしょうか――。⇒連載バックナンバー
14時間の計算が1分以下に、プロからの助言
前回、合衆国大統領選挙の簡単なモデルを作ってシミュレーションを行い、対立する2人の立候補者の支持率が拮抗している時、獲得選挙人数に大きな差が発生することを示しました*)。
*)合衆国大統領選挙の「選挙人制度」については、前回の記事の、図「合衆国大統領選挙の方式」を参照のこと。
具体的には、対立する2人の立候補者に、米国の全州の国民が投票率100%で全員ランダムに投票するという仮想の簡易モデルにおいて、
(1)合衆国大統領選挙に独特の「投票人制度」を使うと、実際の投票数に対して、その投票数に比例しない選挙人数を弾き出す可能性が極めて高いこと ―― 具体的には、分散(または標準偏差)が驚くほど大きい(全選挙人数 538人中、平均M=269人に対して、標準偏差σ=51人)
(2)投票比率のわずかな変化に対して、選挙人数が劇的に変化する(投票数の0.01%の変動に対して、平均選挙人獲得数が121人変動)
というシミュレーション結果を示しました。
私は、このシミュレーションを、乱数を用いて1人1人投票させる方法(モンテカルロ方式)を1万回繰り返したので、約5万秒、14時間近くの時間を費してしまったのですが、この記事を読んでくださった、数値分析のチームのデータエンジニアのgauraさんから、高速計算方式(大統領選のシミュレーション(in R)の詳細解説)をご教示いただきました。
ご開示頂いたC++のプログラムを、私の自宅のPCで実行*)してみたら、実行時間はたったの59秒にまで短縮され、私のやり方の約0.2%の時間で、シミュレーション結果を出力できることが分かりました。
*)パフォーマンスを正確に評価するため、標準入出力(printf()など)は全てコメントアウトしました。
帰宅途中の電車で、gauraさんからメールで送って頂いた解法の解説をガラケーで読んでいたのですが、「あっ! そうか!!」と思わず声を上げてしまい、車内で恥ずかしい思いをしました。そして、『さすがは、プロのデータエンジニア』と感嘆したのです。
計算時間が0.2%まで劇的に短縮できるということは、それだけ検討範囲を広げることができることになり、さらにバラエティに飛んだ結果を得ることができることになります。この世界でも、「高速化は無条件に正義」が成り立っていることは明白です(参考:「カップ1つ作るのに、ご主人様とメイドは4000回会話する」)。
それはさておき、Twitterなどのコメントを読んでいると、(私が開示したプログラムを試すこともせずに)前回の私のシミュレーション結果を、間違いであると決めつけている人もいたようです(少数ですが)。
しかし、それぞれ異なるアプーチで導き出したgauraさんと私のシミュレーションは、同じ結果となりましたので、
―― まだ、文句があるなら、かかってきやがれ
という気分になっています*)。
*)ただ、「乱数を全く使わない定式化」の検討が残っていると思っています。私が検討すると、今回のシミュレーションの時間(約14時間)以上の時間を持っていかれた揚げ句、失敗に終わるような気がしますので、ここは数学や統計学の研究者の方からの数理モデルのご教示をお待ち致します。
米国大統領選挙の「選挙人制度」では、州ごとに選挙人の全てが加算される操作で、選挙人数の離散化を発生させるので、選挙人の数にある程度の分散や感度を生み出すことは、最初から分かっていました。ただ、私には、その数値の規模感が分からなかったのです。
ですから、私は前回のコラムの執筆前に、この選挙の分散と感度に言及している文献をネットで探しまくりました。
最初は、『どうせ、統計学の入門書の教科書の例題として出てくるだろう』と軽い気持ちで探し始めたのですが、どうしても見つけ出すことができませんでした。やむなく簡単なシミュレーションプログラム(各州の人口と選挙人の数を調べる時間を除けば、作成時間は30分弱)を作り、力ずくのシミュレーションを実施し、そして、その選出される選挙人の数の分散と感度の数値にビックリしたのです。
Twitterのコメントを読んでいると、シミュレーションも定式化も行うことなく、「そんなことは、全然ビックリするようなことではない」と豪語し、私のコラムをけなしている人もいるようです*)。
*)前述のgauraさんや、後述の持論を展開して頂いた12人の皆さんほど理路整然と説明して頂く必要はないので、これと、これをご一読いただき、あなたが言いたいことを全て、このメールアドレス("over_the_ai@kobore.net")に送ってください。どんな内容であれ、そのメールの内容の完全な全文公開を約束します。
しかし、私は、私と同様にビックリしている人は、かなり多いと思っています。例えば、今回、米国在住の、シリコンバレーでITアナリストをされている方から、以下の文面のメールを頂きました(さらに、講演のご依頼まで頂きました)。
先日発表された「沈黙する人工知能 〜なぜAIは米大統領選の予測に使われなかったのか」を拝見しました。こちらで10回大統領選挙を見ておりますが、日本の解説者も解説記事も的を射たものがなく、選挙人選挙であることを全く理解していないものがほとんどでした。江端様の記事は選挙制度を解説したうえ、データ分析でこの結果を解説なさっており、正にこれだとおもいました。
(ご許諾を頂きご本人のメールから引用。太字の強調は江端)
正直なところ、私も前回のコラムを執筆するまで(というか、シミュレーションを強行するまで)は、この大統領選の「選挙人制度」について、十分な理解ができていなかったと思います。
Copyright © ITmedia, Inc. All Rights Reserved.