TadaoYamaokaの開発日記

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

dlshogiはどれくらい人間の指し手に近いか

コンピュータチェスでは、ディープラーニング系のAIは、従来型に比べて人間の指し手に近いという研究がある。
従来、人間の相手になるように、レーティングを下げるために、探索のノード数や深さを下げるということが行われていた。
しかし、人間にとっては不自然な指し手になるという課題があった。
ディープラーニング系のチェスAIを使うと、より自然に弱くできるという研究である。
The human side of AI for chess - Microsoft Research

コンピュータ将棋においても同じことが言えるのかdlshogiと水匠5を使って検証してみた。

検証には、将棋ウォーズの棋譜をお借りした。

dlshogiと水匠の条件

人間と同じくらいの強さになるように、dlshogiは、固定プレイアウト16,64,256,1024の4パターンで、バッチサイズ1とした。

floodgateでのレーティングは、プレイアウト64で3069になる。
低レーティング帯での探索ノード数と強さの関係 - TadaoYamaokaの開発日記

水匠5は、dlshogiとほぼ同じ強さになるように、固定ノード数1024,6400,25600,409600の4パターンとした。

一致率

人間の棋譜3万について、指し手の一致率を比較した結果は以下の通り。

棋譜のレーティング帯別に集計している。

考察
  • 水匠5に比べてdlshogiは、人間の指し手に近い(一致率が高い)
  • dlshogiはノード数を減らすほど、一致率が上がる
  • 水匠5は逆に、ノード数を減らすと一致率が下がる

従来型はノード数を減らすと不自然になるということが一致率から確かめられた。
また、コンピュータチェスと同様に、弱くした場合に、ディープラーニング系の将棋AIの指し手はより人間に近いことがわかった。

人間の棋譜を学習

人間の棋譜を学習した後に、一致率が上がるか検証した。

将棋ウォーズの棋譜を用いて、dlshogiのpolicyを追加学習(valueはdlshogiの推論結果を学習)した際の一致率は、以下の通り。

考察
  • 探索ノード数が少ないの場合に、より人間と一致率が高くなる
  • R1500付近が最も一致率が高い(棋譜の分布によると考えられる)
  • 探索ノードを増やすと、一致率が下がる

人間の棋譜を学習すると、一致率は、54%程度まで上がることがわかった。
棋譜はR1500付近が最も多いため、R1500付近との一致率が一番高くなった。
棋譜が十分にある場合、レーディング別に分けて学習すると、そのレーティング帯の指し手の傾向を学習できると思われる。

探索ノードは少ないほど、一致率が高い理由は、切れ負けでの対局のため人間はそれほど深くは読めていないため、浅い探索の方が一致率が高くなったと考える。

まとめ

コンピュータチェスの先行研究と同様に、コンピュータ将棋においても、ディープラーニング系の将棋AIは、従来型よりも、弱くした場合により自然な指し手になることが確かめられた。
また、人間の棋譜を学習することで、より人間らしい指し手を学習することができた。


この人間の棋譜を学習したdlshogiが、将棋ウォーズのCPUとして追加されています。
対局の際には、ぜひ遊んでみてください。

将棋ウォーズにログインすると、棋譜が見られます。振り飛車も指しています。
shogiwars.heroz.jp