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のαとノイズの標準偏差初期値をちょっといじっただけなんですが…

ここはじっと我慢の一手

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

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

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

VS ssp(本将棋モード)

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

思考時間制御の修正案

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

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

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

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

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

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

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

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

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

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

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

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

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

ここ一週間ほどの進捗等

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

ちょっと修正したら、学習の立ち上がりは上々

PGLeaf+MCからPGLeaf+Q(λ)にアルゴリズムを変更して、昨夜から5五将棋モードで学習中。 現在、55万局経過後のパラメータでsspと対局中ですが、勝率65%前後。学習序盤としては上々の結果です。 このまま順調に強くなってくれれば良いんですが、どこまで伸…

UEC杯までにやるべき事

評価関数パラメータの学習 思考時間制御のパラメータ調整 Ponderの検証 1.は今の学習ルーチンが良い感じなので、ジックリ時間をかけてやれば良いはずです。 2.に関しては、大会が20分切れ負けなので、最大思考時間を90秒か120秒に設定。んで、思考開始から1…

Adam、まだバグ持ち?

PGLeaf DreiにAdamを組み込んでみたんですが、RMSProp+Momentumより明らかに性能劣化しています。 まだどっかにバグが残っているかもしれないので、今からテストしてみます。

Adam実装完了&PGLeaf Dreiに組み込み完了

RMSProp+Momentumが思いの外良い感じだったんで、それならいっその事と思い、Adamを実装。 簡単にテストしてOKだったんで、PGLeaf Dreiに組み込んで学習用マシンに投入しました。 対ssp(ハンディキャップマッチ)で勝率80%、行けるかなぁ? 結果が出るの…

Optimizerの設定、間違ってた

gasyou.hatenablog.jp 昨日はRMSPropと書きましたが、設定を見直したらRMSProp+慣性項になっていました。 …まぁ、強くなってるから良いか。今の学習が頭打ちになったら、RMSPropのみに設定変更して、も一度学習しよう。 ちなみに現在の棋力ですが、164万局…

PGLeaf Dreiの現在の構成

色々やって原型とどめ無くなってきたので、一旦整理。 勾配計算に用いるのはPGLeaf+モンテカルロ法 PGLeaf項はGPWの論文そのまま モンテカルロ項は評価値をシグモイド関数に通して予測勝率に変換し、交差エントロピーを最小化する Softmax方策+αβ探索+線…

そう言えばちゃんと書いてなかったけど、レベルアップ判定のお話

現在のGA将は自己対局500回を1エポックとして、10エポックごとにレベルアップ判定をしています。 レベルアップ判定は、現在の評価関数と「過去8代のエース評価関数」を相手に各50局、先後入れ替えて計400局実施し、勝率が55%超えたらレベルアップ、45%切っ…

Noisy Networkを応用してみたら意外と良い感じになってきた

その論文は読んでないですが概要だけ見ると https://t.co/xgorf3i1Gd https://t.co/JrAKUakySh でやってることと同じように思いました— mooopan (@mooopan) 2018年12月17日 Twitterで@mooopan氏に教えてもらった論文を参考にして、線形の評価関数にノイズを…

「確率的パラメータを持つ方策関数に対する方策勾配法」読んだまとめ

ci.nii.ac.jp 概要 オープンアクセス不可の論文なんで、気になった所だけ書こうと思います。 通常の方策勾配法では、パラメータは「確定的な」ベクトルである。これを、ハイパーパラメータ*1から生成される「確率的な」ベクトルに拡張する。 つまり、の値は…

PGLeaf Drei全面的に書き直す事にした

現状 Policy Gradient Methods for Reinforcement Learning with Function Approximation まず、上記論文の関数近似器の導入は断念しました。何をどういじっても、素のPGLeaf以上の性能にはならなかったので。 やった事は大体こんな感じ。 論文の手法をその…

PGLeaf Drei Phase1完成していなかった

え~、PGLeaf Dreiですが、三目並べモードではかなり良い感じだったんですが、5五将棋モードではてんでダメでした _| ̄|○ 学習開始時*1からのレーティング上昇量が4300とかになってウハウハだったんですが、sspと対局させると勝率が3割前後。 という訳で、…

PGLeaf Drei Phase1 with 並列16連ガチャ、ほぼ完成

まず、先日書いたエントロピー正則化ですが、三目並べモード+PGLeaf Dreiである程度ちゃんと動く様になりました。 ただ、それでも乱数の偏りが原因(?)で、局所最適解にハマってしまう事もしばしば。ま、ソシャゲのガチャみたいな感じですね。 んで、「ガ…

現時点で確認している問題点@三目並べモード

「初手の学習が上手く行かない」。これにつきます。 対称形を考慮すると初手は三通りあるんですが、学習を進めていくとこの内どれか一手しかほとんど指さなくなります。 で、これがどう困るかと言うと、先手に関しては対完全読みプレイヤーの引き分け率が1に…

今日の予定

MC Softmax 探索における局面評価関数の学習 GPW 2018で五十嵐先生に発表してもらった上記論文(五十嵐先生・山本一将さんとの共著論文)ですが、理論の提案だけで学習実験がまだです。 という訳で、実験用にプログラムの修正作業をするのが一つ。 それから…

エントロピー正則化の勾配計算(修正済み)

policy gradientがexploration不足のまま決定的になりすぎてしまう場合、行動分布のentropyを最大化する項を正則化として加えるという方法がありますが、試してますでしょうか?— mooopan (@mooopan) 2018年11月24日 Twitterで@mooopanさんに教わった手法で…