TadaoYamaokaの開発日記

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

将棋AIの進捗 その20(自己対局による強化学習)

自己対局による強化学習を続けています。
現在、1サイクルあたり500万局を自己対局で生成するサイクルを17サイクル実行したところです。
教師ありでelmoで深さ8で生成した4.9億局面を事前学習したモデルを初期モデルとしています。
初期モデルは、収束前のLesserkaiには勝つがGPSfishには1度も勝てない程度のモデルです。

数サイクル回した時点では、初期モデルに対して弱くなっていましたが、17サイクル回したところで、やっと初期モデルに対して1手3秒の50回の対局で有意水準5%で強くなったことが確かめられました。
f:id:TadaoYamaoka:20180424235457p:plain:w350

しかし、GPSFishには1度も勝てていません。
1サイクルの実行にGPU3枚使って、3日かかっているので、レーティングを上げるのは気の長い作業になりそうです。

AlphaZeroの論文では、elmoのレーティングに達するのに110k stepsとなっています。
f:id:TadaoYamaoka:20180424234831p:plain

私のリソースでは、1 stepの実行に3日かかるので、1k stepsには333日、110k stepsには100年かかるため、AlphaZeroと同じレーティングの上昇傾向だと実現性がありません。
AlphaZeroと比較すると、

  • 特徴量に利き数と王手を使っていること
  • モデルサイズが小さいこと
  • 初期局面集を使っていること
  • 方策ネットワークの学習にREINFORCE Algorithmを使っていること
  • 価値ネットワークの学習にブートストラップ法を使っていること

という違いがあるので、収束が速くなっていればよいのですが、まだわかりません。

もう少し自分で検証して、間違いなくレーティングが上昇することが確かめられたらleela zeroのようにコミュニティの力を借りることを検討したいと思っています。

世界コンピュータ選手権は、今のままでは弱すぎるので、教師ありで学習したモデルを主に使うことになりそうです。
マルチGPUの1枚を強化学習したモデルにしてアンサンブルにすることも考えています。