AlphaZeroのソースコードはわずかホワイトボード一枚に収まる : 情熱のミーム 清水亮

君は信じられるか? この一枚のホワイトボードに収まったわずかなソースコードが、人類の考案したあらゆるゲームで人類を凌駕すると。 これはAlphaZeroクローンのとある実装である。 この実装が特別短いわけでもない。なんなら、よく見るとコメント部分が多いので、削ればさらに2/3くらいにはなるだろう。 AlphaZeroクローンをいくつか漁っていた時、ちょっとした実験をしようと思ってソースコードを開いたら、あまりにもコードがシンプルで驚愕した。 確かに、AlphaZeroの原理はシンプルだ。 しかし原理が簡単であるということと、実際に動作するコードがシンプルであるということは別問題だ。 これだけシンプルだと、頭から順番に処理を追ってみようという気にもなる。 そこでアシスタントにお願いして印刷して張り出してもらったのだ。 彼女がレーザープリントした紙束を持ってきた時、僕は驚愕した。 「そ、それだけ?」 それにこれは他ならぬ、AlphaZeroなのだ。 人類が考案したあらゆる決定論的ゲームを攻略可能といわれる。 ちなみに最強のオセロの学習済み人工知能のニューラルネットはわずか64MB。 ちょっとしたYoutuberの動画よりも遥かに少ない。 僕が試しに作った(非決定論的ゲームである)ポーカーの人工知能のニューラルネットは少し複雑にしたせいで大きくなったがそれでも238MB。当然、iPhoneにも余裕で乗るサイズだ。 これは、誰もがポケットの中に羽生名人やイ・セドル級の天才的知能を入れて持ち歩けることを意味する。 もちろん将棋や囲碁をわざわざスマホでやるのは遊び以外の意味がないだろう。将棋や囲碁のファンでなければそこに興味を持たないかもしれない。 しかし僕はこう考える。 「AlphaZeroとその派生物は、"あらゆる数理モデル化可能な問題を人類の誰よりもうまく意思決定できる"可能性が高い」 この週末はずっと、AlphaZeroを改造して非決定論的ゲームであるポーカーの攻略ができるか実験していた。 このAlphaZero改は、特定のルールのポーカーをランダムプレイヤーを常に圧勝するだけの実力を数時間で獲得した。「特定のルール」としているのは、僕が厳密な意味でのポーカーやテキサスホールデムを実装するのが面倒だったからだ。 ここで確認したかったのは、相手がチェスや将棋、囲碁のような決定論的事象ではなく、ポーカーのような確率的事象であっても、学習することが可能かどうかだ。 結果は大成功。 わずか数時間で"彼"はポーカーの役やテクニックといった事前知識なしに相手よりも確率的に強い手を得るために人間でも信じられないような高度な判断ができることを示した。ちなみに僕はポーカーの専門家ではない。 たとえばこの局面だ。 ちなみに今回はオープンポーカーにしている。 自分 ♠2 ♣5 ♥6 ♦7 ♠10 相手 ♦2 ♣4 ♠7 ♥10 ♠K ここで相手が先手で、♦2と♣4を捨てた。 この情報から、彼は迷わず♠2と♣5を捨てる。 そして得られたカードが♥9と♠8だ。 自分 ♥6 ♦7 ♠8 ♥9 ♠10 相手 ♦2 ♣4 ♠7 ♥10 ♠K これでストレートの役ができた。 AIの思考を想像すれば、ストレートになりそうなカード二枚をすてることで、最悪でもワンペア、よければツーペアが狙えると踏んだのだろう。また、敵が既にブタなので、ワンペアで十分勝てると踏んだと思われる。 おそらくこいつは、既に僕よりもポーカーが強い。 たとえばこういうものを何に使うか。 もしこれがGoogle Glassのようなメガネ型デバイスに組み込まれれば、ラスベガスのカジノは廃業だろう。あきらかに人間よりも強くできるからだ。もちろんそうならないように、カジノではこの手のAI装置は規制されるだろう。 ここまであからさまな「ゲーム」ではなくても、現実の世界には「ゲーム的」に解決しなくてはならない問題はたくさんある。 ある種の最適化や、今はまだ人間の「勘」に頼らなければならない問題、企業の戦略やマーケティングという領域でこの手のAIを活用できる会社とできない会社では決定的な差が出てくるだろう。 広告の最適化を今は統計的なA/Bテストに頼っているが、A/Bテストも「確率的ゲーム」の一種といえる。広告掲出をAlphaZeroのような深層強化学習AIにやらせれば、たぶんA/Bテストの自動最適化よりずっとうまくやるはずである。それはクリエイティブの配置、文言の調整なども含まれる。 これは極めて応用範囲の広い技術であり、いずれあらゆる問題に適用されていく可能性がある。 筆者は運がいいほうだと思うが、それでもこれは少しできすぎている。これをうまくやるには数理モデル化、つまりゲームデザインのスキルが必要になってくる。現実の問題をいかにして「ゲーム化(数理モデル化)」するかというのは、数学的センスだけではなく観察力や表現力といったこれまでの尺度で測ることのできなかったスキルが要求されるようになるだろう。 実は通常の数学的思考とゲームデザインにおける数理モデル化は相性が良くない。 「数理モデル」と呼ぶと、それは数学的なものに聞こえるが、どちらかというと直感的な表現物が数理モデルである。その証拠かどうか知らないが、大半のゲームデザイナーは数学を得意としているわけではない。ゲームデザイナーの本をいくら読んでも数式はめったに出てこない。出てきたとしても、ごく簡単な足し算と掛け算と引き算の式くらいだ。 これは筆者が1998年にCEDECというゲーム開発者交流イベントの企画に関わった時に最初にぶつかった問題で、当時は「良いゲームの設計」についてちゃんと筋道立てて語ることの出来る人がどこにもいない、という問題があった。みんな「経験と勘」に頼ってゲームデザインを行っていたのである。ゲームデザインをゲームの構造(ルール)とレベル(ステージ)に分離し、ゲームエンジンという概念を作ったのはジョン・ロメロだったが、その後の世界ではルールの研究よりもレベルデザインのほうがより重視されるようになった。同じルールを使いまわしてレベルデザインだけ再生産したほうが効率的だからだ。 今でも、「ゲームの設計」という意味での「ゲームデザイン」については、クリス・クロフォードの論文がほとんど唯一の手がかりだ。彼がデザインした世界情勢を数理モデル化したゲーム「バランス・オブ・パワー」はまさに「ゲーム」が遊びの範疇を超え始めていることを示唆している。 ただし、ゲームデザインにはひとつの大きな問題がある。 ある事象のゲーム化(数理モデル化)には、デザイナー(設計者)の意図や価値観が色濃く反映されてしまうという点だ。 物理的現象と違って、実際の問題は、心理的効果や経済的効果といった完全にパラメータ化するのが極めて困難な要素を含むし、また、共通の事象であっても、ゲームデザイナーによって解釈が異なる。 たとえば「サッカー」という題材をとっても、アクションゲーム(ウィニングイレブン)になったり、シミュレーションゲーム(サカつく)になったり、コマンド選択式ゲーム(キャプテン翼)になったりターン式ゲーム(イナズマイレブン)になったりとさまざまな解釈がありえる。 シミュレーションゲームにしても、どういう指標(パラメータ)を用意してそれぞれの事物にどういう評価を与えるか、たとえば「信長の野望」では上杉謙信を表現するために「戦闘力」は最強レベルだが「野心」が低いというように表現されていた。 しかし謙信の実際の戦闘力など単独の数値で表せるはずもない。あくまでも「お遊び」だから成り立つ部分も少なくない。 筆者自身はゲームデザインの数理モデル化的な性質に着目し、ゲームデザインに関する本を書いたこともある(ネットワークゲームデザイナーズメソッド/ゲームデザイン誇大妄想狂)。 筆者にとってゲームデザインは生きるための道具に過ぎなかった。自分の好きなことをするための手段としてのスキルがゲームデザインで、そういう視座からすると、レベルデザインよりもむしろルールデザインのほうが面白かった。特に「ゲームデザイン誇大妄想狂」では、タイトルにつけたとおり本来人間が楽しむべき「ゲーム」という状態を逸脱して、「ゲーム」の持つもっと広い可能性について言及し、最後は「人間関係の数理モデル化」を利用した「恋愛ゲーム」のソースコードまで掲載した。 そうして、10年以上前に書き、悩み、汗を流し、青春をささげた「ゲームデザイン」が、まさか今の仕事に役立つ日が来るとは想像もできなかったし、これは少々出来過ぎなストーリーだという気もする。 「ゲーム」はシンプルなルールで無限に近い可能性を生む。 そうすると、あらゆるゲームを攻略可能であるAlphaZeroがシンプルな構造を持っているのはむしろ必然的なことかもしれない。 もちろん現状のAlphaZeroに何ができないかもハッキリしている。しかしその制約は、絶望的なほど難しい問題とはあまり思えない。 それはこれまで無数のゲームのルールデザインを研究してきた僕自身の「直感」に過ぎない。 しかし人間の知性というのは、いくら理屈をこねても所詮はその程度のものかもしれないことをAlphaZero自身が証明してくれたとも言える。 では我々がミームだと思っているものとは一体何なのだろうか。