floodgateのユニーク局面数(Aperyの初期局面の話)

2016年当時の電王トーナメントを前に平岡さんからAperyの教師データ生成に関して不特定多数の協力依頼があった。今日の話題はここから始まる。

 

 

私も当時とくに将棋に関わっていたわけでもないが手持ちのマシンのパフォーマンス計測として一通り計測してみた。考えてみるとこれが私の関わりの最初かもしれない。

ベンチマーク - 48's diary

ちなみに,一番下のドスパラ機がshotgunの開発機で,その上のVAIO Zが世界コンピュータ将棋選手権優勝機である。

 

で,この際にAperyの自己対局で100万局面生成して送るわけであるが,その初期局面がroots.hcpと言う名の巨大なファイルである。

このファイル,後のdlshogiにおいても初期局面として使われることになる。

将棋AIの進捗 その19(初期局面集) - TadaoYamaokaの開発日記

 

二番絞りも強化学習過程において利用しているが,そもそも手段を選ばないで最高精度を目指すというコンセプトのためあまり深く考えていなかった。今回諸事情で平岡さんに確認を行ったところfloodgate棋譜由来と記憶しているとのことであった。

 

ということでfloodgateにおける古いユニーク局面を評価することにした。

計測においてCSAファイルの読み込みにはcshogi,ユニーク局面の生成にはnumpy.uniqueメソッド,重複局面の生成にはnumpy.intersect1dメソッドを用いた。

 

まず,2008年~2016年までの棋譜で3つ壊れているものがあった。

wdoor+floodgate-900-0+gps_l+MyMove900+20080621063001.csa
途中で切れている?

wdoor+floodgate-900-0+Gekisashi_X5590_1c+gps_+20120702000001.csa
初手がない

wdoor+floodgate-900-0+Sunfish3-trial04+your_program_name+20130107230005.csa
妙な文字が入っているうえ短い

エラー処理の方が面倒なので削除した。

 

次に上記1.15.0のroots.hcpのユニーク局面を数えた。ファイル上は46855837局面であるが僅かに重複がありユニーク局面は45945496局面である。

以後,各年度のユニーク局面数およびそれがroots.hcpに含まれる数を示す。

 

2011年
7032153
353798

2012年
9967477
9964794

2013年
10476209
10475665

2014年
7998208
7997057

2015年
6932244
6928346

2016年
6834503
4226259

 

2010年以前も計測したが1~3%程度であったので省略する。2011年は5%程度が含まれているが,2016年時点で恐らく年単位のアーカイブが存在したはずなので平岡さんの性格から考えてみても2011年分の一部を採用したとは考えにくい。

比べて,2012年~2015年はほぼすべての局面が含まれておりこれは全て採用したと考えることが出来る。若干抜けがあるのは何らかのフィルタが行われた可能性がある。

2016年はこのファイルが生成されたのが10月であることを考えれば妥当な割合と思われる。データ生成直前までの棋譜を採用されたのであろう。

 

逆に2012年から2016年のユニーク局面数を合計してもroots.hcpに一割程度届かないことも分かる。年度間の重複も考えれば更に不足分は多いと考えられる。

もう少し正確に出せるが意外と時間もかかるのでこれくらいにしておく。

 

ということで,9割近くがfloodgateの2012年から2016年10月由来で1割程度由来不明というのが結論である。