1994年、オセロ。1997年、チェス。2013年、将棋。2016年、囲碁。人工知能が人間のトッププロに勝利した年である。これらはニュースなどで大々的に取り上げられたが、他にも数多くのボードゲーム・カードゲームにおいて人工知能が人間を凌駕しつつある。
その一つがトランプの大貧民。将棋や囲碁と違い、相手の手が見えるわけではない。また複数人で対決するゲームである。このゲームにおいて、人工知能はどのレベルまで達しているのか。
人工知能同士が「大貧民」で対決する大会で現在三連覇中の、東京大学大学院に在籍中の大渡勝己さんにインタビューを行った。

「大貧民」の人工知能の世界
ーーなぜ、「UECコンピュータ大貧民大会」に参加しようと思ったのですか?
私は中学から大学まで、ずっとスポーツをしていました。大学4年で部活動が終わってから、勝負事がなくなり寂しかったんです。そこで、好きだったトランプの大貧民の人工知能の大会に出ることにしました。

ーー現在、大貧民はコンピュータと人間、どちらが強いのですか?
難しい問題です。そもそも、大貧民はコンピュータにとって有利なゲームなんです。コンピュータは場に出たカードをすべて覚えていますが、人間にはなかなか真似できませんよね(笑)。
ですが、誰がどのカードを捨てたか後から確認できる状況でも、私はコンピュータには勝ち越せないです。
ーーそれはなぜでしょうか?
コンピュータは人間には見えにくい差を見つけるのが上手です。たとえばハートの4とスペードの5を持っているときに、どちらを出せば勝ちやすいかの判断は人間には難しいですよね。一方でコンピュータは誰がどのカードを持っているか?後々の試合展開はどうなるか?を1つずつ推測して優劣をつけていきます。
ただし、将棋や囲碁はプロ棋士というものが存在しますが、大貧民においてはそれがないため、人間のトップが戦った場合、どちらが勝つかは正直分からないですね。
ーー大貧民において、人工知能はどのくらいの速度で成長しているのですか?
現在、大会は11回行われているのですが、2009年の第4回大会までは人間のほうがはっきりと強かったと思います。ただ、第4回大会でモンテカルロ法を使ったプログラムが出てきまして、それが発展し現在ではとても強くなっています。

【※】モンテカルロ法
ある局面から「8を出した場合」「10を出した場合」など、さまざまなパターンで終局まで大量のシミュレーション試合を行い、その中で順位の平均が一番良かったものを選ぶという手法。2016年3月に囲碁で初めて人間のトップ棋士に勝利したGoogleの『AlphaGo』もこういった手法をベースにしていると考えられている。
現在、大貧民の人工知能の開発の核となっているのが、このシミュレーション試合のようである。ランダムにカードを出すシミュレーション試合をするのではなく、実際の試合内容に近いシミュレーション試合を素早く大量にできるかにより、読みの精度が変わるようだ。大渡さんが開発したプログラムでは1つの手を決めるのに1000局以上のシミュレーション試合を行う。
手札が強すぎると弱さを見せるコンピュータ
ー−コンピュータ側の特徴はありますか?
コンピュータには、「こういうケースは〇〇を出せ!」といった特別な指示を与えていません。人工知能が自分で学習してカードを選択しています。
学習をした結果、「人間と違うな」と思う点は、強いカードの出し惜しみが少ないことです。人間は2やジョーカーといったカードを最後までとっておく人が多いですが、人工知能は思い切ったタイミングで出してきます。ジョーカーを使った革命も多くて、面白いですよ。ただし、残り2人のときは全然ドキドキ感がありません。お互いに相手の手札を特定していて、結果がわかっているので(笑)。
ー−コンピュータに弱点はありますか?
強いてあげるなら、手札が強すぎる時ですね。どのようにシミュレーションしても1位になるため、危険な橋を渡ってしまう時があります。
ーー大会のレベルは高いですか?
プログラミング初心者でも参加できる大会です。ゲームプログラミングに馴染みのない方でも開発しやすいように、運営側がライブラリやドキュメントを用意してくれています。
だけど、私自身が相当高いレベルまで持っていってしまったので、優勝はハードルが高いです(笑)。私は学部を卒業後、1年間ニートだったんですが、その時期、ずっと大貧民の人工知能の開発していました。なので、大貧民の開発時間は少なくとも1000時間は超えていると思います。
私のプログラムより強いプログラムは今後出てくるかもしれませんが、大貧民に対してここまで深く考える人は二度と現れないと思います(笑)。
ーーなぜそこまでの時間をかけて開発したのですか?
一番の理由は、やはり何かで一番になりたかったということですね。また、私が開発を始めたころのチャンピオンのコードを見た時、「これが本当に最適な作り方なのか?」「もっと強くなるのでは?」と思ったのがきっかけです。それで、一から実装をしました。

