GA将?開発日記~王の理とは~

ネタ勢最強を目指して絶賛開発中。

「Combining policy gradient and Q-learning」を読んで、実装する為に最低限必要な知識をまとめてみた。

arxiv.org 前提 二人零和有限確定完全情報ゲームで、自己対局の結果からPGQ(論文の提案アルゴリズム)を用いて評価関数パラメータの学習を行う事を目的とします。 報酬は「勝ち:+1、引き分け:0、負け:-1」と設定し、終局後に報酬を与えるものとします。 …

まだまだ迷走中…

Factorization Machineを使用した疑似四駒関係は結局上手く行きませんでした。 という訳で、PPT+αで何とか強くしようと色々いじってます。 とりあえず、今までは割引率γを1に設定していましたが、これだとチョットぬるい手を指す事があるので、γ=0.99で学習…

迷走中…

三駒関係だと収束まで時間がかかりすぎるので無理だと判断して、ひまわりさん方式の学習も私には無理で、かと言って二駒関係では伸び代が少ないし… という訳で、お手軽に出来る二駒関係+全幅2手での学習を開始。とりあえず、これで強くなってくれれば嬉しい…

いい感じいい感じ

昨夜から18時間ほど学習させたパラメータでsspと連続対局中ですが、現時点で53勝16敗、勝率76.8%。どうも、前回学習時の最終的な勝率と並びそうな感じです。 コード自体は前と同じで、RMSPropのαとノイズの標準偏差初期値をちょっといじっただけなんですが…

やっぱり二駒関係で行く事にした

以前の二駒関係の評価値を見てみると、位置評価etcの評価値が大きすぎる気がしたので*1、その辺のメタパラメータとかを調整して再度学習用マシンに投入。 それから、山本一将@ひまわりさん方式の教師あり方策勾配法も試してみたけど、こっちは私には使いこ…

ついカッとなってやった。後悔はしていない。

二駒関係の学習を打ち切って、三駒関係の学習開始。色々コードをいじったんで、デグレしていないのを確認する為に、現在は5五将棋モードで学習中。 …したら、二駒関係のパラメータ、強くなっていました。 まぁ、選手権で使うパラメータが確保出来たと思って…

ここはじっと我慢の一手

今朝からsspとスパーリングしてたバージョンのパラメータですが、昨夜のやつより誤差程度弱くなっています。 ただ、まだ頭打ちと決まった訳では無いので、もうちょっと学習継続させてみます。今の感じだと、4月に入ってから三駒関係有効で学習開始しても何と…

もうちょっと様子見が最善手かなぁ

現在ssp相手に32勝23敗。頭打ちかと思っていましたが、まだ伸びるかもしれません。 という訳で、当面は現在の学習を継続する予定。 三駒関係有効での学習ルーチンの修正は完了して現在テスト中なんで、伸びなくなったらすぐに切り替えて学習させるつもりです…

VS ssp(本将棋モード)

24時間ほど走らせたパラメータで149勝161敗、勝率48.1%。去年の選手権バージョンよりは強くなってます。 ただ、どうもそろそろ頭打ち感があるので、早々に三駒関係有効にして学習出来る様にしようと思います。

あ、ひょっとしたら本将棋モードで三駒関係の学習可能かも

「専有メモリ量の関係で三駒関係は無理ぽ」って書いた覚えがありますが、データ構造を見直せば行けそうな気がして来ました。 まず、現在の実装だと評価関数内に「全特徴の平均(double型変数1個)と標準偏差(double型変数16個)」を保存しています*1。 で、…

Intelさん、PARROTの実装はよ

https://pc.watch.impress.co.jp/docs/2004/1109/kaigai133.htm PC Watchの過去ログをつらつら眺めていたら、PARROT(Power AwaReness thRough selective dynamically Optimized Traces)という懐かしい単語が。もう15年前かぁ。 私が理解した範囲だと、プロ…

本将棋モード、学習開始

とりあえず最適っぽいメタパラメータは見付かったんで、本将棋モードの学習開始。 スレッドのアフィニティマスク設定時に極力同じ物理コアに割り当てない様にとか、セコい改良をチョロっとだけして、後は5五将棋モードそのままです。 ただ、評価項目に関して…

Reflection-Play(反省会モード)は効果無しとの結論に至った

以前Reflection-Playを有効にして強くなった事があったんですが、これはReflection-Playの効果では無く、単に運が良かっただけみたいです。 という訳で、今日からは本命の本将棋モードでの学習に着手します。 評価項目を駒割+PPT+王将の移動可能範囲に限定…

Winboardプロトコルの解析、ちょっと進んだ

Winboardエンジンの標準入出力を覗き見してログファイルに保存するプログラムを作って、それを参考にプロトコル解析してみた。 んで、現状ではShokidokiとLimaを起動して、5五将棋モードで対局させられる程度には解析出来た(はず)。ちゃんと強い設定になっ…

川中島の戦いじゃないんだから…

13:56:26 @ core::rl::GameAggregator::aggregate() > 2200局終了 13:56:26 @ core::rl::GameAggregator::aggregate() > +---+---+---+---+---+---+---+---+---+ 13:56:26 @ core::rl::GameAggregator::aggregate() > | | | | | |v歩| | |^と| 13:56:26 @ co…

