minmaxとMCTS

以前,将棋AI界は丁度αβ型とMCTS型が均衡している非常に貴重な時期にあるという話を書いた。

 

bleu48.hatenablog.com

 

電竜戦の広報イベントとしては成功したと言ってよいだろう。

呼称としてαβ探索と言うのが日本では普及しているが,実のところminmax法がその原理的な根源であり,αβ法はその枝を刈る手法と学術的には認識されているため分類としての枠組みはminmax法を呼ぶのが正確である。MCTSの方も,もはや確率的な意味でのモンテカルロ法から逸脱しており,PV-MCTSと呼ぶのが主流と言ってもモンテカルロを名乗らない方がいいと言う案にも説得力があるような状況である。じきに時代が評価を決めるだろう。

将棋AIの現行モデルでは両者とも深層学習モデルで局面評価を行うのだが,前者は比較的軽量なモデル,後者は比較的重厚なモデルとなっている。

 

ところで,昨年末から以下の書籍の関係で簡便に深層学習モデルを扱うインフラが出来てる。

python-dlshogi2で遊ぼう - 48's diary

強い将棋ソフトの創りかた(その2) - 48's diary

 

これらはもちろんPV-MCTS型の探索なのだが,一度簡単にこの評価モデルでMINMAX法を使ってみた。

αβと言いたいところだが,実際GPUを使ったバッチ処理だと一局面ずつ評価するより多少無駄でも多くの局面を一気に評価した方が高速に処理可能であるためバッチ評価する完全なMINMAX法を実装した。

 

で,結果floodgateに放り込んだところ,一手読み(depth1)でレート1600,二手読み(depth2)でレート2300程度を得た。

Player Statistics

 

 

古典的なMINMAX法の他のものと比較して局面評価性能が抜群であることは分かる。重厚なモデルの価値があるというところだろう。

しかしながら,三手読みまでMINMAX法で行うと中終盤で数分程度かかるためfloodgateでは二手読みで止めてある。

何かしらの改良が出来れば三手,四手と読んでみたいとは思っている。

---

参考に,Bonanzaのdepth10でレート2600,技巧2のdepth8か9で同等とされているらしい。depth3か4くらいで追いつけたら面白いかな。