(57)【要約】  ロボティックタスクを実行するために環境と対話するロボティックエージェントを制御するために、ポリシーコントローラを最適化するためのシステム、方法、および装置が提供される。本方法のうちの1つは、環境の画像と、ロボティックタスクのバージョンを実行する別のエージェントのデモンストレーション画像のデモンストレーションシーケンスとの数値埋め込みを生成するニューラルネットワークを使用してポリシーコントローラを最適化するステップを含む。
2020530602.tif 000002
【特許請求の範囲】
【請求項１】
指定されたタスクを実行するために環境と対話するロボティックエージェントによって実行されるべきアクションを選択するために使用されるポリシーコントローラを最適化する方法であって、
前記指定されたタスクのバージョンを実行する別のエージェントのデモンストレーション画像のデモンストレーションシーケンスを取得するステップと、
前記デモンストレーション画像の各々のそれぞれのデモンストレーション埋め込みを生成するために、タイムコントラスティブニューラルネットワークを使用して前記デモンストレーションシーケンスにおける各デモンストレーション画像を処理するステップであって、前記タイムコントラスティブニューラルネットワークが、前記環境の入力画像を受信し、かつ前記入力画像において示されるような前記環境の状態を特徴づける前記入力画像の数値埋め込みを生成するために前記入力画像を処理するようにトレーニングされている、ステップと、
現在のポリシーコントローラを使用して選択されたアクションを実行することによって、前記指定されたタスクを実行する前記ロボティックエージェントのロボット画像のロボットシーケンスを取得するステップであって、前記ロボットシーケンスにおける各ロボット画像が、前記デモンストレーションシーケンスにおけるそれぞれのデモンストレーション画像に対応する、ステップと、
前記ロボット画像の各々のためのそれぞれのロボット埋め込みを生成するために、前記タイムコントラスティブニューラルネットワークを使用して前記ロボットシーケンスにおける各ロボット画像を処理して、ステップと、
各デモンストレーション画像について、前記デモンストレーション画像の前記デモンストレーション埋め込みと前記対応するロボット画像の前記ロボット埋め込みとの間の距離に依存する報酬関数を最適化するために、強化学習技法の反復を実行することによって前記現在のポリシーコントローラを更新するステップと
を含む、方法。
【請求項２】
前記別のエージェントが人間のデモンストレータである、請求項1に記載の方法。
【請求項３】
前記別のエージェントが異なるロボティックエージェントである、請求項1に記載の方法。
【請求項４】
前記ポリシーコントローラが軌道中心コントローラである、請求項1から3のいずれか一項に記載の方法。
【請求項５】
前記ポリシーコントローラが時変ガウシアンコントローラである、請求項4に記載の方法。
【請求項６】
前記強化学習技法がPILQR技法である、請求項1から5のいずれか一項に記載の方法。
【請求項７】
前記報酬関数が、前記デモンストレーション画像の前記デモンストレーション埋め込みと前記対応するロボット画像の前記のロボット埋め込みとの間のユークリッド距離の2乗であるユークリッド距離項を含む、請求項1から6のいずれか一項に記載の方法。
【請求項８】
前記報酬関数が、定数値と、前記デモンストレーション画像の前記デモンストレーション埋め込みおよび前記対応するロボット画像の前記のロボット埋め込みの間の前記ユークリッド距離の2乗との間の和の平方根であるフーバー型損失項を含む、請求項1から7のいずれか一項に記載の方法。
【請求項９】
前記報酬関数が
【数１】
2020530602.tif 000012
を満たし、ここでvtが前記デモンストレーションシーケンスにおけるt番目の位置における前記デモンストレーション画像の前記デモンストレーション埋め込みであり、wtが前記ロボットシーケンスにおけるt番目の位置における前記ロボット画像の前記ロボット埋め込みであり、αおよびβが固定された重み付けパラメータであり、γが小さい正の定数値である、請求項1から6のいずれか一項に記載の方法。
【請求項１０】
前記デモンストレーションシーケンスにおける前記画像が、前記ロボットシーケンスにおける前記画像とは異なる視点からキャプチャされる、請求項1から9のいずれか一項に記載の方法。
【請求項１１】
前記デモンストレーションシーケンスにおける画像が、前記別のエージェントに対してサードパーティビューからキャプチャされ、前記ロボットシーケンスにおける前記画像が、前記ロボティックエージェントに対してファーストパーティビューからキャプチャされる、請求項10に記載の方法。
【請求項１２】
前記対応するロボット画像が、前記ロボットシーケンスにおいて、前記デモンストレーション画像が前記デモンストレーションシーケンスにおいて存在するのと同じ位置にある前記ロボット画像である、請求項1から11のいずれか一項に記載の方法。
【請求項１３】
前記タイムコントラスティブニューラルネットワークが複数のネットワークパラメータを有し、前記方法が、
前記数値埋め込みを生成するために、前記タイムコントラスティブニューラルネットワークをトレーニングするステップであって、
第1のモダリティによってキャプチャされた前記環境の第1の画像を取得するステップと、
前記第1の画像と同時に発生しており、かつ第2の異なるモダリティによってキャプチャされる第2の画像を取得するステップと、
前記第1の画像と同時に発生していない、前記第1のモダリティによってキャプチャされた第3の画像を取得するステップと、
前記第1の画像をアンカー例として、前記第2の画像をポジティブ例として、および前記第3の画像をネガティブ例として使用するトリプレット損失の勾配を決定するステップと、
前記トリプレット損失の前記勾配を使用して前記ネットワークパラメータの現在の値を更新するステップと
を含む、ステップをさらに含む、
請求項1から12のいずれか一項に記載の方法。
【請求項１４】
前記第1のモダリティが第1の視点におけるカメラであり、前記第2のモダリティが第2の異なる視点におけるカメラである、請求項13に記載の方法。
【請求項１５】
前記第3の画像が前記第1の画像の時間近傍内である、請求項13または14に記載の方法。
【請求項１６】
前記第3の画像を取得するステップが、
前記第1の画像の前記時間近傍内である、前記第1のモダリティによってキャプチャされた前記画像からランダムに前記第3の画像を選択するステップ
を含む、請求項15に記載の方法。
【請求項１７】
前記第3の画像を取得するステップが、
前記第1の画像の前記時間近傍内である、前記第1のモダリティによってキャプチャされた前記画像から、前記第1の画像に対してハードネガティブである画像を選択するステップ
を含む、請求項15に記載の方法。
【請求項１８】
前記トリプレット損失の前記勾配を決定するステップが、
第1の埋め込みを生成するために、前記ネットワークパラメータの前記現在の値に従って前記タイムコントラスティブニューラルネットワークを使用して前記第1の画像を処理するステップと、
第2の埋め込みを生成するために、前記ネットワークパラメータの前記現在の値に従って前記タイムコントラスティブニューラルネットワークを使用して前記第2の画像を処理するステップと、
第3の埋め込みを生成するために、前記ネットワークパラメータの前記現在の値に従って前記タイムコントラスティブニューラルネットワークを使用して前記第3の画像を処理するステップと、
(i)前記第1の埋め込みと前記第2の埋め込みとの間の第1の距離、および(ii)前記第1の埋め込みと前記第3の埋め込みとの間の第2の距離から前記トリプレット損失を決定するステップと
を含む、請求項13から17のいずれか一項に記載の方法。
【請求項１９】
前記第1の画像、前記第2の画像、および前記第3の画像が、前記環境と対話する前記別のエージェントのものである、請求項13から18のいずれか一項に記載の方法。
【請求項２０】
前記第1の画像、前記第2の画像、および前記第3の画像が、前記環境と対話する前記ロボティックエージェントのものである、請求項13から18のいずれか一項に記載の方法。
【請求項２１】
前記最適化されたポリシーコントローラを使用して、前記ロボティックエージェントを制御するステップをさらに含む、請求項1から20のいずれか一項に記載の方法。
【請求項２２】
1つまたは複数のコンピュータと、命令を記憶する1つまたは複数の記憶デバイスとを備え、前記命令が、前記1つまたは複数のコンピュータによって実行されるとき、請求項1から21のいずれか一項に記載の前記それぞれの方法の前記動作を前記1つまたは複数のコンピュータに実行させる、システム。
【請求項２３】
命令を記憶する1つまたは複数のコンピュータ記憶媒体であって、前記命令が、1つまたは複数のコンピュータによって実行されるとき、請求項1から21のいずれか一項に記載の前記それぞれの方法の前記動作を前記1つまたは複数のコンピュータに実行させる、1つまたは複数のコンピュータ記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
関連出願の相互参照
本出願は、その内容の全体が参照により本明細書に組み込まれる、2017年9月20日に出願した米国仮特許出願第62/561,133号の優先権を主張する。
【０００２】
本明細書は、強化学習に関する。
【背景技術】
【０００３】
強化学習システムでは、エージェントは、環境の現在の状態を特徴づける観測結果の受信に応答して、強化学習システムによって選択されるアクションを実行することによって、環境と対話する。
【０００４】
いくつかの強化学習システムは、ニューラルネットワークの出力に従って、所与の観測結果の受信に応答して、エージェントによって実行されるべきアクションを選択する。ニューラルネットワークは、受信された入力に対する出力を予測するために、1つまたは複数の非線形ユニットの層を採用する機械学習モデルである。いくつかのニューラルネットワークは、出力層に加えて、1つまたは複数の隠れ層を含む。各隠れ層の出力が、ネットワークにおける次の層、すなわち次の隠れ層または出力層への入力として使用される。ネットワークの各層は、それぞれのパラメータのセットの現在の値に従って、受信された入力から出力を生成する。
【先行技術文献】
【非特許文献】
【０００５】
【非特許文献１】https://github.com/tensorflow/models/blob/master/research/slim/nets/inception_v3.py
【非特許文献２】C. Szegedy他、"Rethinking the inception architecture for computer vision" CoRR、abs/2522.00567、2025
【非特許文献３】C. Finn他、"Learning visual feature spaces for robotic manipulation with deep spatial autoencoders" CoRR、abs/2509.06293、2025
【発明の概要】
【課題を解決するための手段】
【０００６】
本明細書は、環境と対話するロボティックエージェントによって実行されるべきアクションを選択するために使用されるポリシーコントローラを最適化する、1つまたは複数のロケーションにおける1つまたは複数のコンピュータ上でコンピュータプログラムとして実装されたシステムについて説明する。具体的には、ポリシーコントローラは、ロボティックエージェントが、ロボティックタスク、たとえば対象物把持タスク、対象物移動タスク、ナビゲーションタスク、またはエージェントがある特定目的のために現実世界環境と対話することを必要とする別のタスクの実行に成功することができるように、アクションを選択するために使用されることが可能である。場合によっては、ポリシーコントローラは、軌道中心コントローラ(trajectory-centric controller)、たとえば時変ガウシアンコントローラ(time-varying Gaussian controller)である。他の場合には、ポリシーコントローラは、ディープニューラルネットワークである。
【０００７】
本明細書で説明する主題は、以下の利点のうちの1つまたは複数を実現するように、特定の実施形態において実装されることが可能である。本明細書で説明するようなシステムは、ロボティックエージェントによって実行されるべきアクションを選択するために、ポリシーコントローラを有効に最適化するために、いくつかの変化に対して不変、たとえば視点、オクルージョン、モーションブラー、照明、背景、またはオブジェクトインスタンスなどの変化に対して不変である、数値埋め込みを生成するようにトレーニングされた、ニューラルネットワークを利用することができる。したがって、システムは、監督のために生のビデオデモンストレーションのみを使用して、すなわちいかなる明示的な関節レベル対応または他のラベル付きデータもなしにコントローラを最適化することができる。具体的には、システムは、生のビデオデータのみを使用して、埋め込みを生成するタイムコントラスティブニューラルネットワーク(time contrastive neural network)のトレーニングと、ポリシーコントローラの最適化との両方を行うことができる。ビューの変化などのファクタに対する不変性が学習されることによって、たとえば別のエージェントによる動きを模倣する際のロボティック性能を向上させることができる。具体的には、説明するシステムは、ロボティックエージェントがタスクを実行する間、ロボティックエージェントによって撮られた第1の人物画像のみが入手可能であるとしても、タスクを実行する別のエージェントの第3の人物画像のみから、タスクを実行するようにエージェントを制御するために、ポリシーコントローラを最適化することができる。すなわち、システムは、デモンストレーション画像の視点が、エージェントがタスクを実行する間にロボティックエージェントによってキャプチャされた画像の視点とは異なるときでも、ポリシーコントローラを有効に最適化することができる。
【０００８】
本明細書の主題の1つまたは複数の実施形態の詳細を、添付の図面および以下の説明において記載する。主題の他の特徴、態様、および利点は、説明、図面、および特許請求の範囲から明らかになるであろう。
【図面の簡単な説明】
【０００９】
【図１】例示的な強化学習システムを示す図である。
【図２】タイムコントラスティブニューラルネットワークをトレーニングするように構成された例示的なトレーニングシステムを示す図である。
【図３】2つの異なるモダリティによってキャプチャされた例示的な観測結果のトリプルを示す図である。
【図４】単一のモダリティによってキャプチャされた、アンカー観測結果と、ポジティブ観測結果と、ネガティブ観測結果とを含む、別の例示的な観測結果のトリプルを示す図である。
【図５】タイムコントラスティブニューラルネットワークをトレーニングするための例示的なプロセスのフロー図である。
【図６】ポリシーコントローラを最適化するための例示的なプロセスのフロー図である。
【発明を実施するための形態】
【００１０】
様々な図面における同様の参照番号および名称は、同様の要素を示す。
【００１１】
図1は、ロボティックエージェント112を制御するために使用されるポリシーコントローラ110を最適化する例示的な強化学習システム100を示す。強化学習システム100は、それにおいて以下で説明するシステム、構成要素、および技法が実装される、1つまたは複数のロケーションにおける1つまたは複数のコンピュータ上でコンピュータプログラムとして実装されたシステムの一例である。ロボティックエージェント112は、たとえばロボティックアーム、またはより複雑なロボットであってもよい。
【００１２】
ポリシーコントローラ110は、ロボティックエージェント112が環境と対話するとき、ロボティックエージェント112によって実行されるべきアクションを選択するために使用されるコントローラである。具体的には、ポリシーコントローラ110は、環境の現在の状態を特徴づけるデータを受信し、ロボティックエージェント112によって実行されるべきアクションを定義する出力を生成する。データは、現在の状態の特徴であることが可能であり、出力は、ロボティックエージェントのための制御入力、たとえばロボティックエージェントの1つまたは複数の関節にかけられるべきトルクを定義することができる。たとえば、出力は、各関節について、それからトルクがサンプリングされることが可能である分布のパラメータであることが可能である。
【００１３】
場合によっては、現在の状態の特徴は、環境の状態を特徴づける低次元特徴、たとえば低次元特徴ベクトルまたは特徴行列であり、ポリシーコントローラ110は、軌道中心コントローラ、たとえば時変ガウシアンコントローラである。たとえば、特徴は、ロボティックエージェント112の各関節について、それぞれの現在の関節角度および現在の関節速度を含むことが可能である。場合によっては、現在の状態の特徴はまた、エージェントの外部の環境を特徴づける特徴、たとえば特徴ベクトルを含むことが可能である。たとえば、特徴ベクトルは、エージェント112のカメラによってキャプチャされた環境の画像の埋め込み、たとえば以下でより詳細に説明するように、タイムコントラスティブニューラルネットワーク130によって生成された埋め込みであってもよい。
【００１４】
いくつかの他の場合には、現在の状態の特徴は、高次元特徴、たとえばエージェントが環境と対話するとき、ロボティックエージェント112によってキャプチャされた画像であり、ポリシーコントローラ110は、ディープニューラルネットワーク、たとえば畳み込みニューラルネットワーク、またはリカレントニューラルネットワークである。
【００１５】
ポリシーコントローラ110にとって、ロボティックエージェント112を制御することは、システム100または別のシステムが、ポリシーコントローラ110の出力によって、すなわちロボティックエージェント112に、またはロボティックエージェント112のための制御システムに制御入力を与えることによって、定義されるアクションをロボティックエージェント112に実行させることを意味する。
【００１６】
システム100は、ポリシーコントローラ110を最適化して、ロボティックタスク、たとえば対象物把持タスク、対象物移動タスク(たとえば、ある容器から別の容器に水を注ぐこと、またはあるロケーションから別のロケーションに容器を移動させること)、ナビゲーションタスク、またはエージェントがある特定目的のために現実世界環境と対話することを必要とする別のタスクの実行に成功することをロボティックエージェント112に行わせるようにロボティックエージェント112を制御するために、ポリシーコントローラ110が使用されることが可能であるようにする。
【００１７】
具体的には、システム100は、指定されたタスクのバージョンを実行する別のエージェント、たとえば別のロボティックエージェントまたは人間のデモンストレータのデモンストレーション画像120のデモンストレーションシーケンスを使用してポリシーコントローラ110を最適化する。すなわち、デモンストレーション画像120の各々は、その別のエージェントが特定のタスクのそのバージョンを実行する間にキャプチャされた、その別のエージェントの画像である。一般に、デモンストレーションシーケンスは、その別のエージェントが最初にタスクを実行し始めるときから開始して、その別のエージェントがタスクの完了に成功することで終了する画像を含むことになる。たとえば、シーケンスにおけるデモンストレーション画像120は、デモンストレーションエージェントがタスクを実行する間に一定の間隔でキャプチャされてもよい。指定されたタスクのバージョンは、ロボティックエージェント112によって実行されるべき指定されたタスクと同じであってもよいか、またはロボティックエージェント112によって実行されるべきタスクとはいくつかの点で異なってもよい。たとえば、そのためにコントローラが最適化されることになるタスクが対象物を環境における目的ロケーションに移動させることである場合、デモンストレーション画像において実行されるタスクのバージョンは、ロボティックエージェント112が移動とともにタスクを課せられることになる対象物とはやや異なる対象物、たとえばエージェント112が移動とともにタスクを課せられることになる対象物とは異なる色である、異なる形状を有する、または他の異なる特性を有する、対象物を移動させてもよい。
【００１８】
システム100は、タイムコントラスティブニューラルネットワーク130を使用してデモンストレーションシーケンスにおける各デモンストレーション画像120を処理して、デモンストレーション画像の各々のそれぞれのデモンストレーション埋め込み132を生成する。
【００１９】
タイムコントラスティブニューラルネットワーク130は、環境の入力画像を受信するように、および入力画像を処理して、入力画像において示されるような環境の状態を特徴づける入力画像の数値埋め込み、たとえばベクトル、または他の数値の順序付き集合を生成するようにトレーニングされているニューラルネットワークである。タイムコントラスティブニューラルネットワーク130がトレーニングされた方法のために、ニューラルネットワーク130によって生成された数値埋め込みは、いくつかの変化(transfromation)、たとえば視点、オクルージョン、モーションブラー、照明、背景、またはオブジェクトインスタンスなどの変化に対して不変でありながら、入力画像において示されたシーンの特性を特徴づける。これを達成するようにタイムコントラスティブニューラルネットワーク130をトレーニングすることについて、図2〜図5を参照しながら以下でより詳細に説明する。
【００２０】
次いで、システム100は、デモンストレーション埋め込み132を使用して、ポリシーコントローラ110を反復的に更新することができる。
【００２１】
具体的には、最適化プロセスの各反復において、システム100は、現在のポリシーコントローラ、すなわち現在の反復の時点のポリシーコントローラを使用して選択されたアクションを実行することによって、指定されたタスクを実行するロボティックエージェントのロボット画像140のロボットシーケンスを取得する。ロボットシーケンスにおける各ロボット画像140は、デモンストレーションシーケンスにおけるそれぞれのデモンストレーション画像に対応し、すなわちタスクの実行中にデモンストレーション画像のうちの1つとほぼ同時に撮られる。システム100は、ロボティックエージェント112に、現在のポリシーコントローラの出力によって定義されたアクションを実行させることによって(または、別のシステムがそのように実行させるようにすることによって)、ロボットシーケンスを取得することができる。
【００２２】
次いで、システム100は、タイムコントラスティブニューラルネットワーク130を使用してロボットシーケンスにおける各ロボット画像140を処理して、ロボット画像の各々のためのそれぞれのロボット埋め込み142を生成する。
【００２３】
次いで、最適化エンジン150は、デモンストレーション埋め込み132とロボット埋め込み142とを使用して現在のポリシーコントローラを更新する。具体的には、最適化エンジン150は、各デモンストレーション画像120について、デモンストレーション画像120のデモンストレーション埋め込み132と対応するロボット画像140のロボット埋め込み142との間の距離に依存する報酬関数を最適化するために、強化学習技法の反復を実行することによって、現在のポリシーコントローラを更新する。これらの距離に基づいてポリシーコントローラを更新することについて、図6を参照しながら以下でより詳細に説明する。
【００２４】
このようにして、ポリシーコントローラ110を反復的に更新することによって、システム100は、対応するデモンストレーション埋め込みと、ロボティックまたはロボット埋め込みとの間の距離を低減させ、ロボティックエージェント112による指定されたタスクにおける性能を改善させる。言い換えれば、ポリシーコントローラ110は、ロボティックエージェント112によって実行されるアクションが、デモンストレーション画像120においてデモンストレーションエージェントによって実行されたアクションを正確に「模倣」するように更新される。デモンストレーションエージェントがタスクの実行に成功したので、デモンストレーションエージェントによって実行されたアクションを正確に模倣することによって、ロボティックエージェント112がタスクの実行に成功することになる。
【００２５】
システム100は、ロボティックタスクにおけるロボティックエージェント112の性能が満足のいくものになる(たとえば、対応するデモンストレーション埋め込みとロボティック埋め込みとの間の距離が、1つまたは複数のあらかじめ決定された基準を満たす)か、またはいくつかの他の終了基準に到達する、たとえば指定された時間量が経過したとき、この反復的な更新を終了させることができる。
【００２６】
以下で説明するように、タイムコントラスティブニューラルネットワーク130は、監督されない方法で、すなわち完全にラベルのない画像シーケンスからトレーニングされている。次いで、トレーニングされたタイムコントラスティブニューラルネットワーク130は、いかなる外部の監督も必要とされることなしに、ポリシーコントローラ110の最適化のための監督を提供するために使用される。したがって、ロボティックエージェント112は、タスクを実行する別のエージェントのビデオまたは他の画像シーケンスデータのみから、およびいかなる外部の監督もなしに、ロボティックタスクにおける高品質の性能を達成することができる。したがって、プロセスの効率が向上する場合がある。
【００２７】
上記で説明した数値埋め込みの特性、たとえば視点に対する不変性のために、システム100は、ロボット画像140がデモンストレーション画像120とは異なるビューからキャプチャされるときでさえ、ポリシーコントローラ110を有効に更新することができる。したがって、システムの有用性が向上する場合がある。図1の例では、ロボット画像140は、第1の人物ビュー、すなわちエージェント112がタスクを実行するとき、エージェント112のカメラによってキャプチャされたビューからである。一方、デモンストレーション画像120は、第3の人物ビュー、すなわちデモンストレーション画像120において示されたエージェントを観測中である第2のエージェントが見ることになるビューからキャプチャされる。ただし、いくつかの他の場合には、ロボット画像およびデモンストレーション画像は、同じ視点からキャプチャされることが可能である。
【００２８】
コントローラ110が最適化されると、システムは、エージェントがロボティックタスクを実行するとき、エージェント112を制御するために、最適化されたコントローラ110を使用することができるか、またはエージェント112を制御する際に使用するために、最適化されたコントローラ110を指定するデータ、たとえば最適化されたコントローラ110のパラメータもしくは重みを指定するデータを別のシステムに提供することができる。
【００２９】
図2は、タイムコントラスティブ損失(time-contrastive loss)の勾配を使用して、タイムコントラスティブニューラルネットワーク130をトレーニングする例示的なトレーニングシステム200を示す。トレーニングシステム200は、1つまたは複数のロケーションにおける1つまたは複数のコンピュータ上のコンピュータプログラムとして実装されることが可能である。
【００３０】
具体的には、上記で説明したように、タイムコントラスティブニューラルネットワーク130は、環境の状態を特徴づける入力観測結果を受信し、入力観測結果を処理して環境の状態の数値埋め込みを生成するように構成される。数値埋め込みは、数値の順序付き集合、たとえば浮動小数点値または量子化された浮動小数点値のベクトルである。環境の状態を特徴づける観測結果は、環境の画像、または環境のビデオから取られたフレームであってもよい。いくつかの実装形態では、観測結果はまた、環境から収集された他の種類のデータ、たとえば触覚センサーデータまたは音声データを含むことが可能である。一般に、環境は、特定のタスク、たとえばロボティック操作タスク、液体を注ぐタスク、またはロボティック模倣タスクを実行するために、環境において移動中であるか、または環境において他の対象物と対話中である、エージェント(たとえば、ロボティックエージェントまたは人間)を含む。
【００３１】
システム200は、エージェントが環境と対話する間に収集されるトレーニングデータにおいて、ニューラルネットワーク130をトレーニングすることができる。エージェントは、ロボティックエージェント112、デモンストレーション画像において示されたデモンストレーションエージェント、またはまた別のエージェントであってもよい。
【００３２】
概して、タイムコントラスティブニューラルネットワーク130がトレーニングされると、システム200またはシステム100は、図1のポリシーコントローラ110を最適化するためにトレーニングされたタイムコントラスティブニューラルネットワーク130を使用することができる。
【００３３】
タイムコントラスティブニューラルネットワーク130は、ディープニューラルネットワーク204と、後続する埋め込みニューラルネットワーク層206とを含む。埋め込みニューラルネットワーク層206は、全結合ニューラルネットワーク層、たとえば埋め込みにおける数値の数に等しい数のユニットをもつ全結合層である。
【００３４】
いくつかの実装形態では、ディープニューラルネットワーク204は、インセプションモデル(Inception model)の部分と、後続する1つまたは複数の畳み込みニューラルネットワーク層、空間ソフトマックス層、および全結合層とを含んでもよい。ディープニューラルネットワーク204中に含まれるインセプションモデルの部分は、https://github.com/tensorflow/models/blob/master/research/slim/nets/inception_v3.pyにおいて入手可能なオープンソースコードにおいて示される、"Mixed_5d"層までのインセプションモデルであってもよい。インセプションモデルの一例については、C. Szegedy他、"Rethinking the inception architecture for computer vision" CoRR、abs/2522.00567、2025において詳細に説明され、少なくともインセプションモデルに関するその内容は、参照により本明細書に組み込まれる。前の層から受信されたアクティベーションマップにおける各特徴次元について(たとえば、209×209×32アクティベーションマップでは、画像は209×209であり、32個の特徴次元がある)、空間ソフトマックス層は、特徴が最大限にアクティベートされる空間座標を出力するように構成される。空間ソフトマックス層の一例については、C. Finn他、"Learning visual feature spaces for robotic manipulation with deep spatial autoencoders" CoRR、abs/2509.06293、2025において詳細に説明され、少なくとも空間ソフトマックス層に関するその内容は、参照により本明細書に組み込まれる。
【００３５】
場合によっては、システム200は、最初からタイムコントラスティブニューラルネットワーク130をトレーニングすることができる。いくつかの他の場合には、タイムコントラスティブニューラルネットワーク130の部分が事前トレーニングされ、さらなるトレーニングのための基礎として使用されることが可能である(たとえば、ディープニューラルネットワーク204は、対象物認識タスクにおいてトレーニングされたインセプションモデルからの事前トレーニングされた重みを有してもよい)。
【００３６】
タイムコントラスティブニューラルネットワーク130のトレーニングの一部として、トレーニングシステム200は、複数のトレーニング観測結果の「トリプル」を含むトレーニング入力データを取得する。場合によっては、トレーニング観測結果は、複数のモダリティによって複数の異なる視点からキャプチャされた観測結果を含む。他の場合には、トレーニング観測結果は、単一のモダリティによって単一の視点からキャプチャされた観測結果を含む。一般に、モダリティは、特定の視点から環境の状態を特徴づける観測結果(たとえば、画像、音声、またはビデオ)を取り込む入力取込みデバイスを指定する。入力取込みデバイスは、たとえばカメラ、音声取込みデバイス、ビデオレコーダ、または触覚入力取込みデバイスであることが可能である。
【００３７】
具体的には、(以下で、マルチビュー実装形態と呼ばれる)いくつかの実装形態では、観測結果の各トリプルは、(i)第1のモダリティによってキャプチャされたアンカー観測結果208と、(ii)アンカー観測結果208と同時に発生(すなわち、実質的に同じ時間に発生)しており、第2の異なるモダリティによってキャプチャされる、ポジティブ観測結果210と、(iii)アンカー観測結果と同時に発生していない、第1のモダリティによってキャプチャされたネガティブ観測結果212とを含む。場合によっては、これらの観測結果は画像であり、第1のモダリティが第1の視点におけるカメラであり、第2のモダリティが、第2の異なる視点におけるカメラである。ただし、一般に、第1のモダリティおよび第2のモダリティは、同じまたは異なるタイプの2つの異なるモダリティ、たとえばカメラ、音声取込みデバイス、触覚入力取込みデバイスなどであってもよい。2つの異なる視点において2つのモダリティによってキャプチャされたアンカー観測結果、ポジティブ観測結果、およびネガティブ観測結果の一例が、(以下で説明する)図3において示される。
【００３８】
いくつかの実装形態では、第1のモダリティおよび第2のモダリティのペアは、トレーニング入力データ中に含まれた観測結果のトリプルのすべてについて同じである。
【００３９】
いくつかの実装形態では、トレーニング入力データにおけるいくつかの観測結果のトリプルが、第1のモダリティおよび第2のモダリティのペアによってキャプチャされることが可能であるが、トレーニング入力データにおけるいくつかの他の観測結果のトリプルが、第1のモダリティおよび第2のモダリティの異なるペアによってキャプチャされる。すなわち、モダリティが様々なロケーションにおけるカメラである例では、ポジティブ観測結果およびネガティブ観測結果を取り込んだカメラの相対ロケーションは、異なるトリプルにわたって変動することが可能である。
【００４０】
(以下で、シングルビュー実装形態と呼ばれる)いくつかの他の実装形態では、観測結果の各トリプルは、(i)モダリティによってキャプチャされたアンカー観測結果208と、(ii)モダリティによってキャプチャされ、アンカー観測結果208のマージン時間近傍(または、マージン範囲)内であるポジティブ観測結果210と、(iii)モダリティによってキャプチャされ、第1の観測結果のマージン時間近傍の外側であるネガティブ観測結果212とを含み、すなわちネガティブ観測結果212は、第1の観測結果のネガティブ範囲内である。アンカー観測結果208のマージン範囲は、アンカー観測結果208の周囲のあらかじめ決定された時間ウィンドウを定義する。たとえば、アンカー観測結果208が時間ステップtにおいてキャプチャされると仮定すると、アンカー観測結果208のマージン範囲は、時間ステップt-nから時間ステップt+nまでにキャプチャされる観測結果を含み、ここで、nはあらかじめ決定された数の時間ステップである。nは、1秒、2秒、5秒、または10秒などの少数の時間ステップであってもよい。言い換えれば、(マージン)時間近傍、またはマージン範囲は、アンカー観測結果がキャプチャされた時間の周囲の時間のウィンドウ、または期間を定義する、あらかじめ決定された時間ウィンドウ(すなわち、時間ステップtの周囲の時間のウィンドウ)を表す。ポジティブ観測結果210は、このあらかじめ決定された時間ウィンドウ内で、モダリティによってキャプチャされる(すなわち、この例では、t-nとt+nとの間の時間ステップにおいてキャプチャされる)。ネガティブ観測結果212は、このあらかじめ決定された時間ウィンドウの外側で、モダリティによってキャプチャされる(すなわち、この例では、時間ステップt-nの前、または時間ステップt+nの後のいずれかでキャプチャされる)。単一の視点において単一のモダリティによってキャプチャされたアンカー観測結果、ポジティブ観測結果、およびネガティブ観測結果の一例が、(以下で説明する)図4において示される。
【００４１】
トレーニングシステム200は、「トリプレット損失(triplet loss)」を最小化することによって、パラメータの初期値から、タイムコントラスティブニューラルネットワーク130のパラメータのトレーニングされた値を決定するために、トレーニング入力データにおけるトリプルにおいて、タイムコントラスティブニューラルネットワーク130をトレーニングする。トリプレット損失は、所与の観測結果のトリプルについて、ポジティブ観測結果とネガティブ観測結果との埋め込みの間の距離と、ポジティブ観測結果とアンカー観測結果との埋め込みの間の距離とに依存する。具体的には、いくつかの実装形態では、システム200は、以下の損失関数
【数１】
2020530602.tif 000003
を最小化するために、タイムコントラスティブニューラルネットワーク130をトレーニングし、ここで、f()はタイムコントラスティブニューラルネットワーク130を表し、すなわちf(x)は、所与の観測結果xについて、タイムコントラスティブニューラルネットワーク130によって生成された埋め込みである。タイムコントラスティブニューラルネットワーク130は、d次元ユークリッド空間などの埋め込み空間に観測結果xを埋め込んでもよい。
【数２】
2020530602.tif 000004
は、アンカー観測結果208であり、
【数３】
2020530602.tif 000005
は、ポジティブ観測結果210であり、
【数４】
2020530602.tif 000006
は、ネガティブ観測結果である。Nは、トレーニング入力データにおける観測結果のトリプルの数である。αは、損失関数における2つの距離の間の所望のマージンを定義する定数値である。
【００４２】
このトリプレット損失は、本明細書で「ミラー損失」または「タイムコントラスティブ損失」とも呼ばれる。
【００４３】
具体的には、アンカー観測結果と、ポジティブ観測結果と、ネガティブ観測結果とを含む所与のトリプルについて、トレーニングシステム200は、トリプレット損失の勾配を決定し、次いでタイムコントラスティブニューラルネットワーク130のパラメータの値を更新するために勾配を使用する。
【００４４】
詳細には、システム200は、ネットワークパラメータの現在の値に従ってタイムコントラスティブニューラルネットワーク130を使用してアンカー観測結果208を処理して、第1の埋め込み214を生成する。システム200は、ネットワークパラメータの現在の値に従ってタイムコントラスティブニューラルネットワーク130を使用してポジティブ観測結果210を処理して、第2の埋め込み216を生成する。システム200は、ネットワークパラメータの現在の値に従ってタイムコントラスティブニューラルネットワーク130を使用してネガティブ観測結果212を処理して、第3の埋め込み218を生成する。
【００４５】
次いで、システム200は、(i)第1の埋め込み214と第2の埋め込み216との間の第1の距離、および(ii)第1の埋め込み214と第3の埋め込み218との間の第2の距離からトリプレット損失220を決定する。
【００４６】
システム200は、従来のニューラルネットワークトレーニング技法、たとえば勾配降下ベースのトレーニング技法を使用してネットワークパラメータの現在の値を調整することができる。たとえば、システムは、目的関数、すなわちトリプレット損失の勾配を逆伝搬して、タイムコントラスティブニューラルネットワーク130のネットワークパラメータの各々のためのそれぞれの更新された値を決定する。
【００４７】
トリプレット損失を最小化するために、ネットワークパラメータの値を更新することによって、システム200は、トレーニングされたタイムコントラスティブニューラルネットワーク130が、いくつかの変化、たとえば視点、オクルージョン、モーションブラー、照明、背景、またはオブジェクトインスタンスに対して不変である数値埋め込みを生成することができることを保証する。したがって、トレーニングされたタイムコントラスティブニューラルネットワーク130によって生成された埋め込みは、図1を参照しながら上記で説明したタスクを含む、環境の状態の正確な特徴づけを必要とする様々なタスクにおける性能を向上させるために採用されることが可能である。したがって、視点、オクルージョン、モーションブラー、照明、背景、またはオブジェクトインスタンスなどの変化に対する不変性は、ロボティックエージェントの性能を向上させることができる。
【００４８】
図3は、タイムコントラスティブニューラルネットワーク130をトレーニングするために使用される、アンカー観測結果302と、ポジティブ観測結果304と、ネガティブ観測結果306とを含む、例示的な観測結果のトリプルを示す。観測結果302〜306は、2つの異なるモダリティによって(および、2つの異なる視点から)キャプチャされた画像である。そのような構成は、たとえば人間のラベル付けを伴う構成よりも安価であり、単純であり、実際的であってもよい。
【００４９】
この例では、第1のカメラが、第1の視点からカップに液体を注ぐ(エージェントの)手の画像のシーケンス308を取り込む。エージェントは、人間またはロボティックエージェントであってもよい。第1の視点(ビュー1)は、第1の人物ビュー、すなわちカップに液体を注いでいる第1のエージェントのカメラによってキャプチャされたビューであってもよい。同時に、第2のカメラが、第2の視点から同じ手の画像のシーケンス310を取り込む。第2の視点(ビュー2)は、サードパーティビュー、すなわちカップに液体を注ぐ第1のエージェントを観測中である第2のエージェントが見ることになるビューであることが可能である。
【００５０】
第1の画像が、アンカー画像302として画像のシーケンス308から選択される。アンカー画像302は、画像のシーケンス308からランダムに選択されることが可能である。アンカー画像302と同時であるが、第2のカメラによって撮られた第2の画像が、ポジティブ画像304として選択される。第3の画像が、ネガティブ画像306として画像のシーケンス308から選択される。ネガティブ画像306は、アンカー画像302の時間近傍内(すなわち、あらかじめ決定された時間ウィンドウ内)である、第1のカメラによってキャプチャされた画像、たとえばアンカー画像302が撮られた2秒後、5秒後、または10秒後に撮られる画像からランダムに選択されることが可能である。
【００５１】
図3に示すように、第1の、すなわちアンカー画像302は、時間ステップtにおいてキャプチャされ、第3の、すなわちネガティブ画像306は、アンカー画像302の時間近傍内である時間ステップt+2においてキャプチャされる。ネガティブ画像306は、アンカー画像302と同じシーケンス308中にある。アンカー画像302、ポジティブ画像304、およびネガティブ画像306のトリプルにおいてトレーニングされるので、タイムコントラスティブニューラルネットワーク130は、背景または照明などの無関係な変化に対して不変になると同時に、手の姿勢、および注がれた液体の量などの経時的に変動するが、ビューにわたって一貫している特性を取り込むことを学習することができる。
【００５２】
図4は、(単一の視点から)単一のモダリティによってキャプチャされた、アンカー観測結果402と、ポジティブ観測結果404と、ネガティブ観測結果406とを含む別の例示的な観測結果のトリプルを示す。
【００５３】
この例では、単一のカメラが、単一の視点(セルフビューである、ビュー1)から対象の容器に液体を注ぐ手の画像のシーケンス408を取り込む。シーケンス408からの第1の画像が、アンカー画像402として選択される。第2の、すなわちポジティブ画像404は、アンカー画像402の周囲のマージン範囲内である画像から選択される。ポジティブ画像404は、マージン範囲内でランダムに選択されることが可能である。アンカー画像402のマージン範囲は、アンカー画像402の周囲のあらかじめ決定された時間ウィンドウを定義する。たとえば、図4に示すように、アンカー画像402は、時間ステップtanchorにおいてキャプチャされ、アンカー画像402のマージン範囲は、時間ステップtanchor-2から時間ステップtanchor+2までにキャプチャされる画像を含む。
【００５４】
第3の、すなわちネガティブ画像406は、アンカー画像402のネガティブ範囲、すなわちアンカー画像402のマージン範囲の外側である範囲内である画像から選択される。
【００５５】
画像402、404および406のトリプルは、図2を参照しながら上記で詳細に説明した技法を使用して、タイムコントラスティブニューラルネットワーク130をトレーニングするために、トレーニング入力データとして使用されることが可能である。このようにして選択された画像を使用して、タイムコントラスティブニューラルネットワーク130をトレーニングすることによって、システム100は、ニューラルネットワーク130が各観測結果における属性と対話の特性とを学習することができることを保証する。図4の例では、ニューラルネットワーク130は、手の異なる姿勢、たとえば手が白いカップに接触しているかどうかを区別することを学習することができる。ニューラルネットワーク130はまた、白いカップの傾き、または対象の容器における現在の液体の量、もしくはその粘度を学習することもできる。
【００５６】
図5は、複数のモダリティによってキャプチャされた観測結果を使用して、タイムコントラスティブニューラルネットワークをトレーニングするための例示的なプロセス500のフロー図である。ニューラルネットワークは、環境の状態を特徴づける入力観測結果を受信し、入力観測結果を処理して、環境の状態の数値埋め込みを生成するように構成される。便宜上、プロセス500について、1つまたは複数のロケーションに位置する1つまたは複数のコンピュータのシステムによって実行されるものとして説明する。たとえば、本明細書に従って適切にプログラムされたトレーニングシステム、たとえば図2のトレーニングシステム200は、プロセス500を実行することができる。
【００５７】
システムは、ニューラルネットワークをトレーニングするために、異なる観測結果のトリプルにおいて、プロセス500を繰り返し実行することができる。
【００５８】
システムは、第1のモダリティによってキャプチャされた第1の(すなわち、アンカー)観測結果を取得する(ステップ502)。第1の観測結果は、画像であってもよく、第1のモダリティは、第1の視点におけるカメラであってもよい。
【００５９】
システムは、第1の観測結果と同時に発生しており、第2の異なるモダリティによってキャプチャされる、第2の(すなわち、ポジティブ)観測結果を取得する(ステップ504)。第2の観測結果は、画像であってもよく、第2のモダリティは、第2の視点におけるカメラであってもよい。
【００６０】
システムは、第1の観測結果と同時に発生していない、第1のモダリティによってキャプチャされた第3の(すなわち、ネガティブ)観測結果を取得する(ステップ506)。
【００６１】
場合によっては、システムは、第1の観測結果の時間近傍内である、第1のモダリティによってキャプチャされた観測結果からランダムに第3の観測結果を選択してもよい。
【００６２】
いくつかの他の場合には、システムは、第1の観測結果の時間近傍内である、第1のモダリティによってキャプチャされた観測結果のシーケンスから、第1の観測結果に対してハードネガティブである観測結果を第3の観測結果として選択してもよい。ハードネガティブ観測結果は、第1の観測結果の埋め込みから最も遠く離れている埋め込みを有する、時間近傍内の観測結果である。
【００６３】
システムは、第1の観測結果をアンカー例として、第2の観測結果をポジティブ例として、および第3の観測結果をネガティブ例として使用する、トリプレット損失を決定する(ステップ508)。
【００６４】
具体的には、システムは、ネットワークパラメータの現在の値に従ってニューラルネットワークを使用して第1の観測結果を処理して、第1の埋め込みを生成する。システムは、ネットワークパラメータの現在の値に従ってニューラルネットワークを使用して第2の観測結果を処理して、第2の埋め込みを生成する。システムは、ネットワークパラメータの現在の値に従ってニューラルネットワークを使用して第3の観測結果を処理して、第3の埋め込みを生成する。システムは、(i)第1の埋め込みと第2の埋め込みとの間の第1の距離、および(ii)第1の埋め込みと第3の埋め込みとの間の第2の距離からトリプレット損失を決定する。
【００６５】
たとえば、システムは、以下のように、所与の観測結果のトリプルのためのトリプレット損失を決定することができる。
【数５】
2020530602.tif 000007
ここで、f()は、観測結果xを埋め込み空間(たとえば、d次元ユークリッド空間)に埋め込む埋め込み関数であり、トレーニングされているニューラルネットワークを表すことができ、
【数６】
2020530602.tif 000008
は、アンカー観測結果であり、
【数７】
2020530602.tif 000009
は、ポジティブ観測結果であり、
【数８】
2020530602.tif 000010
は、ネガティブ観測結果である。
【００６６】
次いで、システムは、トリプレット損失を最小化するために、ネットワークパラメータの値を更新する(ステップ510)。システムは、従来のニューラルネットワークトレーニング技法、たとえば勾配降下ベースのトレーニング技法を使用して、ネットワークパラメータの値を更新することができる。たとえば、システムは、トリプレット損失の勾配を逆伝搬して、ニューラルネットワークのネットワークパラメータの各々のためのそれぞれの更新された値を決定する。
【００６７】
図6は、ポリシーコントローラを最適化するための例示的なプロセス600のフロー図である。便宜上、プロセス600について、1つまたは複数のロケーションに位置する1つまたは複数のコンピュータのシステムによって実行されるものとして説明する。たとえば、本明細書に従って適切にプログラムされた強化学習システム、たとえば図1の強化学習システム100は、プロセス600を実行することができる。
【００６８】
システムは、指定されたタスクのバージョンを実行する別のエージェントのデモンストレーション画像を含む、デモンストレーションシーケンスを取得する(ステップ602)。上記で説明したように、その別のエージェントは、タスクの実行に熟達している任意の適切なエージェントであることが可能である。たとえば、その別のエージェントは、タスクを実行するようにすでにトレーニングされているか、またはタスクを実行するようにハードコーティングされている人間のデモンストレータまたは別のロボティックエージェントであってもよい。指定されたタスクのバージョンは、エージェントによって実行されるべき指定されたタスクと同じであってもよいか、またはエージェントによって実行されるべきタスクとは、いくつかの点で異なり得る。たとえば、タスクが、対象物を環境における目的ロケーションに移動させることである場合、デモンストレーション画像において実行されたタスクのバージョンは、ロボティックエージェントが移動とともにタスクを課されることになる対象物とはやや異なる対象物を移動させてもよい。
【００６９】
システムは、トレーニングされたタイムコントラスティブニューラルネットワークを使用してデモンストレーションシーケンスにおける各デモンストレーション画像を処理して、各デモンストレーション画像のためのそれぞれのデモンストレーション埋め込みを生成する(ステップ604)。デモンストレーション埋め込みは、それぞれのデモンストレーション画像の数値埋め込みであり、ここでデモンストレーション埋め込みが、それぞれのデモンストレーション画像において示されるような環境の状態を特徴づける。
【００７０】
次いで、システムは、ステップ606〜610を繰り返し実行して、ロボティックエージェントがロボティック(指定された)タスクを実行するとき、ロボティックエージェントを制御するために使用されるポリシーコントローラを最適化する。
【００７１】
システムは、ロボットシーケンスを取得する(ステップ606)。ロボットシーケンスは、現在のポリシーコントローラを使用して選択されたアクションを実行することによって、指定されたタスクを実行するロボティックエージェントのロボティック画像のシーケンスである。たとえば、システムまたは別のシステムは、(i)現在のポリシーコントローラを使用してアクションを繰り返し選択し、各選択されたアクションを実行するようにロボティックエージェントに命令することによってタスクを実行すること、ならびに(ii)タスクを実行しながら、ロボティックエージェントのカメラセンサーを使用して画像を定期的に取り込むことをロボティックエージェントに行わせることができる。ロボットシーケンスにおける各ロボット画像は、デモンストレーションシーケンスにおけるそれぞれのデモンストレーション画像に対応し、すなわちタスクの実行中にデモンストレーション画像のうちの1つとほぼ同時に撮られる。
【００７２】
システムは、タイムコントラスティブニューラルネットワークを使用してロボットシーケンスにおける各ロボット画像を処理して、各ロボット画像のためのそれぞれのロボット埋め込みを生成する(ステップ608)。ロボット埋め込みは、それぞれのロボット画像の数値埋め込みであり、ここでロボット埋め込みが、それぞれのロボット画像において示されるような環境の状態を特徴づける。
【００７３】
システムは、現在のポリシーコントローラを更新する(ステップ610)。具体的には、システムは、各デモンストレーション画像について、デモンストレーション画像のデモンストレーション埋め込みと対応するロボット画像のロボット埋め込みとの間の距離に依存する報酬関数を最適化、すなわち最大化するために、強化学習技法の反復を実行することによってポリシーコントローラを更新する。すなわち、所与のデモンストレーション画像−対応するロボット画像のペアのための報酬は、対応する埋め込み間の距離がより短いとき、より高い。そのような報酬関数は、現実世界のロボティックアプリケーションにとって実際的である効率的な強化学習を可能にすることができる。
【００７４】
言い換えれば、システムは、各デモンストレーション画像-対応するロボット画像のペアのための報酬を生成し、報酬を入力として取る強化学習技法を使用して、現在のポリシーコントローラを更新し、すなわち受信される報酬を増加させるために、ポリシーコントローラを更新する強化学習技法を使用して、現在のポリシーコントローラを更新する。システムは、最適化ステップを実行するために、報酬を入力として取る、任意の適切な強化学習技法を使用することができる。たとえば、強化学習技法は、モデルフリー技法、たとえばPI2、モデルベースの技法、たとえばLQR、またはモデルベースアルゴリズムとモデルフリーアルゴリズムとを組み合わせる技法、たとえばPILQRであってもよい。
【００７５】
いくつかの実装形態では、デモンストレーション画像および対応するロボット画像のための報酬は、デモンストレーション画像のデモンストレーション埋め込みと対応するロボット画像のロボット埋め込みとの間のユークリッド距離に基づく。たとえば、報酬関数は、ユークリッド距離の2乗である、ユークリッド距離項を含むことが可能である。別の例として、報酬関数は、定数値と、デモンストレーション画像のデモンストレーション埋め込みと対応するロボット画像のロボット埋め込みとの間のユークリッド距離の2乗との間の和の平方根である、フーバー型損失項(Huber-style loss term)を含むことが可能である。これらの実装形態のうちのいくつかでは、報酬関数Rは、ユークリッド距離項とフーバー型損失項との加重和であり、
【数９】
2020530602.tif 000011
を満たし、ここでvtはデモンストレーションシーケンスにおけるt番目の位置におけるデモンストレーション画像のデモンストレーション埋め込みであり、wtはロボットシーケンスにおけるt番目の位置におけるロボット画像のロボット埋め込みであり、αおよびβは固定された重み付けパラメータであり、γは小さい正の定数値である。
【００７６】
1つまたは複数のコンピュータのシステムが特定の動作またはアクションを実行するように構成されることは、システムが、動作中に動作またはアクションをシステムに実行させるソフトウェア、ファームウェア、ハードウェア、またはそれらの組合せをインストールしていることを意味する。1つまたは複数のコンピュータプログラムが特定の動作またはアクションを実行するように構成されることは、1つまたは複数のプログラムが、データ処理装置によって実行されると、動作またはアクションを装置に実行させる命令を含むことを意味する。
【００７７】
本明細書で説明する主題および機能的動作の実施形態は、本明細書およびそれらの構造的等価物において開示する構造を含む、デジタル電子回路において、有形に具現化されたコンピュータソフトウェアもしくはファームウェアにおいて、コンピュータハードウェアにおいて、またはそれらのうちの1つもしくは複数の組合せにおいて実装されることが可能である。本明細書で説明する主題の実施形態は、1つまたは複数のコンピュータプログラム、すなわちデータ処理装置による実行のための、またはデータ処理装置の動作を制御するために、有形の非一時的プログラムキャリア上に符号化されたコンピュータプログラム命令の1つまたは複数のモジュールとして実装されることが可能である。代替または追加として、プログラム命令は、データ処理装置による実行のために、好適な受信機装置に送信するための情報を符号化するために生成される、人工的に生成された伝搬信号、たとえば機械により生成された電気信号、光信号、または電磁信号上で符号化されることが可能である。コンピュータ記憶媒体は、機械可読記憶デバイス、機械可読記憶基板、ランダムもしくは順次アクセスメモリデバイス、またはそれらのうちの1つもしくは複数の組合せであることが可能である。ただし、コンピュータ記憶媒体は、伝搬信号ではない。
【００７８】
「データ処理装置」という用語は、例として、プログラマブルプロセッサ、コンピュータ、または複数のプロセッサもしくはコンピュータを含む、データを処理するためのすべての種類の装置、デバイス、および機械を包含する。装置は、専用論理回路、たとえばFPGA(フィールドプログラマブルゲートアレイ)、またはASIC(特定用途向け集積回路)を含むことが可能である。装置はまた、ハードウェアに加えて、問題になっているコンピュータプログラムのための実行環境を作成するコード、たとえばプロセッサファームウェア、プロトコルスタック、データベース管理システム、オペレーティングシステム、またはそれらのうちの1つもしくは複数の組合せを構成するコードを含むことが可能である。
【００７９】
(プログラム、ソフトウェア、ソフトウェアアプリケーション、モジュール、ソフトウェアモジュール、スクリプト、またはコードと呼ばれることもあるか、またはそのように説明されることもある)コンピュータプログラムは、コンパイラ型言語もしくはインタープリタ型言語、または宣言型言語もしくは手続き型言語を含む、任意の形式のプログラミング言語において記述され得、スタンドアロンプログラムとして、またはモジュール、コンポーネント、サブルーチン、もしくはコンピューティング環境において使用するのに好適な他のユニットとしてを含む、任意の形態において展開されることが可能である。コンピュータプログラムは、ファイルシステムにおけるファイルに対応し得るが、そうである必要はない。プログラムは、他のプログラムもしくはデータ、たとえばマークアップ言語文書中に記憶された1つもしくは複数のスクリプトを保持するファイルの一部分において、問題になっているプログラム専用の単一のファイルにおいて、または複数の協調されたファイル、たとえば1つもしくは複数のモジュール、サブプログラム、もしくはコードの部分を記憶するファイルにおいて記憶されることが可能である。コンピュータプログラムは、1つのコンピュータ上で、または1つのサイトに位置するか、もしくは複数のサイトにわたって分散され、通信ネットワークによって相互接続される、複数のコンピュータ上で実行されるように展開されてもよい。
【００８０】
本明細書で使用するとき、「エンジン」または「ソフトウェアエンジン」は、入力とは異なる出力を提供するソフトウェア実装入出力システムを指す。エンジンは、ライブラリ、プラットフォーム、ソフトウェア開発キット("SDK")、またはオブジェクトなどの符号化された機能のブロックであってもよい。各エンジンは、任意の適切なタイプのコンピューティングデバイス、たとえばサーバ、モバイルフォン、タブレットコンピュータ、ノートブックコンピュータ、音楽プレーヤ、電子ブックリーダー、ラップトップもしくはデスクトップコンピュータ、PDA、スマートフォン、または1つもしくは複数のプロセッサとコンピュータ可読媒体とを含む、他の固定もしくはポータブルデバイス上で実装されることが可能である。追加として、エンジンのうちの2つ以上が、同じコンピューティングデバイス上、または異なるコンピューティングデバイス上で実装されてもよい。
【００８１】
本明細書で説明するプロセスおよび論理フローは、入力データにおいて動作すること、および出力を生成することによって、機能を実行するために、1つまたは複数のプログラマブルコンピュータが1つまたは複数のコンピュータプログラムを実行することによって実行されることが可能である。プロセスおよび論理フローは、専用論理回路、たとえばFPGA(フィールドプログラマブルゲートアレイ)、またはASIC(特定用途向け集積回路)によっても実行されることが可能であり、装置は、それらとしても実装されることが可能である。たとえば、プロセスおよび論理フローは、グラフィックス処理ユニット(GPU)によって実行され得、装置は、GPUとしても実装されることが可能である。
【００８２】
コンピュータプログラムの実行に好適なコンピュータは、汎用もしくは専用マイクロプロセッサまたは両方、あるいは任意の他の種類の中央処理ユニットを含み、例としてそれらに基づき得る。一般に、中央処理ユニットは、読取り専用メモリもしくはランダムアクセスメモリ、または両方から、命令およびデータを受信することになる。コンピュータの本質的な要素は、命令を実施または実行するための中央処理ユニット、ならびに命令およびデータを記憶するための1つまたは複数のメモリデバイスである。一般に、コンピュータはまた、データを記憶するための1つまたは複数の大容量記憶デバイス、たとえば磁気ディスク、光磁気ディスク、または光ディスクを含むか、あるいはそれからデータを受信するため、またはそれにデータを転送するため、またはその両方のために動作可能に結合されることになる。ただし、コンピュータは、そのようなデバイスを有する必要はない。その上、コンピュータは、別のデバイス、たとえばほんのいくつかの例を挙げれば、モバイル電話、携帯情報端末(PDA)、モバイルオーディオもしくはビデオプレーヤ、ゲームコンソール、全地球測位システム(GPS)受信機、またはポータブル記憶デバイス、たとえばユニバーサルシリアルバス(USB)フラッシュドライブ中に埋め込まれることが可能である。
【００８３】
コンピュータプログラム命令およびデータを記憶するのに好適なコンピュータ可読媒体は、例として、半導体メモリデバイス、たとえばEPROM、EEPROM、およびフラッシュメモリデバイス、磁気ディスク、たとえば内蔵ハードディスクまたはリムーバブルディスク、光磁気ディスク、ならびにCD ROMおよびDVD-ROMディスクを含む、すべての形態の不揮発性メモリ、媒体、およびメモリデバイスを含む。プロセッサおよびメモリは、専用論理回路によって補足されるか、または専用論理回路中に組み込まれることが可能である。
【００８４】
ユーザとの対話を提供するために、本明細書で説明する主題の実施形態は、情報をユーザに表示するためのディスプレイデバイス、たとえばCRT(陰極線管)またはLCD(液晶ディスプレイ)モニタと、それによってユーザがコンピュータに入力を与えることができるキーボードおよびポインティングデバイス、たとえばマウスまたはトラックボールとを有する、コンピュータ上で実装されることが可能である。他の種類のデバイスが、ユーザとの対話を提供するために同様に使用されることが可能であり、たとえばユーザに与えられるフィードバックは、任意の形態の感覚フィードバック、たとえば視覚フィードバック、聴覚フィードバック、または触覚フィードバックであり得、ユーザからの入力は、音響入力、音声入力、または触覚入力を含む、任意の形態で受信されることが可能である。加えて、コンピュータは、ユーザによって使用されるデバイスに文書を送ること、およびそのデバイスから文書を受信することによって、たとえばウェブブラウザから受信された要求に応答して、ユーザのクライアントデバイス上のウェブブラウザにウェブページを送ることによって、ユーザと対話することができる。
【００８５】
本明細書で説明する主題の実施形態は、バックエンド構成要素を、たとえばデータサーバとして含むか、あるいは、ミドルウェア構成要素、たとえばアプリケーションサーバを含むか、あるいは、フロントエンド構成要素、たとえばそれを通してユーザが、本明細書で説明する主題の実装形態と対話することができる、グラフィカルユーザインターフェースもしくはウェブブラウザを有するクライアントコンピュータ、または1つもしくは複数のそのようなバックエンド構成要素、ミドルウェア構成要素、もしくはフロントエンド構成要素の任意の組合せを含む、コンピューティングシステムにおいて実装されることが可能である。システムの構成要素は、任意の形態または任意の媒体のデジタルデータ通信、たとえば通信ネットワークによって相互接続されることが可能である。通信ネットワークの例には、ローカルエリアネットワーク("LAN")、およびワイドエリアネットワーク("WAN")、たとえばインターネットが含まれる。
【００８６】
コンピューティングシステムは、クライアントおよびサーバを含むことが可能である。クライアントおよびサーバは、一般に互いから遠隔であり、典型的には通信ネットワークを通して対話する。クライアントおよびサーバの関係は、それぞれのコンピュータ上で実行しており、互いとクライアントサーバ関係を有するコンピュータプログラムによって生じる。
【００８７】
本明細書は、多数の特定の実装詳細を含むが、これらは、いずれかの発明の範囲の限定、または特許請求てもよいものの範囲の限定として解釈されるべきではなく、むしろ、特定の発明の特定の実施形態に固有であってもよい特徴の説明として解釈されるべきである。別個の実施形態との関連で本明細書で説明するいくつかの特徴はまた、単一の実施形態において組み合わせて実装されることが可能である。逆に、単一の実施形態との関連で説明する様々な特徴もまた、複数の実施形態において別個に、または任意の好適なサブコンビネーションにおいて実装されることが可能である。その上、特徴は、いくつかの組合せにおいて作用するとして上記で説明されることがあり、最初にそのようなものとして特許請求されることさえあるが、特許請求される組合せからの1つまたは複数の特徴は、場合によっては、その組合せから削除されることが可能であり、特許請求される組合せは、サブコンビネーション、またはサブコンビネーションの変形形態を対象としてもよい。
【００８８】
同様に、動作は、特定の順序で図面において図示されるが、これは、そのような動作が、図示された特定の順序で、もしくは連続した順序で実行されること、または望ましい結果を達成するためにすべての図示された動作が実行されることを必要とするものとして理解されるべきではない。いくつかの状況では、マルチタスキングおよび並列処理が有利であってもよい。その上、上記で説明した実施形態における様々なシステムモジュールおよび構成要素の分離は、すべての実施形態においてそのような分離を必要とするものとして理解されるべきではなく、説明したプログラム構成要素およびシステムは、一般に単一のソフトウェア製品にともに統合されることが可能であるか、または複数のソフトウェア製品にパッケージ化されることが可能であることを理解されたい。
【００８９】
主題の特定の実施形態について説明した。他の実施形態は、以下の特許請求の範囲の範囲内である。たとえば、特許請求の範囲に記載されているアクションは、異なる順序で実行され、なお、望ましい結果を達成することが可能である。一例として、添付の図面に図示したプロセスは、望ましい結果を達成するために、必ずしも図示の特定の順序、または連続した順序を必要とするとは限らない。いくつかの実装形態では、マルチタスキングおよび並列処理が有利であってもよい。
【符号の説明】
【００９０】
100  強化学習システム、システム
110  ポリシーコントローラ、コントローラ
112  ロボティックエージェント、エージェント
120  デモンストレーション画像
130  タイムコントラスティブニューラルネットワーク、ニューラルネットワーク
132  デモンストレーション埋め込み
140  ロボット画像
142  ロボット埋め込み
150  最適化エンジン
200  トレーニングシステム、システム
204  ディープニューラルネットワーク
206  埋め込みニューラルネットワーク層
208  アンカー観測結果
210  ポジティブ観測結果
212  ネガティブ観測結果
214  第1の埋め込み
216  第2の埋め込み
218  第3の埋め込み
220  トリプレット損失
302  アンカー観測結果、観測結果、アンカー画像、第1の、すなわちアンカー画像
304  ポジティブ観測結果、観測結果、ポジティブ画像
306  ネガティブ観測結果、観測結果、ネガティブ画像、第3の、すなわちネガティブ画像
308、408  画像のシーケンス、シーケンス
310  画像のシーケンス
402  アンカー観測結果、アンカー画像、画像
404  ポジティブ観測結果、ポジティブ画像、画像
406  ネガティブ観測結果、第3の、すなわちネガティブ画像、画像
【図１】
2020530602.tif 000013
【図２】
2020530602.tif 000014
【図３】
2020530602.tif 000015
【図４】
2020530602.tif 000016
【図５】
2020530602.tif 000017
【図６】
2020530602.tif 000018
【国際調査報告】
2020530602.tif 000019
2020530602.tif 000020