AVID: Human demonstrationを使ってMulit-Stageタスクを解く!
3つの要点
✔️ Long-horizonなタスクを解くことが出来る手法、AVIDの提案
✔️ Human DemonstrationをCycleGANで変換することで報酬関数を定義
✔️ Multi-stageタスクにおいて、後のstageにおいても高いタスクの成功率を達成
AVID: Learning Multi-Stage Tasks via Pixel-Level Translation of Human Videos
written by Laura Smith, Nikita Dhawan, Marvin Zhang, Pieter Abbeel, Sergey Levine
(Submitted on 10 Dec 2019 (v1), last revised 21 Jun 2020 (this version, v3))
Comments: Robotics: Science and Systems (RSS) 2020 camera ready submission. Project website: this https URL
Subjects: Robotics (cs.RO); Computer Vision and Pattern Recognition (cs.CV); Machine Learning (cs.LG)
Paper Official Code COMM Code
はじめに
本記事では、RSS 2020でアクセプトされました、AVIDというmulti-stageタスクを人間のdemonstration videoから学習する手法について紹介します。Reinforcement Learning (RL、強化学習)は過去の経験から複雑な行動を学習することができるようになってきています。しかし、long-horizonなタスクをRLで解く際には、基本的に人間がタスクを時間をかけて定義してあげなければならず(報酬関数など)、この人間によるタスク定義の負担などを減らしてあげることがlong-horizonなタスクを解いていくことにおいて重要なステップと考えられています。また、long-horizonなタスクにおいて、タスクの初めの方で起きた小さいエラーがタスクの後の方で大きな悪影響を及ぼしてしまう問題もあります (compounding error)。この論文では、multi-stageタスクにおいて、それぞれのステージのタスクを人間によるdemonstrationによって定義され、その情報を元にロボットが画像を入力として方策を学習する手法について紹介しています。この人間によるdemonstrationは比較的簡単に集めることができますが、ここで問題となるのはロボットと人間の見た目などの違いです。この見た目の違いを考慮してそれぞれの行動の画像のペアを作るためには基本的に手動で行われることが多いですが、本論文ではCycleGANを使うことで、人間のdemonstrationのデータとロボットのデータのペアを予め作らずに、人間のdemonstrationのデータをロボットのdemonstrationのデータを変換します。そして、この変換されたdemonstrationがmodel-based RLの報酬関数として使われます。学習時には、multi-stageの各stageを解くだけではなく、resetする方法も学習することで殆どの学習プロセスを自動化することに成功しました。また、各stageごとに学習を進めていくため、long-horizonなタスクに置いて問題なエラーの積み重ねが起きにくくなっています。本記事ではこの手法と結果について詳しく紹介していきます。
手法
画像の変換について
まずはじめに、提案手法における重要なベースとなるモデルであるCycleGANについて紹介します。CycleGANは、異なる2つのドメイン$X$と$Y$のマッピングに関して、ペアではないデータ$\left\{x_{i}\right\}_{i=1}^{N} \in X$ and $\left\{y_{i}\right\}_{i=1}^{M} \in Y$から学習する手法です。本論文にけるCycleGANは、ドメイン$X$と$Y$がそれぞれ人間のdemonstrationとロボットのdemonstrationと表すことができます。CycleGANは2つのgenerator(生成器)、$G: X \rightarrow Y$と$F: Y \rightarrow X$で成り立っています。そして、2つのdiscriminator (鑑別器)のうち、$D_{X}$が人間によるdemonstration内の画像 $\{x\}$とrobotのdemonstration内の画像を元に生成された画像 $\{G(y)\}$を識別し、そして$D_{Y}$がロボットのdemonstration内の画像 $\{y\}$と人間のdemonstration内の画像を元に生成された画像$\{F(x)\}$を識別します。そしてadversarial lossがこの2つのマッピングに対して適用され、GANのロス関数は以下のように表すことができます。$$\begin{aligned} \mathcal{L}_{G A N}\left(G, D_{Y}, X, Y\right)=& \mathbb{E}_{y \sim Y}\left[\log D_{Y}(y)\right] \\ &+\mathbb{E}_{x \sim X}\left[\log \left(1-D_{Y}(G(x))\right)\right] \end{aligned} $$
そのうえで、CycleGANでは、$x \rightarrow G(x) \rightarrow F(G(x)) \approx x$と$y \rightarrow F(y) \rightarrow G(F(y)) \approx y$の関係が成り立つような以下のロス関数が追加されます。$$\begin{aligned} \mathcal{L}_{cyc}(G, F)=& \mathbb{E} ||F(G(x)) - x||_{1} \\ &+\mathbb{E} ||G(F(y)) - y||_{1} \end{aligned}$$
そして全てのLoss関数を合わせることにより、
$$\begin{aligned} \mathcal{L}_{\mathrm{CG}}(G, F, D_{X}, D_{Y}) =& \mathcal{L}_{\mathrm{GAN}}(G, D_{Y}) + \mathcal{L}_{\mathrm{GAN}}(F, D_{X}) \\ &+\lambda \mathcal{L}_{\mathrm{cyc}}(G, F) \end{aligned}$$
のように表すことができます。
データ効率性の向上のための表現学習
強化学習においてデータ効率性の向上はとても重要な課題です。本論文ではデータ効率性を上げるために、state representation learningを利用しています。具体的には、画像のobservationに対するlatent state representationを以下のようなprobabilistic temporally-structured latent variable modelを定義することによって学習しています。
ここで、$s_{t}$は観測されない変数で、前のstateとactionを入力とした関数によって決定されます。そして画像のobservationである$o_{t}$はstate $s_{t}$におけるobservationとして扱われます。$s_{t}$に関する生成モデルは、次のようにして表されます。
$$\begin{aligned}p(\mathbf{s}_{1})&=\mathcal{N}(\mathbf{s}_{1}; 0, \mathbf{I}) \\ p(\mathbf{s}_{s+1}|\mathbf{s}_{t}, \mathbf{a}_{t})&=\mathcal{N}(\mathbf{s}_{t+1}; \mu(\mathbf{s}_{t}, \mathbf{a}_{t}), \Sigma(\mathbf{s}_{t}, \mathbf{a}_{t}))\end{aligned}$$
ここで、$\mu$と$\Sigma$はニューラルネットワークによって決められます。この生成モデルを完成させるには、decoder $p(o_{t}|s_{t})$の学習を行う必要があります。これを行うために、variational distribution $q_{s_{1:T}; o_{1:T}}$を導入し、これを利用して事後分布である$p(s_{1:T}|o_{1:T}, a_{1:T})$を推定します。ここで$q(s_{1:T}; o_{1:T})$はencoder $q_{s_{t}; o_{t}}$を利用して以下のように表されます。
$$q(\mathbf{s}_{1:T}; \mathbf{o}_{1:T}) = \prod_{t} (\mathbf{s}_{t}; \mathbf{o}_{t})$$
そして、$p$と$q$のパラメーターを学習するために、variational lower bound (ELBO)の最大化を行います。
$$\begin{aligned} \mathrm{ELBO}[p, q] &=\mathbb{E}_{q}\left[p\left(\mathbf{o}_{t} \mid \mathbf{s}_{t}\right)\right]-D_{\mathrm{KL}}\left(q_{\mathbf{s}_{1}}\left(\cdot ; \mathbf{o}_{1}\right) \| p_{\mathbf{s}_{1}}\right) \\ -\mathbb{E}_{q} &\left[\sum_{t=1}^{T-1} D_{\mathrm{KL}}\left(q_{\mathbf{s}_{t+1}}\left(\cdot ; \mathbf{o}_{t+1}\right) \| p_{\mathbf{s}_{t+1}}\left(\cdot \mid \mathbf{s}_{t}, \mathbf{a}_{t}\right)\right)\right] \end{aligned}$$
報酬関数を定義するためのCycleGANによる変換
ここからが、論文で重要なポイントとなってきます。CycleGANには学習データとして、sourceとtargetのドメインのデータが必要です。これは本論文では、人間のデータがsourceでrobotのデータがtargetに当たります。多様なデータを集めることがより現実味のあるデータの変換が可能になることから、本論文では人間のdemonstrationと少量のランダムなデータの両方を集めました。またロボットに関するデータは、以下の図のように異なる設定のもとで、randomにactionを実行してデータを集めました。
これらのデータを利用しCycleGANを学習することで、人間のデータをロボットのデータに変換する事ができる関数$G$を得ることができます。この$G$を利用することで、そのまま模倣学習を行うことも可能のように思えますが、基本的に$G$の精度があまり高くないために良い結果が得られません。そこで、本論文では変換したデータ内で重要なフレームである、multi-stageタスクにおける各stageの完了時のフレームを有効活用しました。最終的なゴールとしては、下図が表すように、stage完了時の画像をinstruction imageとして、ロボットがタスクを実行する際に、人間によってこのデータが与えられることが想定され、ロボットがそれに沿って実行するようにします。これを達成するために、各stageごとの報酬関数を定義する必要があり、これはinstruction imageとなる各stageの完了時の画像をpositive example、その他のデータをnegative exampleとしてそのstageが完了したかどうかを判断するsuccess classifier $C_{s}$($s$はそのstageを表します。)を各stageごとに学習します。このsuccess classifierが報酬関数となり、RLの学習に利用されます。
Instruction Imageを利用したModel-Based RL
学習したsuccess classifierを報酬関数として利用することで、基本的にどのようなRLのアルゴリズムでも使うことは可能ですが、model-based RLはmodel-free RLと比べてデータ効率性が高く、本論文ではmodel-based RLを利用しています。そして、学習したモデルに対してmodel-predictive control (MPC)というcross-entropy method (CEM)を利用して最適なactionのsequenceを順々に探していく手法を用いて最終的にロボットが実行するactionを決めます。ロボットがステージ$s$を完了しようとする際に、plannerは$C_{s}$のlog probabilityを報酬関数として利用し、最終的にclassifierの閾値$\alpha \in[0,1]$を超えるようにactionのsequenceを探します。そして仮にそのstageが完了しなかった場合は、自動的にplannerが前のstageである$s-1$に戻るために$C_{s-1}$を利用するように切り替えることにより、元の状態にresetするようにします。これを行うことで、人間が毎回状態をresetする必要がなくなります。そして、classifierの閾値を超えロボットがそのstageを完了したと判断された場合、人間がそのstageが完了したかどうかのフィードバックを与え、成功した場合は、次のstageに移ります。失敗していた場合は元のstageに戻るようにplannerがactionのsequenceを探して、ロボットが実行します。これらのより詳しいアルゴリズムは以下にまとめてあります。また、人間がそのstageを解くのに失敗していると判断した場合は、ロボットがその場でrandomにactionを実行し、stageが成功をしたかを何度かqueryを投げます。これを行うことにより、stageを完了するために重要である領域に関する追加のデータを得ることができ、これらのデータを利用してmodelとclassifier のさらなる学習を行うことにより、より良いパフォーマンスを達成出来るようにしました。
実験
本論文での実験では、以下の3つについての答えを実験を通して得ようとしています。
1) AVIDが画像を入力としたtemporally extended taskを人間によるdemonstrationを利用して解くことができるか?
2) Instruction imageの利用と潜在空間におけるplanningに関してどのような利益をもたらすか?
3) ロボットのdemonstrationが無いことによって、問題が起こるのであれどのような問題が生じるか?
(1)を確かめるために、2つの複雑なtemporally extended taskにおいて提案手法であるAVIDを評価しました。(2)に関してはAVIDを、変換された全てのデータを用いて学習する方法と、pixel空間で直接planningを行う方法とで比較しました。(3)に関しては、仮にrobotのdemonstrationが与えられていた際に、模倣学習がどのような結果を出すかを評価し、AVIDと比較をしました。
本論文では、behavior cloning、Behavior Cloning from Observation (ただしrobotのobservationを入力とする)、AVIDを一部のデータだけではなく変換された全てのデータを用いて学習したFull-video ablation、model-based RLの一つであるDeep Visual foresightを利用したpixel空間上でのplanningを行うPixel-space ablation、複数のviewpointを利用したものではなく1つのviewpointだけを使用したバージョンのTime-contrastive networks(TCN)の5つと比較しました。各手法で利用したデータの種類や量は以下のテーブルにまとめられています。
実験に利用したロボットはRethink Sawyer robotで、自由度は7です。タスクは2種類あり、一つは下図左の3つのステージからなるcoffee makingのタスクと下図右の5つのステージからなるcup retrievalのタスクです。Coffee makingに関しては、30 human demonstration (900枚の画像)と500枚のランダムな画像を利用し、各stageのsuccess classifierの閾値$\alpha$は0.8としました。Cup retrievalは、20 human demonstration (600枚の画像)と300枚のランダムな画像を利用しました。success classifierの閾値は同様に0.8として実験を行いました。
結果
各手法における、各stageの成功率は下のテーブルにまとめられています。下のテーブルから、AVIDが両方のタスクの全てのstageにおいて一番高い成功率を出しているのがわかります。AVIDはどのタスクでも初めの方のstageにおいて高い成功率を出しているため、後々のタスクに与える影響が小さく、最後の方のstageでも高い成功率を達成することができています。
Full-video ablationでは、人間のdemonstrationをロボットのdemonstrationに変換したとしても、変換が正確ではないのと、AVIDのようにstageごとの学習が無いことから、ほとんどのstageで失敗しています。Pixel-based ablationは、AVIDと同様の手段で学習を進めていきますが、成功率がとても低いことから、潜在空間上でのplanningが効果的であることが伺えます。TCNに関しては基本的に複数のviewpointのデータを使うモデルであることから、この論文で想定している一つのviewpointからなるデータにおいては不向きということが結果からわかります。BCOはrobot demonstrationを利用して学習されていますが、後の方のステージになるほど成功率が低くなっているのがわかります。これは、最初の方のステージにて起きたエラーが後のステージに影響を与えてしまい、このエラーの積み重ねで後の方のタスクで多くの失敗が起きています。Behavior Cloningに関しては、AVIDよりもCoffee makingに関しては良い精度を出していますが、Cup retrievalに関しては成功率が後のタスクになるほど落ちています。これもタスクが長くなればなるほど、学習が難しくなるので、ステージごとに学習することが出来るAVIDの方が成功率が高くなることがわかりました。
AVIDの学習には各stageが成功か失敗かを判断するために人間によるフィードバックが必要ですが、これがどの程度の負担になるかを可視化したのが下のグラフになります。下のグラフに置いて、Positiveはstageの成功、negativeはstageの失敗、そしてNo feedbackはsuccess classifierの閾値を超えることができずに、自動的に前のタスクの成功状態に戻る、つまりresetを行うことを示しています。y軸はそれぞれの割合、そしてx軸は学習時に試みたstageの数の合計を表しています。学習を通して、coffee makingのタスクでは131回、cup retrievalでは126回のフィードバックのみしか必要としなかったことから、人間に対する負荷も少なく学習することができます。
まとめ
本記事では、人間によるdemonstrationを用いて、long-horizonなタスクを解くことが出来るAVIDという手法を紹介しました。この論文では、負荷が少ないとはいえ人間によるフィードバックを必要としているという問題点があり、タスクによってはより負荷がかかってくる可能性があると思います。よって、この人間によるフィードバックをいかにして無くすかが今後の方向性として重要だと考えられます。
類似論文レコメンド
Deep Imitation Learning for Complex Manipulation Tasks from Virtual Reality Teleoperation
written by Tianhao Zhang, Zoe McCarthy, Owen Jow, Dennis Lee, Xi Chen, Ken Goldberg, Pieter Abbeel
(Submitted on 12 Oct 2017 (v1), last revised 6 Mar 2018 (this version, v2))
Comments: First two authors contributed equally. Video available at this https URL
Subjects: Machine Learning (cs.LG); Robotics (cs.RO)
Paper Official Code COMM Code
Imitation from Observation: Learning to Imitate Behaviors from Raw Video via Context Translation
written by YuXuan Liu, Abhishek Gupta, Pieter Abbeel, Sergey Levine
(Submitted on 11 Jul 2017 (v1), last revised 18 Jun 2018 (this version, v2))
Comments: Accepted at ICRA 2018, Brisbane.
Subjects: Machine Learning (cs.LG); Artificial Intelligence (cs.AI); Computer Vision and Pattern Recognition (cs.CV); Neural and Evolutionary Computing (cs.NE); Robotics (cs.RO)
Paper Official Code COMM Code
To Follow or not to Follow: Selective Imitation Learning from Observations
written by Youngwoon Lee, Edward S. Hu, Zhengyu Yang, Joseph J. Lim
(Submitted on 16 Dec 2019])
Comments: Accepted at the Conference on Robot Learning (CoRL2019)
Subjects: Robotics (cs.RO); Artificial Intelligence (cs.AI); Machine Learning (cs.LG)
Paper Official Code COMM Code
この記事に関するカテゴリー