Stockfishの出現以降、わずかなレーティングの差を積み重ねながら改良していくのが主流なのでR5程度の差を検知できるのと出来ないのとでは大違いです。
しかし、自己対局のときに形勢に差がついている局面から開始させるとそれがノイズとなってしまい、1万対局程度ではこの差を検知できなくなってきます。そのため、形勢が互角の局面集が必要となります。それも、ある程度の深さで探索したものが欲しいところです。
やねうら大定跡では、32手目までdepth18で探索しているので、これを利用して24手目時点で評価値が[-100,100]の範囲のもの以外は除外し、また同一局面を重複除去したファイルを用意しました。全部で1120710818局面あります。
やねうら互角局面集 11207局面
https://drive.google.com/open?id=0Bzbi5rbfN85NMnBJTDlrVkxhc0E
↓おかしい棋譜が入っていたので修正しました。(2016/08/25 9:45)
やねうら互角局面集 10818局面
https://storage.yaneu.com/yaneuraou/records2016_10818.sfen
ファイル内容は、テキストファイルで初手から24手目までUSIプロトコルっぽい文字列で書かれています。
1 |
startpos moves 7g7f 3c3d 2g2f 5c5d 2f2e 8b5b 4i5h 9c9d 3i4h 9d9e 5i6h 5a6b 6h7h 6b7b 3g3f 7b8b 2e2d 2c2d 2h2d 4a3b 6g6f 7a7b 8h7g P*2c |
重複も除去されているのでこのなかの1行目から順番に使っていけばそれで良いかと思います。
自己対局の精度アップに活用してみてください。
■ 追記[2019/04/21]
関連記事 : 互角局面集での棋力の計測は適切なのですか?
この方法を使った、やねうら王 での勝率の分布はどの程度でしょうか。
先後とも同じバージョンで、例えば20セット程度の勝率の分布データを見てみたいです。。。
強さが同じバージョン同士を戦わせて勝率の分布がどうなるかということですか?ポアソン分布にしたがっているかどうかで対戦の精度を判定する、的な?それは相当計算資源を使わないといけない気がするので、いまやるのは嫌どす。(´ω`)
全体ではなくて、各サンプル互角局面ごとに100局で統計とるんじゃないですかね。
で、10勝90敗とか極端な結果が出た数百局を外すとか?
1手0.2秒で1局20秒を100万局、2000万秒を
50局同時進行で40万秒、120時間くらい?
それとも、2段階で、粗めに怪しいやつをスクリーニングしたあと、小数を精査するやり方の方がいいのか、わかりませんが。
MyBona1.8.3にやねうら大定跡を表示する機能をつけました。
処理するのに10秒かかりますので将来定跡が大きくなったら対策が必要になりますが。
(゚д゚)! まさかの公式対応!!ありがとうございます!
やねうら王のソースコードのなかにやねうら大定跡をバイナリサーチで読み込むルーチンがあるので、それ流用していただけると良いかも知れません。(その部分の著作権等は主張しませんのでご自由にお使いください。)
テキストファイル読み込み、指し手配列確保、sfen parseがそれぞれ1/3なのでなかなか面倒です。(2番目は改善の余地があります)
Bonanzaのbook.binはバイナリデータなので処理に時間はかかりませんが。
将来巨大定跡を作成されるならバイナリ版もあったほうがいいかもしれません。(Bonanzaのbook.bin程度の大きさで十分とも思われますが)
ところで横歩の24歩がないので横歩にならないのが気になります。
やねうら大定跡はsfen文字列でソートされていて、そのファイルを直接バイナリサーチする話なので、テキストファイルの読み込み自体が要らないですし、sfen文字列の(事前の)parseも要らないのでは…。
これは極めて有用なデータだと思います。
なぜなら先手番は自分の好きな戦法だけ入れれば問題無いが、
後手番は先手のあらゆる攻めに対応しなければならないことを考えると、
24手目段階で互角評価の局面が10818局面もあるからです。
これは後手番の定跡強化に極めて有効でしょう。
10818局面を1つ1つのKIFファイルとかに変換出来ませんか?
理想は初手が5種類あるのなら、5種類の分岐KIFファイルなんですが。
> これは後手番の定跡強化に極めて有効でしょう。
途中の局面が互角かどうかの保証はないですよ?
> 10818局面を1つ1つのKIFファイルとかに変換出来ませんか?
Blunder.Converterでsfen→kifでもcsaでも変換できます。分岐KIFにするのは、私にはわかりません。
とりあえず後手番として500局面程度に作戦負けと思わしき棋譜がありましたので削除し、後手番の定跡を作成してみました。
先手ノーマル技巧に対して、4コア3秒で勝率7割を超えますね。
R200程度の上昇でしょうか。
たった1万局面の定跡で効果があったので、今の評価関数で互角局面という方向性がいいんじゃないでしょうか。
もっと探査深さを変えたものを追加したりすれば、さらなる上昇が期待出来るかもしれませんね。
> 後手番として500局面程度に作戦負けと思わしき棋譜がありましたので削除し
目で見て??凄すぎ…。将棋はいかほどの腕前で?
棋力というよりは、将棋ソフトに対して有効な戦法かどうかで判断しました。
例えば技巧相手に先手番で立石流四間飛車をすれば一方的にボコれます。
立石流四間飛車の対策は角交換後に33角とすぐに打つという明確な対策があるので、人間はほとんど使いません。
しかし、将棋ソフトは81マスどこにでも打てる角という強力な持ち駒を何の駒も狙わずにいきなり打つことはしません。
なるほど。参考になります。
> 立石流四間飛車の対策は角交換後に33角とすぐに打つ
これ、いまのソフト、自力で33角打てないですかね?思考時間伸ばしたら見つかるという類の手ではないのかな…。
技巧は自分が+400と形勢判断しているので打ってきませんね。
Apery新評価関数は互角と判断し、狙いは違いますが飛車の斜め前の53角成りを狙う35角打ちから守られて、44角に移動する結果33角と同じ筋に角をきかせることは10回に1回くらいあります。
へー、面白いですね!千田先生も感心されてましたよ。> twitter