Real2Sim2Real 実世界からシミュレーションを経て実世界へ

34,593 文字

Real2Sim2Real
Like 👍. Comment 💬. Subscribe 🟥.🏘 Discord:

テストフィードです。YouTubeでテストしています。広告を見なければなりませんね。それでは始めましょう。YouTubeでライブ配信中です。マークBさん、こんにちは。次はXでの確認が必要ですね。リルkmさん、サラさん、こんにちは。Xでもライブ配信できているか確認しましょう。エラーが出ているようですが、リフレッシュしてみます。
やっと配信できましたね。ティムさん、マークBさん、こんにちは。今日はロボットについて話す予定です。ティムさん、配信開始に間に合いましたね、おめでとうございます。Xでのテストも成功です。サガールさん、こんにちは。それでは始めましょう。今日もゴンドールの角笛を用意しています。
今日のストリームのテーマは「real to sim to real」です。これは最近よく見かける新しいロボット工学の手法で、以前からあるsim to realの発展形です。今回は主にこの論文に焦点を当てたいと思います。「ASAP: Aligning Simulation and Real World Physics for Learning Agile Humanoid Whole Body Skills」という論文です。今週話題になった論文で、ジーワイのファンとして、またNVIDIAとカーネギーメロン大学の論文ということで、取り上げないわけにはいきませんでした。
クラシックなスタイルに戻って、この論文といくつかの関連論文を見ていき、ロボット工学の今後と、このreal to sim to realが私たちが期待していたものなのかどうかについて話していきたいと思います。大学院ではsim to realを研究していましたね。シミュレーションは一般的なアプローチでしたが、これらの新しい手法は非常に優れています。
まずはこの論文から始めましょう。「Improving Vision-Language Action Models with Online Reinforcement Learning」2025年1月28日の論文です。上海交通大学、UCバークレー、清華大学の共同研究です。この論文では、大規模視覚言語モデル(VLM)を教師あり微調整(SFT)を使って視覚言語行動モデル(VLA)に変換しています。
VLAについては今週、Physical Intelligence社がオープンソースの視覚言語行動モデルであるPi0をリリースした際にも話題になりました。この視覚言語行動モデルというコンセプトが重要です。VLMはマルチモーダル表現を処理・生成します。マルチモーダルは様々なモダリティを指すことができますが、VLMの場合は特に言語と画像を指します。VLAはこれを拡張して、行動とオブザベーショントークンを組み込んでいます。
状態トークンや状態、あるいはオブザベーションというのは、例えばロボットの関節角度などの実際の状態や、視覚情報から得られる観測値などを指します。行動トークンはモーターコマンドシーケンスなどを指します。これらの定義は厳密ではなく、状態、観測、行動といった概念は使用するロボットやシミュレーション環境、実機によって大きく異なります。
この論文に戻りましょう。視覚言語モデルあるいは視覚言語行動モデルを強化学習で改良しています。この図は、強化学習を使った視覚言語行動モデルのカリキュラムやパイプラインがチャットボットと非常に似ていることを示しています。大規模言語モデルを事前学習して、この場合は事前学習済みの視覚言語モデルから始めます。
実は視覚言語モデル自体も単一のものではありません。多くの視覚言語行動モデルは、事前学習済みの大規模言語モデルと事前学習済みの視覚エンコーダーを組み合わせ、その間にアダプターを訓練して作られています。視覚言語モデル自体が大規模言語モデルと視覚エンコーダーを組み合わせたフランケンシュタインのような存在なのです。
しかし、事前学習済みの視覚言語モデルがあれば、それをロボット工学のデータセットで微調整できます。これにより、望む観測空間と行動空間の入出力ができるようになります。その後、強化学習でさらに調整するわけです。これは事前学習済みLLMを取り、教師あり微調整で指示チューニングを行い、最後に人間からのフィードバックによる強化学習を加えるのと似ています。
ジュランマエトさん、ダンさん、こんにちは。アップルもロボット工学の論文を発表しましたね。実際に準備してあります。「Elegant, Expressive and Functional Movement Design for Non-Anthropomorphic Robot」というアップルの珍しいロボット工学の論文です。最後に取っておきました。real to sim to realとロボット工学の行く末について徐々に話を進めていきたいと思います。
この図では、ステップ数と成功率を示しています。ステップ数は強化学習環境での訓練時間を表します。視覚言語行動モデルを使用した場合、direct PPO(近位政策最適化)と書かれていますが、正確な意味は分かりません。同じアーキテクチャをゼロから始めるという意味かもしれません。
線の太さは分散を表しています。PPOを使うと高い成功率を達成することもあります。最も成功した実行では上限に近い約50%の成功率に達しましたが、その後は横ばいになっています。しかし、同じアーキテクチャで、ただ乱数シードが少し異なるだけで、パフォーマンスが全く上がらず、むしろ悪化することもあります。
彼らが主張したいのは、教師あり微調整を行ってから強化学習を行う2段階アプローチが、強化学習を直接行うよりも優れているということです。この論文で他に示したい点は…そうですね、ここです。彼らのVLA(視覚言語行動モデル)は事前学習済みのVLMバックボーンで構成されています。
このVLMも、画像エンコーダーを訓練し、言語モデルを別途訓練して組み合わせ、パラメータの凍結や勾配の伝播、解凍などを行う多段階の訓練プロセスの産物です。事前学習済みVLMと軽量な行動ヘッドを持っています。ヘッドはニューラルネットの最後の部分、最上層を指し、ロボットで実行する実際の行動を出力する単純な多層パーセプトロンです。
行動は関節の目標位置などになります。探索と教師あり学習のステージを繰り返して、VLAモデルを効果的に改良しています。教師あり学習だけを行ってから強化学習を行うのではなく、強化学習、教師あり学習、強化学習、教師あり学習と交互に行っています。
損失関数に2つの異なる要素を持たせ、それらの間のハイパーパラメータでトレードオフを調整するのではなく、訓練パイプラインを交互に切り替えているのです。つまり、このタイプのバッチを供給し、次に別のタイプのバッチを供給するという具合です。
VLMは探索ステージでは訓練を安定させるために凍結され、教師あり学習ステージでは訓練可能になります。ロボットは画像を受け取り、それは視覚トークンのシーケンスに変換されます。ここでVLMを組み合わせる必要があります。画像エンコーダーからの出力を大規模言語モデルが理解できるトークンに変換する必要があるのです。
そして、プレーン英語で書かれた指示があり、これは標準的な英語テキストトークンです。これらをVLMに入力すると、トークンのシーケンスが出力され、それらのトークンはMLPに入力されて行動を出力します。
VLMアクションヘッドでは、強化学習中にVLMへの勾配の流れを許可していません。これは、強化学習からの勾配をVLMに流すと、VLMが過学習を起こし、事前学習で得た知識を破滅的に忘れてしまう可能性があるためです。VLMを凍結して、その一般的な知能を失わないようにしたいのです。勾配はアクションヘッドにのみ流し、教師あり学習時にはVLMに勾配を流すことができます。
この論文で最後に示したいのは、新しいタスクでの強化学習プロセスです。VLMの凍結解除とVLMの凍結、そしてゼロからの学習を比較しています。同じアーキテクチャを持ち、初期化してPPOと強化学習から直接勾配を流す場合です。
ゼロからの学習でもボタン押しは学習できます。ボタン押しは、ピック&プレイスのような、物体に向かって移動するだけの非常に簡単なロボット工学タスクです。おそらく強化学習タスクの中で最も簡単なものなので、ゼロからの学習でも理にかなっています。
しかし、他のタスクでは、ゼロからの学習(緑の線)は全く学習できていません。ドアの開閉、窓の開閉などの複雑なタスクでは機能しません。VLMを凍結解除した場合と凍結した場合の違いを見ると、凍結解除するとすぐにパフォーマンスが悪化することがわかります。
パラメータに勾配を流すことで、理論的にはそのタスクにおいてパラメータが改善されるはずですが、VLMには事前学習された知識が大量にあり、それを比較的低品質で少量のデータで上書きしてしまうため、パフォーマンスが低下するのです。
次に「Reconciling Reality Through Simulation: A Real-to-Sim Approach for Robust Manipulation」という論文に移りましょう。2024年11月24日の論文です。この論文は少し古いのですが、DeepResearchを使って見つけました。real to sim to realに関する論文を探すようにプロンプトを入力したところ、この論文が見つかりました。
この論文では、模倣学習には方針を学習するために大量の人間の監督が必要だと述べています。模倣学習は、先ほどのロボット工学データセットでの教師あり微調整と同じです。通常、人間が収集した軌道のデータセットを使用します。人間がロボットを遠隔操作して、ブロックを20回拾い上げるといった小規模なデータセットです。
そのデータセットで教師あり微調整を行うことを模倣学習と呼び、行動クローニングとも呼ばれます。人間の行動をクローニングするからです。基本的には人間が収集したデータセットでの教師あり学習です。一方、強化学習は環境を自律的に探索します。
これが強化学習と教師あり微調整の根本的な違いです。強化学習では、実際に環境と相互作用して経験を収集し、その経験を使って勾配を更新します。データセットは人間の教師からではなく、実際の環境から来ています。
そのため、強化学習はサンプル効率が悪く、訓練が非常に困難です。自律的な探索から得られるデータセットの品質が予測できないためです。ロボットが壁に頭を500回ぶつけるだけかもしれません。そこから有用な勾配を得たり、有用な行動を学習したりすることは難しいでしょう。
実際に役立つ行動を学習できるようなデータセットを収集するための探索を得ることは難しい場合があります。この論文では、Real2(彼らのシステムの名前)は、少量の実世界データから作成したデジタルツインシミュレーション環境での強化学習を通じて、実世界の模倣学習方針を実現します。
彼らはこれをreal to sim to realと呼び、実世界のデモンストレーションをシミュレーション環境に取り込むための新しい逆蒸留手法を持っています。このパイプラインは具体的にどのようなものでしょうか。
まず環境の3D再構成から始まります。Polycamのようなツールで環境をスキャンします。Polycamについて見てみましょう。これが最も良い例でしょう。PolycamはiPhoneとAndroidで動作するウェブサイトとスマートフォンアプリです。フォトグラメトリと呼ばれる技術を使用して、実世界の環境をスキャンできます。
部屋の内部などをスキャンでき、非常に優れています。なぜこれらの技術が今可能になり、以前は不可能だったのかと聞かれることがあります。フォトグラメトリ自体は数十年前からある技術です。なぜ今になって行われているのでしょう。理由の一つは、このようなツールが時間とともに使いやすくなってきたことです。私がロボット工学研究をしていた頃は、ロボット環境全体をスキャンしてデジタルツインを作成するのは大変でした。ツールが十分に整っていなかったのです。時間がかかり、うまく統合できませんでした。
今では、Polycamのようなツールが非常に優れていて使いやすくなり、ロボット環境を効果的にスキャンできます。この論文では、ロボットが相互作用する環境やオブジェクトをすべてスキャンしています。また、関節の動きなども必要ですが、これは依然として手作業のプロセスです。
シーンを作成する際、オブジェクトや平面、物理的な関係性を手動で設定する必要があります。例えば、これはドアであり、これは外に開くヒンジである、といった具合です。これはビデオゲームでよく見られるエンティティコンポーネントシステムを作成しているのです。
物体、床、物理特性、光の反射など、全て手作業で設定する必要があります。しかし、スキャンツールが改良されていったように、スキャンからユニバーサルシーン記述への変換ツールも改良されていくでしょう。2030年には、音声で指示を出すと、エージェントが自動的にポイントを切り出し、ドアとしてラベル付けし、ヒンジを設定するようなツールができているかもしれません。
スマートフォンでスキャンしたものを10分で関節付きUSDに変換できる世界が想像できます。この論文の良い点は、実際にかかった時間を示していることです。3D再構成のGUIユーザー調査の内訳では、シーンの作成にかかった時間が約40分とされています。
これは大きな進歩です。多くの人がこの点を見過ごしています。環境全体をスキャンして、多くのロボット工学論文で見られるような、ただの平面の上に立っているだけの環境よりもはるかに優れたデジタルツインを作成できるようになったのです。
ダンさんが言うように、フォトグラメトリは光の測定であり、より広い概念です。Nerfやその他、この技術を呼ぶ方法は数多くありますが、使用する特定の技術によって異なる用語があります。再構成はより具体的な用語です。エドさん、こんにちは。
シーンができたら、ステップ1、2、3に進みます。まず、実世界のデモンストレーションDを使用して、視覚ベースの方針を教師あり学習で訓練します。これは模倣学習の部分で、人間がジョイスティックでロボットアームを操作して物体を拾うといった実世界のデモンストレーションのセットを使用します。
これらの軌道は、エンドエフェクタのポーズEを行動として持ちます。ポーズはエンドエフェクタのポーズを意味し、基本的に手の位置です。手の位置はXYZ座標と、クォータニオンで表現される向きを持ちます。これが目標となります。
行動がエンドエフェクタポーズであるということは、手をここに移動させたいということです。例えば、手がここにあって、行動がそこを指している場合、ロボットにその方向に移動するように指示していることになります。
エンドエフェクタポーズを行動として使用する場合、逆運動学が必要になります。これは、そのポーズに移動するために必要な関節角度を計算することです。これは長年解決されている問題で、エンドエフェクタポーズを実際の関節角度に変換する一連の数学的操作があります。
多少の問題はありますが、一般的にエンドエフェクタポーズの方が扱いやすいです。より汎用的だからです。ロボットが6関節か7関節かに関わらず、エンドエフェクタポーズでのある程度の転移が可能です。一方、関節空間での行動だと、異なる関節構成を持つロボット間での転移は難しくなります。
Xはオブジェクトのポーズです。ここには少しオラクルデータが含まれています。ロボット工学タスクでは、ロボットにオブジェクトの正確な位置を教えることがあります。このOTポイントクラウドは、強化学習方針に対して少し不正をしていることを意味します。
ニューラルネットは、これらのオブジェクトのXYZ位置を知っているのです。これは一種のズルですが、ラボにトラッキングシステムがあれば、実世界でもロボットにその情報を提供できます。しかし、理想的にはこれを取り除きたいところです。
ここで行動クローニングを行い、これらのオラクルな人間の軌道を使って、ポイントクラウドとエンドエフェクタポーズを消費し、別の目標エンドエフェクタポーズを出力する視覚ベースの方針に勾配を流しています。マップ…そうです、探していた単語です。
ただし、ここではポイントクラウドのみを使用していると思われます。おそらくIntel RealSenseを使用しているのでしょう。次に、シミュレーションでレンダリングされたポイントクラウドに対して視覚ベースの方針をロールアウトし、オブジェクトポーズを持つ15の特権的なデモンストレーションのセットDsimを収集します。
ここで、実世界のデモンストレーションから得られた行動クローニング方針を取り、シミュレーションでロールアウトします。ロールアウトは、強化学習の用語で推論を指します。このニューラルネットをシミュレートされたロボットで推論し、何が起こるかを見るのです。
視覚ベースの方針を行動の生成に使用し、それを実行して2番目のデータセットDsimを収集します。これはシミュレーションなので、ロボットが実際にオブジェクトを拾ったかどうかなど、オラクルのような知識を持っています。オブジェクトのXYZ位置が上がったか、実際に触れたかなどを確実に検証できます。
これには抜け道があり、シミュレーションでの物理計算がメッシュベースのため、オブジェクトをテーブルに押し込むと、最終的にオブジェクトとテーブルの間の力が大きくなりすぎてオブジェクトが飛び出すことがあります。
シミュレーションでのピック&プレイスタスクでは、ビデオゲームのような物理エンジンのグリッチを利用して、オブジェクトを他のオブジェクトに押し込んで飛び出させるというチートコードを学習することがあります。
しかし、それでもシミュレーションで方針をロールアウトし、成功した軌道と失敗した軌道の例を収集することができます。これはリプレイバッファと呼ばれ、通常、強化学習方針でシミュレーションで経験を収集する際に使用されます。
そして、もう一度微調整を行います。スパース報酬を持つ強化学習で堅牢な状態ベースの方針を訓練し、探索にバイアスを与え、実世界への転移の事前分布としてDsimに適合するBC損失を追加します。
シミュレートされたシーンでのオブジェクトポーズ、エンドエフェクタポーズが状態ベースの方針に入力されます。ここでは視覚ベースの方針が視覚情報を消費して行動を生成しましたが、ここでは状態ベースの方針のみを持っています。
なぜ状態ベースの方針だけが必要なのでしょうか。これは後退のように感じませんか。情報を失ったように見えます。理由は、実世界に戻ったときにシミュレーションで持っていたようなオラクルな知識がないためです。
シミュレーションではシーン内のすべてのオブジェクトの位置を知っていましたが、実世界ではそうではありません。固有受容感覚情報(ロボットの関節)は持っていますが、それだけです。オブジェクトの位置を教えてくれるマップシステムがあるかもしれませんが、そこにも誤差があります。
real to simからrealに戻るとき、シミュレーションで持っていた特権的な情報の一部を取り除く必要があるのです。他に見せたいものがあるか確認します。人間の方針については説明しました。さっきの部分も説明しました。
ここを見せたいですね。これは彼らの模倣学習と、彼らがreal2と呼ぶreal to sim to real技術の結果を比較したものです。劇的に良い結果が出ています。
ポーズのランダム化、ディストラクター、外乱という異なるタイプの敵対的技術があります。ポーズのランダム化は、ロボットとオブジェクトの位置を少しランダムに変えることです。ディストラクターは、テーブル上のオブジェクトを拾う際に、他のランダムなオブジェクトもテーブルに置くことを意味します。
ディストラクターは非常に重要です。多くのロボットのピック&プレイス論文では、テーブル上に何もありません。テーブル上に1つしかないものを拾うのは簡単です。ディストラクターオブジェクトを追加することは、Boston Dynamicsの人々がロボットを蹴るのと同じような意味での外乱です。
純粋な模倣学習または行動クローニングとこのreal to sim to realの違いを見てください。90%対30%、10%対90%、80%対0%という成功率です。行動クローニングは良くないことがわかります。
これは私がこの問題に取り組んでいた頃の経験とも一致します。ピック&プレイスのような作業では、ディープラーニングが登場した当初は模倣学習と行動クローニングが非常に人気でした。強化学習もありましたが、あまりうまく機能しませんでした。
現在、私たちは本当に効果的な手法が見え始めているところです。その大きな要因として、環境全体をスキャンして捉えることができるようになったことが挙げられます。環境全体をスキャンして捉えることで、シミュレーション世界と現実世界の差、つまりsim-to-realギャップが小さくなっているのです。
以前は、このような形で全体のシーンを作り出す能力がなかったため、sim-to-realギャップは克服するには大きすぎるものでした。
Meta AIが今日、Habitat Simに人々を追加することについての動画を公開しましたね。ディストラクターとしての人々は実際の問題です。私の経験では、ラボにロボットがあり、視覚に基づいて動作していましたが、収集されたデータには決して人々が周りに立っている状況が含まれていませんでした。
そのため、お客様にデモを行う際に10人くらいがロボットの周りに立っていると、得られる視覚情報が訓練時とは全く異なってしまいます。訓練時にはラボに1人しかいなかったため、ロボットは1人だけがいる状況での動作に慣れていました。
10人がいて、カメラに多くの動きがある状況は、視覚空間の全く異なる部分です。そのため、ロボットの動作が異なってしまいます。シミュレーションでディストラクターを追加して、実世界でのディストラクターにも対応できるようにする必要があります。
少し水を飲んで、次の論文に移りましょう。次は「VR-Robo: A Real-to-Sim-to-Real Framework for Visual Robot Navigation and Locomotion」という2025年2月3日の論文です。いくつかの中国の機関からの研究です。
これも非常によく似たアプローチです。RGBのみの方針の訓練と展開から始まります。RGBのみとは、深度センサー、LiDARセンサー、SLAMを使用しないことを意味します。SLAMは同時位置推定と地図作成で、視覚オドメトリを使用して3D環境を作成しますが、ロボットはそれを行っていません。
単に画像を取得し、方針が行動を出力するだけです。画像は3チャンネルのRGBです。エゴセントリックなナビゲーション、3D Gaussianとスプラッティングベースのマルチビュー画像からのシーン再構成、そしてメッシュベースの物理的相互作用があります。
この論文の重要な点は、2つの異なるタイプのシミュレーションを使用していることです。標準的なシミュレータは、実世界環境の視覚的忠実度と複雑な幾何学を再現するのに苦労します。GaussianとスプラッティングはReal-to-Simデジタルツインを作成するための有望な解決策として登場しました。
これはGaussianスプラッティングではありませんが、似たようなもので、スマートフォンの写真から、このようなデジタルツインを作成します。real to sim to realはハイブリッドなアプローチで、Gaussian-splat-meshハイブリッド表現から始まります。これはどういう意味でしょうか。
問題は、これらのGaussianスプラットには、オブジェクトや平面の概念がないということです。これが床で硬くて平らで立てる場所だとか、これが人の腕で柔らかくて押すと動くといった物理的な性質がありません。物理特性がないのです。
しかし幸いなことに、私たちには多くの物理演算エンジンがあります。ビデオゲームの物理演算は非常に長い間開発されてきました。ビデオゲームでの典型的な表現は、テクスチャ付きのメッシュです。この場合テクスチャは必要ありませんが、メッシュ間の物理演算については豊富な蓄積があります。
2つのメッシュ間の摩擦を計算したり、メッシュ同士が押し合う様子を再現したり、変形可能なメッシュを扱ったりできます。ゲームエンジンには完璧ではないものの、実世界の十分な近似となる物理演算が実装されています。
メッシュの物理演算スタックは、GaussiansやGaussianスプラットの物理演算スタックよりもはるかに進んでいます。Gaussiansでも、剛体や摩擦、変形などの物理特性を扱う研究は始まっています。
アリオさんから、ストリームのタイトルについて質問がありました。real to sim to realは、彼らが書いているものと基本的に同じですが、私は「to」の代わりに数字の2を使用しました。sim2realのように、クールな書き方では「to」の代わりに数字の2を使います。英語の「two」と「to」が似ているためです。
sim to realはsim2realと書くことができ、real to sim to realもreal2sim2realと書くことができます。後者の方が見た目が良いと思います。それが要点です。
この論文に戻りましょう。Gaussian-splat-meshハイブリッドで対話的なシミュレーションを構築します。先ほどの論文と同じように、デジタルツインを再構成していますが、デジタルツインの2つの少し異なるバージョンを持っています。
視覚的忠実度が高く、非常に現実的に見えるGaussianバージョンと、シミュレートされたロボットがこのスロープを上ることを可能にする基礎となるメッシュシーンです。残念ながら、このメッシュシーンは手作業で作成する必要がありました。
この論文を見ると、環境は1つだけです。先ほどの論文のように複数の異なる環境で実験結果を示すのではなく、1つの環境だけです。これは、実世界の表現と完全に一致するメッシュ表現を人間が作成する必要があったためです。
これを自動化する研究は始まっています。Apple Vision ProやQuest 3などのVRヘッドセットを使用すると、すでにこのようなことを行っています。環境をスキャンして仮想版を作成し、平面を認識して平面を配置し、床を認識して平面を配置し、ソファを認識してメッシュを作成します。
これにより、混合現実の世界でデジタルキャラクターがソファに座ることができるようになります。ソファに特定の境界とメッシュ表現があるためです。そこで、デジタルツインを作成し、写実的で対話的なシミュレーションを持つことができます。
以前は写実的なシミュレーションだけでしたが、ここでは写実的で対話的なシミュレーションがあります。このスロープを実際に上ることができます。視覚観測領域のランダム化では、領域内の変数をランダムに変更します。
例えばガウシアンスプラットの場合、照明を変更することができます。ガウシアンスプラットには球面調和関数という要素があり、これは異なる視点からどのように見えるかを決定します。光沢のある物体は異なる視点から見ると、ある部分が突然光を反射して異なる見え方をするといった具合です。
メッシュベースの表現でもドメインランダム化は可能です。メッシュベースの表現における摩擦係数を変更することができます。例えばこのスロープのシーンを作成した人が決めた摩擦係数に対して、シミュレーターを起動するたびに0.1から0.9の間でランダムな値を選ぶというドメインランダム化が可能です。これにより様々なシミュレーション環境が得られ、シミュレーション環境で訓練されたポリシーが異なる摩擦係数に対しても一般化できることが期待できます。
シミュレーションから実世界へのポリシーの展開について説明します。ポリシーはアクションを生成し、それがシミュレーターに入力されます。シミュレーターは観察値やロボットの状態を生成し、それがポリシーにフィードバックされます。観察値はRGB画像で、ポリシーは新しいアクションを生成し、このサイクルが繰り返されます。
ここでは3Dガウシアンスプラットからシミュレーターへの矢印が示されています。なぜこれが必要なのでしょうか。ガウシアンスプラットは物体の写実的な画像を生成する方法ですが、そのためにはポーズ情報が必要です。例えばこのような場合、視点によって見え方が変わります。ガウシアンスプラットでレンダリングするためには、ポーズ情報を与える必要があります。
幸いシミュレーション内では、カメラの正確な位置と向きを知ることができます。これによりその視点から写実的なガウシアンスプラットを生成し、ドメインランダム化を加えてRGB画像としてポリシーに入力することができます。
実世界へのゼロショット転移について説明します。ゼロショットとは、実世界での追加の微調整が不要という意味です。すべてシミュレーションで訓練され、そのまま実世界に転移できるのです。
では、これはどのように実世界からシミュレーションを経て実世界へと繋がるのでしょうか。先ほどの例と同様に、実際の人間のデモンストレーションから行動クローニングを行い、シミュレーションで訓練し、実世界に展開するという流れです。この場合は、ガウシアンスプラットを実世界から作成してシミュレーションを構築し、そこで訓練して実世界に展開するという意味で、実世界からシミュレーションを経て実世界へのアプローチとなっています。これはこの論文での実世界からシミュレーションを経て実世界へのアプローチとは少し異なりますが、基本的な考え方は同じです。
つまり、これらの論文の根底にある中心的なアイデアは、実世界に近いシミュレーションを作成する技術が向上したことで、以前はできなかったシミュレーションでの作業が可能になったということです。
今日実際に議論したい論文に移りましょう。少し飲み物を飲ませてください。
Brandon、論文の解説を楽しんでいただき嬉しいです。Dan、スパースボクセルオクトツリーやOpenVDBレベルセット、または同様のものを幾何形状として使用する論文について聞いたことはありますか?メッシュは間違った選択のように思えますが、専門家ではないので。
オクトツリーについて説明しましょう。オクトツリーはデータを効率的に整理する方法の一つで、グラフのようなデータ構造です。タイプしながら説明した方が良いでしょう。
情報を保存する際は、その情報に素早くアクセスできる方法で保存したいものです。例えばPythonの辞書型のように、キーを使って特定の情報を取り出すことができます。これはキーと値のペアです。その背後には、コンピュータメモリ内で高速なアクセスを可能にする非常に一般的なデータ表現があります。
オクトツリーも同様のことを3D空間で行います。3D情報を保存しますが、解像度が階層的に構築される方法で保存します。まずボクセル(3D空間における立方体)のどの部分かを指定する必要があります。3次元空間では境界のある領域は立方体のように見えます。
オクトツリーは、立方体の中の立方体の中の立方体というように情報を保存し、高速なアクセスと処理、効率的な保存を可能にします。
しかし、なぜメッシュを使用しているのでしょうか?オクトツリーは3D情報を保存する特殊な方法です。ガウシアンスプラットとは異なり、オクトツリーは情報を保存しません。ガウシアンスプラットは点の集合で、各点に位置情報はありますが、それらは単なる大きな点の集合です。
ガウシアンスプラット内でもオクトツリーに似たことを行っています。特定のタイルをレンダリングし、タイル内のスプラットの位置を認識しています。しかし、なぜオクトツリーを使用しないのでしょうか?
それは、ガウシアンスプラットが視覚的な忠実度に優れているからです。それがガウシアンスプラットから得たいものです。一方、メッシュは物理的な相互作用に優れています。これはビデオゲームの物理エンジンの基礎となっているからです。
数十年にわたり、多くの賢明な人々がビデオゲームで物体を弾ませたり、変形させたり、摩擦を適切にしたりするよう努めてきました。そのため、メッシュベースの表現が最高のシミュレーション物理を持っているのです。これは必ずしも物理のための最良の3D表現だからではありません。
実際、ガウシアンスプラットは最終的に現在のメッシュベースの物理よりも優れた物理を持つようになると考えています。しかし、現在のメッシュベースの物理は数十年にわたるエンジニアリングの成果です。そのため、メッシュを使用しているのです。
メッシュの物理、つまり衝突や摩擦、変形などは、多くの人々が非常に高速で適切に動作するように工学的な努力を重ねてきました。一方、オクトツリーのような表現で、二つの物体を衝突させて跳ね返る場合、その物理はどのように機能するのでしょうか?誰がその物理を実装したのでしょうか?
メッシュは光線追跡を提供し、これは衝突検出アルゴリズムで一般的に使用されます。また、物体間の力を決定する方法も提供します。メッシュの貫通具合を見て、実際に押し返す力を決定することができます。
摩擦も同様です。物体間の実際の接触面積を決定でき、それによって物体間の摩擦を決定することができます。
しかし、この論文に話を戻しましょう。これは私が本当に話したかった論文です。pratiqueさん、こんにちは。先ほど言ったように、これはGY Fanの論文で、NVIDIAとカーネギーメロン大学の研究です。デモが素晴らしいので、ぜひ取り上げたいと思います。
まずデモから始めましょう。これが最も印象的な部分だと思います。クリスティアーノ・ロナウドがゴール後に行う、高くジャンプして両膝で着地するパフォーマンスや、コービー・ブライアントのジャンプシュートなど、これまでで最もアジャイルな人型ロボットの動きの一つを見ることができます。本当に急速な進歩を遂げています。
まず、このロボットについて説明しましょう。これはUnitree G1です。実際にはとても小さいロボットです。人間と比べると最も小さいロボットの一つです。しかし、これは実は利点でもあります。
結局のところ、Unitreeの人々は、これが実際に作業を行うロボットになるとは考えていません。これはより研究プラットフォームとしての位置づけです。Unitreeがこのロボットに期待しているのは、倉庫で7億個の箱を持ち上げることではありません。このロボットはこの論文のような研究に使用されることを想定しています。
そして、このロボットの第2版、第3版、第4版、つまりGR2、GR3、GR4が、実際に箱を持ち上げることができるように少し大きくする必要があるかもしれません。しかし、研究プラットフォームとしては、小さい方が良いのです。
小さければ、より安価で、モーターも安価にでき、消費電力も少なく、輸送も容易です。そのため、小型化には実際に賛成です。
この写真で気に入らない点は、誤った印象を与えることです。ここにはさまざまなロボットが表示されています。すべてアメリカのロボットです。AgilityのDigit、Boston DynamicsのAtlas(これは古い油圧式ではなく電動式のもの)、Optimus、AponicのApollo、Figure、そしてNeoがあります。
Neoにはノルウェーの旗が付いていますが、これは元のチームがノルウェー出身だからです。しかし、この時点で1Xは基本的にアメリカの企業です。AIに関する作業はすべてサンフランシスコで行われていると思います。つまり、これは基本的にアメリカのロボットです。
しかし、中国の人型ロボットについては触れていません。少なくとも4〜5種類の異なる中国の人型ロボットがあります。この写真は人型ロボット工学がアメリカのロボットによって支配されているように見えますが、実際には中国の人型ロボットの方がアメリカの人型ロボットよりもはるかに多いのです。
現時点で最高の人型ロボット、つまりこのG1について考えてみましょう。これらはまだ研究プラットフォームに過ぎませんが、G1が最高のものだと思います。
しかし、それは論文の話です。実際に何が起こっているのか見てみましょう。素晴らしいデモと素晴らしいチームを見ました。では、ここで実際に何が起こっているのか詳しく見ていきましょう。
これからは始めません。これは少し紛らわしいと思います。ここから始めたいと思います。これはどのように実世界からシミュレーションを経て実世界へと繋がるのでしょうか?ストリームの名前は「実世界からシミュレーションを経て実世界へ」です。この論文ではどのようにそれを実現しているのでしょうか?
実世界のビデオから人間の動きを取得することから始まります。次に、TRAMを使用してこれをSMPLに変換します。SMPLは一種の標準で、基本的にこの人間のデジタルバージョンの定義です。ポーズの追跡と検出に使用されます。
ポーズの追跡と検出は、RGBビデオ、あるいはRGBビデオのシーケンス、あるいは多視点ビデオ、または何らかの実世界の情報、実世界の視覚情報を取得し、同じ方法で動く人間のデジタルバージョンに変換する問題です。
このSMPLの全体的な目的は、誰もが使用できる標準フォーマットを作成することです。そのため、このマップスタジオでジャンプを記録すると、他の人がそのプロジェクトで使用できるのです。これは一種の標準です。
実世界のビデオからこのSMPL動作を取得します。この時点で、深層学習ベースのモデルを使用することになります。RGBの単眼画像からこのSMPL動作(これは基本的に各関節の値とその時間経過)に変換する方法は、何らかの深層学習モデルTRAMを使用します。
次に、その動作を取得し、実質的にRLのターゲットとして使用します。ここでの最初のステップは、基本的にここと同じです。最初に、効果的に行動クローニングまたは模倣学習を行います。ここでは、赤いボールを見ることができます。この赤いボールを見て、RLを使用して追跡を行います。
基本的に、この時点でのRLの報酬は、足首がその赤いボールから離れていれば報酬なし、足首がその赤いボールの上にあれば高い報酬というものです。つまり、元の人間の軌道の一種の模倣学習を効果的に行っています。これが最初の実世界からシミュレーションへの部分です。
そして、シミュレーションから実世界へと移行します。このSMPL動作で訓練されたRLを持っています。この論文で行っている高度な作業(モーションリターゲティングと呼ばれる)があります。少し複雑になりますが、基本的にはより高度なシミュレーションで、少し異なる要素があります。デルタアクション モデルについても説明しますが、その後、実際のロボットに展開します。
これが実世界からシミュレーションを経て実世界への流れです。実際の人間の動作から始まり、RLを使用できるシミュレーションに移行し、シミュレーション世界でのRLでの学習をすべてゼロショットで実世界に展開します。これで完成です。実世界からシミュレーションを経て実世界へ行く方法を手に入れたのです。
メッシュはスプラットと比べてトポロジーを保持するのに優れています。確かにその通りです。その作業を行う研究もあります。長期的には、ガウシアンスプラットはメッシュよりも優れた3D表現になると考えています。メッシュが現在より有用なのは、文字通り数十年にわたってメッシュのエンジニアリングに時間を費やしてきたからです。
これまでプレイしたすべてのゲームはメッシュベースです。メッシュベースの表現での物理モデルの開発とさまざまな物理モデルの試行に費やされた純粋なエンジニアリング時間を考えてみてください。ガウシアンベースの表現が主流になり、人々がガウシアンベースの表現での摩擦や変形性の優れた方法を考え出すまでに1〜2十年かかると思います。その時には、ガウシアンでの物理的相互作用は、メッシュで得られる物理的相互作用よりもはるかに優れたものになるでしょう。
Arioが話しているのは、基本的にそのようなことです。「トポロジー認識3Dガウシアンスプラッティング:永続的ホモロジーを活用した最適化された構造整合性」という何という名前でしょうか。
では、実世界からシミュレーションを経て実世界への話に戻りましょう。この論文が非常に優れている理由の一つは、デモが素晴らしいということです。また、優れたアブレーション(削除実験)とベースラインを持っているからです。
新しい技術を実証する際には、古い技術でどのように機能したかを示したいものです。新しい技術と古い技術の違いを見て、新しい技術が明らかに優れていることを確認したいのです。
ここでは、デルタダイナミクスとデルタアクションという彼らの技術の2つのバリエーションを、より古典的な方法と比較します。バニラとCISIDがあります。バニラは、モデルフリーRL訓練と呼ばれます。これは基本的にシミュレーターでのRLです。
基本的に、このオレンジ色の部分は基本的に失敗するものです。これが最も基本的な方法となります。ニューラルネットポリシーがあり、シミュレーターから状態を消費し、アクションを生成します。そのアクションは何らかの状態をもたらします。
その状態から報酬を得ることができます。おそらく目標ターゲットと足首との距離を見ているのでしょう。これが報酬関数となり、それを使用してポリシーにグラデーントを戻すだけです。これが基本的にシミュレーターでのゼロからのRLです。
これはあまり機能しません。一つには非常に難しく、さらにシミュレーターでこのようなRLからスクラッチで良いポリシーを訓練できたとしても、実際のロボットに展開しようとすると、このような基本的な実世界からシミュレーションへの転移はうまく機能しません。シミュレーターは単にロボットと同じではないため、あらゆる種類の問題が発生する可能性があります。
次のベースラインは、CISIDまたはシステムIDと呼ばれるものです。CISIDは実際に現在でも非常に一般的で、人々は常にこれを使用しています。シミュレーターにはパラメータがあります。前の論文で説明したように、このスロープの摩擦係数などです。
その値を選択しますが、別の方法として、実際のスロープに基づいて選択することもできます。この摩擦係数に使用すべき最適な値、または実世界に最も近い値を決定する方法はありますか?
これがCISIDが行っていることです。シミュレーターの部分やパラメータを識別しようとしています。シミュレーターをできるだけ実世界に近づけるために、これらの小さなパラメータを設定します。シミュレーターを実世界に近づければ近づけるほど、このポリシーはより良くなります。
シミュレーションで完全に訓練されたこのポリシーを実世界に展開する際、シミュレーターが実世界に非常に似ていれば、シミュレーションから実世界へのギャップは小さくなり、より良い方法で転移できます。ポリシーはより良いパフォーマンスを発揮するでしょう。
実際のパラメータを見てみましょう。CISIDでは、シミュレーションモデルのパラメータを実世界と一致させようとします。異なるシミュレーションパラメータで実世界の軌道を再生し、最適なパラメータを特定の範囲で探索し、Isaac Gymでプレトレーニングされたポリシーを微調整します。
具体的なCISIDパラメータは、重心のシフト(CX、CY、CZ)、基本リンク質量オフセット比、そして低レベルPDゲイン比(KPとKD)です。PIDコントローラーは、実際にロボット上でコマンドを実行するものです。
例えば最初の論文に戻ると、このロボットはこれらのアクションを生成します。あるいはこちらの方が少し分かりやすいかもしれません。アクションはこのエンドエフェクターのポーズです。実際にロボットにこのエンドエフェクターのポーズを与える際には、それ以上のステップがあります。
そこには逆運動学があり、このエンドエフェクターのポーズと現在のポーズに基づいて、このロボットの各関節の位置を決定します。そして、ロボットの各関節の位置が決まったら、それよりもさらに低レベルなPコントローラーがあります。
これは基本的に、関節の現在の位置と目標位置を取得し、おそらく関節の速度、過去の位置の一部のウィンドウも考慮に入れ、それを使用して実際の最終コマンドを決定します。なぜなら、最終的に実際にロボットを制御しているのは、増加または減少する電気だからです。
関節には小さな磁石があり、基本的にどれだけの電気を流すかを決定する必要があります。それが最終的に出力されるものです。これらのPIDコントローラーは基本的にそれを決定し、各関節に対してこれらの1つが実行されています。
1から23まで見ることができます。これは基本的にこのロボットには23の関節があることを指しています。読み込みを待って、23の関節を見てみましょう。肩のロール、ヨー、ピッチ、肘、手があります。ここには手がありません。これは最終的にはそこに移行すると思います。
この論文のもう一つの少し否定的な点について、実際にはそれほど否定的でもありません。なぜなら、彼らが行ったことはすでに印象的だからです。手がないことが分かります。基本的に手がなく、すべて体だけです。
いつかはこれを手も含めて行う必要があることは想像できます。しかし、手を追加すると基本的にこの数を倍増させることになります。Teslaの手には21の異なる自由度があると言われています。
各手に21の関節を追加することを想像してください。基本的に3倍になります。23の関節から、23プラス手の21、さらに手の21で、状態空間は大幅に増加します。現時点では、まだ手は追加していません。
ここでこのメトリクスについて少し話しましょう。例えば、ここでは4つの異なる技術を比較しています。バニラ、CISID、そしてデルタダイナミクスとASAP(これについては後で説明します)。しかし、このMPJPとは何でしょうか?
これは全身のポジションと根本に対する関節ごとの平均誤差の追跡誤差です。基本的に使用しているメトリクスは、関節ごとの誤差と、その実質的な平均です。各関節の位置がこの黄色い点のターゲットにあることを確認しています。
ここでバニラを見ると、オープンループアクションのみです。これは基本的に、この場合Isaac Simでトレーニングされたポリシーから出力されるアクションを単に実行しているだけです。
この論文で興味深いことの一つは、実世界からシミュレーションへの転移に加えて、シミュレーションからシミュレーションへの転移も行っていることです。この論文では、シミュレーションポリシーを実際のポリシーに展開します。これはシミュレーションから実世界への転移と呼ばれます。
しかし、シミュレーションポリシーを別のシミュレーションに展開することもできます。少し異なるシミュレーションです。その少し異なるシミュレーションには、少し異なる特徴があります。摩擦の扱い方、運動量の扱い方などが異なる可能性があります。
これらの小さな違いがシミュレーションからシミュレーションへのギャップをもたらします。これはシミュレーションから実世界へのギャップに似ています。シミュレーションからシミュレーションへの転移は比較が容易です。
シミュレーションから実世界への転移を行う場合、何らかのマップ追跡システムがない限り、シミュレーションから実世界への転移がどれほど良いか悪いかを正確に知ることは難しいからです。実世界で何が起こっているかを正確に定量化することは難しいからです。
しかし、シミュレーションからシミュレーションへの転移は定量化がはるかに容易です。これもシミュレーターなので、すべての位置を正確に知ることができます。各時点でターゲットがどこにあったかを知ることができます。
そのため、この正確な誤差を得ることができます。バニラでは、ある時点で位相がずれ始めるのが分かります。少し拡大して見てみましょう。最初は良好に始まり、歩き始めます。歩こうとしていて、ターゲットも歩いているように見えます。
しかし、シミュレーション内でロボットは転倒してしまいます。シミュレーションで訓練されたこのポリシーを別のシミュレーションに転移する能力は基本的にゴミのようなものです。
CISIDでは、シミュレーションパラメータを識別しようとします。一つのシミュレーションを他のシミュレーションと一致させようとしているわけです。それを行い、2つのシミュレーション間の違いやギャップを減らすと、実際に少し良く機能することが分かります。
最終的には失敗し、ターゲットには到達しませんが、少し長く持続することが分かります。CISIDはシミュレーションからシミュレーションへのギャップを減らします。同様に、CISIDはシミュレーションから実世界へのギャップも減らすでしょう。
では、この論文で行われているより高度な2つの事柄について見ていきましょう。デルタダイナミクスとASAP(彼らの特定のバージョン)と呼ばれるものです。ここに戻りましょう。
デルタアクションモデルから始めます。デルタアクションモデルはΔaとして定義され、これは小さなモデルです。パラメータθで特徴付けられたこのモデルは、時間tにおける状態とアクションを入力として受け取り、このΔaを生成します。
これは補正アクションを生成します。この補正アクションΔaは、実世界で記録されたアクションに加えられ、シミュレーションと実世界のダイナミクスの違いを考慮します。
これはある意味でCISIDに似ています。高いレベルでは非常に似たことを行っています。基本的にシミュレーターを実世界に近づけることでギャップを埋めようとしています。しかし、CISIDではシミュレーター内の小さな数値を変更しています。実際にシミュレーションパラメータを変更しているのです。
一方、このデルタアクションモデルでは、デルタアクションモデルと呼ばれる小さな別のモデルを訓練しています。このモデルはアクションを少し変更するだけです。ポリシーを訓練し、そのポリシーは何らかのアクションを生成します。デルタアクションモデルは、「ここに小さな修正があります」と言い、アクションを少し異なるものにして、シミュレーターが期待するアクションにより近いものにします。
例を挙げてみましょう。シミュレートされたロボットが、モーターの強さが過大評価されているため、ジャンプできるシナリオを考えてみましょう。シミュレーション内のモーターは、クレイジーなことができます。シミュレートされたモーターのパワーは、実際のモーターのパワーよりも少し大きいのです。
そのため、シミュレーションでジャンプを学習するポリシーは、これらの非常に強力なモーターを利用することができます。しかし、そのポリシーを実世界に展開しようとすると、モーターはその強さを持っていないため、実際のロボットは弱いモーターのためにジャンプすることができません。
デルタアクションモデルは、下半身のアクションの強度を減らすことを学習し、実世界のロボットのモーター制限をシミュレートします。これは、CISIDと同様の効果を得るために、アクションを調整する小さなモデルのようなものです。
そして、シミュレーターダイナミクスの修正があります。時間t+1における状態は、シミュレーション関数に状態とアクションを入力し、この場合はデルタアクションモデルからの小さなデルタアクションを加えたものになります。これが実際にシミュレーターで実行されるものです。
ARは実世界のロールアウトから記録された参照アクションです。各RLステップで、ロボットは実世界の状態で初期化されます。報酬信号は、シミュレートされた状態と記録された実世界の状態の差を最小化するように計算されます。
アクション量の正則化項とは何でしょうか?これは目的関数に追加される項で、アクションの大きさが非常に大きい場合、つまり非常に大きなアクションを取る場合、突然手が動かなくなったり、非常に速く動いたりするような激しい動きをする場合にペナルティを与えます。この値は非常に大きくなり、損失は小さくならなくなります。
この場合、報酬を最大化したい場合は、負の値を追加することができ、損失を最小化したい場合はそのままでよいのですが、いずれにせよ、これらの大きなアクションを避けたいのです。ここでは彼らもPOを使用しています。
将来的にはそのような関節数の増加に対してより拡張性のあるアプローチが必要かもしれません。おそらく協力する何らかのモデルやコントローラーのアンサンブルが必要でしょう。ここでBrandonの質問に答えています。
一部の人々は、手用の別のモデルと胴体用の別のモデルを持つことになると考えています。これは数年前、そして現在でも、上半身用の別のモデルを持つのと似ています。例えば、操作と移動を分けて考えます。
移動のみに興味を持つチームがあり、基本的に脚のみに注目します。脚だけの胴体しかないものもあります。同じ会社の別のチームが操作に取り組み、腕のみに注目します。
しかし、これらをより多く組み合わせているのを見ています。操作と胴体を担当するモデルと、歩行を担当するモデルを別々に持つのではなく、両方を行う1つのモデルを持つようになってきています。この論文はその良い例です。
手についても同じことが起こると思います。現在の人々は手用の別のモデルと体用の別のモデルを持とうとしていますが、最終的にはそれらが統合されると思います。1つのポリシーですべてを制御することになります。体の関節と手の関節すべてを含む状態空間とアクション空間を持つ1つのポリシーです。
ロボットがテーブルの前に立って物体を操作している場合、そのポリシーはまだ足首のアクションも生成しています。これは重要だと思います。例えば料理をしている場合でも、足首や膝には多くの動きがあります。
物体を持ち上げる際に前に倒れないように、重心を変えるために下半身を非常に微妙に動かしています。そのため、現在見られるような部分的なモジュラーなアプローチではなく、すべてを1つのポリシーに統合することになると思います。
ロボット工学、特に深層学習ベースのロボット工学の一般的な流れは、これらの問題を別々に扱うモジュラーなアプローチから、より単純なアプローチへと移行しています。優れたエンジニアは問題を異なる部分に分解し、各問題を別々に解決しますが、時間とともに、ロボット全体を制御する単純なアプローチの方が上手く機能することが分かってきました。手についても同じことが起こると思います。
デルタアクションモデルについて話していましたね。これは論文の主要な図ですが、他の部分について触れてから、これに移りたいと思います。最初は少し分かりにくいかもしれません。では、メインの部分を見てみましょう。
モーショントラッキングのプレトレーニングと実世界の軌道収集から始まります。これは実世界からシミュレーションを経て実世界への流れです。最初に、これらの人間のビデオデータセットから始まります。
コービー・ブライアントがジャンプシュートを打つRGBビデオがあり、まず最初にそのポーズをSMPLポーズに変換します。そして、それが基本的に標準的な行動クローニングや模倣学習のターゲットとなります。RLで一種の模倣を試みているのです。
これが実世界からシミュレーションへの部分です。実世界の軌道を取得し、シミュレーションで何かを訓練しようとしています。実世界の軌道を再現しようとしています。そして、シミュレーションに入り、一種のポリシーを持っています。人間が行うことを再現しようとしています。
しかし、この実世界のものをシミュレーションに入れると、ロボットは毎回シミュレーション内で転倒してしまいます。しかし、シミュレーション内ではRLを使って転倒を防ぐ方法を学習できます。
このRLでは、シミュレータからの報酬関数に基づいて勾配を更新していきます。シミュレータはアクションを受け取り、状態と観測値をポリシーに返します。そしてそれを訓練して、デルタアクションを行い、シミュレーションと実世界のギャップを埋めていきます。最終的に実世界のロボットに展開すると、コービー・ブライアントのような動きができるポリシーが完成するのです。つまり、実世界からシミュレーションへ、そして再び実世界へという流れです。
次にデルタアクションモデルの訓練について説明しましょう。少し分かりにくいかもしれませんが、デルタアクションモデルはすべての状態を消費しているように見えますが、実際の推論ステップは最初の部分だけです。まず参照状態と参照アクションから始まります。
このモーションキャプチャデバイスと搭載センサーを使用したアプローチでは、MAPを利用しています。つまり、実世界でもロボットの関節の位置を把握できます。ただし、屋外のMAPのない環境では使用できないという制限があります。ラボ内では実際の関節位置を把握できますが、屋外の実世界では難しいかもしれません。おそらく搭載されたIMUからしか情報を得られず、胴体の中心回転や重心の角運動量などのデータしか取得できないでしょう。
状態はPT Bas、VT Bas、Alpha T Bas、Omega T Bas、QT、QT starまたはQT dotで構成されます。これらはロボットのベース3D位置(R3)で3つの数値、重心の線形速度、4つの数値からなるクォータニオンで表現されるロボットベースの方向、ベースの角速度、そして23次元の関節位置ベクトルと23次元の関節速度で構成されています。
これらのほとんどは取得可能です。IMUから方向、角速度、線形速度を取得でき、3D位置はIMUから直接は取得できませんが推定可能です。関節位置と関節速度は、どの場所でもロボットから常時取得できます。
時刻Zでの状態とアクションを入力として、デルタアクションモデルがそれを少し変更します。時刻0のアクションが時刻0プライムのアクションに変更されるのが分かります。デルタアクションモデルは基本的に少し調整を行い、実世界でのアクションをシミュレーション用に微調整するのです。
シミュレータはそのアクションと現在の状態を受け取り、次の状態を生成します。ある状態でこのアクションを取ると、状態S1に到達します。そのS1を取得してプロセスを繰り返します。S1とs1rを比較して、シミュレータで到達した状態と実世界で目指した状態がどれだけ異なるかを確認できます。例えば、シミュレータ内の膝の位置とコービー・ブライアントの膝の位置がどれだけ違うかというようにです。
これがデルタアクションモデルの訓練方法です。最初はデルタアクションモデルを訓練して、シミュレータが実世界に近づくように調整します。デルタアクションモデルが訓練されたら、それを固定します。そこからは勾配をポリシーにのみ流します。
つまり、最初は参照モーションを使ってデルタアクションモデルを訓練し、シミュレーションと実世界のギャップを埋めます。そしてそのデルタアクションモデルを使って、シミュレータをより実世界に近づけ、ポリシーを訓練します。この時点で実際にポリシーに勾配を流して、関節角度のマッチングなどの強化学習の目的を達成します。
訓練が完了したら、そのポリシーを実世界に展開し、デルタアクションモデルを取り除きます。シミュレーション物理を調整したので、デルタアクションモデルは実ロボットでは不要になります。ポリシーはロボットから直接状態を受け取り、アクションを生成し、それを実世界の物理で実行します。
つまり、このデルタアクションアプローチ全体は、シミュレーションと実世界のギャップを埋めるための小さなモデルを訓練することが主な目的なのです。
どのような種類のニューラルネットがこれらのデルタモデルとして使われているのでしょうか?この論文では、おそらく小さなMLPが使用されています。図を見ると、これは小さなマルチレイヤーパーセプトロンで、こちらも同様です。付録を確認するか、公開されているコードを見れば具体的な情報が分かるはずです。
これは実際にこちらとは大きく異なります。なぜなら、Vision Language Actionモデルを使用する場合、それらのモデルにはすでにインターネットのデータが含まれているからです。その中の言語モデルにはインターネットの知識が含まれており、生のRGBを画像トークンのシーケンスに変換する画像エンコーダーも同様に豊富な知識を持っています。
これらの画像エンコーダーは通常、マスクされた自己教師あり学習で訓練され、何百万もの画像を使用しています。そのため、これらのVision Language Actionモデルにはすでに多くの知能が組み込まれています。つまり、知能をゼロから構築しようとしているわけではなく、すでにそこにある適切なニューラルプログラムを引き出そうとしているのです。
これは、この論文のような小さなマルチレイヤーパーセプトロンを使用するアプローチとは異なります。ここでのポリシーは、10年前に見られたような数層のニューラルネットです。しかし、このポリシーをVision Language Actionモデルのようなものに置き換えると、そこに魔法が生まれるのです。
これは、言語モデル以前と以後の深層学習の違いを示す重要なポイントです。多くのロボティクスの研究者は、まだ2018年頃の考え方に縛られています。彼らは、従来のロボティクス(ロボットの物理ベースのモデルを持ち、標準的な制御を行う)と、小さなMLPを使用する深層学習ベースのロボティクスを比較しています。
しかし、MLPを使用する深層学習と、VLAMやLLMを使用する深層学習の間には大きな違いがあります。昨年、「LLMは最適なパターン認識マシンである」といった論文を読みましたが、それは言語モデルの重みの中にテキストから学習したニューラルプログラムが存在し、それらのプログラムが様々な異なるタスクに転移できることを示していました。
VLAMが何に対して訓練されているのかを考えると、質問応答や「この画像に写っている犬の品種は何ですか?」「この画像にはクジャクが何羽いますか?」「バウンディングボックスを描いてください」といったタスクに対して訓練されています。これらのタスクとヒューマノイドロボットの制御の間に転移があるとは思えませんが、実際にはあるのです。
これが私が言う「魔法」の意味です。LLMの中には何か不思議な知能が存在しているのです。この論文の小さなMLPやフィードフォワードネットワークをGPT-4で置き換え、同じような方法で少しずらつ勾配を流し、一部を固定して大きな変更を加えないようにすれば、それが次のステップになるでしょう。
これは先ほどの質問、「1つのポリシーですべてを行う」というアイデアにつながります。結局のところ、ロボットで実行されるモデルは、チャットや深い研究に使用するモデルと基本的に同じになり、ヒューマノイドの動作を実現するために少し追加の勾配を受け取るだけになるでしょう。しかし、その知能の大部分は、以前のテキストベースのタスクやビジョンベースのタスクから得られているのです。
このアプリケーションでVLMを使用する場合、多くの未使用の知能があり、パラメータ空間とそれに伴う計算リソースの無駄が多いという指摘がありました。実際、これらの研究者が小さなフィードフォワードネットワークやMLPを使用する理由は、それらが非常に高速だからです。
これらのモデルでは100Hzの制御ループを実現できますが、VLMでは実現できません。VLMは非常に小さくても10Hz程度の制御ループしか実現できません。そのため、現在の人々は両方を組み合わせて使用しています。10Hzで動作するVLMと、100Hzで動作する低レベルのMLPを組み合わせているのです。
しかし、最終的にはVLMやLLMをハードウェア上で効率的に動作させるための圧力が非常に大きくなるでしょう。携帯電話上で高いトークン/秒を実現するためのエンジニアリングとその利点は、ロボットハードウェア上でのVLMの実行にも恩恵をもたらすはずです。
現在はMLPを使用して高速性を確保していますが、2-3年後には7Bモデルでさえ、すべてのトークンを生成しながらも100Hz制御に十分な速度で動作するようになるでしょう。
人々がヒューマノイドロボットに何百万ドルもの投資を行っているのは、それが愚かなアイデアだからではありません。非常に良いアイデアなのです。ヒューマノイドが専門的なロボットと比べて幅広いタスクをこなせるという事実以外にも、ヒューマノイドという形態は人間に対して特別な影響を与えます。C-3POがヒューマノイドである理由がそこにあります。
これは素晴らしい移行点になりますが、今日はもう1つの論文、「Elegant and Functional Movement Design for Non-Anthropomorphic Robots」について話したいと思います。先ほどヒューマノイドロボットの利点について説明しましたが、ヒューマノイドの形態には人間の心に響く何かがあり、それがロボティクスの世界でヒューマノイドが支配的になる大きな理由だと考えています。
しかし、より「R2-D2」的なアプローチにも良い点があります。実際、R2-D2はC-3POと比べてより愛されているキャラクターです。その理由の一部は、この論文で言う「表現力のある動きのデザイン」にあります。
Appleのこの論文では、ピクサーのランプのような非常にかわいい小さなロボットを扱っています。このランプは人と一緒に跳ねたり、とてもかわいい動きをしたりします。彼らは、物体を拾い上げる際の軌道について、複雑な図を作成しています。
物体に直接向かう軌道もありますが、最適ではないものの表現力を持つ異なる軌道もあります。物体に直接向かうのではなく、到達する前に少し跳ねるような動きをして、より人間らしく見えるようにするのです。
ここでの目的は、ロボットに感情や態度を持たせることです。ロボットは、軽やかな跳ねるような動きで幸せを表現し、ゆっくりとした動きでリラックスした状態を示し、頭を下げて悲しみを表現したり、突然の不規則な動きで恐怖や他のネガティブな感情を表現したりできます。
C-3POもこれを行っています。C-3POが驚いた時、飛び上がるような動きをしますが、これは実際には意味がありません。C-3POはロボットなので、驚いて飛び上がる必要はないのです。動物が驚いた時、猫が飛び上がって緊張するような反応をするのは理解できますが、ロボットにそのような反応は必要ありません。
しかし、それを組み込むことで、ロボットも哺乳類であるかのように錯覚させるのです。人間は哺乳類なので、可能な形態の空間の中で、より私たちに近いものに愛着を感じるのです。形態の可能な空間には、動物的なもの、家電的なもの、人間的なものがあり、このランプはその中間あたりに位置しています。
しかし、これも同様にゲーム化されていくでしょう。人間のデータセットを使用してロボットの動きを作成できるのと同じように考えてみてください。純粋な強化学習だけでジャンプシュートのモデルを作ろうとした場合、ロボットがバスケットボールを投げる最適な方法としてジャンプシュートを発見するまでに、膨大な強化学習が必要になるでしょう。
それに比べて、人間がすでに最適なジャンプシュートがどのようなものかを発見しているという事実からブートストラップするこのアプローチの方がはるかに簡単です。ジャンプシュートを発見するためのRLではなく、主にシミュレーションと実世界のギャップを埋めるためのRLを行うだけでよいのです。
おそらく、人間の感情的な反応を高める動きについても同様のアプローチが取られるでしょう。人間の動きをブートストラップとして使用し、その上でRLを行って、さらに感情的な魅力を高めていくのです。
ソーシャルメディアのアルゴリズムが、より中毒性の高いものになっていったのと同じように、明示的なRLは行っていませんが、環境と相互作用し、その環境からシグナルやフィードバックを受け取り、それを使用してシステムやポリシーを更新するという一種のRLを行っているのです。
同様のことがここでも起こり、より魅力的なロボットがより多く販売され、それらを製造する企業は、人々がロボットに恋をするようなアルゴリズムをロボットに搭載するでしょう。彼らはそれを非常に上手く行うでしょう。奇妙なことですが、おそらくアニメのキャラクターのように跳ね回るヒューマノイドロボットを見ることになるでしょう。なぜなら、それが彼らをよりかわいく見せるからです。
計算能力と観測能力のハードウェアが向上し、さらなる最適化が進むにつれて、自由度は私たち人間のものを超えていくかもしれません。ヒューマノイドロボットについては、人間の形態という強い制約があるため、例えば指を増やすことは操作能力を向上させる可能性がありますが、結局は非常に人間に近い形態に収束していくと思います。
しかし、このような種類のロボットについては、個々のモーターが安価になり、計算能力が向上することで、より大きなアクション空間を扱えるようになれば、平均的なロボットが6つ以上の関節を持つ世界も考えられます。
四足歩行ロボットについて、現在は純粋なRLからスタートして、シミュレーション内でロボットを立たせて歩かせることができます。しかし、それはサンプル効率が良くなく、得られる歩行ポリシーは時々奇妙です。非対称で、ロボットが変な方法でホッピングするようなものになります。
おそらく、この論文と同じようなアプローチを四足歩行ロボットに適用する余地があります。犬の動画やチーターの動画、さまざまな四足動物の動画からスタートし、それらを使用するのです。
犬用のポーズトラッキングはありますが、進化はすでに最も効率的な四足歩行の歩容を見つけ出しています。非常に効率的で優れた四足歩行の例がたくさんあります。チーターもその一つですし、象は人間と同じようにかかとから着地する歩き方をします。これは非常にエネルギー効率の良い歩行スタイルです。
四足歩行ロボットでも同様のアプローチ、つまり実世界からシミュレーションを経て再び実世界へというアプローチを取ることができるでしょう。これと全く同じことを行っている論文もすでにあるかもしれません。
これらのストリームを見ていただく際、私はある程度の選定を行っています。より興味深いと思う論文を選んでいますが、機械学習とAIの論文は文字通り何百も発表されています。私が取り上げる論文は、その中のごく一部のサンプルに過ぎません。
これらの論文の1つ1つについて、おそらく同じようなことを行っている他の4つの論文があり、私はそれらを知らないだけかもしれません。すべての論文を見て、これが最も良いと判断して選んでいるわけではなく、インターネットのアルゴリズムが私に提供したものを見ているだけです。
確かに、MITから出た論文は、誰も聞いたことのないラボから出た同じような内容の論文よりも多く読まれる傾向にあるという選択バイアスはあります。実際には、誰も聞いたことのないラボの論文の方が優れているかもしれません。つまり、より良い論文があるかもしれませんが、時間が限られているため、アルゴリズムが提供する論文を選んでいるのです。
物理的知能からのP-notのオープンソース化については非常に良いと思います。これは多くの産業タスクに転用できます。彼らはさまざまなロボットで実験を行っています。ヒューマノイドに展開して何かを達成することはできないかもしれませんが、多くの人々がこのようなアームに取り組んでおり、現時点で使用するには最適なモデルだと思います。
メッシュハイブリッドの活用は、おそらく将来的には消えていくでしょう。最終的にはすべてがニューラルネットワークベースになり、ニューラルネットワークベースの物理になると思います。しかし、実世界からシミュレーションを経て実世界へというアプローチは残り続けるでしょう。
最終的な状態、つまり実際にヒューマノイドが家に来た時はどうなるのでしょうか?まず、ヒューマノイドは家の中を歩き回り、家全体をマッピングします。そしてそのマップを作成したら、基本的にそこに座って、シミュレーション内で家の中のものを拾い上げたり、あちこちに移動したり、ライトスイッチを操作したりする訓練を行います。
つまり、この実世界からシミュレーションを経て実世界へというプロセスは、ほとんどミクロなレベルで発生する可能性があります。環境に展開されるロボットは、その実世界環境のシミュレーションバージョンを作成し、そのシミュレーション内で大量のRLを行い、それが実際のロボットに展開されるのです。
多くの人々は、シミュレーションで訓練された1つのモデルがあり、それが家に来たら訓練は終わりで、それ以上の勾配を受け取ることはなく、ただ家でゼロショットで動作すると考えているようです。しかし、私が考える方向性は、実際には家固有の追加のRLが少し行われるというものです。
つまり、オンラインのRL環境があるわけです。多くの人々は、家固有の訓練を行う理由はないと考えていますが、それは簡単にできるので、なぜしないのでしょうか?なぜ家の仮想バージョンを作成して、ロボットにその偽の家の中でたくさんのRLを行わせないのでしょうか。
彼らの4倍速の再生については注意が必要です。4倍速や5倍速で、実際にその場にいて、このような不自然な動きを見るのは想像してください。
LLMで得られるようなコンテキスト内学習についても同様です。コンテキストに例を入れるのです。これがコンテキストです。このビジョン言語モデルに、この画像を表すトークンと実際のコマンドを与えるだけでなく、10個の例をコンテキストに入れることができます。
非常に長いコンテキスト長を持つモデルであれば、多くのコンテキスト内学習を行うことができます。しかし、コンテキストに物を入れることは、基本的にハードウェアによって制限されます。実際にこれを実行するデバイス上で利用可能な実際のメモリはどれだけあるのでしょうか?
より多くのコンテキスト内学習を行うということは、モデルがロボット上では実行されず、クラウドで実行される世界を意味します。それは可能です。衛星インターネットが非常に良くなり、レイテンシーの問題が基本的に解決され、クラウドで実行されているモデルがロボットにアクションを出力できる世界を想像できます。
現在は、モデルがエッジで実行される、つまり実際にロボット上で実行されることを前提としています。これは、クラウドで何かを実行してあなたの家のロボットを制御するのでは、レイテンシーが大きすぎるからです。
しかし、技術の発展によって、ロボットが実際には単純で、GPUも搭載せず、基本的にクラウドGPUを使用するだけという状況になる可能性もあります。クラウドGPUを使用する場合、そのGPUには非常に多くのメモリがあるため、コンテキスト内学習を行い、10冊の本をコンテキストに入れることができます。
しかし、モデルがエッジで実行される世界、つまり実際にロボット上で実行される世界では、非常に高速に実行する必要があるため、多くの制約があります。そのため、この巨大なコンテキストを持つことは難しく、エッジで実行する場合はコンテキスト内学習ができない可能性があります。
VLMのグルーコンセプトについて話す時、画像エンコーダーは言語モデルが読めるトークンを生成していないということを指しています。VLMを訓練する時、実際にはLLMを訓練し、画像エンコーダーを訓練し、それらを通常は小さな層、プロジェクターやアダプターと呼ばれる層で接着しています。それが私が言うグルーです。
デルタアクションモデルは、アクションと状態を消費し、アクションに対する小さなデルタを出力するモデルです。このヒューマノイドロボットの場合、アクションは基本的に関節を表す23の数値です。
VLMの場合、グルーはエンコーダーから出力される特徴をトークンに変換しますが、こちらはアクションを受け取り、シミュレータに入力できるデルタアクションを提供し、実世界とシミュレータをより似たものにするのです。
アクチュエータごとに小さなネットワークを追加して、実世界のアクチュエータの不完全性を予測して補償し、高速な外乱を処理するのはどうでしょうか?それは良いアイデアですね。私も以前考えたことがあります。
すでにPIDコントローラーがありますが、もし可能な限り低レベルまで行くと、KpiとKdiの値があり、iを入れることもできます。PDはPIDの簡略版で、iを省いただけですが、それらの値は誰かが選んだランダムな数値です。
しかし、この制御スタック全体をハードウェアレベルで小さなニューラルネットで置き換える世界を想像できます。その小さなニューラルネットの出力が、実際にそのモーターに流す電流量を直接決定するのです。
現在は、目標の関節角度までは深層学習を使用し、その後は古典的なPID制御を使って実際のモーター電流を決定しています。しかし、カルパシアの言うように、ニューラルネットがソフトウェアのあらゆる部分を食い尽くし、完全なエンドツーエンドになるとすれば、それはPIDコントロールで止まるのではなく、実際のモーター電流まで完全にエンドツーエンドで行くということです。
将来的には、購入するモーターに小さなチップが搭載され、その中に小さなニューラルネットが組み込まれている世界を想像できます。それは固定されているわけではなく、わずかに調整可能かもしれません。基本的に、最終的なPIDを小さなニューラルネットで置き換え、シミュレーションと実世界の転移やギャップを扱う際に、このデルタアクションモデルを変更するのです。
アクションのためのクラウドGPU計算は、レイテンシーを考えると実現不可能だと思います。確かに、現時点では絶対にできません。しかし、数世代の衛星インターネットの進化を想像してみてください。量子コンピュータで、何か奇妙な量子トンネリングのような状況を考え出すかもしれません。
量子の世界では、2つのものの間でほぼ瞬時に情報を伝達する方法があります。量子コンピュータで光速を超える何らかの情報通信を実現できれば、なぜロボット上に計算能力を置く必要があるでしょうか?
ロボットが火星にいても、実際のGPUが地球上にあるという状況も考えられます。これは crazy(クレイジー)かもしれませんが、それが技術の進化の仕方なのです。技術の進化を予測しようとする時、現在のものから単純に外挿することはできません。
それが人間の問題で、私たちは線形的に考えます。現在あるものを外挿して、それが将来の予測だと考えます。しかし、そのようにしても実際の未来は予測できません。2018年に座って現状から外挿しても、LLMの急激な普及やChatGPTの瞬間を予測することはできなかったでしょう。
そのため、テストタイムの計算のように、技術におけるこのような段階的な機能改善やブラックスワン的な出来事を考慮に入れる必要があります。ロボットを制御するモデルがロボット上で実行されず、データセンターで実行されるというアイデアについて話す時、現時点では予測できない技術の進歩がいくつかあることを考慮に入れているのです。
電流コントローラーをニューラルネットベースにすること、それが完全なエンドツーエンドですね。人々は現在エンドツーエンドと言っていますが、実際にはエンドツーエンドではありません。光子がカメラセンサーに当たってから、実際にモデルに入力されるまでの間に、たくさんのハードコードされた計算があります。
そしてポリシーを通り、モデルを通り、その後また小さなPIDと他のいくつかの処理を経て、最終的に電流としてモーターに入力されます。エンドツーエンドのロボティクスやエンドツーエンドモデルと呼んでいても、両端にはまだハードコードされた計算が残っているのです。
最終的にはそれも消えていくと思います。端まで行き続けるのです。将来的には、入力が実際にカメラの各センサーから来る光子のカウントであるようなニューラルネットを想像できます。
他に何かありませんか?少し上にスクロールして、見落としている質問がないか確認しましょう。グラフトランスフォーマーネットワークをRLで使用した論文を見ましたか?グラフネットワークは一時期人気がありましたが、ニッチな分野であり、そのままニッチな分野として残り続けると思います。
トヨタのバスケットボールロボットについてですが、それはほとんどジャンプシュートと言えないものでした。固定された位置で、ただ投げるだけのような感じで、実際のロボットというよりは慎重に調整された投石機のようでした。訓練方法も深層学習を使用したとは思えず、おそらく古典的なロボティクスの物理ベースの制御だと思います。
私たちのトランスヒューマニスト的な進化をカバーしてくれてありがとうございます。私たちはすでに人間ではないことに気付く必要があります。公共の場に行って、みんなを見てください。ただスマートフォンを見ているだけです。私たちはほとんど人間らしくないのです。
100年前と比べても、100年前の人々は依然としてかなり人間らしい生活を送っていたと言えますが、現在の私たちを見ると、ほとんど人間らしい生活を送っているとは言えません。それが悪いことだとは言っていません。ただ、違うだけです。
以上が実世界からシミュレーションを経て実世界へ(Real2Sim2Real)についてです。これをこのように書くこともできますし、クールな方法で書くこともできます。これがクールな書き方です。
以上です。中断してしまい申し訳ありません。視聴ありがとうございました。エリオット、サラ、ドゥワル、マエット、シズ、ケイシー、エリオット、サラ、スヌークス、その他の方々、プラティーク、ブランドン、セレノスにも感謝します。
セレノスは質問がありましたね。ハードウェアの状態とシミュレーションの状態の間のギャップを減らすために使用される報酬は何ですか?デルタアクションモデルを訓練するために、つまりここでデルタアクションモデルを訓練するプロセスで使用される報酬は、これです。
シミュレータが出力する実際の状態、つまりこのデルタアクションをシミュレータで実行すると、次の状態が生成されます。そしてその状態が、参照アクションで実際に得られた状態とどれだけ似ているかを見るのです。それがデルタアクションモデルの訓練方法です。
スワッティ、B アリオ、ブランドン、ケイシー、エド、ティモシー、サガル、リル、KM、マーク B、みなさんありがとうございました。来週また会いましょう。

コメント

タイトルとURLをコピーしました