[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

TadaoYamaokaの開発日記

個人開発しているスマホアプリや将棋AIの開発ネタを中心に書いていきます。

【dlshogi】自動生成された定跡を強化学習に活用する

将棋AIの大会では、2年ほど前から定跡により勝敗が高い確率で決まるという状況になっている。

相手の準備していない定跡で嵌めたり、相手が準備した定跡に嵌らないようにするという盤外の戦術が必要になっており、AIの技術的な要素とは別の戦いになっている。
この状況に不満を感じているが、大会のルール上、定跡の対策なしには勝てなくなっているため、対策を強いられている。

手動で定跡を作成しているチームが多い中、「手動で作成するのはAIの大会ではない」という考えを持っているので、dlshogiは定跡も自動生成で行っている。

dlshogiの定跡作成の手法の概要は、第34回世界コンピュータ将棋選手権の詳細アピール文書に記載している。

定跡の強化学習への活用

自動定跡作成は、上記のように大会への対策として着手したが、モデルの学習においても活用できることに気付き、強化学習にも自動生成した定跡を活用している。

具体的には、以下の箇所に定跡を活用できる。
1. 定跡に登録されている局面を自己対局の開始局面とする
2. モデルにより推論した方策と価値に、定跡を反映する
3. 定跡により評価が誤っていたことがわかった局面を重点的に学習する
4. 大量の互角局面集を作成して棋力測定に使用する

定跡に登録されている局面を自己対局の開始局面とする

大会では、序盤は定跡を使用するため、モデルを使用するのは定跡を抜けた後の局面からになる。
機械学習するモデルは、ノーフリーランチ定理で主張されるようにあらゆる局面に対応できる万能のモデルは作成できない。
つまり、大会での勝率を高めるには、定跡を抜けた後の局面を重点的に学習することが必要になる。
そのため、定跡に登録されている局面を自己対局の開始局面とすることが効果的である。

モデルにより推論した方策と価値に、定跡を反映する

定跡自動生成により、モデルの評価が誤っていた局面は、その先まで調べて局面により評価が訂正される。
それを、自己対局時に反映することで、モデルの誤りを積極的に訂正することができる。

dlshogiでは、Use_Book_PolicyというUSIオプションがあり、モデルの推論結果の方策と価値に、定跡の出現回数を元にした方策と価値を反映することができる。

事前確率に定跡の遷移確率も使用する(use_book_policyオプション追加) · TadaoYamaoka/DeepLearningShogi@a059c29 · GitHub


これは、棋神アナリティクスでも採用されており、オプションを有効にすることで無効の場合と比較して勝率は57%になる。
第34回世界コンピュータ将棋選手権準優勝! dlshogiアップデート!!|棋神アナリティクス開発

定跡により評価が誤っていたことがわかった局面を重点的に学習する

定跡自動作成時に大会と同じくらいの時間をかけて探索を行っている。
その後、定跡内の局面をαβ法で探索することで、定跡をリファインする。

リファイン前後の差分から、評価を誤っていた局面が抽出できる。

その誤っていた局面を開始局面として、NNUE系を含めた連続対局を行うことで、評価の誤りを訂正するための棋譜を生成できる。

大量の互角局面集を作成して棋力測定に使用する

自動生成した局面から互角局面を抽出することで、floodgateの棋譜から作成した互角局面よりも多くの精度の高い互角局面集を作成できる。
定跡から作成した互角局面集を使うことで、より多様な局面での棋力測定ができる。

また、中終盤の互角局面など条件を指定した互角局面集を作成することもできる。

dlshogi定跡の統計

現状のdlshogiの自動生成した定跡は、約285万局面、1000万手登録されている。

手数の統計は、以下の通り。

count 2848786
mean  50.4030
std   29.8483
min   0
25%   29.0000
50%   45.0000
75%   67.0000
max   404

出現頻度の高い手順ほど深くまで掘られており、最大で404まで登録されている。平均で50手ある。

先手の評価値の統計は、以下の通り。

count 1400665
mean  425.3173
std   1658.8552
min   -30000
25%   -17.0000
50%   247.0000
75%   647.0000
max   30000

後手の評価値の統計は、以下の通り。

count 1448121
mean  -138.5972
std   1111.3596
min   -30000
25%   -388.0000
50%   -89.0000
75%   116.0000
max   30000

先手も後手も手順によっては詰みまで探索されている。
先手は平均で評価値はプラスで、後手はマイナスになっており、AIによると、いかに後手が不利なゲームであるかがわかる。

まとめ

定跡の自動生成がモデルの学習にも活用できることを紹介した。
自己対局で現れる終盤の局面は、理論的に収束する強化学習アルゴリズムであっても、ほとんどの場合終盤局面は二度と現れない局面であり、一度誤って学習された局面が訂正されることは現実的には期待できない。
自動生成した定跡を活用することで評価の誤っていた局面を認識して、それを積極的に訂正することができる。
これにより、通常の強化学習では見過ごされがちな終盤局面の評価ミスを効果的に補正でき、モデルの精度向上に寄与することが期待できる。

定跡自動生成を強化学習のサイクルに組み込んだ模式図である。