GA将?開発日記~王理のその先へ~

ネタ勢最強を目指して絶賛開発中。

カーネル法評価関数+TD(λ)での実験結果

 テーブル形式評価関数での実験結果はこちら。 http://d.hatena.ne.jp/Gasyou/20111112/1321093400

 一つひどいバグがあって、関数の引数で「先手から見た評価値」か「後手から見た評価値」のどちらを計算するか指定するんですが、その指定を無視して常に先手の値を計算していました。

 んで、カーネル法に書き換えてそのバグを潰した結果ですが、かなり良くなりました。

 まずは実験の条件。

 んで、実験結果は下記の通り。

学習条件 結果 収束までの対局数
先後とも学習 ○(-8) 約1,100局
先手のみ学習 ○(+16) 約1,200局
後手のみ学習 ○(-14) 約80局

 前回は書き忘れていましたが、グリーディー方策に従って対局した結果(石の数の差)が、完全解析した結果(石の数の差)と一致し、それ以降変化しなくなった時点で収束したものと判断しています。

 前回の結果とは違い、先手のみ学習でもちゃんとした結果に収束していますし、先後とも学習と後手のみ学習は(対局数ベースで見ると)収束速度が桁違いに速くなってます。

 ただ、一つ問題があって、線形評価関数だと24時間あたりの対局数が数百万局なんですが、カーネル法評価関数にするとこれが8万局弱になり、桁違いに遅くなります。

 という訳で、時間ベースで見ると収束速度は1桁位遅くなるんですが、その分評価関数の精度は上がってるはずなんで、とりあえずはこれで良しとしておきます。

 さて、次はどうするかですね。本将棋でTD(λ)+カーネル法評価関数を実験するか、4x4リバーシで方策勾配法+カーネル法評価関数にするか。

 どっちにしろ最終的には本将棋で方策勾配法+カーネル法評価関数にする予定なんで、途中経路が違うだけなんですが、ちょっと迷いますね。(両方やるのは時間的に厳しいので…)