電王トーナメントで得られた知見についてなのじぇ!
電王トーナメントで得られた知見についてそろそろまとめておこうじぇ!
~~事前準備日
ハクビシンさんからの情報
技巧は今回
tree strapとalpha goの技術を用いているのではないか
tree strap...深い探索を行ったすべての局面の末端ノードの値を近似する。
一日目にもう一度お話を伺ったところ、実際はtree strapは行っておらず、
alpha goの方法はポリシーネットワークを用いているらしい。
tree strapに関しては昨日のやねうらさんと技巧さんの会話の中でやねさんが難色を呈していた。
syogi serverを用いれば自己対局が上手くいくのではないか
ハクビシンさんのソフトでは評価関数をメモリから読みとるのが全体の計算時間の30%を占めているのでそこを高速化したいそう。
そこでハクビシンさんは上手く評価関数がキャッシュに乗るようにpaddingを入れている。
キャッシュはマシンごとに違うのでこの電王トーナメントのマシン用に事前準備の日にチューニングされていた。
1日目
やねうら王さん
詰みを見つけやすい評価関数であればcheckのextensionはいらない。
今後はどの特徴量を追加していくか
どの手を重点的に読むかにdeep learning?
ponanzaは持ち時間にNNを使っている?
ツツカナ
持ち駒だけで進行度を図っている。
実現確率探索はreducationだけそこで考えて、extensionは他の項目で考えている。
null moveの代わりにmulti cutを使っている。(selene も)
→その局面でテキトウな指し手を一手指してみてそれが何個beta値を超えるかどうかで枝切り。
null moveを超える指し手がこの中にあればmulti cutのほうが精度が良くなる?
カパック
教師データの精度を上げている。
反省した局面は教師データに入れていない?
ラプンツェル
Sibling conspiracy number searchを用いている。
他のゲームでは上手く行ったらしいが、
将棋では上手く行かなかったらしいので
静止探索は行ったらしい。
selene
ABC探索の考えを取り入れた枝切りを行っている。
→複雑な局面には行きたくないという考え方?
技巧とやねさん
技巧 futility marginを120+80*progressで強くなった??
razoring パラメーターがバラバラ。深いほうが大きくないとおかしい。これは本当に必要なのか?
技巧ではrazoring入れてELO+10ぐらい。
razoringは割りと安全な枝切り?(このあたり周りがうるさくてよく聞こえなかった)
外してもそんなに強さ変わらない
静止探索は軽くならないか?
飛車角成を省く?
歩のcaptureよりも価値のある成を入れる?
技巧 歩以外の成を枝切りでELO-13
終盤の歩のcaptureなんて要らない
成を探索しなければいけないような評価関数か?
大抵はfutilityによって枝をかられる。
seeは利きを持っていれば相手の効きがそこにあるかどうかで省略できる。
王手のseeはききのかずさえあれば省略できる?
王手延長
技巧 SEEが+でONE_PLY
SEEが-でHALF_PLY
王手延長は王手をかけた後の局面の指し手の少なさから考えて積極的に延長スべし
教師データ作成のときは枝切りなしのdepth3で作成したほうがいいか?
枝切りありのdepth6ぐらいが普通のdepth3ぐらい?
boot strapの論文はデータが胡散臭い
Tree strapよりもRoot strapのほうが信頼できる?
探索のパラメーター調整はsingler extensitonの関係で他のソフトとやったほうがいい。
マルチスレッドの場合はhistoryの値の入り方がぜんぜん違うのでぜんぜん違う進行になる!
激指の研究ではKPが一番進行度を表現できるらしい。
shogi686さん
PEXT bitboard 飛車の利きを一回で求められるがmargeしないといけない
rotetedはmargeしなくていいところは早いけれども、利きは一回では求められない。
shogi686さんは両方試してみてrotetedのほうが早かった模様。
PEXTテーブルが大きいのでキャッシュに載るか乗らないかでソフトによるところが大きい?
レイテンシがどうこう言われたけれどわからなかった
_blsr_u64()
一手詰め関数はtemplateを使って短くしている。
強くなるときというのは遅くなるもの。
null moveが上手く行かなかった指し手の保存
2日目飲み会
次元下げは値の波及が激しい。
教師データが変わったのがソフトの気風の変化に影響?
Alpha Goも人間の棋譜からのほうが強くなっているところもある!
→人間の棋譜とソフト起伏の違いは?
発想の漏れを見つけなければならない。
ponanzaはKPP KKPTを使っている。(KPPTではない)だからめちゃくちゃ速い。
やねさん KPPTでもいいのでは。KPPTでパラメーターチューニングしなければならず、細かい比較はできていない。
去年の電王トーナメントバージョンに9割勝つ。
直近3ヶ月でパラメーター調整のために600のブランチを作った。