モンテカルロ囲碁は必ず半目勝ちを目指す

コンピュータ囲碁の世界でモンテカルロ法という確率的な手法が成功を収めていることは前も書いたが、今号の情報処理学会誌に「プロ棋士対コンピュータ:FIT2008における囲碁対局報告」と題して村松正和さんが記事を書かれており、最近の様子が(棋譜付きで)書かれているのでおもしろかった。

結論から言うとプロ棋士(4段)に8子置いて勝った(実力的にはアマ2-3段程度)というけっこうすごい話で、自分ではもう平手では勝てないところまで来てしまったのかなぁ、という感じ(自分はアマ2級くらいだった)。ここで使われた Crazy Stone というプログラムは第1回 UEC 杯コンピュータ囲碁大会(2007年12月開催)で優勝したプログラムである。

モンテカルロ囲碁の特徴について同記事でいくつか書かれている(pp.70-71)ので引用すると、

 Crazy Stone も含め,モンテカルロ囲碁の打ち方には非常に特徴があり,時にそれは「非常に弱いのではないか」という誤解を招くことがある.それは次のようなものである.
1.常に全局を見渡して着手を決定する.
人間の場合には,局所的なヨミと全局的な判断を組み合わせて打つ場合が多いと思うが,モンテカルロ囲碁ではそのような概念はなく,常に全局を見渡して着手点を計算している.その結果,局所的には甘いと思われる手を結構打つ.
2.定石を知らない.
これも上と同じことから起きる.特に序盤では,手筋ではなく,茫洋とした手を打つことが多い.
3.常に半目勝ちを目指す.
モンテカルロ囲碁では,終盤になればなるほど打つ手が正確になる.その結果,たとえばコンピュータが1目半勝っていれば,それを保って終局するのではなく,自陣に手を入れて半目勝ちにすることを躊躇しない.逆に負けていると,半目負けに甘んずることなく勝負手や無理手を連発して自滅していく.

1番目のポイントのように全体を見た手を打てるというのはなかなかすごいことで、割と局所だけ見てなにをするか決めるのは自然言語処理でもよくあるストーリーで(最近は全体を見て最適化しないとね、という流れになりつつあるが)、囲碁だと全局的な判断はコンピュータには難しいから人間には当分勝てないと思われていたのが覆されてきたのは画期的である。

2番目に関しては(実際にこの記事に書いてある棋譜を見てもらえるといいのだが)単純には序盤は定石(棋譜データベース)とのマッチングをして手を決め、中盤から終盤にかけてはモンテカルロで探索するというハイブリッド方式にすればいいんじゃないかと思うのだが、どこで切り替えるのかとかいろいろと面倒くさそうではある。人間と同じにやる必要はないのだが、人間も序盤はそんな考えていないように思うので、えいやとそれっぽい手を打てるようにすればいいんじゃないかなぁ。

最後の点は(これがちょっと指摘されるまで盲点だったのだが)、勝つ目の数ではなく半目でもいいからとにかく勝つことに関して最適化されるモンテカルロ囲碁の特徴が出ているな、と思う。マージン最大化みたく勝つなら勝ち幅を最大にするような手を選択したほうがいいように直感的には思ってしまうのだが……。歴史的には最初勝ち幅を最大化するようにしていたらすごく弱かった(GNU Go に対して勝率1割)が、勝率を最大化するように改良したら勝率が跳ね上がった(GNU Go に対して勝率6割)そうなので、囲碁特有のなにかがあるのだと思うけど……

王銘琬9段と9路盤、置き石なし(!)で戦った自戦記を読むと、割と王9段はコンピュータ囲碁の特徴も研究して(18路盤で8子なら9路盤は2子くらいが普通だそうだが、それでは危ないと思って置かせないようにしたそう)いるようだが、それでもきっちり半目負かされた、というのが意外。

ところで、モンテカルロ囲碁はいまのところ妙な癖がありまして、小ヨセになるとひたすら最小限の勝ちをめざしてくる、黒 59は不必要な手入れながら「分かっていてやっている」のです。63で黒の三目勝ちですが、その後もダメ詰めているあいだに、自分の地のなかに手を入れ、かならず1目勝ちにしてくる。

 終わってみれば、勝つチャンスがなく完敗でした、そして、よく考えると八子局のほうも結局勝つチャンスがなかったのではないか。黒の打ち方はとにかく「最後に勝つ」のが目標、ぬるい手は打っても、負ける手は打たないのです。そこには明らかに余力があった、きわどい勝負になると、もっとがんばった手を打ってくるに違いない。十九路盤の棋力を判定するなら、アマ三段ぐらいというところですが、クレイジーさんにはまだ底知れない力を秘めている、そう感じたのである。

 対局後にはじめて聞いたのですが、実はモンテカルロ囲碁は九路盤の方がずっと強くて、プロに平手で勝ったことがあるそうです。攻め合いに弱いとか、ヨセがへたというのは昔の話、今のヨセはむしろ完璧に近いところに来ている(細かく勝っている碁なら)。

 碁の勝負強さは接近戦ですべて現れる、九路盤である強さに到達していれば、基本的には十九路でも同じぐらい打てると僕は考えている。いまのところ、モンテカルロ囲碁が十九路で弱いのは、まだやり方がよく分かっていないだけではないでしょうか。スポーツでたとえれば運動能力がすでに備わっていて、あとはテクニック覚えればいい、そういう状態に見える。

ということで、モンテカルロ囲碁も最初の(単に乱数を使って交互にランダムに石を置いていく)ナイーブな手法は(当然ながら)そんな強くなかったらしいが、パターンを用いるようにしたらだいぶよくなったという話を聞くと、あとはどれだけうまいパターン(テクニック)を教え込めばいいのか、そういう段階に来ているのかなーと思ったりする。

統計的かな漢字変換でも(と強引に話を振ってみるが)コーパスさえあれば(国語学に詳しくなくても)変換がそこそこできるようになるのは一時的な話で、研究開発が進んで機械学習を用いたランキング学習するようになると、やっぱり言語学的知識というか専門家の知識(こういう書き方をしたらここはこう変換する、みたいな)も必要な時期がまた来るのではないかな? ヒューリスティックに基づく手法と統計的手法との両者の間には断絶があるように見えるけど、実はそんなに断絶もない、というか、本当に断絶があったらみんな(キャズム的表現を借りると early adopters と early majority 以外)乗り換えないんではないかな?

なかなかおもしろい記事なのでコンピュータ囲碁・将棋など興味ある人はどうぞ。

(再掲) cf. コンピュータ囲碁における モンテカルロ法 ~理論編~ (こちらは分かりやすいですが割と理論的に書かれているので、もっとざっくりした説明を読みたければ王9段の自戦記の冒頭を読まれるとよい)