たくさん読めば強くなる?

更新日時:

将棋プログラムを強くするためには、深くたくさんの局面を 読めばよいということは経験的にわかっている。 だからこそプログラマーは、限られた時間内にたくさんの 局面を読めるように努力するわけである。 しかし、実際のところ、本当にたくさん読めば強くなるのか、あるいは、 どれだけ読めばどれだけ強くなるのか、といったことは、よく わかっていない。

そこで、激指を使って、 読む量(時間)と強さの定量的な関係を調べてみることに しよう。 激指は深さで打ち切っているわけではないが、結果として レベルを上げればたくさん読むようになる。そこで、激指を異なる レベルで対戦させ、思考時間と強さの関係を調べる。

数多くの対戦をさせて統計情報をとろうとする場合に問題に なるのが、どうやって異なった展開を実現させるかという ことである。 もしランダムの要素を全くいれないと、初手の局面から全く 同じ展開で投了図までたどり着いてしまう。 そこで、この実験では、定跡をランダムに選択させること で異なった展開になるようにした。現時点では、定跡として およそ3000局面入っているため、それなりにばらついて くれているようである。実験結果を下に示す。

対戦レベル勝敗勝率
レベル8 vs レベル735勝5敗0.88
レベル9 vs レベル831勝7敗2分0.82
レベル10 vs レベル937勝2敗1分0.95
レベル11 vs レベル1030勝8敗2分0.79
レベル12 vs レベル1129勝9敗1分0.76
レベル13 vs レベル1227勝11敗2分0.71

こんなに違うとは思わなかった、というのが感想である。 レベルが上の方の勝率が7割から9割、平均して約8割にも 達している。レーティング換算だと 約230点にもなる。 激指の場合、レベルが一つあがると思考時間はおよそ 2.5 倍 になるのだが、2.5倍の思考量でレーティング +230 というのは かなりの上昇率のように思う。

ただ、ここで注意するべきなのは、レベルが上がるにつれて、 勝率が下がる傾向にあることだ。この大きな原因は評価関数 にあるように思う。例えば、まったくでたらめな評価関数を 使うと、いくら読んでも意味がないため、勝率は全く上がら ないだろう。それほど極端でなくても、評価関数が不正確 であれば、深く読むことの効果が少なくなるはずである。

「コンピュータ将棋の進歩3」で、金沢さんが評価関数の中 の大駒が詰まされる可能性に対する評価について次のように 書いている。

「大駒が詰まれる可能性というのは遅いコンピュータにおい ては、かなり高く評価していたが、現在ではたくさんの手が 読めるようになっているので、それほど重視していない」

このことからわかるのは、読める量によって、適切な評価 関数が変化するということだ。つまり、レベル10に対して 最適な評価関数が、必ずしも、レベル12にとって最適な評 価関数ではないということである。

激指の開発の過程では、レベル10やレベル12で読ませて実験 することが多かった。したがって、知らず知らずのうちに、 評価関数もそのレベルにとって都合のいい評価関数になり、 レベル13や14にとっては、「不正確」な評価関数になっている のだろう。

また、激指の現時点の評価関数は、特に序盤の評価に関しては かなりでたらめである。しかし、将棋というものは、ハイレベルな 戦いになるほど序盤が重要になってくる。 つまり、今の激指では、高度な将棋になるほど、 「下手の考え休むに似たり」状態になって しまっているのだともいえる。


激指のホームページへ
ご感想・ご質問等がありましたら まで、お気軽にどうぞ。