ログの可視化ツールを大幅アップデート
上記サイトを参考に、ログファイルの更新を監視してグラフ作成&Webサイトにアップロードする様にしてみました。(更新ごとだと10秒に1回とかになっちゃうんで、前回処理から一定時間以上は待つ作りになっています。)
それから、ログファイルコピー→グラフ作成→アップロードって流れは学習ルーチン変えても共通なので、抽象クラス*1を作って、継承先でグラフ作成だけオーバーライドする様に変更。これで、ツールのメンテが大分楽になりました。
最後に、描画したグラフ&HTMLファイルと、元になるCSVファイルを自動バックアップする機能も追加。これは、on_created()の中で日時のディレクトリを作っといて、処理のたびにコピーするだけなので割りかし簡単でした。
てな事をやって、使える言語が4つになりました。
- Java:コアの部分はほぼほぼ書ける。ただし最新事情には疎い。
- C++:コンピュータ将棋なら一通り書ける。GUIとかは作れない。
- Python:ほんのチョットだけ、簡単なツールをググりながら作れるレベル。
- Perl:20年近く前に卒論でちょっと書いた。かなり忘れた。
うん、我ながらビミョーなラインナップ&スキルレベルですね。何したいのか良く分かんない。
方策πのエントロピーにもとづく内発的報酬
が、もうちょっとで定式化出来そうな気がする。
方針
使い方
局面からへ遷移した際に、上記を即時与える。
あけましておめでとうございます。
新年ももう2日になってしまいましたが、今年もよろしくおねがいします。
昨年を振り返ると、3月のUEC杯5五将棋大会で準優勝したのがピークで、以降はGA将の開発はほぼ進展無しでした。
昨年末に一つちょっとしたアイデアを思い付いて、現在は三目並べモードでの予備実験が終わった所です。詳細は後日書きますが、上手く行けばそれなりに棋力向上してくれそうです。
んで、Twitterで呟きましたが、今年はコンピュータ5五将棋大会で1回は優勝したいですね。
3月にあるはずのUEC杯は参加が厳しそうなので、GPW杯(多分あるはず)を目標に開発していこうと思います。
という訳で、改めてよろしくおねがいします&ご期待ください!
GAN、お勉強中
- 作者: 巣籠悠輔
- 発売日: 2019/04/19
- メディア: Kindle版
- この商品を含むブログを見る
とりあえずこの本買って、コードを写経してみました。
んで、1Epochと100Epochで生成される画像の質にどの程度差が出るのか検証。こういう↓結果になりました。
100Epoch
初期はほぼデタラメですが、100Epochだと何となくそれらしい画像が出来ていますね。
GeForce GTX 960使うと1時間で30Epoch程度進むので、今度は500Epoch程度やらせてみますか。
んで、それと並行して将棋の局面を生成する為のネットワーク構造も検討してみます。
今更GANなるものに手を出そうとしています
こういうのをチョット弄って、Generatorが学習初期局面を生成し、そこからPGLeaf等で自己対局・強化学習する感じで検討中。
Generatorの出力は「本将棋や5五将棋で有り得そうな局面」にすると何の意味もないので*1、Discriminatorに相当する自己対局部分で「形勢判断を間違えた局面」を多く生成する様にしてみようと思います。
具体的には、「生成された局面ではDiscriminatorが優勢(OR 劣勢)と判断したが、対局してみたら負けた(OR 勝った)」場合を「正例」としてはどうかと考えています。
こうすれば、Discriminator(≒評価関数)の穴を効率良く埋められないかなぁ、と。
そう言えばGAN将棋さんもGANを使う予定だったらしいけど、どういう風に使ってたんでしょうねぇ。気になります。
2in1の存在意義がよくわからん
例えばこんなの。
キーボード欲しいならノートPCで良くない? タッチスクリーン搭載モデルもあるし。
キーボード不要ならタブレットで良くない? 軽いし。
なんてーか、凄く中途半端感があって、いまいちどういう層が購入しているのか分からん。
PGLeaf Vier再実装中
まず、学習方策と挙動方策を分けて、学習方策の方は重点サンプリングを用いてOff-Policyで学習する様にした。
挙動方策の報酬は「基本報酬は勝敗に応じて+1/-1/0」「サブ報酬として対局中の予測勝率と実際の勝敗に応じたボーナス」としてみた。
サブ報酬の方は、予測勝率と勝敗の差が大きいほど大きな値を与える様にしたので、逆転勝ち・負けの場合はサブ報酬が大きくなるはず。
んで、例によって三目並べモードで実験してみたら、正しく収束する時は数秒で済むけど、そうでない場合は1分かけてもNG。
困った…