動物を模倣して4脚ロボットを学習させる!
3つの要点
✔️ 動物のモーションキャプチャーデータを用いて模倣学習
✔️ 環境に対するロバスト性と適応性の両立を実現
✔️ 前進や旋回などの複数の俊敏な動作を実機で再現
Learning Agile Robotic Locomotion Skills by Imitating Animals
written by Xue Bin Peng, Erwin Coumans, Tingnan Zhang, Tsang-Wei Lee, Jie Tan, Sergey Levine
(Submitted on 2 Apr 2020 (v1), last revised 21 Jul 2020 (this version, v3))
Comments: Published on arxiv.
Subjects: Robotics (cs.RO); Machine Learning (cs.LG)
code:
本記事で使用している画像は論文中のもの、紹介スライドのもの、またはそれを参考に作成したものを使用しております。
はじめに
本記事では、モーションキャプチャーで取得した動物の動きやアニメータの手がけた動作を元に、実世界において4脚ロボットに素早い動きを実装することに成功した論文を紹介します。
著者らによる説明動画も投稿されています。英語になりますが動画で実際の動きを確認できるのでこちらも是非確認してみてください。
導入
動物は非常に俊敏な動作を行うことができます。脚ロボットも俊敏な動作を実現するだけの物理的能力は持ち合わせていますが、そのためのコントローラを作成するのが非常に時間・労力のかかる作業になっています。そこで本論文では、動物の動きを模倣することで脚ロボットに俊敏な動作を学習させるための枠組みを提案します。
手法
本手法は以下の3つで構成されます。
- モーションリターゲット
- 動作の模倣
- ドメインアダプテーション
これらについて順番に見ていきたいと思います。
モーションリターゲット
本論文ではすでに実際の動物からキャプチャーしたモーションデータによる動作する3Dモデルがあるものとして話を進めます。実際にどのように3Dモデルを作るかという領域は扱っていないことに注意してください。なお動作する3Dモデルはモーションキャプチャーによって生成する必要はなく、アニメータが作成した3Dモデルからも学習することが可能になっています。
動物のモーションデータを使用するにあたり、骨格の違いによる影響を修正する必要があります。逆運動学を用いて元データをロボットの骨格に適合する形に変換します。
初めに、2つのモデル間で対応するポイントを指定します。
その後、各ポイントにおいて2つのモデル間の差異が少なくなるようにロボットの関節角度列q0:Tを定めます。これは以下のように表現されます。
上式ではロボットが基準姿勢から離れすぎないようにするための正則加項が加わっていることに注意してください。Wは各関節の重要度を表現するための対角行列になります。
動作の模倣
上記の手続きによって教師データとなる関節角度列q0:Tを手に入れました。次はこの教師データを用いて適切なアクションが取れるように学習させていきます。数式で表現すると方策π(at|st,gt)を学習することになります。gtは模倣すべき情報を表しており、gt=(q^t+1,q^t+2,q^t+10,q^t+30)になっています。ここでq^は対応する時刻の教師データです。サンプリング周期は30Hzであるため、gtは一秒後までの情報を持っていることになります。また状態st=(qt-2:t,at-3:t-1)となります。
報酬は複数要素の線形和で表現します。詳細は割愛しますが、教師データとの位置・速度のずれ等を考慮して計算されます。
ドメインアダプテーション
環境に対するロバスト性と適応性を両立しながら学習を進めていくための方法になります。本論文の中で最も重要なポイントです。
ドメインランダム化
実環境でも動作する方策をシミュレーション上で獲得するための手法として、Domain Randomization (ドメインランダム化)という手法が有名です。これは複数の異なる環境下でも機能する方策を手に入れることを促進するために、訓練中において環境のダイナミクスを変化させていくという手法になります。
この手法が持つ問題点としては、全ての環境下でうまく動作する方策が存在するとは限らないことや、シミュレーションにおける複数の環境ではロバストに動作しても、実世界においてはモデル化されていない要素の影響により失敗してしまう場合があること、などが指摘されています。
ドメインアダプテーション
先程述べたドメインランダム化の問題に対応するため、Domain Adaptation という手法を用います。この手法はエージェントが複数の環境下でロバストに動作する方策を学習しながら、新しい環境にうまく適合して動作することを可能にします。それでは具体的な手法の説明に移ります。
μを環境のパラメータとします。具体的にはモデルの質量や慣性モーメント、モータの遅延時間などが含まれています。学習中はこのμを確率分布pからサンプリングして決定します。
その後エンコーダを通してμは潜在表現zに変換されます。そしてRLをある状態s、環境の潜在表現zの下で最適な行動を求めるという風に定式化します。方策π(a|s,z)を求めるということです。つまり、通常のRLのように状態だけから行動を決定するのではなく、その環境の情報も加味して行動を決定するということになります。
しかしこのまま学習を進めてしまうと、あるμに過度に適合してしまい環境に対してのロバスト性を失うことになってしまいます。それを避けるため、エンコーダに制約を加えます。
M(=μ)とzの相互情報量に対して上限を設けることで、zが持つ環境の情報を制限します。つまり、目的関数は以下のように表現されます。
相互情報量Iを直接計算するのは難しいので、zの事前分布ρ(z)を導入し、Iの上界で代用します。なお実験に使用したρは標準正規分布になります。
さらに制約条件を緩和し式内に組み込むことで、最終的に以下の目的関数を得ます。
この(14式)の解釈に移りたいと思います。第一項は通常のRLと同じで累積報酬和を最大にするような方策πとエンコーダEの組を求めています。第二項はエンコーダの持つ情報量にペナルティを与えるものになっています。これはエンコーダと事前分布ρ間のKL距離を小さくすることでエージェントが参照できる環境に制限を加えていると解釈できます。また、βは学習される方策のロバスト性と適合性のトレードオフを表現するパラメータになっています。βを大きくするとロバストだが適応性のない方策の学習に繋がります。これはドメインランダム化のみの場合に対応しています。βを0に漸近させていくと、それぞれの環境に過適合してしまい実環境で能力が発揮できなくなってしまいます。
実世界へのデプロイ
シミュレーション上での手続きを確認したところで、次は実世界へのデプロイについて見ていきたいと思います。もちろん実世界上におけるzを知ることはできないので、推測することが必要になります。実際には以下の式のように割引報酬和を最大にするようなz*を求めます。
z*を同定するのにあたり、シンプルなオフ方策のRLアルゴリズムである advantage-weighted regression(AWR) という手法を用います。AWRはこの論文の第一著者が2019年に提案した手法で、今回はより良いzをサンプルできるような分布を求めるのに使用します。アルゴリズムの流れは上図に書いてある通りですが、各ステップについて詳しく見ていきたいと思います。
- 学習した方策を用意します。
- 初めにzの分布ω0を正規分布で初期化します。
- zと対応する累積報酬和を格納するためのリプレイバッファを用意します。
- (5-9)までをk=0,1,...,kmax-1としながら繰り返します。
- ωkからzkをサンプルしてきます。
- πとzkを用いて実機を動作させ、累積報酬和Rkを得ます。
- zk,Rkの組をリプレイバッファDに格納します。
- これまでの累積報酬和の平均を計算しvバーとします。
- 大きな累積報酬和を与えるzをサンプルした分布の重みを大きくしながら、これまでの分布の対数尤度に関する加重平均をとって新たな分布を作成します。
なお(9)に関しては、ωがガウス分布であるため解析的に計算することは可能ですが、そうすると準最適解に早期収束するため、実装上は最急降下法を用いて数値的に計算しています。
結果
上記の手法を用いて、Laikago ロボットに様々な動きを学習させることに成功しました。
学習したのは動物のモーションキャプチャーデータを模倣する動作5つ(接頭辞にDogがついてるもの。Dog Pace など)とアニメータの作成したデータによる動作5つによる計10通りの動作です。
それぞれの動作に対して、
- ドメインランダム化さえも行っていない場合
- ドメインランダム化のみを行った場合
- ドメインアダプテーションで学習したが実世界でzの同定を行っていない場合
- 実世界でzの同定も行った場合
の4通りにおけるパフォーマンスの比較を行いました。
下図を見てもらうとわかるように、ほとんどすべての場合においてzの同定まで行う手法が最も優れた性能を発揮しています。
さらに興味深いのは、アニメータの作った動作の模倣(右側5つ)に関しては単純な手法とドメインアダプテーションに差異が少ないのに対して、実際の動物の動きを模倣している場合(左側5つ)はzの同定まで行った場合にかなり性能が向上しているという事です。つまり本手法は教師データにノイズが入る場合や複雑な動作を模倣する場合でも高い性能を発揮できるという事がわかります。
まとめ
環境に対するロバスト性と適応性を両立することで、動物の模倣により多様な俊敏な動作を4脚ロボットで実現する枠組みを見てきました。実際の動物のような俊敏な動きをRLにより実装できたのは素晴らしい成果ですがまだ課題はたくさんあります。ハードウェアやアルゴリズム上の限界により、跳躍や走行のようなダイナミックな動作は実現させることができていません。これらの振る舞いを再現することに成功するような探索テクニックの確立は今後脚ロボットの俊敏性を非常に高めることになるでしょう。また、学習できた動作も人力で調整されたコントローラに匹敵するほどの安定性は獲得できていません。安定性の改善も実世界での応用を考えた時に非常に意義のあるタスクになります。さらにビデオのようなモーションクリップ以外のソースからの学習に成功すれば教師データの種類が大幅に増加することになるため、非常に重要なポイントです。
この記事に関するカテゴリー