GA将?開発日記~王理のその先へ~

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

開発日記

う~ん、困った

基本に戻って三目並べモードで色々実験中。 んで、分かった事。 PGQとNoisyNet*1風のノイズ加算は何か不安定になる。むしろ、ベースはREINFORCEのままで、これにNoisyNet風の処理を付け加えた方が良いらしい。 後、エントロピー正則化は結構効果があるけど、…

学習ルーチンの分散コンピューティング化を検討中

GA将?の学習ルーチンは、ミニバッチサイズ(1回のパラメータ更新に使用する、自己対局の棋譜の数)を大きくすると、学習が安定する傾向があります。 ただ、私のPC(Core i7 5960X)では、マシンパワーの関係上ミニバッチサイズは500~1000程度が限界です。 …

ログの可視化ツールを大幅アップデート

qiita.com 上記サイトを参考に、ログファイルの更新を監視してグラフ作成&Webサイトにアップロードする様にしてみました。(更新ごとだと10秒に1回とかになっちゃうんで、前回処理から一定時間以上は待つ作りになっています。) qiita.com それから、ログフ…

方策πのエントロピーにもとづく内発的報酬

が、もうちょっとで定式化出来そうな気がする。 動機 自己対局を通じた、コンピュータ将棋/コンピュータ5五将棋の評価関数の強化学習において、より良い報酬を設計したい。 大雑把な考え方 方策πのエントロピーが、行動選択の前後でどう変化したかをベース…

「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割前後。 という訳で、…