The Natural Language of Actionsを読んだ際のメモ

出典

 International Conference on Machine Learning 2019に採択

読んだ理由

 うさぴょん外伝のアピール文書を読んでから行動表現の学習に興味が出ている。自然言語処理における分散表現の考え方に近いなと思いながらICML2019の論文一覧を見ていたところ、かなり明示的にそういったことを主張していた論文があったので読んでみた。

概要

 行動ログ(コーパス)から行動表現を学習するための手法Act2Vecを提案。

詳細

 基本的にSkip-Gramの考え方をそのまま行動表現の学習に適用する。

学習

 既存の行動・状態ログがあると仮定し、そこから状態s_t,行動a_tに対する幅wのコンテキストc_w(s_t, a_t) = (s_{t - w}, a_{t - w}, \dots, s_{t-1}, a_{t-1}, s_{t+1}, a_{t+1}, \dots, s_{t+w}, a_{t+w})を得る。表記の簡略化のため状態行動とそれに対するコンテキストのペア \lt (s,a), c_w(s, a) \gt(a, c)で表すものとする。

 行動aの分散表現を\vec{a}、コンテキストのcの表現を\vec{c}としたとき、このペア(a, c)がデータの中にある確率をモデル化する。シグモイド関数\varsigmaとして $$ P(true; a, c) = \varsigma(\vec{a}^{\mathrm{T}} \vec{c}) $$ とする(この定式化がSkip-Gramのそれと一致しているのかがよくわからない)。

 ネガティブサンプリングも入れて、P_cを周辺ユニグラム分布として損失は $$ l(a, c) = \log{\varsigma(\vec{a}^{\mathrm{T}} \vec{c})} + k \mathbb{E} _{c_N \sim P_c} \log{\varsigma(-\vec{a}^{\mathrm{T}} \vec{c_N})} $$ とする(ネガティブサンプリングサンプリングって逆方向のドロップアウト的なものかと思っていたがそういう式になっているのかわからない)。

利用法1:行動価値の近似

 行動の表現を\psi(a)、状態の表現を\phi(s)としたとき、行動価値を次のように推定する。

$$ \hat{Q}(s, a) = \psi(a)^{\mathrm{T}} \phi(s) $$

利用法2:効率的な探査(k-Exp)

 行動の分散表現はk-means法などでk個のクラスタに分割できる。

  1. クラスタをランダムに選択する
  2. クラスタ内から行動をランダムにサンプリングする

とすることで意味的に異なる行動を均一にサンプリングできるので効率の良い探索が行える。

実験

Drawing

  • 正方形(長方形?)を描くタスク
  • 行動は上下左右4方向と、上右、右上など4方向を組み合わせた8方向(上下など真逆の行動対は無し)の計12種類
  • 描画が完了したときにだけ、描かれた形状が長方形のときに正の報酬を付与
  • 人間がやったコーパスから事前にAct2Vecを学習

f:id:tokumini:20190617185613p:plain

  • 行動表現が点対称のように学習されている(一番左の図)
  • 実際に用いるとOnehotやrandomで与えるよりもAct2Vecの方が高性能

Navigation

  • 障害物を避けながら特定の場所へ進むタスク
  • 前進、左右に向きを変えるの3つの行動が可能 →行動の系列を考えると表現に意味が出る
  • 考慮する系列長kとしてk=1,2,3の場合について学習

f:id:tokumini:20190617185652p:plain

  • k=2,3の場合が左二つの図
    • やはり意味ごとに行動が分解されており、また垂直軸に対して対称性
  • 性能ではk=1よりk=2とした方が良く、k=3では伸びなかったがk-Expを入れると向上

Star CraftⅡ

  • 人間プレイヤーの行動ログから学習

f:id:tokumini:20190617185713p:plain

  • 全て混合で学習してもキャラクターの種別ごとに行動が分離できており、その中でも意味的なまとまりができている

所感

  • 実験結果が少し微妙な気はするけど考え方が面白くて発展の余地がありそう
  • うさぴょん外伝でもそうだったが、状態表現との内積で行動価値を表現しているのが気にかかった。既存研究にもそのようなものがあったようだが、このやり方の意味がよくわからない
  • 結局実験では行動コンテキストのみから表現を事前学習しており、価値を学習する段階でも表現の学習を行えると良いのではないかと思った