[DL Hacks]One-Shot Imitation from Observing Humans via Domain-Adaptive Meta-Learning

>100 Views

September 04, 18

スライド概要

2018/09/03
Deep Learning JP:
http://deeplearning.jp/hacks/

シェア

またはPlayer版

埋め込む »CMSなどでJSが使えない場合

(ダウンロード不可)

関連スライド

各ページのテキスト
1.

One-Shot Imitation from Observing Humans via Domain-Adaptive Meta-Learning PSI B3 近藤生也

2.

アジェンダ ● ● ● ● ● ● ● ● ● 書誌情報 モチベーション コンセプト メタ学習とは 概要 MAML メタ学習 実験 所感 2

3.

書誌情報 ● One-Shot Imitation from Observing Humans via Domain-Adaptive MetaLearning (RSS 2018 accepted) ● Tianhe Yu*, Chelsea Finn*... (UC Berkeley) ● ポイント ○ 人間の行動をOne-Shotで意味的にまねできるよう、人間とロボットの間 のドメインシフトをうまく克服し、非常に効率の良い転移学習が行える 学習方法を提案。 ○ ● 選定理由 ○ MAMLっていうのが気になってた 3

4.

モチベーション ● ヒトや動物は、第三者の行動を一回見るだけで真似できる。 ● 既存のロボットの研究 ● ロボットが自分で試行錯誤してスキルを身に着ける →計算コスト大 ● 人がロボットを操作して、それを教師データとしてロボットが自分自身の操作 方法を学ぶ →一回一回教師データを作るのが大変 ● ヒトの行動を一回見ただけで真似できるようになってほしい。 4

5.

コンセプト ● One-Shot模倣学習を、メタ学習と捉える。 ● メタな学習とローカルな学習の二段階に分けて考える。 5

6.

メタ学習とは それぞれ異なる小さいタス ク(Meta-train-Task)がたく さんあって、 それらのタスクの延長線上 に未知のfew-shotで達成し てほしいタスク(Meta-testTask)がある。 各ローカルなTaskは、デー タセットが非常に小規模 いかに未知のMeta-testTaskでも高い精度を出すか、 いかにMeta-train-Taskで事 前知識を獲得するかが焦点。 https://www.slideshare.net/DeepLearningJP2016/dllearning-to-generalize-metalearning-for-domain-generalization 6

7.

提案手法の概要 ● 用意するデータは、 d_h:人間のデモ。ロボット視点の画像o_t(t in 1..T) d_r:人間がロボットを操作したデモ。ロボット視点の画像o_t, ロボットの状 態s_t(腕の角度など), 行動a_t(t in 1..T) ○ 腕は7DoF ● 各タスクで、d_hとd_rが与えられる ● メタ学習時は、meta-train-Taskを与えて、d_hとd_rの両方を使って良い方策 と事前知識を獲得 メタテスト時(これは実用的な場面を想定している)は、meta-test-Taskか らd_hを1個だけ与えて、そのタスクに速やかに適応できるようにする。 7

8.

提案手法の概要 ● 単純なポリシーベースの強化学習用のモデルを使い、MAMLアルゴリズムで メタな最適化を行えば、うまく行くはず! ○ ポリシーベース:現在の状態xから、次の行動a(の確率分布)を直接推定する 8

9.

デモ https://sites.google.com/view/daml 9

10.

MAML概要 ● 発想:どんなタスクにも数ステップ で最適化できるような、 共通の初期パラメータを求める ● 目的関数 ①meta-train-taskのtrainで初期値パラメタθを更新 ②更新されたパラメータでmeta-train-taskのvalidationに対しての汎化誤差をとって ③汎化誤差が小さくなるように初期値パラメータを更新 ( ΦTは、更新後のパラメータ) 10

11.

MAML概要 ● これを使えば、メタ学習ができて、新しいタスクに対してもone-shotで対応 できるはず… ● しかし分類問題などとは違い、誤差Lをどうやってとるかが問題。 ● d_hとd_rの使い方も簡単には決められない。 11

12.

MAMLの拡張 ● まず、人間のデモd_hから、損失関数L_Ψでパラメータを更新し、 次に、ロボットのデモd_rから、更新されたパラメータと損失関数L_BCで、 初期値パラメータθとΨを更新する 12

13.

MAMLの拡張 ● 損失関数L_BCで、初期値パラメータθとΨを更新 L_BCは、ロボットのエキスパートの行動d_rをクローンするように設定する。 実際は、選択したactionとデータのactionの差を取る。 13

14.

MAMLの拡張 ● 損失関数L_Ψで、初期値パラメータθをそのタスクに適するように更新 L_Ψの値は人間のデモd_hから自動的にCNNで推定される。 どこかしらにい ちゃもんをつけ る→ (明示的なloss は、Lbcで行う) 14

15.

メタ学習後 ● ヒトのデモを使って初期値パラメタを暫定的に更新 ● 終了 15

16.

メタ学習時 ● ヒトのデモを使って初期値パラメタを暫定的に更新 ● 更新されたパラメタとロボットのデモを使って、初期値パラメータθと、Ψを 更新 16

17.

アーキテクチャ 潜在情報fを拾ってくる。 その時のロボットの状態とconcatして、次の行動を予測し、出力さ 17 れたactionの違いでlossを取る。

18.

実験 18

19.

まとめ ● 模倣学習でも、適切に損失関数を設定することでMAMLを使ったドメインシ フトを可能にした。 ● MAMLの実装は綺麗なコードがあった(omniglot) https://github.com/katerakelly/pytorch-maml 19