GA将?開発日記~原点回帰~

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

開発日記

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

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

千日手回避漏れの話(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さんに教わった手法で…

PGLeaf Drei Phase1までロールバック

久方ぶりの更新です ノシ PGLeaf Dreiですが、一応数日前にPhase 3まで実装は出来ました。 ただ、どうもどっかおかしい様で、三目並べモードでも正しく収束しないケースが有ります。 という訳で、一旦Phase 1まで戻して、関数近似の部分を中心にテスト中。 …

メタ強化学習に関して、理解出来た範囲で纏めてみる

gasyou.hatenablog.jp 上記エントリで参照している論文の件です。 まず、強化学習において探査*1を行う手法は、大別すると2種類になると思います。 乱数を用いて探査する:ε-Greedy方策、Softmax方策 etc. 状態や行動の試行回数に応じて探査する:UCB1、MBIE…

困った事になってきた

PGLeaf Drei Phase 2ですが、αβ探索と組み合わせてるんですが、探索深さによって収束したりしなかったりします。 具体的には 1手読み → 収束せず 2手読み → 8~9割程度の割合で正しく収束 3手読み → 収束せず 4手読み → 5~6割程度の割合で正しく収束 という…

PGLeaf Drei Phase 2、もうちょっと頑張らないとだね

え~、昨夜は5回の試行でちゃんと収束したですが、50回試行すると収束しないケースがチラホラ… やっぱり、少ない学習回数での結果は信用なりませんね。 この状態でPhase 3を実装しても収束するとは思えないんで、もうちょっと弄くり回してみます。

PGLeaf Drei Phase 2ほぼ完成か?

現在開発中の学習ルーチンは「PGLeaf Drei」と呼んでいますが、Phase 2まで(多分)完成しました。 まず、Phase 1でREINFORCEベースだったものから、関数近似を用いたActor-Critic化を行いました。 で、Phase 2ではExperience Replayの導入をしたのですが、…

UEC杯は参加無理かも

gasyou.hatenablog.jpの続き。 「招待プログラム以外は、開発者の一人は、現地に来て自身のプログラムを操作する必要があります。」とルールに有りましたので、私は現地参加しないといけないんですが、日程とか旅費とかの関係で厳しそう。 年末ジャンボでポ…

メタ強化学習ルーチン、割といい感じ

Q学習では高々40状態程度の簡易迷路しか解けなかったのが、256状態まで増やしてもメタ強化学習有りだと解ける様になりました。 結構期待出来そうなんで、スグにでも効果を見てみたいんですが、どうしようかなぁ。 一つの手として、TDLeaf(λ)と組み合わせるっ…

ベースラインは出来た

メタ強化学習のベースラインとして、簡易的な迷路(ただしゴールは複数存在し、それぞれ得られる報酬が異なる)をQ学習で解くプログラムを作成。ざっくりテストして、無事局所最適解にハマる事を確認しました。 ざっとログを眺めた感じだと、迷路の領域の1割…

気分転換

前書いた論文の一個目のやつ、実装出来たけど素のPGLeaf*1より性能悪い… バグってんだろうなぁ。 という訳で、気分転換に二番目のメタ強化学習の方の実装に着手。 と言っても、コンピュータ将棋や三目並べではまだ動かせないので、簡単な迷路問題で実験して…

原点回帰して、PGLeaf(初代)の改良に取り組む事にしました

https://papers.nips.cc/paper/1713-policy-gradient-methods-for-reinforcement-learning-with-function-approximation.pdf http://proceedings.mlr.press/v80/xu18d/xu18d.pdf TDLeaf(λ)とかと組み合わせるのは当面見送って、PGLeaf単体でどこまで行けるか…