前書きAlphaZeroが4096という大きなバッチサイズで学習しているのに対して、Miacisは64という小さいバッチサイズでの学習を行っている。AlphaZeroに比べて使える計算資源が少ないためデータの生成速度が小さく、バッチサイズが大きいと同じデータを何度も学習することになってしまい学習が上手く進まないのではないかと予想しているからである。今回はバッチサイズの違いによる性能の変化を実験により確かめてみた。実験バッチサイズと学習率以外の条件は全て揃えて、カテゴリカル分布を出力するモデルについて200kステップの学習を行った。学習率はバッチサイズが4096のとき0.2(AlphaZeroの設定)、64のとき0.01とした。これは以前の実験から良いと考えられた値である。大きい値で設定している。その他パラメータ、実験設定も先の記事に準ずる。実験結果を次の表に示す。173,400バッチサイズが大きいと損失が大きいままになっており、実際に対局を行っても性能は悪化していることがわかる。バッチサイズを大きくすると学習に時間がかかるため、その間にActorが動く時間も増え、全体として生成される局数自体は増えている。それにも関わらず性能が悪化していることから、バッチサイズを大きくすることが悪影響を及ぼしていると考えられる。本来はバッチサイズを大きくした分、リプレイバッファのサイズも大きくしなければならないのかもしれない。メモリ量の問題もあるためバッチサイズに比例するだけ大きくできるわけではないが、検証してみるべき要素ではあると思う。リプレイバッファサイズはバッチサイズとの関係を抜きにしても様々な検証をする価値があるパラメータである。Developersの記事では徐々に大きくしていく方式が取られており、そのような工夫も一考の余地がある。小さいバッチサイズでの学習バッチサイズを64よりももっと小さくすることで小規模な計算資源しかない環境でも良い学習ができる可能性がある。その際に問題になるのはニューラルネットワーク内部で使われているバッチ正則化であり、バッチ正則化はバッチサイズが小さくなると性能が悪化することが知られている。Standardizationバッチ正規化(BN)は強力だがバッチサイズが小さい場合(高画質、ビデオなど)に適用できない問題があった。Standardizationは出力チャンネル毎に重みを標準化する。2019年3月27日という手法がある。これらの手法を採用することでバッチサイズを小さくしつつ上手く学習を進めることができるかもしれない。2.5としたとき一番性能が良かった。月別アーカイブはてなブログをはじめよう!tokuminiさんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。