JP2022501725A - デバイス制御のためのタスク埋め込み - Google Patents

デバイス制御のためのタスク埋め込み Download PDF

Info

Publication number
JP2022501725A
JP2022501725A JP2021515620A JP2021515620A JP2022501725A JP 2022501725 A JP2022501725 A JP 2022501725A JP 2021515620 A JP2021515620 A JP 2021515620A JP 2021515620 A JP2021515620 A JP 2021515620A JP 2022501725 A JP2022501725 A JP 2022501725A
Authority
JP
Japan
Prior art keywords
task
network
embedding
training
control
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
JP2021515620A
Other languages
English (en)
Inventor
スティーヴン・ロイド・ジェームズ
マイケル・ブロエッシュ
アンドリュー・デイヴィソン
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Ip2ipo Innovations Ltd
Original Assignee
Imperial College Innovations Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Imperial College Innovations Ltd filed Critical Imperial College Innovations Ltd
Publication of JP2022501725A publication Critical patent/JP2022501725A/ja
Withdrawn legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1628Programme controls characterised by the control loop
    • B25J9/163Programme controls characterised by the control loop learning, adaptive, model based, rule based expert control
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1602Programme controls characterised by the control system, structure, architecture
    • B25J9/161Hardware, e.g. neural networks, fuzzy logic, interfaces, processor
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1656Programme controls characterised by programming, planning systems for manipulators
    • B25J9/1661Programme controls characterised by programming, planning systems for manipulators characterised by task planning, object-oriented languages
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/18Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form
    • G05B19/4155Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form characterised by programme execution, i.e. part programme or machine function execution, e.g. selection of a programme
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/004Artificial life, i.e. computing arrangements simulating life
    • G06N3/008Artificial life, i.e. computing arrangements simulating life based on physical entities controlled by simulated intelligence so as to replicate intelligent life forms, e.g. based on robots replicating pets or humans in their appearance or behaviour
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/084Backpropagation, e.g. using gradient descent
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/39Robotics, robotics to robotics hand
    • G05B2219/39376Hierarchical, learning, recognition and skill level and adaptation servo level

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Robotics (AREA)
  • Mechanical Engineering (AREA)
  • Artificial Intelligence (AREA)
  • Evolutionary Computation (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Automation & Control Theory (AREA)
  • Biomedical Technology (AREA)
  • Computing Systems (AREA)
  • Biophysics (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • General Engineering & Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Fuzzy Systems (AREA)
  • Human Computer Interaction (AREA)
  • Manufacturing & Machinery (AREA)
  • Manipulator (AREA)

Abstract

タスクの1つ以上の実演を受け取るため、及びタスク埋め込みを生成するためにタスク埋め込みネットワークを含むロボットデバイスの制御システム。タスク埋め込みはタスクの表現を含み、各実演は、タスクの実行の1つ以上の観測を含む。制御システムは、タスク埋め込みネットワークからタスク埋め込みを受け取るため、及びロボットデバイスの複数の連続する観測を、ロボットデバイスのためのそれぞれの制御命令にマッピングするためのポリシーを適用するために制御ネットワークを含む。制御ネットワークによって適用されたポリシーは、タスク埋め込みネットワークからのタスク埋め込みを使用して、ロボットデバイスの複数の連続する観測全体で調整される。

Description

本発明は、本明細書ではタスク埋め込み(task embedding)と呼ぶ、タスクの表現を使用した、ロボットデバイスなどのデバイスの制御に関する。特定の実施形態では、本発明は、タスクをデバイスによって実行することを可能にするようにタスクの実演の少なくとも1つの観測を処理することに関する。本発明は、排他的ではないが、特に、模倣学習(imitation learning)及び少数ショットラーニング(few−shot learning)の分野に関する。
人間及び動物は、非常に少ない例から新しい情報を迅速に学習することが可能であり、明らかにその生涯を通じて「学習する方法を学習する」自らの能力を向上させる。ロボットなどのデバイスに類似した能力を与えることによって、広範囲の技能を効率的に獲得することが可能になり、既存の知識を新しい環境及びタスクに適応させることが可能になるであろう。
人間及び動物の学習能力を模倣しようと試みる2つの分野が、模倣学習及びメタ学習である。模倣学習は、実演者を観測することによってタスクを学習することを目的とする。メタ学習は、機械に学習することを学習する方法を教えることを目的とする。画像認識における多くのワンショットラーニング方法及び少数ショットラーニング方法は、(例えば、試験時に)少数の例から学習することが所望されるメタ学習の1つの形態である。これらの場合、システムは、単一のタスクで訓練し、そのタスクのまだ見たことのない例に関して試験する通常の手法よりむしろ、新しいタスクを学習するその能力に関して試験される。メタ学習の一般的な形態は、再発、メトリックラーニング、オプティマイザの学習、及びモデルに依存しない(model−agnostic)メタ学習(MAML)を含む。別の手法は、エージェントが所与の実演を記述する報酬関数を推定しようと試みる逆強化学習である。
模倣学習における一般的な問題は、そのようなシステムを訓練するために必要とされる大量のデータである。少数ショットラーニングは、実際に達成するのが困難である。多くの場合、タスクは独立して学習され、あるタスクを学習することによって別のタスクの学習が加速されないという問題がある。
ロボット工学における新たな傾向は、エンドツーエンドで未処理のセンサデータから直接的に制御を学習することである。そのような手法は、広範囲のタスクを学習するには十分に一般的である可能性があり、そのような手法は、視覚と制御との間の調整、または動的な環境を有するタスクにおいてなど、ロボット工学の旧い方法が困難であることに気付いたタスクを実行できることが示されてきた。しかしながら、これらの解決策は、多くの場合、最初からその技能を学習し、大量の訓練データを必要とする。これを所与として、データ効率を高める方法を開発することが所望されている。
Conference on Robot Learning、2017で発表されたC.Finn、T.Yu、T.Zhang、P.Abbeel、及びS.Levineによる論文「One−shot visual imitation learning via meta−learning」では、ロボットが学習方法を学習することを可能にし、ロボットが新しいタスクをエンドツーエンドで、単一の視覚実演から学習することを可能にするメタ−模倣学習方法が提示されている。いくつかの他のタスクからの実演データは、新しいタスクの効率的な学習を可能にするために再利用される。観測を予測されたアクションにマッピングするポリシーが訓練される。モデルに依存しないメタ学習(MAML)の拡張機能が、模倣学習を提供するために提示される。この場合、メタ訓練中、実演のペアが、訓練−バリデーションのペアとして使用される。メタ試験時に、新しいタスクのための1つの実演が提供され、モデルが、その新しいタスクのためのポリシーを獲得するために更新される。その結果、ポリシーは、新しいタスクの観測に基づいて出力を予測することを可能にする。ポリシーのパラメータは、ニューラルネットワークアーキテクチャのためのパラメータである。ニューラルネットワークアーキテクチャは、RGB画像を画像特徴の中にマッピングする。それらの画像特徴は、ロボットアクションにマッピングされる前に、ロボット構成ベクトル及びバイアスパラメータと連結される。
モデルに依存しないメタ学習は前進の有用な一歩であるが、ロボットシステムに関するいくつかの制限を有している。例えば、ポリシーが訓練されると、ポリシーは、それが試験時に再び例を与えられない限り、訓練中に見たタスクのいずれも達成することができない。また、特定のタスクが学習されると、方法はメタ学習する能力を失い、その1つのタスクにだけ使用できる重みのセットで動きが取れない可能性がある。これを回避する1つの方法は、タスクごとに必要とされる重みのコピーを作成することであるが、これによりスケーラビリティの懸念が生じる。
既存の技術を所与として、新しいタスクを学習するようにロボットデバイスを指導する効率的な方法が望まれている。
本発明の第1の態様によれば、タスクの1つ以上の実演を受け取るため、及びタスク埋め込みを生成するためのタスク埋め込みネットワークであって、タスク埋め込みはタスクの表現を含み、各実演は、タスクの実行の1つ以上の観測を含むタスク埋め込みネットワークと、タスク埋め込みネットワークからタスク埋め込みを受け取り、及びロボットデバイスの複数の連続する観測をロボットデバイスのためのそれぞれの制御命令にマッピングするためのポリシーを適用する制御ネットワークとを含むロボットデバイスの制御システムが提供され、制御ネットワークによって適用されたポリシーは、タスク埋め込みネットワークからのタスク埋め込みを使用して、ロボットデバイスの複数の連続する観測全体で調整される。
特定の例では、タスク埋め込みネットワーク及び制御ネットワークは、各々、少なくとも1つの環境での少なくとも1つの訓練タスクの訓練サンプルを含む訓練セットでの共同訓練から生じるそれぞれのパラメータを含み、各訓練サンプルは、所与の環境での所与の訓練タスクの1つ以上の観測と、所与の環境でロボットデバイスによって実行された対応するアクションとを含む。
特定の例では、タスク埋め込みネットワーク及び制御ネットワークの少なくとも1つは、少なくとも1つの訓練タスクの訓練サンプルを含む訓練セットで訓練され、少なくとも1つの訓練タスクは第1のタスクを含み、タスク埋め込みネットワークによって受け取られたタスクは、第1のタスクとは異なる第2のタスクであり、制御ネットワークは、ロボットデバイスの複数の連続する観測を、ロボットデバイスが第2のタスクを実行するためのそれぞれの制御命令にマッピングするためのポリシーを適用するように構成される。
特定の例では、タスクの1つ以上の実演は、第1の環境でのタスクの実行の1つ以上の観測を含み、制御命令は、ロボットデバイスが第2の環境でタスクを実行するための制御命令を含み、第1の及び第2の環境は少なくとも異なる構成を有し、ロボットデバイスの複数の連続する観測は、第2の環境でのロボットデバイスの観測を含む。
特定の例では、タスクの実行の1つ以上の観測は、タスクを実行するロボットデバイスの少なくとも1つの画像を表す画像データを含み、制御命令は、ロボットデバイスの1つ以上のモータのためのモータ制御命令を含む。
特定の例では、タスク埋め込みネットワーク及び制御ネットワークは、各々、少なくとも1つのシミュレーションされた環境での少なくとも1つの訓練タスクの訓練サンプルを含む訓練セットでの共同訓練から生じるそれぞれのパラメータを含み、各訓練サンプルは、所与のシミュレーションされた環境での所与の訓練タスクの1つ以上の観測と、所与のシミュレーションされた環境でロボットデバイスのシミュレーションによって実行された対応するアクションとを含む。
第1の態様の制御システムは、以下に説明する、本発明の第2の態様の任意の特徴を構成し得る。
本発明の第2の態様によれば、ロボットデバイスを制御する方法が提供され、方法は、第1のコンテキストで実行されているタスクの少なくとも1つの観測を受け取ることと、少なくとも1つの観測に基づいてタスク埋め込みを生成することと、第2のコンテキストでロボットデバイスによって実行される連続アクションのために、所与のアクションに先行するときに第2のコンテキストでロボットデバイスと関連付けられた知覚データを受け取ることと、所与のアクションのために、タスク埋め込み及び知覚データをロボットデバイスのための制御命令にマッピングすることと、ロボットデバイスに、制御命令を使用して、所与のアクションを実行するように命令することとを含む。
特定の例では、タスクの少なくとも1つの観測は、少なくとも2つの時間ステップの画像データを含み、少なくとも2つの時間ステップは、タスクが第1のコンテキストで実行される期間を対象にし、画像データは、第1のコンテキストでタスクを実行するロボットデバイスを示す少なくとも1つの画像を表す。
特定の例では、ロボットデバイスと関連付けられた知覚データは、第2のコンテキストでタスクを実行するロボットデバイスを示す少なくとも1つの画像を表す画像データ、及びロボットデバイスの状態データの少なくとも1つを含み、制御命令は、第2のコンテキストでロボットデバイスの移動を可能にする、ロボットデバイスの1つ以上のアクチュエータのための命令を含む。
特定の例では、方法は、少なくとも1つの観測を受け取る前に、タスク埋め込みネットワーク及び制御ネットワークを構成するためにそれぞれのパラメータをロードすることであって、タスク埋め込みネットワークは、タスク埋め込みを生成するために使用されており、制御ネットワークは、タスク埋め込み及び知覚データをロボットデバイスのための制御命令にマッピングするために使用されており、パラメータは、複数の訓練タスクの訓練サンプルを含む訓練データでのタスク埋め込みネットワーク及び制御ネットワークの共同訓練から生じ、訓練サンプルは、実行されている複数の訓練タスクの1つ以上の観測と、訓練タスクを実行するために講じられた対応するアクションとを含む、ロードすることを含む。
特定の例では、方法は、少なくとも1つの観測を受け取る前に、タスク埋め込みを実行するようにタスク埋め込みネットワークを、ならびにタスク埋め込み及び知覚データからロボットデバイスのための制御命令へのマッピングを実行するためのポリシーを適用するように制御ネットワークを、共同で訓練することを含む。これらの例では、タスク埋め込みネットワーク及び制御ネットワークを共同で訓練することは、訓練反復のために、訓練データのセットから訓練タスクのセットをサンプリングすることと、訓練タスクのセットの所与のタスクごとに、タスクを実行するロボットデバイスの観測の第1のセットを含む所与のタスクのサポートセットを決定することと、タスクを実行するロボットデバイスの観測の第2のセットを含む所与のタスクのクエリセットを決定することであって、観測の第1の及び第2のセットは互いに素である、決定することと、タスク埋め込みネットワークを使用して、サポートセットのタスク埋め込み及びクエリセットのタスク埋め込みを計算することと、タスク埋め込みネットワーク及び制御ネットワークの損失関数を初期化することと、訓練タスクのセットの所与のタスクごとに、タスク埋め込みネットワークの損失関数項を計算することであって、損失関数項は、所与のタスクのクエリセットのタスク埋め込みと、所与のタスクのサポートセットのタスク埋め込みとの間の第1の類似基準を、所与のタスクのクエリセットのタスク埋め込みと、所与のタスクではないタスクのサポートセットのタスク埋め込みのセットからのタスク埋め込みとの間の第2の類似基準を比較するヒンジ損失関数を含む、計算することとを含んでよい。訓練反復は、損失関数を最適化して、タスク埋め込みネットワーク及び制御ネットワークのパラメータ値を決定するために繰り返されてよい。タスク埋め込みネットワーク及び制御ネットワークを共同で訓練することは、訓練反復のために、訓練タスクのセットの所与のタスクごとに、制御ネットワークのための少なくとも1つの損失関数項を計算することであって、少なくとも1つの損失関数項は、制御ネットワークを使用し予測された制御命令と、所与のタスクを実行するために講じられたアクションのための制御命令との比較を含む、計算することを含む場合がある。制御ネットワークの少なくとも1つの損失関数項は、所与のタスクのサポートセットのポリシー損失項と、所与のタスクのクエリセットのポリシー損失項とを含む場合がある。これらの例では、タスク埋め込みは、タスクの表現を提供してよい。特性の共有されたセットを有する2つのタスクのタスク埋め込みは、特性の異なるセットを有する2つのタスクのタスク埋め込みよりも埋め込み空間でより近い場合がある。これらの例では、タスク埋め込みネットワーク及び制御ネットワークのパラメータのセットは、シミュレーションされたロボットデバイスを使用し、シミュレーションされた環境で学習され得る。
本発明の第3の態様によれば、コンピュータ実行可能命令を含む非一時的なコンピュータ可読記憶媒体が提供され、コンピュータ実行可能命令は、プロセッサによって実行されるとき、コンピューティングデバイスに、入力データをタスク埋め込みにマッピングするように構成された少なくとも1つのタスク埋め込みネットワークを含む制御システムのために、制御可能デバイスによって1つ以上のコンテキストで実行される1つ以上のタスクのための観測−アクションデータのペアを含む訓練データを取得すること、訓練データ内で表される訓練タスクのセットのそれぞれにサポートセット及びクエリセットを生成することであって、訓練タスクのセットの所与のタスクのために、サポートセットタスク埋め込みを生成するためにタスク埋め込みネットワークを所与のタスクの観測−アクションのペアの第1のセットに適用することと、クエリセットタスク埋め込みを生成するためにタスク埋め込みネットワークを所与のタスクの観測−アクションのペアの第2のセットに適用することであって、観測−アクションのペアの第1の及び第2のセットが互いに素である、第2セットに適用することとを含む、サポートセット及びクエリセットを生成することと、制御システムのための訓練可能なパラメータの値を決定するために制御システムの損失関数を最適化することであって、制御システムの損失関数はタスク埋め込みネットワークの損失関数の関数であり、タスク埋め込みネットワークの損失関数は、サポートセット及びクエリセットの類似基準の比較に基づく、最適化することと、を行わせ、所与のタスクのクエリセットタスク埋め込みと所与のタスクのサポートセットタスク埋め込みとの間の類似基準は、所与のタスクのクエリセットタスク埋め込みと、所与のタスクではないタスクのサポートセットタスク埋め込みとの間の類似基準に比較される。
特定の例では、制御システムは、入力データ及びタスク埋め込みネットワークからのタスク埋め込みを制御可能なデバイスのアクションデータにマッピングするためのポリシーを適用する制御ネットワークを含み、制御システムの損失関数は、制御ネットワークの損失関数の関数であり、所与のタスクのための制御ネットワークの損失関数は、サポートセットのポリシー損失及びクエリセットのポリシー損失を含む。
特定の例では、観測−アクションデータのペアのそれぞれの中の観測データは、それぞれ観測−アクションデータのペアと関連付けられたアクションの前に取り込まれる、制御デバイスを特徴付ける少なくとも1つの画像を表す画像データを含み、観測データは、タスクの実行中に取り込まれている。
特定の例では、タスク埋め込みネットワークの損失関数はヒンジ損失関数を含み、類似基準はドット積類似を含む。
特定の例では、命令は、プロセッサによって実行されるとき、コンピューティングデバイスに、第1のコンテキストでロボットデバイスによって実行されているタスクを示す観測データを受け取らせ、訓練の後に制御システムのタスク埋め込みネットワークを観測データに適用してタスク埋め込みを生成させ、第2のコンテキストでのロボットデバイスのためのタスク埋め込み及び知覚データを、ロボットデバイスのための一連の制御アクションに繰り返しマッピングさせ、知覚データは、第2のコンテキストでの制御アクションの実行に続いて更新され、再マッピングされる。
非一時的なコンピュータ可読記憶媒体は、プロセッサによって実行されるとき、コンピューティングデバイスに本明細書に説明する方法のいずれかを実行させるコンピュータ実行可能命令を含む場合がある。
本発明の第4の態様によれば、ロボットデバイスの制御ネットワークが提供され、制御ネットワークは、タスクの1つ以上の実演から生成されたタスクの表現を含むタスク埋め込みを受け取り、ロボットデバイスの複数の連続する観測をロボットデバイスのためのそれぞれの制御命令にマッピングするためのポリシーを適用するように構成され、制御ネットワークによって適用されたポリシーは、タスク埋め込みを使用し、ロボットデバイスの複数の連続する観測全体で調整される。
特定の例では、制御命令はモータ制御命令を含み、制御ネットワークは、モータ制御命令を使用し、ロボットデバイスの1つ以上のモータを制御するように構成される。
さらなる特徴及び利点は、添付図面に関して行われる、例としてのみ示される以下の説明から明らかになる。
一例に係るロボットデバイスの制御システムを示す概略図である。 一例に係るロボットデバイスを示す概略図である。 A〜Dは、一例で観測及び/または実行され得る異なるタイプのタスクを示す概略図である。 一例に係る制御システムの訓練を示す概略図である。 一例に係るタスク埋め込みの生成を示す概略図である。 図5Aの例で生成されたタスク埋め込みを使用するロボットデバイスの制御を示す概略図である。 一例に係るタスク埋め込みネットワークの動作を示す概略図である。 一例に係るロボットデバイスを制御するための方法を示す流れ図である。 一例に係る制御システムを訓練するための方法を示す流れ図である。 一例に係るコンピュータプログラム命令を含む非一時的なコンピュータ可読媒体を示す概略図である。
本明細書に説明する特定の例は、(本明細書で「タスク埋め込み」と呼ぶ)実行されるタスクの埋め込みを組み込む制御システムと、デバイス制御命令を生成する制御システムとを提供する。これらの例はタスクを埋め込み、異種であるタスクは互いから少し離れて配置されるのに対し、例えば視覚態様及び/または制御態様において類似するタスクは、埋め込み空間内で互いの近くに配置される。このタスク埋め込み空間は(例えば、10〜128の次元性を有する)多次元である場合がある。タスク埋め込みを使用すると、新しいタスクが以前に見たタスクに対してどれほど類似し得るのかなど、情報をゼロショット様式で新しい見慣れないタスクから推論する可能性を開きながらも、少数ショットラーニングが可能になる。
本明細書に説明する特定の例は、1つ以上の実演を所与として、まだ見たことのないタスクの新しいバリエーションを実行しようと試みるためのアクション(例えば、モータ速度)を出力するように共同で訓練されるタスク埋め込みネットワーク及び制御ネットワークを含む。タスク埋め込みネットワークは、デバイス制御命令の形態でアクションを出力するために、環境(例えば、現実世界または仮想世界)の継続して受け取られる観測とともに、制御ネットワークによって使用されるタスクのコンパクトな表現を学習するように構成され得る。これらの例は、学習できるタスクの数に対する厳しい制限を回避し、メタ訓練の間または後に以前に学習したタスクを容易に忘れない。特定の例では、タスク埋め込みネットワークは、試験中に実演者から視覚情報を受け取る場合がある。これは、タスクを実行するロボットデバイスのビデオのフレームの形式である場合がある。視覚情報を使用することによって、例は、人間の実演からの学習に適切となる。
本明細書に説明する特定の例は、例えば視覚的に誘導される操作タスクに関して、ワンショットまたは少数ショットの方法で視覚運動制御を学習する能力を提供する。特定の例は、相対的な手法と比較されると、より高い成功率を達成する。
特定の例は、さらに、シミュレーションされたデータポイント及び現実世界のデータポイントの混合を可能にし、例えばシミュレーションされた環境での訓練を、現実世界でタスクを実行するときに使用できるようにし、大規模な一般化のための道筋を提供する。現実世界の観測からエンドツーエンドシステムで必要とされる多数の訓練例を取得するのが困難である場合があるため、これは望ましい。本明細書に説明する特定の例は、ロボットが、シミュレーションされた環境でメタ学習するように訓練されているのにも関わらず、現実世界での単一の実演から新しいタスクを学習することを可能にする。
本明細書に説明する特定の例は、モータ制御を学習するコンテキストで行動クローニングを提供する。行動クローニングは、エージェントが、実演を所与として、教師あり学習のやり方で観測からアクションへのマッピングを学習する模倣学習の1つの形態と見なし得る。特定の場合、モータ制御命令は、学習された埋め込みまたはメトリック空間に基づいて直接的に学習され得る。
図1は、例に係るロボットデバイスの制御システム110の例100を概略で示す。図1の制御システム110は、タスク埋め込みネットワーク120と、制御ネットワーク130とを含む。タスク埋め込みネットワーク120は、タスクの実演140を受け取る。タスクの実演140は、タスクの実行の1つ以上の観測を含む場合がある。図1の例では、単一の実演140が受け取られる。しかしながら、それ以外の場合図1に類似する場合がある他の例で、タスクの複数の実演は、タスク埋め込みネットワーク120によって受け取られる場合がある。タスクは、例えば、実行されるべきである行為または仕事である。例えば、タスクは、特定の目的または目標が達成されると無事に完了したと見なし得る。したがって、タスクは、事前に定められた目的または目標を達成するために実行される一連のアクションとして定義され得る。例えば、タスクはレセプタクルYに物体Xを配置する、またはオブジェクトXを場所Yに移動する等、特定の方法で環境内で利用可能なオブジェクトを操作することを含む場合がある。ロボットデバイスのコンテキストでの一連のアクションは、移動及び/またはタスクを実行するアクチュエータ起動のセットを含んでよい。タスク埋め込みネットワーク120は、1つ以上の実演140に基づいて、タスクの表現を含むタスク埋め込み150を生成するように構成される。
図1の制御ネットワーク130は、タスク埋め込みネットワーク120からタスク埋め込み150を受け取る。しかしながら、他の例では、図1の制御ネットワーク130に類似するまたはそれ以外の場合同じである制御ネットワークは、代わりに、例えば適切なネットワークを介して、ストレージから、またはコンピュータデバイスもしくはサーバデバイスなどの追加の電子機器からなど、タスク埋め込みネットワーク120とは異なる構成要素から、タスク埋め込み150を受け取る場合がある。
また、図1の制御ネットワーク130は、ロボットデバイスの複数の連続する観測160を受け取り、ロボットデバイスの複数の連続する観測160をロボットデバイスのためのそれぞれの制御命令170にマッピングするためのポリシーを適用する。制御ネットワーク130によって適用されるポリシーは、タスク埋め込みネットワーク120からのタスク埋め込み150を使用し、ロボットデバイスの複数の連続する観測160全体で調整される。制御ネットワーク130によって生成された制御命令170は、次いでタスクを実行するようにロボットデバイスを制御するために使用され得る。この場合の調整は、入力としてタスク埋め込み150及び複数の連続する観測160のそれぞれを受け取る関数としてポリシーを適用することを含む場合があり、所与の観測の場合、出力は異なるタスク埋め込みで異なる場合がある。図の制御ネットワーク130として使用され得る例の制御ネットワークのさらなる説明は、図4、図5a、及び図5bに関して提供される。
図2は、ロボットデバイス210の実施例200を概略的に示す。ロボットデバイスは例えば、一連のアクションを実行するよう制御されることが可能であるマシンである。ロボットデバイスは、特定の移動または操作のセットを実行するように、制御命令に基づいて自律的に動作することが可能であってもよい。ロボットデバイス(ロボットと称されることもある)は、様々な異なる形式を取ってもよい。例えば、ロボットは、ロボットが実行することを意図するタスクに応じた異なる形状または構造により製造されてもよい。
図2の実施例では、ロボットデバイス210は、三次元(3D)空間内に静的に据え付けられる。このケースでは、ロボットデバイス210の基盤230は、表面220に固定される。しかしながら、ロボットデバイス200の部分(このケースでは、ロボットデバイス200のアーム)は、3D空間により移動すること、及び空間内の物体と相互作用することが可能である。基盤230は、表面220の上部でロボットデバイス210の回転を可能にすることができ、または回転を可能にしないことがある。ロボットデバイス200のアームは、4つの関節232、234、236、238を介して、端から端の様式で接続された5つの要素231、233、235、237、240を含む。関節232、234、236、238は、アームの要素231、233、235、237、240の回転移動、並進移動、回転移動もしくは並進移動の両方、または他のタイプの移動を可能にすることができる。この実施例における基盤230から最も遠いロボットアームの要素240は、エンドエフェクタと称されることがある、ロボットの手である。ロボットの手240は、物体をつかむこと、物体を持ち上げること、または物体を移動させることなどの様々な異なるタスクを実行するために使用されてもよい。ロボットデバイスのエンドエフェクタのタイプは、ロボットデバイスが実行することを意図するタスクに依存してもよく、したがって、他の実施例におけるロボットの手とは異なってもよい。例えば、エンドエフェクタは、洗浄タスクを実行することを意図するロボットデバイスに対する真空ノズルエンドエフェクタまたは表面拭き取りエンドエフェクタであってもよい。
図2に示される実施例の3D空間は、表面220によって支持された第1の物体222及び第2の物体224を含む。ここで、「物体」は、例えば、ロボットデバイスがそれと相互作用することができる材料の存在を有するいずれかの可視の物またはエンティティを指してもよい。「物体」は、人間がラベル付けすることができる事物の集合に対応してもよい。ここで、物体は、広義に考えられ、とりわけ、壁、ドア、床、及び人と共に、家具、他のデバイス、及び家の中の従来の物体、並びに/または外部の空間などのエンティティを含む。図2における3D空間が表面220と共に示されるが、これは、全ての実装態様におけるケースである必要はない。例えば、環境は、大気空間であってもよく、または地球圏外の空間内にあってもよい。
図2のロボットデバイス210は、実施例にすぎず、他の実施例が想定されることを認識されよう。例えば、ロボットデバイスは、適当な位置に固定されなくてもよい。そのようなロボットデバイスは、それ自体が移動可能であってもよい。ロボットデバイスの移動を可能にするために、そのようなデバイスは、ロボットデバイスが三次元(3D)空間をナビゲートすることを可能にするアクチュエータを含んでもよい。それらのアクチュエータは、ホイール、せん孔機構、回転子などを含んでもよい。例えば、ロボットデバイスは、自律的な空中モバイルデバイス及び/もしくは陸上モバイルデバイスであってもよく、または自律的な空中モバイルデバイス及び/もしくは陸上モバイルデバイスを含んでもよい。他のケースでは、基盤とは異なるロボットデバイスの部分は、表面もしくは他の物体に対して固定されてもよく、及び/またはロボットデバイスは、図2に示されるのとは異なる構造もしくは配列を有してもよい。
図3A、3B、3C、及び3Dは、実施例において観察及び/または実行することができる異なるタイプのタスクを示す概略図である。
図3A及び3Bは各々、手を伸ばすタスクの実施例を提供する。図3A及び3Bの手を伸ばすタスクは、ロボットデバイス310が第3の物体326に対して手を伸ばすことを伴う。この実施例におけるロボットデバイス310は、図2のロボットデバイス210と同様であるロボットアームである。しかしながら、図3A及び3Bのロボットデバイス310は、基盤312、関節316を介して接続された2つの要素314、318、及びロボットの手320を含み、したがって、図2のロボットデバイス210よりも少ない構成要素を含む。図3Bでは、明確にするために、ロボットデバイス310の構成要素のラベル付けは省略されていることに留意されよう。
この実施例における第3の物体326は、特定の色の物体である(図3A及び3Bでは、第3の物体326内の斜めの線のパターンを介して概略的に示される)。第3の物体326は、表面300によって支持され、表面300にロボットデバイス310の基盤312が固定される。第1の物体322及び第2の物体324も、図3A及び3Bでは表面300上にある。加えて、図3Bは、表面300上に第4の物体328を含む。第1の物体322、第2の物体324、及び第4の物体328は、第3の物体326とは異なる色の物体である。これは、図3A及び3Bでは、第1の物体322内のドットパターンによって、第2の物体324内の水平線パターンによって、及び第4の物体328内パターンなしによって示される。
この実施例では、したがって、タスクは、特定の色の物体(このケースでは、第3の物体326)に対して手を伸ばすことに対応すると考えられてもよい。このケースでは、手を伸ばすタスクは、他の色の物体(図3Aでは、第1の物体322及び第2の物体324、並びに第1の物体322、第2の物体324、及び第4の物体328)が存在するときに実行され、他の色の物体は、ロボットデバイス310が正しい物体に手を伸ばすことを阻害することがあるので、阻害するものと考えられてもよい。
第1の物体322、第2の物体324、及び第3の物体326の配列は、図3A及び3Bでは異なり、図3Bは、第4の物体328をも含む。しかしながら、図3A及び3Bの各々は、他の物体のいずれでもない第3の物体326に向かって手を伸ばすロボットデバイス310を示す。故に、図3A及び3Bの各々は、異なる配列に関わらず、同一のタスクのそれぞれの観察に対応すると考えられてもよい。例えば、図3A及び3Bは、それらの実施例の各々では、様々な物体の異なる位置に起因して、異なるコンテキストまたは異なる環境内での同一のタスクの観察に対応すると考えられてもよい。
タスクの実演は、例えば、図3A及び3Bに示される観察などの1つ以上の観察を含む。観察は、例えば、タスクの実行を捕捉する記録または他のデータに対応する。特定のケースでは、観察は、タスクを実行するエンティティの環境内に位置する捕捉デバイスからの画像(例えば、ビデオフレーム)を含んでもよい。いくつかのケースでは、それにも関わらず、観察は、それでもなおタスクのシミュレートされた実行を捕捉する、シミュレートされたタスクの仮想観察であってもよい。仮想観察は、予め定義されたカメラ姿勢または構成から捕捉された、シミュレートされた3D環境のレンダリングされた画像を含んでもよい。仮想観察は加えてまたは代わりに、1つ以上の要素及び関節またはシミュレートされたロボットデバイスに対する位置データ及び/または方位データを含んでもよい。実演では、タスクは、人間もしくは他の動物などのいずれかの適切なエンティティによって、または無生物物体もしくは人工物体もしくはロボットデバイス(例えば、図3A及び3Bのロボットデバイス310)などのデバイスによって、またはいずれかのそのようなエンティティのシミュレーションによって実行されてもよい。タスクを実演するエンティティは、タスクを実行することになるエンティティとは異なってもよい。典型的には、観察は、タスクを実行するエンティティの観察を含む。例えば、図3A及び3Bでは、観察(この実施例では、画像である)は、ロボットデバイス310を含む。観察は概して、タスクの一部として操作されることになる物体など、タスクの実行に関与する他のエンティティまたは物体に関連するデータをも含む。例えば、図3A及び3Bでは、観察は、第3の物体326を含み、第3の物体326は、タスクを実行するために手を伸ばされることになる物体である。観察はまた、タスク自体の一部を形成しないが、それでもなお、タスクの実演が実行される時に存在することがある他のエンティティまたは物体を表すデータを含んでもよい。そのような物体は、タスクの実行の間に操作されない、タスクが実演される環境の背景にある物体を含んでもよい。例えば、図3A及び3Bの観察は各々、表面300及び他の物体(図3Aでは、第1の物体322及び第2の物体324、並びに図3Bでは、第1の物体322、第2の物体324、及び第4の物体328)を含む。
観察は、タスク埋め込みネットワーク120と互換性を有するいずれかの適切なフォーマットにあってもよく、その結果、タスク埋め込みネットワーク120は、観察に基づいて、タスクを表すタスク埋め込みを生成することができる。例えば、タスクの観察は、タスクを実行するエンティティの少なくとも1つの画像を表す画像データを含んでもよい。少なくとも1つの画像は、いずれかの適切なフォーマットにあってもよい、エンティティの二次元画像であってもよい。例えば、画像データは、グレースケール、または、例えば、色帯もしくは色チャネルごとに0〜255の輝度レベル(8ビットデータに対して)により記憶することができる、画像の各々の画素の強度値を含んでもよい。画像がカラー画像であるとき、強度もしくは輝度の画素値または各々の画素は、色チャネルごとに別個に記憶されてもよい。例えば、RGB(赤、緑、青)色空間またはYUV色空間(Yが色のルミナンスを表し、Uが色の青成分とルミナンスとの間の差を表し、Vが色の赤成分とルミナンスとの間の差を表す)などにある3つの原色によって画素が表される場合、各々の画素の視覚的外観は、その1つが原色ごとにある、3つの強度値によって表されてもよい。そのようなケースでは、画像データは、タスクの実行の間の異なるそれぞれの時間に(または、タスクの実行の直前もしくは直後)にエンティティを各々が捕捉する一連の画像を含んでもよい。例えば、画像データは、エンティティがタスクを実行することを開始する前のエンティティの第1の画像を表すデータを含んでもよい。そのようなケースにおける画像データは、タスクの実行の後のエンティティの第2の画像を表すデータをも含んでもよい。2つの画像を比較することによって、エンティティによって実演されるタスクが判定されてもよい。他のケースでは、画像データは、タスクの結果の画像を含んでもよい。例えば、図3A及び3Bに関して、観察は、図3A及び3Bにおいて提示されるシーンの画像の形式にあってもよい。図3A及び3Bは、ロボットデバイス310が第3の物体326に向かって手を伸ばすと共に、タスクの実行の間のロボットデバイス310の位置を示す。
他の実施例では、画像データは、ビデオデータから導出されてもよい。ビデオデータは、時間と共に変化する画像データを含むと考えられてもよい。そのようなケースでは、画像データは、ビデオの複数のフレームを含んでもよい。各々のフレームは、3D空間の画像が捕捉される期間内の特定の時間tに関連してもよい。フレームは概して、測定されたデータの2D表現から構成される。例えば、フレームは、時間tにおける記録された画素値の2Dアレイまたはマトリックスを含んでもよく、したがって、時間tにおいて記録された静止画像と同等であってもよい。
また更なる実施例では、画像データは、測光データに加えて、例えば、色値または強度値を表す深度データを含んでもよい。深度データは、深度データを取得するために使用される捕捉デバイスからの距離のインジケーションを含んでもよく、例えば、各々の画素値または画像要素値は、捕捉デバイスからの3D空間の部分の距離を表してもよい。図3C及び3Dは、ロボットデバイス360の画像350及び355を示す。それらの画像は、ビデオデータのフレームを含んでもよい。1つのケースでは、ロボットデバイス360は、図2に示されたロボットデバイス210を含んでもよい。別のケースでは、ロボットデバイス360は、例えば、仮想環境内で動作するロボットデバイス210のシミュレートされたバージョンを含んでもよい。この後者のケースでは、画像350及び355は、仮想環境からのレンダリングされた画像を含んでもよい。図3Cの画像350は、ロボットデバイス360が2つのレセプタクル362及び364と共位置にある環境またはコンテキストを示す。画像350は、タスクの完了に続く環境を示す。このケースにおけるタスクは、レセプタクル362に物体370を置くことである。図3Dの画像355は、タスクが実行される前のロボットデバイス360を示す。このケースでは、画像355は、2つの異なる形状のレセプタクル366及び368、並びに異なる形状の物体372を有する環境またはコンテキストを示す。特定の構成では、画像355は、画像350からの異なるタスクを示すように(例えば、物体372が物体370とは異なるように)撮影されてもよい。画像350及び355の環境も異なると考えられてもよい。他の構成では、画像350及び355は、2つの異なる環境またはコンテキスト内で共通タスク(例えば、レセプタクルに物体を置くこと)を示すと考えられてもよい。特定の実装に対して選択された構成は、訓練時間、実演時間、及び試験時間の間にデータをどのように配列するかに影響を与える。
図4は、制御システム410の訓練の実施例400を示す概略図である。図4の制御システム410は、図1の制御システム110と同様である。図1の対応する要素と同様である図4の要素は、300だけインクリメントされた同一の参照符号によりラベル付けされ、対応する説明が適用されるように採用される。
図4は、タスク埋め込みネットワーク420及び制御ネットワーク430が少なくとも1つの環境内で少なくとも1つの訓練タスクの訓練サンプルを含む訓練セット441に対して共同で訓練される実施例を示す。図4では、訓練セット441は、N個の訓練タスク(Φ…Φ)を含み、各々のタスクは、図4では442として示される。タスク埋め込みネットワーク420及び制御ネットワーク430を共同で訓練することは、制御ネットワーク430に対してより有用であるタスク埋め込みが取得されることを可能にし、次いで、所与のタスクを実行することに成功するようロボットデバイスを制御する制御命令を出力する制御ネットワーク430の能力を改善することができる。
図4では、N個の訓練タスクに対して複数の訓練サンプルが存在する。各々の訓練タスクΦに対して異なる数の訓練サンプルsが存在してもよい。図4では、第1のタスクΦは、K個の訓練サンプルを有し、第2のタスクΦは、K個の訓練サンプルを有し、N番目の訓練タスクΦは、一連のK個のサンプル(s…sKN)を含む。各々の訓練サンプルsは、軌道であると考えられてもよく、軌道は、タスクの実行の間に、t=1からt=Tまでの一連の時間ステップにわたって一連の観察−アクションのペアを表す。したがって、各々のサンプルは、
={(o,a),…,(oTx,aTx)}
として数学的に表されてもよく、sは、軌道を表し、oは、観察を表し、aは、アクションを表す。各々のサンプルは、異なる数の時間ステップを有してもよい。訓練セット441は、観察を表すデータ及び対応するアクションを表すデータを含むタプルを含んでもよい。そのようなケースでは、観察及びアクションは、例えば、少なくとも1つのベクトル、テンソル、または他の多次元アレイを使用して数値的に表されてもよい。
図4では、第1の訓練タスク442、Φは、第1の一連のサンプル444と関連付けられる。第1の一連のサンプル444の第1のサンプル446、sは、第1の時間(t=1)における観察448、o及びアクション452、aを含む観察−アクションのペアを含む。第1のサンプル446は更に、他の時間(t=2からt=Tまで)における追加の観察−アクションのペアを含む。観察は、例えば、図3A〜3Dを参照して説明されるように、画像から導出された数値データを含んでもよい。アクションは、所望のモータ運動データまたは有効にされたモータ運動データなど、ロボットデバイスに対するモータコマンドから導出された数値データを含んでもよい。特定のケースでは、観察は、ロボットデバイスの画像が捕捉されるときの時間におけるモータの角度及び/または位置など、ロボットデバイスの状態データを含んでもよい。ロボットデバイスの状態データは、タスク埋め込みネットワーク420を訓練するために使用されなくてもよいが、制御ネットワーク430を訓練するために含まれてもよい。
このようにして、各々の訓練サンプルは、所与の環境内での所与の訓練タスク及び所与の環境内でロボットデバイスによって実行された対応するアクションの1つ以上の観察を含んでもよい。したがって、各々の訓練サンプルは、特定のタスクの所与の観察に応答して、制御システム410がロボットデバイスによって実行されたアクションを学習するための機会を提供する。これは、制御システムが所与のタスクについてのポリシーを学習することを可能にする。このポリシーは、例えば、タスク特有ポリシーを提供するように、タスク埋め込みネットワーク420によって取得されたタスク埋め込みに依存する。制御システム410は、所与のタスクについてのポリシーが、そのタスクについてのいわゆる「エキスパート」ポリシーを模倣し、または「エキスパート」ポリシーに厳密に一致し、または「エキスパート」ポリシーに遵守するように訓練されてもよい。エキスパートポリシーは、例えば、所望のタスクの観察(または、一連の観察)の入力が、所望のタスクを実行するようロボットデバイスを指示する制御命令の生成をもたらす理想のポリシーである。しかしながら、制御システム410によって学習されたポリシーは、いくつかのケースでは、制御システム410によって出力された制御命令が、その意図したもの(及び、観察または観察(複数可)におけるその実演)とは異なるタスクを実行するようロボットデバイスを制御することができる点で、エキスパートポリシーとはある程度異なってもよい。概して、それにも関わらず、制御システム410の訓練は、学習されたポリシーとエキスパートポリシーとの間の差を最小にすることが意図される。実際に、エキスパートポリシーの出力を表すデータは、訓練サンプルからのアクションデータとして取られてもよく、例えば、それらのアクションは、「エキスパート」アクションを表す。
制御システム410を訓練する際に使用される観察は、図3A及び3Bを参照して説明された観察と同様であってもよい。故に、観察は、現実環境内での現実世界ロボットデバイスによるタスクの実行の観察であってもよい。代わりに、訓練サンプルは、少なくとも1つのシミュレートされた環境内の少なくとも1つの訓練タスクを含んでもよい。そのようなケースでは、各々の訓練サンプルは、所与のシミュレートされた環境内の所与の訓練タスク及び所与のシミュレートされた環境内でロボットデバイスのシミュレーションによって実行された対応するアクションの1つ以上の観察を含んでもよい。これは、所与のタスクを実行するようロボットデバイスを手動で制御することによって訓練サンプルを生成することよりも、シミュレートされた訓練サンプルを生成するのにより容易であり、またはより速いことができるので、訓練工程の拡張性を改善することができる。訓練サンプルは、人間によって、または決定論的制御の下で、タスクの実行の間に捕捉されたデータに基づいて生成されてもよい。例えば、訓練サンプルは、ロボットデバイスを制御することによって定義されたタスクを人間が完了する記録を表してもよく、及び/または明確にプログラムされたタスクをロボットデバイスが実行する記録を表してもよい。訓練サンプルは次いで、実行される異なるタスクの記録の混合を含んでもよい。
図4の制御システム410などの制御システムを訓練する実施例は、図8を参照して更に説明される。
図5Aは、タスク埋め込み550の生成の実施例500を示す概略図である。図5Aにおけるタスク埋め込み550は、タスク埋め込みネットワーク520及び制御ネットワーク530を含む制御システム510によって生成される。図5Aの制御システム510は、例えば、図1及び4の制御システム110、410と同様であってもよい。しかしながら、他の実施例では、図5Aのタスク埋め込み550と同様のタスク埋め込みは、図5Aの制御ネットワーク530とは異なり、または別個のシステムである制御システムの一部を形成する、タスク埋め込みネットワーク520などのタスク埋め込みネットワークによって生成されてもよい。
タスク埋め込みネットワーク520は、入力としてタスクの実演540(d)を受信する。図5Aにおける実演540は、手動コントローラ585を使用してタスクを実行するようロボットデバイス580を制御することによって取得される。手動コントローラ585は、仮想現実コントローラ及び/または拡張現実コントローラを含んでもよい。しかしながら、他の実施例では、実演は、異なって取得されてもよい。例えば、実演は、タスクを実行するロボットデバイスのシミュレーションの仮想実演であってもよい。他のケースでは、ロボットデバイス580は、手動コントローラ585を使用するのではなく、電子制御システムを使用して、例えば、予め定義された制御命令のセットを使用して、タスクを実行するよう制御されてもよい。
ロボットデバイス580によるタスクの実行は、この実施例では、ビデオカメラである捕捉デバイス590によって捕捉される。ビデオカメラは、タスクの実行の間のロボットデバイス580の一連のフレームを取得する。これから、タスクの実演540は、図3A及び3Bを参照して説明されたように取得されてもよい。図5Aの実施例では、実演540は、ロボットデバイス540のT個の観察からの少なくとも最初の観察及び最後の観察を含む(図では、画像{i,i}として示される)。特定のケースでは、タスクの実行は、t=1からt=Tまでの一連の時間ステップにおいて継続的に捕捉されてもよく、及び/または静止フレームは、時間t=1及びt=Tにおいて捕捉されてもよい。両方のケースでは、タスクの実行の「前」及び「後」の時間を表す2つのフレームが提供されてもよい。特定のケースでは、複数の観察、例えば、t=1からt=Tまでの全てのフレームが提供されてもよい。各々の観察は、捕捉デバイス590によって捕捉されたビデオのフレームに対応してもよい。他の実施例では、それにも関わらず、実演540は、タスクを実行するロボットデバイス540の単一の観察を含んでもよく、並びに/または捕捉デバイス590からのビデオデータのフレームに加えてデータを含んでもよい(例えば、モータ位置データ及び/もしくは物体位置データを含む)。
実演540は、タスク埋め込み550を生成するよう、タスク埋め込みネットワーク520によって処理される。図6を参照して更に説明されるように、タスク埋め込みネットワーク520は、タスクの表現に実演540をマッピングする。
図5Aでは、制御ネットワーク530などの特定の構成要素は使用されない。図5Aは、演算の「実演」段階を表してもよく、図4は、演算の「訓練」段階を表し、図5Bは、演算の「試験」段階または「実行」段階を表す。制御ネットワーク530が「実演」段階では使用されないので、特定のケースでは、制御ネットワーク530は、この段階では存在しなくてもよい。例えば、タスク埋め込みネットワーク520のみが設けられる必要があり、及び/またはタスク埋め込みネットワーク520は、制御ネットワーク530にリモートに位置するコンピューティングデバイスによって実装されてもよい。例えば、「実演」段階は、「試験」段階からリモートに行われてもよく、テレプレゼンスの形成を可能にする。
図5Bは、図5Aの実施例500において生成されたタスク埋め込み550を使用したロボットデバイス590の制御の実施例555を示す概略図である。図5A及び5Bの実施例では、タスク埋め込み550は、タスク埋め込みネットワーク520から制御ネットワーク530に送信される。しかしながら、他の実施例では、タスク埋め込みネットワーク520によって生成されたタスク埋め込み550は、記憶装置に記憶されてもよく、その後、制御ネットワーク530によって記憶装置から取り出されてもよく、またはそうでなければ、制御ネットワーク530によって受信されてもよい。記憶装置は、制御ネットワーク530のローカル記憶装置または制御ネットワーク530の外部にある記憶装置であってもよい。
制御ネットワーク530は、一連の時間ステップtにわたってロボットデバイス580の複数の連続した観察560、oを受信する。観察560は、ロボットデバイス580を取り囲む現在の環境内のロボットデバイス580を示し、現在の環境は、タスクの実演540の間のロボットデバイス580の環境とは異なってもよい。図5Bにおける観察は、捕捉デバイス590からの画像データi、ロボットデバイス580からの角度データθ、及びロボットデバイス580からの位置データpを含む。角度データθは、例えば、水平面などの固定基準平面もしくは共通基準平面に対して取られる絶対角度、またはロボットデバイスの2つの接している要素の間で取られる相対角度であってもよい、ロボットデバイスの少なくとも1つの関節のそれぞれの角度を表す。位置データpは、ロボットデバイスのエンドエフェクタまたは他の要素の位置を表してもよい。位置は、基準座標系内の座標を使用して位置を表すことができるように、基準座標系を使用して測定されてもよい。他の実施例では、位置は、ロボットデバイスの基盤に対するロボットデバイスのエンドエフェクタの位置など、ロボットデバイスの異なる要素に対するロボットデバイスの所与の要素の相対位置であってもよい。角度データθ及び位置データpを含めることによって、制御システムは、観察されたタスクを実行するようロボットデバイスをより正確に制御することができる。しかしながら、いくつかのケースでは、角度データθ及び/または位置データpは、ロボットデバイスの観察から省略されてもよい。各々のデータ項目は、テンソル、例えば、データのベクトル表現を含んでもよい。よって、図5Bにおける制御ネットワーク530によって受信された各々の観察560は、画像データ、角度データ、及び位置データの融合を含んでもよく(例えば、連結されたベクトルもしくは多次元アレイ)、または観察は、別個の画像データ、角度データ、及び位置データを含んでもよく、別個の画像データ、角度データ、及び位置データはその後、制御ネットワーク530によって融合されてもよい。他の実施例では、制御ネットワーク530はまさに、捕捉デバイスから画像データiを受信してもよい。
制御ネットワーク530は、タスク埋め込み550を使用してロボットデバイス590の観察560をマッピングするためのポリシーを適用する。これは、図4及び8を参照して説明された「訓練」手順とは対照的に、「試験」手順と称されてもよい。この工程は、
procedure TEST(E,Env)
while task not complete do
o=Env.GetObservation()
a=π(o,E)
Env.Step(a)
として疑似コードにおいて表現されてもよく、Eは、図5Aを参照して説明されたようにタスク埋め込みネットワーク520によって生成されたタスク埋め込み550を表し、Envは、ロボットデバイス580を取り囲む環境を表し、oは、ロボットデバイス580の観察560を表し、πは、ロボットデバイス580によって実行されることになるアクションaに観察oをマッピングするために制御ネットワーク530によって適用されるポリシーを表す。制御ネットワーク530によって適用されるポリシーは、畳み込みニューラルネットワーク(CNN)などのニューラルネットワークによって表されてもよい。例えば、所与の観察560の画像データiは、テンソルとして、例えば、ベクトルまたは多次元アレイとして表すことができる、画像特徴を抽出するようCNNの畳み込み層によって処理されてもよい。例えば、CNNの畳み込み層は、画像特徴ベクトルを出力してもよい。観察560を表す観察データが画像データに加えて角度データ及び位置データを含む場合、角度データ及び位置データは、角度ベクトル及び位置ベクトルのそれぞれの形式であってもよい。そのようなケースでは、画像データ、角度データ、及び位置データは、連結したベクトルを取得するよう、画像特徴ベクトル、角度ベクトル、及び位置ベクトルを連結することによって融合されてもよい。連結したベクトルは次いで、ポリシーを実装するために、CNNの少なくとも1つの完全結合層など、CNNの残りの部分によって処理されてもよい。観察データが角度データ及び/または位置データを欠いている他の実施例では、ポリシーを実装するよう、画像特徴ベクトル自体がCNNの残りの部分によって処理されてもよい。
そのようなケースでは、タスク埋め込み550は、ポリシーπに従ってロボットデバイス580によって実行されることになるアクションaを生成するよう、観察560と組み合わされてもよく、観察560と融合されてもよく、またはそうでなければ観察560と共に処理されてもよい。例えば、タスク埋め込みベクトルの形式にあるタスク埋め込み550は、制御ネットワーク530によって処理される前に、観察560(これもベクトルの形式にあってもよい)と連結されてもよい。例えば、連結したベクトルは、タスク埋め込み550を表すタスク埋め込みベクトルを、CNNの畳み込み層を使用して画像データを処理することによって取得された画像特徴ベクトルと連結することによって生成されてもよい。連結したベクトルは次いで、ロボットデバイス580によって実行されることになるアクションaを生成するよう、CNNの少なくとも1つの完全結合層など、CNNの残りによって処理されてもよい。上記説明されたように、いくつかのケースでは、タスク埋め込みベクトル及び画像特徴ベクトルも、連結したベクトルがCNNの残りによって処理される前に、連結したベクトルを生成するよう、角度ベクトル及び/または位置ベクトル(観察560の一部である場合)と連結されてもよい。
この手順は、タスクを実装するためにロボットデバイス580によって実行されることになる一連のアクションを生成するよう、ロボットデバイス580の一連の観察560に対して反復して実行されてもよい。各々の反復に対し、それにも関わらず、ロボットデバイス580によって実行されることになるタスクは、同一のままであるが(例えば、所与のタスク埋め込み550が一定である)、観察は全体的に、時間の変化である(例えば、ロボットデバイス580がタスクを実行するよう移動するにつれて)。
図5Bの制御ネットワーク530は、一連の制御命令としてロボットデバイス580によって実行されることになるアクションaを生成する。この実施例では、制御命令は、モータ制御命令570(図5Bでは、連続した時間ステップtにわたる一連のモータ制御命令570を表すようmとして示される)を含む。モータ制御命令570は、モータアクションのシーケンスを実行するようロボットデバイス580を制御するために使用される。例えば、モータ制御命令570は、例えば、ロボットデバイス580の1つ以上のモータを制御することによって、特定のアーム関節角度、エンドエフェクタ位置、関節速度、姿勢測定、及び位置などに適合するようロボットデバイス580を指示することができる。このようにして、ロボットデバイス580は、手動コントローラ585を介した人間の入力を必要とすることなく、制御ネットワーク530によってタスクを実行するよう制御されてもよい。
図5A及び5Bの実施例では、タスク埋め込みネットワーク520及び制御ネットワーク530のうちの少なくとも1つは、第1のタスクを含む、少なくとも1つの訓練タスクの訓練サンプルを含む訓練セットに対して訓練されてもよい。しかしながら、タスク埋め込み550を生成するようタスク埋め込みネットワーク520によって受信されたタスクは、第1のタスクとは異なる、第2のタスクであってもよい。言い換えると、タスク埋め込みネットワーク520は、試験時間において使用されるタスクとは異なるタスクに対して訓練されてもよい。例えば、第1のタスクは、赤い物体に対して手を伸ばすタスクであってもよく、第2のタスクは、青い物体に対して手を伸ばすタスクであってもよい。それでもなお、タスク埋め込みネットワーク520を使用することによって、制御システム510は、第2のタスクが第1のタスクとはどのように異なるかを捕捉するタスク埋め込み550に第2のタスクを適切にマッピングすることが可能であることができる。これは次いで、制御ネットワーク530が、第1のタスクではなく第2のタスクを実行する制御命令をより適切に判定することを可能にすることができる。このようにして、制御システム510は、タスク埋め込みネットワーク520及び/または制御ネットワーク530を再訓練することなく、例えば、新たなタスクを学習すること、またなそうでなければ新たなタスクに適合することがより良好に可能である。故に、ロボットデバイス580は、効率的な方式において新たなタスクの1つ以上の実演から新たなタスクを学習することができる。
いくつかのケースでは、タスク埋め込み550を取得するために使用されるタスクの実演540は、第1の環境内でのタスクの実行の観察を含んでもよい。しかしながら、第2の環境内でタスクを実行することが望ましいことがあり、よって、ロボットデバイス580の複数の観察560は、第2の環境内でのタスクの実行の観察を含んでもよい。第1の環境及び第2の環境は、少なくとも相互に異なる構成を有してもよい。例えば、同一の物体は、第1の環境及び第2の環境内に存在してもよい。しかしながら、第1の環境及び第2の環境内の物体の相対位置は、相互に異なってもよい。他のケースでは、それにも関わらず、第1の環境及び第2の環境は、異なる位置に対応してもよい。例えば、第1の環境は、屋内環境であってもよく、第2の環境は、屋外であってもよい。それでもなお、第1の環境と第2の環境との間の差に関わらず、実施例における制御システム510は、第2の環境内のロボットデバイス580の観察560に基づいて、ロボットデバイス580が第2の環境内でタスクを実行するための制御命令を生成することが可能である。例えば、タスク埋め込みネットワーク520は、例えば、環境内の変化に相対的に不変である、タスクの表現が取得されることを可能にする。したがって、タスクを実行するためのロボットデバイスの観察された環境が、タスクが実演される環境とは異なる場合でさえ、タスク埋め込みネットワーク520によって取得されたタスク埋め込み550のロバスト性は、タスクの所与の実演に対する適切なアクションを正確に予測する制御ネットワーク530の能力を改善する。
図6は、タスク埋め込みネットワーク620の演算の実施例600を示す概略図である。タスク埋め込みネットワーク620は、第1のタスクのサンプル610及び第2のタスクのサンプル615を受信する。各々のサンプルのセットは、特定のタスクに対する「サポートセット」であると考えられてもよい。第1のタスクのサンプル610は、図ではその1つが参照符号612によりラベル付けされる、第1のタスクの4つの観察を含む。第2のタスクのサンプル615は、図ではその1つが参照符号616によりラベル付けされる、第2のタスクの2つの観察を含む。
タスク埋め込みネットワーク620を訓練することは、例えば、訓練サンプルとしてサンプル610、615の各々を使用することを伴う。タスク埋め込みネットワーク620は、それぞれのタスクの表現にサンプル610、615を組み込んでもよく、またはそうでなければそれぞれのタスクの表現にサンプル610、615をマッピングしてもよく、それぞれのタスクの表現は、タスクのコンパクトな表現であってもよい。そのような表現は、センテンスと称されてもよい。タスクの表現は、潜在表現であってもよい。潜在表現は、例えば、タスク埋め込みネットワーク620によって推論される、例えば、タスクの観察に基づいた推論された表現である。タスクは、典型的には、テンソルまたはベクトルなどの多次元数値表現を使用して、数値的に表されてもよい。タスク埋め込みは、組み込まれた空間内のタスクの位置がそのタスクのタイプに関する情報を提供するので(例えば、それが押し進めるタスク、持ち上げるタスクなどであるかどうか)、サンプル610、615自体よりも有用であることができる。対照的に、実演の観察の画素値は、その観察において実行されるタスクのタイプに関する制限された情報、及びタスクの異なる観察と同様であるかまたは異なるかどうかについての制限された情報を提供することができる。
図6は、簡易化された埋め込み空間640内へのサンプル610、615の各々の埋め込みを示す。理解することができるように、第1のタスクのサンプル610は、埋め込み空間640内で共に相対的に近く、埋め込み空間640内で第2のタスクのサンプル615よりも相互に近い。所与のタスクに対して埋め込みネットワーク620によって生成された埋め込みは、集約関数を使用して集約されてもよく、集約関数は、平均関数または平均値関数であってもよい。このようにして、第1のタスクを表す第1の埋め込み642及び第2のタスクを表す第2の埋め込み646が取得されてもよい。
その後、タスクの更なるサンプル630は、タスク埋め込みネットワーク620を使用して処理されてもよい。更なるサンプル630は、「クエリセット」であると考えられてもよい。タスク埋め込みネットワーク620に対する理想的な埋め込みまたは最適な埋め込みを学習するよう、損失関数が計算されてもよい。図8を参照して更に説明されるように、損失関数は、異なるタスクの見本との特定のタスクの見本の比較を伴う、タスク埋め込み損失であってもよく、その結果、タスク埋め込みネットワーク620は、埋め込み空間640の異なる領域に異なる質問をマッピングするよう学習する。
例えば、訓練の間、損失関数項は、比較することができる更なるサンプル630(クエリセット)に対応するタスクのタスク埋め込み654を、第1の埋め込み642及び第2の埋め込み646(例えば、サポートセットごとのタスク埋め込み)と比較してもよい。例えば、構成可能なマージンを有するヒンジ損失関数が使用されてもよい。そのような損失関数は、第1のタスクを表す第1の埋め込み642に第1のタスクのサンプルをマッピングし、第1のタスクのサンプルから離れて第2のタスクを表す第2の埋め込み646を移動させるよう、タスク埋め込みネットワーク620を教えるために使用されてもよい。
このようにして、タスク埋め込みネットワーク620は、共有された特性のセットを有する2つのタスクに対するタスク埋め込みが、異なる特性のセットを有する2つのタスクに対するタスク埋め込みよりも埋め込み空間640内で近いように、タスク埋め込みを生成するために使用されてもよい。例えば、図6では、更なるタスク630は、第1のサンプルセット610よりも第2のサンプルセット615に近いと見なされる。これは、埋め込み空間640内のそれらの距離に基づいて、タスクの間の類似性が識別されることを可能にする。更に、初見のタスクは、タスク埋め込みネットワーク620が訓練された他のタスクへのそれらの類似性を表すことができる、埋め込み空間640内の適切な位置にマッピングされてもよい。このようにして、タスクをマッピングすることによって、制御ネットワークは、タスク埋め込みネットワーク620または制御ネットワークを再訓練することなく、初見のタスクを実行するようロボットデバイスを指示する適切な制御命令のセットをより容易に識別することが可能であることができる。図6では、矢印652、654、及び656は、埋め込み空間にサンプルをマッピングする動作を表してもよい。ヒンジランク損失は、更なるサンプル630のドット積を導出することができ、その結果、2つの他のタスクセットの間の差(線660によって表される)は、少なくともマージン程度に大きい(角度665によって表される)。タスク埋め込みネットワークの訓練は、所与のタスクについてのサポートセットに対する集約タスク埋め込みを、所与のタスクについてのクエリセットにより近くに移動させる役割を果たしてもよく、また、異なるタスクに対する集約タスク埋め込みを、所与のタスクについてのクエリセットから更に離れて移動させる(いわゆる「否定文」)役割を果たしてもよい。
図7は、実施例に従ったロボットデバイスを制御する方法700を示す。ロボットデバイスは、それぞれの現実環境またはシミュレートされた環境内でアクションを実行することが可能ないずれかの現実デバイスまたはシミュレートされたデバイスを含んでもよい。例えば、ロボットデバイスは、前の図のいずれかに示されたようなロボットデバイスを含んでもよい。
ブロック710において、第1のコンテキストにおいて実行されるタスクの少なくとも1つの観察が受信される。前に議論されたように、タスクは、予め定義された目標または目的を達成するよう実行されることになるアクションのセットとして定義されてもよい。用語「コンテキスト」は、タスクに対する環境的構成を指す。例えば、第1のコンテキストは、特定の空間内に配列された特定の物体のセットを含む第1の環境的構成に関連してもよい。タスクの観察は、タスクと関連付けられたアクションが実行される1つ以上の期間にまたがった知覚データを含んでもよい。例えば、観察は、環境内の特定の位置に環境内の特定の物体を置いているロボットまたは人間など、タスクを実行するエンティティのビデオデータを含んでもよい。ビデオデータは、タスクが実行されるときの時間に及ぶ少なくとも2つのフレームを含んでもよい。タスクの観察は、タスクの実演であると見なされてもよい。知覚データは、タスクが実行されている環境に位置するいずれかのセンサから捕捉されてもよい。例えば、ビデオデータと共に、またはビデオデータの代わりに、観察は、姿勢データ、位置データ、モータ制御データ、環境内の物体からのデータ、接触データまたは接点データ、及び音声データなどを含んでもよい。
ブロック720において、少なくとも1つの観察に基づいてタスク埋め込みが生成される。これは、観察からの知覚データを処理することを含んでもよい。この処理は、訓練されたニューラルネットワークアーキテクチャによって実行されてもよい。このアーキテクチャは、前に説明されたようなタスク埋め込みネットワークを含んでもよい。知覚データは、例えば、1つ以上のn次元アレイとして、数値形式において、処理されてもよく、訓練されたニューラルネットワークアーキテクチャに供給されてもよく、nは、1以上である。ビデオデータのフレームを表す画像は、値の一次元アレイまたは二次元アレイとして供給されてもよく、例えば、ビデオデータは、各々のフレームがサイズx×y×cのアレイであるように処理されてもよく、xは、画像幅であり、yは、画像の高さであり、cは、色チャネルの数である。タスク埋め込みは、予め定義されたサイズ(例えば、10〜128)の数値のアレイを含んでもよい。タスク埋め込みのサイズは、実装態様に従って変化してもよく、構成可能パラメータとして設定されてもよい。画像データの処理に対し、訓練されたニューラルネットワークアーキテクチャは、畳み込みニューラルネットワークアーキテクチャを含んでもよい。
ブロック710及び720は、タスク埋め込みがタスクに対して生成される、いわゆる「実演」段階を表す。これは、ブロック730〜750まで異なる時間に実行されてもよい。1つのケースでは、ブロック730〜750は、取得されたタスク埋め込みに適用されてもよい。例えば、タスク埋め込みは、メモリからロードされてもよく、ブロック730〜750を実行するよう供給されてもよい。ブロック730〜750は、ロボットデバイスがタスク埋め込みによって表されるタスクを実行するよう指示される、「試験」段階または「実行」段階を表す。実行段階は、第2のコンテキストにおいて実行される。第2のコンテキストは、第1のコンテキストとは異なってもよい。例えば、タスクは、物体の第1の位置及び構成を有する第1の環境内で実演されてもよく、それは、物体の第2の位置及び構成を有する第2の環境内でこのタスクを実行することが望ましいことがある。特定のケースでは、第1のコンテキスト及び第2のコンテキストは、異なる時間において、及び/または環境内に存在する異なる物体のセットとの、共通環境、例えば、共通位置を含んでもよい。この意味における「物体」は、現存するエンティティ及び現存しないエンティティ、並びに静的物体及び動的物体の両方を指してもよい。
実演段階において実演され、次いで、実行段階において模倣されるいくつかのタスクの非限定的な例は、2つの異なる環境内でドアを開けること(例えば、ロボットアームを使用して)、試験設定及び製造設定において2つの部品を組み立てること、第1の設定において特定の物体を特定のレセプタクルに置くこと、及び異なる設定において同一の物体を同一のレセプタクルに置くこと、異なる環境内で特定の物体(例えば、赤い十字)に移動すること、並びに現実世界環境内でモータアクションの同一のシーケンスを実行することなどを含む。
図7におけるブロック730〜750は、第2のコンテキストにおいてロボットデバイスによって実行されることになる連続したアクションに対して繰り返されるように構成される。ロボットデバイスは、ブロック710において受信された観察内で特徴付ける同一のエンティティであってもよく、またはそれは、異なるエンティティであってもよい。例えば、ブロック730〜750に関連して使用されるロボットデバイスは、現実世界デバイスを含んでもよい一方で、観察のエンティティは、同一のデバイスのシミュレーションを含んでもよく、またはブロック730〜750に関連して使用されるロボットデバイスは、観察内で特徴付ける人間によって実行されるアクションを模倣することを試みてもよい。
ブロック730において、第2のコンテキストにおけるロボットデバイスと関連付けられた知覚データは、所与のアクションに先行する時間に受信される。知覚データは、ロボットデバイスを特徴付けるビデオデータのフレーム、並びに図2に示されたロボットデバイスに対するアーム関節角度、エンドエフェクタ位置、関節速度、及び姿勢測定などのモータ運動データを含んでもよい。ブロック730〜750の初期の稼働では、知覚データは、第2のコンテキストにおけるロボットデバイスの観察、及びロボットデバイスに対する初期のモータ構成を含んでもよい。
ブロック740において、タスク埋め込み及び知覚データは、所与のアクションについてのロボットデバイスに対する制御命令にマッピングされる。このマッピングは、例えば、数値のアレイに形式において、タスク埋め込み及び知覚データを入力として捉える訓練されたニューラルネットワークアーキテクチャによって実行される。タスク埋め込みは、ブロック740の繰り返しごとに同一の値を有してもよく、知覚データは、ロボットデバイスが環境と相互作用するにつれて、及び/または環境が経時的に変化するにつれて変化してもよい。制御命令は、所望のモータまたは関節角度、所望のモータまたは関節速度、所望のキーポイントまたは関節位置、及び所望の姿勢構成のうちの1つ以上など、ロボットデバイスを駆動するために使用される数値のアレイを含んでもよい。制御命令は、ブロック730において受信されたいずれかのモータ運動データと同一のフォーマットであってもよく、または同一のフォーマットになくてもよい。マッピングを実行するために使用されるニューラルネットワークアーキテクチャは、実装態様に応じて多数の構成を有してもよい。例えば、知覚データが画像データを含む場合、訓練されたニューラルネットワークアーキテクチャは、畳み込み層を含んでもよく、畳み込み層では、1つ以上の層の出力にいずれかの非線形性を加えたものが、モータ運動データなどの他の知覚データに適用される、フィードフォワード層の1つ以上の出力にいずれかの非線形性を加えたものと組み合わされてもよい。
ブロック750において、ロボットデバイスは、制御命令を使用して所与のアクションを実行するよう指示される。これは、数値の一次元アレイまたは多次元アレイにおいて表されるモータ構成に影響を与えることを含んでもよい。ブロック730〜750は、同期または非同期で実行されてもよい。前者のケースでは、システムクロックは、知覚データが受信されるとき、及びアクションが実行されるときを命令することができる。後者のケースでは、ブロックは、処理が完了するとすぐに連続して実行されてもよく、例えば、制御命令が作動されたことをモータフィードバックが示すと、次いで、知覚データに対する要求が送信されてもよく、ブロック730が実行されてもよい。
特定のケースでは、タスクの少なくとも1つの観察は、少なくとも2つの時間ステップの間の画像データを含む。少なくとも2つの時間ステップは、タスクが第1のコンテキストにおいて実行される期間に及ぶ。例えば、2つの時間ステップは、t=0及びt=Tを含んでもよく、タスクは、T時間単位内に実行される。画像データは、第1のコンテキストにおいてタスクを実行するロボットデバイスを示す少なくとも1つの画像を表してもよい。例えば、それは、ビデオ捕捉デバイスがロボットデバイスを観察するように位置する、所与の時間におけるビデオデータのフレームを含んでもよい。ロボットデバイスと関連付けられた知覚データは、第2のコンテキストにおいてタスクを実行するロボットデバイスを示す少なくとも1つの画像を表す画像データ、及びロボットデバイスについての状態データ、のうちの少なくとも1つを含んでもよい。上記議論されたように、状態データは、モータ構成及び/または運動データを含んでもよい。制御命令は、ロボットデバイスの1つ以上のアクチュエータが第2のコンテキストにおいてロボットデバイスの移動を可能にする命令を含んでもよい。移動は、図2におけるロボットアームの関節など、ロボットデバイスの1つ以上の部分の移動、及び/または第2のコンテキストの環境内のロボットデバイスの位置の変化を含んでもよい。
図7の方法700は、例えば、ブロック720及び740のうちの1つ以上を実行するよう、訓練されたニューラルネットワークアーキテクチャを使用して実行されてもよい。1つのケースでは、訓練されたニューラルネットワークアーキテクチャは、ブロック720においてタスク埋め込みを生成するタスク埋め込みネットワーク、並びにブロック740においてロボットデバイスに対する制御命令にタスク埋め込み及び知覚データをマッピングする制御ネットワークを含む。それらのネットワークは、前に説明されたタスク埋め込みネットワーク及び制御ネットワークの実装態様を含んでもよい。制御ネットワークは、例えば、強化学習アプローチにおいて使用されるように、このマッピングを実行するためのポリシーを使用してもよい。
訓練されたニューラルネットワークアーキテクチャは、タスク埋め込みネットワーク及び制御ネットワークごとのパラメータをロードすることによって、方法700を実行するよう初期化されてもよい。それらのパラメータは、訓練手順を介して設定された値を有してもよい。訓練手順は、少なくとも1つの観察を受信する前の時点においてローカルまたはリモートに実行されてもよい。例えば、訓練は、訓練セットをローカルに処理し、または訓練セットをリモート位置において処理し、及びローカルに実装された訓練されたニューラルネットワークアーキテクチャにパラメータ値を送信することによって実行されてもよい。パラメータは、複数の訓練タスクの訓練サンプルを含む訓練データに対するタスク埋め込みネットワーク及び制御ネットワークの共同訓練から結果として生じた値を有してもよい。各々の訓練サンプルは、実行される所与の訓練タスク及び訓練タスクを実行するために取られる対応するアクションの1つ以上の観察を含んでもよい。例えば、複数の訓練サンプルは、複数のタスクの各々に対して供給されてもよい。各々の訓練サンプルは、観察データ及びアクションデータを含むタプルを含んでもよく、観察データ及びアクションデータは、数値表現(例えば、値の多次元アレイ)を含んでもよい。観察データは、ブロック710及び/またはブロック730において受信された観察データと同一の形式のデータであってもよい。アクションデータは、ブロック730において受信された知覚データ及び/またはブロック740において生成された制御命令と形式を共有してもよい。各々の訓練サンプルは、所与の環境内で関連するタスクを実行するエンティティ(例えば、人間またはプログラムされたロボットデバイス)を記録することによって生成されてもよい。各々の訓練サンプルは、観察及びアクションデータの軌道、例えば、タスクが実行された時間に及ぶ(例えば、時間ステップ0〜T)タプルのシーケンスを含んでもよい。
1つのケースでは、タスク埋め込みネットワーク及び制御ネットワークの訓練は、共同で実行され、すなわち、両方のネットワークについてのパラメータは、共通訓練手順または共有訓練手順において最適化され、共通訓練手順または共有訓練手順では、一方のネットワークについての誤差が他方のネットワークに対する損失関数において使用されてもよい。ネットワークを共同で訓練することは、より上等且つより有用なタスク埋め込みを可能にし、例えば、タスク埋め込みは、タスク埋め込みネットワークに対する訓練において制御ネットワークについての制御損失を使用することによって、制御ネットワークに対してより大きな有用性を有するように最適化されてもよい。
図8は、タスク埋め込みネットワーク及び制御ネットワークの共同訓練に対する訓練の反復800を示す。訓練の反復は、タスク埋め込みネットワーク及び制御ネットワークについてのパラメータの最適化を可能にする損失値Lを生成する。例えば、訓練の目標は、例えば、損失値を算出する損失関数の勾配に基づいて、訓練の反復についてのパラメータの値を更新するよう、微分可能である、2つのネットワークを通じて再度伝播される訓練からの損失値及び誤差を最小化することであってもよい。図8は、例として提供される訓練の反復を実行する方法を示し、様々な他の方法が代わりに使用されてもよく、図8の方法からの変形例が想定される。図8に示される訓練の反復800は、図4に示された訓練を実装するために使用されてもよい。
ブロック810において、訓練データのセットからの訓練タスクのセットがサンプリングされる。例えば、訓練データが複数のタスクについての軌道を含み、各々のタスクが複数の軌道に関連する訓練データを有する場合、次いで、ブロック810は、タスクのサブセットを選択することを含んでもよい。サンプリングすることは、タスクのランダムなサンプルを取ることを含んでもよい(例えば、各々のタスクは、訓練タスクのセットに対して等しく選択される尤度を有する)。訓練タスクのセットにあるタスクの数を設定するために、バッチサイズが定義されてもよい。タスクをサンプリングすることは、管理可能な訓練の反復を可能にするが、特定の実施例では省略されてもよく、例えば、訓練タスクのセットは、訓練データにおける全てのタスクを含んでもよい。
本実施例では、ブロック820〜840は、訓練タスクのセットにおける所与のタスクごとに繰り返される。ブロック820において、所与のタスクについてのサポートセットが判定される。サポートセットは、タスクを実行するロボットデバイスの第1の観察のセットを含む。観察は、タスクについての見本の観察のセットからサンプリングされてもよい。例えば、サポートセットは、軌道のランダムにサンプリングされたサブセットから少なくとも観察データを取得することによって生成されてもよい。サポートセットのサイズは、構成可能なパラメータであってもよい。所与のタスクについてのサポートセットは、所与のタスクの見本のグループを表し、例えば、それらは、タスクを「記述する」として捉えられてもよい。タスクの各々の見本は、異なってもよい(例えば、異なる環境構成を有してもよく、異なる時間に実行されるタスクを表してもよく、及び/または共通タスクを実行する際の異なる試みを表してもよい)。ブロック830において、所与のタスクについてのクエリセットが判定されてもよい。クエリセットは、所与のタスクを実行するロボットデバイスの第2の観察のセットを含み、第1の観察のセット及び第2の観察のセットは、互いに素である(すなわち、タスクについてのサポートセット及びクエリセットは互いに素である)。クエリセットのサンプリングは、互いに素である制約が適用されると共に、サポートセットに対するサンプリングと同様であってもよい。クエリセットは、タスクの1つ以上の見本を表し、例えば、クエリセットは、タスクを実行するネットワークの能力を試験するために使用される。ブロック840において、タスク埋め込みネットワークは、サポートセットに対するタスク埋め込み及びクエリセットに対するタスク埋め込みを算出するために使用される。これは、図7におけるブロック720と同様の演算を含んでもよい。例えば、サポートセットにおける複数の見本について、見本ごとのタスク埋め込み(例えば、見本からのビデオデータの初期フレーム及び最終フレームを使用して算出されるような)は、集約関数を使用して組み合わされてもよい。集約関数は、平均関数または平均値関数であってもよく、その結果、サポートセットに対する集約タスク埋め込みが、サポートセットにおける個々の見本ごとのタスク埋め込みの平均値を含む。
ブロック820〜840が訓練タスクのセットにおける全てのタスクに対して繰り返されると、タスク埋め込みネットワーク及び制御ネットワークに対する損失関数を初期化するよう、ブロック850が実行される。これは、損失値、または損失値の成分をゼロに設定することを含んでもよい。ブロック860〜880は次いで、ブロック820及び830からのサポートセット及びクエリセット、並びにブロック840からのタスク埋め込みを使用して、訓練タスクのセットにおけるタスクごとに繰り返される。
ブロック860において、タスク埋め込み損失が判定される。タスク埋め込み損失は、タスク埋め込みネットワークに対する損失関数項から結果として生じる。タスク埋め込みネットワークに対する損失関数項は、特定のタスクの見本を異なるタスクの見本と比較し、その結果、損失値の最適化は、タスク埋め込み空間内の異なるタスクを分離する。1つのケースでは、タスク埋め込みネットワークに対する損失関数項は、クエリセットにおける1つ以上の見本のタスク埋め込みを、所与のタスクについてのサポートセット及び異なるタスクについてのサポートセットの両方の集約タスク埋め込みと比較する。構成可能なマージンを有するヒンジ損失関数が使用されてもよい。ヒンジ損失関数は、図6を参照して説明されたような、埋め込み空間内のタスクの区別を可能にすることができる。ヒンジ損失関数は、所与のタスクについてのクエリセットに対するタスク埋め込みと所与のタスクについてのサポートセットに対するタスク埋め込みとの間の第1の類似性測定値を、所与のタスクについてのクエリセットに対するタスク埋め込みと所与のタスクではないタスクについてのサポートセットに対するタスク埋め込みのセットからのタスク埋め込みとの間の第2の類似性測定値と比較してもよい。異なるタスクのクエリセットにおける見本及びサポートセットについての見本に対して総和が実行されてもよい。1つのケースでは、クエリセットのタスク埋め込みは、所与のタスクでない訓練タスクのセットにおける全てのタスクに対する各々のサポートセットのタスク埋め込みと比較されてもよく、これは、クエリセットにおける見本ごとに繰り返されてもよい。類似性測定値は、2つのタスク埋め込みの間のコサイン距離を含んでもよい。
ブロック870において、サポートセットについての制御損失が判定される。制御損失は、制御ネットワークに対する少なくとも1つの損失関数項を算出することから結果として生じる。このケースでは、2つの損失関数項が存在する。少なくとも1つの損失関数項は、制御ネットワークによって予測された制御命令を、所与のタスクを実行するよう実際に取られたアクションに対する制御命令と比較する。ブロック870において、損失関数項は、所与のタスクについてのサポートセットに対するポリシー損失項を含む。これは、例えば、サポートセットにおいて、サポートセットのタスク埋め込み及び見本における特定の時間ステップに適用されるような(例えば、特定の観察−アクションペア)ポリシーと、見本における同一の時間ステップに適用されるような「エキスパート」ポリシーまたは理想のポリシーとの間の差を算出することを含んでもよい。実際には、後者のエキスパートポリシーは、特定の観察−アクションペアにおけるアクションの値によって表されてもよい。故に、ブロック870は、サポートセットのタスク埋め込み及び見本からの観察に制御ネットワークを適用すること、並びにこの出力を見本からのアクションと比較することを含んでもよい。損失値は、見本ごとのL2距離またはサポートセットにおける軌道として算出されてもよい。1つ以上の時間ステップが比較されてもよい。ブロック880において、クエリセットについての制御損失を判定するよう、同様の計算が実行されてもよい。これは、同一の演算をクエリセットの見本に適用することを含んでもよい。ブロック880は、所与のタスクについてのクエリセットに対するポリシー損失項を算出することを含んでもよい。サポートセット及びクエリセットの両方についての制御損失を算出することは、サポートセットの制御損失がクエリセット損失を使用して学習を補完すること(サポートセット損失を最小化することは、見本依存情報が埋め込み空間を通過することができるように、クエリセット損失を最小化することのより容易なバージョンとして理解することができる)、及び所与の見本を繰り返すことが可能である所望の性質をもたらす(例えば、サポートセットは、クエリセットに関して実行される学習を確認する)、という利点を有する。
ブロック860〜880の各々の反復、及び各々のブロックからの結果は、損失値Lを算出するよう合計されてもよい。特定のケースでは、ブロック860〜880の各々からの結果に重み付けが適用されてもよく、重みは、ネットワークに対するハイパーパラメータである。訓練の反復の出力、Lは、タスク埋め込みネットワーク及び制御ネットワークについてのパラメータ値を判定するよう、損失関数を反復して最適化するために使用されてもよい。
本明細書で説明される実施例の方法では、タスク埋め込みは、タスクの表現を提供する。例えば、タスク埋め込みは、数値形式で表現される(例えば、浮動小数点値として)タスクの特性の学習された潜在表現であると理解することができる。訓練することは、異なる特性のセットを有する2つのタスクに対するタスク埋め込みよりも、埋め込み空間内で近い共有された特性のセットを有する2つのタスクに対するタスク埋め込みをもたらす。訓練することは、一意なタスクのセットを一群でサンプリングすることを伴ってもよく、「否定的な」埋め込みまたはセンテンスは、一群の全てのその他のタスクから生成されてもよく、例えば、一群の各々のタスクは、一群のあらゆるその他タスクと比較されてもよい。いずれかのヒンジ損失について、マージンが構成可能なパラメータとして設定されてもよい(例えば、0.01〜1の範囲内で)。特定のケースでは、訓練されたタスク埋め込みネットワークは、タスクを分類するために使用されてもよい。この分類の精度は、一群のその他のタスクに対して埋め込み空間内の最近傍探索を実行することによって推定されてもよい。この実施例では、例えば、ドット積類似性測定値を有するヒンジ損失が使用されるが、他の実施例では、L2損失または同様のものなどの他の損失関数が使用されてもよい。
図9は、プロセッサ910及びコンピュータ実行可能命令930を含む非一時的コンピュータ可読記憶媒体920の実施例900を示す。コンピュータ実行可能命令は、プロセッサ910によって実行されるとき、プロセッサ910を含むコンピューティングデバイスなどのコンピューティングデバイスに、タスク埋め込みネットワークを訓練させる。命令は、上記説明された実施例の方法と同様である、実行される方法をもたらすことができる。
命令935を介して、少なくともタスク埋め込みネットワークを含む制御システムに対して訓練データが取得される。タスク埋め込みネットワークは、タスク埋め込みに入力データをマッピングするように構成される。タスク埋め込みネットワークは、前の実施例のいずれかにおいて説明されたようなタスク埋め込みネットワークを含んでもよい。訓練データは、制御可能デバイスによって1つ以上のコンテキストにおいて実行される1つ以上のタスクに対する観察−アクションデータペアを含んでもよい。制御可能デバイスは、ロボットデバイスを含んでもよく、上記言及されたコンピューティングデバイスと同一のデバイスであってもよく、またはそうでなくてもよく、例えば、プロセッサ910を含むコンピューティングデバイスは、通信可能に結合されたロボットデバイスを制御し、または1つ以上のリモートデバイスを制御するようタスクを組み込むために使用することができる訓練されたタスク埋め込みネットワークを製造する命令930を実行してもよい。
命令940を介して、訓練データ内で表される訓練タスクのセットごとに、サポートセット及びクエリセットが生成される。サポートセット及びクエリセットは、図8のブロック820及び830を参照して説明されたように生成されてもよい。命令940は、訓練タスクのセットにおける所与のタスクについて、サポートセットのタスク埋め込みを生成するために、タスク埋め込みネットワークを所与のタスクに対する観察−アクションペアの第1のセットに適用し、クエリセットのタスク埋め込みを生成するために、タスク埋め込みネットワークを所与のタスクに対する観察−アクションペアの第2のセットに適用するよう、プロセッサに指示することであってもよく、観察−アクションペアの第1のセット及び第2のセットは、互いに素である。観察−アクションペアは、タスク軌道に対する時間ステップを含んでもよい。特定のケースでは、観察データのみがタスク埋め込みを算出するために使用されてもよい。サポートセットのタスク埋め込み及び/またはクエリセットのタスク埋め込みは、上記説明されたような集約タスク埋め込みを含んでもよい。
命令950を介して、制御システムに対する損失関数は、制御システムについての訓練可能なパラメータに対する値を判定するよう最適化される。このケースでは、制御システムに対する損失関数は、タスク埋め込みネットワークに対する損失関数の関数であり、タスク埋め込みネットワークに対する損失関数は、サポートセット及びクエリセットに対する類似性測定値の比較に基づいている。損失関数は、図8におけるブロック860において算出されたのと同様の損失関数であってもよい。所与のタスクに対するクエリセットのタスク埋め込みと所与のタスクに対するサポートセットのタスク埋め込みとの間の類似性測定値は、所与のタスクに対するクエリセットのタスク埋め込みと所与のタスクでないタスクに対するサポートセットのタスク埋め込みとの間の類似性測定値と比較されてもよい。タスク埋め込みネットワークに対する損失関数は、ヒンジ損失関数を含んでもよく、類似性測定値は、ドット積類似性を含んでもよい。
特定のケースでは、制御システムは、タスク埋め込みネットワークからの入力データ及びタスク埋め込みを、制御可能デバイスについてのアクションデータにマッピングするためのポリシーを適用する制御ネットワークを含む。このケースでは、制御システムに対する損失関数は、制御ネットワークに対する損失関数の関数であり、所与のタスクについての制御ネットワークに対する損失関数は、サポートセットについてのポリシー損失及びクエリセットについてのポリシー損失を含む。例えば、制御システムに対する損失関数は、図8におけるブロック870及び880を参照して説明されたように算出されてもよい。
特定のケースでは、観察−アクションデータペアの各々の中の観察データは、観察−アクションデータペアのそれぞれと関連付けられたアクションの前に捕捉された制御可能デバイスを特徴付ける少なくとも1つの画像を表す画像データを含む。このケースでは、観察データは、タスクの実行の間に捕捉される。
命令930は、少なくともタスク埋め込みネットワークに対する訓練されたパラメータのセットをもたらす。タスク埋め込みネットワークは次いで、タスクに対するタスク埋め込みを生成するために、第1のコンテキストにおいてロボットデバイスによって実行されるタスクを示す観察データに適用されてもよい。タスク埋め込みは、第1のコンテキストから抽象化する、例えば、他のコンテキストにおいて変化することがある第1のコンテキストの特定の特徴によって強く影響されない潜在表現を提供する、方式においてタスクを表してもよい。タスク埋め込みは、ロボットデバイスに対する高レベル命令の形式として理解することができ、例えば、それは、制御ネットワークが、タスクを実行するようロボットデバイスを制御することを可能にするために、制御ネットワークに供給されてもよい。制御ネットワークは、ロボットデバイスに対する制御アクションのシーケンスに、第2のコンテキストにおけるロボットデバイスに対するタスク埋め込み及び知覚データを反復してマッピングすることによって、ロボットデバイスを制御してもよい。それらのケースでは、知覚データは、第2のコンテキストにおける制御アクションの実行に続いて、更新及び再マッピングされる。
特定のケースでは、本明細書で説明されるような実施例は、目的が、シミュレーション内で制御ネットワークについてのポリシーを学習し、次いで、追加の訓練がほとんどなくまたは全くなしに、それらを現実世界環境に転送することである、シミュレートされたコンテキストから現実コンテキストにおいて使用されてもよい。これは、現実世界における面倒であり且つ時間がかかるデータ収集に対する必要性を低下させる。シミュレーションの間、例えば、照明位置、カメラ位置、物体の質感、物体サイズ、及び物体形状などの因子を変えるために、ランダム化が適用されてもよい。これは、有用な抽象的なタスク埋め込みが学習されることを可能にする訓練データを提供する。
本明細書で説明される特定の実施例は、エンドツーエンドのワンショット(または、少なくとも少数ショット)模倣学習を可能にするメタ学習に対するアプローチを提供する。本明細書で説明される特定の実施例は、埋め込みネットワークを介してタスクのコンパクトな記述を学習し、タスクのコンパクトな記述は、同一のタスクの異なる見本に対するアクションを予測するよう、制御ネットワークに条件を設定するために使用されてもよい。実施例の制御システムは、シミュレーションにおいて訓練されてもよく、次いで、現実世界に配備されてもよい。配備されると、ロボットデバイスは、単一の実演または複数の実演から新たなタスクを学習し続けることができる。訓練セットに含まれるタスクを構成することによって、タスク埋め込みネットワークは、広範囲のタスクにわたって一般化することが可能である。特定の実施例では、新たなタスクは、視覚データに基づいて学習されてもよい。これは、試験時間または実行時間に存在することになるエキスパートアクションまたは状態に対する必要性なしに、ロボットデバイスが人間のオペレータによって手動で実行されるタスクを模倣することを可能にする。
上記実施例は例示的であるとして理解されることになる。更なる実施例が想定される。いずれかの1つの実施例に関連して説明されたいずれかの特徴は、単独で使用されてもよく、または説明された他の特徴との組み合わせで使用されてもよく、また、実施例のいずれかのその他の1つ以上の特徴との組み合わせ、または実施例のいずれかのその他のいずれかの組み合わせで使用されてもよい。更に、添付の請求項の範囲から逸脱することなく、上記で説明されていない同等物及び修正物も採用されてもよい。
110 制御システム
120 タスク埋め込みネットワーク
130 制御ネットワーク
140 タスクの実演
150 タスク埋め込み
160 ロボットデバイスの複数の連続する観測
170 ロボットデバイスのためのそれぞれの制御命令
200 ロボットデバイス
210 ロボットデバイス
220 表面
222 第1の物体
224 第2の物体
230 基盤
231 アームの要素
232 関節
233 アームの要素
234 関節
235 アームの要素
236 関節
237 アームの要素
238 関節
240 アームの要素
300 表面
310 ロボットデバイス
312 基盤
314 要素
316 関節
318 要素
322 第1の物体
324 第2の物体
326 第3の物体
328 第4の物体
350 画像
355 画像
360 ロボットデバイス
362 レセプタクル
364 レセプタクル
366 異なる形状のレセプタクル
368 異なる形状のレセプタクル
370 物体
372 物体
410 制御システム
420 タスク埋め込みネットワーク
430 制御ネットワーク
441 訓練セット
442 第1の訓練タスク
444 第1の一連のサンプル
446 第1のサンプル
448 第1の時間(t=1)における観察
510 制御システム
520 タスク埋め込みネットワーク
530 制御ネットワーク
540 実演
550 タスク埋め込み
560 観察
570 モータ制御命令
580 ロボットデバイス
585 手動コントローラ
590 捕捉デバイス
610 サンプル
612 参照符号
615 第2のサンプルセット
616 参照符号
620 タスク埋め込みネットワーク
640 埋め込み空間
642 第1の埋め込み
646 第2の埋め込み
652 矢印
654 矢印
660 線
665 角度
700 方法
710 ブロック
720 ブロック
730 ブロック
740 ブロック
750 ブロック
810 ブロック
820 ブロック
830 ブロック
840 ブロック
850 ブロック
860 ブロック
870 ブロック
880 ブロック
910 プロセッサ
920 非一時的コンピュータ可読記憶媒体
930 命令
935 命令
940 命令
950 命令

Claims (22)

  1. ロボットデバイスの制御システムであって、
    タスクの1つ以上の実演を受け取るため、及びタスク埋め込みを生成するためのタスク埋め込みネットワークであって、前記タスク埋め込みが、前記タスクの表現を含み、各実演が、前記タスクの実行の1つ以上の観測を含む、前記タスク埋め込みネットワークと、
    前記タスク埋め込みネットワークから前記タスク埋め込みを受け取り、及び前記ロボットデバイスの複数の連続する観測を、前記ロボットデバイスのためのそれぞれの制御命令にマッピングするためのポリシーを適用する制御ネットワークと、
    を備え、
    前記制御ネットワークによって適用された前記ポリシーは、前記タスク埋め込みネットワークからの前記タスク埋め込みを使用して、前記ロボットデバイスの前記複数の連続する観測全体で調整される、
    前記制御システム。
  2. 前記タスク埋め込みネットワーク及び前記制御ネットワークが、各々、少なくとも1つの環境での少なくとも1つの訓練タスクの訓練サンプルを含む訓練セットの共同訓練から生じるそれぞれのパラメータを含み、
    各訓練サンプルが、所与の環境での所与の訓練タスクの1つ以上の観測と、前記所与の環境で前記ロボットデバイスによって実行された対応するアクションとを含む、請求項1に記載の制御システム。
  3. 前記タスク埋め込みネットワーク及び前記制御ネットワークの少なくとも1つが、少なくとも1つの訓練タスクの訓練サンプルを含む訓練セットで訓練され、
    前記少なくとも1つの訓練タスクが第1のタスクを含み、
    前記タスク埋め込みネットワークによって受け取られたタスクが、前記第1のタスクとは異なる第2のタスクであり、前記制御ネットワークが、前記ロボットデバイスの前記複数の連続する観測を、前記ロボットデバイスが前記第2のタスクを実行するための前記それぞれの制御命令にマッピングするための前記ポリシーを適用するように構成される、
    請求項1または請求項2に記載の制御システム。
  4. 前記タスクの前記1つ以上の実演が、第1の環境での前記タスクの前記実行の1つ以上の観測を含み、
    前記制御命令が、前記ロボットデバイスが第2の環境で前記タスクを実行するための制御命令を含み、前記第1の及び前記第2の環境が少なくとも異なる構成を有し、
    前記ロボットデバイスの前記複数の連続する観測が、前記第2の環境での前記ロボットデバイスの観測を含む、
    請求項1から3のいずれか1項に記載の制御システム。
  5. 前記タスクの前記実行の前記1つ以上の観測が、前記タスクを実行する前記ロボットデバイスの少なくとも1つの画像を表す画像データを含み、
    前記制御命令が、前記ロボットデバイスの1つ以上のモータのためのモータ制御命令を含む、請求項1〜4のいずれか1項に記載の制御システム。
  6. 前記タスク埋め込みネットワーク及び前記制御ネットワークが、各々、少なくとも1つのシミュレーションされた環境での少なくとも1つの訓練タスクの訓練サンプルを含む訓練セットでの共同訓練から生じるそれぞれのパラメータを含み、
    各訓練サンプルが、所与のシミュレーションされた環境での所与の訓練タスクの1つ以上の観測と、前記所与のシミュレーションされた環境で前記ロボットデバイスのシミュレーションによって実行された対応するアクションとを含む、請求項1〜5のいずれか1項に記載の制御システム。
  7. ロボットデバイスを制御する方法であって、
    第1のコンテキストで実行されているタスクの少なくとも1つの観測を受け取ることと、
    前記少なくとも1つの観測に基づいてタスク埋め込みを生成することと、
    第2のコンテキストで前記ロボットデバイスによって実行される連続アクションのために、
    所与のアクションに先行するときに前記第2のコンテキストで前記ロボットデバイスと関連付けられた知覚データを受け取ることと、
    前記所与のアクションのために、前記タスク埋め込み及び前記知覚データを前記ロボットデバイスのための制御命令にマッピングすることと、
    前記ロボットデバイスに、前記制御命令を使用して、前記所与のアクションを実行するように命令することと、
    を含む、前記方法。
  8. 前記タスクの少なくとも1つの観測が、少なくとも2つの時間ステップの画像データを含み、
    前記少なくとも2つの時間ステップが、前記タスクが前記第1のコンテキストで実行される期間を対象として含み、
    前記画像データが、前記第1のコンテキストで前記タスクを実行する前記ロボットデバイスを示す少なくとも1つの画像を表す、請求項7に記載の方法。
  9. 前記ロボットデバイスと関連付けられた前記知覚データが、前記第2のコンテキストで前記タスクを実行している前記ロボットデバイスを示す少なくとも1つの画像を表す画像データと、前記ロボットデバイスの状態データとのうちの少なくとも1つを含み、
    前記制御命令が、前記第2のコンテキストで前記ロボットデバイスの移動を可能にする、前記ロボットデバイスの1つ以上のアクチュエータのための命令を含む、請求項7または請求項8に記載の方法。
  10. 前記少なくとも1つの観測を受け取る前に、
    タスク埋め込みネットワーク及び制御ネットワークを構成するためのそれぞれのパラメータをロードすることであって、
    前記タスク埋め込みネットワークが、前記タスク埋め込みを生成するために使用されており、
    前記制御ネットワークが、前記タスク埋め込み及び前記知覚データを前記ロボットデバイスのための前記制御命令にマッピングするために使用されており、
    前記パラメータが、複数の訓練タスクの訓練サンプルを含む訓練データでの前記タスク埋め込みネットワーク及び前記制御ネットワークの共同訓練から生じ、
    前記訓練サンプルが、実行されている前記複数の訓練タスクの1つ以上の観測と、前記訓練タスクを実行するために講じられた対応するアクションとを含む、
    前記ロードすること、
    を含む、請求項7〜9のいずれか1項に記載の方法。
  11. 前記少なくとも1つの観測を受け取る前に、前記タスク埋め込みを実行するタスク埋め込みネットワークと、前記タスク埋め込み及び前記知覚データから前記ロボットデバイスのための前記制御命令への前記マッピングを実行するためのポリシーを適用する制御ネットワークと、を共同で訓練することを含む、請求項7〜10のいずれか1項に記載の方法。
  12. 前記タスク埋め込みネットワーク及び前記制御ネットワークを共同で訓練することが、訓練反復のために、
    訓練データのセットから訓練タスクのセットをサンプリングすることと、
    前記訓練タスクのセットの所与のタスクごとに、
    前記タスクを実行している前記ロボットデバイスの観測の第1のセットを含む前記所与のタスクのサポートセットを決定することと、
    前記タスクを実行している前記ロボットデバイスの観測の第2のセットを含む前記所与のタスクのクエリセットを決定することであって、前記観測の第1のセット及び第2のセットが互いに素である、前記決定することと、
    前記タスク埋め込みネットワークを使用して、前記サポートセットのタスク埋め込み及び前記クエリセットのタスク埋め込みを計算することと、
    前記タスク埋め込みネットワーク及び前記制御ネットワークの損失関数を初期化することと、
    前記訓練タスクのセットの所与のタスクごとに、
    前記タスク埋め込みネットワークの損失関数項を計算することであって、前記損失関数項が、前記所与のタスクの前記クエリセットのタスク埋め込みと、前記所与のタスクの前記サポートセットのタスク埋め込みとの間の第1の類似基準を、前記所与のタスクの前記クエリセットの前記タスク埋め込みと、前記所与のタスクではないタスクのサポートセットのタスク埋め込みのセットからのタスク埋め込みとの間の第2の類似基準に比較するヒンジ損失関数を含む、前記計算することと、
    を含み、
    前記訓練反復が、前記損失関数を最適化して、前記タスク埋め込みネットワーク及び前記制御ネットワークのパラメータ値を決定するために繰り返される、
    請求項11に記載の方法。
  13. 前記タスク埋め込みネットワーク及び前記制御ネットワークを共同で訓練することが、訓練反復のために、
    前記訓練タスクのセットの所与のタスクごとに、
    前記制御ネットワークの少なくとも1つの損失関数項を計算することであって、前記少なくとも1つの損失関数項が、前記制御ネットワークを使用し予測された制御命令と、前記所与のタスクを実行するために講じられたアクションのための制御命令との比較を含む、前記計算すること、
    を含み、
    前記制御ネットワークの前記少なくとも1つの損失関数項が、所与のタスクの前記サポートセットのポリシー損失項と、前記所与のタスクの前記クエリセットのポリシー損失項とを含む、
    請求項12に記載の方法。
  14. 前記タスク埋め込みが前記タスクの表現を提供し、
    特性の共有されたセットを有する2つのタスクのタスク埋め込みが、特性の異なるセットを有する2つのタスクのタスク埋め込みよりも埋め込み空間でより近い、請求項10〜13のいずれか1項に記載の方法。
  15. 前記タスク埋め込みネットワーク及び前記制御ネットワークの前記パラメータのセットが、シミュレーションされたロボットデバイスを使用し、シミュレーションされた環境で学習される、請求項10〜14のいずれか1項に記載の方法。
  16. コンピュータ実行可能命令を含む非一時的なコンピュータ可読記憶媒体であって、前記実行可能命令が、プロセッサによって実行されるとき、コンピューティングデバイスに、
    入力データをタスク埋め込みにマッピングするように構成された少なくとも1つのタスク埋め込みネットワークを備える制御システムのために、制御可能デバイスによって1つ以上のコンテキストで実行される1つ以上のタスクのための観測−アクションデータのペアを含む訓練データを取得することと、
    前記訓練データ内で表される訓練タスクのセットのそれぞれにサポートセット及びクエリセットを生成することであって、前記訓練タスクのセットの所与のタスクのために、
    サポートセットタスク埋め込みを生成するために前記タスク埋め込みネットワークを前記所与のタスクの観測−アクションのペアの第1のセットに適用することと、
    クエリセットタスク埋め込みを生成するために前記タスク埋め込みネットワークを前記所与のタスクの観測−アクションのペアの第2のセットに適用することであって、前記観測−アクションのペアの第1のセット及び第2のセットが互いに素である、前記第2のセットに適用することと、
    を含む、前記サポートセット及び前記クエリセットを生成することと、
    前記制御システムのための訓練可能なパラメータの値を決定するために前記制御システムの損失関数を最適化することであって、前記制御システムの前記損失関数が前記タスク埋め込みネットワークの損失関数の関数であり、前記タスク埋め込みネットワークの前記損失関数が、前記サポートセットと前記クエリセットの類似基準の比較に基づく、前記最適化することと、
    を行わせ、
    所与のタスクの前記クエリセットタスク埋め込みと、前記所与のタスクの前記サポートセットタスク埋め込みとの間の類似基準が、前記所与のタスクの前記クエリセットタスク埋め込みと、前記所与のタスクではないタスクのサポートセットタスク埋め込みとの間の類似基準に比較される、
    前記非一時的なコンピュータ可読記憶媒体。
  17. 前記制御システムが、前記入力データと、前記タスク埋め込みネットワークからの前記タスク埋め込みとを、前記制御可能デバイスのためのアクションデータにマッピングするためのポリシーを適用する制御ネットワークを備え、
    前記制御システムの前記損失関数が、前記制御ネットワークの損失関数の関数であり、
    所与のタスクのための前記制御ネットワークの前記損失関数が、前記サポートセットのポリシー損失及び前記クエリセットのポリシー損失を含む、
    請求項16に記載の媒体。
  18. 前記観測−アクションデータのペアのそれぞれの中の観測データが、それぞれ前記観測−アクションデータのペアと関連付けられたアクションの前に取り込まれる、前記制御可能デバイスを特徴付ける少なくとも1つの画像を表す画像データを含み、
    前記観測データはタスクの実行中に取り込まれている、請求項16または請求項17に記載の媒体。
  19. 前記タスク埋め込みネットワークの前記損失関数がヒンジ損失関数を含み、前記類似基準がドット積類似を含む、請求項16〜18のいずれか1項に記載の媒体。
  20. 前記命令が、プロセッサによって実行されるとき、前記コンピューティングデバイスに、
    第1のコンテキストでロボットデバイスによって実行されているタスクを示す観測データを受け取ることと、
    訓練後に前記制御システムの前記タスク埋め込みネットワークを前記観測データに適用してタスク埋め込みを生成することと、
    第2のコンテキストでの前記ロボットデバイスのための前記タスク埋め込み及び知覚データを、前記ロボットデバイスのための一連の制御アクションに繰り返しマッピングすることであって、前記知覚データが、前記第2のコンテキストでの制御アクションの実行に続いて更新され、再マッピングされる、前記繰り返しマッピングすることと、
    を行わせる、
    請求項16〜19のいずれか1項に記載の媒体。
  21. ロボットデバイスの制御ネットワークであって、前記制御ネットワークが、
    タスクの1つ以上の実演から生成された前記タスクの表現を含むタスク埋め込みを受け取ることと、
    前記ロボットデバイスの複数の連続する観測を前記ロボットデバイスのためのそれぞれの制御命令にマッピングするためのポリシーを適用することと、
    を行うように構成され、
    前記制御ネットワークによって適用された前記ポリシーは、前記タスク埋め込みを使用して、前記ロボットデバイスの前記複数の連続する観測全体で調整される、
    前記制御ネットワーク。
  22. 前記制御命令がモータ制御命令を含み、前記制御ネットワークが、前記モータ制御命令を使用して、前記ロボットデバイスの1つ以上のモータを制御するように構成される、請求項21に記載の制御ネットワーク。
JP2021515620A 2018-09-21 2019-09-10 デバイス制御のためのタスク埋め込み Withdrawn JP2022501725A (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
GB1815431.0A GB2577312B (en) 2018-09-21 2018-09-21 Task embedding for device control
GB1815431.0 2018-09-21
PCT/GB2019/052520 WO2020058669A1 (en) 2018-09-21 2019-09-10 Task embedding for device control

Publications (1)

Publication Number Publication Date
JP2022501725A true JP2022501725A (ja) 2022-01-06

Family

ID=64024252

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2021515620A Withdrawn JP2022501725A (ja) 2018-09-21 2019-09-10 デバイス制御のためのタスク埋め込み

Country Status (6)

Country Link
US (1) US20210205988A1 (ja)
JP (1) JP2022501725A (ja)
KR (1) KR20210060519A (ja)
CN (1) CN112771540A (ja)
GB (1) GB2577312B (ja)
WO (1) WO2020058669A1 (ja)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020062002A1 (en) * 2018-09-28 2020-04-02 Intel Corporation Robot movement apparatus and related methods
EP3753684B1 (en) * 2019-06-21 2022-08-10 Robert Bosch GmbH Method and system for robot manipulation planning
WO2022013933A1 (ja) * 2020-07-14 2022-01-20 日本電気株式会社 制御装置、制御方法及び記憶媒体
US20220068445A1 (en) * 2020-08-31 2022-03-03 Nec Laboratories America, Inc. Robust forecasting system on irregular time series in dialysis medical records
US20220161423A1 (en) * 2020-11-20 2022-05-26 Naver Corporation Transformer-Based Meta-Imitation Learning Of Robots
EP4102405A1 (en) * 2021-06-10 2022-12-14 Naver Corporation Demonstration-conditioned reinforcement learning for few-shot imitation
EP4184393A1 (en) * 2021-11-17 2023-05-24 Tata Consultancy Services Limited Method and system for attentive one shot meta imitation learning from visual demonstration
CN114454176B (zh) * 2022-03-11 2024-03-12 深圳鹏行智能研究有限公司 机器人的控制方法、控制装置、机器人和存储介质

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8843236B2 (en) * 2012-03-15 2014-09-23 GM Global Technology Operations LLC Method and system for training a robot using human-assisted task demonstration
US9403273B2 (en) * 2014-05-23 2016-08-02 GM Global Technology Operations LLC Rapid robotic imitation learning of force-torque tasks
US9630318B2 (en) * 2014-10-02 2017-04-25 Brain Corporation Feature detection apparatus and methods for training of robotic navigation
WO2018053187A1 (en) * 2016-09-15 2018-03-22 Google Inc. Deep reinforcement learning for robotic manipulation
CN110730970B (zh) * 2017-09-20 2024-03-05 谷歌有限责任公司 优化策略控制器的方法和系统

Also Published As

Publication number Publication date
CN112771540A (zh) 2021-05-07
WO2020058669A1 (en) 2020-03-26
GB201815431D0 (en) 2018-11-07
KR20210060519A (ko) 2021-05-26
GB2577312A (en) 2020-03-25
GB2577312B (en) 2022-07-20
US20210205988A1 (en) 2021-07-08

Similar Documents

Publication Publication Date Title
JP2022501725A (ja) デバイス制御のためのタスク埋め込み
Chebotar et al. Closing the sim-to-real loop: Adapting simulation randomization with real world experience
Dasari et al. Robonet: Large-scale multi-robot learning
EP3621773B1 (en) Viewpoint invariant visual servoing of robot end effector using recurrent neural network
Kumar et al. Learning dexterous manipulation policies from experience and imitation
Zhu et al. Reinforcement and imitation learning for diverse visuomotor skills
Finn et al. Deep visual foresight for planning robot motion
Laskey et al. Robot grasping in clutter: Using a hierarchy of supervisors for learning from demonstrations
JP7458741B2 (ja) ロボット制御装置及びその制御方法及びプログラム
WO2020065001A1 (en) Learning motor primitives and training a machine learning system using a linear-feedback-stabilized policy
Fu et al. Active learning-based grasp for accurate industrial manipulation
CN115605326A (zh) 用于控制机器人的方法和机器人控制器
Valassakis et al. Demonstrate once, imitate immediately (dome): Learning visual servoing for one-shot imitation learning
CN115351780A (zh) 用于控制机器人设备的方法
Omrčen et al. Autonomous acquisition of pushing actions to support object grasping with a humanoid robot
Inoue et al. Transfer learning from synthetic to real images using variational autoencoders for robotic applications
CN113076615A (zh) 基于对抗式深度强化学习的高鲁棒性机械臂操作方法及系统
Lu et al. Markerless camera-to-robot pose estimation via self-supervised sim-to-real transfer
Langsfeld Learning task models for robotic manipulation of nonrigid objects
Sturm et al. Adaptive body scheme models for robust robotic manipulation.
Lv et al. Sam-rl: Sensing-aware model-based reinforcement learning via differentiable physics-based simulation and rendering
Beik Mohammadi et al. Mixed-reality deep reinforcement learning for a reach-to-grasp task
Graefe et al. The sensor-control Jacobian as a basis for controlling calibration-free robots
CN117769724A (zh) 使用深度学习的对象检测和分类的合成数据集创建
JP7205752B2 (ja) ロボット制御装置、ロボット制御方法、及びロボット制御プログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20220801

A761 Written withdrawal of application

Free format text: JAPANESE INTERMEDIATE CODE: A761

Effective date: 20230512