人間の動作ビデオからロボットの学習に使える汎用的な報酬を学習したい!
3つの要点
✔️ 多様かつ大規模な人間の動画を利用することで汎化性能が高い報酬関数を学習
✔️ 未知のタスクや環境に対しても学習した報酬関数を利用してタスクを解くことが可能
✔️ 実機のロボットを使った実験でも高い成功率を示す
Learning Generalizable RObotic Reward Functions from "In-The-Wild" Human Videos
written by Annie S. Cgeb,Suraj Nair ,Chelsea Finn,
(Submitted on 31 Nar 2021)
Comments: Accepted by RSS 2021.
Subjects: Robotcis (cs.RO), Artificial Intelligence (cs.AI), Computer Vision and Pattern Recognition (cs.CV), Machine Learning (cs.LG)
code:
本記事で使用している画像は論文中のもの、紹介スライドのもの、またはそれを参考に作成したものを使用しております。
はじめに
ロボットが様々なタスクを色々な環境で解くことが出来るようにするためには、planningや強化学習で必要である、タスクが成功しているかどうかの指標や報酬などが必要不可欠です。特に現実世界においては、RGB画像のような搭載されているセンサーのみから得られる情報を用いて、報酬関数が様々なタスク、物体、環境に汎用的であることが求められます。ロボティクスの分野ではなく、コンピュータービジョンや自然言語などの分野では大規模かつ多様なデータセットを用いることである程度の汎用性を達成してきています。しかし、ロボティクスの分野において、そのような大規模かつ多様なデータセットを集めるのはコストが掛かり、集めるのが難しいという問題があります。そこで、本研究はYouTubeなどで得られるようなネット上に散見しているような人間がタスクを解いているような動画をうまく利用して未知のタスクに対応することが出来る報酬関数を学習するDomain-agnostic Video Disctiminator (DVD)という手法を紹介します。この手法は、人間がタスクを解いている比較的大きなデータセットと少量のロボットに関するデータを使って未知のタスクや環境に対して報酬を推定することが出来ることを示しました。では、次の章からどのような手法なのかを詳しく説明していきます。
手法
そもそも人間のデータはロボットのobservation spaceと大きくかけ離れており、またロボットと人間自体も姿形がもちろん異なります。またそれだけではなく、人間とロボットのaction space (行動空間)も大きく異なり、人間でのすべての行動を上手くロボットの行動に変換することが出来ないということがあります。また、webなどに散見しているような、いわゆる"In-the-wild"なデータはviewpointやbackgroundが異なったり、ノイズがあるなど問題があります。しかし、それでもなお、沢山のデータに簡単にアクセス出来るということから、これを上手くロボットのための報酬関数の学習に利用したいというのがモチベーションになります。
では、どのように人間のデータを利用するのでしょうか。提案手法のアイデアは、2つのビデオが与えられたときに、学習したclassifierがその2つの動画が同じタスクを解いているのか異なるタスクなのかを判別することが出来るようにするということです。そして、沢山の人間の動画と少量のロボットの動画に付いているactivity labelを用いることでvisual domain gap があったとしても同じタスクを解いているかどうかを学習出来るようにします。この手法をDomain-agnostic Video Discriminator (DVD)といい、シンプルな手法故に、応用範囲が広い手法です。そして、DVDを学習し終えた後は、解きたいタスクの人間のデモンストレーションを片方の入力に与え、もう片方のビデオの部分はロボットの行動の動画が与えられ、その2つの動画の類似性のスコアをもとにタスクが成功しているかもしくはそのまま報酬として利用することが出来ます。下図はこの全体の流れを表しています。
Domain-Agnostic Video Discriminators
では更に詳しく、DVDの手法に関して紹介していきます。基本的なアイデアは、タスク$\mathcal{T}_{i}$に関する動画$d_{i}$とタスク$\mathcal{T}_{j}$に関する動画$d_{j}$の2つの動画が与えられた時、2つの動画の機能的な類似性(同じタスクを行っているかどうか)を捉えることが出来る報酬関数$\mathcal{R}_{\theta}$を学習することです。人間の動画のデータセットと少量であるロボットの動画のデータセットをそれぞれ$\mathcal{D}^{h}$と$\mathcal{D}^{r}$とすると、2つの動画は$D^{h}$と$D^{r}$に属するどちらの動画でも構いません。そして、下図のように各動画にはaction labelがついていることから、どの動画がどのタスクに属するかがわかります。
$\mathcal{R}_{\theta}$の出力は2つの動画のタスクレベルにおける類似度のスコアを表しており、average cross-entropy lossをビデオのペアに用いて以下のような目的関数を最小化するよう学習します。
$$ \mathcal{J}(\theta)=\mathbb{E}_{\mathcal{D}^{h} \cup \mathcal{D}^{r}}[\log (\mathcal{R}_{\theta}(d_{i}, d_{i}^{\prime}))+\log (1-\mathcal{R}_{\theta}(d_{i}, d_{j}))] $$
DVDの実装に関して
学習する報酬関数$\mathcal{R}_{\theta}$は
$$ \mathcal{R}_{\theta}(d_{i}, d_{j}) = f_{sim}(f_{enc}(d_{i}), f_{enc}(d_{j}); \theta)$$
で表され、$h=f_{enc}$を事前学習されたビデオエンコーダーとすると、パラメーター$\theta$で表されるfully connected neural network $f_{sim}(h_{i}, h_{j}; \theta)$がビデオエンコーディング$h_{i}$と$h_{j}$が同じかどうかを推定することが出来るように学習します。ここで、ビデオエンコーダー$f_{enc}$は動画を潜在空間に落とし込み、binary classifierである$f_{sim}$がそれらのビデオエンコーディングを受け取り前節の式のとおりに学習されます。ここで、ロボットと人間の動画の量にはバラつきがあるため、バランスを取るために、バッチ $(d_{i}, d_{i}', d_{j})$のそれぞれが50%の確率でロボットの動画になるようにします。
DVDを使ったタスクの実行
では学習した報酬関数$R_{\theta}$をどのように使ってタスクを解くことが出来るのでしょうか。この報酬関数はmodel-free RL、model-based RLのどちらとも組み合わせることが出来ます。本論文では、visual model predictive controlと呼ばれる、学習されたvisual dynamics modelを使ってロボットのアクションをプランニングしていく方法です。タスク実行時には、解きたいタスクの人間のデモンストレーション $d_{i}$が与えられ、ロボットの行動がデモンストレーションと類似するようactionの最適化を行います。
ではもう少し具体的な話をします。まずはじめにaction-conditioned video prediction model $p_{\phi} (s_{t+1:t+H}|s_{t}, a_{t:t+H})$をSV2P modelを利用して学習します。そしてcross-entropy method (CEM)と学習したdynamics model $p_{\phi}$を利用して、与えられたdemonstrationとの類似度を最大化するようにactionを選択します。つまり、長さHのaction sequenceをG rollout分集め、それらのactionを実行したときの軌跡$\{s_{t+1:t+H}\}^{g}$が学習したdynamics modelを通して画像として得られます。そしてこの各軌跡とdemonstrationを比較したときに最大の類似度のものが選ばれます。
実験
本論文では、DVDが効果的に人間の動画データを利用して汎化性能を高めているかを調べるために、以下のことを確かめるような実験を行いました。
- DVDが新しい環境に対して汎化するかどうか
- DVDが新しいタスクに対して汎化するかどうか
- DVDの1本の人間のデモンストレーションによる汎化が他の手法と比較してより効果的かどうか
- 実機ロボットにおいても報酬を推定することができるか
最初の3つは下図左のようなシミュレーションのタスクで、学習環境をベースにテスト環境であるTest Env1は異なる色、Test Env2は異なる色と視点、Test Env3は異なる色、視点そして物体の並んでいる順番を変えたものになります。タスクとしては、(1) 引き出しを閉めるタスク、(2) 蛇口を右にひねる、(3) カップをカメラの方からコーヒーマシンの方へ押す、という3つのタスクを用意しました。
人間のデータセットとしてSomething-Something-V2 datasetと呼ばれるデータセットを用いて実験を行い、合計で174クラス、220,837本の動画が含まれています。このデータセットには、様々な環境や物体に対して異なる行動を行って物体を操作している多様な物となっています。本実験ではその中でも最大15の異なる人間が行っているタスクの動画を利用し、それぞれのタスクごとに853-3170のデータがあります。また、ロボットのデータとしては3つのタスクに関する120本のvideo demonstrationが与えられていると仮定して実験しました。
実機での実験では、WidowX200ロボットを利用して実験を行いました。シミュレーションと基本的に同様のセットアップを用いて実験が行われ、この実験では学習タスク2つのそれぞれ80のrobotと人間の動画によってDVDが学習されます。学習環境は下図右のようにファイルをしまう戸棚がある環境です。テスト環境は、それがおもちゃのキッチンセットに置き換わったものになります。学習タスクは、"Closing Something"、"Pushing something left to right"で、テストタスクは"Closing something" (既知のタスク)、"Pushing something right to left" (未知のタスク)になります。
タスクを解く際は、下図のように未知の人間がタスクを解いている動画が与えられた上で、人間の動画と親しい動作をしている軌跡が選択されます。
新しい環境に対する汎化
まずはじめにDVDの未知の環境に対する汎化性能について調べました。ターゲットタスクである3つのタスクに関する学習環境でのロボットのビデオと異なる量の人間のデータを混ぜた上で未知の環境に対する汎化性能を調べます。仮説としては、多様な人間のデータを用いることによって、未知の環境に対するパフォーマンスが高くなるということが考えられます。これを確かめるために、ロボットのみのデータを用いた(Robot Only)、ロボットと人間の$K$タスクのデータを混ぜた場合の(Robot+K Human Tasks)とで比較しました。ここで、$K$が3であった場合はターゲットタスクのデータすべてを含んでいることを表し、$K$が3より大きい場合は、ターゲットタスクと関係ないタスクのデータが含まれていることを表します。これらを評価するために、前章で説明した、visual dynamics modelを学習した上でvisual MPCとDVDの出力を報酬として利用することによるタスクの成功回数を調べました。Visual dynamics modelを学習するためのデータはテスト環境にて自動で集められます。下図はその結果を表しており、たとえタスクに関係ないデータが含まれていても、人間のデータを含めたほうが、含めなかった場合と比較して大きく成功回数が上回っていることが分かります。
未知のタスクに対する汎化
次に未知のタスクに対する汎化性能を確かめるための実験を行いました。ここでは、ターゲットタスクのデータをDVDの学習には含めず、(1) 引き出しを開ける (2) 物体を右から左に動かす、(3) どの物体も動かさない、の3つのタスクに関してのロボットのデータと異なる量の人間のデータを利用してDVDを学習しました。実験環境に関しては、タスクの汎化性能を調べたいので、学習環境はテスト環境と同様のものを利用しました。下のテーブルはそれぞれのデータの場合における各タスクの成功率を表しています。下図の結果から前の結果と同様に、例えタスクに関係ない人間のデータを追加したとしても、ロボットのみの場合(Robot Only)と比較したときに、平均的に成功率が上回っていることが分かります。特にRobot Onlyの場合、Move faucet to rightのタスクでは、タスク自体を識別することに失敗してしまい、ほとんど解くことが出来ないということが分かりました。
他手法との比較
ここでは、DVDが他の手法と比較してより効果的に人間の動画を利用できているかを確認しました。ベースラインの一つとして、Concept2Robotという、Sth Sth V2 datasetを用いて学習したビデオ分類器の出力を報酬として利用するものです。しかし、Concept2Robotでは、DVDとは異なりdemonstrationを条件としてタスクの実行を行うことが出来ないので、条件はなしで実験をしました。また別のベースラインとして、demo-conditioned behavioral cloningと呼ばれる手法を利用し、robotもしくは人間のdemonstrationを条件として、behavioral cloningによってactionを学習する手法です。さらに、random policyを比較対象として追加しました。下図はその結果を表しており、DVDが他のどの手法と比較しても100回数の試行のうち成功回数が最も多いのが分かります。Concept2Robotは、解きたい未知のタスクのdemonstrationを条件とすることが出来ないので、未知のタスクへの汎化性能が低いことが伺えます。
実機実験での効果
シミュレーション実験では上手く行きましたが実機実験ではどうでしょうか。
実機実験でも今までと同様にDVDを様々な量の人間のビデオごとで比較をしました。下のテーブルは20回の試行のうち、何回タスクを解くことが出来たかを表しており、下の結果から人間のビデオを利用したほうが、Robotのデータのみを使うより成功回数た大きいことが分かります。また、基本的にタスクに関係ないような人間のデータを利用する場合のほうが($K$>3)、利用しない場合よりも成功回数が大きいことも分かりました。
ロボットのデータ量とパフォーマンスの関係性
最後に、ロボットのデータ量とパフォーマンスの関係性について調べました。今までの実験では120本のロボットのデモンストレーションを使用した実験を行いましたが、ロボットのデータが仮にもっと少ない場合はパフォーマンスにどのような影響がでるのかを確かめた実験結果が下図になります。下図を見ると、データの量を減らしてもタスクの成功回数に大きな差が見られないことが分かることから、DVDが少量のロボットのデータでも良いパフォーマンスを出すことが分かりました。
まとめ
ロボットの大規模データが手に入りにくいという問題は前から言われており、最近では人間のデータなどを上手く利用することで学習効率を上げたり本論文のような汎化性能を上げるという方向性の研究が多く見られます。しかしロボットのデータと人間のデータではドメインの違いが大きすぎるために、今後もどのような方法でより効果的に利用することができるかを探る必要はあると思います。
この記事に関するカテゴリー