碁と統計

fj.hatenablog.jp

ニューラルネットワークである局面を入力したら終局図が出力できるようなものを作れるはずだと考えていたが、よくよく考えると別にニューラルネットワークでなくてもよいかもしれない。

碁と統計が相性が良さそうだという事実はモンテカルロ木探索法の成功で証明された。モンテカルロ木探索は機械に終局まで打たせた時の勝率を評価して手を選ぶ。勝率というところも統計であるが、終局まで打たせるというところも統計的手法が用いられているらしい。モンテカルロ木探索法を採用している思考エンジンのミソはプレイアウトをさせる際にいかに自然に終局まで打たせるかという点だ。自然な手というのは統計的に選ばれている。このパターン(模様)の時にはここに打たれる場合が多いという統計を取っておいて、それを下に最後まで打たせた時の勝率を計算する。つまり、次の一手の統計をとっている。前紹介したニューラルネットワーク囲碁の組み合わせの研究も次の一手を予想しようというものであった。

しかし、私の意見は違っていて、ある点が自分の地になるかどうかという統計をとるべきでは思っている。ガウス的にするのかベイズ的にするのかはちょっと分からないが、石の並びに対して点が地になるか否かの確率は出せそうだ。石の連に目が2つ以上あったらその連は100%の確率で地(中国ルール)で、目もほとんどの場合地になるでしょう。死んだ石は0%だ。こういう感じで条件を上手く設定すれば、全ての点で確率が出せそうな気がする。ほとんどの点が50%付近だと全然使えないが、おおよその点に関して0%か100%に近い値(70%以上か30%以下で十分そうな気がする。根拠はない)を得られるような上手い条件を見つけられれば、評価関数として非常によいものになりそうだ。上手く行けばモンテカルロ木探索のプレイアウトより高速に同様の結果が得られるはずだ。モンテカルロ木探索も勝率を評価関数にしているだけだと言えなくもないと思うので、試行をせずに勝率が計算できるならその方が良いに違いない。

ニューラルネットワークが流行っているからいいんじゃないかと思ったけれど、それより伝統的な統計手法の方が条件付けがしやすいだろう。何千年も人間が考えてきた碁のパターンというのがあるのでそれを条件に入れない手はない。ニューラルネットワークはちゃんとやったことはないが、条件をつけるのとかは難しいように思う。条件ごとに別のネットワークを作るのとかはセンスないし、ネットワーク自身に条件判定をさせるのはしんどそうだ。

以上のようなアプローチ(統計力学的手法と読んだらよいのか)を取った例はなかろうか。不勉強なので知らない。アホほど棋譜データが要りそうだし、分析等に時間を要しそうなので、計算機の性能的に今からでないと難しいのかな。

ある石の並びの条件下では統計的に有意な差が出るといったことを調べていくのだろうと思う。しかし、統計的な法則を色々見つけて見つけてから、囲碁の思考エンジンに組み込むにも隔たりがありそうだ。調べたら法則っぽいのは色々見つけれそうな気はするが、その法則で強い思考エンジンが作れるかは別問題だ。いろいろ法則を見つけても評価関数に組み込めそうなのは一部に違いない。ちょっとハードルが高いな。私は碁の真理に近づくなら、それで価値があると思うけど、思考エンジンを作る人は勝負事に興味があるわけで、ただでさえ役に立たない(役に立つとか立たないとか下らないが)囲碁エンジンの開発に役立つかどうかも分からないことをしようって人いるのかな。