(57)【要約】  タスクの１つ以上の実演を受け取るため、及びタスク埋め込みを生成するためにタスク埋め込みネットワークを含むロボットデバイスの制御システム。タスク埋め込みはタスクの表現を含み、各実演は、タスクの実行の１つ以上の観測を含む。制御システムは、タスク埋め込みネットワークからタスク埋め込みを受け取るため、及びロボットデバイスの複数の連続する観測を、ロボットデバイスのためのそれぞれの制御命令にマッピングするためのポリシーを適用するために制御ネットワークを含む。制御ネットワークによって適用されたポリシーは、タスク埋め込みネットワークからのタスク埋め込みを使用して、ロボットデバイスの複数の連続する観測全体で調整される。
2022501725.tif 000002
【特許請求の範囲】
【請求項１】
ロボットデバイスの制御システムであって、
タスクの１つ以上の実演を受け取るため、及びタスク埋め込みを生成するためのタスク埋め込みネットワークであって、前記タスク埋め込みが、前記タスクの表現を含み、各実演が、前記タスクの実行の１つ以上の観測を含む、前記タスク埋め込みネットワークと、
前記タスク埋め込みネットワークから前記タスク埋め込みを受け取り、及び前記ロボットデバイスの複数の連続する観測を、前記ロボットデバイスのためのそれぞれの制御命令にマッピングするためのポリシーを適用する制御ネットワークと、
を備え、
前記制御ネットワークによって適用された前記ポリシーは、前記タスク埋め込みネットワークからの前記タスク埋め込みを使用して、前記ロボットデバイスの前記複数の連続する観測全体で調整される、
前記制御システム。
【請求項２】
前記タスク埋め込みネットワーク及び前記制御ネットワークが、各々、少なくとも１つの環境での少なくとも１つの訓練タスクの訓練サンプルを含む訓練セットの共同訓練から生じるそれぞれのパラメータを含み、
各訓練サンプルが、所与の環境での所与の訓練タスクの１つ以上の観測と、前記所与の環境で前記ロボットデバイスによって実行された対応するアクションとを含む、請求項１に記載の制御システム。
【請求項３】
前記タスク埋め込みネットワーク及び前記制御ネットワークの少なくとも１つが、少なくとも１つの訓練タスクの訓練サンプルを含む訓練セットで訓練され、
前記少なくとも１つの訓練タスクが第１のタスクを含み、
前記タスク埋め込みネットワークによって受け取られたタスクが、前記第１のタスクとは異なる第２のタスクであり、前記制御ネットワークが、前記ロボットデバイスの前記複数の連続する観測を、前記ロボットデバイスが前記第２のタスクを実行するための前記それぞれの制御命令にマッピングするための前記ポリシーを適用するように構成される、
請求項１または請求項２に記載の制御システム。
【請求項４】
前記タスクの前記１つ以上の実演が、第１の環境での前記タスクの前記実行の１つ以上の観測を含み、
前記制御命令が、前記ロボットデバイスが第２の環境で前記タスクを実行するための制御命令を含み、前記第１の及び前記第２の環境が少なくとも異なる構成を有し、
前記ロボットデバイスの前記複数の連続する観測が、前記第２の環境での前記ロボットデバイスの観測を含む、
請求項１から３のいずれか１項に記載の制御システム。
【請求項５】
前記タスクの前記実行の前記１つ以上の観測が、前記タスクを実行する前記ロボットデバイスの少なくとも１つの画像を表す画像データを含み、
前記制御命令が、前記ロボットデバイスの１つ以上のモータのためのモータ制御命令を含む、請求項１〜４のいずれか１項に記載の制御システム。
【請求項６】
前記タスク埋め込みネットワーク及び前記制御ネットワークが、各々、少なくとも１つのシミュレーションされた環境での少なくとも１つの訓練タスクの訓練サンプルを含む訓練セットでの共同訓練から生じるそれぞれのパラメータを含み、
各訓練サンプルが、所与のシミュレーションされた環境での所与の訓練タスクの１つ以上の観測と、前記所与のシミュレーションされた環境で前記ロボットデバイスのシミュレーションによって実行された対応するアクションとを含む、請求項１〜５のいずれか１項に記載の制御システム。
【請求項７】
ロボットデバイスを制御する方法であって、
第１のコンテキストで実行されているタスクの少なくとも１つの観測を受け取ることと、
前記少なくとも１つの観測に基づいてタスク埋め込みを生成することと、
第２のコンテキストで前記ロボットデバイスによって実行される連続アクションのために、
所与のアクションに先行するときに前記第２のコンテキストで前記ロボットデバイスと関連付けられた知覚データを受け取ることと、
前記所与のアクションのために、前記タスク埋め込み及び前記知覚データを前記ロボットデバイスのための制御命令にマッピングすることと、
前記ロボットデバイスに、前記制御命令を使用して、前記所与のアクションを実行するように命令することと、
を含む、前記方法。
【請求項８】
前記タスクの少なくとも１つの観測が、少なくとも２つの時間ステップの画像データを含み、
前記少なくとも２つの時間ステップが、前記タスクが前記第１のコンテキストで実行される期間を対象として含み、
前記画像データが、前記第１のコンテキストで前記タスクを実行する前記ロボットデバイスを示す少なくとも１つの画像を表す、請求項７に記載の方法。
【請求項９】
前記ロボットデバイスと関連付けられた前記知覚データが、前記第２のコンテキストで前記タスクを実行している前記ロボットデバイスを示す少なくとも１つの画像を表す画像データと、前記ロボットデバイスの状態データとのうちの少なくとも１つを含み、
前記制御命令が、前記第２のコンテキストで前記ロボットデバイスの移動を可能にする、前記ロボットデバイスの１つ以上のアクチュエータのための命令を含む、請求項７または請求項８に記載の方法。
【請求項１０】
前記少なくとも１つの観測を受け取る前に、
タスク埋め込みネットワーク及び制御ネットワークを構成するためのそれぞれのパラメータをロードすることであって、
前記タスク埋め込みネットワークが、前記タスク埋め込みを生成するために使用されており、
前記制御ネットワークが、前記タスク埋め込み及び前記知覚データを前記ロボットデバイスのための前記制御命令にマッピングするために使用されており、
前記パラメータが、複数の訓練タスクの訓練サンプルを含む訓練データでの前記タスク埋め込みネットワーク及び前記制御ネットワークの共同訓練から生じ、
前記訓練サンプルが、実行されている前記複数の訓練タスクの１つ以上の観測と、前記訓練タスクを実行するために講じられた対応するアクションとを含む、
前記ロードすること、
を含む、請求項７〜９のいずれか１項に記載の方法。
【請求項１１】
前記少なくとも１つの観測を受け取る前に、前記タスク埋め込みを実行するタスク埋め込みネットワークと、前記タスク埋め込み及び前記知覚データから前記ロボットデバイスのための前記制御命令への前記マッピングを実行するためのポリシーを適用する制御ネットワークと、を共同で訓練することを含む、請求項７〜１０のいずれか１項に記載の方法。
【請求項１２】
前記タスク埋め込みネットワーク及び前記制御ネットワークを共同で訓練することが、訓練反復のために、
訓練データのセットから訓練タスクのセットをサンプリングすることと、
前記訓練タスクのセットの所与のタスクごとに、
前記タスクを実行している前記ロボットデバイスの観測の第１のセットを含む前記所与のタスクのサポートセットを決定することと、
前記タスクを実行している前記ロボットデバイスの観測の第２のセットを含む前記所与のタスクのクエリセットを決定することであって、前記観測の第１のセット及び第２のセットが互いに素である、前記決定することと、
前記タスク埋め込みネットワークを使用して、前記サポートセットのタスク埋め込み及び前記クエリセットのタスク埋め込みを計算することと、
前記タスク埋め込みネットワーク及び前記制御ネットワークの損失関数を初期化することと、
前記訓練タスクのセットの所与のタスクごとに、
前記タスク埋め込みネットワークの損失関数項を計算することであって、前記損失関数項が、前記所与のタスクの前記クエリセットのタスク埋め込みと、前記所与のタスクの前記サポートセットのタスク埋め込みとの間の第１の類似基準を、前記所与のタスクの前記クエリセットの前記タスク埋め込みと、前記所与のタスクではないタスクのサポートセットのタスク埋め込みのセットからのタスク埋め込みとの間の第２の類似基準に比較するヒンジ損失関数を含む、前記計算することと、
を含み、
前記訓練反復が、前記損失関数を最適化して、前記タスク埋め込みネットワーク及び前記制御ネットワークのパラメータ値を決定するために繰り返される、
請求項１１に記載の方法。
【請求項１３】
前記タスク埋め込みネットワーク及び前記制御ネットワークを共同で訓練することが、訓練反復のために、
前記訓練タスクのセットの所与のタスクごとに、
前記制御ネットワークの少なくとも１つの損失関数項を計算することであって、前記少なくとも１つの損失関数項が、前記制御ネットワークを使用し予測された制御命令と、前記所与のタスクを実行するために講じられたアクションのための制御命令との比較を含む、前記計算すること、
を含み、
前記制御ネットワークの前記少なくとも１つの損失関数項が、所与のタスクの前記サポートセットのポリシー損失項と、前記所与のタスクの前記クエリセットのポリシー損失項とを含む、
請求項１２に記載の方法。
【請求項１４】
前記タスク埋め込みが前記タスクの表現を提供し、
特性の共有されたセットを有する２つのタスクのタスク埋め込みが、特性の異なるセットを有する２つのタスクのタスク埋め込みよりも埋め込み空間でより近い、請求項１０〜１３のいずれか１項に記載の方法。
【請求項１５】
前記タスク埋め込みネットワーク及び前記制御ネットワークの前記パラメータのセットが、シミュレーションされたロボットデバイスを使用し、シミュレーションされた環境で学習される、請求項１０〜１４のいずれか１項に記載の方法。
【請求項１６】
コンピュータ実行可能命令を含む非一時的なコンピュータ可読記憶媒体であって、前記実行可能命令が、プロセッサによって実行されるとき、コンピューティングデバイスに、
入力データをタスク埋め込みにマッピングするように構成された少なくとも１つのタスク埋め込みネットワークを備える制御システムのために、制御可能デバイスによって１つ以上のコンテキストで実行される１つ以上のタスクのための観測−アクションデータのペアを含む訓練データを取得することと、
前記訓練データ内で表される訓練タスクのセットのそれぞれにサポートセット及びクエリセットを生成することであって、前記訓練タスクのセットの所与のタスクのために、
サポートセットタスク埋め込みを生成するために前記タスク埋め込みネットワークを前記所与のタスクの観測−アクションのペアの第１のセットに適用することと、
クエリセットタスク埋め込みを生成するために前記タスク埋め込みネットワークを前記所与のタスクの観測−アクションのペアの第２のセットに適用することであって、前記観測−アクションのペアの第１のセット及び第２のセットが互いに素である、前記第２のセットに適用することと、
を含む、前記サポートセット及び前記クエリセットを生成することと、
前記制御システムのための訓練可能なパラメータの値を決定するために前記制御システムの損失関数を最適化することであって、前記制御システムの前記損失関数が前記タスク埋め込みネットワークの損失関数の関数であり、前記タスク埋め込みネットワークの前記損失関数が、前記サポートセットと前記クエリセットの類似基準の比較に基づく、前記最適化することと、
を行わせ、
所与のタスクの前記クエリセットタスク埋め込みと、前記所与のタスクの前記サポートセットタスク埋め込みとの間の類似基準が、前記所与のタスクの前記クエリセットタスク埋め込みと、前記所与のタスクではないタスクのサポートセットタスク埋め込みとの間の類似基準に比較される、
前記非一時的なコンピュータ可読記憶媒体。
【請求項１７】
前記制御システムが、前記入力データと、前記タスク埋め込みネットワークからの前記タスク埋め込みとを、前記制御可能デバイスのためのアクションデータにマッピングするためのポリシーを適用する制御ネットワークを備え、
前記制御システムの前記損失関数が、前記制御ネットワークの損失関数の関数であり、
所与のタスクのための前記制御ネットワークの前記損失関数が、前記サポートセットのポリシー損失及び前記クエリセットのポリシー損失を含む、
請求項１６に記載の媒体。
【請求項１８】
前記観測−アクションデータのペアのそれぞれの中の観測データが、それぞれ前記観測−アクションデータのペアと関連付けられたアクションの前に取り込まれる、前記制御可能デバイスを特徴付ける少なくとも１つの画像を表す画像データを含み、
前記観測データはタスクの実行中に取り込まれている、請求項１６または請求項１７に記載の媒体。
【請求項１９】
前記タスク埋め込みネットワークの前記損失関数がヒンジ損失関数を含み、前記類似基準がドット積類似を含む、請求項１６〜１８のいずれか１項に記載の媒体。
【請求項２０】
前記命令が、プロセッサによって実行されるとき、前記コンピューティングデバイスに、
第１のコンテキストでロボットデバイスによって実行されているタスクを示す観測データを受け取ることと、
訓練後に前記制御システムの前記タスク埋め込みネットワークを前記観測データに適用してタスク埋め込みを生成することと、
第２のコンテキストでの前記ロボットデバイスのための前記タスク埋め込み及び知覚データを、前記ロボットデバイスのための一連の制御アクションに繰り返しマッピングすることであって、前記知覚データが、前記第２のコンテキストでの制御アクションの実行に続いて更新され、再マッピングされる、前記繰り返しマッピングすることと、
を行わせる、
請求項１６〜１９のいずれか１項に記載の媒体。
【請求項２１】
ロボットデバイスの制御ネットワークであって、前記制御ネットワークが、
タスクの１つ以上の実演から生成された前記タスクの表現を含むタスク埋め込みを受け取ることと、
前記ロボットデバイスの複数の連続する観測を前記ロボットデバイスのためのそれぞれの制御命令にマッピングするためのポリシーを適用することと、
を行うように構成され、
前記制御ネットワークによって適用された前記ポリシーは、前記タスク埋め込みを使用して、前記ロボットデバイスの前記複数の連続する観測全体で調整される、
前記制御ネットワーク。
【請求項２２】
前記制御命令がモータ制御命令を含み、前記制御ネットワークが、前記モータ制御命令を使用して、前記ロボットデバイスの１つ以上のモータを制御するように構成される、請求項２１に記載の制御ネットワーク。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、本明細書ではタスク埋め込み(task embedding)と呼ぶ、タスクの表現を使用した、ロボットデバイスなどのデバイスの制御に関する。特定の実施形態では、本発明は、タスクをデバイスによって実行することを可能にするようにタスクの実演の少なくとも１つの観測を処理することに関する。本発明は、排他的ではないが、特に、模倣学習(imitation learning)及び少数ショットラーニング（ｆｅｗ−ｓｈｏｔ  ｌｅａｒｎｉｎｇ）の分野に関する。
【背景技術】
【０００２】
人間及び動物は、非常に少ない例から新しい情報を迅速に学習することが可能であり、明らかにその生涯を通じて「学習する方法を学習する」自らの能力を向上させる。ロボットなどのデバイスに類似した能力を与えることによって、広範囲の技能を効率的に獲得することが可能になり、既存の知識を新しい環境及びタスクに適応させることが可能になるであろう。
【０００３】
人間及び動物の学習能力を模倣しようと試みる２つの分野が、模倣学習及びメタ学習である。模倣学習は、実演者を観測することによってタスクを学習することを目的とする。メタ学習は、機械に学習することを学習する方法を教えることを目的とする。画像認識における多くのワンショットラーニング方法及び少数ショットラーニング方法は、（例えば、試験時に）少数の例から学習することが所望されるメタ学習の１つの形態である。これらの場合、システムは、単一のタスクで訓練し、そのタスクのまだ見たことのない例に関して試験する通常の手法よりむしろ、新しいタスクを学習するその能力に関して試験される。メタ学習の一般的な形態は、再発、メトリックラーニング、オプティマイザの学習、及びモデルに依存しない（ｍｏｄｅｌ−ａｇｎｏｓｔｉｃ）メタ学習（ＭＡＭＬ）を含む。別の手法は、エージェントが所与の実演を記述する報酬関数を推定しようと試みる逆強化学習である。
【０００４】
模倣学習における一般的な問題は、そのようなシステムを訓練するために必要とされる大量のデータである。少数ショットラーニングは、実際に達成するのが困難である。多くの場合、タスクは独立して学習され、あるタスクを学習することによって別のタスクの学習が加速されないという問題がある。
【０００５】
ロボット工学における新たな傾向は、エンドツーエンドで未処理のセンサデータから直接的に制御を学習することである。そのような手法は、広範囲のタスクを学習するには十分に一般的である可能性があり、そのような手法は、視覚と制御との間の調整、または動的な環境を有するタスクにおいてなど、ロボット工学の旧い方法が困難であることに気付いたタスクを実行できることが示されてきた。しかしながら、これらの解決策は、多くの場合、最初からその技能を学習し、大量の訓練データを必要とする。これを所与として、データ効率を高める方法を開発することが所望されている。
【０００６】
Ｃｏｎｆｅｒｅｎｃｅ  ｏｎ  Ｒｏｂｏｔ  Ｌｅａｒｎｉｎｇ、２０１７で発表されたＣ．Ｆｉｎｎ、Ｔ．Ｙｕ、Ｔ．Ｚｈａｎｇ、Ｐ．Ａｂｂｅｅｌ、及びＳ．Ｌｅｖｉｎｅによる論文「Ｏｎｅ−ｓｈｏｔ  ｖｉｓｕａｌ  ｉｍｉｔａｔｉｏｎ  ｌｅａｒｎｉｎｇ  ｖｉａ  ｍｅｔａ−ｌｅａｒｎｉｎｇ」では、ロボットが学習方法を学習することを可能にし、ロボットが新しいタスクをエンドツーエンドで、単一の視覚実演から学習することを可能にするメタ−模倣学習方法が提示されている。いくつかの他のタスクからの実演データは、新しいタスクの効率的な学習を可能にするために再利用される。観測を予測されたアクションにマッピングするポリシーが訓練される。モデルに依存しないメタ学習（ＭＡＭＬ）の拡張機能が、模倣学習を提供するために提示される。この場合、メタ訓練中、実演のペアが、訓練−バリデーションのペアとして使用される。メタ試験時に、新しいタスクのための１つの実演が提供され、モデルが、その新しいタスクのためのポリシーを獲得するために更新される。その結果、ポリシーは、新しいタスクの観測に基づいて出力を予測することを可能にする。ポリシーのパラメータは、ニューラルネットワークアーキテクチャのためのパラメータである。ニューラルネットワークアーキテクチャは、ＲＧＢ画像を画像特徴の中にマッピングする。それらの画像特徴は、ロボットアクションにマッピングされる前に、ロボット構成ベクトル及びバイアスパラメータと連結される。
【０００７】
モデルに依存しないメタ学習は前進の有用な一歩であるが、ロボットシステムに関するいくつかの制限を有している。例えば、ポリシーが訓練されると、ポリシーは、それが試験時に再び例を与えられない限り、訓練中に見たタスクのいずれも達成することができない。また、特定のタスクが学習されると、方法はメタ学習する能力を失い、その１つのタスクにだけ使用できる重みのセットで動きが取れない可能性がある。これを回避する１つの方法は、タスクごとに必要とされる重みのコピーを作成することであるが、これによりスケーラビリティの懸念が生じる。
【０００８】
既存の技術を所与として、新しいタスクを学習するようにロボットデバイスを指導する効率的な方法が望まれている。
【発明の概要】
【課題を解決するための手段】
【０００９】
本発明の第１の態様によれば、タスクの１つ以上の実演を受け取るため、及びタスク埋め込みを生成するためのタスク埋め込みネットワークであって、タスク埋め込みはタスクの表現を含み、各実演は、タスクの実行の１つ以上の観測を含むタスク埋め込みネットワークと、タスク埋め込みネットワークからタスク埋め込みを受け取り、及びロボットデバイスの複数の連続する観測をロボットデバイスのためのそれぞれの制御命令にマッピングするためのポリシーを適用する制御ネットワークとを含むロボットデバイスの制御システムが提供され、制御ネットワークによって適用されたポリシーは、タスク埋め込みネットワークからのタスク埋め込みを使用して、ロボットデバイスの複数の連続する観測全体で調整される。
【００１０】
特定の例では、タスク埋め込みネットワーク及び制御ネットワークは、各々、少なくとも１つの環境での少なくとも１つの訓練タスクの訓練サンプルを含む訓練セットでの共同訓練から生じるそれぞれのパラメータを含み、各訓練サンプルは、所与の環境での所与の訓練タスクの１つ以上の観測と、所与の環境でロボットデバイスによって実行された対応するアクションとを含む。
【００１１】
特定の例では、タスク埋め込みネットワーク及び制御ネットワークの少なくとも１つは、少なくとも１つの訓練タスクの訓練サンプルを含む訓練セットで訓練され、少なくとも１つの訓練タスクは第１のタスクを含み、タスク埋め込みネットワークによって受け取られたタスクは、第１のタスクとは異なる第２のタスクであり、制御ネットワークは、ロボットデバイスの複数の連続する観測を、ロボットデバイスが第２のタスクを実行するためのそれぞれの制御命令にマッピングするためのポリシーを適用するように構成される。
【００１２】
特定の例では、タスクの１つ以上の実演は、第１の環境でのタスクの実行の１つ以上の観測を含み、制御命令は、ロボットデバイスが第２の環境でタスクを実行するための制御命令を含み、第１の及び第２の環境は少なくとも異なる構成を有し、ロボットデバイスの複数の連続する観測は、第２の環境でのロボットデバイスの観測を含む。
【００１３】
特定の例では、タスクの実行の１つ以上の観測は、タスクを実行するロボットデバイスの少なくとも１つの画像を表す画像データを含み、制御命令は、ロボットデバイスの１つ以上のモータのためのモータ制御命令を含む。
【００１４】
特定の例では、タスク埋め込みネットワーク及び制御ネットワークは、各々、少なくとも１つのシミュレーションされた環境での少なくとも１つの訓練タスクの訓練サンプルを含む訓練セットでの共同訓練から生じるそれぞれのパラメータを含み、各訓練サンプルは、所与のシミュレーションされた環境での所与の訓練タスクの１つ以上の観測と、所与のシミュレーションされた環境でロボットデバイスのシミュレーションによって実行された対応するアクションとを含む。
【００１５】
第１の態様の制御システムは、以下に説明する、本発明の第２の態様の任意の特徴を構成し得る。
【００１６】
本発明の第２の態様によれば、ロボットデバイスを制御する方法が提供され、方法は、第１のコンテキストで実行されているタスクの少なくとも１つの観測を受け取ることと、少なくとも１つの観測に基づいてタスク埋め込みを生成することと、第２のコンテキストでロボットデバイスによって実行される連続アクションのために、所与のアクションに先行するときに第２のコンテキストでロボットデバイスと関連付けられた知覚データを受け取ることと、所与のアクションのために、タスク埋め込み及び知覚データをロボットデバイスのための制御命令にマッピングすることと、ロボットデバイスに、制御命令を使用して、所与のアクションを実行するように命令することとを含む。
【００１７】
特定の例では、タスクの少なくとも１つの観測は、少なくとも２つの時間ステップの画像データを含み、少なくとも２つの時間ステップは、タスクが第１のコンテキストで実行される期間を対象にし、画像データは、第１のコンテキストでタスクを実行するロボットデバイスを示す少なくとも１つの画像を表す。
【００１８】
特定の例では、ロボットデバイスと関連付けられた知覚データは、第２のコンテキストでタスクを実行するロボットデバイスを示す少なくとも１つの画像を表す画像データ、及びロボットデバイスの状態データの少なくとも１つを含み、制御命令は、第２のコンテキストでロボットデバイスの移動を可能にする、ロボットデバイスの１つ以上のアクチュエータのための命令を含む。
【００１９】
特定の例では、方法は、少なくとも１つの観測を受け取る前に、タスク埋め込みネットワーク及び制御ネットワークを構成するためにそれぞれのパラメータをロードすることであって、タスク埋め込みネットワークは、タスク埋め込みを生成するために使用されており、制御ネットワークは、タスク埋め込み及び知覚データをロボットデバイスのための制御命令にマッピングするために使用されており、パラメータは、複数の訓練タスクの訓練サンプルを含む訓練データでのタスク埋め込みネットワーク及び制御ネットワークの共同訓練から生じ、訓練サンプルは、実行されている複数の訓練タスクの１つ以上の観測と、訓練タスクを実行するために講じられた対応するアクションとを含む、ロードすることを含む。
【００２０】
特定の例では、方法は、少なくとも１つの観測を受け取る前に、タスク埋め込みを実行するようにタスク埋め込みネットワークを、ならびにタスク埋め込み及び知覚データからロボットデバイスのための制御命令へのマッピングを実行するためのポリシーを適用するように制御ネットワークを、共同で訓練することを含む。これらの例では、タスク埋め込みネットワーク及び制御ネットワークを共同で訓練することは、訓練反復のために、訓練データのセットから訓練タスクのセットをサンプリングすることと、訓練タスクのセットの所与のタスクごとに、タスクを実行するロボットデバイスの観測の第１のセットを含む所与のタスクのサポートセットを決定することと、タスクを実行するロボットデバイスの観測の第２のセットを含む所与のタスクのクエリセットを決定することであって、観測の第１の及び第２のセットは互いに素である、決定することと、タスク埋め込みネットワークを使用して、サポートセットのタスク埋め込み及びクエリセットのタスク埋め込みを計算することと、タスク埋め込みネットワーク及び制御ネットワークの損失関数を初期化することと、訓練タスクのセットの所与のタスクごとに、タスク埋め込みネットワークの損失関数項を計算することであって、損失関数項は、所与のタスクのクエリセットのタスク埋め込みと、所与のタスクのサポートセットのタスク埋め込みとの間の第１の類似基準を、所与のタスクのクエリセットのタスク埋め込みと、所与のタスクではないタスクのサポートセットのタスク埋め込みのセットからのタスク埋め込みとの間の第２の類似基準を比較するヒンジ損失関数を含む、計算することとを含んでよい。訓練反復は、損失関数を最適化して、タスク埋め込みネットワーク及び制御ネットワークのパラメータ値を決定するために繰り返されてよい。タスク埋め込みネットワーク及び制御ネットワークを共同で訓練することは、訓練反復のために、訓練タスクのセットの所与のタスクごとに、制御ネットワークのための少なくとも１つの損失関数項を計算することであって、少なくとも１つの損失関数項は、制御ネットワークを使用し予測された制御命令と、所与のタスクを実行するために講じられたアクションのための制御命令との比較を含む、計算することを含む場合がある。制御ネットワークの少なくとも１つの損失関数項は、所与のタスクのサポートセットのポリシー損失項と、所与のタスクのクエリセットのポリシー損失項とを含む場合がある。これらの例では、タスク埋め込みは、タスクの表現を提供してよい。特性の共有されたセットを有する２つのタスクのタスク埋め込みは、特性の異なるセットを有する２つのタスクのタスク埋め込みよりも埋め込み空間でより近い場合がある。これらの例では、タスク埋め込みネットワーク及び制御ネットワークのパラメータのセットは、シミュレーションされたロボットデバイスを使用し、シミュレーションされた環境で学習され得る。
【００２１】
本発明の第３の態様によれば、コンピュータ実行可能命令を含む非一時的なコンピュータ可読記憶媒体が提供され、コンピュータ実行可能命令は、プロセッサによって実行されるとき、コンピューティングデバイスに、入力データをタスク埋め込みにマッピングするように構成された少なくとも１つのタスク埋め込みネットワークを含む制御システムのために、制御可能デバイスによって１つ以上のコンテキストで実行される１つ以上のタスクのための観測−アクションデータのペアを含む訓練データを取得すること、訓練データ内で表される訓練タスクのセットのそれぞれにサポートセット及びクエリセットを生成することであって、訓練タスクのセットの所与のタスクのために、サポートセットタスク埋め込みを生成するためにタスク埋め込みネットワークを所与のタスクの観測−アクションのペアの第１のセットに適用することと、クエリセットタスク埋め込みを生成するためにタスク埋め込みネットワークを所与のタスクの観測−アクションのペアの第２のセットに適用することであって、観測−アクションのペアの第１の及び第２のセットが互いに素である、第２セットに適用することとを含む、サポートセット及びクエリセットを生成することと、制御システムのための訓練可能なパラメータの値を決定するために制御システムの損失関数を最適化することであって、制御システムの損失関数はタスク埋め込みネットワークの損失関数の関数であり、タスク埋め込みネットワークの損失関数は、サポートセット及びクエリセットの類似基準の比較に基づく、最適化することと、を行わせ、所与のタスクのクエリセットタスク埋め込みと所与のタスクのサポートセットタスク埋め込みとの間の類似基準は、所与のタスクのクエリセットタスク埋め込みと、所与のタスクではないタスクのサポートセットタスク埋め込みとの間の類似基準に比較される。
【００２２】
特定の例では、制御システムは、入力データ及びタスク埋め込みネットワークからのタスク埋め込みを制御可能なデバイスのアクションデータにマッピングするためのポリシーを適用する制御ネットワークを含み、制御システムの損失関数は、制御ネットワークの損失関数の関数であり、所与のタスクのための制御ネットワークの損失関数は、サポートセットのポリシー損失及びクエリセットのポリシー損失を含む。
【００２３】
特定の例では、観測−アクションデータのペアのそれぞれの中の観測データは、それぞれ観測−アクションデータのペアと関連付けられたアクションの前に取り込まれる、制御デバイスを特徴付ける少なくとも１つの画像を表す画像データを含み、観測データは、タスクの実行中に取り込まれている。
【００２４】
特定の例では、タスク埋め込みネットワークの損失関数はヒンジ損失関数を含み、類似基準はドット積類似を含む。
【００２５】
特定の例では、命令は、プロセッサによって実行されるとき、コンピューティングデバイスに、第１のコンテキストでロボットデバイスによって実行されているタスクを示す観測データを受け取らせ、訓練の後に制御システムのタスク埋め込みネットワークを観測データに適用してタスク埋め込みを生成させ、第２のコンテキストでのロボットデバイスのためのタスク埋め込み及び知覚データを、ロボットデバイスのための一連の制御アクションに繰り返しマッピングさせ、知覚データは、第２のコンテキストでの制御アクションの実行に続いて更新され、再マッピングされる。
【００２６】
非一時的なコンピュータ可読記憶媒体は、プロセッサによって実行されるとき、コンピューティングデバイスに本明細書に説明する方法のいずれかを実行させるコンピュータ実行可能命令を含む場合がある。
【００２７】
本発明の第４の態様によれば、ロボットデバイスの制御ネットワークが提供され、制御ネットワークは、タスクの１つ以上の実演から生成されたタスクの表現を含むタスク埋め込みを受け取り、ロボットデバイスの複数の連続する観測をロボットデバイスのためのそれぞれの制御命令にマッピングするためのポリシーを適用するように構成され、制御ネットワークによって適用されたポリシーは、タスク埋め込みを使用し、ロボットデバイスの複数の連続する観測全体で調整される。
【００２８】
特定の例では、制御命令はモータ制御命令を含み、制御ネットワークは、モータ制御命令を使用し、ロボットデバイスの１つ以上のモータを制御するように構成される。
【００２９】
さらなる特徴及び利点は、添付図面に関して行われる、例としてのみ示される以下の説明から明らかになる。
【図面の簡単な説明】
【００３０】
【図１】一例に係るロボットデバイスの制御システムを示す概略図である。
【図２】一例に係るロボットデバイスを示す概略図である。
【図３】Ａ〜Ｄは、一例で観測及び／または実行され得る異なるタイプのタスクを示す概略図である。
【図４】一例に係る制御システムの訓練を示す概略図である。
【図５Ａ】一例に係るタスク埋め込みの生成を示す概略図である。
【図５Ｂ】図５Ａの例で生成されたタスク埋め込みを使用するロボットデバイスの制御を示す概略図である。
【図６】一例に係るタスク埋め込みネットワークの動作を示す概略図である。
【図７】一例に係るロボットデバイスを制御するための方法を示す流れ図である。
【図８】一例に係る制御システムを訓練するための方法を示す流れ図である。
【図９】一例に係るコンピュータプログラム命令を含む非一時的なコンピュータ可読媒体を示す概略図である。
【発明を実施するための形態】
【００３１】
本明細書に説明する特定の例は、（本明細書で「タスク埋め込み」と呼ぶ）実行されるタスクの埋め込みを組み込む制御システムと、デバイス制御命令を生成する制御システムとを提供する。これらの例はタスクを埋め込み、異種であるタスクは互いから少し離れて配置されるのに対し、例えば視覚態様及び／または制御態様において類似するタスクは、埋め込み空間内で互いの近くに配置される。このタスク埋め込み空間は（例えば、１０〜１２８の次元性を有する）多次元である場合がある。タスク埋め込みを使用すると、新しいタスクが以前に見たタスクに対してどれほど類似し得るのかなど、情報をゼロショット様式で新しい見慣れないタスクから推論する可能性を開きながらも、少数ショットラーニングが可能になる。
【００３２】
本明細書に説明する特定の例は、１つ以上の実演を所与として、まだ見たことのないタスクの新しいバリエーションを実行しようと試みるためのアクション（例えば、モータ速度）を出力するように共同で訓練されるタスク埋め込みネットワーク及び制御ネットワークを含む。タスク埋め込みネットワークは、デバイス制御命令の形態でアクションを出力するために、環境（例えば、現実世界または仮想世界）の継続して受け取られる観測とともに、制御ネットワークによって使用されるタスクのコンパクトな表現を学習するように構成され得る。これらの例は、学習できるタスクの数に対する厳しい制限を回避し、メタ訓練の間または後に以前に学習したタスクを容易に忘れない。特定の例では、タスク埋め込みネットワークは、試験中に実演者から視覚情報を受け取る場合がある。これは、タスクを実行するロボットデバイスのビデオのフレームの形式である場合がある。視覚情報を使用することによって、例は、人間の実演からの学習に適切となる。
【００３３】
本明細書に説明する特定の例は、例えば視覚的に誘導される操作タスクに関して、ワンショットまたは少数ショットの方法で視覚運動制御を学習する能力を提供する。特定の例は、相対的な手法と比較されると、より高い成功率を達成する。
【００３４】
特定の例は、さらに、シミュレーションされたデータポイント及び現実世界のデータポイントの混合を可能にし、例えばシミュレーションされた環境での訓練を、現実世界でタスクを実行するときに使用できるようにし、大規模な一般化のための道筋を提供する。現実世界の観測からエンドツーエンドシステムで必要とされる多数の訓練例を取得するのが困難である場合があるため、これは望ましい。本明細書に説明する特定の例は、ロボットが、シミュレーションされた環境でメタ学習するように訓練されているのにも関わらず、現実世界での単一の実演から新しいタスクを学習することを可能にする。
【００３５】
本明細書に説明する特定の例は、モータ制御を学習するコンテキストで行動クローニングを提供する。行動クローニングは、エージェントが、実演を所与として、教師あり学習のやり方で観測からアクションへのマッピングを学習する模倣学習の１つの形態と見なし得る。特定の場合、モータ制御命令は、学習された埋め込みまたはメトリック空間に基づいて直接的に学習され得る。
【００３６】
図１は、例に係るロボットデバイスの制御システム１１０の例１００を概略で示す。図１の制御システム１１０は、タスク埋め込みネットワーク１２０と、制御ネットワーク１３０とを含む。タスク埋め込みネットワーク１２０は、タスクの実演１４０を受け取る。タスクの実演１４０は、タスクの実行の１つ以上の観測を含む場合がある。図１の例では、単一の実演１４０が受け取られる。しかしながら、それ以外の場合図１に類似する場合がある他の例で、タスクの複数の実演は、タスク埋め込みネットワーク１２０によって受け取られる場合がある。タスクは、例えば、実行されるべきである行為または仕事である。例えば、タスクは、特定の目的または目標が達成されると無事に完了したと見なし得る。したがって、タスクは、事前に定められた目的または目標を達成するために実行される一連のアクションとして定義され得る。例えば、タスクはレセプタクルＹに物体Ｘを配置する、またはオブジェクトＸを場所Ｙに移動する等、特定の方法で環境内で利用可能なオブジェクトを操作することを含む場合がある。ロボットデバイスのコンテキストでの一連のアクションは、移動及び／またはタスクを実行するアクチュエータ起動のセットを含んでよい。タスク埋め込みネットワーク１２０は、１つ以上の実演１４０に基づいて、タスクの表現を含むタスク埋め込み１５０を生成するように構成される。
【００３７】
図１の制御ネットワーク１３０は、タスク埋め込みネットワーク１２０からタスク埋め込み１５０を受け取る。しかしながら、他の例では、図１の制御ネットワーク１３０に類似するまたはそれ以外の場合同じである制御ネットワークは、代わりに、例えば適切なネットワークを介して、ストレージから、またはコンピュータデバイスもしくはサーバデバイスなどの追加の電子機器からなど、タスク埋め込みネットワーク１２０とは異なる構成要素から、タスク埋め込み１５０を受け取る場合がある。
【００３８】
また、図１の制御ネットワーク１３０は、ロボットデバイスの複数の連続する観測１６０を受け取り、ロボットデバイスの複数の連続する観測１６０をロボットデバイスのためのそれぞれの制御命令１７０にマッピングするためのポリシーを適用する。制御ネットワーク１３０によって適用されるポリシーは、タスク埋め込みネットワーク１２０からのタスク埋め込み１５０を使用し、ロボットデバイスの複数の連続する観測１６０全体で調整される。制御ネットワーク１３０によって生成された制御命令１７０は、次いでタスクを実行するようにロボットデバイスを制御するために使用され得る。この場合の調整は、入力としてタスク埋め込み１５０及び複数の連続する観測１６０のそれぞれを受け取る関数としてポリシーを適用することを含む場合があり、所与の観測の場合、出力は異なるタスク埋め込みで異なる場合がある。図の制御ネットワーク１３０として使用され得る例の制御ネットワークのさらなる説明は、図４、図５ａ、及び図５ｂに関して提供される。
【００３９】
図２は、ロボットデバイス２１０の実施例２００を概略的に示す。ロボットデバイスは例えば、一連のアクションを実行するよう制御されることが可能であるマシンである。ロボットデバイスは、特定の移動または操作のセットを実行するように、制御命令に基づいて自律的に動作することが可能であってもよい。ロボットデバイス（ロボットと称されることもある）は、様々な異なる形式を取ってもよい。例えば、ロボットは、ロボットが実行することを意図するタスクに応じた異なる形状または構造により製造されてもよい。
【００４０】
図２の実施例では、ロボットデバイス２１０は、三次元（３Ｄ）空間内に静的に据え付けられる。このケースでは、ロボットデバイス２１０の基盤２３０は、表面２２０に固定される。しかしながら、ロボットデバイス２００の部分（このケースでは、ロボットデバイス２００のアーム）は、３Ｄ空間により移動すること、及び空間内の物体と相互作用することが可能である。基盤２３０は、表面２２０の上部でロボットデバイス２１０の回転を可能にすることができ、または回転を可能にしないことがある。ロボットデバイス２００のアームは、４つの関節２３２、２３４、２３６、２３８を介して、端から端の様式で接続された５つの要素２３１、２３３、２３５、２３７、２４０を含む。関節２３２、２３４、２３６、２３８は、アームの要素２３１、２３３、２３５、２３７、２４０の回転移動、並進移動、回転移動もしくは並進移動の両方、または他のタイプの移動を可能にすることができる。この実施例における基盤２３０から最も遠いロボットアームの要素２４０は、エンドエフェクタと称されることがある、ロボットの手である。ロボットの手２４０は、物体をつかむこと、物体を持ち上げること、または物体を移動させることなどの様々な異なるタスクを実行するために使用されてもよい。ロボットデバイスのエンドエフェクタのタイプは、ロボットデバイスが実行することを意図するタスクに依存してもよく、したがって、他の実施例におけるロボットの手とは異なってもよい。例えば、エンドエフェクタは、洗浄タスクを実行することを意図するロボットデバイスに対する真空ノズルエンドエフェクタまたは表面拭き取りエンドエフェクタであってもよい。
【００４１】
図２に示される実施例の３Ｄ空間は、表面２２０によって支持された第１の物体２２２及び第２の物体２２４を含む。ここで、「物体」は、例えば、ロボットデバイスがそれと相互作用することができる材料の存在を有するいずれかの可視の物またはエンティティを指してもよい。「物体」は、人間がラベル付けすることができる事物の集合に対応してもよい。ここで、物体は、広義に考えられ、とりわけ、壁、ドア、床、及び人と共に、家具、他のデバイス、及び家の中の従来の物体、並びに／または外部の空間などのエンティティを含む。図２における３Ｄ空間が表面２２０と共に示されるが、これは、全ての実装態様におけるケースである必要はない。例えば、環境は、大気空間であってもよく、または地球圏外の空間内にあってもよい。
【００４２】
図２のロボットデバイス２１０は、実施例にすぎず、他の実施例が想定されることを認識されよう。例えば、ロボットデバイスは、適当な位置に固定されなくてもよい。そのようなロボットデバイスは、それ自体が移動可能であってもよい。ロボットデバイスの移動を可能にするために、そのようなデバイスは、ロボットデバイスが三次元（３Ｄ）空間をナビゲートすることを可能にするアクチュエータを含んでもよい。それらのアクチュエータは、ホイール、せん孔機構、回転子などを含んでもよい。例えば、ロボットデバイスは、自律的な空中モバイルデバイス及び／もしくは陸上モバイルデバイスであってもよく、または自律的な空中モバイルデバイス及び／もしくは陸上モバイルデバイスを含んでもよい。他のケースでは、基盤とは異なるロボットデバイスの部分は、表面もしくは他の物体に対して固定されてもよく、及び／またはロボットデバイスは、図２に示されるのとは異なる構造もしくは配列を有してもよい。
【００４３】
図３Ａ、３Ｂ、３Ｃ、及び３Ｄは、実施例において観察及び／または実行することができる異なるタイプのタスクを示す概略図である。
【００４４】
図３Ａ及び３Ｂは各々、手を伸ばすタスクの実施例を提供する。図３Ａ及び３Ｂの手を伸ばすタスクは、ロボットデバイス３１０が第３の物体３２６に対して手を伸ばすことを伴う。この実施例におけるロボットデバイス３１０は、図２のロボットデバイス２１０と同様であるロボットアームである。しかしながら、図３Ａ及び３Ｂのロボットデバイス３１０は、基盤３１２、関節３１６を介して接続された２つの要素３１４、３１８、及びロボットの手３２０を含み、したがって、図２のロボットデバイス２１０よりも少ない構成要素を含む。図３Ｂでは、明確にするために、ロボットデバイス３１０の構成要素のラベル付けは省略されていることに留意されよう。
【００４５】
この実施例における第３の物体３２６は、特定の色の物体である（図３Ａ及び３Ｂでは、第３の物体３２６内の斜めの線のパターンを介して概略的に示される）。第３の物体３２６は、表面３００によって支持され、表面３００にロボットデバイス３１０の基盤３１２が固定される。第１の物体３２２及び第２の物体３２４も、図３Ａ及び３Ｂでは表面３００上にある。加えて、図３Ｂは、表面３００上に第４の物体３２８を含む。第１の物体３２２、第２の物体３２４、及び第４の物体３２８は、第３の物体３２６とは異なる色の物体である。これは、図３Ａ及び３Ｂでは、第１の物体３２２内のドットパターンによって、第２の物体３２４内の水平線パターンによって、及び第４の物体３２８内パターンなしによって示される。
【００４６】
この実施例では、したがって、タスクは、特定の色の物体（このケースでは、第３の物体３２６）に対して手を伸ばすことに対応すると考えられてもよい。このケースでは、手を伸ばすタスクは、他の色の物体（図３Ａでは、第１の物体３２２及び第２の物体３２４、並びに第１の物体３２２、第２の物体３２４、及び第４の物体３２８）が存在するときに実行され、他の色の物体は、ロボットデバイス３１０が正しい物体に手を伸ばすことを阻害することがあるので、阻害するものと考えられてもよい。
【００４７】
第１の物体３２２、第２の物体３２４、及び第３の物体３２６の配列は、図３Ａ及び３Ｂでは異なり、図３Ｂは、第４の物体３２８をも含む。しかしながら、図３Ａ及び３Ｂの各々は、他の物体のいずれでもない第３の物体３２６に向かって手を伸ばすロボットデバイス３１０を示す。故に、図３Ａ及び３Ｂの各々は、異なる配列に関わらず、同一のタスクのそれぞれの観察に対応すると考えられてもよい。例えば、図３Ａ及び３Ｂは、それらの実施例の各々では、様々な物体の異なる位置に起因して、異なるコンテキストまたは異なる環境内での同一のタスクの観察に対応すると考えられてもよい。
【００４８】
タスクの実演は、例えば、図３Ａ及び３Ｂに示される観察などの１つ以上の観察を含む。観察は、例えば、タスクの実行を捕捉する記録または他のデータに対応する。特定のケースでは、観察は、タスクを実行するエンティティの環境内に位置する捕捉デバイスからの画像（例えば、ビデオフレーム）を含んでもよい。いくつかのケースでは、それにも関わらず、観察は、それでもなおタスクのシミュレートされた実行を捕捉する、シミュレートされたタスクの仮想観察であってもよい。仮想観察は、予め定義されたカメラ姿勢または構成から捕捉された、シミュレートされた３Ｄ環境のレンダリングされた画像を含んでもよい。仮想観察は加えてまたは代わりに、１つ以上の要素及び関節またはシミュレートされたロボットデバイスに対する位置データ及び／または方位データを含んでもよい。実演では、タスクは、人間もしくは他の動物などのいずれかの適切なエンティティによって、または無生物物体もしくは人工物体もしくはロボットデバイス（例えば、図３Ａ及び３Ｂのロボットデバイス３１０）などのデバイスによって、またはいずれかのそのようなエンティティのシミュレーションによって実行されてもよい。タスクを実演するエンティティは、タスクを実行することになるエンティティとは異なってもよい。典型的には、観察は、タスクを実行するエンティティの観察を含む。例えば、図３Ａ及び３Ｂでは、観察（この実施例では、画像である）は、ロボットデバイス３１０を含む。観察は概して、タスクの一部として操作されることになる物体など、タスクの実行に関与する他のエンティティまたは物体に関連するデータをも含む。例えば、図３Ａ及び３Ｂでは、観察は、第３の物体３２６を含み、第３の物体３２６は、タスクを実行するために手を伸ばされることになる物体である。観察はまた、タスク自体の一部を形成しないが、それでもなお、タスクの実演が実行される時に存在することがある他のエンティティまたは物体を表すデータを含んでもよい。そのような物体は、タスクの実行の間に操作されない、タスクが実演される環境の背景にある物体を含んでもよい。例えば、図３Ａ及び３Ｂの観察は各々、表面３００及び他の物体（図３Ａでは、第１の物体３２２及び第２の物体３２４、並びに図３Ｂでは、第１の物体３２２、第２の物体３２４、及び第４の物体３２８）を含む。
【００４９】
観察は、タスク埋め込みネットワーク１２０と互換性を有するいずれかの適切なフォーマットにあってもよく、その結果、タスク埋め込みネットワーク１２０は、観察に基づいて、タスクを表すタスク埋め込みを生成することができる。例えば、タスクの観察は、タスクを実行するエンティティの少なくとも１つの画像を表す画像データを含んでもよい。少なくとも１つの画像は、いずれかの適切なフォーマットにあってもよい、エンティティの二次元画像であってもよい。例えば、画像データは、グレースケール、または、例えば、色帯もしくは色チャネルごとに０〜２５５の輝度レベル（８ビットデータに対して）により記憶することができる、画像の各々の画素の強度値を含んでもよい。画像がカラー画像であるとき、強度もしくは輝度の画素値または各々の画素は、色チャネルごとに別個に記憶されてもよい。例えば、ＲＧＢ（赤、緑、青）色空間またはＹＵＶ色空間（Ｙが色のルミナンスを表し、Ｕが色の青成分とルミナンスとの間の差を表し、Ｖが色の赤成分とルミナンスとの間の差を表す）などにある３つの原色によって画素が表される場合、各々の画素の視覚的外観は、その１つが原色ごとにある、３つの強度値によって表されてもよい。そのようなケースでは、画像データは、タスクの実行の間の異なるそれぞれの時間に（または、タスクの実行の直前もしくは直後）にエンティティを各々が捕捉する一連の画像を含んでもよい。例えば、画像データは、エンティティがタスクを実行することを開始する前のエンティティの第１の画像を表すデータを含んでもよい。そのようなケースにおける画像データは、タスクの実行の後のエンティティの第２の画像を表すデータをも含んでもよい。２つの画像を比較することによって、エンティティによって実演されるタスクが判定されてもよい。他のケースでは、画像データは、タスクの結果の画像を含んでもよい。例えば、図３Ａ及び３Ｂに関して、観察は、図３Ａ及び３Ｂにおいて提示されるシーンの画像の形式にあってもよい。図３Ａ及び３Ｂは、ロボットデバイス３１０が第３の物体３２６に向かって手を伸ばすと共に、タスクの実行の間のロボットデバイス３１０の位置を示す。
【００５０】
他の実施例では、画像データは、ビデオデータから導出されてもよい。ビデオデータは、時間と共に変化する画像データを含むと考えられてもよい。そのようなケースでは、画像データは、ビデオの複数のフレームを含んでもよい。各々のフレームは、３Ｄ空間の画像が捕捉される期間内の特定の時間ｔに関連してもよい。フレームは概して、測定されたデータの２Ｄ表現から構成される。例えば、フレームは、時間ｔにおける記録された画素値の２Ｄアレイまたはマトリックスを含んでもよく、したがって、時間ｔにおいて記録された静止画像と同等であってもよい。
【００５１】
また更なる実施例では、画像データは、測光データに加えて、例えば、色値または強度値を表す深度データを含んでもよい。深度データは、深度データを取得するために使用される捕捉デバイスからの距離のインジケーションを含んでもよく、例えば、各々の画素値または画像要素値は、捕捉デバイスからの３Ｄ空間の部分の距離を表してもよい。図３Ｃ及び３Ｄは、ロボットデバイス３６０の画像３５０及び３５５を示す。それらの画像は、ビデオデータのフレームを含んでもよい。１つのケースでは、ロボットデバイス３６０は、図２に示されたロボットデバイス２１０を含んでもよい。別のケースでは、ロボットデバイス３６０は、例えば、仮想環境内で動作するロボットデバイス２１０のシミュレートされたバージョンを含んでもよい。この後者のケースでは、画像３５０及び３５５は、仮想環境からのレンダリングされた画像を含んでもよい。図３Ｃの画像３５０は、ロボットデバイス３６０が２つのレセプタクル３６２及び３６４と共位置にある環境またはコンテキストを示す。画像３５０は、タスクの完了に続く環境を示す。このケースにおけるタスクは、レセプタクル３６２に物体３７０を置くことである。図３Ｄの画像３５５は、タスクが実行される前のロボットデバイス３６０を示す。このケースでは、画像３５５は、２つの異なる形状のレセプタクル３６６及び３６８、並びに異なる形状の物体３７２を有する環境またはコンテキストを示す。特定の構成では、画像３５５は、画像３５０からの異なるタスクを示すように（例えば、物体３７２が物体３７０とは異なるように）撮影されてもよい。画像３５０及び３５５の環境も異なると考えられてもよい。他の構成では、画像３５０及び３５５は、２つの異なる環境またはコンテキスト内で共通タスク（例えば、レセプタクルに物体を置くこと）を示すと考えられてもよい。特定の実装に対して選択された構成は、訓練時間、実演時間、及び試験時間の間にデータをどのように配列するかに影響を与える。
【００５２】
図４は、制御システム４１０の訓練の実施例４００を示す概略図である。図４の制御システム４１０は、図１の制御システム１１０と同様である。図１の対応する要素と同様である図４の要素は、３００だけインクリメントされた同一の参照符号によりラベル付けされ、対応する説明が適用されるように採用される。
【００５３】
図４は、タスク埋め込みネットワーク４２０及び制御ネットワーク４３０が少なくとも１つの環境内で少なくとも１つの訓練タスクの訓練サンプルを含む訓練セット４４１に対して共同で訓練される実施例を示す。図４では、訓練セット４４１は、Ｎ個の訓練タスク（Φ１…ΦＮ）を含み、各々のタスクは、図４では４４２として示される。タスク埋め込みネットワーク４２０及び制御ネットワーク４３０を共同で訓練することは、制御ネットワーク４３０に対してより有用であるタスク埋め込みが取得されることを可能にし、次いで、所与のタスクを実行することに成功するようロボットデバイスを制御する制御命令を出力する制御ネットワーク４３０の能力を改善することができる。
【００５４】
図４では、Ｎ個の訓練タスクに対して複数の訓練サンプルが存在する。各々の訓練タスクΦに対して異なる数の訓練サンプルｓが存在してもよい。図４では、第１のタスクΦ１は、Ｋ１個の訓練サンプルを有し、第２のタスクΦ２は、Ｋ２個の訓練サンプルを有し、Ｎ番目の訓練タスクΦＮは、一連のＫＮ個のサンプル（ｓ１…ｓＫＮ）を含む。各々の訓練サンプルｓｘは、軌道であると考えられてもよく、軌道は、タスクの実行の間に、ｔ＝１からｔ＝Ｔｘまでの一連の時間ステップにわたって一連の観察−アクションのペアを表す。したがって、各々のサンプルは、
ｓｘ＝｛（ｏ１，ａ１），…，（ｏＴｘ，ａＴｘ）｝
として数学的に表されてもよく、ｓは、軌道を表し、ｏは、観察を表し、ａは、アクションを表す。各々のサンプルは、異なる数の時間ステップを有してもよい。訓練セット４４１は、観察を表すデータ及び対応するアクションを表すデータを含むタプルを含んでもよい。そのようなケースでは、観察及びアクションは、例えば、少なくとも１つのベクトル、テンソル、または他の多次元アレイを使用して数値的に表されてもよい。
【００５５】
図４では、第１の訓練タスク４４２、Φ１は、第１の一連のサンプル４４４と関連付けられる。第１の一連のサンプル４４４の第１のサンプル４４６、ｓ１は、第１の時間（ｔ＝１）における観察４４８、ｏ１及びアクション４５２、ａ１を含む観察−アクションのペアを含む。第１のサンプル４４６は更に、他の時間（ｔ＝２からｔ＝Ｔ１まで）における追加の観察−アクションのペアを含む。観察は、例えば、図３Ａ〜３Ｄを参照して説明されるように、画像から導出された数値データを含んでもよい。アクションは、所望のモータ運動データまたは有効にされたモータ運動データなど、ロボットデバイスに対するモータコマンドから導出された数値データを含んでもよい。特定のケースでは、観察は、ロボットデバイスの画像が捕捉されるときの時間におけるモータの角度及び／または位置など、ロボットデバイスの状態データを含んでもよい。ロボットデバイスの状態データは、タスク埋め込みネットワーク４２０を訓練するために使用されなくてもよいが、制御ネットワーク４３０を訓練するために含まれてもよい。
【００５６】
このようにして、各々の訓練サンプルは、所与の環境内での所与の訓練タスク及び所与の環境内でロボットデバイスによって実行された対応するアクションの１つ以上の観察を含んでもよい。したがって、各々の訓練サンプルは、特定のタスクの所与の観察に応答して、制御システム４１０がロボットデバイスによって実行されたアクションを学習するための機会を提供する。これは、制御システムが所与のタスクについてのポリシーを学習することを可能にする。このポリシーは、例えば、タスク特有ポリシーを提供するように、タスク埋め込みネットワーク４２０によって取得されたタスク埋め込みに依存する。制御システム４１０は、所与のタスクについてのポリシーが、そのタスクについてのいわゆる「エキスパート」ポリシーを模倣し、または「エキスパート」ポリシーに厳密に一致し、または「エキスパート」ポリシーに遵守するように訓練されてもよい。エキスパートポリシーは、例えば、所望のタスクの観察（または、一連の観察）の入力が、所望のタスクを実行するようロボットデバイスを指示する制御命令の生成をもたらす理想のポリシーである。しかしながら、制御システム４１０によって学習されたポリシーは、いくつかのケースでは、制御システム４１０によって出力された制御命令が、その意図したもの（及び、観察または観察（複数可）におけるその実演）とは異なるタスクを実行するようロボットデバイスを制御することができる点で、エキスパートポリシーとはある程度異なってもよい。概して、それにも関わらず、制御システム４１０の訓練は、学習されたポリシーとエキスパートポリシーとの間の差を最小にすることが意図される。実際に、エキスパートポリシーの出力を表すデータは、訓練サンプルからのアクションデータとして取られてもよく、例えば、それらのアクションは、「エキスパート」アクションを表す。
【００５７】
制御システム４１０を訓練する際に使用される観察は、図３Ａ及び３Ｂを参照して説明された観察と同様であってもよい。故に、観察は、現実環境内での現実世界ロボットデバイスによるタスクの実行の観察であってもよい。代わりに、訓練サンプルは、少なくとも１つのシミュレートされた環境内の少なくとも１つの訓練タスクを含んでもよい。そのようなケースでは、各々の訓練サンプルは、所与のシミュレートされた環境内の所与の訓練タスク及び所与のシミュレートされた環境内でロボットデバイスのシミュレーションによって実行された対応するアクションの１つ以上の観察を含んでもよい。これは、所与のタスクを実行するようロボットデバイスを手動で制御することによって訓練サンプルを生成することよりも、シミュレートされた訓練サンプルを生成するのにより容易であり、またはより速いことができるので、訓練工程の拡張性を改善することができる。訓練サンプルは、人間によって、または決定論的制御の下で、タスクの実行の間に捕捉されたデータに基づいて生成されてもよい。例えば、訓練サンプルは、ロボットデバイスを制御することによって定義されたタスクを人間が完了する記録を表してもよく、及び／または明確にプログラムされたタスクをロボットデバイスが実行する記録を表してもよい。訓練サンプルは次いで、実行される異なるタスクの記録の混合を含んでもよい。
【００５８】
図４の制御システム４１０などの制御システムを訓練する実施例は、図８を参照して更に説明される。
【００５９】
図５Ａは、タスク埋め込み５５０の生成の実施例５００を示す概略図である。図５Ａにおけるタスク埋め込み５５０は、タスク埋め込みネットワーク５２０及び制御ネットワーク５３０を含む制御システム５１０によって生成される。図５Ａの制御システム５１０は、例えば、図１及び４の制御システム１１０、４１０と同様であってもよい。しかしながら、他の実施例では、図５Ａのタスク埋め込み５５０と同様のタスク埋め込みは、図５Ａの制御ネットワーク５３０とは異なり、または別個のシステムである制御システムの一部を形成する、タスク埋め込みネットワーク５２０などのタスク埋め込みネットワークによって生成されてもよい。
【００６０】
タスク埋め込みネットワーク５２０は、入力としてタスクの実演５４０（ｄ）を受信する。図５Ａにおける実演５４０は、手動コントローラ５８５を使用してタスクを実行するようロボットデバイス５８０を制御することによって取得される。手動コントローラ５８５は、仮想現実コントローラ及び／または拡張現実コントローラを含んでもよい。しかしながら、他の実施例では、実演は、異なって取得されてもよい。例えば、実演は、タスクを実行するロボットデバイスのシミュレーションの仮想実演であってもよい。他のケースでは、ロボットデバイス５８０は、手動コントローラ５８５を使用するのではなく、電子制御システムを使用して、例えば、予め定義された制御命令のセットを使用して、タスクを実行するよう制御されてもよい。
【００６１】
ロボットデバイス５８０によるタスクの実行は、この実施例では、ビデオカメラである捕捉デバイス５９０によって捕捉される。ビデオカメラは、タスクの実行の間のロボットデバイス５８０の一連のフレームを取得する。これから、タスクの実演５４０は、図３Ａ及び３Ｂを参照して説明されたように取得されてもよい。図５Ａの実施例では、実演５４０は、ロボットデバイス５４０のＴ個の観察からの少なくとも最初の観察及び最後の観察を含む（図では、画像｛ｉ１，ｉＴ｝として示される）。特定のケースでは、タスクの実行は、ｔ＝１からｔ＝Ｔまでの一連の時間ステップにおいて継続的に捕捉されてもよく、及び／または静止フレームは、時間ｔ＝１及びｔ＝Ｔにおいて捕捉されてもよい。両方のケースでは、タスクの実行の「前」及び「後」の時間を表す２つのフレームが提供されてもよい。特定のケースでは、複数の観察、例えば、ｔ＝１からｔ＝Ｔまでの全てのフレームが提供されてもよい。各々の観察は、捕捉デバイス５９０によって捕捉されたビデオのフレームに対応してもよい。他の実施例では、それにも関わらず、実演５４０は、タスクを実行するロボットデバイス５４０の単一の観察を含んでもよく、並びに／または捕捉デバイス５９０からのビデオデータのフレームに加えてデータを含んでもよい（例えば、モータ位置データ及び／もしくは物体位置データを含む）。
【００６２】
実演５４０は、タスク埋め込み５５０を生成するよう、タスク埋め込みネットワーク５２０によって処理される。図６を参照して更に説明されるように、タスク埋め込みネットワーク５２０は、タスクの表現に実演５４０をマッピングする。
【００６３】
図５Ａでは、制御ネットワーク５３０などの特定の構成要素は使用されない。図５Ａは、演算の「実演」段階を表してもよく、図４は、演算の「訓練」段階を表し、図５Ｂは、演算の「試験」段階または「実行」段階を表す。制御ネットワーク５３０が「実演」段階では使用されないので、特定のケースでは、制御ネットワーク５３０は、この段階では存在しなくてもよい。例えば、タスク埋め込みネットワーク５２０のみが設けられる必要があり、及び／またはタスク埋め込みネットワーク５２０は、制御ネットワーク５３０にリモートに位置するコンピューティングデバイスによって実装されてもよい。例えば、「実演」段階は、「試験」段階からリモートに行われてもよく、テレプレゼンスの形成を可能にする。
【００６４】
図５Ｂは、図５Ａの実施例５００において生成されたタスク埋め込み５５０を使用したロボットデバイス５９０の制御の実施例５５５を示す概略図である。図５Ａ及び５Ｂの実施例では、タスク埋め込み５５０は、タスク埋め込みネットワーク５２０から制御ネットワーク５３０に送信される。しかしながら、他の実施例では、タスク埋め込みネットワーク５２０によって生成されたタスク埋め込み５５０は、記憶装置に記憶されてもよく、その後、制御ネットワーク５３０によって記憶装置から取り出されてもよく、またはそうでなければ、制御ネットワーク５３０によって受信されてもよい。記憶装置は、制御ネットワーク５３０のローカル記憶装置または制御ネットワーク５３０の外部にある記憶装置であってもよい。
【００６５】
制御ネットワーク５３０は、一連の時間ステップｔにわたってロボットデバイス５８０の複数の連続した観察５６０、ｏｔを受信する。観察５６０は、ロボットデバイス５８０を取り囲む現在の環境内のロボットデバイス５８０を示し、現在の環境は、タスクの実演５４０の間のロボットデバイス５８０の環境とは異なってもよい。図５Ｂにおける観察は、捕捉デバイス５９０からの画像データｉｔ、ロボットデバイス５８０からの角度データθｔ、及びロボットデバイス５８０からの位置データｐｔを含む。角度データθｔは、例えば、水平面などの固定基準平面もしくは共通基準平面に対して取られる絶対角度、またはロボットデバイスの２つの接している要素の間で取られる相対角度であってもよい、ロボットデバイスの少なくとも１つの関節のそれぞれの角度を表す。位置データｐｔは、ロボットデバイスのエンドエフェクタまたは他の要素の位置を表してもよい。位置は、基準座標系内の座標を使用して位置を表すことができるように、基準座標系を使用して測定されてもよい。他の実施例では、位置は、ロボットデバイスの基盤に対するロボットデバイスのエンドエフェクタの位置など、ロボットデバイスの異なる要素に対するロボットデバイスの所与の要素の相対位置であってもよい。角度データθｔ及び位置データｐｔを含めることによって、制御システムは、観察されたタスクを実行するようロボットデバイスをより正確に制御することができる。しかしながら、いくつかのケースでは、角度データθｔ及び／または位置データｐｔは、ロボットデバイスの観察から省略されてもよい。各々のデータ項目は、テンソル、例えば、データのベクトル表現を含んでもよい。よって、図５Ｂにおける制御ネットワーク５３０によって受信された各々の観察５６０は、画像データ、角度データ、及び位置データの融合を含んでもよく（例えば、連結されたベクトルもしくは多次元アレイ）、または観察は、別個の画像データ、角度データ、及び位置データを含んでもよく、別個の画像データ、角度データ、及び位置データはその後、制御ネットワーク５３０によって融合されてもよい。他の実施例では、制御ネットワーク５３０はまさに、捕捉デバイスから画像データｉｔを受信してもよい。
【００６６】
制御ネットワーク５３０は、タスク埋め込み５５０を使用してロボットデバイス５９０の観察５６０をマッピングするためのポリシーを適用する。これは、図４及び８を参照して説明された「訓練」手順とは対照的に、「試験」手順と称されてもよい。この工程は、
ｐｒｏｃｅｄｕｒｅ  ＴＥＳＴ（Ｅ，Ｅｎｖ）
ｗｈｉｌｅ  ｔａｓｋ  ｎｏｔ  ｃｏｍｐｌｅｔｅ  ｄｏ
ｏ＝Ｅｎｖ．ＧｅｔＯｂｓｅｒｖａｔｉｏｎ（）
ａ＝π（ｏ，Ｅ）
Ｅｎｖ．Ｓｔｅｐ（ａ）
として疑似コードにおいて表現されてもよく、Ｅは、図５Ａを参照して説明されたようにタスク埋め込みネットワーク５２０によって生成されたタスク埋め込み５５０を表し、Ｅｎｖは、ロボットデバイス５８０を取り囲む環境を表し、ｏは、ロボットデバイス５８０の観察５６０を表し、πは、ロボットデバイス５８０によって実行されることになるアクションａに観察ｏをマッピングするために制御ネットワーク５３０によって適用されるポリシーを表す。制御ネットワーク５３０によって適用されるポリシーは、畳み込みニューラルネットワーク（ＣＮＮ）などのニューラルネットワークによって表されてもよい。例えば、所与の観察５６０の画像データｉｔは、テンソルとして、例えば、ベクトルまたは多次元アレイとして表すことができる、画像特徴を抽出するようＣＮＮの畳み込み層によって処理されてもよい。例えば、ＣＮＮの畳み込み層は、画像特徴ベクトルを出力してもよい。観察５６０を表す観察データが画像データに加えて角度データ及び位置データを含む場合、角度データ及び位置データは、角度ベクトル及び位置ベクトルのそれぞれの形式であってもよい。そのようなケースでは、画像データ、角度データ、及び位置データは、連結したベクトルを取得するよう、画像特徴ベクトル、角度ベクトル、及び位置ベクトルを連結することによって融合されてもよい。連結したベクトルは次いで、ポリシーを実装するために、ＣＮＮの少なくとも１つの完全結合層など、ＣＮＮの残りの部分によって処理されてもよい。観察データが角度データ及び／または位置データを欠いている他の実施例では、ポリシーを実装するよう、画像特徴ベクトル自体がＣＮＮの残りの部分によって処理されてもよい。
【００６７】
そのようなケースでは、タスク埋め込み５５０は、ポリシーπに従ってロボットデバイス５８０によって実行されることになるアクションａを生成するよう、観察５６０と組み合わされてもよく、観察５６０と融合されてもよく、またはそうでなければ観察５６０と共に処理されてもよい。例えば、タスク埋め込みベクトルの形式にあるタスク埋め込み５５０は、制御ネットワーク５３０によって処理される前に、観察５６０（これもベクトルの形式にあってもよい）と連結されてもよい。例えば、連結したベクトルは、タスク埋め込み５５０を表すタスク埋め込みベクトルを、ＣＮＮの畳み込み層を使用して画像データを処理することによって取得された画像特徴ベクトルと連結することによって生成されてもよい。連結したベクトルは次いで、ロボットデバイス５８０によって実行されることになるアクションａを生成するよう、ＣＮＮの少なくとも１つの完全結合層など、ＣＮＮの残りによって処理されてもよい。上記説明されたように、いくつかのケースでは、タスク埋め込みベクトル及び画像特徴ベクトルも、連結したベクトルがＣＮＮの残りによって処理される前に、連結したベクトルを生成するよう、角度ベクトル及び／または位置ベクトル（観察５６０の一部である場合）と連結されてもよい。
【００６８】
この手順は、タスクを実装するためにロボットデバイス５８０によって実行されることになる一連のアクションを生成するよう、ロボットデバイス５８０の一連の観察５６０に対して反復して実行されてもよい。各々の反復に対し、それにも関わらず、ロボットデバイス５８０によって実行されることになるタスクは、同一のままであるが（例えば、所与のタスク埋め込み５５０が一定である）、観察は全体的に、時間の変化である（例えば、ロボットデバイス５８０がタスクを実行するよう移動するにつれて）。
【００６９】
図５Ｂの制御ネットワーク５３０は、一連の制御命令としてロボットデバイス５８０によって実行されることになるアクションａを生成する。この実施例では、制御命令は、モータ制御命令５７０（図５Ｂでは、連続した時間ステップｔにわたる一連のモータ制御命令５７０を表すようｍｔとして示される）を含む。モータ制御命令５７０は、モータアクションのシーケンスを実行するようロボットデバイス５８０を制御するために使用される。例えば、モータ制御命令５７０は、例えば、ロボットデバイス５８０の１つ以上のモータを制御することによって、特定のアーム関節角度、エンドエフェクタ位置、関節速度、姿勢測定、及び位置などに適合するようロボットデバイス５８０を指示することができる。このようにして、ロボットデバイス５８０は、手動コントローラ５８５を介した人間の入力を必要とすることなく、制御ネットワーク５３０によってタスクを実行するよう制御されてもよい。
【００７０】
図５Ａ及び５Ｂの実施例では、タスク埋め込みネットワーク５２０及び制御ネットワーク５３０のうちの少なくとも１つは、第１のタスクを含む、少なくとも１つの訓練タスクの訓練サンプルを含む訓練セットに対して訓練されてもよい。しかしながら、タスク埋め込み５５０を生成するようタスク埋め込みネットワーク５２０によって受信されたタスクは、第１のタスクとは異なる、第２のタスクであってもよい。言い換えると、タスク埋め込みネットワーク５２０は、試験時間において使用されるタスクとは異なるタスクに対して訓練されてもよい。例えば、第１のタスクは、赤い物体に対して手を伸ばすタスクであってもよく、第２のタスクは、青い物体に対して手を伸ばすタスクであってもよい。それでもなお、タスク埋め込みネットワーク５２０を使用することによって、制御システム５１０は、第２のタスクが第１のタスクとはどのように異なるかを捕捉するタスク埋め込み５５０に第２のタスクを適切にマッピングすることが可能であることができる。これは次いで、制御ネットワーク５３０が、第１のタスクではなく第２のタスクを実行する制御命令をより適切に判定することを可能にすることができる。このようにして、制御システム５１０は、タスク埋め込みネットワーク５２０及び／または制御ネットワーク５３０を再訓練することなく、例えば、新たなタスクを学習すること、またなそうでなければ新たなタスクに適合することがより良好に可能である。故に、ロボットデバイス５８０は、効率的な方式において新たなタスクの１つ以上の実演から新たなタスクを学習することができる。
【００７１】
いくつかのケースでは、タスク埋め込み５５０を取得するために使用されるタスクの実演５４０は、第１の環境内でのタスクの実行の観察を含んでもよい。しかしながら、第２の環境内でタスクを実行することが望ましいことがあり、よって、ロボットデバイス５８０の複数の観察５６０は、第２の環境内でのタスクの実行の観察を含んでもよい。第１の環境及び第２の環境は、少なくとも相互に異なる構成を有してもよい。例えば、同一の物体は、第１の環境及び第２の環境内に存在してもよい。しかしながら、第１の環境及び第２の環境内の物体の相対位置は、相互に異なってもよい。他のケースでは、それにも関わらず、第１の環境及び第２の環境は、異なる位置に対応してもよい。例えば、第１の環境は、屋内環境であってもよく、第２の環境は、屋外であってもよい。それでもなお、第１の環境と第２の環境との間の差に関わらず、実施例における制御システム５１０は、第２の環境内のロボットデバイス５８０の観察５６０に基づいて、ロボットデバイス５８０が第２の環境内でタスクを実行するための制御命令を生成することが可能である。例えば、タスク埋め込みネットワーク５２０は、例えば、環境内の変化に相対的に不変である、タスクの表現が取得されることを可能にする。したがって、タスクを実行するためのロボットデバイスの観察された環境が、タスクが実演される環境とは異なる場合でさえ、タスク埋め込みネットワーク５２０によって取得されたタスク埋め込み５５０のロバスト性は、タスクの所与の実演に対する適切なアクションを正確に予測する制御ネットワーク５３０の能力を改善する。
【００７２】
図６は、タスク埋め込みネットワーク６２０の演算の実施例６００を示す概略図である。タスク埋め込みネットワーク６２０は、第１のタスクのサンプル６１０及び第２のタスクのサンプル６１５を受信する。各々のサンプルのセットは、特定のタスクに対する「サポートセット」であると考えられてもよい。第１のタスクのサンプル６１０は、図ではその１つが参照符号６１２によりラベル付けされる、第１のタスクの４つの観察を含む。第２のタスクのサンプル６１５は、図ではその１つが参照符号６１６によりラベル付けされる、第２のタスクの２つの観察を含む。
【００７３】
タスク埋め込みネットワーク６２０を訓練することは、例えば、訓練サンプルとしてサンプル６１０、６１５の各々を使用することを伴う。タスク埋め込みネットワーク６２０は、それぞれのタスクの表現にサンプル６１０、６１５を組み込んでもよく、またはそうでなければそれぞれのタスクの表現にサンプル６１０、６１５をマッピングしてもよく、それぞれのタスクの表現は、タスクのコンパクトな表現であってもよい。そのような表現は、センテンスと称されてもよい。タスクの表現は、潜在表現であってもよい。潜在表現は、例えば、タスク埋め込みネットワーク６２０によって推論される、例えば、タスクの観察に基づいた推論された表現である。タスクは、典型的には、テンソルまたはベクトルなどの多次元数値表現を使用して、数値的に表されてもよい。タスク埋め込みは、組み込まれた空間内のタスクの位置がそのタスクのタイプに関する情報を提供するので（例えば、それが押し進めるタスク、持ち上げるタスクなどであるかどうか）、サンプル６１０、６１５自体よりも有用であることができる。対照的に、実演の観察の画素値は、その観察において実行されるタスクのタイプに関する制限された情報、及びタスクの異なる観察と同様であるかまたは異なるかどうかについての制限された情報を提供することができる。
【００７４】
図６は、簡易化された埋め込み空間６４０内へのサンプル６１０、６１５の各々の埋め込みを示す。理解することができるように、第１のタスクのサンプル６１０は、埋め込み空間６４０内で共に相対的に近く、埋め込み空間６４０内で第２のタスクのサンプル６１５よりも相互に近い。所与のタスクに対して埋め込みネットワーク６２０によって生成された埋め込みは、集約関数を使用して集約されてもよく、集約関数は、平均関数または平均値関数であってもよい。このようにして、第１のタスクを表す第１の埋め込み６４２及び第２のタスクを表す第２の埋め込み６４６が取得されてもよい。
【００７５】
その後、タスクの更なるサンプル６３０は、タスク埋め込みネットワーク６２０を使用して処理されてもよい。更なるサンプル６３０は、「クエリセット」であると考えられてもよい。タスク埋め込みネットワーク６２０に対する理想的な埋め込みまたは最適な埋め込みを学習するよう、損失関数が計算されてもよい。図８を参照して更に説明されるように、損失関数は、異なるタスクの見本との特定のタスクの見本の比較を伴う、タスク埋め込み損失であってもよく、その結果、タスク埋め込みネットワーク６２０は、埋め込み空間６４０の異なる領域に異なる質問をマッピングするよう学習する。
【００７６】
例えば、訓練の間、損失関数項は、比較することができる更なるサンプル６３０（クエリセット）に対応するタスクのタスク埋め込み６５４を、第１の埋め込み６４２及び第２の埋め込み６４６（例えば、サポートセットごとのタスク埋め込み）と比較してもよい。例えば、構成可能なマージンを有するヒンジ損失関数が使用されてもよい。そのような損失関数は、第１のタスクを表す第１の埋め込み６４２に第１のタスクのサンプルをマッピングし、第１のタスクのサンプルから離れて第２のタスクを表す第２の埋め込み６４６を移動させるよう、タスク埋め込みネットワーク６２０を教えるために使用されてもよい。
【００７７】
このようにして、タスク埋め込みネットワーク６２０は、共有された特性のセットを有する２つのタスクに対するタスク埋め込みが、異なる特性のセットを有する２つのタスクに対するタスク埋め込みよりも埋め込み空間６４０内で近いように、タスク埋め込みを生成するために使用されてもよい。例えば、図６では、更なるタスク６３０は、第１のサンプルセット６１０よりも第２のサンプルセット６１５に近いと見なされる。これは、埋め込み空間６４０内のそれらの距離に基づいて、タスクの間の類似性が識別されることを可能にする。更に、初見のタスクは、タスク埋め込みネットワーク６２０が訓練された他のタスクへのそれらの類似性を表すことができる、埋め込み空間６４０内の適切な位置にマッピングされてもよい。このようにして、タスクをマッピングすることによって、制御ネットワークは、タスク埋め込みネットワーク６２０または制御ネットワークを再訓練することなく、初見のタスクを実行するようロボットデバイスを指示する適切な制御命令のセットをより容易に識別することが可能であることができる。図６では、矢印６５２、６５４、及び６５６は、埋め込み空間にサンプルをマッピングする動作を表してもよい。ヒンジランク損失は、更なるサンプル６３０のドット積を導出することができ、その結果、２つの他のタスクセットの間の差（線６６０によって表される）は、少なくともマージン程度に大きい（角度６６５によって表される）。タスク埋め込みネットワークの訓練は、所与のタスクについてのサポートセットに対する集約タスク埋め込みを、所与のタスクについてのクエリセットにより近くに移動させる役割を果たしてもよく、また、異なるタスクに対する集約タスク埋め込みを、所与のタスクについてのクエリセットから更に離れて移動させる（いわゆる「否定文」）役割を果たしてもよい。
【００７８】
図７は、実施例に従ったロボットデバイスを制御する方法７００を示す。ロボットデバイスは、それぞれの現実環境またはシミュレートされた環境内でアクションを実行することが可能ないずれかの現実デバイスまたはシミュレートされたデバイスを含んでもよい。例えば、ロボットデバイスは、前の図のいずれかに示されたようなロボットデバイスを含んでもよい。
【００７９】
ブロック７１０において、第１のコンテキストにおいて実行されるタスクの少なくとも１つの観察が受信される。前に議論されたように、タスクは、予め定義された目標または目的を達成するよう実行されることになるアクションのセットとして定義されてもよい。用語「コンテキスト」は、タスクに対する環境的構成を指す。例えば、第１のコンテキストは、特定の空間内に配列された特定の物体のセットを含む第１の環境的構成に関連してもよい。タスクの観察は、タスクと関連付けられたアクションが実行される１つ以上の期間にまたがった知覚データを含んでもよい。例えば、観察は、環境内の特定の位置に環境内の特定の物体を置いているロボットまたは人間など、タスクを実行するエンティティのビデオデータを含んでもよい。ビデオデータは、タスクが実行されるときの時間に及ぶ少なくとも２つのフレームを含んでもよい。タスクの観察は、タスクの実演であると見なされてもよい。知覚データは、タスクが実行されている環境に位置するいずれかのセンサから捕捉されてもよい。例えば、ビデオデータと共に、またはビデオデータの代わりに、観察は、姿勢データ、位置データ、モータ制御データ、環境内の物体からのデータ、接触データまたは接点データ、及び音声データなどを含んでもよい。
【００８０】
ブロック７２０において、少なくとも１つの観察に基づいてタスク埋め込みが生成される。これは、観察からの知覚データを処理することを含んでもよい。この処理は、訓練されたニューラルネットワークアーキテクチャによって実行されてもよい。このアーキテクチャは、前に説明されたようなタスク埋め込みネットワークを含んでもよい。知覚データは、例えば、１つ以上のｎ次元アレイとして、数値形式において、処理されてもよく、訓練されたニューラルネットワークアーキテクチャに供給されてもよく、ｎは、１以上である。ビデオデータのフレームを表す画像は、値の一次元アレイまたは二次元アレイとして供給されてもよく、例えば、ビデオデータは、各々のフレームがサイズｘ×ｙ×ｃのアレイであるように処理されてもよく、ｘは、画像幅であり、ｙは、画像の高さであり、ｃは、色チャネルの数である。タスク埋め込みは、予め定義されたサイズ（例えば、１０〜１２８）の数値のアレイを含んでもよい。タスク埋め込みのサイズは、実装態様に従って変化してもよく、構成可能パラメータとして設定されてもよい。画像データの処理に対し、訓練されたニューラルネットワークアーキテクチャは、畳み込みニューラルネットワークアーキテクチャを含んでもよい。
【００８１】
ブロック７１０及び７２０は、タスク埋め込みがタスクに対して生成される、いわゆる「実演」段階を表す。これは、ブロック７３０〜７５０まで異なる時間に実行されてもよい。１つのケースでは、ブロック７３０〜７５０は、取得されたタスク埋め込みに適用されてもよい。例えば、タスク埋め込みは、メモリからロードされてもよく、ブロック７３０〜７５０を実行するよう供給されてもよい。ブロック７３０〜７５０は、ロボットデバイスがタスク埋め込みによって表されるタスクを実行するよう指示される、「試験」段階または「実行」段階を表す。実行段階は、第２のコンテキストにおいて実行される。第２のコンテキストは、第１のコンテキストとは異なってもよい。例えば、タスクは、物体の第１の位置及び構成を有する第１の環境内で実演されてもよく、それは、物体の第２の位置及び構成を有する第２の環境内でこのタスクを実行することが望ましいことがある。特定のケースでは、第１のコンテキスト及び第２のコンテキストは、異なる時間において、及び／または環境内に存在する異なる物体のセットとの、共通環境、例えば、共通位置を含んでもよい。この意味における「物体」は、現存するエンティティ及び現存しないエンティティ、並びに静的物体及び動的物体の両方を指してもよい。
【００８２】
実演段階において実演され、次いで、実行段階において模倣されるいくつかのタスクの非限定的な例は、２つの異なる環境内でドアを開けること（例えば、ロボットアームを使用して）、試験設定及び製造設定において２つの部品を組み立てること、第１の設定において特定の物体を特定のレセプタクルに置くこと、及び異なる設定において同一の物体を同一のレセプタクルに置くこと、異なる環境内で特定の物体（例えば、赤い十字）に移動すること、並びに現実世界環境内でモータアクションの同一のシーケンスを実行することなどを含む。
【００８３】
図７におけるブロック７３０〜７５０は、第２のコンテキストにおいてロボットデバイスによって実行されることになる連続したアクションに対して繰り返されるように構成される。ロボットデバイスは、ブロック７１０において受信された観察内で特徴付ける同一のエンティティであってもよく、またはそれは、異なるエンティティであってもよい。例えば、ブロック７３０〜７５０に関連して使用されるロボットデバイスは、現実世界デバイスを含んでもよい一方で、観察のエンティティは、同一のデバイスのシミュレーションを含んでもよく、またはブロック７３０〜７５０に関連して使用されるロボットデバイスは、観察内で特徴付ける人間によって実行されるアクションを模倣することを試みてもよい。
【００８４】
ブロック７３０において、第２のコンテキストにおけるロボットデバイスと関連付けられた知覚データは、所与のアクションに先行する時間に受信される。知覚データは、ロボットデバイスを特徴付けるビデオデータのフレーム、並びに図２に示されたロボットデバイスに対するアーム関節角度、エンドエフェクタ位置、関節速度、及び姿勢測定などのモータ運動データを含んでもよい。ブロック７３０〜７５０の初期の稼働では、知覚データは、第２のコンテキストにおけるロボットデバイスの観察、及びロボットデバイスに対する初期のモータ構成を含んでもよい。
【００８５】
ブロック７４０において、タスク埋め込み及び知覚データは、所与のアクションについてのロボットデバイスに対する制御命令にマッピングされる。このマッピングは、例えば、数値のアレイに形式において、タスク埋め込み及び知覚データを入力として捉える訓練されたニューラルネットワークアーキテクチャによって実行される。タスク埋め込みは、ブロック７４０の繰り返しごとに同一の値を有してもよく、知覚データは、ロボットデバイスが環境と相互作用するにつれて、及び／または環境が経時的に変化するにつれて変化してもよい。制御命令は、所望のモータまたは関節角度、所望のモータまたは関節速度、所望のキーポイントまたは関節位置、及び所望の姿勢構成のうちの１つ以上など、ロボットデバイスを駆動するために使用される数値のアレイを含んでもよい。制御命令は、ブロック７３０において受信されたいずれかのモータ運動データと同一のフォーマットであってもよく、または同一のフォーマットになくてもよい。マッピングを実行するために使用されるニューラルネットワークアーキテクチャは、実装態様に応じて多数の構成を有してもよい。例えば、知覚データが画像データを含む場合、訓練されたニューラルネットワークアーキテクチャは、畳み込み層を含んでもよく、畳み込み層では、１つ以上の層の出力にいずれかの非線形性を加えたものが、モータ運動データなどの他の知覚データに適用される、フィードフォワード層の１つ以上の出力にいずれかの非線形性を加えたものと組み合わされてもよい。
【００８６】
ブロック７５０において、ロボットデバイスは、制御命令を使用して所与のアクションを実行するよう指示される。これは、数値の一次元アレイまたは多次元アレイにおいて表されるモータ構成に影響を与えることを含んでもよい。ブロック７３０〜７５０は、同期または非同期で実行されてもよい。前者のケースでは、システムクロックは、知覚データが受信されるとき、及びアクションが実行されるときを命令することができる。後者のケースでは、ブロックは、処理が完了するとすぐに連続して実行されてもよく、例えば、制御命令が作動されたことをモータフィードバックが示すと、次いで、知覚データに対する要求が送信されてもよく、ブロック７３０が実行されてもよい。
【００８７】
特定のケースでは、タスクの少なくとも１つの観察は、少なくとも２つの時間ステップの間の画像データを含む。少なくとも２つの時間ステップは、タスクが第１のコンテキストにおいて実行される期間に及ぶ。例えば、２つの時間ステップは、ｔ＝０及びｔ＝Ｔを含んでもよく、タスクは、Ｔ時間単位内に実行される。画像データは、第１のコンテキストにおいてタスクを実行するロボットデバイスを示す少なくとも１つの画像を表してもよい。例えば、それは、ビデオ捕捉デバイスがロボットデバイスを観察するように位置する、所与の時間におけるビデオデータのフレームを含んでもよい。ロボットデバイスと関連付けられた知覚データは、第２のコンテキストにおいてタスクを実行するロボットデバイスを示す少なくとも１つの画像を表す画像データ、及びロボットデバイスについての状態データ、のうちの少なくとも１つを含んでもよい。上記議論されたように、状態データは、モータ構成及び／または運動データを含んでもよい。制御命令は、ロボットデバイスの１つ以上のアクチュエータが第２のコンテキストにおいてロボットデバイスの移動を可能にする命令を含んでもよい。移動は、図２におけるロボットアームの関節など、ロボットデバイスの１つ以上の部分の移動、及び／または第２のコンテキストの環境内のロボットデバイスの位置の変化を含んでもよい。
【００８８】
図７の方法７００は、例えば、ブロック７２０及び７４０のうちの１つ以上を実行するよう、訓練されたニューラルネットワークアーキテクチャを使用して実行されてもよい。１つのケースでは、訓練されたニューラルネットワークアーキテクチャは、ブロック７２０においてタスク埋め込みを生成するタスク埋め込みネットワーク、並びにブロック７４０においてロボットデバイスに対する制御命令にタスク埋め込み及び知覚データをマッピングする制御ネットワークを含む。それらのネットワークは、前に説明されたタスク埋め込みネットワーク及び制御ネットワークの実装態様を含んでもよい。制御ネットワークは、例えば、強化学習アプローチにおいて使用されるように、このマッピングを実行するためのポリシーを使用してもよい。
【００８９】
訓練されたニューラルネットワークアーキテクチャは、タスク埋め込みネットワーク及び制御ネットワークごとのパラメータをロードすることによって、方法７００を実行するよう初期化されてもよい。それらのパラメータは、訓練手順を介して設定された値を有してもよい。訓練手順は、少なくとも１つの観察を受信する前の時点においてローカルまたはリモートに実行されてもよい。例えば、訓練は、訓練セットをローカルに処理し、または訓練セットをリモート位置において処理し、及びローカルに実装された訓練されたニューラルネットワークアーキテクチャにパラメータ値を送信することによって実行されてもよい。パラメータは、複数の訓練タスクの訓練サンプルを含む訓練データに対するタスク埋め込みネットワーク及び制御ネットワークの共同訓練から結果として生じた値を有してもよい。各々の訓練サンプルは、実行される所与の訓練タスク及び訓練タスクを実行するために取られる対応するアクションの１つ以上の観察を含んでもよい。例えば、複数の訓練サンプルは、複数のタスクの各々に対して供給されてもよい。各々の訓練サンプルは、観察データ及びアクションデータを含むタプルを含んでもよく、観察データ及びアクションデータは、数値表現（例えば、値の多次元アレイ）を含んでもよい。観察データは、ブロック７１０及び／またはブロック７３０において受信された観察データと同一の形式のデータであってもよい。アクションデータは、ブロック７３０において受信された知覚データ及び／またはブロック７４０において生成された制御命令と形式を共有してもよい。各々の訓練サンプルは、所与の環境内で関連するタスクを実行するエンティティ（例えば、人間またはプログラムされたロボットデバイス）を記録することによって生成されてもよい。各々の訓練サンプルは、観察及びアクションデータの軌道、例えば、タスクが実行された時間に及ぶ（例えば、時間ステップ０〜Ｔ）タプルのシーケンスを含んでもよい。
【００９０】
１つのケースでは、タスク埋め込みネットワーク及び制御ネットワークの訓練は、共同で実行され、すなわち、両方のネットワークについてのパラメータは、共通訓練手順または共有訓練手順において最適化され、共通訓練手順または共有訓練手順では、一方のネットワークについての誤差が他方のネットワークに対する損失関数において使用されてもよい。ネットワークを共同で訓練することは、より上等且つより有用なタスク埋め込みを可能にし、例えば、タスク埋め込みは、タスク埋め込みネットワークに対する訓練において制御ネットワークについての制御損失を使用することによって、制御ネットワークに対してより大きな有用性を有するように最適化されてもよい。
【００９１】
図８は、タスク埋め込みネットワーク及び制御ネットワークの共同訓練に対する訓練の反復８００を示す。訓練の反復は、タスク埋め込みネットワーク及び制御ネットワークについてのパラメータの最適化を可能にする損失値Ｌｉを生成する。例えば、訓練の目標は、例えば、損失値を算出する損失関数の勾配に基づいて、訓練の反復についてのパラメータの値を更新するよう、微分可能である、２つのネットワークを通じて再度伝播される訓練からの損失値及び誤差を最小化することであってもよい。図８は、例として提供される訓練の反復を実行する方法を示し、様々な他の方法が代わりに使用されてもよく、図８の方法からの変形例が想定される。図８に示される訓練の反復８００は、図４に示された訓練を実装するために使用されてもよい。
【００９２】
ブロック８１０において、訓練データのセットからの訓練タスクのセットがサンプリングされる。例えば、訓練データが複数のタスクについての軌道を含み、各々のタスクが複数の軌道に関連する訓練データを有する場合、次いで、ブロック８１０は、タスクのサブセットを選択することを含んでもよい。サンプリングすることは、タスクのランダムなサンプルを取ることを含んでもよい（例えば、各々のタスクは、訓練タスクのセットに対して等しく選択される尤度を有する）。訓練タスクのセットにあるタスクの数を設定するために、バッチサイズが定義されてもよい。タスクをサンプリングすることは、管理可能な訓練の反復を可能にするが、特定の実施例では省略されてもよく、例えば、訓練タスクのセットは、訓練データにおける全てのタスクを含んでもよい。
【００９３】
本実施例では、ブロック８２０〜８４０は、訓練タスクのセットにおける所与のタスクごとに繰り返される。ブロック８２０において、所与のタスクについてのサポートセットが判定される。サポートセットは、タスクを実行するロボットデバイスの第１の観察のセットを含む。観察は、タスクについての見本の観察のセットからサンプリングされてもよい。例えば、サポートセットは、軌道のランダムにサンプリングされたサブセットから少なくとも観察データを取得することによって生成されてもよい。サポートセットのサイズは、構成可能なパラメータであってもよい。所与のタスクについてのサポートセットは、所与のタスクの見本のグループを表し、例えば、それらは、タスクを「記述する」として捉えられてもよい。タスクの各々の見本は、異なってもよい（例えば、異なる環境構成を有してもよく、異なる時間に実行されるタスクを表してもよく、及び／または共通タスクを実行する際の異なる試みを表してもよい）。ブロック８３０において、所与のタスクについてのクエリセットが判定されてもよい。クエリセットは、所与のタスクを実行するロボットデバイスの第２の観察のセットを含み、第１の観察のセット及び第２の観察のセットは、互いに素である（すなわち、タスクについてのサポートセット及びクエリセットは互いに素である）。クエリセットのサンプリングは、互いに素である制約が適用されると共に、サポートセットに対するサンプリングと同様であってもよい。クエリセットは、タスクの１つ以上の見本を表し、例えば、クエリセットは、タスクを実行するネットワークの能力を試験するために使用される。ブロック８４０において、タスク埋め込みネットワークは、サポートセットに対するタスク埋め込み及びクエリセットに対するタスク埋め込みを算出するために使用される。これは、図７におけるブロック７２０と同様の演算を含んでもよい。例えば、サポートセットにおける複数の見本について、見本ごとのタスク埋め込み（例えば、見本からのビデオデータの初期フレーム及び最終フレームを使用して算出されるような）は、集約関数を使用して組み合わされてもよい。集約関数は、平均関数または平均値関数であってもよく、その結果、サポートセットに対する集約タスク埋め込みが、サポートセットにおける個々の見本ごとのタスク埋め込みの平均値を含む。
【００９４】
ブロック８２０〜８４０が訓練タスクのセットにおける全てのタスクに対して繰り返されると、タスク埋め込みネットワーク及び制御ネットワークに対する損失関数を初期化するよう、ブロック８５０が実行される。これは、損失値、または損失値の成分をゼロに設定することを含んでもよい。ブロック８６０〜８８０は次いで、ブロック８２０及び８３０からのサポートセット及びクエリセット、並びにブロック８４０からのタスク埋め込みを使用して、訓練タスクのセットにおけるタスクごとに繰り返される。
【００９５】
ブロック８６０において、タスク埋め込み損失が判定される。タスク埋め込み損失は、タスク埋め込みネットワークに対する損失関数項から結果として生じる。タスク埋め込みネットワークに対する損失関数項は、特定のタスクの見本を異なるタスクの見本と比較し、その結果、損失値の最適化は、タスク埋め込み空間内の異なるタスクを分離する。１つのケースでは、タスク埋め込みネットワークに対する損失関数項は、クエリセットにおける１つ以上の見本のタスク埋め込みを、所与のタスクについてのサポートセット及び異なるタスクについてのサポートセットの両方の集約タスク埋め込みと比較する。構成可能なマージンを有するヒンジ損失関数が使用されてもよい。ヒンジ損失関数は、図６を参照して説明されたような、埋め込み空間内のタスクの区別を可能にすることができる。ヒンジ損失関数は、所与のタスクについてのクエリセットに対するタスク埋め込みと所与のタスクについてのサポートセットに対するタスク埋め込みとの間の第１の類似性測定値を、所与のタスクについてのクエリセットに対するタスク埋め込みと所与のタスクではないタスクについてのサポートセットに対するタスク埋め込みのセットからのタスク埋め込みとの間の第２の類似性測定値と比較してもよい。異なるタスクのクエリセットにおける見本及びサポートセットについての見本に対して総和が実行されてもよい。１つのケースでは、クエリセットのタスク埋め込みは、所与のタスクでない訓練タスクのセットにおける全てのタスクに対する各々のサポートセットのタスク埋め込みと比較されてもよく、これは、クエリセットにおける見本ごとに繰り返されてもよい。類似性測定値は、２つのタスク埋め込みの間のコサイン距離を含んでもよい。
【００９６】
ブロック８７０において、サポートセットについての制御損失が判定される。制御損失は、制御ネットワークに対する少なくとも１つの損失関数項を算出することから結果として生じる。このケースでは、２つの損失関数項が存在する。少なくとも１つの損失関数項は、制御ネットワークによって予測された制御命令を、所与のタスクを実行するよう実際に取られたアクションに対する制御命令と比較する。ブロック８７０において、損失関数項は、所与のタスクについてのサポートセットに対するポリシー損失項を含む。これは、例えば、サポートセットにおいて、サポートセットのタスク埋め込み及び見本における特定の時間ステップに適用されるような（例えば、特定の観察−アクションペア）ポリシーと、見本における同一の時間ステップに適用されるような「エキスパート」ポリシーまたは理想のポリシーとの間の差を算出することを含んでもよい。実際には、後者のエキスパートポリシーは、特定の観察−アクションペアにおけるアクションの値によって表されてもよい。故に、ブロック８７０は、サポートセットのタスク埋め込み及び見本からの観察に制御ネットワークを適用すること、並びにこの出力を見本からのアクションと比較することを含んでもよい。損失値は、見本ごとのＬ２距離またはサポートセットにおける軌道として算出されてもよい。１つ以上の時間ステップが比較されてもよい。ブロック８８０において、クエリセットについての制御損失を判定するよう、同様の計算が実行されてもよい。これは、同一の演算をクエリセットの見本に適用することを含んでもよい。ブロック８８０は、所与のタスクについてのクエリセットに対するポリシー損失項を算出することを含んでもよい。サポートセット及びクエリセットの両方についての制御損失を算出することは、サポートセットの制御損失がクエリセット損失を使用して学習を補完すること（サポートセット損失を最小化することは、見本依存情報が埋め込み空間を通過することができるように、クエリセット損失を最小化することのより容易なバージョンとして理解することができる）、及び所与の見本を繰り返すことが可能である所望の性質をもたらす（例えば、サポートセットは、クエリセットに関して実行される学習を確認する）、という利点を有する。
【００９７】
ブロック８６０〜８８０の各々の反復、及び各々のブロックからの結果は、損失値Ｌｉを算出するよう合計されてもよい。特定のケースでは、ブロック８６０〜８８０の各々からの結果に重み付けが適用されてもよく、重みは、ネットワークに対するハイパーパラメータである。訓練の反復の出力、Ｌｉは、タスク埋め込みネットワーク及び制御ネットワークについてのパラメータ値を判定するよう、損失関数を反復して最適化するために使用されてもよい。
【００９８】
本明細書で説明される実施例の方法では、タスク埋め込みは、タスクの表現を提供する。例えば、タスク埋め込みは、数値形式で表現される（例えば、浮動小数点値として）タスクの特性の学習された潜在表現であると理解することができる。訓練することは、異なる特性のセットを有する２つのタスクに対するタスク埋め込みよりも、埋め込み空間内で近い共有された特性のセットを有する２つのタスクに対するタスク埋め込みをもたらす。訓練することは、一意なタスクのセットを一群でサンプリングすることを伴ってもよく、「否定的な」埋め込みまたはセンテンスは、一群の全てのその他のタスクから生成されてもよく、例えば、一群の各々のタスクは、一群のあらゆるその他タスクと比較されてもよい。いずれかのヒンジ損失について、マージンが構成可能なパラメータとして設定されてもよい（例えば、０．０１〜１の範囲内で）。特定のケースでは、訓練されたタスク埋め込みネットワークは、タスクを分類するために使用されてもよい。この分類の精度は、一群のその他のタスクに対して埋め込み空間内の最近傍探索を実行することによって推定されてもよい。この実施例では、例えば、ドット積類似性測定値を有するヒンジ損失が使用されるが、他の実施例では、Ｌ２損失または同様のものなどの他の損失関数が使用されてもよい。
【００９９】
図９は、プロセッサ９１０及びコンピュータ実行可能命令９３０を含む非一時的コンピュータ可読記憶媒体９２０の実施例９００を示す。コンピュータ実行可能命令は、プロセッサ９１０によって実行されるとき、プロセッサ９１０を含むコンピューティングデバイスなどのコンピューティングデバイスに、タスク埋め込みネットワークを訓練させる。命令は、上記説明された実施例の方法と同様である、実行される方法をもたらすことができる。
【０１００】
命令９３５を介して、少なくともタスク埋め込みネットワークを含む制御システムに対して訓練データが取得される。タスク埋め込みネットワークは、タスク埋め込みに入力データをマッピングするように構成される。タスク埋め込みネットワークは、前の実施例のいずれかにおいて説明されたようなタスク埋め込みネットワークを含んでもよい。訓練データは、制御可能デバイスによって１つ以上のコンテキストにおいて実行される１つ以上のタスクに対する観察−アクションデータペアを含んでもよい。制御可能デバイスは、ロボットデバイスを含んでもよく、上記言及されたコンピューティングデバイスと同一のデバイスであってもよく、またはそうでなくてもよく、例えば、プロセッサ９１０を含むコンピューティングデバイスは、通信可能に結合されたロボットデバイスを制御し、または１つ以上のリモートデバイスを制御するようタスクを組み込むために使用することができる訓練されたタスク埋め込みネットワークを製造する命令９３０を実行してもよい。
【０１０１】
命令９４０を介して、訓練データ内で表される訓練タスクのセットごとに、サポートセット及びクエリセットが生成される。サポートセット及びクエリセットは、図８のブロック８２０及び８３０を参照して説明されたように生成されてもよい。命令９４０は、訓練タスクのセットにおける所与のタスクについて、サポートセットのタスク埋め込みを生成するために、タスク埋め込みネットワークを所与のタスクに対する観察−アクションペアの第１のセットに適用し、クエリセットのタスク埋め込みを生成するために、タスク埋め込みネットワークを所与のタスクに対する観察−アクションペアの第２のセットに適用するよう、プロセッサに指示することであってもよく、観察−アクションペアの第１のセット及び第２のセットは、互いに素である。観察−アクションペアは、タスク軌道に対する時間ステップを含んでもよい。特定のケースでは、観察データのみがタスク埋め込みを算出するために使用されてもよい。サポートセットのタスク埋め込み及び／またはクエリセットのタスク埋め込みは、上記説明されたような集約タスク埋め込みを含んでもよい。
【０１０２】
命令９５０を介して、制御システムに対する損失関数は、制御システムについての訓練可能なパラメータに対する値を判定するよう最適化される。このケースでは、制御システムに対する損失関数は、タスク埋め込みネットワークに対する損失関数の関数であり、タスク埋め込みネットワークに対する損失関数は、サポートセット及びクエリセットに対する類似性測定値の比較に基づいている。損失関数は、図８におけるブロック８６０において算出されたのと同様の損失関数であってもよい。所与のタスクに対するクエリセットのタスク埋め込みと所与のタスクに対するサポートセットのタスク埋め込みとの間の類似性測定値は、所与のタスクに対するクエリセットのタスク埋め込みと所与のタスクでないタスクに対するサポートセットのタスク埋め込みとの間の類似性測定値と比較されてもよい。タスク埋め込みネットワークに対する損失関数は、ヒンジ損失関数を含んでもよく、類似性測定値は、ドット積類似性を含んでもよい。
【０１０３】
特定のケースでは、制御システムは、タスク埋め込みネットワークからの入力データ及びタスク埋め込みを、制御可能デバイスについてのアクションデータにマッピングするためのポリシーを適用する制御ネットワークを含む。このケースでは、制御システムに対する損失関数は、制御ネットワークに対する損失関数の関数であり、所与のタスクについての制御ネットワークに対する損失関数は、サポートセットについてのポリシー損失及びクエリセットについてのポリシー損失を含む。例えば、制御システムに対する損失関数は、図８におけるブロック８７０及び８８０を参照して説明されたように算出されてもよい。
【０１０４】
特定のケースでは、観察−アクションデータペアの各々の中の観察データは、観察−アクションデータペアのそれぞれと関連付けられたアクションの前に捕捉された制御可能デバイスを特徴付ける少なくとも１つの画像を表す画像データを含む。このケースでは、観察データは、タスクの実行の間に捕捉される。
【０１０５】
命令９３０は、少なくともタスク埋め込みネットワークに対する訓練されたパラメータのセットをもたらす。タスク埋め込みネットワークは次いで、タスクに対するタスク埋め込みを生成するために、第１のコンテキストにおいてロボットデバイスによって実行されるタスクを示す観察データに適用されてもよい。タスク埋め込みは、第１のコンテキストから抽象化する、例えば、他のコンテキストにおいて変化することがある第１のコンテキストの特定の特徴によって強く影響されない潜在表現を提供する、方式においてタスクを表してもよい。タスク埋め込みは、ロボットデバイスに対する高レベル命令の形式として理解することができ、例えば、それは、制御ネットワークが、タスクを実行するようロボットデバイスを制御することを可能にするために、制御ネットワークに供給されてもよい。制御ネットワークは、ロボットデバイスに対する制御アクションのシーケンスに、第２のコンテキストにおけるロボットデバイスに対するタスク埋め込み及び知覚データを反復してマッピングすることによって、ロボットデバイスを制御してもよい。それらのケースでは、知覚データは、第２のコンテキストにおける制御アクションの実行に続いて、更新及び再マッピングされる。
【０１０６】
特定のケースでは、本明細書で説明されるような実施例は、目的が、シミュレーション内で制御ネットワークについてのポリシーを学習し、次いで、追加の訓練がほとんどなくまたは全くなしに、それらを現実世界環境に転送することである、シミュレートされたコンテキストから現実コンテキストにおいて使用されてもよい。これは、現実世界における面倒であり且つ時間がかかるデータ収集に対する必要性を低下させる。シミュレーションの間、例えば、照明位置、カメラ位置、物体の質感、物体サイズ、及び物体形状などの因子を変えるために、ランダム化が適用されてもよい。これは、有用な抽象的なタスク埋め込みが学習されることを可能にする訓練データを提供する。
【０１０７】
本明細書で説明される特定の実施例は、エンドツーエンドのワンショット（または、少なくとも少数ショット）模倣学習を可能にするメタ学習に対するアプローチを提供する。本明細書で説明される特定の実施例は、埋め込みネットワークを介してタスクのコンパクトな記述を学習し、タスクのコンパクトな記述は、同一のタスクの異なる見本に対するアクションを予測するよう、制御ネットワークに条件を設定するために使用されてもよい。実施例の制御システムは、シミュレーションにおいて訓練されてもよく、次いで、現実世界に配備されてもよい。配備されると、ロボットデバイスは、単一の実演または複数の実演から新たなタスクを学習し続けることができる。訓練セットに含まれるタスクを構成することによって、タスク埋め込みネットワークは、広範囲のタスクにわたって一般化することが可能である。特定の実施例では、新たなタスクは、視覚データに基づいて学習されてもよい。これは、試験時間または実行時間に存在することになるエキスパートアクションまたは状態に対する必要性なしに、ロボットデバイスが人間のオペレータによって手動で実行されるタスクを模倣することを可能にする。
【０１０８】
上記実施例は例示的であるとして理解されることになる。更なる実施例が想定される。いずれかの１つの実施例に関連して説明されたいずれかの特徴は、単独で使用されてもよく、または説明された他の特徴との組み合わせで使用されてもよく、また、実施例のいずれかのその他の１つ以上の特徴との組み合わせ、または実施例のいずれかのその他のいずれかの組み合わせで使用されてもよい。更に、添付の請求項の範囲から逸脱することなく、上記で説明されていない同等物及び修正物も採用されてもよい。
【符号の説明】
【０１０９】
１１０  制御システム
１２０  タスク埋め込みネットワーク
１３０  制御ネットワーク
１４０  タスクの実演
１５０  タスク埋め込み
１６０  ロボットデバイスの複数の連続する観測
１７０  ロボットデバイスのためのそれぞれの制御命令
２００  ロボットデバイス
２１０  ロボットデバイス
２２０  表面
２２２  第１の物体
２２４  第２の物体
２３０  基盤
２３１  アームの要素
２３２  関節
２３３  アームの要素
２３４  関節
２３５  アームの要素
２３６  関節
２３７  アームの要素
２３８  関節
２４０  アームの要素
３００  表面
３１０  ロボットデバイス
３１２  基盤
３１４  要素
３１６  関節
３１８  要素
３２２  第１の物体
３２４  第２の物体
３２６  第３の物体
３２８  第４の物体
３５０  画像
３５５  画像
３６０  ロボットデバイス
３６２  レセプタクル
３６４  レセプタクル
３６６  異なる形状のレセプタクル
３６８  異なる形状のレセプタクル
３７０  物体
３７２  物体
４１０  制御システム
４２０  タスク埋め込みネットワーク
４３０  制御ネットワーク
４４１  訓練セット
４４２  第１の訓練タスク
４４４  第１の一連のサンプル
４４６  第１のサンプル
４４８  第１の時間（ｔ＝１）における観察
５１０  制御システム
５２０  タスク埋め込みネットワーク
５３０  制御ネットワーク
５４０  実演
５５０  タスク埋め込み
５６０  観察
５７０  モータ制御命令
５８０  ロボットデバイス
５８５  手動コントローラ
５９０  捕捉デバイス
６１０  サンプル
６１２  参照符号
６１５  第２のサンプルセット
６１６  参照符号
６２０  タスク埋め込みネットワーク
６４０  埋め込み空間
６４２  第１の埋め込み
６４６  第２の埋め込み
６５２  矢印
６５４  矢印
６６０  線
６６５  角度
７００  方法
７１０  ブロック
７２０  ブロック
７３０  ブロック
７４０  ブロック
７５０  ブロック
８１０  ブロック
８２０  ブロック
８３０  ブロック
８４０  ブロック
８５０  ブロック
８６０  ブロック
８７０  ブロック
８８０  ブロック
９１０  プロセッサ
９２０  非一時的コンピュータ可読記憶媒体
９３０  命令
９３５  命令
９４０  命令
９５０  命令
【図１】
2022501725.tif 000003
【図２】
2022501725.tif 000004
【図３Ａ】
2022501725.tif 000005
【図３Ｂ】
2022501725.tif 000006
【図３Ｃ】
2022501725.tif 000007
【図３Ｄ】
2022501725.tif 000008
【図４】
2022501725.tif 000009
【図５Ａ】
2022501725.tif 000010
【図５Ｂ】
2022501725.tif 000011
【図６】
2022501725.tif 000012
【図７】
2022501725.tif 000013
【図８】
2022501725.tif 000014
【図９】
2022501725.tif 000015
【国際調査報告】
2022501725.tif 000016
2022501725.tif 000017
2022501725.tif 000018