AlphaGo Zero
前回の日記の時点で、自己対局と学習を実装したが、学習したモデルを使って対局できるUSIエンジンを実装した。 dlshogi-zero/mcts_player.py at master · TadaoYamaoka/dlshogi-zero · GitHub 将棋ライブラリにcshogiを使用して、探索方法をdlshogiと同じ方…
次の技術書典のネタとしてPythonでAlphaZero Shogiの完全コピーを実装しています。github.com自己対局と学習がようやく動くようになりました。入力特徴と出力ラベルと探索の仕様はAlphaZero Shogiと完全に一致させました。 入力特徴 先手の駒 14 後手の駒 14…
AlphaZeroのMCTSのルートノードではディリクレノイズを加えることで、全ての手をランダムで選ばれやすくしている。 以前の記事で、2次元のディリクレ分布を可視化したが、3次元の場合の可視化ができないか調べていたら、以下のページを見つけたので試してみ…
AlphaZero Chee/Shogiの論文についての続きです。 今回はAlphaGo Zeroとの差分について書きます。AlphaGo Zeroの論文については、以前に書いた記事を参照ください。 ネットワーク構成 ニューラルネットワークの構成は、AlphaGo Zeroと同じ、PolicyとValueを…
DeepMindからAlphaGo Zeroと同じ方法で、チェスと将棋でトップレベルを上回ったという論文が発表されました。 [1712.01815] Mastering Chess and Shogi by Self-Play with a General Reinforcement Learning Algorithmドメイン知識を用いないスクラッチから…
将棋AIのPolicy NetworkとValue Networkのマルチタスク学習でのL2正則化の効果を測定してみた。 正則化なし loss policy accuracy value accuracy L2正則化係数 loss policy accuracy value accuracy 考察 正則化なしでも、trainとlossにそれほど差がないが…
AlphaGo Zeroのニューラルネットワークの学習の最適化に使用されているモーメントありSGDを将棋AIで試してみた。以前に、最適化手法を比較した際、Adamのような学習率を自動で調整する手法よりSGDの方が学習効率が高かった。 AlphaGo FanバージョンでもSGDが…
その39からずいぶん期間が空きましたが、AlphaGo Zeroの論文を読んで試したいことができたので、AlphaGo Zeroの論文の方法が将棋AIに応用が可能か少しずつ試していこうと思います。AlphaGo Zeroの特徴については、別の記事に記載していますので、参照してく…
前回までで、実装に必要な内容についてほぼ解説しました。今回は、補足的な内容です。 ドメイン知識 論文には以下の一文が記載されている。 Our primary contribution is to demonstrate that superhuman performance can be achieved without human domain …
その3の続き 自己対局パイプライン 自己対局パイプラインは、3つの主要な部分から構成される。 最適化 評価 自己対局 これらは並行で実行される。 最適化 ミニバッチサイズ:2,048 (32バッチずつ別々のGPUで実行) ミニバッチデータは直近50万の自己対局のす…
その2の続き今回は対局時の探索アルゴリズムについてです。 探索アルゴリズム 対局時はpolicyとvalueを使ったモンテカルロ木探索(APV-MCTS)を使用する。 探索は複数スレッドで並列に行う。探索木の各ノードsは以下の情報を持つ。 N(s,a) 行動aの訪問回数 W(s…
前回に続いてAlphaGo Zeroの論文についてです。 ネットワーク構成 入力特徴 19×19の2値画像を17枚 8枚は現在のプレイヤーの石の座標を示す2値画像、8手分 8枚は相手のプレイヤーの石の座標を示す2値画像、8手分 1枚は現在のプレイヤーの石の色を示す全て0か1…
今日のAlphaGo Zeroのニュースは衝撃でした。将棋AIで方策勾配で強化学習を行ったときは、発散してうまくいかなかったので 教師データで最初に訓練が必要と思っていました。 それが、自己対局のみで強くできるとは驚きです。論文が公開されたので、使われた…