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

a crowd of rebellionの好きな曲

音楽について語れるような知識もないのでYoutubeから好きな曲を貼っていくだけの記事です。動画を貼っておきながらあれなんですけど、なんとなく楽曲のイメージを固定化したくないのでMVは一切見ていません。アーティストの顔写真とかもできれば見たくないな…

SENetの導入

要約 SENetの構造を導入することによってネットワークの性能が向上した。計算量はやや多くなるが、全体として棋力は向上した。 背景 山岡さんのブログで将棋ソフトでもSENetの構造が有用であるとの実験結果が示されていた。 このような簡単な変更かつ僅かな…

C_PUCTの調整

要約 は2.5としたとき一番性能が良かった。 背景 今までMiacisは探索の選択ステップにおいてScience版AlphaZeroと同様の係数を用いていた。 $$ a_t = \mathrm{argmax}_a \left( Q(s_t, a) + C(s) P(s, a) \frac{\sqrt{N(s)}}{1 + N(s, a)} \right) $$ $$ C(s…

AtCoder Beginner Contest 128

結果 E問題までの5完。思ったよりレートが伸びて1級になった。 A問題 足す部分を分けてしまったが別に1行で済むなぁと思いながら直すのも面倒だったので。 #include"bits/stdc++.h" using namespace std; using ll = int64_t; int main() { ll A, P; cin >> …

AtCoder Beginner Contest 127

結果 E問題までの5完で311位。パフォーマンスは1832でレート変動は1752→1760(+8)だった。E問題を解けてそこそこかなと思ったけど、パフォーマンスは思ったより低かった。慣れている人にとってはFが簡単だったらしいという影響もあったのかもしれない。 A問題…

MCTSにおける価値の漸進的更新

結論 MCTSの行動価値を漸進的に更新する実装で、総和を保持して平均化する実装と同程度の性能を達成できた。 背景 以前、MCTSにおいて行動価値を漸進的に更新する方法について記事を書いたが、性能が悪化してしまった。この記事で述べた通り、原因はおそらく…

Policyの教師信号を分布にする

要約 Policyの教師信号を探索回数の正規化した分布とした方が性能が向上した。 背景 AlphaZero型の学習においてPolicyの教師信号にはルートノードから各行動について探索した回数をその総和で割った分布を利用している。MiacisではCPUのメモリ容量が足りない…

バッチサイズとステップあたりの学習速度の関係〜強化学習編〜

結論 強化学習でもバッチサイズとステップあたりの学習速度は比例しそうだ。あるデータ生成速度に対して学習可能な範囲でバッチサイズを上げていくことが学習の高速化に繋がるかもしれない。 前書き 前回は教師あり学習において、バッチサイズとステップあた…

バッチサイズとステップあたりの学習速度の関係

要約 バッチサイズとステップあたりの学習速度は比例関係にある(?)ため、強化学習の高速化としてバッチサイズを小さくすることは意味がない可能性がある。 前書き 前回はLR Range Testによる学習率の決定法について書いた。これをもとに複数のバッチサイズ…

LR Range Testによる学習率の決定

要約 LR Range Testを行って損失が最小となるときの学習率を初期値として決定して良さそう。 前書き 山岡さんの『ディープラーニングによる将棋AIの作り方3』を読んでいて、floodgateの2017年、2018年の棋譜もhttp://wdoor.c.u-tokyo.ac.jp/shogi/x/から入手…

LibTorchにおける半精度浮動小数点演算

記事の要約 LibTorchを使って半精度浮動小数点演算(FP16)を行うことで探索は速くなったが、学習は上手くいかなかった。どうもBatch Normalizationの部分はFP32で計算しなければならないようだ。 LibTorchによる半精度浮動小数点演算 深層学習では厳密な精度…

持ち駒の正規化

記事の要約 持ち駒は正規化した方が良さそう。 前書き WCSC29会場にて山岡さんから『ディープラーニングを使った将棋AIの作り方3』を購入させていただいた。AlphaZero的な強化学習ということで大枠は変わらないが、読んでいるといくらかMiacisの実装と異なる…

バッチサイズと性能の関係

前書き AlphaZeroが4096という大きなバッチサイズで学習しているのに対して、Miacisは64という小さいバッチサイズでの学習を行っている。AlphaZeroに比べて使える計算資源が少ないためデータの生成速度が小さく、バッチサイズが大きいと同じデータを何度も学…

【WCSC29】個人的に興味を惹かれたアピール文書集

すでにuuunuuun氏が書かかれた全チームの簡単なまとめや、やねさんによる見どころ紹介がありますが、ここでは個人的に面白そうだなと思ったものについて妄想レベルの私見を交えながら触れていきたいと思います。自分がディープラーニング系のソフトを開発し…