コンピュータの「直感」と「先読み」
【大渡さんのコンピュータの仕組み】 大渡さんのプログラムは2つのパートに分かれている。 一つは、自分の手札を一見してどのカードを出すか選ぶ部分。人間でいうところの直感にあたる部分だ。 二つ目は、頭の中でシミュレーション試合を行うモンテカルロ法によって手を決める部分。こちらは先読みを担当している。 このうち「直感」は自身の過去の試合で選ばれた手を学習することによって、精度を高めることができる。大渡さんのプログラムでは200万局以上の試合を学習している。ここには機械学習と呼ばれる技術が使われる。
試合中は、プレーヤー全員が「直感で選ばれる手」を出すと仮定して頭の中で何度もシミュレーション試合行い、その都度順位を記録する。多くのパターンの手札配置でシミュレーション試合を行うことで、自分がどの手を出せば平均的に勝ちやすいのか調べるというわけだ。
そして、試合後には自分が実戦で選んだ手を正解としてもう一度直感を鍛える。時間をかけて選んだ手を直感で選べるようにしていく。優れた直感により試合を先読みすれば、より正確な評価ができるようになる。このサイクルを繰り返すことで、段々と強くなっていく仕組みになっている。
ーーなぜいろいろな大会に出るのですか?
人工知能の開発方法はゲームのルールによって大きく異なります。将棋には将棋、囲碁には囲碁、大貧民には大貧民にあったアプローチ方法があります。その違いを探るのは楽しいです。
それに、いろいろな大会に出る人は少ないので、自分がやる価値があると思いました。幅広い知識を得られれば、より多くのゲームの人工知能を発展させられるかもしれないですから。ボードゲーム・カードゲームの人工知能なら「こいつに聞けば間違いない」と言われるまでになりたいですね。
大貧民の人工知能は何の役に立つ?
ーー実際に人工知能を作ろうと思った時、好きなボードゲーム・カードゲームを選択するべきですか?
好き
好きなゲーム、詳しいゲームをやると変な固定概念が入り、 開発がうまくいかないと言われることもあります。ただ、好きなゲームだと開発をがんばろうと思えるので、私は好きなゲームをやるのはありだと思います。
ーー人工知能を作りたいと思う人は、最初はどのようにすれば良いと思いますか?
一流の人に会いに行くことが一番良いと思います。実際に大会に出てみるとか、勉強会に行くとか…。ハードルが高いと怖気づく人も多いのですが、決してそんなことはありません。
実際に足を運んでみると、「意外といけるかも」と思えるはずです。また、開発者は基本的に話したがりなので、聞けばいろいろと教えてくれると思います(笑)。

ーー大貧民の人工知能の知識がどのように実社会に活かされると思いますか?
人工知能自体は、翻訳、検索エンジン、広告のマッチングと様々な分野で活かされています。ただ、大貧民の人工知能が直接的に「ここに活かされる」というのは難しいですね…。
将棋や囲碁の場合は、相手の情報がすべて見えているので、最善の手を出してくる想定で実装をします。しかし、大貧民の場合は相手がどのようなカードをもっているか分かっていないので、過去の情報から推測する必要があります。また、多人数なので相手の強さやプレースタイルによって適した戦い方が変わっていきます。このように多様な状況に対応できる力が大貧民の人工知能には求められます。
こういった技術は、今話題の自動運転にもつながるかもしれません。
運転している時、運転者は通行人や対向車が次にどのような行動をするか認識できません。人間の場合は「前の車、ふらふらしていて危ないな…。速度を落としておこう」など経験や直感で、準備を行います。人工知能もこのような感覚を持つ必要があります。
一方で、人間は自分自身の生死や他の人間との関係について優れた感覚を生まれたときから持っています。ですので、人工知能が人間と同じだけの練習量で運転のような技能を習得することは難しいと考えられています。
それを補うためには、見えていない場所の状況や他の車の動きを色々なパターンでサンプリングし、頭の中で状況を進めて良し悪しを判断し、直感を鍛えるという手順を実際に道路に出るまでに数多くこなす必要があるでしょうね。大貧民に限らず、ゲームの人工知能はそのための実験台と言えると思います。
ーー大渡さんは今後どのような活動をしていきたいと考えていますか?
これまでは国内の大会だけに参加していましたが、今後は Facebookなどの大手企業も参戦している国際的な大会にも出ていきたいと思っています。
大渡さんが作成した大貧民の人工知能のプログラミングコードは無料で公開されている。
※ UECda-2016 コンピュータ大貧民大会 : http://www.tnlab.inf.uec.ac.jp/daihinmin/2016/participants.html
なお今年も11月に「UECコンピュータ大貧民大会」が開催される予定。
※ UEC コンピュータ 大貧民大会 : http://www.tnlab.inf.uec.ac.jp/daihinmin/

【取材協力】
大渡勝己さん(東京大学大学院 修士2年)
●主な大会の実績
UECコンピュータ大貧民大会 複数回優勝
デジタルカーリング大会 複数回優勝
サイコロ将棋大会 複数回優勝
第10回UEC杯コンピュータ囲碁大会 11位 優秀学生賞
2nd Trax デザインコンペティション 準優勝
第1回ぷよぷよ通AI大会 ぷよえ〜ん杯 3位