探査自体を強化学習問題として解く論文(多分)
PGLeaf Vierはひとまず白紙撤回
Replay Buffer使うとなんか学習が不安定になるし、私は無理してReplay Buffer使いたい訳ではないので、プラン再考中。
んで、今後どうするかなぁ…
とりあえず「自己対局時のランダム性が不足しているらしい」というのは分かってるんで、そこを何とかしないといけないんですが、単純に温度上げるとそれはそれで悪影響出てくるし…
やっぱ、REINFORCEベースじゃなくて、報酬の予測値を学習する関数近似器を導入するのが手っ取り早い?
PGLeaf Vier開発開始
Experience Replayを使いたかったので、上記のサイトを参考に実装。
現時点での構成は「REINFORCEベースのPGLeaf+Experience Replay+重点サンプリング」ですが、最終的にはもっと色々拡張する予定。
- 作者: 森村哲郎
- 出版社/メーカー: 講談社
- 発売日: 2019/05/23
- メディア: 単行本(ソフトカバー)
- この商品を含むブログを見る
んで、今日買ってきたMLPシリーズの「強化学習」に、関数近似を用いた方策勾配法の初見の手法が載っていたので、次はそれを実装する予定。
現在は三目並べモードでデータ収集中なんで、それが終わってから(多分2時間後)改良しますかね。
…あ、その前に不要なコードとかの整頓しとかないと、スパゲッティコードになっちゃう。
5五将棋用連続対局サーバの機能追加、ほぼ完了
えー、まず以前の記事の訂正から。
「Winboard」がShokidoki/Limaの使用しているプロトコル名だと思ってましたが、正式には「xboard」みたいです。もともとUNIX用のXBoardというチェスのGUIがあって、それが使用していたプロトコルが「xboard」。で、XBoardのWindows移植版がWinBoardという名称みたいですね。
んで、そのxboardのエンジンを連続対局サーバから呼び出すのは、多分出来る様になりました。エンジンが異常な挙動をする*1事は無くなりましたし、GA将と連続対局させてもまぁ妥当な勝率になってます。
現時点では、Fairy-Stockfish/Shokidoki/Limaをスパーリング相手にしています。エンジンのダウンロードは下記サイトから行いました。(Fairy-Stockfishのみ、少しソース修正して自前でビルド。)
github.com
hgm.nubati.net
sites.google.com
Limaに関しては、おそらくUEC杯版とほぼ同じバージョンが公開されていると思われますので、まぁこっちは大丈夫でしょう。
ただ、Shokidokiですが、公開版には定跡が入っていないのか、古い版なのかは分かりませんが、かなり弱いです。第11回UEC杯版とほぼ同じ棋力のGA将?が8割がた勝っちゃってます。
それと、Shokidoki/Limaはスレッド数を指定しても無視してシングルスレッド探索になっているっポイんですが、これに関しては原因不明。現在調査中です。
まぁ、スパーリング相手としてはシングルスレッドでも十分強いんで、このままでも良いかな、とは思っていますが。
*1:Illegal Moveを返すとか、反応しなくなるとか
5五将棋用連続対局サーバの改良中
今まではGA将対ssp専用で実装していたのを、Winboardプロトコルのエンジン含む複数エンジン相手に対局可能な様にしようとしています。
んで、現在はFairy-Stockfish3つ相手に対局してログ出力出来る様にまではなりました。
後はWinboardプロトコルのエンジンへの対応ですが、これはもうちょっとかかりそうです。何しろUSIとは色々違うので、まずプロトコルの理解から始めないといけない状況です。
それから、Fairy-StockfishをVC++2015でビルドして5五将棋モードで対局させるのはとりあえず成功しました。ソースの修正箇所としては、スレッド数・ハッシュサイズのデフォルト値を変更した位で、これはまぁ連続対局サーバの方で対応しても良かったんですが、楽したかったんでFairy-Stockfishのソースをチョロっと書き換えました。後、スタックサイズがデフォルト値だとStack-Overflowしたんで、64MBに増量してみました。
今後の予定は、Winboardに対応させてShokidokiとLimaもスパーリング相手に加える事ですね。