TadaoYamaokaの開発日記

個人開発しているスマホアプリや将棋AIの開発ネタを中心に書いていきます。

強化学習

DeepNash(R-NaD)でクーン・ポーカーを学習する

DeepMindがArxivで発表したDeepNash(R-NaD)がOpenSpielに実装されたので試してみた。 ※2022年12月にScienceにも掲載されました。 DeepNash(R-NaD) DeepNash(R-NaD)は、不完全情報ゲームで探索なしでナッシュ均衡に収束するモデルフリーの深層強化学習アルゴ…

Learning to Play Minecraft with Video PreTraining (VPT)を読む

OpenAIが発表したマインクラフトの操作を学習した「Learning to Play Minecraft with Video PreTraining (VPT)」の論文を読んだ際のメモです。 概要 請負業者(フリーランス)に依頼して作成した7000時間分のキーボード・マウス操作のラベル付き動画からIDM(逆…

将棋AIの実験ノート:方策の分布を学習

一般的な方策勾配法では、選択した行動aに対して、損失を計算するが、 AlphaZeroでは、方策の損失は、探索から求めた方策の確率分布を使用している。 dlshogiでは、前者をベースにしたActor-Criticで更新を行っている。 後者の確率分布を学習する場合と、ど…

将棋AIの実験ノート:オフポリシー補正

強化学習において、サンプル効率が低いという課題の対処として、リプレイバッファを使用して過去の方策で生成したデータも学習に使用するということが行われている。 一般的に挙動方策(経験を蓄積する際の方策)と推定方策(学習する方策)が異なる場合をオ…

Agent57: Outperforming the Atari Human Benchmarkを読む その9

付録B B.外発的-内発的分解 内発的に動機付けられたエージェントの場合、報酬関数は、固有の報酬と外部の報酬の線形結合である。 価値の反復スキームを使用して、最適な状態行動価値関数を計算できる。 ここで、は任意に初期化できる。 ここで、別々の内発的…

Agent57: Outperforming the Atari Human Benchmarkを読む その8

付録も読んでいきます。数式多めです。ほぼ自分のメモのために訳しています。 付録A MDPの背景 マルコフ決定プロセス(MDP)はタプルであり、Xは状態空間、Aは行動空間、Pは各状態行動タプルを状態上の確率分布(行動aを選択してxから状態yに遷移する確率を…

Agent57: Outperforming the Atari Human Benchmarkを読む その7

結論 57のすべてのAtariゲームで、人間のベンチマークを超えるパフォーマンスを持つ最初の深層強化学習エージェントを紹介した。 エージェントは、そのような多様なゲームセット(探索と活用、および長期的な信用割り当て)でパフォーマンスを発揮するために…

Agent57: Outperforming the Atari Human Benchmarkを読む その6

Backprop Through Timeのウィンドウサイズ この節では、backprop through timeのウィンドウサイズを使用することの影響を分析する。 より具体的には、NGUまたは提案する改善を行わないことでその効果を確認するために、基本アルゴリズムR2D2への影響を分析す…

Agent57: Outperforming the Atari Human Benchmarkを読む その5

状態行動価値関数のパラメーター化 まず、「ランダムコイン」と呼ばれるミニマリズムグリッドワールド環境に対する状態行動価値関数のパラメーター化の影響を評価する。 これは、サイズが15×15の空の部屋で構成され、各エピソードの開始時にコインとエージェ…

Agent57: Outperforming the Atari Human Benchmarkを読む その4

実験 この章では、まず実験のセットアップについて説明する。 NGUに続いて、Agent57はサイズN = 32の係数のファミリーを使用する。 割引の選択はNGUのそれとは異なり、0.99から0.9999の範囲のより高い値を可能にする(詳細については付録G.1を参照)。 メタ…

Agent57: Outperforming the Atari Human Benchmarkを読む その3

NGUの改善 状態行動価値関数のパラメーター化 提案されているアーキテクチャの改善は、次のように状態行動価値関数を分割することである。 ここで、とは、それぞれの外部コンポーネントと組み込みコンポーネントである。 重みのセットとは、同一のアーキテク…

Agent57: Outperforming the Atari Human Benchmarkを読む その2

背景:Never Give Up(NGU) NGU上に構築する2つのアイディア 私たちの研究は、2つのアイデアを組み合わせたNGUエージェントの上に構築される。 1つは、好奇心主導型の探索、2つ目は、分散型の深層RLエージェント、特にR2D2である。 NGUの報酬 NGUは、探索を…

Agent57: Outperforming the Atari Human Benchmarkを読む

DeepMindが発表したAgent57: Outperforming the Atari Human Benchmarkの論文を読んでいきます。Agent57のすべてのゲームで人間のパフォーマンスを上回ったようです。 モンテズマリベンジのような長期的な目標を必要とするゲームは強化学習アルゴリズムが苦…

リバーシ(オセロ)で深層強化学習 その7(Prioritized Experience Replay)

リバーシ(オセロ)で深層強化学習を試すシリーズ、前回からしばらく空いたが、今回はPrioritized Experience Replayを試す。 Prioritized Experience Replay 強化学習では、サンプルの時間依存の相関を弱めるために、サンプルを乱択する経験再生(experience …

MuZeroの論文を読む その10(再分析、評価)

今回で、最後です。 付録H 再分析 MuZeroのサンプル効率を改善するために、MuZero Reanalyzeという、わずかに異なるアルゴリズムを導入した。 MuZero Reanalyzeは過去のタイムステップを再検討し、最新のモデルパラメーターを使用して探索を再実行するため、…

MuZeroの論文を読む その9(訓練)

付録G 訓練 訓練中に、MuZeroネットワークはK個の仮想ステップに対して展開され、MCTSアクターによって生成された軌跡からサンプリングされたシーケンスに合わせられる。 シーケンスは、リプレイバッファ内の任意のゲームから状態をサンプリングし、その状態…

MuZeroの論文を読む その8(ネットワーク)

付録E ネットワーク入力 表現関数 ボードゲーム 囲碁、チェス、将棋の表現関数への入力として使用されるボード状態の履歴は、AlphaZeroと同様に表される。 囲碁および将棋では、AlphaZeroのように最後の8つのボード状態をエンコードする。 チェスでは、引き…

リバーシ(オセロ)で深層強化学習 その6(Dueling Network)

前回はリバーシでDDQNを試したが、今回は同じくDQNの発展形であるDueling Networkを試す。 Dueling Network [1511.06581] Dueling Network Architectures for Deep Reinforcement LearningDQNでは行動価値を行動価値関数Qで推定するが、Dueling Networkでは…

リバーシ(オセロ)で深層強化学習 その5(DDQN)

前回は、環境を並列実行することでDQNの高速化を行った。今回は、DQNの派生形である、Double DQN(DDQN)を試す。 Double DQN(DDQN) 一般的にQ学習は、の項が行動価値を過大評価する傾向があり、それを抑制する手法としてDouble Q学習という手法がDQN以前から…

MuZeroの論文を読む その7(ハイパーパラメータ、データ生成)

付録C ハイパーパラメータ 簡単にするために、以前の研究と同じアーキテクチャの選択とハイパーパラメータを優先的に使用する。 具体的には、AlphaZeroのネットワークアーキテクチャと探索の選択肢から始めた。 ボードゲームでは、AlphaZeroと同じUCB定数、…

MuZeroの論文を読む その6(探索)

付録B 探索 MuZeroで使用される探索アルゴリズムについて説明する。 私たちのアプローチは、信頼区間の上限(UCB; upper confidence bounds)のあるモンテカルロ木探索、単一エージェントドメインの最適な方策とゼロサムゲームのミニマックス価値関数に漸近的…

リバーシ(オセロ)で深層強化学習 その4(並列実行)

前回、DQNでリバーシ(オセロ)の強化学習を試して、ランダムより強くなることを確認した。 しかし、シングルステッドでシングルゲームを繰り返しているため1万イテレーションの実行に約14時間かかった。方策勾配法のアルゴリズムであるA2Cでは、環境を並列実…

リバーシ(オセロ)で深層強化学習 その3(DQN)

前回、DQNのネットワークを教師ありでQ学習で学習した。 今回は、DQNを強化学習で学習する。実装するアルゴリズムは、Nature に掲載された論文「Human-level control through deep reinforcement learning」に基づく。 DeepMindによる公式の実装は、TensorFl…

リバーシ(オセロ)で深層強化学習 その2(教師ありQ学習)

前回、オセロの棋譜の終端の報酬を使用して(TD(1))、教師ありで学習することでランダムより強くなることを確認した。今回は、教師ありでQ学習を試す。 Q学習 Q学習の学習則は以下の式で表される。 は、遷移に対応する即時報酬で、リバーシ(オセロ)の場合、終…

AlphaStarの論文を読む その13(分析、AlphaStarの一般性)

分析 エージェントセット 検証エージェント:メインエージェントのみを使用し、エクスプロイターを使用せずに訓練された17の戦略セットに対するリーグの堅牢性を検証し、zを手で精選された興味深い戦略セット(例:キャノンラッシュや初期飛行ユニット)に修…

MuZeroの論文を読む その3(結果)

結果 MuZeroアルゴリズムを、挑戦的なプランニング問題のベンチマークとしての古典的なボードゲーム囲碁、チェス、将棋、および視覚的に複雑なRLドメインのベンチマークとしてAtari Learning Environmentの57のゲームすべてに適用した。 測定条件 それぞれの…

リバーシ(オセロ)で深層強化学習

先日作成した高速なリバーシライブラリを使って、深層強化学習のアルゴリズムをいろいろ試してみたいと思っている。 DQNの実装 将棋でDQNによる強化学習を試したときはまったく学習しなかったので、まずは教師ありでDQNのネットワークが学習できるか試すこと…

AlphaStarの論文を読む その12(評価)

評価 AlphaStar Battle.netの評価 AlphaStarエージェントは、StarCraft IIバランスパッチ4.9.3で、MMRレーティングに基づくBlizzardのオンラインマッチメイキングシステムBattle.netで人間に対して評価された。 AlphaStar Finalは、グランドマスターレベル(…

AlphaStarの論文を読む その11(インフラ)

インフラ リーグを訓練するために、多数のStarCraft II対戦を並行して実行し、それらのゲームのデータに基づいてエージェントのパラメータを更新する。 これを管理するために、さまざまなタイプの分散ワーカーで非常にスケーラブルな訓練セットアップを開発…

AlphaStarの論文を読む その10(リーグ構成)

リーグ構成(Populating the League) 訓練中、新しいプレイヤーを作成するためにスナップショットが作成されたときの訓練対象の対戦相手の分布と、教師ありパラメーターにリセットされる確率のみが異なる3つのエージェントタイプを使用した。 メインエージェ…