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

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

2019-01-01から1年間の記事一覧

GAN、お勉強中

詳説ディープラーニング: 生成モデル編作者: 巣籠悠輔発売日: 2019/04/19メディア: Kindle版この商品を含むブログを見る とりあえずこの本買って、コードを写経してみました。 んで、1Epochと100Epochで生成される画像の質にどの程度差が出るのか検証。こう…

今更GANなるものに手を出そうとしています

qiita.com こういうのをチョット弄って、Generatorが学習初期局面を生成し、そこからPGLeaf等で自己対局・強化学習する感じで検討中。 Generatorの出力は「本将棋や5五将棋で有り得そうな局面」にすると何の意味もないので*1、Discriminatorに相当する自己対…

2in1の存在意義がよくわからん

例えばこんなの。www.lenovo.com キーボード欲しいならノートPCで良くない? タッチスクリーン搭載モデルもあるし。 キーボード不要ならタブレットで良くない? 軽いし。 なんてーか、凄く中途半端感があって、いまいちどういう層が購入しているのか分からん…

PGLeaf Vier再実装中

まず、学習方策と挙動方策を分けて、学習方策の方は重点サンプリングを用いてOff-Policyで学習する様にした。 挙動方策の報酬は「基本報酬は勝敗に応じて+1/-1/0」「サブ報酬として対局中の予測勝率と実際の勝敗に応じたボーナス」としてみた。 サブ報酬の方…

探査自体を強化学習問題として解く論文(多分)

強化学習による探索行動の学習 強化学習における探査*1を、ε-GreedyやSoftmaxの様な乱数を用いる手法ではなく、過去の経験・知識をもとに実現した論文(だと思う)。 論文ではグリッドワールドや迷路を題材にし、意図した通りの結果が実験的に得られたと書か…

PGLeaf Vierはひとまず白紙撤回

Replay Buffer使うとなんか学習が不安定になるし、私は無理してReplay Buffer使いたい訳ではないので、プラン再考中。 んで、今後どうするかなぁ… とりあえず「自己対局時のランダム性が不足しているらしい」というのは分かってるんで、そこを何とかしないと…

PGLeaf Vier開発開始

medium.com Experience Replayを使いたかったので、上記のサイトを参考に実装。 現時点での構成は「REINFORCEベースのPGLeaf+Experience Replay+重点サンプリング」ですが、最終的にはもっと色々拡張する予定。強化学習 (機械学習プロフェッショナルシリー…

Learning Efficient and Effective Exploration Policies with Counterfactual Meta Policy

https://arxiv.org/pdf/1905.11583.pdf とりあえず読んで、応用出来そうならやってみます。

5五将棋用連続対局サーバの機能追加、ほぼ完了

えー、まず以前の記事の訂正から。 「Winboard」がShokidoki/Limaの使用しているプロトコル名だと思ってましたが、正式には「xboard」みたいです。もともとUNIX用のXBoardというチェスのGUIがあって、それが使用していたプロトコルが「xboard」。で、XBoard…

VS Fairy-Stockfish勝率

Ryzen 5 2400G搭載マシンでGA将と対局させた結果、勝率はこっちから見て15%前後でした。 という事は、UEC杯で2局指して少なくとも1局勝つ確率は28%前後あった訳で… その28%を本番で引いてりゃUEC杯初優勝だったのに…… まぁ、終わった事なんでそれはこっち…

5五将棋用連続対局サーバの改良中

今まではGA将対ssp専用で実装していたのを、Winboardプロトコルのエンジン含む複数エンジン相手に対局可能な様にしようとしています。 んで、現在はFairy-Stockfish3つ相手に対局してログ出力出来る様にまではなりました。 後はWinboardプロトコルのエンジン…

多数決合議用の、複数の評価関数パラメータセットの学習

久々の更新ですが、ちょっとだけ進展有りました。 まず、以前から何回かトライしていた「複数の評価関数を生成し、それらのリーグ戦の結果から強化学習する」という手法ですが、ようやく成功したみたいです。 以前は学習結果の各パラメータの平均値をファイ…

「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には静止探索の読み筋も含むので、長さはバラバラ …