EPISODIC CURIOSITY THROUGH REACHABILITY のメモ


N.Savinov (Google Brain), et.al, "EPISODIC CURIOSITY THROUGH REACHABILITY"

[1810.02274] Episodic Curiosity through Reachability

をナナメ読みしたメモ。

 概要

強化学習中に観測された状態が、過去に経験済みの状態と大きく離れているか(状態間を移り変わるまでに多くのステップが必要か)を判定する仕組み(Episodic Curiosity (EC) module)を提案している。 EC module によって観測した状態の目新しさが判定できるので、その目新しさに応じたボーナス報酬を本来の報酬に加えることで未知の状態への探索を促すというもの。

処理の概要

EC module の部品は4つ。

  • Embedding network
  • Comparator network
  • Episodic memory
  • Reward bonus estimation module

f:id:FakeOwl:20181008231247p:plain (N.Savinov (Google Brain), et.al, "EPISODIC CURIOSITY THROUGH REACHABILITY", Fig.3)

Embedding network

状態量  o を圧縮して内部表現  e を出力するネットワーク:  e = E(o)。論文の例題では ResNet-18 が使用されている。

Comparator network

Embeddingされた状態  e_i, e_j 間の距離を互いの状態に移り変わるまでに必要なステップ数で定義し,そのステップ数があらかじめ決めておいた閾値  k_{th} を超えたか否かで類似度(similarity score):  C(e_i, e_j) \in [0, 1] を計算する。学習には cross entropy lossを使用する。

Episodic memory

Embedding された過去の観測量を保存するメモリーバッファー。 メモリーには限りがあるので、足りなくなったらランダムに過去のものを捨てて入れ替える。

Reward bonus estimation module

エピソードバッファー中の全ての状態  M=(e_1, e_2, \cdots, e_m)と現在の状態 eとの類似度  c_i = C(e_i, e)をComparator network で計算し、 Reachability buffer に保管する。その後、aggregation 関数  F(c_1, c_2, \cdots, c_m) \in [0, 1]を用いて、現在の状態との類似度を計算する(理論的にはmax関数がよさそうであるが、90パーセンタイル値を用いるほうが成績が良かったらしい)。この類似度に応じて本来の報酬とは別のボーナス報酬: b を計算する。(バッファー中の全状態(論文ではメモリーサイズ m は200に設定してある)に対して現在の状態との類似度計算するので処理は重たいのでは? 学習時だけなので大きなでは問題ないとも思う。)