TadaoYamaokaの日記

山岡忠夫Homeで公開しているプログラムの開発ネタを中心に書いていきます。

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

背景:Never Give Up(NGU)

NGU上に構築する2つのアイディア

  • 私たちの研究は、2つのアイデアを組み合わせたNGUエージェントの上に構築される。
  • 1つは、好奇心主導型の探索、2つ目は、分散型の深層RLエージェント、特にR2D2である。

NGUの報酬

  • NGUは、探索を促進するために固有の報酬を計算する。
  • この報酬は、エピソードごとと長期にわたる新規性を組み合わせることによって定義される。
  • エピソードごとの新規性、r_t^{\text{episodic}}は、エピソードの過程で急速に消失し、観測をエピソードメモリの内容と比較することによって計算される。
  • 長期にわたる新規性\alpha_tは、訓練全体を通じてゆっくりと消失し、パラメトリックモデルを使用して計算される(NGUおよびこの研究では、この目的のためにRandom Network Distillationが使用される)。
  • これにより、固有の報酬r_t^iは次のように定義される。

\displaystyle
\begin{equation*}
r_t^{i} = r_t^{\text{episodic}}\cdot \min \left\{\max\left\{\alpha_t, 1\right\}, L\right\}
\label{eq:clipping}
\end{equation*}

  • ここで、L = 5は、選択された最大報酬スケーリングである。
  • これにより、\alpha_tによって提供される長期的な新規性を活用するが、r_t^{\text{episodic}}は、エージェントがエピソード内を探索することを奨励し続ける。
  • r_t^{\text{episodic}}および\alpha_tの計算の詳細については、(Puigdomènech Badia et al., 2020)を参照。
  • 時間tで、NGUは、環境によって提供された外部報酬r^e_tに、同じ固有報酬\beta_j r_t^i (\beta_j\in\mathbb{R}^+, j\in 0,\dots N-1)のN個の異なるスケールを追加して、N個の潜在的な合計報酬r_{j,t} = r^e_t + \beta_j r_t^iを形成する。
  • その結果、NGUは、各報酬関数r_{j,t}に関連付けられたN個の異なる関連する最適な状態行動価値関数Q^*_{r_j}を学習することを目的としている。
  • 探索率\beta_jは、探索度を制御するパラメータである。
  • 高い値は探索的方策を奨励し、小さい値は活用的方策を奨励する。
  • さらに、長期の信用割り当てを学習する目的で、それぞれに独自の割引係数\gamma_jがある(背景とマルコフ決定プロセス(MDP)の表記については、付録Aを参照)。
  • 固有の報酬は通常、外部の報酬よりもはるかに密なので、\{(\beta_j, \gamma_j)\}_{j=0}^{N-1}は、活用的方策(\beta_jの値が小さい)には長期的視野(\gamma_jの値が高い)を、探索的方策(\beta_jの値が高い)には短期的視野(\gamma_jの値が低い)を可能にするように選択される。

状態行動価値関数の学習

  • 状態行動価値関数Q^*_{r_j}を学習するために、NGUはリカレントニューラルネットワークQ(x, a, j; \theta)を訓練する。
  • ここで、jは、Nの暗黙のMDP(特に(\beta_j, \gamma_j))の1つにインデックスを付けるonehotベクトルである。
  • xは 現在の観測、aはアクション、\thetaはネットワークのパラメータ(再帰状態を含む)である。
  • 実際には、NGUは不安定で、単純な環境であっても、ファミリ内のすべての状態行動価値関数のQ^*_{r_j}の適切な近似を学習できない場合がある。
  • これは特に、r^e_tr^i_tのスケールとスパース性が両方とも異なる場合、または1つの報酬が他の報酬よりもノイジーな場合に当てはまる。
  • 報酬の性質が非常に異なる場合、報酬の組み合わせに対する一般的な状態と行動の価値関数を学習することは難しいと推測する。
  • したがって、3.1節では、この問題に取り組むためのアーキテクチャの変更を提案する。

深層分散RLエージェント

  • 私たちのエージェントは、R2D2とNGUの系譜にある、深層分散RLエージェントである。
  • したがって、多くのアクターが中央の優先順位付けされたリプレイバッファにデータを供給することで、データ収集と学習プロセスを分離する。
  • 図2に示すように、ラーナーはこのバッファーから訓練データをサンプリングできる(実装の詳細とハイパーパラメータについては、付録Eを参照)。
  • より正確には、リプレイバッファには、FIFO方式で定期的に削除される遷移のシーケンスが含まれている。
  • これらのシーケンスは、環境の独立したコピーと相互作用するアクタープロセスから取得され、TD誤差に基づいて優先順位が付けられる。
  • 優先度はアクターによって初期化され、ラーナーによって更新された状態行動価値関数Q(x, a, j; \theta)で更新される。
  • これらの優先順位に従って、ラーナーはリプレイバッファから遷移のシーケンスをサンプリングして、RL損失を構築する。
  • 次に、RL損失を最小化して最適な状態行動価値関数を近似することにより、ニューラルネットワークQ(x, a, j; \theta)のパラメータを更新する。
  • 最後に、各アクターはラーナーと同じネットワークアーキテクチャを共有するが、重みは異なる。
  • l番目のアクターのパラメータを\theta_lとする。
  • ラーナーの重み\thetaをアクターに頻繁に送信することで、アクターは自身の重み\theta_lを更新できる。
  • 各アクターは異なる値\epsilon_lを使用する。これは、状態行動価値関数Q(x, a, j; \theta_l)の現在の推定に基づいて、\epsilon_l-greedy方策に従うために使用される。
  • 特に、各エピソードの最初と各アクターでは、NGUはペア(\beta_j, \gamma_j)を一律に選択する。
  • このプロセスは最適ではないと仮定し、データ収集プロセスを適応させる各アクターにメタコントローラを導入することにより、3.2節でこれを改善することを提案する。

f:id:TadaoYamaoka:20200401230355p:plain
図2.分散深層RLエージェントの略図

感想

Agent57はNGUR2D2を改善したアルゴリズムのようです。
NGUは探索と活用のトレードオフを制御するために、通常の報酬の他に、長期での新規性とエピソード内での探索を促す内部報酬を与えるようにしたアルゴリズムのようです。
NGUもつい最近(2020年)の論文です。
内部報酬には、探索と活用のトレードオフを制御するパラメータと、長期の信用割り当てを制御する割引係数があり、それらが異なる複数の状態行動価値関数を学習しているようです。

(続く)