akarimoon / papers

0 stars 0 forks source link

[2020] Program Guided Agent #1

Open akarimoon opened 4 years ago

akarimoon commented 4 years ago

論文リンク

https://openreview.net/pdf?id=BkxUvnEYDH

公開日

09/26/2019

Summary

ICLR2020のSpotlight Paperに選ばれた論文。RLにおいて、エージェントに動作を指示する際に今まで文章を与えてそれを実行させる、という手法が研究されていたがなかなか精度を出せなかった。今回の提案された手法はその指示内容をプログラム文を用いて表すというもの。

akarimoon commented 4 years ago

image

今回提案されたアルゴリズムは3つのモジュールに分解できる。 まず、プログラム文を読み取るProgram Interpreter。これは学習するモジュールではなく、単にコードをparseして木構造に直すやつ。葉ノードが行動する部分になり、if文などが葉ノードでない部分になる。このif文などをqueryにして次のモジュールに入れる。
生成されたqueryはPerception Moduleへインプットされる。Perception Moduleはif文などの内容のquery(そこに木があるか、など)と環境情報に対してqueryの答えをYes/No (1/0)のアウトプットを返す。
最終的にYes/Noの結果と環境情報、および目標を元にPolicyモジュールが行動を決定する。

akarimoon commented 4 years ago
Screen Shot 2020-03-05 at 19 12 46

Perception Moduleはこんな感じ。queryはOHEされて全結合層へ、マップ情報はCNNへ、インベントリ情報は全結合層へ。最後それらがもう数段の全結合層に入っていって最終的にYes/Noの確率(多分)が出力される。

akarimoon commented 4 years ago

image

Policyも独自の改良をしていて、ConcatやEncoderを使わず、全結合層とCNNの組み合わせで環境上とゴールから行動を出力している。実際、性能比較は下の図な感じ。 image

akarimoon commented 4 years ago

image エージェントがいる空間は2次元グリッド空間。プログラム文の内容をクリアしたら+1の報酬が得られる仕組み。
4500ほどのtraining setと500ほどのtest set+test setに長さと複雑度を増したtest-complexで汎化性能を見た。 image 結果、LSTMなどを使った場合と比べて断然性能が良い。test-complexに対する性能もやや落ちたもののよい性能なのでは。 image

akarimoon commented 4 years ago

疑問点