(57)【要約】  本方法は、1つまたは複数の物体の各々に関して、現実の環境とインタラクションするロボットエージェントが物体を移動させるべきそれぞれの目標の場所を特定するデータを受信するステップと、現実の環境の現在の状態の現在の画像を受信すること、現在の行動およびロボットエージェントによって実行されるべき行動に基づいて将来の画像を予測する次画像予測ニューラルネットワークを使用してロボットエージェントによって実行されるべき次の行動シーケンスを現在の画像から決定すること、ならびに次の行動シーケンスを実行するようにロボットエージェントに指示することを繰り返し実行することによって、ロボットエージェントに1つまたは複数の物体を1つまたは複数の目標の場所に移動させるステップとを含む。
2019530925.tif 000002
【特許請求の範囲】
【請求項１】
1つまたは複数の物体の各々に関して、現実の環境とインタラクションするロボットエージェントが前記物体を移動させるべきそれぞれの目標の場所を特定するデータを受信するステップと、
前記現実の環境の現在の状態の現在の画像を受信するステップ、
現在の行動および前記ロボットエージェントによって実行されるべき行動に基づいて将来の画像を予測する次画像予測ニューラルネットワークを使用して前記ロボットエージェントによって実行されるべき次の行動シーケンスを前記現在の画像から決定するステップであって、
前記次のシーケンスが、前記環境が前記現在の状態にあるときから開始して前記ロボットエージェントによって実行される場合に、前記1つまたは複数の物体が前記それぞれの目標の場所に移動させられる結果をもたらす可能性が最も高いであろう複数の候補シーケンスのうちのシーケンスである、ステップ、ならびに
前記次の行動シーケンスを実行するように前記ロボットエージェントに指示するステップ
を繰り返し実行することによって、前記ロボットエージェントに前記1つまたは複数の物体を1つまたは複数の目標の場所に移動させるステップと
を含む、方法。
【請求項２】
前記現在の画像が、前記ロボットエージェントのカメラによって撮影された画像である、請求項1に記載の方法。
【請求項３】
ユーザに提示するために、移動させられるべき前記物体および前記目標の場所を前記ユーザが指定することを可能にするユーザインターフェースを提供するステップ
をさらに含む、請求項1または2に記載の方法。
【請求項４】
前記次の行動シーケンスを実行するように前記ロボットエージェントに指示するステップが、
前記ロボットエージェントによって実行されている現在の行動シーケンスを中断し、かつ前記次の行動シーケンスを実行することを開始するように前記ロボットエージェントに指示するステップ
を含む、請求項1から3のいずれか一項に記載の方法。
【請求項５】
前記次画像予測ニューラルネットワークが、
少なくとも現在の画像および入力行動を入力として受信し、
前記環境が前記現在の状態にある場合において前記ロボットエージェントが前記入力行動を実行するときに、前記環境の予測される次の状態の画像である次画像を生成するために前記入力を処理する
ようにトレーニングされた再帰型ニューラルネットワークであり、
前記次画像を生成することの一部として、前記再帰型ニューラルネットワークが、前記次画像内の複数のピクセルの各々に関して、前記ピクセルが前記現在の画像内の複数のピクセルの各々から移動したそれぞれの予測される尤度を特定するフローマップを生成する、
請求項1から4のいずれか一項に記載の方法。
【請求項６】
前記次の行動シーケンスを決定するステップが、前記次画像予測ニューラルネットワークによって生成されたフローマップを使用して、前記ロボットエージェントによる前記候補シーケンスの中の行動の前記実行が、前記物体が前記目標の場所に移動させられる結果をもたらす前記候補シーケンスの各々に関するそれぞれの尤度を決定するステップを含む、請求項5に記載の方法。
【請求項７】
前記次の行動シーケンスを決定するステップが、
前記1つまたは複数の物体を示す前記現在の画像内の1つまたは複数のピクセルを前記環境内に現在置かれているものとして決定すること
を含む、請求項6に記載の方法。
【請求項８】
所与の候補シーケンスに関する前記それぞれの尤度を決定するステップが、前記シーケンスの中の前記行動および前記行動のために前記ニューラルネットワークによって生成された前記次画像を前記ニューラルネットワークへの入力として再帰的に供給すること
を含む、請求項6または7に記載の方法。
【請求項９】
可能な行動シーケンス上の分布から前記候補シーケンスをサンプリングするステップ
をさらに含む、請求項1から8のいずれか一項に記載の方法。
【請求項１０】
前記候補シーケンスをサンプリングするステップが、
交差エントロピー技法を使用してサンプリングの複数の反復を実行するステップ
を含む、請求項9に記載の方法。
【請求項１１】
1つまたは複数のコンピュータによって実行されるときに、前記1つまたは複数のコンピュータに、請求項1から10のいずれか一項に記載のそれぞれの方法の動作を実行させる命令を記憶する、1つまたは複数のコンピュータおよび1つまたは複数の記憶デバイス。
【請求項１２】
1つまたは複数のコンピュータによって実行されるときに、前記1つまたは複数のコンピュータに、請求項1から10のいずれか一項に記載のそれぞれの方法の動作を実行させる命令を符号化された、1つまたは複数のコンピュータ記憶媒体。
【請求項１３】
1つまたは複数のコンピュータによって実行されるときに、前記1つまたは複数のコンピュータに、請求項1から10のいずれか一項に記載の方法を実行させる、コンピュータ可読命令。
【発明の詳細な説明】
【技術分野】
【０００１】
関連出願の相互参照
本出願は、2016年9月15日に出願された米国仮出願第62/395,329号の優先権を主張するものである。先の出願の開示は、本出願の開示の一部と考えられ、本出願の開示に参照により組み込まれる。
【０００２】
本明細書は、ロボットエージェントによって実行されるべき行動を選択することに関する。
【背景技術】
【０００３】
ロボットエージェントは、環境の状態を特徴付けるデータを受信し、それに応じてロボットのタスクを実行しようと試みるために行動を実行することによって環境とインタラクションする。いくつかのロボットエージェントは、任意の所与の観測を受信することに応じて実行されるべき行動を選択するためにニューラルネットワークを使用する。
【０００４】
ニューラルネットワークは、受信された入力に関する出力を予測するために非線形ユニットの1つまたは複数の層を使用する機械学習モデルである。いくつかのニューラルネットワークは、出力層に加えて1つまたは複数の隠れ層を含む深層ニューラルネットワークである。各隠れ層の出力は、ネットワーク内の次の層、すなわち次の隠れ層または出力層への入力として使用される。ネットワークの各層は、パラメータのそれぞれのセットの現在の値に従って、受信された入力から出力を生成する。
【先行技術文献】
【非特許文献】
【０００５】
【非特許文献１】X. Shiら、"Convolutional lstm network: A machine learning approach for precipitation nowcasting"、NIPS、2015年
【非特許文献２】C. Finn、I. Goodfellow、およびS. Levine、"Unsupervised learning for physical interaction through video prediction"、Neural Information Processing Systems (NIPS)、2016年
【発明の概要】
【課題を解決するための手段】
【０００６】
本明細書は、1つまたは複数の場所の1つまたは複数のコンピュータ上のコンピュータプログラムとして実装されたシステムがロボットエージェントによって実行されるべき行動をどのようにして選択することができるかを説明する。
【０００７】
概して、1つの革新的な態様は、1つまたは複数の物体の各々に関して、現実の環境とインタラクションするロボットエージェントが物体を移動させるべきそれぞれの目標の場所を特定するデータを受信するステップを含む方法において具現化されてもよい。本方法は、現実の環境の現在の状態の現在の画像を受信すること、現在の行動およびロボットエージェントによって実行されるべき行動に基づいて将来の画像を予測する次画像予測ニューラルネットワークを使用してロボットエージェントによって実行されるべき次の行動シーケンスを現在の画像から決定することであって、次のシーケンスが、環境が現在の状態にあるときから開始してロボットエージェントによって実行される場合に、1つまたは複数の物体がそれぞれの目標の場所に移動させられる結果をもたらす可能性が最も高いであろう複数の候補シーケンスのうちのシーケンスである、決定すること、ならびに次の行動シーケンスを実行するようにロボットエージェントに指示することを繰り返し実行することによって、ロボットエージェントに1つまたは複数の物体を1つまたは複数の目標の場所に移動させるステップをさらに含む。現在の画像は、ロボットエージェントのカメラによって撮影された画像であってもよい。
【０００８】
次の行動シーケンスを実行するようにロボットエージェントに指示することは、ロボットエージェントによって実行されている現在の行動シーケンスを中断し、次の行動シーケンスを実行することを開始するようにロボットエージェントに指示することを含んでもよい。
【０００９】
本方法は、ユーザに提示するために、移動させられるべき物体および目標の場所をユーザが指定することを可能にするユーザインターフェースを提供するステップをさらに含むことができる。
【００１０】
次画像予測ニューラルネットワークは、少なくとも現在の画像および入力行動を入力として受信し、環境が現在の状態にある場合においてロボットエージェントが入力行動を実行するときに、環境の予測される次の状態の画像である次画像を生成するために入力を処理するようにトレーニングされた再帰型ニューラルネットワークとすることができる。次画像を生成することの一部として、再帰型ニューラルネットワークは、次画像内の複数のピクセルの各々に関して、ピクセルが現在の画像内の複数のピクセルの各々から移動したそれぞれの予測される尤度を特定するフローマップを生成する。
【００１１】
次の行動シーケンスを決定することは、次画像予測ニューラルネットワークによって生成されたフローマップを使用して、ロボットエージェントによる候補シーケンスの中の行動の実行が、物体が目標の場所に移動させられる結果をもたらす候補シーケンスの各々に関するそれぞれの尤度を決定することを含んでもよい。
【００１２】
次の行動シーケンスを決定することは、1つまたは複数の物体を示す現在の画像内の1つまたは複数のピクセルを環境内に現在置かれているものとして決定することを含んでもよい。
【００１３】
所与の候補シーケンスに関するそれぞれの尤度を決定することは、シーケンスの中の行動および行動のためにニューラルネットワークによって生成された次画像をニューラルネットワークへの入力として再帰的に供給することを含んでもよい。
【００１４】
本方法は、可能な行動シーケンス上の分布から候補シーケンスをサンプリングするステップをさらに含んでもよい。候補シーケンスをサンプリングするステップは、交差エントロピー技法を使用してサンプリングの複数の反復を実行することを含んでもよい。
【００１５】
別の革新的な態様は、1つまたは複数のコンピュータによって実行されるときに、1つまたは複数のコンピュータに、上述の方法の動作を実行させる命令を記憶する1つまたは複数のコンピュータおよび1つまたは複数の記憶デバイスにおいて具現化されてもよい。
【００１６】
別の革新的な態様は、1つまたは複数のコンピュータによって実行されるときに、1つまたは複数のコンピュータに、上述の方法の動作を実行させる命令を符号化された1つまたは複数の非一時的記憶媒体において具現化されてもよい。
【００１７】
本明細書に記載の主題の特定の実施形態は、以下の利点のうちの1つまたは複数を実現するように実装されることが可能である。ロボットエージェントによって実行されるべき行動を選択するために、学習された予測モデルおよびモデル予測制御(MPC)に基づくコントローラの組合せを使用することによって、本明細書において説明されるシステムは、まったくラベル付けされていないトレーニングデータのみを使用して、すなわちトレーニング画像をラベル付けするために追加的な計算リソースを使用することを必要とせずに、またはトレーニング画像がユーザによってラベル付けされることを必要とせずにロボットエージェントが物体を目標の場所に効果的に移動させることを可能にする。さらに、本明細書において説明される技法は、較正されたカメラも、計器を備えた(instrumented)トレーニングのセットアップも、ロボットエージェントによる精密なセンシングおよび駆動も必要としない。加えて、説明される技法は、次画像予測ニューラルネットワークのトレーニング中に見られない新規な物体をロボットが扱うことを可能にし、本明細書において説明される技法が異なるタスクおよび物体により上手く一般化することを可能にする。
【００１８】
本明細書の主題の1つまたは複数の実施形態の詳細が、添付の図面および以下の説明に記載されている。主題のその他の特徴、態様、および利点は、説明、図面、および特許請求の範囲から明らかになるであろう。
【図面の簡単な説明】
【００１９】
【図１】ロボット操作システムの例のブロック図である。
【図２】ロボットエージェントに物体を目標の場所に移動させるための例示的なプロセスの流れ図である。
【図３】物体を目標の場所に移動させるためにロボットエージェントによって実行されるべき次の行動シーケンスを決定するための例示的なプロセスの流れ図である。
【発明を実施するための形態】
【００２０】
様々な図面における同様の参照番号および参照指示は、同様の要素を示す。
【００２１】
図1は、ロボット操作システム100の例のブロック図である。システム100は、以下で説明されるシステム、コンポーネント、および技法が実装されることが可能である、1つまたは複数の場所の1つまたは複数のコンピュータ上のコンピュータプログラムとして実装されるシステムの例である。
【００２２】
概して、システム100は、エージェント102が1つまたは複数の物体を環境104内のそれぞれの初期の場所から環境104内のそれぞれの最終的な場所に移動させるようにロボットエージェント102が現実の環境104とインタラクションすることによって実行される行動を選択するように構成される。
【００２３】
特に、システム100は、現実の環境104内の1つまたは複数の物体の各々に関して、ロボットエージェント102が物体を移動させるべきそれぞれの目標の場所、たとえば目標の場所114を特定するデータ112を受信するように構成されるコントローラ106を含む。
【００２４】
いくつかの実装において、システム100は、ユーザに提示するために、移動させられる1つまたは複数の物体および目標の場所をユーザが指定することを可能にするユーザインターフェースを提供することができる。たとえば、ユーザは、物体を環境104内に現在置かれているものとして示す初期画像内のソースピクセルを指定し、その後ソースピクセルが移動させられるべき場所、すなわち初期画像内の別のピクセルを指定することができる。初期画像は、ロボットエージェント102のカメラによって撮影されることが可能であり、環境104の初期状態を特徴付ける。
【００２５】
たとえば、初期画像は、長方形のトレイ内に置かれたカップを示す。ユーザは、画像内でカップに属するソースピクセルを指定し、その後ソースピクセルが移動させられるべき画像内の目標の場所、たとえば長方形のトレイの角のうちの1つに近い場所を指定することができる。この目標の指定によって、システム100は、長方形のトレイの指定された角にカップを移動させるようにロボットエージェントを制御することができる。いくつかのその他の実装においては、移動させられる物体および目標の場所を特定するデータをユーザから受信する代わりに、システムは、1つまたは複数のその他のシステム、たとえば1つまたは複数のその他のロボットシステムからデータを受信することができる。
【００２６】
そして、コントローラ106は、物体を目標の場所114に向かって移動させるようにロボットエージェント102を制御するために学習された予測モデル108を使用する。
【００２７】
学習された予測モデル108は、次画像予測ニューラルネットワーク110を含む。次画像予測ニューラルネットワーク110は、環境104の現在の状態の現在の画像および入力行動を入力として受信するようにトレーニング済みである。入力行動は、たとえば物体を目標の場所に向かって押すことまたは物体を回転させることであることが可能である。そして、ニューラルネットワーク110は、環境が現在の状態にある場合においてロボットエージェントが入力行動を実行するときに、環境の予測される次の状態の画像である次画像を生成するために受信された入力を処理する。次画像を生成することの一部として、ニューラルネットワーク110は、次画像内の複数のピクセルの各々に関して、ピクセルが現在の画像内の複数のピクセルの各々から移動したそれぞれの予測される尤度を特定するフローマップを生成する。
【００２８】
次画像予測ニューラルネットワーク110の例は、畳み込み長期短期記憶(LSTM: long short-term memory)ニューラルネットワーク層のスタック、1つまたは複数の畳み込みニューラルネットワーク層、および正規化された畳み込みカーネルのセットを含む再帰型ニューラルネットワークである。畳み込みLSTMニューラルネットワーク層は、正規LSTMニューラルネットワーク層(regular LSTM neural network layer)に似ているが、それらの畳み込みLSTMニューラルネットワーク層のゲートは、全結合ニューラルネットワーク層の代わりに畳み込みによって実装される。畳み込みLSTMニューラルネットワーク層は、X. Shiら、"Convolutional lstm network: A machine learning approach for precipitation nowcasting"、NIPS、2015年により詳細に説明されている。ニューラルネットワーク110の上の例は、C. Finn、I. Goodfellow、およびS. Levine、"Unsupervised learning for physical interaction through video prediction"、Neural Information Processing Systems (NIPS)、2016年により詳細に説明される。
【００２９】
所与の時間ステップにおいて、目標の場所114が与えられると、コントローラ106は、ロボットエージェント102に物体を目標の場所に移動させる。ロボットエージェント102に物体を目標の場所に移動させることは、物体が目標の場所に到達するまで、図2を参照して下で詳細に説明されるようにプロセス200を繰り返し実行することを含む。
【００３０】
たとえば、コントローラ106は、環境104の現在の状態を特徴付ける現在の画像116を受信し、その後物体を目標の場所114に移動させるためにロボットエージェント102によって実行される次の行動シーケンス118を決定するために学習された予測モデル108を使用する。学習された予測モデル108を使用して次の行動シーケンスを決定することは、図3を参照して下でより詳細に説明される。そして、コントローラ106は、次の行動シーケンス118を実行するようにロボットエージェント102に指示する。ロボットエージェントが現在の行動シーケンスを実行している場合、コントローラ106は、ロボットエージェント102に実行されている現在の行動シーケンスを中断させ、ロボットエージェント102に次の行動シーケンス118を実行することを開始させる。エージェント102が次の行動シーケンス118の1つまたは複数の行動を実行した後、コントローラ106は、環境の新しい状態を特徴付ける新しい画像を受信してもよい。コントローラ106は、新しい画像によって現在の画像116を更新し、その後行動の別の次のシーケンスを決定し続ける。コントローラ106は、あらかじめ決められた数の次のシーケンスが決定されるまでまたはロボットエージェント102が物体を目標の場所114に成功裏に移動させるまで次の行動シーケンスを繰り返し決定することができる。
【００３１】
図2は、ロボットエージェントに物体を現実の環境内の目標の場所に移動させるための例示的なプロセスの流れ図である。便宜上、プロセス200は、1つまたは複数の場所に置かれた1つまたは複数のコンピュータのシステムによって実行されるものとして説明される。たとえば、本明細書に従って適切にプログラミングされたロボット操作システム、たとえば図1のロボット操作システム100またはロボット操作システムのコンポーネント、たとえば図1のコントローラ106が、プロセス200を実行することができる。
【００３２】
システムは、たとえばロボットエージェントのカメラによって撮影された現実の環境の現在の状態の現在の画像を受信する(ステップ202)。現在の画像が現実の環境内に最初に置かれた物体を示す(つまり、現実の環境の初期状態を示す)初期画像Itである場合、目標は、初期画像It内の単一の指定されたピクセルdt = (xd, yd)を初期画像It内の目標の場所g = (xg, yg)に移動させることである。現在の画像が初期画像ではない場合、たとえば現在の画像が現実の環境の次の状態を示す次画像It+1である場合、システムは、たとえば画像観測It:t+1およびdtから計算されたオプティカルフローを使用することによって指定されたピクセルをdtからdt+1に更新することができる。目標が変わらないものとすると、目標の場所g = (xg, yg)は、システムによって予測される次画像内で同じままである。
【００３３】
システムは、現在の画像から、学習された予測モデルを使用して、物体を目標の場所に移動させるためにロボットエージェントによって実行されるべき次の行動シーケンスを決定する(ステップ204)。次のシーケンスは、環境が現在の状態にあるときから開始してロボットエージェントによって実行される場合に物体が目標の場所に移動させられる結果をもたらす可能性が最も高いであろう複数の候補シーケンスのうちのシーケンスである。
【００３４】
たとえば、システムは、ロボットエージェントによって実行される場合に指定されたピクセルdtが目標の場所gに移動させられる結果をもたらす可能性が最も高いであろうH個の将来の次の行動シーケンス
【数１】
2019530925.tif 000003
を決定するために学習された予測モデルを使用する。
【００３５】
次の行動シーケンスを決定することは、図3を参照して下でより詳細に説明される。
【００３６】
そして、システムは、次の行動シーケンスを実行するようにロボットエージェントに指示する(ステップ206)。ロボットエージェントが現在の行動シーケンスを実行している場合、システムは、ロボットエージェントに実行されている現在の行動シーケンスを中断させ、その代わりにエージェントに次の行動シーケンスを実行することを開始させてもよい。エージェントが次の行動シーケンスの中の第1の行動を実行した後、システムは、環境の新しい状態を特徴付ける新しい画像を受信する。いくつかの実装において、システムは、ロボットエージェントが次の行動シーケンスの中のあらかじめ決められた数(>1)の行動を実行した後にのみ新しい画像を受信することができる。
【００３７】
たとえば、システムは、行動の決定された次のシーケンス
【数２】
2019530925.tif 000004
を実行するようにエージェントに指示する。エージェントがシーケンス内の行動
【数３】
2019530925.tif 000005
を実行した後、システムは、新しい画像It+1を受信する。そして、システムは、たとえば画像観測It:t+1およびdtから計算されたオプティカルフローを使用することによって指定されたピクセルをdtからdt+1に更新する。そのとき、システムは、新しい指定されたソースピクセルIt+1および目標の場所gに基づいて、ロボットエージェントによって実行されるべき行動の新しい次のシーケンスを決定するために学習された予測モデルを使用する。それから、システムは、実行されている次の行動シーケンスを中断し、行動の新しい次のシーケンスの中の1つまたは複数の行動を実行することを開始するようにロボットエージェントに指示する。ロボットエージェントが行動の新しい次のシーケンスの中の第1の行動を実行した後、システムは、現実の環境の新しい状態の新しい画像を受信し、指定されたピクセルを更新することができる。いくつかの実装において、システムは、ロボットエージェントが行動の新しい次のシーケンスの中のいくつかの行動を実行した後にのみ新しい画像を受信し、指定されたピクセルを更新することができる。
【００３８】
システムは、ロボットエージェントが物体を目標の場所に成功裏に移動させるまでステップ202〜206を繰り返し実行することができる。
【００３９】
図3は、物体を目標の場所に移動させるためにロボットエージェントによって実行されるべき次の行動シーケンスを決定するための例示的なプロセス300の流れ図である。
【００４０】
便宜上、プロセス300は、1つまたは複数の場所に置かれた1つまたは複数のコンピュータのシステムによって実行されるものとして説明される。たとえば、本明細書に従って適切にプログラミングされたロボット操作システム、たとえば図1のロボット操作システム100が、プロセス300を実行することができる。
【００４１】
概して、プロセス300は、交差エントロピー技法を使用して候補行動シーケンスをサンプリングする複数の反復を含む。概して、交差エントロピー技法は、各反復が2つのフェーズ、すなわち(a)指定されたメカニズムに従ってランダムなデータサンプルを生成することと、(b)次の反復においてより優れたサンプルを生成するためにこのデータに基づいて指定されたメカニズムのパラメータを更新することとに分割されることが可能である反復的手順を含む。
【００４２】
第1に、所与の時間ステップtにおいて、システムは、物体を目標の場所に移動させるためにロボットエージェントによって実行され得る可能な行動シーケンスのセット上の分布を初期化する(ステップ302)。初期化された分布は、たとえば一様分布であることが可能である。可能な行動シーケンスの各々は、同じ長さを有し、たとえば各シーケンスは、H個の行動を有する。システムはまた、候補行動シーケンスをサンプリングするために必要とされる反復の回数J(J>1)を指定する。言い換えれば、Jは、以下で説明されるようにステップ304〜308を繰り返し実行するためにシステムが必要とする回数である。Jは、システムのユーザによって指定されることが可能である。
【００４３】
そして、システムは、分布からM個の候補行動シーケンスをサンプリングする(ステップ304)。たとえば、第1の反復において、システムは、初期化された一様分布から長さHのM個の行動シーケンス
【数４】
2019530925.tif 000006
をサンプリングする。
【００４４】
次に、システムは、M個の候補シーケンスの各々に関して、ロボットエージェントによる候補シーケンスの中の行動の実行が物体が目標の場所に移動させられる結果をもたらす、たとえば現在の画像It内の指定されたピクセルdtが現在の画像It内の目標の場所g = (xg, yg)に移動させられる結果をもたらすそれぞれの確率を決定するために学習された予測モデルを使用する(ステップ306)。学習された予測モデルは、再帰型ニューラルネットワークである次画像予測ニューラルネットワークを含む。特に、M個の候補シーケンスの各々に関して、システムは、最初に、候補シーケンスの中の第1の行動および環境の現在の状態を特徴付ける現在の画像を次画像予測ニューラルネットワークへの入力として供給する。そして、次画像予測ニューラルネットワークは、環境が現在の状態にあるときにロボットエージェントが第1の行動を最初に実行する場合に、環境の予測される次の状態の画像である第1の次画像を生成するために入力を処理する。第1の次画像を生成することの一部として、次画像予測ニューラルネットワークは、第1の次画像内の複数のピクセルの各々に関して、ピクセルが現在の画像内の複数のピクセルの各々から移動したそれぞれの予測される確率(たとえば、尤度)を特定する第1のフローマップを生成する。
【００４５】
それから、システムは、シーケンスの中の第1の行動に続く第2の行動および次画像予測ニューラルネットワークによって生成された第1の次画像を次画像予測ニューラルネットワークへの入力として供給する。そして、次画像予測ニューラルネットワークは、ロボットエージェントが第2の行動を実行する場合に環境の予測される次の状態の画像である第2の次画像を生成するために入力を処理する。第2の次画像を生成する間に、次画像予測ニューラルネットワークは、第2の次画像内の複数のピクセルの各々に関して、ピクセルが現在の画像内の複数のピクセルの各々から移動したそれぞれの確率を特定する第2のフローマップを生成する。
【００４６】
システムは、シーケンスの中の後続の行動および行動のためにニューラルネットワークによって生成された次画像を画像予測ニューラルネットワークへの入力として再帰的に供給し、ニューラルネットワークは、行動シーケンスの中のすべての行動が処理されるまで次画像および対応するフローマップを生成するために入力を繰り返し処理する。各ステップにおいて生成されるフローマップは、次画像内の各ピクセルが現在の画像内の各ピクセルから来る確率を与える。シーケンスの中の最後の行動が処理された後、システムは、最終的な次画像It+H-1内の複数のピクセルの各々に関して、ピクセルが現在の画像It内の複数のピクセルの各々から最終的な次画像It+H-1に移動させられるそれぞれの確率を特定する最終的なフローマップを画像予測ニューラルネットワークを使用して現在決定済みである。言い換えれば、最終的なフローマップは、最終的な次画像It+H-1内の各ピクセルが現在の画像It内の各ピクセルから来る確率を与える。そして、システムは、エージェントが候補シーケンスの中の行動を実行する場合に現在の画像It内の指定されたピクセルdtが最終的な次画像内の目標の場所gに移動させられる確率を最終的なフローマップおよび(次画像予測ニューラルネットワークによって生成される任意の次画像内で同じままである)目標の場所g = (xg, yg)に基づいて決定する。
【００４７】
システムがM個の候補シーケンスの各々に関するそれぞれの確率を決定した後、システムは、M個の候補行動シーケンスから最も高い確率を有するK個の候補行動シーケンスを選択する(ステップ308)。
【００４８】
そして、システムは、K個の候補行動シーケンスをサンプリングするための反復(つまり、ステップ304から308)の回数が指定されたJ回の反復に達したかどうかを判定する(ステップ310)。
【００４９】
反復の回数がJに達していない場合、システムは、選択されたK個の候補行動シーケンスに新しい分布を当てはめる(ステップ312)。つまり、システムは、選択されたK個の候補行動シーケンスに当てはまる新しい分布を決定する。新しい分布は、たとえば多変量ガウス分布であることができる。
【００５０】
そして、システムは、システムがJ個の反復を終えるまでステップ304〜312、すなわち新しい分布からM個の行動シーケンスの新しいセットを再サンプリングし、M個の候補シーケンスの各々に関してそれぞれの確率を決定し、M個の候補シーケンスからK個の候補行動シーケンスを選択し、新しい分布を再び当てはめることを繰り返す。
【００５１】
最後の反復の終わりに、システムは、K個の候補行動シーケンスから、シーケンスの中の行動の実行が物体が目標の場所に向かって移動させられる結果をもたらす最も高い確率を有する行動シーケンスを選択する(ステップ314)。
【００５２】
そして、システムは、ロボットエージェントに、物体を目標の場所に向かって移動させるために選択された行動シーケンスの中の1つまたは複数の行動を実行させる（ステップ316）。システムは、実行されている現在の行動シーケンスを中断し、選択された行動シーケンスを実行することを開始するようにロボットエージェントに指示してもよい。
【００５３】
上の説明を考慮して、本明細書において説明されるシステムおよび方法が1つまたは複数の利点をもたらす場合があることが理解されるであろう。たとえば、システムは、まったくラベル付けされていないトレーニングデータのみを使用してトレーニングされたニューラルネットワークを使用してロボットエージェントが物体を目標の場所に効果的に移動させることを可能にしてもよい。加えて、システムは、較正されたカメラ、計器を備えたトレーニングのセットアップ、ならびに/またはロボットエージェントによる精密なセンシングおよび駆動が必要とされない場合があるより簡素化されたセットアップを使用してロボットエージェントによって物体が移動させられることを可能にする。説明された技法は、ロボットエージェントが次画像予測ニューラルネットワークのトレーニング中に見られない新規な物体を扱うことも可能にし、したがって、システムの潜在的な有用性を広げる場合がある。
【００５４】
本明細書は、用語「構成される」をシステムおよびコンピュータプログラムのコンポーネントに関連して使用する。1つまたは複数のコンピュータのシステムが特定の動作または行動を実行するように構成されることは、システムが、動作中にシステムに動作または行動を実行させるソフトウェア、ファームウェア、ハードウェア、またはそれらの組合せをそのシステム上にインストール済みであることを意味する。1つまたは複数のコンピュータプログラムが特定の動作または行動を実行するように構成されることは、1つまたは複数のプログラムが、データ処理装置によって実行されるときに装置に動作または行動を実行させる命令を含むことを意味する。
【００５５】
本明細書に記載の主題の実施形態および機能的動作は、本明細書で開示された構造およびそれらの構造的均等物を含むデジタル電子回路、有形で具現化されたコンピュータソフトウェアもしくはファームウェア、コンピュータハードウェア、またはそれらのうちの1つもしくは複数の組合せで実装されることが可能である。本明細書に記載の主題の実施形態は、1つまたは複数のコンピュータプログラム、すなわちデータ処理装置による実行のために、またはデータ処理装置の動作を制御するために有形の非一時的記憶媒体上に符号化されたコンピュータプログラム命令の1つまたは複数のモジュールとして実装されることが可能である。コンピュータ記憶媒体は、機械可読記憶デバイス、機械可読記憶基板、ランダムもしくはシリアルアクセスメモリデバイス、またはそれらのうちの1つもしくは複数の組合せであることが可能である。代替的にまたは追加的に、プログラム命令は、データ処理装置による実行のために好適なレシーバ装置に送信するために情報を符号化するように生成される人為的に生成された伝播信号、たとえば機械によって生成された電気的信号、光学的信号、または電磁的信号上に符号化されることが可能である。
【００５６】
用語「データ処理装置」は、データ処理ハードウェアを指し、例として、1つのプログラミング可能なプロセッサ、1台のコンピュータ、または複数のプロセッサもしくはコンピュータを含む、データを処理するためのすべての種類の装置、デバイス、およびマシンを包含する。装置は、専用の論理回路、たとえばFPGA(フィールドプログラマブルゲートアレイ)またはASIC(特定用途向け集積回路)であることも可能であり、またはそのような専用論理回路をさらに含むことも可能である。任意選択で、装置は、ハードウェアに加えて、コンピュータプログラムのための実行環境を生成するコード、たとえばプロセッサのファームウェア、プロトコルスタック、データベース管理システム、オペレーティングシステム、またはそれらのうちの1つもしくは複数の組合せを構成するコードを含むことが可能である。
【００５７】
プログラム、ソフトウェア、ソフトウェアアプリケーション、アプリ、モジュール、ソフトウェアモジュール、スクリプト、またはコードと呼ばれるまたは称される場合もあるコンピュータプログラムは、コンパイラ型言語もしくはインタープリタ型言語、または宣言型言語もしくは手続き型言語を含む任意の形態のプログラミング言語で記述可能であり、独立型プログラムとしての形態、またはモジュール、コンポーネント、サブルーチン、もしくはコンピューティング環境内での使用に適したその他のユニットとしての形態を含む任意の形態で配置されることが可能である。プログラムは、ファイルシステム内のファイルに対応してもよいが、必ずそうであるとは限らない。プログラムは、その他のプログラムもしくはデータを保持するファイルの一部、たとえばマークアップ言語のドキュメントに記憶された1つもしくは複数のスクリプト、問題にしているプログラムに専用の単一のファイル、または複数の組織されたファイル、たとえば1つもしくは複数のモジュール、サブプログラム、もしくはコードの一部を記憶するファイルに記憶されることが可能である。コンピュータプログラムは、1台のコンピュータ上で、または1つの場所に置かれるか、もしくは複数の場所に分散され、データ通信ネットワークによって相互に接続される複数のコンピュータ上で実行されるように配置されることが可能である。
【００５８】
本明細書に記載のプロセスおよび論理フローは、入力データに対して演算を行い、出力を生成することによって機能を実行する1つまたは複数のコンピュータプログラムを1つまたは複数のプログラミング可能なコンピュータが実行することによって実行されることが可能である。また、プロセスおよび論理フローは、専用の論理回路、たとえばFPGAもしくはASICによって、または専用の論理回路と1つまたは複数のプログラミングされたコンピュータとの組合せによって実行されることが可能である。
【００５９】
コンピュータプログラムの実行に好適なコンピュータは、汎用マイクロプロセッサもしくは専用マイクロプロセッサもしくはそれら両方、または任意のその他の種類の中央演算処理装置に基づくことが可能である。概して、中央演算処理装置は、読み出し専用メモリ、またはランダムアクセスメモリ、またはこれら両方から命令およびデータを受信する。コンピュータの必須の要素は、命令を遂行または実行するための中央演算処理装置、ならびに命令およびデータを記憶するための1つまたは複数のメモリデバイスである。中央演算処理装置およびメモリは、専用の論理回路によって補完されるか、または専用の論理回路に組み込まれることが可能である。また、概してコンピュータは、データを記憶するための1つまたは複数の大容量記憶デバイス、たとえば磁気ディスク、光磁気ディスク、もしくは光ディスクを含むか、またはこれらの大容量記憶デバイスからデータを受信するか、もしくはこれらの大容量記憶デバイスにデータを転送するか、もしくはそれら両方を行うために動作可能なように結合される。しかし、コンピュータは、そのようなデバイスを備えていなくてもよい。さらに、コンピュータは、別のデバイス、たとえばほんのいくつか例を挙げるとすれば、モバイル電話、携帯情報端末(PDA)、モバイルオーディオもしくはビデオプレイヤー、ゲームコンソール、全地球測位システム(GPS)レシーバ、またはポータブル記憶デバイス、たとえばユニバーサルシリアルバス(USB)フラッシュドライブに組み込まれることが可能である。
【００６０】
コンピュータプログラム命令およびデータを記憶するのに好適なコンピュータ可読媒体は、例として、半導体メモリデバイス、たとえばEPROM、EEPROM、およびフラッシュメモリデバイス、磁気ディスク、たとえば内蔵ハードディスクまたはリムーバブルディスク、光磁気ディスク、ならびにCD-ROMディスクおよびDVD-ROMディスクを含む、すべての形態の不揮発性メモリ、媒体、およびメモリデバイスを含む。
【００６１】
ユーザとのインタラクションを提供するために、本明細書に記載の主題の実施形態は、ユーザに対して情報を表示するためのディスプレイデバイス、たとえばCRT(ブラウン管)またはLCD(液晶ディスプレイ)モニタ、ならびにユーザがコンピュータに入力を与えることができるキーボードおよびポインティングデバイス、たとえばマウスまたはトラックボールを有するコンピュータ上に実装されることが可能である。その他の種類のデバイスが、ユーザとのインタラクションを提供するためにやはり使用されることが可能であり、たとえばユーザに提供されるフィードバックは、任意の形態の感覚フィードバック、たとえば視覚的フィードバック、聴覚的フィードバック、または触覚的フィードバックであることが可能であり、ユーザからの入力は、音響、発話、または触覚による入力を含む任意の形態で受信されることが可能である。加えて、コンピュータは、ユーザによって使用されるデバイスに文書を送信し、そのデバイスから文書を受信することによって、たとえばウェブブラウザから受信された要求に応答してユーザのデバイスのウェブブラウザにウェブページを送信することによってユーザとインタラクションすることができる。また、コンピュータは、メッセージングアプリケーションを実行しているパーソナルデバイス、たとえばスマートフォンにテキストメッセージまたはその他の形態のメッセージを送信し、返報としてユーザから応答メッセージを受信することによってユーザとインタラクションすることができる。
【００６２】
機械学習モデルを実装するためのデータ処理装置は、たとえば機械学習のトレーニングまたは生産、すなわち推測の作業負荷のよくある計算量の多い部分を処理するための専用ハードウェアアクセラレータユニットも含むことが可能である。
【００６３】
機械学習モデル、たとえば予測モデルは、機械学習フレームワーク、たとえばTensorFlowフレームワーク、Microsoft Cognitive Toolkitフレームワーク、Apache Singaフレームワーク、またはApache MXNetフレームワークを使用して実装され、配置されることが可能である。
【００６４】
本明細書に記載の主題の実施形態は、バックエンドコンポーネントを、たとえばデータサーバとして含むか、またはミドルウェアコンポーネント、たとえばアプリケーションサーバを含むか、またはフロントエンドコンポーネント、たとえばそれによってユーザが本明細書に記載の主題の実装例とインタラクションすることができるグラフィカルユーザインターフェース、ウェブブラウザ、もしくはアプリを有するクライアントコンピュータを含むか、または1つもしくは複数のそのようなバックエンドコンポーネント、ミドルウェアコンポーネント、もしくはフロントエンドコンポーネントの任意の組合せを含むコンピューティングシステムに実装されることが可能である。システムのコンポーネントは、任意の形態または媒体のデジタルデータ通信、たとえば通信ネットワークによって相互に接続されることが可能である。通信ネットワークの例は、ローカルエリアネットワーク(LAN)および広域ネットワーク(WAN)、たとえばインターネットを含む。
【００６５】
コンピューティングシステムは、クライアントおよびサーバを含むことが可能である。クライアントおよびサーバは、概して互いに離れており、通常は通信ネットワークを通じてインタラクションする。クライアントとサーバとの関係は、それぞれのコンピュータ上で実行されており、互いにクライアント-サーバの関係にあるコンピュータプログラムによって生じる。いくつかの実施形態において、サーバは、たとえばクライアントとして働くデバイスとインタラクションするユーザに対してデータを表示し、そのようなユーザからユーザ入力を受信する目的でユーザデバイスにデータ、たとえばHTMLページを送信する。ユーザデバイスにおいて生成されたデータ、たとえばユーザインタラクションの結果が、サーバにおいてデバイスから受信されることが可能である。
【００６６】
本明細書は多くの特定の実装例の詳細を含むが、これらは、いかなる発明の範囲または特許請求され得るものの範囲に対する限定とも見なされるべきではなく、むしろ特定の発明の特定の実施形態に特有である場合がある特徴の説明と見なされるべきである。別々の実施形態の文脈で本明細書において説明されている特定の特徴が、単一の実施形態において組み合わせて実装されることも可能である。反対に、単一の実施形態の文脈で説明されている様々な特徴が、複数の実施形態に別々に、または任意の好適なサブコンビネーションで実装されることも可能である。さらに、特徴は、特定の組合せで動作するものとして上で説明されている場合があり、最初にそのように特許請求されてさえいる場合があるが、主張された組合せの1つまたは複数の特徴は、場合によっては組合せから削除されることが可能であり、主張された組合せは、サブコンビネーション、またはサブコンビネーションの変形を対象とする場合がある。
【００６７】
同様に、動作が特定の順序で図中に示され、特許請求の範囲に記載されているが、これは、そのような動作が示された特定の順序でもしくは逐次的順序で実行されること、または所望の結果を達成するために示されたすべての動作が実行されることを必要とするものと理解されるべきでない。特定の状況においては、マルチタスクおよび並列処理が有利である可能性がある。さらに、上述の実施形態における様々なシステムモジュールおよびコンポーネントの分割は、すべての実施形態においてそのような分割を必要とするものと理解されるべきでなく、説明されたプログラムコンポーネントおよびシステムは、概して、単一のソフトウェア製品に一緒に統合されるか、または複数のソフトウェア製品にパッケージングされることが可能であるがあると理解されるべきである。
【００６８】
主題の特定の実施形態が説明された。他の実施形態は、添付の特許請求の範囲の範囲内にある。たとえば、特許請求の範囲に挙げられた行動は、異なる順序で実行され、それでも所望の結果を達成することができる。一例として、添付の図面に示されたプロセスは、所望の結果を達成するために、必ずしも、示された特定の順序、または逐次的順序である必要はない。場合によっては、マルチタスクおよび並列処理が有利である可能性がある。
【符号の説明】
【００６９】
100  ロボット操作システム
102  ロボットエージェント
104  現実の環境
106  コントローラ
108  学習された予測モデル
110  次画像予測ニューラルネットワーク
112  データ
114  目標の場所
116  現在の画像
118  次の行動シーケンス
200  プロセス
300  プロセス
【図１】
2019530925.tif 000007
【図２】
2019530925.tif 000008
【図３】
2019530925.tif 000009
【手続補正書】
【提出日】令和1年5月10日(2019.5.10)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
1つまたは複数のコンピュータによって実施される方法であって、
1つまたは複数の物体の各々に関して、現実の環境とインタラクションするロボットエージェントが前記物体を移動させるべきそれぞれの目標の場所を特定するデータを受信するステップと、
前記現実の環境の現在の状態の現在の画像を受信するステップ、
現在の行動および前記ロボットエージェントによって実行されるべき行動に基づいて将来の画像を予測する次画像予測ニューラルネットワークを使用して前記ロボットエージェントによって実行されるべき次の行動シーケンスを前記現在の画像から決定するステップであって、
前記次のシーケンスが、前記環境が前記現在の状態にあるときから開始して前記ロボットエージェントによって実行される場合に、前記1つまたは複数の物体が前記それぞれの目標の場所に移動させられる結果をもたらす可能性が最も高いであろう複数の候補シーケンスのうちのシーケンスである、ステップ、ならびに
前記次の行動シーケンスを実行するように前記ロボットエージェントに指示するステップ
を繰り返し実行することによって、前記ロボットエージェントに前記1つまたは複数の物体を1つまたは複数の目標の場所に移動させるステップと
を含む、方法。
【請求項２】
前記現在の画像が、前記ロボットエージェントのカメラによって撮影された画像である、請求項1に記載の方法。
【請求項３】
ユーザに提示するために、移動させられるべき前記物体および前記目標の場所を前記ユーザが指定することを可能にするユーザインターフェースを提供するステップ
をさらに含む、請求項1または2に記載の方法。
【請求項４】
前記次の行動シーケンスを実行するように前記ロボットエージェントに指示するステップが、
前記ロボットエージェントによって実行されている現在の行動シーケンスを中断し、かつ前記次の行動シーケンスを実行することを開始するように前記ロボットエージェントに指示するステップ
を含む、請求項1から3のいずれか一項に記載の方法。
【請求項５】
前記次画像予測ニューラルネットワークが、
少なくとも現在の画像および入力行動を入力として受け取り、
前記環境が前記現在の状態にある場合において前記ロボットエージェントが前記入力行動を実行するときに、前記環境の予測される次の状態の画像である次画像を生成するために前記入力を処理する
ようにトレーニングされた再帰型ニューラルネットワークであり、
前記次画像を生成することの一部として、前記再帰型ニューラルネットワークが、前記次画像内の複数のピクセルの各々に関して、前記ピクセルが前記現在の画像内の複数のピクセルの各々から移動したそれぞれの予測される尤度を特定するフローマップを生成する、
請求項1から4のいずれか一項に記載の方法。
【請求項６】
前記次の行動シーケンスを決定するステップが、前記次画像予測ニューラルネットワークによって生成されたフローマップを使用して、前記ロボットエージェントによる前記候補シーケンスの中の行動の前記実行が前記物体が前記目標の場所に移動させられる結果をもたらす前記候補シーケンスの各々に関するそれぞれの尤度を決定するステップを含む、請求項5に記載の方法。
【請求項７】
前記次の行動シーケンスを決定するステップが、
前記1つまたは複数の物体を示す前記現在の画像内の1つまたは複数のピクセルを前記環境内に現在置かれているものとして決定すること
を含む、請求項6に記載の方法。
【請求項８】
所与の候補シーケンスに関する前記それぞれの尤度を決定するステップが、前記シーケンスの中の前記行動および前記行動のために前記次画像予測ニューラルネットワークによって生成された前記次画像を前記次画像予測ニューラルネットワークへの入力として再帰的に供給すること
を含む、請求項6または7に記載の方法。
【請求項９】
可能な行動シーケンス上の分布から前記候補シーケンスをサンプリングするステップ
をさらに含む、請求項1から8のいずれか一項に記載の方法。
【請求項１０】
前記候補シーケンスをサンプリングするステップが、
交差エントロピー技法を使用してサンプリングの複数の反復を実行するステップ
を含む、請求項9に記載の方法。
【請求項１１】
1つまたは複数のコンピュータによって実行されるときに、前記1つまたは複数のコンピュータに、請求項1から10のいずれか一項に記載の方法を実行させる命令を記憶する、1つまたは複数のコンピュータおよび1つまたは複数の記憶デバイス。
【請求項１２】
1つまたは複数のコンピュータによって実行されるときに、前記1つまたは複数のコンピュータに、請求項1から10のいずれか一項に記載の方法を実行させる命令を符号化された、1つまたは複数のコンピュータ記憶媒体。
【請求項１３】
1つまたは複数のコンピュータによって実行されるときに、前記1つまたは複数のコンピュータに、請求項1から10のいずれか一項に記載の方法を実行させる、コンピュータ可読命令。
【国際調査報告】
2019530925.tif 000010
2019530925.tif 000011
2019530925.tif 000012