ひよこカルロ将棋v.0.03でUCB1実装しました。

v.0.02がやはり序盤がおかしすぎるので、UCB1を実装して、ひよこカルロv.0.03としてfloodgateに投入しておきました。強くなっているといいのですが。

見た感じ、まだ98香とか指してきます。po(playout)が少なすぎるんでしょうね。1スレッドでやっているので1500po/sぐらいしか出てませんし。各ノードでSEE調べるの結構重いです。しかしここ端折るとpoの精度さがって、ひどいことになるようです。あとSEEだと駒をタダ取られする手を見過ごしているのでもう少しきちんと処理する必要があるように思います。

それから、UCB1-tunedとかもあとでやってみます。(まだよくわかっていません。)

しかし、100poやっても静止探索ぐらいの評価精度しかないので、結局、100po×200手 = 2万回の指し手生成をやって1回の静止探索ぐらいの効果しかないんですよね。これだと全然割りに合いませんね。

それがmcts(モンテカルロ木探索)型の将棋プログラムなんでしょうかね。いやはや…。

ひよこカルロ将棋v0.04をfloodgateに投入しました。

・各種延長(recapture,one reply,check extension)を追加しました。

あと、null move→何か指し手→null moveというのをするのを忘れてました。null move→null moveとnull moveの連続が駄目なだけで、null move→何か指し手→null moveとかはアリなんですね。うっかりしてフラグを元に戻していませんでした。

これを修正したところ初期局面で15〜23回ぐらいiterationが回るようになりました。相変わらず評価値が0の局面ばかりなので全然意味がないのですが。

たぶん、これらによりR2,30ぐらいあがってR1750ぐらいの点数がつくのではないかと思います。

勝率と指し手との関係

ひよこカルロ将棋v.0.02ではモンテカルロでplayoutまでシミュレーションを行なっていました。playoutしたときに勝っていたほうのすべての指し手をプラス、負けていたほうのすべての指し手をマイナスして、LMR用(Last Move Reduction)のhistoryを書き換えていました。

これがあまり効果がありませんでした。

つまり、勝率と指し手(78の銀を77に運ぶだとか、そういう意味での指し手)とは相関があまりないのだと思います。初心者であろうと78の銀は77に運ぶでしょうし、上級者のほうが78の銀を77に運ぶ確率が高いだとか低いだとかそういうことはなかなか言えないのだと思います。

初心者と上級者とで、銀を運ぶタイミングは異なるでしょうし、他の駒との関係も異なるのでしょうけど、指し手そのものと勝率とはあまり関係がなくて、この部分でどうも失敗しているのだと思いました。

そこで、ひよこカルロ将棋v0.03ではルートノード(探索開始局面)について、それぞれの指し手をUCB1(よさげな手をたくさん試行する)でシミュレーションをしていくように変更しました。

これもあまり精度がよろしくないです。前者よりは少しはマシなのですが、floodgateの棋譜をご覧になっての通りです。初手、18香や98香なども出てきます。シミュレーションの回数が少ないことも原因のひとつとして挙げられますが、それと同時にシミュレーションの性質がよろしくないのです。

SEE < 0の指し手は選択するときに除外するようにしていますが、SEE < 0では駒をただ取りされるケースを無視していて、これまたあまり適切なシミュレーションになっていないのが原因だと思います。

SEEという評価尺度が将棋のシミュレーションに適しておらず、もう少し精度がよくて簡単に評価できるような評価尺度が必要だと感じます。せめて自分の大駒への利き(ヒモ)を外して自分の大駒がただ取られするような指し手をマイナス評価できなくては。

ひよこカルロ将棋v0.03を公開しました。

ひよこカルロ将棋v0.03を公開しました。例によってこのブログの上のところから実行ファイルをダウンロードできます。

モンテカルロシミュレーションにUCB1を採用しました。

v0.02よりわずかに強くなっていると思います。floodgateの二週間レーティングからするとR1720相当だと思います。

評価関数は相変わらず駒得のみです。それ以上のものは何もありません。

floodgateにはその次のバージョンのv0.03を投入中です。

floodgate under R2000

私がfloodgateに初めてひよこ将棋を投入したのが10月19日。そのときはR1300でした。pishogiにはなんとか勝てるものの、他はボロボロでした。

pishogi相手にもこちらの1手詰め判定のバグなどにより負けることもしばしば。

そのあと改良を重ね、GA将やれさぴょんにぽつぽつ勝てるようになるとR1500ぐらいの点数がつくようになってきました。この二つのソフトは、こちらが定跡形を外してしまうからか、序盤がそれほどよろしくなく、力戦形になればこちらのほうが探索量が圧倒的に多いので力勝ちするようでした。

そうこうしているとさらに探索部分の改良と、UCB1を採用して序盤がわずかに改善されたので(王を居玉から動かすようになっただけでも大進歩!)、R1700程度の数値がつくようになってきました。

しかし、目の上のタンコブとしてgps500というのがいます。これがfloodgate上の点数はひよこカルロ将棋と同じぐらいの点数(R1750ぐらい)しかないのですが、めっぽう強いです。ひよこ将棋とはあまり当たったことはありませんが、定跡から外れてもきちんと玉を囲うので、もうその時点でR300ぐらいの力の差がないと勝てない将棋にされてしまっています。

gps500相手にこのボロボロの序盤で勝てたとしたら、それは終盤力においてはR2050は超えているのだと思います。

そんなわけでして、ひよこカルロ将棋にとってgps500(R1750)がひとつの大きな壁として立ちはだかっております。

そこを超えると、その上には居玉のひよこ相手に穴熊に囲っちゃう大人気のないBlunderXX-r3780_4c(R1960程度)が控えていて、これはいまのひよこカルロ将棋はどう改良しても到達できるかどうか怪しい領域です。

floodgateのR2000以下の世界はそんな様相になっております。
人間の将棋の世界とは少し事情が違います。

ゆえにR1750のgps500に安定して勝ち越せるようになったとき、それはひよこカルロ将棋が何か新しいブレークスルーを手にしたときではないかと思うのですが、いかがでしょうか。

と偉そうにfloodgateに参加して1週間目の初心者が語ってみました。

端玉戦法

ひよこカルロ将棋v0.04 vs pishogiとの一戦。


http://wdoor.c.u-tokyo.ac.jp/shogi/view/2011/10/26/wdoor+floodgate-900-0+hiyoko_carlo_v0.04+pishogi+20111026210006.csa


ひよこカルロ将棋、16玉型です!!



めちゃくちゃです。こんな将棋ソフトが本当にR1750もあるのでしょうか…。
笑っちゃうような指し回しですね…。


他の将棋ソフトになんだか申し訳ない。