2019-06-01から1ヶ月間の記事一覧
OpenAI Gymのサンプルコードを調べたくてWSLで環境構築した際のメモです。OpenAI GymはWindowsには対応していないため、Windowsで動かすにはWSL上のLinuxで動かす必要があります。 また、PythonコードをGUIでデバッグしたい場合、Visual Studio Codeでデバッ…
先日、Leela Chess Zeroのソースを流用して、LRUキャッシュを実装したが、これを自己対局プログラムに組み込んだ。はじめ、LRUキャッシュを1つにしてすべての探索スレッドで共有するようにしたが、ゲーム木の展開済みノードのNN計算結果が、他のスレッドの探…
自己対局でノードの再利用しないようにしたが、NNの計算結果は再利用した方が効率がよいため、キャッシュの仕組みを導入したい。並列で実行しているゲームすべてについて1ゲーム分のNNの結果を保持するにはメモリ容量が不足するため、使用されなくなった局面…
AlphaZeroでは入力特徴量として持ち駒の枚数、手数をそのまま数値として与えている。一方、Alpha Goでは、呼吸点などの数は、ont-hotエンコーディングして与えている。 例)上限が3で2の場合、010。dlshogiでは、持ち駒の枚数、利きの数を、数値の分だけ1に…
以前に自己対局時にノードを再利用することで一時的に精度が上がったが、その後学習を続けるとpolicyのテスト損失が上昇する現象が起きた。ノード再利用とバッチサイズの変更(1024→2048)を同時に行ったので、どちらが原因で発生したのかわからなかったため、…
各種条件を変更して比較実験を行っているが、初期値とシャッフルにランダム性があるので、測定結果は毎回ばらつきがある。 ランダムシードを固定すると結果が同じになるが、そのシード値での比較にしかならないので、固定しないで測定している。 複数回測定…
個人的な備忘録です。Pythonを対話的に使う際、Jupyter Qt Consoleを主に使っている。 デフォルトだとウィンドウサイズの幅が81文字分しかないため、Pandasでhead()やdescribe()をすると、途中で改行されて見づらい。 Jupyter Qt Consoleのウィンドウの幅を…
dlshogiでは、ニューラネットワークの重みの初期化はChainerのデフォルト(LeCunNormal)を使用している。 モデルをSEResnetに変える予定なので、どの初期化が良いか実験してみた。すべてデフォルトの場合と、活性化関数がReLUの場合はHeNormalが良いとされて…