イベント
[CEDEC 2010]コンピュータ囲碁から学ぶAIの“賢さ”とは。「CEDEC CHALLENGE:超速碁九路盤囲碁AI対決決勝」レポート
2000年代半ばにブレイクスルーが起きた囲碁AI
CEDEC 2010では,大学生などアマチュアを対象に公募したコンピュータ囲碁プログラムを総当たりで競わせて,勝率の高い四つのプログラムを選び出し,最終日の決勝戦(トーナメント方式)で最強のプログラムを決める……というイベントが企画されていた。本稿でレポートするのは,最終日に組まれたトーナメント戦の模様である。
このイベントには,万波佳奈プロ棋士,王 唯任プロ棋士という2人の人気プロ棋士が招かれていたのだが,決勝戦で解説を務めただけでなく,最強プログラムとのエキシビションマッチにも挑むなど,イベントを終始盛り上げていた。
台湾出身の王 唯任プロ棋士。囲碁入門書の執筆や,各地で開催される囲碁教室の講師を務めるなど,囲碁の普及活動に熱心に取り組んでいる |
囲碁界のアイドルとして絶大な人気を誇る万波佳奈プロ棋士。NHKで解説を務めていたりもするので,囲碁を知らない読者でも見たことがあるかもしれない。当然,人気だけでなく実力もトップクラスの女流棋士である |
総合司会を務めたフロム・ソフトウェアの三宅陽一郎氏。エンジニアとして,囲碁に多大な興味を持っているという |
4Gamer読者の中には,コンピュータ囲碁に触れたことがないという人もいると思うので,まずは囲碁や囲碁プログラムの概要を紹介しておこう。ちょっと前までは,「コンピュータ囲碁が人間に太刀打ちできるようになるには百年以上かかる」と言われていたのだが,現在,事情は大きく変わっているのだ。
囲碁は,中国から伝来した二人で遊ぶ遊戯で,361の目を盛った盤上に,黒/白の碁石を交互に一つずつ並べていき,地を広く占めた方を勝ちとする。いくつかの例外を除いて,石は盤上のどこにでも置ける。
将棋やチェスは,駒の動きがルールに拘束されているので,プレイヤーが打てる次の手は自ずと限られる。日本の将棋は持ち駒があるので,チェスより取りうる手が多いが,それでも,石をどこにでも置けてしまう囲碁に比べればずっと少ない。つまり囲碁は,比較的近い様式を持つゲームと比べて,評価すべき次の手が非常に多いわけである。
ただ手が多いだけなら,コンピュータによる力ずくの計算で何とかなるのだが,囲碁では,良手か悪手かを判断することが非常に難しいという特徴があるのだ。
たとえば「布石を打つ」という慣用句があるが,これは囲碁で,自分が囲みたいと思っているあたりの勝負を有利にするために,あらかじめ石を打っておくことに由来する。ルールを知らずに囲碁を見たことがある人なら,ときおり離れたところにポンと石を置いたりするのを不思議に思ったことがあるかもしれないが,それが布石だ。
ただ石を置けばいいというわけではなく,局面が進んだときに置いた石がうまく効いて,勝負を有利に進められることが重要だ。言い換えると,置いた石がいい手かどうかは,局面を先に進めなければ判断しづらいわけだ。
しかし2007年あたりから,この状況を一変させる囲碁プログラム――筆者が知る限り最初の例はCrazy Stone――が活躍し始めた。手の善し悪しの判断にモンテカルロ法を利用したAIが登場したのだ。
モンテカルロ法の囲碁プログラムは,次の手を打ったあと,白黒交互にランダムに石を置いて盤を埋めてしまう。盤が埋まれば,自分の石で囲まれている領域が正確にカウントできるようになるので,それを得点として記録する。次に打てる手すべてに対し,ランダムに埋めていって得点を算出し,もっとも得点が高い手を良手として選択する。
ランダムに打つなんてありか? と思うかもしれないが,モンテカルロ法は実に有効だった。現在の最先端囲碁プログラムは,腕にかなりの自信があるアマチュアでも倒せる程で,9×9の目(石を打つ交点)を持つ小型の盤(九路盤という)ならば,プロレベルの実力を発揮するケースもあったりする。
モンテカルロ法は,乱暴に言ってしまえば「ランダムに打って得点を見るだけ」なので,非常に高速な処理ができるうえ,マルチプロセッサとの相性もいい。そのため,CPUのマルチコア/マルチプロセッサ化が進めば,いずれプロ棋士を倒すプログラムが完成するとさえ言われている。
勝者も敗者もモンテカルロ法……勝敗を分けたのは読み手の数か?
今回のイベントの勝負は,すべて九路盤を用いて行われた。囲碁は19×19の盤(十九路盤)が標準だが,より狭い九路盤は勝負が早く付き,囲碁のエッセンスが凝縮されていることから,プロアマを問わず広く親しまれている。
イベント名に“超速碁”とあるように,考慮時間は1.1秒と短い。コミ――先行の黒石が有利になるために設けられたハンデ――は6目半である。つまり,黒石は自分の囲む目を,白より6.5目以上広くしないと勝利できないというルールだ。
tomboを作成した矢野さん。電機メーカーに勤める会社員とのこと。 |
nomitanを作成した北陸先端科学技術大学院大学の橋本さん |
決勝戦に駒を進めたのは,nomitanとtomboだった。どんな戦いが行われたのか,決勝の投了図をお見せしよう。
ルールが分からないと,投了図を見てもどちらが勝っているか分からないかもしれないが,冷静に見てみよう。白石が中央あたりで黒石に分断されていることは見て取れると思う。中央から上側の白5目は黒石に囲まれる寸前。囲まれると石は取り去られ,黒の領域になってしまう。また,下側の白石3目も黒に囲まれて取られる寸前だ。2か所とも白は手数が足らず,黒に囲まれるのを阻止できない。
2か所の白石が取られてしまうと,そこから挽回するのはほぼ不可能。白は盤右側の領域を確保できるかもしれないが,ここに何目か確保できても勝ちに至らないことから,投了したのだろう。
試合終了後,勝者nomitanを作成した橋本さん,tomboを作成した矢野さんの両者が,それぞれの囲碁プログラムのアルゴリズムを解説した。
まず,基本となるアルゴリズムだが,双方ともモンテカルロ法とのこと。現在,囲碁プログラムの世界では,モンテカルロ法以外に“勝てる”アルゴリズムがないので,これは当然といえる。では,同じアルゴリズムでなぜ差が付いたのだろうか。理由の一つに,手を読む速さがあるようだ。
勝者nomitanが「1秒の間に1万回のゲームを内部で処理していて,10手くらいまでは読んでいると思う」(橋本さん)のに対して,tomboは「以前調べたとき,5分で7手くらいまでだったので,1.1秒しかないと2,3手くらいしか読めてないかなあ……」(矢野さん)とのこと。この差が出たのかもしれない。
またnomitanは,内部にプロの九路盤戦のデータを持っていて,そのデータも利用して手を決めていると矢野さんは述べていた。1.1秒しかないため,ある程度の手の刈り込みが必要と思われ,そこにプロ棋士の棋譜が活用されている可能性がありそうだ。
ちなみに橋本さんも矢野さんも,囲碁は強くないそうだが,nomitanを作成した橋本さんは「学校にアマ五段がいるので,その人に手を評価してもらっている」とのこと。一方,tomboを作成した矢野さんは「自分は弱いので,手が良いのか悪いのかが分からず困っている。自分が強くなりたいと思っている」とのこと。
コンピュータ将棋の世界では,将棋に強くないプログラマの手による強豪AIが登場したため,プログラム作成者の将棋の強さは必須でないという話もあるが,手の善し悪しの評価が極めて難しい囲碁では,やはり知っていたほうがいいのかもしれない。
モンテカルロ法は,時間をかければかけるほど大量の先読みが可能になり,強くなる。プロ相手のエキシビションマッチで考慮時間が延ばせれば,もっと良い試合ができたのではと試合後に橋本さんに聞いてみたところ,「(nomitanは)1.1秒に最適化しているので,そのままではいくら長い時間をもらっても,良い試合はできなかったと思う」と語っていた。逆に,時間に合わせた最適化というのも,nomitanが他のコンピュータ囲碁相手に強さを発揮できた,理由の一つだったのかもしれない。
以上,簡単にコンピュータ囲碁のイベントをリポートしたが,筆者が以前から興味深く感じているのは,モンテカルロ法が有効という点だ。
万波佳奈プロ棋士が最後に「囲碁には感覚と理詰めの両面がある。そうしたところが魅力」と囲碁の楽しさをアピールしていたとおり,囲碁には,理詰めだけでは語りきれないところがある。それに対してモンテカルロ法が有効ということは,人間の感覚とか感のようなものは,案外“モンテカルロ的な物”なのかもしれない……などとも考えててしまった。
囲碁で得られたAIの知見は,もちろんほかのゲームにも活かせるはず。CEDECでは来年以降も,同様のイベントを続けていく計画があるそうなので,CEDECに集う開発者達にも,囲碁AIのノウハウが広まっていくかもしれない。
- この記事のURL:
キーワード