2019-04-01から1ヶ月間の記事一覧

追加学習による性能向上の検証

今までは再現性や比較の観点から毎回ランダム初期化したパラメータから学習を行っていたが、WCSC29も迫ってきたということで最も強いパラメータに追加学習することで性能が伸びるか検証を行った。 今まで最も性能が良いパラメータは評価値をカテゴリカル分布…

方策とディリクレノイズの比率を変更した学習

Miacisではメモリの関係上、指し手の教師信号として実際に指された手をOnehotベクトルとしたものを利用しており、そのためか方策が偏りやすい傾向にある。 AlphaZeroの学習アルゴリズムでは、各探索でルートノードにおいてディリクレノイズと元の方策の内分…

AtCoder Beginner Contest 125

結果 23分33秒で全完、122位だった。C問題で少し時間がかかってしまったが、順位表を見ているとD問題を先に解いている人も多く、難しめではあったのかもしれない。100位以内の壁は厚い。 A問題 まぁA問題だし素直に割るだけなんだろうなーという感じで実装し…

Recurrent World Models Facilitate Policy Evolutionを読んだ

出典 David Ha and Jürgen Schmidhuber, “Recurrent World Models Facilitate Policy Evolution,” Advances in Neural Information Processing Systems 31, 2018. arXiv:https://arxiv.org/abs/1809.01999 World Models:https://arxiv.org/abs/1803.10122 概…

Tenka1 Programmer Contest 2019

結果 C問題だけの1完で711位だった。青あたりのレート帯だとC問題早解きゲームと化していて、24分(1WA)では良い順位を望むべくもなく。レート変動は1748→1720(-29)。 C問題 Stones 最初はメモの前半のように文字列を「B...BW...W」の繰り返しと考えて、これ…

AlphaZeroに対するTDLeaf(λ)の適用 ~実験編~

前回はTDLeaf()の理屈からAlphaZeroにおいて探索した値を用いる方法を検討した。今回はそれを基に強化学習を行った結果を記す。 損失による評価 floodgate2016年・R2800以上同士の棋譜に対する損失計算によって評価を行った。 の3つの値について試してみたが…

AtCoder Beginner Contest 124

結果 29分56秒で全完。137位だった。簡単なセットだったのでなかなか順位は伸びず。 A問題 std::maxにinitializer_listを渡す(ということをしているのだという理解で良いはず)。 #include"bits/stdc++.h" using namespace std; using ll = int64_t; int main…

AlphaZeroに対するTDLeaf(λ)の適用 ~準備編~

TDLeaf()の出典:Jonathan Baxter, Andrew Tridgell, Lex Weaver, "TDLeaf(lambda): Combining Temporal Difference Learning with Game-Tree Search," Proceedings of the Ninth Australian Conference on Neural Networks (ACNN'98), Brisbane QLD, Februar…

小さいバッチサイズに対する学習率設定

Miacisではバッチサイズ64で学習を行っている。GPUメモリが小さいのでバッチサイズを大きくできないためだが、Learnerが学習するデータ量とActorがデータを生成する量のバランスが重要なのではないかという根拠のない勘もある。 経験的にバッチサイズを変え…

Accelerating Self-Play Learning in Goを読んだ

出典 David J. Wu, "Accelerating Self-Play Learning in Go," arXiv preprint, arXiv:1902.10565v2[cs.LG], 2019 概要 AlphaZeroを高速化した。32GPU(V100)を使って1週間でトッププロレベルの性能を実現。 手法の詳細 ニューラルネットワークの学習(4章) 価…

AtCoder Beginner Contest 123

結果 57分29秒(1WA)で全完。それでも135位と順位はそこそこだったので、全体として難しかったんだと思う。 A問題 入力が多い。A問題はforループなしで解けるように、みたいな話を聞いたことがある気がするが、おとなしくループを回す。しかしコードを書き終…

The Predictron: End-To-End Learning and Planningを読んだ

出典 David Silver, Hado van Hasselt, Matteo Hessel, Tom Schaul and Arthur Guez, "The Predictron: End-To-End Learning and Planning," Proceedings of the 34th International Conference on Machine Learning, 2017. arXiv版には付録がついている。Op…

行動価値の漸進的更新により性能が悪化する原因の考察

前回の記事ではMCTSにおける行動価値の更新を漸進的実装に変更したが、並列化した際に性能が悪化することがわかった。 MCTSの並列化方法として現在実装しているのはねね将棋、dlshogiで採用されているものと同様の方法である。1GPUにつきCPUが2スレッド稼働…