dlshogi(GCT)との比較〜その2〜

要約

 現状のMiacisとdlshogi(GCT:電竜戦ver)とのレート差約300の内訳は

  1. 評価関数の差で約200
  2. 探索速度の差で約100

と予想。

損失計測

 前回とほぼ同様の設定で、floodgateの2015年の棋譜だけでなく2016年から2020年までの棋譜それぞれについて損失を計測した。

 前回からの違いとして、終了ステータスがSENNNICHITEとなっている棋譜は計測対象から除外した。

 得られた局面数はMiacis側でもdlshogiのhcpeに変換するスクリプトでも変わらず、以下のようになった。

データ数
2015 2477935
2016 4049364
2017 4263861
2018 2981430
2019 6086236
2020 11552275

 また前回はMiacisの中でもAobaZeroの棋譜から教師あり学習したパラメータについてのみ比較したが、今回はランダムパラメータから強化学習のみで得られたパラメータとも比較する。これらのパラメータは対局を行うとほぼ同程度の性能である。つまり、性能として見ると「dlshogi(GCT)>>Miacis(教師あり学習)≒Miacis(強化学習)」というような形になっている。

 損失計測結果

f:id:tokumini:20210209172102p:plain

f:id:tokumini:20210209172109p:plain

 ここ2,3年の棋譜にはdlshogi、Miacis、あるいは学習データもとのAobaZeroが指した棋譜も含まれる。その影響か、あるいは単に戦型の流行か、Policy損失は低めに出る傾向が見られる。逆にValue損失は上がっている。

 しかし明確に順位が大きく入れ替わるような年があるわけではなく、概ねどのデータでもそれぞれのモデルの比較結果としては変わらないように思える。

 前回は失念していたが、今までの結果から得られる感覚として、同じ損失値でも教師あり学習で到達する場合と強化学習で到達する場合は対局時の性能が異なる。教師あり学習は(AobaZeroの棋譜からなのでfloodgateの棋譜とはやや違うが)それでも性能のわりに損失が小さくなりがちではある。赤線は正直当てにならないと思いたい。

 問題は強化学習の方(青線)である。これは明らかにValue損失が劣っている。以前の試算では

Value損失が0.01小さくなればレートが86上がる

という仮説を立てた。今回計測した結果では、Miacis(強化学習)とdlshogi(GCT)のValue損失の差は0.050 ~ 0.027なので、素直に当てはめればR差 429.1 ~ 234.8 となる。そこそこ妥当な数値ではあるかもしれない。

対局

 ふかうら王(評価関数:GCT)は3000ノードで水匠30万ノードとほぼ互角というデータが出ている。

 Miacisでも探索ノード数3000で対局を行った。使用したパラメータ上の損失計測でも用いた強化学習で得たパラメータである。

 探索部 : 最新のやねうら王 commit id b0a3a2a4f7565bbefb85999368df15e9c90c621f リンク

 評価関数パラメータ : 水匠3改(20210111) リンク

 対局設定における若干の相違点として

  1. 対局時のスレッド数は複数のまま
  2. 開始局面は互角局面集ではなく初期局面

がある。

 Miacisから見た結果

1000局 231勝 2引分 767敗 勝率23.2% レート差-207.9

 評価関数の差か、3000探索内の効率の差かはわからないが、これだけの差があるようだ。

 個人的にはほぼ同内容のMCTS(PUCT)・かつ3000ノードでそこまで差はつかないと思っているので、これがそのまま評価関数の差として見ても良いのではないか。先の損失計測から見たレート差からするとちょっと小さめではあるが。

NPS

 手元でもdlshogiのusiエンジンをビルドできたのでNPSを測定した。とりあえず面倒なので初期局面だけ。オプションなどはなにもいじっていない。

モデル NPS
Miacis 24580±1614
dlshogi 45638±600

 約2倍となっており、手元の計測では2倍でレート100という感覚ではある。

結論

 というわけでこれらの比較から冒頭の要約で示したような考えを持った。

 ちなみに根本的なレート差が約300であるというのはそれぞれ以下のfloodgateでのレートが根拠。ここからGCTはさらに評価関数が伸びているようなので、評価関数部分にもっと伸びる余地を探りたいところだ。