2019-01-01から1年間の記事一覧
Windows XP以前では、プログラムが異常終了すると このようなダイアログが表示されて、デバッガを起動できた。 ※このダイアログはWindows10のものWindows10のデフォルトの設定では、ダイアログが表示されず、アプリがだまって終了する。 一般ユーザには不要…
今回で、最後です。 付録H 再分析 MuZeroのサンプル効率を改善するために、MuZero Reanalyzeという、わずかに異なるアルゴリズムを導入した。 MuZero Reanalyzeは過去のタイムステップを再検討し、最新のモデルパラメーターを使用して探索を再実行するため、…
少し古いが、Leela Chess Zeroの進化をまとめたよい記事があったので、読んでいる。 Leela Chess — Test40, Test50, and beyond | by Veedrac | Medium GitHubのissuesから拾うのもしんどいのでまとめがあるとありがたい。Leela Chess Zeroは新しい手法をい…
前回の日記からしばらくぶりですが、その間SENetの学習を続けていました。 自己対局中の詰み探索の深さ ディープラーニング+MCTS系は終盤に弱点があるので、dlshogiでは自己対局中にルート局面でdf-pnによる詰み探索を行い、詰みが見つかった場合は、ゲーム…
付録G 訓練 訓練中に、MuZeroネットワークはK個の仮想ステップに対して展開され、MCTSアクターによって生成された軌跡からサンプリングされたシーケンスに合わせられる。 シーケンスは、リプレイバッファ内の任意のゲームから状態をサンプリングし、その状態…
以前にWindowsでLibTorchをC++から使う方法について記事を書いたが、内容が古くなったので書き直す。基本的な手順は以前と同じだが、リリースビルドとデバッグビルドの使い分けができるようになっている。最新のLibTorch 1.3は、Release用のバイナリと、Debu…
付録E ネットワーク入力 表現関数 ボードゲーム 囲碁、チェス、将棋の表現関数への入力として使用されるボード状態の履歴は、AlphaZeroと同様に表される。 囲碁および将棋では、AlphaZeroのように最後の8つのボード状態をエンコードする。 チェスでは、引き…
前回はリバーシでDDQNを試したが、今回は同じくDQNの発展形であるDueling Networkを試す。 Dueling Network [1511.06581] Dueling Network Architectures for Deep Reinforcement LearningDQNでは行動価値を行動価値関数Qで推定するが、Dueling Networkでは…
昨日書いた記事で、DQNとDDQNのランダムに対する勝率の違いについて、統計的に違いがあると言えるのか検証してみた。 昨日の結果 結果 勝率 DQN 833勝152敗15分 84.57% DDQN 847勝131敗22分 86.61% ※勝率は引き分けを無効として計算した。 仮説検定 以下のよ…
前回は、環境を並列実行することでDQNの高速化を行った。今回は、DQNの派生形である、Double DQN(DDQN)を試す。 Double DQN(DDQN) 一般的にQ学習は、の項が行動価値を過大評価する傾向があり、それを抑制する手法としてDouble Q学習という手法がDQN以前から…
付録C ハイパーパラメータ 簡単にするために、以前の研究と同じアーキテクチャの選択とハイパーパラメータを優先的に使用する。 具体的には、AlphaZeroのネットワークアーキテクチャと探索の選択肢から始めた。 ボードゲームでは、AlphaZeroと同じUCB定数、…
付録B 探索 MuZeroで使用される探索アルゴリズムについて説明する。 私たちのアプローチは、信頼区間の上限(UCB; upper confidence bounds)のあるモンテカルロ木探索、単一エージェントドメインの最適な方策とゼロサムゲームのミニマックス価値関数に漸近的…
前回、DQNでリバーシ(オセロ)の強化学習を試して、ランダムより強くなることを確認した。 しかし、シングルステッドでシングルゲームを繰り返しているため1万イテレーションの実行に約14時間かかった。方策勾配法のアルゴリズムであるA2Cでは、環境を並列実…
前回、DQNのネットワークを教師ありでQ学習で学習した。 今回は、DQNを強化学習で学習する。実装するアルゴリズムは、Nature に掲載された論文「Human-level control through deep reinforcement learning」に基づく。 DeepMindによる公式の実装は、TensorFl…
付録A AlphaZeroとの比較 MuZeroは、AlphaGo Zero*1やAlphaZero*2よりも一般的な設定向けに設計されている。 AlphaZeroのプランニング AlphaGo ZeroとAlphaZeroでは、プランニングプロセスは2つの別個のコンポーネントを使用する。 シミュレーターは、ゲーム…
前回、オセロの棋譜の終端の報酬を使用して(TD(1))、教師ありで学習することでランダムより強くなることを確認した。今回は、教師ありでQ学習を試す。 Q学習 Q学習の学習則は以下の式で表される。 は、遷移に対応する即時報酬で、リバーシ(オセロ)の場合、終…
本文の残り、結論の部分です。 結論 人工知能のブレークスルーの多くは、高パフォーマンスプランニングまたはモデルフリー強化学習方法に基づいている。 この論文では、両方のアプローチの利点を組み合わせた方法を紹介した。 私たちのアルゴリズムMuZeroは…
分析 エージェントセット 検証エージェント:メインエージェントのみを使用し、エクスプロイターを使用せずに訓練された17の戦略セットに対するリーグの堅牢性を検証し、zを手で精選された興味深い戦略セット(例:キャノンラッシュや初期飛行ユニット)に修…
結果 MuZeroアルゴリズムを、挑戦的なプランニング問題のベンチマークとしての古典的なボードゲーム囲碁、チェス、将棋、および視覚的に複雑なRLドメインのベンチマークとしてAtari Learning Environmentの57のゲームすべてに適用した。 測定条件 それぞれの…
先日作成した高速なリバーシライブラリを使って、深層強化学習のアルゴリズムをいろいろ試してみたいと思っている。 DQNの実装 将棋でDQNによる強化学習を試したときはまったく学習しなかったので、まずは教師ありでDQNのネットワークが学習できるか試すこと…
評価 AlphaStar Battle.netの評価 AlphaStarエージェントは、StarCraft IIバランスパッチ4.9.3で、MMRレーティングに基づくBlizzardのオンラインマッチメイキングシステムBattle.netで人間に対して評価された。 AlphaStar Finalは、グランドマスターレベル(…
インフラ リーグを訓練するために、多数のStarCraft II対戦を並行して実行し、それらのゲームのデータに基づいてエージェントのパラメータを更新する。 これを管理するために、さまざまなタイプの分散ワーカーで非常にスケーラブルな訓練セットアップを開発…
リーグ構成(Populating the League) 訓練中、新しいプレイヤーを作成するためにスナップショットが作成されたときの訓練対象の対戦相手の分布と、教師ありパラメーターにリセットされる確率のみが異なる3つのエージェントタイプを使用した。 メインエージェ…
マルチエージェント学習 リーグトレーニングはマルチエージェント強化学習アルゴリズムであり、セルフプレイトレーニング中によく発生するサイクルに対処し、多様な戦略を統合するために設計されている。 訓練中に、エージェント(RLアルゴリズムによって訓…
続きです。 MuZeroアルゴリズム MuZeroアルゴリズムについて詳しく説明する。 予測は、各タイムステップtで、ステップのそれぞれについて、過去の観測および将来の行動を条件とするパラメーターを使用したモデルによって行われる。 モデルは、3つの将来の量…
今回はMethodsの教師あり学習と強化学習についてです。 教師あり学習 各エージェントは、人間の行動を模倣するために、リプレイから教師付き学習を通じて最初に訓練される。 教師あり学習は、エージェントの初期化と多様な探索の維持の両方に使用される。 こ…
MuZeroの論文を読んでいきます。 基本的にだらだら訳していくだけです。 途中で感想を書いていきます。 概要 プランニング能力を備えたエージェントを構築することは、人工知能の追求における主な課題の1つである。 ツリーベースのプランニング方法は、完全…
アーキテクチャ詳細の続きです。 ベースラインと損失に関する部分です。 勝敗ベースライン(Winloss Baseline) 入力:prev_state, scalar_features, opponent_observations, cumulative_score, action_type, lstm_output 出力: winloss_baseline : 「action_…
アーキテクチャ詳細の続きです。 コア(Core) 入力:prev_state, embedded_entity, embedded_spatial, embedded_scalar 出力: next_state : 次のステップのLSTM状態 lstm_output : LSTMの出力 コアは、「embedded_entity」、「embedded_spatial」、および「e…
将棋で強化学習のアルゴリズムをいろいろ試そうとしたが、DQNが全く学習しないので、もう少し簡単なゲームを先に試そうと思う。 ということで、リバーシ(オセロ)で試すことにした。Pythonで使えるリバーシのライブラリがないか探したが良さそうなのが見つか…