モンテカルロシミュレーションで評価関数を呼びだす

mctsが一定手数で終局しなかったときにGPS将棋の評価関数を呼び出していたと思うのですが、そのときの一定手数とは確か100手ぐらいだったと思うのです。(よく覚えていません)

この100手を50手とか30手とかに縮めて行ったとき、もしかして棋力は向上するんじゃないかと思うのです。極端なことを言えば、これを0手にして、モンテカルロシミュレーションをせずにGPS将棋の評価関数を呼び出せば、UCB1-Tunedですから、最良優先探索っぽい探索になって、結局、普通のαβ探索と似た探索結果になるのではないかということです。

このときαβ探索で5手〜9手読みぐらいで終端ノードでGPS将棋の評価関数を呼び出しているような感じになって、それでもR2000はいくでしょうから、結局のところ、100手というのを0手にしたほうが強くなるというのが私の思うところです。

mctsの作者さんがGPS将棋の評価関数を呼び出しているのはplayoutの回数を増やすのがその目的で、別段、インチキをするつもりはないのだと思いますが、私からすればやはりこの実験の仕方はどうもまずいのではないかと思うのです。

そこで、私もシミュレーション中、それも数手目Bonanzaの評価関数を呼び出して強制的にplayoutさせてみることにします。

ただし通常探索中は従来通り駒得のみの評価関数です。ゆえに、少しでも駒得になる変化があればそちらを優先します。あくまで序盤の、駒の取り合いがない局面に関してのみこのシミュレーションの結果が採用されるというだけのことです。

これで強くなれば、100手で強制playoutのために評価関数を呼び出すより0手目でplayoutさせたほうが強いのではないかと予想できます。要するにモンテカルロシミュレーションなんてしないほうがマシという結果が得られます。

そして、少なくともひよこカルロ将棋では100手目でやるよりは0手目でやったほうが有意に強いようです。

もちろん、ひよこカルロ将棋のシミュレーションはいい加減な方法でやっているので、あまり正確な比較実験ではありませんが、一応私なりの答えを出しておきたいのです。

なおこの実験に使う実行ファイルはこのブログの上のダウンロードのところからダウンロードできるようにしておきました。ひよこカルロ将棋neo version 1.34がそれです。

またfloodgateにも投入しておきました。少なくとも以前のバージョンに比べると有意に勝ち越すようですが、マシンが余っていないもので、あまり多くの対戦はやっていません。

さて…いくらのRがつくでしょうか…。