|
(GPS将棋開発参加記録)
|
後日に書いていますが、3月9日はゲーム情報学研究会でした。今回は過去最大の発表件数であり、また、よく準備された発表が多かったと思います。
ゲーム情報学会員の方は情報処理学会のweb parkで、それ以外の方は有料で購入するか、無料公開になるまで(2年?)待つか、著者が著者のページで公開していれば読むことができると思います。
いわゆる「学習」に関係するもので、コン ピュータ将棋の方も興味を持たれるかもしれない発表について、個人的な感想 を簡単にメモします。コメントするようで恐縮ですが、論評する意図ではありま せんのでお見逃しください。
誤解等ありましたらコメントお願いします
Bonanzaの名誉を讃えるために、というと大げさですが個人的にプログラミングのリハビリも兼ねて、floodgate月間最多勝のページを作ってみました。
トップを逃している2008年5,11月や2009年2月も勝率は一位より高いことを考えると(gpsのプログラムの方が停電やshogi-server再起動後に早く復帰するため試合数が多い影響と思われます)、登場以来、長期間トップを独走していることが表から読み取れます。
将来的には、レーティングや相性(二つのプログラムの間の勝率)などの変化と合わせて時系列的に楽しめるようになると良いなと思います。
大きな仕事があったせいでいろいろな仕事が積み上がってしまっています。あと、今年は花粉症の症状が重いです。一応薬は飲んでいますが、発作的に症状が出るとしばらく室内から出られないことも。
週末のCSA例会の準備を進めなくてはいけないのですが、何とか頑張りたいと思います。
先日CSAの例会でOSLの読み方などについてお話してきました。当日配布した資料に質問等を追記して公開しましたので、興味のある方はどうぞ。
当日はたくさんのコメントありがとうございました。質疑はいくつか失念してしまったものがあったかもしれません。何かありましたらここにコメントくださると幸いです。
同じくCSAの例会で伊藤研の方が発表された多数決で将棋を指す実験の流れで、B*探索の話題が出ていました。評価値に幅を持たせた評価関数でB*のような探索した場合と、その幅のどこかの評価値をピンポイント使う従来通りの探索プログラムを多数用意して多数決を取った場合で、結果として同じ効果になっているかもしれない、ということですかね。UCT方面や、アンサンブル学習方面等色々比較対象があって面白そうです。
Bonanzaでもcraftyでもzebraでも簡単に実験できそうで、今は良い時代だと思います。論文をお書きになったらぜひGPWにご投稿を:-)
参考文献はこの辺だと思いますが、最近読み返していないので勘違いがあったらご指摘お願いします。
@Article{berliner79:_b_tree_searc_algor,
author = {Berliner, H.},
title = {The {B*} tree search algorithm: A best-first proof procedure},
journal = {Artificial Intelligence},
year = 1979,
volume = 12,
pages = {23--40}
}
@Article{palay82:_b_tree_searc_algor,
author = {Palay, A. J.},
title = {The {B*} tree search algorithm -- new results},
journal = {Artificial Intelligence},
year = 1982,
volume = 19,
pages = {145--163}
}
@Article{berliner96:_b_probab_based_searc,
author = {Berliner, H. and McConnell, C.},
title = {{B*} probability based search},
journal = {Artificial Intelligence},
year = 1996,
volume = 86,
pages = {97--156}
}
@Article{baum97:_bayes_approac_to_relev_in_game_playin,
author = {Eric B. Baum and Warren D. Smith},
title = {A Bayesian approach to relevence in game playing},
journal = {Artificial Intelligence},
year = 1997,
volume = 97,
pages = {195--242}
}
gcc-4.3 とGPS将棋でprofile feedback optimizationを試してみました。 ほぼ局面によらず約9%程度速くなるようです。手順は、以下のようにしました。
適当に探索させる部分の詳細は、適当に選んだ16個の局面(進行度を16段階でつけた時に異なる進行度を持つ局面とした)を45秒探索としています。これを1局面だけの探索にしてテストも同じ局面で行った場合は、上記の数値より速くなりました。しかし、他の局面ではそれほど速度が向上しないので、予想通りですがoverfitと思われます。一方で、16局面で十分かどうかはよく分かりません:(
バイナリの大きさは2/3程度に小さくなりました。cachegrindによる観測ではキャッシュミスが減って分岐が増えていることと合わせると、通常のGPS将棋のコンパイルでは過剰にinline展開してしまっていると想像されます。
先日CSAの例会でGPS将棋でprofile feedbackは(過去に試した時点では)あまり効果はなかったと申しましたが、最近のコードとコンパイラでは割と効果があるようです。