第11回UEC杯5五将棋大会 in GAT2019版のGA将?を公開しました

第11回UEC杯5五将棋大会 in GAT2019版のGA将?を公開しました。 下記URLのからダウンロード可能です。動作環境や使い方に関しては、ZIPフィアル内のReadMe.txtをご参照下さい。 ZIPファイルへの直リンク: https://drive.google.com/open?id=1mOWW2AYmJ554K…

PGQの実装、一通り完了

arxiv.org 上記論文を参考にして、PGQ*1を実装。将棋モードではαβ探索と組み合わせて動く様にしてみました。 論文との違いは以下の様な感じです。 DNNではなく線形の評価関数を用いる。 Replay Bufferを使用しない。 式(14)の第1項と第2項を同時に学習する。…

思考時間制御の修正案

先日書いた、合議での票の割れ具合に応じた思考時間制御の問題点ですが、解決策が見つかったのでメモ。 つらつら書くより擬似コードの方が分かりやすいかと思うので、まずそれから。C++風の構文です。 // PVには静止探索の読み筋も含むので、長さはバラバラ …

選手権までの開発スケジュール(案)

3月中:PGQの実装&アピー文書書く 4月頭~:評価関数パラメータの学習(4月20日頃までに完了させる) 4月20日~:思考時間制御のデータ収集&設定を決める ギリギリ、だなぁ。

UEC杯の振り返りと今後の予定

振り返り UEC杯ですが、GA将?は大きなトラブルは無く、無事指し終える事が出来ました。強いて言えば、2日目開始前にPCのコンセントが半分抜けかかっていて、突然電源が落ちる事があった位ですかね。まぁ、これも対局前に気付いたんで、大きな問題にはなりま…

UEC杯終了!

先程無事帰宅し、GA将?のUEC杯5五将棋大会は無事終了しました。家に帰るまでが大会です。 主催・運営の方々ならびに参加者の皆様には大変感謝しています。ありがとうございました。 さて、結果ですが、優勝はFairy-Stockfish。2位はGA将?・Nyanpass ・Shok…

明日開戦!!

明日16時からUEC杯5五将棋大会開催です。今年は優勝狙いたいので、がんばってきます(主にGA将?がw)。 まぁ、今となっては私に出来るのはオペミスしない様気を付ける事位ですかねぇ。

VS ssp(5五将棋モード・ハンディキャップマッチ)で最高勝率を更新!

Reflection-Play(反省会モード)を実装して76万局経過後のパラメータ。787勝108敗で勝率87.9%。あっさり最高記録を更新してしまいました。 この調子だと、そのうち勝率が90%超えそうなんで、ハンデの与え方を変えないといけないかも。GA将の方は全幅3手+…

対ssp(ハンディキャップマッチ)のベースライン更新

検証用マシンの環境が変わったので、再度計測。 以前は勝率82.0%だったのが、現在の環境では80.3%になりました。

「反省会モード(仮称)」のアルゴリズムについて

昨夜思い付いたアイデアで、ひょっとしたら使えるかも? という感じのがあるので、メモがてら書いてみます。 まず、前提として「自己対局での強化学習を行う」事とします。 学習開始直後は、初期局面から自己対局&パラメータ修正を繰り返しつつ、「優勢だと…

グッバイItanium!

pc.watch.impress.co.jp EPICの設計思想は割と好きだったんですが、ついに生産終了ですか。 TransmetaのCrusoe/Efficeonも大成功とは言えなかったみたいですし、汎用プロセッサでVLIWってのはちと厳しい感じなんでしょうかね。 私がコンピュータ将棋専用のAS…

千日手回避漏れの話(5五将棋モード)

連続対局用サーバを自作したらGA将の千日手回避漏れが検出出来る様になったんですが、チラホラと回避漏れが有ります。 んで、原因の局面を調べてみたんですが、意外と難しそうです。 まず、GA将?の探索ルーチンにはAspiration Searchと置換表を実装してあり…

対ssp(5五将棋モード・ハンディキャップマッチ)のベースライン更新

連続対局用サーバを実装したんで、前にプチ将棋を使って対ssp(ハンディキャップマッチ)の勝率75.6%を記録したパラメータでテスト対局。結果、勝率82.0%になりました。 千日手や打ち歩詰めの判定を考慮しても勝率が上がり過ぎているのですが、多分USIモー…

5五将棋用の連続対局サーバを自作

プチ将棋だと「千日手が先手の負けにならない」「打ち歩詰めが負けにならない」という問題があるので、5五将棋モードで連続対局させる為のサーバを自作。 現時点ではUSIしか対応していませんが、将来的には他のプロトコルにも対応させて、海外製のソフトとも…

ここ一週間ほどの進捗等

学習ルーチンを色々いじってみたのものの、結局今年1月2日に対ssp勝率75.6%を記録したのを超えられませんでした。 んで、現在はその最高記録達成時の設定に戻して再度学習中。多分、これがUEC杯に向けての最後のお願いになるはず。 それから、思考時間制御…