(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2022-11-16
(54)【発明の名称】データ駆動型ロボット制御
(51)【国際特許分類】
G06N 3/08 20060101AFI20221109BHJP
G05D 1/02 20200101ALI20221109BHJP
【FI】
G06N3/08
G05D1/02 P
【審査請求】有
【予備審査請求】未請求
(21)【出願番号】P 2022516123
(86)(22)【出願日】2020-09-14
(85)【翻訳文提出日】2022-05-10
(86)【国際出願番号】 EP2020075609
(87)【国際公開番号】W WO2021048434
(87)【国際公開日】2021-03-18
(32)【優先日】2019-09-13
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
(71)【出願人】
【識別番号】517030789
【氏名又は名称】ディープマインド テクノロジーズ リミテッド
(74)【代理人】
【識別番号】100108453
【氏名又は名称】村山 靖彦
(74)【代理人】
【識別番号】100110364
【氏名又は名称】実広 信哉
(74)【代理人】
【識別番号】100133400
【氏名又は名称】阿部 達彦
(72)【発明者】
【氏名】セルカン・カビ
(72)【発明者】
【氏名】ジユ・ワン
(72)【発明者】
【氏名】アレクサンダー・ノヴィコフ
(72)【発明者】
【氏名】クセニア・コンニュシュコヴァ
(72)【発明者】
【氏名】セルヒオ・ゴメス・コルメナレホ
(72)【発明者】
【氏名】スコット・エリソン・リード
(72)【発明者】
【氏名】ミーシャ・マン・レイ・デニール
(72)【発明者】
【氏名】ジョナサン・カール・ショルツ
(72)【発明者】
【氏名】オレグ・オー・スシコフ
(72)【発明者】
【氏名】レ・チャン・ジョン
(72)【発明者】
【氏名】デイヴィッド・バーカー
(72)【発明者】
【氏名】デイヴィッド・バドゥン
(72)【発明者】
【氏名】メル・ヴェセリク
(72)【発明者】
【氏名】ユスフ・アイタール
(72)【発明者】
【氏名】ジョアン・フェルディナンド・ゴメス・デ・フレイタス
【テーマコード(参考)】
5H301
【Fターム(参考)】
5H301AA01
5H301BB05
5H301BB14
5H301CC03
5H301CC06
5H301CC10
5H301GG08
5H301GG09
5H301KK03
5H301KK07
(57)【要約】
データ駆動型ロボット制御のための、コンピュータ記憶媒体上に符号化されたコンピュータプログラムを含む、方法、システム、および装置。方法の1つは、ロボット経験データを保守するステップと、アノテーションデータを取得するステップと、アノテーションデータ上で、報酬モデルを訓練するステップと、特定のタスクに対するタスク固有の訓練データを生成するステップであって、ロボット経験データ中の経験の第2のサブセット内の各経験に対して、報酬予測を生成するために訓練された報酬モデルを使用して経験における観測を処理すること、および報酬予測を経験と関連付けることを含む、生成するステップと、特定のタスクに対するタスク固有の訓練データ上でポリシーニューラルネットワークを訓練するステップとを含み、ポリシーニューラルネットワークは、観測を含むネットワーク入力を受け取ることと、ロボットが特定のタスクを行うための制御ポリシーを定義するポリシー出力を生成することとを行うように構成される。
【特許請求の範囲】
【請求項1】
コンピュータ実装方法であって、
環境とのロボットインタラクションを特徴づけるロボット経験データを保守するステップであって、前記ロボット経験データが、観測および前記観測に応じてそれぞれのロボットによって行われる行動を各々含む複数の経験を含む、保守するステップと、
前記ロボット経験データ中の前記経験の第1のサブセット内の各経験に、特定のタスクに対するそれぞれのタスク固有の報酬を割り当てるアノテーションデータを取得するステップと、
前記アノテーションデータ上で、入力観測を入力として受け取り、前記入力観測に割り当てられるべき、前記特定のタスクに対するタスク固有の報酬の予測である報酬予測を出力として生成する、報酬モデルを訓練するステップと、
複数の経験の各々を前記特定のタスクに対するタスク固有の報酬と関連付ける、前記特定のタスクに対するタスク固有の訓練データを生成するステップであって、前記ロボット経験データ中の前記経験の第2のサブセット内の各経験に対して、
報酬予測を生成するために、前記訓練された報酬モデルを使用して前記経験における前記観測を処理することと、
前記報酬予測を前記経験と関連付けることとを含む、生成するステップと、
前記特定のタスクに対する前記タスク固有の訓練データ上でポリシーニューラルネットワークを訓練するステップであって、前記ポリシーニューラルネットワークが、観測を含むネットワーク入力を受け取り、ロボットが前記特定のタスクを行うための制御ポリシーを定義するポリシー出力を生成するように構成される、訓練するステップと
を含む、方法。
【請求項2】
前記訓練されたポリシーニューラルネットワークを使用して、ロボットが前記特定のタスクを行う間、前記ロボットを制御するステップ
をさらに含む、請求項1に記載の方法。
【請求項3】
ロボットが前記特定のタスクを行う間、前記ロボットを制御する際に使用する前記訓練されたポリシーニューラルネットワークを指定するデータを提供するステップ
をさらに含む、請求項1に記載の方法。
【請求項4】
前記特定のタスクを行うために前記ポリシーニューラルネットワークを使用して前記ロボットを制御した結果として生成される経験を取得するステップと、
前記経験を前記ロボット経験データに追加するステップと
をさらに含む、請求項2または3のいずれか一項に記載の方法。
【請求項5】
前記ロボット経験データが、複数の異なるタスクを行いながら複数のロボットのインタラクションから収集されたデータを含む、請求項1~4のいずれか一項に記載の方法。
【請求項6】
前記ロボット経験データ中の前記経験が、前記複数の異なるタスクのいずれに対する報酬とも関連付けられない、請求項5に記載の方法。
【請求項7】
経験データの前記第2のサブセットが、前記特定のタスクとは異なる1つまたは複数のタスクをロボットが行った結果として収集された、請求項5または6のいずれか一項に記載の方法。
【請求項8】
前記ポリシーニューラルネットワークを訓練するステップが、オフポリシー強化学習技法を使用して前記ポリシーニューラルネットワークを訓練するステップを含む、請求項1~7のいずれか一項に記載の方法。
【請求項9】
経験データの前記第1のサブセットが、ロボットが前記特定のタスクの1つまたは複数のエピソードを行うとき、収集されたデモンストレーション経験を含む、請求項1~8のいずれか一項に記載の方法。
【請求項10】
前記ロボットが、前記特定のタスクの前記1つまたは複数のエピソードを行いながら、ユーザによって制御される、請求項9に記載の方法。
【請求項11】
アノテーションデータを取得するステップが、
ユーザへの提示のために、経験データの前記第1のサブセット内の前記経験の1つまたは複数の表現を提供するステップと、
前記ユーザから、前記1つまたは複数の経験に対する前記報酬を定義する入力を取得するステップと
を含む、請求項1~10のいずれか一項に記載の方法。
【請求項12】
前記報酬モデルを訓練するステップが、同じタスクエピソードからの異なる経験間の報酬予測の差を測定するヒンジ損失関数を最適化するように前記報酬モデルを訓練するステップを含む、請求項1~11のいずれか一項に記載の方法。
【請求項13】
1つまたは複数のコンピュータと、前記1つまたは複数のコンピュータによって実行されると、前記1つまたは複数のコンピュータに、請求項1~12のいずれか一項に記載のそれぞれの方法を実行させるように動作可能な命令を記憶する1つまたは複数のストレージデバイスとを含む、システム。
【請求項14】
1つまたは複数のコンピュータによって実行されると、前記1つまたは複数のコンピュータに、請求項1から13のいずれか一項に記載のそれぞれの方法を実行させる命令で符号化されたコンピュータ記憶媒体。
【発明の詳細な説明】
【技術分野】
【0001】
本明細書は、ニューラルネットワークを使用して、ロボットを制御することに関する。
【背景技術】
【0002】
ニューラルネットワークは、受け取った入力に対する出力を予測するために非線形ユニットの1つまたは複数の層を用いる機械学習モデルである。いくつかのニューラルネットワークは、出力層に加えて1つまたは複数の隠れ層を含む。各隠れ層の出力は、ネットワークの次の層、すなわち次の隠れ層または出力層への入力として使用される。ネットワークの各層が、重みのそれぞれのセットの現在の値に従って、受け取った入力から出力を生成する。
【先行技術文献】
【非特許文献】
【0003】
【非特許文献1】Sascha Lange、Thomas Gabel、およびMartin Riedmiller、Batch reinforcement learning、Reinforcement learning、45~73頁、Springer、2012
【非特許文献2】Gabriel Barth-Maron、Matthew W. Hoffman、David Budden、Will Dabney、Dan Horgan、Dhruva TB、Alistair Muldal、Nicolas Heess、およびTimothy Lillicrap、Distributed distributional deterministic policy gradients、International Conference on Learning Representations、2018
【発明の概要】
【課題を解決するための手段】
【0004】
本明細書は、1つまたは複数の場所にある1つまたは複数のコンピュータにコンピュータプログラムとして実装されるシステムについて説明し、このシステムは、ロボットに特定のタスクを行わせるため、ロボットを制御するために、すなわちロボットが環境と対話しながらロボットによって行われる行動を選択するために使用されるポリシーニューラルネットワークを訓練する。
【0005】
本明細書で説明する主題の特定の実施形態は、以下の利点のうちの1つまたは複数を実現するために実装することができる。
【0006】
本明細書で説明する技法は、システムが新しいタスクを学習するために過去の経験を再利用する(repurpose)ことを可能にする。詳細には、限られた数のアノテートされた経験から始めて、システムは、大量の訓練データを生成し、次いで完全にオフラインで新しいタスクのためのポリシーニューラルネットワークを訓練することができる。これは、限られた数のアノテートされた経験がひとたび生成されれば、さらなるロボットインタラクションは必要とされないので、物理的ロボットのさらなる摩損を制限する。さらに、この手法はロバストであり、新しいタスクに対する手作業で設計される報酬を必要としない。
【0007】
より詳細には、ロボット経験データ(ネバーエンディングストレージまたはNESとも呼ばれる)は、ロボットによって記録されたカメラおよびセンサーデータを含み、ロボット(または2つ以上のロボット)が新しいタスクを学習し、解決するにつれて蓄積する。システムは、ロボットまたは新しいタスクを実行する他のエージェントの最小デモンストレーションデータのみを使用して、環境とのさらなるロボットインタラクションを必要とせずに、新しいタスクに対してロボットを制御するようにニューラルネットワークを訓練するために、この蓄積されたデータを使用することができる。これは、ロバストであり、ロボットが新しいタスクを効率的に実行することを可能にする、新しいタスクに対するロボット用の制御ポリシーをもたらす。
【0008】
本明細書の主題の1つまたは複数の実施形態の詳細について、添付の図面および以下の説明で述べる。説明、図面、および特許請求の範囲から、主題の他の特徴、態様、および利点が明らかとなるであろう。
【図面の簡単な説明】
【0009】
【
図1】例示的なニューラルネットワーク訓練システムを示す図である。
【
図2】ニューラルネットワーク訓練システムの動作の図である。
【
図3】ポリシーニューラルネットワークを訓練するための例示的なプロセスの流れ図である。
【
図4】ユーザがタスクエピソードをアノテートするのに使う例示的なユーザインターフェースを示す図である。
【発明を実施するための形態】
【0010】
様々な図面における同じ参照番号および名称は、同じ要素を示す。
【0011】
図1は、例示的なニューラルネットワーク訓練システム100を示す。システム100は、以下で説明するシステム、構成要素、および技法を実装することができる、1つまたは複数の場所の1つまたは複数のコンピュータ上に、コンピュータプログラムとして実装されるシステムの一例である。
【0012】
システム100は、ロボット112に特定のタスクを実行させるため、ロボット112を制御するために、すなわちロボット112が環境114と対話している間にロボットによって行われる行動を選択するために使用されるポリシーニューラルネットワーク110を訓練する。ロボットは、たとえば産業用ロボット、または倉庫ロボット、または自律走行もしくは半自律走行車両であってもよい。環境は、実世界環境であってもよい。
【0013】
たとえば、特定のタスクは、ロボット112に環境内の異なる場所にナビゲートさせること、ロボット112に異なる物体の位置を特定させること、ロボット112に異なる物体を持ち上げさせるもしくは操作させる、または異なる物体を1つもしくは複数の指定された場所に移動させることなどを含むことができる。
【0014】
ポリシーニューラルネットワーク110への各入力は、エージェントすなわちロボットによって対話されている環境の状態を特徴づける観測を含むことができ、ポリシーニューラルネットワークの出力(「ポリシー出力」)は、観測に応じてエージェントによって行われる行動、たとえば、エージェントによって行われる可能な行動についての確率分布を定義する、または行動を確定的に定義する出力を、定義することができる。
【0015】
観測は、たとえば、エージェントが環境と対話するとき観測を取り込むための画像、物体位置データ、およびセンサーデータのうちの1つまたは複数、たとえば画像、距離、もしくは位置センサーからまたはアクチュエータからのセンサーデータを含んでもよい。たとえば、ロボットの場合、観測は、ロボットの現在の状態を特徴づけるデータ、たとえば、関節位置、関節速度、関節力、トルク、または加速度のうちの1つまたは複数を含んでもよく、たとえば、重力補償されたトルクフィードバック、およびロボットによってつかまれたアイテムの大域的または相対的姿勢を含んでもよい。言い換えれば、観測は、エージェントの1つまたは複数の部分の位置、線もしくは角測度、力、トルク、または加速度、および大域的または相対的姿勢のうちの1つまたは複数を同様に含んでもよい。観測は、1次元、2次元、または3次元で定義されてもよく、絶対観測および/または相対観測であってもよい。観測はまた、たとえば、モーター電流もしくは温度信号などの、検知された電子信号、および/または、たとえばカメラもしくはLIDARセンサーからの画像もしくはビデオデータ、たとえばエージェントのセンサーからのデータもしくは環境内のエージェントから離れた所にあるセンサーからのデータを含んでもよい。
【0016】
行動は、ロボットを制御するための制御入力、たとえばロボットの関節のトルク、またはより高レベルの制御コマンド、または自律走行もしくは半自律走行の陸、空、海用車両、たとえば、車両の制御面もしくは他の制御要素へのトルク、またはより高レベルの制御コマンドであってもよい。
【0017】
言い換えれば、行動は、たとえば、ロボットの1つもしくは複数の関節または別の機械的エージェントの部品についての位置、速度、または力/トルク/加速度データを含むことができる。行動データは、追加または代替として、モーター制御データなどの電子制御データ、またはより一般的には、その制御が環境の観測される状態に影響を与える、環境内の1つまたは複数の電子デバイスを制御するためのデータを含んでもよい。
【0018】
一例では、観測は各々、1つまたは複数のカメラ、たとえばロボットのカメラセンサー、ロボットの外にある、環境内の異なる場所に位置する1つまたは複数のカメラ、または両方によって取り込まれた環境の1つまたは複数の画像と、ロボットのより低次元の自己受容感覚の特徴(proprioceptive features)とを含む。
【0019】
特定の例として、ポリシーニューラルネットワーク110への各入力は、行動および観測を含むことができ、ポリシーニューラルネットワーク110の出力は、観測に応じて行動を行った結果としてロボットによって受け取られる予測されるリターンを表すQ値とすることができる。
【0020】
リターンは、エージェント112によって受け取られる報酬の累積測定、たとえば時間割引報酬和(time-discounted sum of rewards)を指す。一般的に、報酬は、スカラー数値であり、たとえば、タスクの完了に向かうエージェントの進行を特徴づける。
【0021】
特定の例として、報酬は、行動が行われた結果として、タスクが正常に完了されなければゼロであり、タスクが正常に完了されれば1である、疎な2値報酬とすることができる。
【0022】
別の特定の例として、報酬は、タスクを完了しようとするエピソードの間に受け取られる個々の観測の時点から、タスクの完了に向かうロボットの進行を測定する、密な報酬とすることができる。すなわち、環境が観測によって特徴づけられる状態であるとき、個々の観測は、タスクの完了に向かうロボットの進行を示す非ゼロの報酬値に関連付けることができる。
【0023】
システム100はしたがって、たとえばロボット112によって行われる行動として、最も高いQ値を有する行動を選択することによって、行動のセットにおいて行動に対するQ値に基づいてロボット112を制御することができる。
【0024】
別の特定の例として、ポリシーニューラルネットワーク110への各入力は、観測とすることができ、ポリシーニューラルネットワーク110の出力は、行動のセットについての確率分布とすることができ、各行動に対する確率は、観測に応じた行動の実行が予測されるリターンを最大にする可能性を表す。システム100はしたがって、たとえばロボット112によって行われる行動として、最も高い確率を有する行動を選択することによって、または確率分布から行動を標本化することによって、確率に基づいてロボット112を制御することができる。
【0025】
いくつかの場合には、エージェントのきめ細かい制御を可能にするために、システム100は、ロボットによって行われる行動の空間、すなわち可能な制御入力のセットを、連続的な空間として扱うことができる。そのような設定は、連続制御設定と呼ばれる。これらの場合、ポリシーニューラルネットワーク110の出力は、空間についての多変量確率分布のパラメータ、たとえば多変量正規分布の平均および共分散とすることができ、または行動を直接定義することができる。
【0026】
いくつかの場合には、たとえば、アクター-クリティック(actor-critic)型システムでは、訓練中にシステム100は、場合によってはポリシーニューラルネットワーク110といくつかのパラメータを共有し、前述のようなQ値、または分布クリティックの1つまたは複数のQ値分布のパラメータを、たとえば観測-行動入力に基づいて出力するクリティックニューラルネットワークを利用することがある。たとえば、システム100は、分布深層決定論的方策勾配法(distributional Deep Deterministic Policy Gradient )強化学習システム(arXiv: 1804.08617)を実装することがある。
【0027】
ポリシーニューラルネットワーク110は、ポリシーニューラルネットワーク110がポリシー出力を生成するために観測を処理することを可能にする任意の適切なアーキテクチャを有することができる。
【0028】
特定の例として、観測が高次元センサーデータ、たとえば画像またはレーザーデータを含むとき、ポリシーニューラルネットワーク110は、畳み込みニューラルネットワークとすることができる。別の例として、観測が比較的低次元入力、たとえばロボットの現在の状態を特徴づけるセンサーの読みしか含まないとき、ポリシーニューラルネットワークは、多層パーセプトロンとすることができる。また別の例として、観測が高次元センサーデータと低次元入力の両方を含むとき、ポリシーニューラルネットワーク110は、高次元データを符号化する畳み込みエンコーダ、低次元データを符号化する全結合エンコーダ、およびポリシー出力を生成するために符号化されたデータの組合わせ、たとえば連結(concatenation)で動作するポリシーサブネットワークを含むことができる。
【0029】
たとえば、特定の一実装形態では、ポリシーニューラルネットワーク110は、画像を自己受容感覚の特徴が添付されたキーポイント座標のセットに符号化する、その後に空間ソフトマックス層(spatial softmax layer)が続く、畳み込みニューラルネットワークを含む。ポリシーニューラルネットワーク110は次いで、得られた特徴を線形層で埋め込み、最終的な特徴を生成するために層正規化を適用することができる。ポリシーニューラルネットワーク110は次いで、確率分布または確率分布のパラメータを生成するために、回帰型ニューラルネットワークとして実装された、ポリシーヘッドを使用して最終的な特徴を処理する。回帰型ニューラルネットワークとしても実装されるクリティックニューラルネットワークが、Q値出力を生成するために最終的な特徴を処理することもできる。
【0030】
システム100がニューラルネットワーク110を訓練することを可能にするために、システム100は、ロボット経験データ120を保守する。一般的には、ロボット経験データ120は、環境114とのロボットインタラクションを特徴づけるデータである。
【0031】
ロボット経験データ120は、観測と、観測に応じてロボットによって行われる行動とを、順番に各々含む経験122を含む。
【0032】
このロボット経験データ120は、1つまたは複数のロボットが様々な異なるタスクを行う、または環境とランダムに対話する間に収集される大量の経験122を含むことができる。しかしながら、ロボット経験データ120は一般的に、強化学習を通してポリシーニューラルネットワーク110を訓練するために必要とされる、特定のタスクに対する報酬と関連付けられない。すなわち、特定のタスクに対するタスク固有の報酬は、特定のタスクを行うようにロボット112を制御するためポリシーニューラルネットワーク110を訓練するために必要とされるが、そのような報酬は、ロボット経験データ120では利用可能ではない。
【0033】
より詳細には、ロボット経験データ120は一般的に、ロボットによって行われている特定のタスクの少量のデモンストレーションデータを含むことになる。しかしながら、このデモンストレーションデータは、特定のタスクに対するタスク固有の報酬と関連付けられない。このデモンストレーションデータの生成について、
図2を参照して以下で説明する。
【0034】
さらに、ロボット経験データ120は一般的に、1つまたは複数のロボットが異なるタスクを行いながら、または環境とランダムに対話しながら収集された大量の経験データをさらに含む。特定の例として、ロボット経験データ120は、複数の異なるタスクを行いながら複数のロボットのインタラクションから収集されたデータを含むことができる。たとえば、システム100は、他のタスクを行うようにロボットを制御するための1つまたは複数の他のポリシーニューラルネットワークをあらかじめ訓練していてもよく、ロボット経験データ120は、事前の訓練の結果として収集された任意のデータを含むことができる。したがって、経験データ120中のデータの大部分は、一般的に、ロボットが特定のタスクとは異なるタスクを行っている(または環境とランダムに対話している)間に収集されたデータとなる。
【0035】
したがって、大量のデータ120がシステム100に利用可能であり得るが、システム100は、ポリシーニューラルネットワーク110を訓練するためにデータ120を直接使用することができない。
【0036】
システム100がデータ120を使用してポリシーニューラルネットワーク110を訓練することを可能にするために、システム100は、ロボット経験データ120中の経験122の第1のサブセットの各経験に、特定のタスクに対するそれぞれのタスク固有の報酬を割り当てるアノテーションデータ130を取得する。
【0037】
詳細には、システム100は、デモンストレーションデータに対する、すなわち特定のタスクを正常に行うロボットの1つまたは複数のエピソード、および場合によっては特定のタスクを正常に行わないロボットの1つまたは複数のエピソードに対する、アノテーションを取得する。さらに場合によっては、システムは、ロボットが特定のタスクを行おうとしなかった、たとえばロボットが異なるタスクを行っているもしくは環境とランダムに対話している経験に対するアノテーションデータを取得することもできる。
【0038】
特定の例として、システム100は、人間のユーザ170のセットとの対話を通してアノテーションデータを取得することができる。たとえば、ロボットがタスクを行っているエピソードにおける経験に対する報酬を取得するために、システム100は、人間のユーザ170にユーザデバイス上で提示できるユーザインターフェースを提供することができ、ユーザインターフェースは、人間のユーザが、ロボットがタスクを行っているエピソードを見ることと、ユーザインターフェースを通して、システム100に、ロボットが特定のタスクをいかに正常に行ったかという表示を与えることとを可能にする。システム100は、したがって、報酬を識別するタスク固有の報酬を生成することができる。
【0039】
アノテーションデータの取得について、
図2および
図3を参照して以下でより詳細に説明する。
【0040】
システム100は、アノテーションデータ130上で、入力観測を入力として受け取り、入力観測に割り当てられるべき、特定のタスクに対するタスク固有の報酬の予測である報酬予測を出力として生成する報酬モデル140を訓練する。いくつかの実装形態では、報酬モデルは、報酬ランキングモデル(またはより簡単にランキングモデル)である。すなわち、モデルは、アノテーションデータのタスク固有の報酬に回帰するのではなく、タスクエピソード(タスクを行うようロボットを制御するインスタンス)内の報酬をランク付けするように訓練される。
【0041】
したがって、訓練後、訓練された報酬モデル140は、観測に対してそれらの観測が、ロボットが特定のタスクを行っている間に生成されなかったとしても、タスク固有の報酬を予測することができる。
【0042】
報酬モデル140は、モデル140が報酬予測を生成するために観測を処理することを可能にする任意の適切なアーキテクチャを有することができる。詳細には、報酬モデル140は、ポリシーニューラルネットワーク110と同様のアーキテクチャを有することができるが、報酬モデル140が、多値になる可能性があるポリシー出力ではなく単一の値である出力を生成することを可能にする、異なる出力層を有する。
【0043】
システム100は、複数の経験の各々を、特定のタスクに対するタスク固有の報酬と関連付ける、特定のタスクに対するタスク固有の訓練データ150を生成する。
【0044】
詳細には、ロボット経験データ中の経験の第2のサブセット内の各経験に対して、システム100は、報酬予測を生成するために、訓練された報酬モデル140を使用して経験における観測を処理し、報酬予測を経験と関連付ける。
【0045】
システムは、報酬予測と関連付けられた経験の第2のサブセット、および場合によっては経験の第1のサブセットおよびアノテーションデータ130を通して取得される関連付けられた報酬を含む訓練データ150のセットを生成することができる。
【0046】
いくつかの場合には、経験の第2のサブセットは、第1のサブセットとは互いに素であり、すなわち、アノテーションデータ130によって報酬とともにアノテートされていなかった経験のみをデータ120に含む。いくつかの他の場合には、たとえば、訓練された報酬モデル140によって予測される報酬が、単一の人間のユーザによって与えられるアノテーションよりも特定のタスクに対してより正確な報酬である可能性があるので、第2のサブセットは、第1のサブセット内のデータの一部または全部を含む。
【0047】
このようにして訓練データ150を生成することによって、システム100は、ほんの少量のラベル付きの経験から特定のタスクに対する大量の訓練データを生成することができる。特定のタスクに固有の経験と、NESから引き出される他の経験の混合を第2のサブセットに含むと、訓練されたポリシーニューラルネットワークの最終的な性能を向上させることができる。
【0048】
システム100は、次いで、特定のタスクに対するタスク固有の訓練データ150上で、たとえばオフポリシー(off-policy)強化学習を使用して、ポリシーニューラルネットワーク110を訓練する(すなわち、経験は、ポリシーニューラルネットワークの現在のポリシーに別個のポリシーを使用して生成される)。実装形態ではこの訓練は、完全にオフポリシーで行われる。システムは、最少の追加のロボット環境インタラクションで、すなわちロボット経験データ120においてすでに反映されていたインタラクションに加えて最少の環境インタラクションで、大量のデータ上で、ポリシーニューラルネットワーク110を訓練することができる。
【0049】
ロボット経験データ120から始めて、すなわち特定のタスクに対するタスク固有の報酬がないデータから始めて、ポリシーニューラルネットワーク110を訓練するためのシステム100の動作については、
図2および
図3を参照して以下でより詳細に説明する。
【0050】
システム100がポリシーニューラルネットワーク110を訓練した後、システム100は、訓練されたポリシーニューラルネットワーク110を使用して、ロボット112が特定のタスクを行う間、ロボット112を制御することができる。
【0051】
代替または追加として、システムは、ロボットが特定のタスクを行う間、ロボットを制御する際に使用するために、訓練されたポリシーニューラルネットワーク110を指定するデータ、すなわちニューラルネットワークのパラメータの訓練された値を、提供することができる。
【0052】
これらの事例のいずれでも、システム100は次いで、特定のタスクを行うために、訓練されたポリシーニューラルネットワーク110を使用してロボットを制御した結果として生成される経験を取得し、この経験をロボット経験データ120に追加することができる。このようにして、経験は、別のタスクを行うようにロボットを制御するために別のニューラルネットワークを訓練する際に使用できるようになる。したがって、経験データ120のどれも、新しいタスクに対するタスク報酬と関連付けられる可能性がない、またはロボットが新しいタスクを行っている間に生成されなかったとしても、ロボット経験データ120中の経験の量は増え続け、新しいタスクを学習するためにシステム100によって再利用され続ける可能性がある。
【0053】
場合によっては、新しい経験データに対して、より多くのアノテーションデータを取得することができ、ポリシーニューラルネットワークをさらに訓練するために、訓練プロセスを反復することができる。
【0054】
図2は、ポリシーニューラルネットワーク110を訓練するフェーズの
図200である。
【0055】
図200では、訓練のフェーズは、ロボットの制御を必要とするフェーズ(図を「ロボット」と「クラウド」に分割する点線より上に示されているフェーズA、F、およびG)と、たとえばクラウドでまたはコンピュータの異なるシステム上で、ロボットの制御なしに行うことができるフェーズ(図を「ロボット」と「クラウド」に分割する点線より下に示されているフェーズB、C、D、およびE)とに分割される。
【0056】
訓練のフェーズはまた、ポリシーニューラルネットワーク110が訓練されている対象の特定のタスクに固有のフェーズ(「タスク非依存(Task Agnostic)」ボックスの外側の「タスク固有」エリアにあるフェーズC~GおよびフェーズAの一部)と、ポリシーニューラルネットワークが訓練されている対象のタスクに依存しない、すなわち特定のタスクの知識なしに行うことができるフェーズ(「タスク非依存」ボックスの内側のフェーズBおよび場合によってはフェーズAの一部)とに分割される。
【0057】
さらに、フェーズは、ユーザの関与を必要とするフェーズ(「人間オペレータなし」ボックスの外側の「人間オペレータ」エリアにあるフェーズAおよびC)と、ポリシーニューラルネットワークが訓練されている対象のタスクに依存しない、すなわち特定のタスクの知識なしに行うことができるフェーズ(「人間オペレータなし」ボックス内のフェーズBおよびD~G)とに分割される。
【0058】
フェーズAにおいて、システムは、特定のタスクを行っているロボットのデモンストレーションデータを収集する。
図2の例に示すように、デモンストレーションデータの収集は、「人間オペレータ」、たとえば特定のタスクを行うためにロボットを遠隔操作するユーザを含む。たとえば、システム100は、ネットワーク接続を通じて送信される、たとえばロボットの視点からの、またはロボットに対する第三者の視界からの、環境のビデオを見ながらネットワーク接続を通じてロボットに制御入力をサブミットすることによって、ユーザがロボットを制御することを可能にすることができ、デモンストレーションデータを生成するために、制御入力、すなわちビデオの異なるフレームに対応する行動、および観測を記録することができる。
【0059】
しかしながら、他の例では、システムは、より単純な制御ポリシー、たとえばハードコーディングされた、ルールベースのポリシーを使用してロボットを制御することによって、人間オペレータなしでデモンストレーションデータを収集することができる。
【0060】
さらに、フェーズAにおいてシステムは、場合によっては、環境とランダムに対話するまたは何らかの探索ポリシーに従って環境を探索するロボットのデータ、すなわちタスク非依存データを収集することもできる。
【0061】
フェーズBにおいて、システムは、ネバーエンディングストレージ(NeverEnding Storage:NES)に、すなわち、
図1の収集されたロボット経験データ120を記憶する1つまたは複数の物理または論理データストレージデバイスに、デモンストレーションデータを記憶する。
図1を参照して上記で説明したように、ネバーエンディングストレージに記憶されたロボット経験データは、異なるロボットが異なるタスク、すなわち特定のタスクとは異なるタスクを行う間に収集された経験を含んでもよい。ストレージは、1つのタスクのためにニューラルネットワークを訓練した結果として生成される経験が、説明する技法を使用して新しいタスクのためにニューラルネットワークを訓練する際に使用するように継続的に再利用され得るので、「ネバーエンディング」と呼ばれる。とはいえ実際には、ポリシーニューラルネットワークが十分に訓練されると、経験集めは中止される場合がある。
【0062】
フェーズCにおいて、システムは、たとえばユーザ(「人間オペレータ」)がアノテーション入力をシステムにサブミットすることによって生成されるアノテーションデータを取得する。アノテーションデータは、デモンストレーションデータ、場合によってはネバーエンディングストレージ内の他の経験データに対するタスク固有の報酬を定義するアノテーションを含む。アノテーションデータの取得について、
図3を参照して以下でより詳細に説明する。
【0063】
フェーズDにおいて、システムは、アノテーションデータ上で報酬モデルRを学習する、すなわち訓練する。上記で説明したように、報酬モデルは、受け取った観測を、特定のタスクに対する予測されるタスク固有の報酬にマップする。したがって、訓練後、報酬モデルは、ロボットが特定のタスクを行っていた間に収集されなかった経験に対してもタスク固有の報酬を予測するために使用することができる。
【0064】
報酬モデルの訓練について、
図3を参照して以下でより詳細に説明する。
【0065】
フェーズEにおいて、システムは、エージェントを制御するためのポリシー(「Q/pi」)を学習する。詳細には、上記で、および
図3を参照して以下でより詳細に説明するように、システムは、訓練された報酬モデルを使用してタスク固有の訓練データを生成し、次いでタスク固有の訓練データ上でポリシーニューラルネットワークを訓練する。システムはしたがって、訓練されたポリシーニューラルネットワークの出力によって定義されたポリシーを、エージェントを制御するための最終的なポリシーとして使用することができる。
【0066】
場合によっては、システムは、次いでフェーズFおよびGを行うことができる。
【0067】
フェーズFにおいて、システムは、特定のタスクのエピソードを実行する、すなわち、特定のタスクを行うために、学習されたポリシーを使用して、すなわち訓練されたポリシーニューラルネットワークを使用して、ロボットを制御する。たとえば、システムは、訓練されたポリシーニューラルネットワークを使用してロボットを制御し、すなわちロボットに訓練されたポリシーニューラルネットワークの出力によって定義される行動を行わせながら、指定された数のタスクエピソードをロボットに行わせることができる。
【0068】
次いで、フェーズGにおいて、システムは、たとえば、学習されたポリシーが運用設定(production setting)での展開に適した十分に高品質であるかどうかを決定するために、学習されたポリシー、すなわち訓練されたポリシーニューラルネットワークの性能を評価する。一例として、システムは、正常に行われるタスクエピソードの割合、タスクエピソードごとに獲得される平均報酬、またはタスクエピソードのいずれかがロボットへの望ましくない摩損もしくは環境内の他の物体への損傷を生じたかどうかに基づいて、ポリシーニューラルネットワークを評価することができる。
【0069】
システムは、次いで、フェーズFを行った結果として生成された経験データを、ネバーエンディングストレージに、すなわち新しいタスクのために新しいポリシーニューラルネットワークを訓練する際に使用するために、追加することができる。システムが、学習されたポリシーは、展開に適した十分に高品質であると決定する場合、システムは、ポリシーが展開された後に生成された経験を、システムがそのような経験にアクセスできる場合、ネバーエンディングストレージに追加することもできる。
【0070】
したがって、ネバーエンディングストレージは、より多くのポリシーニューラルネットワークがより多くの新しいタスクのために訓練されるにつれて、成長し続けることができる。
【0071】
図3は、ポリシーニューラルネットワークを訓練するための例示的なプロセス300の流れ図である。便宜上、プロセス300は、1つまたは複数の場所にある1つまたは複数のコンピュータのシステムによって行われるものとして説明する。たとえば、適切にプログラムされたニューラルネットワーク訓練システム、たとえば、
図1のニューラルネットワーク訓練システム100が、プロセス300を行うことができる。
【0072】
システムは、環境とのロボットインタラクションを特徴づけるロボット経験データを保守する(ステップ302)。詳細には、データは経験を含み、経験は各々、順番に、観測と、観測に応じてそれぞれのロボットによって行われる行動とを含む。
【0073】
システムは、ロボット経験データ中の経験の第1のサブセット内の各経験に、特定のタスクに対するそれぞれのタスク固有の報酬を割り当てるアノテーションデータを取得する(ステップ304)。
【0074】
一般的に、ロボット経験データ中の経験の第1のサブセットは、ロボットが特定のタスクの1つまたは複数のエピソードを行うとき収集されたデモンストレーション経験を含む。
【0075】
たとえば、経験の第1のサブセットは、ロボットがユーザによって制御されていた、たとえば、1つまたは複数のエピソードを行いながら、遠隔操作されていた間に収集された経験を含むことができる。代替または追加として、経験の第1のサブセットは、ロボットが異なるポリシー、たとえばハードコーディングされたルールベースのポリシーまたはより単純な機械学習ポリシーを使用する異なるコンピュータシステムによって制御されていた間に収集された経験を含むことができる。
【0076】
いくつかの実装形態では、経験の第1のサブセットは、ロボットが特定のタスクとは異なるタスクを行う、または環境とランダムに対話するとき収集される経験を含むこともできる。すなわち、システムは、ロボットが異なるタスクを行っていた間に収集された経験に、特定のタスクに対するタスク固有の報酬を割り当てるアノテーションデータを取得することができる。これは、アノテーションデータが、環境のすべてのあり得る状態の状態空間をより良く網羅することを確実にすることができる。
【0077】
アノテーションデータを取得するために、システムは、第1のサブセット内の経験の各々に対して報酬を定義する1人または複数のユーザから、アノテーション入力を受け取ることができる。
【0078】
所与のアノテーション入力を取得するために、システムは、ユーザデバイス上に提示されたユーザインターフェースでユーザに提示するために、経験データの第1のサブセット内の経験の1つまたは複数の表現を提供し、次いでユーザから、1つまたは複数の経験に対して報酬を定義する、ユーザデバイスを介してサブミットされた入力を取得することができる。
【0079】
特定の例として、報酬が疎な報酬であるとき、システムは、タスクのエピソードを行っているロボットのビデオを提示のために提供することができる。ユーザは次いで、タスクが正常に行われたか否かを示す入力をサブミットすることができ、システムは、タスクが正常に行われた場合はエピソードの最後の経験に対して1の報酬値に、タスクが正常に行われなかった場合はエピソードの最後の経験に対して0の報酬値に、入力をマップすることができる。
【0080】
別の特定の例として、報酬が密な報酬であるとき、システムは、タスクのエピソードを行っているロボットのビデオを提示のために提供することができ、ユーザは、ビデオの個々のフレーム、すなわちエピソード内の個々の経験を、フレームの時点から、タスクの完了に向かうエージェントの進行の測定と関連付ける入力をサブミットすることができる。システムは、次いでこれらの入力を密な報酬値にマップすることができる。
【0081】
たとえば、システムは、インターフェースが、現在のカーソル位置に対応するフレームを示しながら、ユーザが時間に応じた特定のタスクの達成に向かう進行を示す曲線を引くことを可能にするユーザインターフェースを提示することができる。システムは次いで、ユーザによって引かれた曲線を、エピソード内の経験に対するタスク固有の報酬を取得するために適切にスケーリングされた数値の報酬値の曲線にマップすることができる。ユーザがビデオを観ながら曲線を引くことによってアノテーション入力をサブミットすることを可能にすると、ユーザがビデオの各フレームを報酬値とともに個々にラベル付けする必要なしに、ロボットの進行を正確に捉えることを可能にすることができる。
【0082】
図4は、ユーザがタスクエピソードをアノテートするのに使う例示的なユーザインターフェース400を示す。
【0083】
図4の例に見られるように、ユーザは、たとえば、入力デバイスを使用して、またはタッチ入力をサブミットすることによって、エピソードのビデオを観ながら、エピソード内の所与の時間にタスクを完了する際のロボットの進行を示す報酬曲線410を引いている。
図4の例では、インターフェース400の上部の点で描いた部分430は、ロボットがタスクを正常に行ったことを示す。
図4に示すように、点は、報酬曲線410に沿った所与のポイントにおいてユーザに示されていたビデオフレームを示す。たとえば、点420は、ユーザがフレーム440を観ながら、ロボットがタスクの完了から極めて離れていたことを示したエピソード内の時間にあり、すなわち曲線上のポイントは、成功領域430から極めて離れている。点420に対応するその時間にユーザに示されるフレーム440は、ロボットが環境内の物体のいずれともまだ対話していないことを示す。したがって、報酬曲線410を引くためにインターフェース400と対話することによって、ユーザは、観測に数値の報酬値を明示的に割り当てることなく、エピソード内の観測のすべてを報酬とともに容易にアノテートすることができる。
【0084】
図3の説明に戻ると、システムは、アノテーションデータ上で、入力観測を入力として受け取り、入力観測に割り当てられるべき特定のタスクに対するタスク固有の報酬の予測である報酬予測を出力として生成する報酬モデルを訓練する(ステップ306)。
【0085】
一般的には、システムは、タスク固有の報酬に直接回帰するようにモデルを訓練するのではなく、エピソード内手法(intra-episode approach)を使用して、報酬モデルを訓練する。これは、複数のユーザがアノテーションデータをサブミットしているとき、有益であり得る。(特定のタスクの完了に向かう値に関して)エピソード内の経験の相対的品質についてアノテータ間で高度な合意があり得ながら、アノテータはしばしば、タスク固有の報酬の全体的なスケールで一致しないからである。
【0086】
特定の例として、同じエピソード内の2つの経験を仮定すると、システムは、2つの経験に対する報酬予測が2つの条件を満たすように報酬モデルを訓練する。
【0087】
第1に、第1の経験がタスク固有の報酬に従って成功である場合、報酬モデルによって生成される推定報酬を与えると成功であり、第1の経験がタスク固有の報酬に従って不成功である場合、報酬モデルによって生成される推定報酬を与えると不成功である。システムは、経験に対するタスク固有の報酬がアノテーション成功しきい値を上回るとき、タスク固有の報酬に従って経験は成功であると決定し、経験に対するタスク固有の報酬がアノテーション失敗しきい値を下回るとき、タスク固有の報酬に従って経験は不成功であると決定することができる。同様に、システムは、経験に対する報酬予測が予測成功しきい値を上回るとき、報酬予測に従って経験は成功であると決定し、経験に対する報酬予測が予測失敗しきい値を下回るとき、報酬予測に従って経験は不成功であると決定することができる。しきい値は、報酬予測モデルの訓練のハイパーパラメータである。
【0088】
第2に、第1の経験に対するタスク固有の報酬が、第2の経験に対するタスク固有の報酬よりも第1のしきい値だけ高い場合、第1の経験に対する予測される報酬は、第2の経験に対する予測される報酬よりも第2のしきい値だけ高いはずであり、ここで第1および第2のしきい値は、報酬予測モデルの訓練のハイパーパラメータである。
【0089】
詳細には、これらの条件を満たすために、システムは、同じタスクエピソードからの異なる経験間の報酬予測の差を測定する、いわゆるヒンジ損失関数を最適化するように報酬モデルを訓練する。言い換えれば、報酬モデルは、同じタスクエピソード内の報酬をランク付けする(報酬)ランキングモデルとして見ることができる。
【0090】
より詳細には、ヒンジ損失関数は、2つの成分の和または重み付き和とすることができる。
【0091】
第1の成分は、第2の条件を満たし、同じエピソードからの経験の所与のペアに対して、第1の経験に対するタスク固有の報酬が、第2の経験に対するタスク固有の報酬よりも第1のしきい値だけ高くない場合は、ゼロに等しく、第1の経験に対するタスク固有の報酬が、第2の経験に対するタスク固有の報酬よりも第1のしきい値だけ高い場合は、(i)ゼロまたは(ii)第1の経験に対する予測された報酬と第2の経験に対する予測された報酬との差プラス第2のしきい値のうちの最大値に等しいものとすることができる報酬予測を生成するようにモデルを訓練する。
【0092】
第2の成分は、第1の条件を満たし、2つの項を含むことができる報酬予測を生成するようにモデルを訓練する。
【0093】
第1の項は、所与の経験に対して、経験がタスク固有の報酬に従って成功しない場合は、ゼロに等しく、経験がタスク固有の報酬に従って成功する場合は、(i)ゼロまたは(ii)予測成功しきい値と経験に対する予測される報酬との差のうちの最大値に等しいものとすることができる。
【0094】
第2の項は、所与の経験に対して、経験がタスク固有の報酬に従って不成功ではない場合、ゼロに等しく、経験がタスク固有の報酬に従って不成功である場合、(i)ゼロまたは(ii)経験に対する予測される報酬と予測失敗しきい値との差のうちの最大値に等しいものとすることができる。
【0095】
システムは、教師あり学習を使用してこの損失関数を最小化するように報酬モデルを訓練することができる。
【0096】
システムは、訓練された報酬モデルを使用して、複数の経験の各々を特定のタスクに対するタスク固有の報酬と関連付ける、特定のタスクに対するタスク固有の訓練データを生成する(ステップ308)。
【0097】
詳細には、システムは、ロボット経験データから経験の第2のサブセットを選択し、第2のサブセット中の各経験に対して、報酬予測を生成し、報酬予測を経験と関連付けるように、訓練された報酬モデルを使用して経験における観測を処理することができる。これにより、タスク固有の報酬、すなわち訓練された報酬モデルによって生成された報酬予測と関連付けられる、ラベル付きの経験が得られる。したがってシステムは、数百時間の有用な訓練データを生成するために、たとえば、人間のデモンストレーションから、比較的少量のアノテーションデータを使用することができる。
【0098】
システムは次いで、特定のタスクに対するタスク固有の訓練データ上でポリシーニューラルネットワークを訓練する(ステップ310)。
【0099】
たとえば、システムは、オフポリシー強化学習技法を使用して、特定のタスクについてポリシーニューラルネットワークを訓練することができる。技法は「オフポリシー」である、すなわちニューラルネットワークが訓練されている対象の経験が、ニューラルネットワークの現在のバージョンを使用して生成されることを必要としないので、システムは、特定のタスクを行うためにニューラルネットワークを使用してロボットを制御する必要なしに、タスク固有の訓練データ上でニューラルネットワークを訓練することができる。
【0100】
システムは、ポリシーニューラルネットワークを訓練するために任意の適切なオフポリシー強化学習技法を使用することができる。特定の例として、システムは、バッチ強化学習技法を使用することができ、たとえば、ポリシーニューラルネットワークを更新するために分布方策勾配(distributional policy gradient)に依拠するもの、またはポリシーニューラルネットワークを更新するために非分布決定論的方策勾配(non-distributional deterministic policy gradient)に依拠するものを使用することができる。バッチ強化学習については、Sascha Lange、Thomas Gabel、およびMartin Riedmiller、Batch reinforcement learning、Reinforcement learning、45~73頁、Springer、2012により詳細に説明されている。分布方策勾配および非分布決定論的方策勾配については、Gabriel Barth-Maron、Matthew W. Hoffman、David Budden、Will Dabney、Dan Horgan、Dhruva TB、Alistair Muldal、Nicolas Heess、およびTimothy Lillicrap、Distributed distributional deterministic policy gradients、International Conference on Learning Representations、2018により詳細に説明されている。
【0101】
本明細書は、システムおよびコンピュータプログラムコンポーネントに関連して「構成される」という用語を使用する。1つまたは複数のコンピュータのシステムが特定の動作または行動を行うように構成されるとは、動作時にシステムにその動作または行動を行わせるソフトウェア、ファームウェア、ハードウェア、またはそれらの組合せをシステムがインストールしていることを意味する。1つまたは複数のコンピュータプログラムが特定の動作または行動を行うように構成されるとは、1つまたは複数のプログラムが、データ処理装置によって実行されると、装置に動作または行動を行わせる命令を含むことを意味する。
【0102】
本明細書で説明する主題および機能的動作の実施形態は、デジタル電子回路において、有形に具現化されたコンピュータソフトウェアもしくはファームウェアにおいて、本明細書で開示する構造およびそれらの構造的に同等のものを含む、コンピュータハードウェアにおいて、またはそれらの1つもしくは複数の組合せにおいて、実装されることがある。本明細書で説明する主題の実装形態は、1つまたは複数のコンピュータプログラムとして実装されることがあり、すなわち、データ処理装置によって実行されるように、またはデータ処理装置の動作を制御するために、有形の非一時的記憶媒体上に符号化されたコンピュータプログラム命令の1つまたは複数のモジュールとして実装されることがある。コンピュータ記憶媒体は、機械可読ストレージデバイス、機械可読記憶基板、ランダムもしくはシリアルアクセスメモリデバイス、またはそれらのうちの1つもしくは複数の組合せであることがある。代替的にまたは追加として、プログラム命令は、人為的に生成された伝搬信号、たとえば、データ処理装置による実行のために好適な受信装置に送信するための情報を符号化するために生成される機械生成の電気、光、または電磁信号上で符号化されることがある。
【0103】
「データ処理装置」という用語は、データ処理ハードウェアを指し、例としてプログラマブルプロセッサ、コンピュータ、または複数のプロセッサもしくはコンピュータを含む、データを処理するためのあらゆる種類の装置、デバイス、および機械を包含する。装置は、専用の論理回路、たとえばFPGA(フィールドプログラマブルゲートアレイ)またはASIC(特定用途向け集積回路)であることもあり、またはこれらをさらに含むことがある。装置は、場合によってはハードウェアに加えて、コンピュータプログラムのための実行環境を作成するコード、たとえば、プロセッサファームウェアを構成するコード、プロトコルスタック、データベース管理システム、オペレーティングシステム、またはそれらのうちの1つもしくは複数の組合せを含むことができる。
【0104】
プログラム、ソフトウェア、ソフトウェアアプリケーション、アプリ、モジュール、ソフトウェアモジュール、スクリプト、またはコードと呼ばれる、または説明される場合もあるコンピュータプログラムは、コンパイラ型もしくはインタープリタ型言語、または宣言型もしくは手続き型言語を含む、プログラム言語の任意の形態で書くことができ、またコンピュータプログラムは、スタンドアロンプログラムとして、またはモジュール、コンポーネント、サブルーチン、もしくはコンピューティング環境で使用するのに適した他のユニットとしてなど、任意の形態で展開されることがある。プログラムは、ファイルシステムのファイルに対応してもよいが、対応する必要はない。プログラムは、他のプログラムまたはデータ、たとえば、マークアップ言語ドキュメントに記憶された1つまたは複数のスクリプトを入れたファイルの一部分に、当該プログラムに専用の単一ファイルに、または複数の協調ファイル、たとえば、1つもしくは複数のモジュール、サブプログラム、もしくはコードの一部を記憶するファイルに、記憶することができる。コンピュータプログラムは、1つのコンピュータ上で、または1つのサイトに位置するもしくは複数のサイトにわたって分散し、データ通信ネットワークによって相互接続された複数のコンピュータ上で実行されるように展開することができる。
【0105】
本明細書では、「データベース」という用語は、データのどのような収集も指すように広く使用され、データは、特定の方法で構造化される必要はなく、またはまったく構造化される必要はなく、1つまたは複数の場所のストレージデバイス上に記憶され得る。したがって、たとえば索引データベースは、データの複数の収集を含むことができ、その各々は、異なるように編成され、アクセスされてもよい。
【0106】
同様に、本明細書では、「エンジン」という用語は、1つまたは複数の特定の機能を行うようにプログラムされたソフトウェアベースのシステム、サブシステム、またはプロセスを指すように広く使用される。一般的にエンジンは、1つまたは複数の場所の1つまたは複数のコンピュータ上にインストールされた、1つまたは複数のソフトウェアモジュールまたはコンポーネントとして実装されることになる。ある場合には、1つまたは複数のコンピュータが、特定のエンジンに専用となり、他の場合には、複数のエンジンが、同じ1つまたは複数のコンピュータ上にインストールされ、動作していることがある。
【0107】
本明細書で説明するプロセスおよび論理フローは、1つまたは複数のプログラマブルコンピュータが、入力データ上で動作し、出力を生成することによって機能を行う1つまたは複数のコンピュータプログラムを実行することによって行われ得る。プロセスおよび論理フローは、専用論理回路、たとえば、FPGAもしくはASICによって、または専用論理回路および1つもしくは複数のプログラムされたコンピュータの組合せによって行われることもある。
【0108】
コンピュータプログラムの実行に好適なコンピュータは、汎用または専用マイクロプロセッサ、または両方、または他の種類の中央処理ユニットに基づくことがある。一般的に中央処理ユニットは、読取り専用メモリ、またはランダムアクセスメモリ、または両方から命令およびデータを受け取ることになる。コンピュータの必須要素は、命令を行うまたは実行するための中央処理ユニット、ならびに命令およびデータを記憶するための1つまたは複数のメモリデバイスである。中央処理ユニットおよびメモリは、専用論理回路によって補われる、または専用論理回路に組み込まれることがある。一般に、コンピュータはまた、データを記憶するための1つまたは複数の大容量記憶デバイス、たとえば、磁気ディスク、光磁気ディスク、もしくは光ディスクを含むか、または、それらからデータを受信することもしくはそれらにデータを転送すること、もしくは両方を行うために動作可能に結合される。しかしながら、コンピュータはそのようなデバイスを有する必要はない。さらに、コンピュータが別のデバイス、たとえば、ほんのいくつかの例を挙げれば、携帯電話、携帯情報端末(PDA)、モバイルオーディオもしくはビデオプレーヤ、ゲーム機、全地球測位システム(GPS)レシーバ、またはポータブルストレージデバイス、たとえば、ユニバーサルシリアルバス(USB)フラッシュドライブに埋め込まれることがある。
【0109】
コンピュータプログラム命令およびデータを記憶するのに好適なコンピュータ可読媒体は、あらゆる形態の不揮発性メモリ、媒体、およびメモリデバイスを含み、例として、半導体メモリデバイス、たとえばEPROM、EEPROM、およびフラッシュメモリデバイス、磁気ディスク、たとえば内蔵ハードディスクまたはリムーバブルディスク、光磁気ディスク、ならびにCD ROMおよびDVDROMディスクを含む。
【0110】
ユーザとの対話を提供するために、本明細書で説明した主題の実施形態は、ユーザに情報を表示するためのディスプレイデバイス、たとえば、CRT(陰極線管)またはLCD(液晶ディスプレイ)モニタ、およびそれによりユーザが入力をコンピュータに提供することができるキーボードおよびポインティングデバイス、たとえば、マウスまたはトラックボールを有するコンピュータ上で実装され得る。ユーザとの対話を可能にするために他の種類のデバイスも使用されることがあり、たとえばユーザに提供されるフィードバックは、任意の形態の感覚フィードバック、たとえば視覚フィードバック、聴覚フィードバック、または触覚フィードバックの任意の形態とすることができ、ユーザからの入力は、音響入力、音声入力、または触覚入力など、任意の形態で受け取ることができる。加えて、コンピュータが、ユーザによって使用されるデバイスに文書を送信し、デバイスから文書を受け取ることによってユーザと対話することができ、たとえば、ウェブブラウザから受け取られた要求に応答してユーザのデバイス上のウェブブラウザにウェブページを送信することによってユーザと対話することができる。また、コンピュータが、パーソナルデバイス、たとえば、メッセージングアプリケーションを実行しているスマートフォンに、テキストメッセージまたは他の形態のメッセージを送信し、返信としてユーザから応答メッセージを受け取ることによってユーザと対話することができる。
【0111】
機械学習モデルを実装するためのデータ処理装置は、たとえば、機械学習訓練または生成の共通の、計算負荷の高い(compute-intensive)部分、すなわち推論、ワークロードを処理するための専用ハードウェアアクセラレータユニットを含むこともできる。
【0112】
機械学習モデルは、機械学習フレームワーク、たとえば、TensorFlowフレームワーク、Microsoft Cognitive Toolkitフレームワーク、Apache Singaフレームワーク、またはApache MXNetフレームワークを使用して実装し、展開することができる。
【0113】
本明細書で説明する主題の実施形態は、たとえばデータサーバとして、バックエンド構成要素を含むコンピューティングシステム、またはミドルウェア構成要素、たとえばアプリケーションサーバを含むコンピューティングシステム、またはフロントエンド構成要素、たとえばグラフィカルユーザインタフェース、ウェブブラウザ、もしくはそれによりユーザが本明細書で説明する主題の実装形態と対話することができるアプリを有するクライアントコンピュータを含むコンピューティングシステム、または1つもしくは複数のそのようなバックエンド構成要素、ミドルウェア構成要素、もしくはフロントエンド構成要素の任意の組合せを含むコンピューティングシステムにおいて実装され得る。システムの構成要素は、デジタルデータ通信の任意の形態または媒体、たとえば、通信ネットワークによって相互接続され得る。通信ネットワークの例には、ローカルエリアネットワーク(LAN)、およびワイドエリアネットワーク(WAN)、たとえばインターネットが含まれる。
【0114】
コンピューティングシステムは、クライアントと、サーバとを含むことができる。クライアントおよびサーバは、一般的に互いから遠くにあり、典型的には通信ネットワークを介して対話する。クライアントとサーバの関係は、それぞれのコンピュータで実行している、互いにクライアント-サーバ関係を有するコンピュータプログラムによって生じる。いくつかの実施形態では、サーバがユーザデバイスに、たとえば、クライアントの役割を果たすデバイスと対話するユーザにデータを表示し、ユーザからユーザ入力を受け取るために、データ、たとえばHTMLページを伝送する。ユーザデバイスで生成されたデータ、たとえば、ユーザインタラクションの結果が、デバイスからサーバで受け取られることがある。
【0115】
本明細書は、多くの特定の実装形態の詳細を含むが、これらは任意の発明の範囲への、または特許請求される可能性のあるものの範囲への制限として解釈されるべきではなく、むしろ特定の発明の特定の実施形態に固有である場合がある特徴の説明として解釈されるべきである。本明細書で別個の実施形態の文脈で説明されるいくつかの特徴は、単一の実施形態において組み合わせて実装されることもある。逆に、単一の実施形態の文脈で説明される様々な特徴は、複数の実施形態において別々に、または任意の適切な部分的組合せで実装されることもある。さらに、特徴は、ある組合せで機能するものとして上記で説明され、さらに当初はそのように特許請求される場合があるが、特許請求される組合せからの1つまたは複数の特徴は、場合によってはその組合せから削除されることがあり、特許請求される組合せは、部分的組合せ、または部分的組合せの変形を対象とすることがある。
【0116】
同様に、動作は特定の順序で図面に示され、特許請求の範囲に記載されるが、これは、望ましい結果を得るために、このような動作が図示された特定の順序でもしくは逐次的な順序で行われること、または例示したすべての動作が行われることを必要とするものと理解されるべきではない。いくつかの環境では、マルチタスクおよび並列処理が有利である場合がある。さらに、上記で説明した実施形態における様々なシステムモジュールおよび構成要素の分離は、すべての実施形態においてそのような分離を必要とすると理解されるべきではなく、記載するプログラム構成要素およびシステムは、一般的に単一のソフトウェア製品に統合される、または複数のソフトウェア製品にパッケージ化されることがあると理解されるべきである。
【0117】
主題の特定の実施形態について説明した。他の実施形態は、以下の特許請求の範囲内にある。たとえば、特許請求の範囲に記載する行動は、異なる順序で行われ、やはり望ましい結果を実現する可能性がある。一例として、添付図に示すプロセスは、望ましい結果を達成するために、示した特定の順序、または逐次的な順序を必ずしも必要としない。場合によっては、マルチタスクおよび並列処理が有利である可能性がある。
【符号の説明】
【0118】
100 システム
110 ポリシーニューラルネットワーク
112 ロボット
114 環境
120 ロボット経験データ
122 経験
130 アノテーションデータ
140 報酬モデル
150 訓練データ
170 人間のユーザ
【手続補正書】
【提出日】2022-05-10
【手続補正1】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
コンピュータ実装方法であって、
環境とのロボットインタラクションを特徴づけるロボット経験データを保守するステップであって、前記ロボット経験データが、観測および前記観測に応じてそれぞれのロボットによって行われる行動を各々含む複数の経験を含む、保守するステップと、
前記ロボット経験データ中の前記経験の第1のサブセット内の各経験に、特定のタスクに対するそれぞれのタスク固有の報酬を割り当てるアノテーションデータを取得するステップと、
前記アノテーションデータ上で、入力観測を入力として受け取り、前記入力観測に割り当てられるべき、前記特定のタスクに対するタスク固有の報酬の予測である報酬予測を出力として生成する、報酬モデルを訓練するステップと、
複数の経験の各々を前記特定のタスクに対するタスク固有の報酬と関連付ける、前記特定のタスクに対するタスク固有の訓練データを生成するステップであって、前記ロボット経験データ中の前記経験の第2のサブセット内の各経験に対して、
報酬予測を生成するために、前記訓練された報酬モデルを使用して前記経験における前記観測を処理することと、
前記報酬予測を前記経験と関連付けることとを含む、生成するステップと、
前記特定のタスクに対する前記タスク固有の訓練データ上でポリシーニューラルネットワークを訓練するステップであって、前記ポリシーニューラルネットワークが、観測を含むネットワーク入力を受け取り、ロボットが前記特定のタスクを行うための制御ポリシーを定義するポリシー出力を生成するように構成される、訓練するステップと
を含む、方法。
【請求項2】
前記訓練されたポリシーニューラルネットワークを使用して、ロボットが前記特定のタスクを行う間、前記ロボットを制御するステップ
をさらに含む、請求項1に記載の方法。
【請求項3】
ロボットが前記特定のタスクを行う間、前記ロボットを制御する際に使用する前記訓練されたポリシーニューラルネットワークを指定するデータを提供するステップ
をさらに含む、請求項1に記載の方法。
【請求項4】
前記特定のタスクを行うために前記ポリシーニューラルネットワークを使用して前記ロボットを制御した結果として生成される経験を取得するステップと、
前記経験を前記ロボット経験データに追加するステップと
をさらに含む、請求項2または3のいずれか一項に記載の方法。
【請求項5】
前記ロボット経験データが、複数の異なるタスクを行いながら複数のロボットのインタラクションから収集されたデータを含む、請求項1~4のいずれか一項に記載の方法。
【請求項6】
前記ロボット経験データ中の前記経験が、前記複数の異なるタスクのいずれに対する報酬とも関連付けられない、
請求項5に記載の方法。
【請求項7】
経験データの前記第2のサブセットが、前記特定のタスクとは異なる1つまたは複数のタスクをロボットが行った結果として収集された、請求項5または6のいずれか一項に記載の方法。
【請求項8】
前記ポリシーニューラルネットワークを訓練するステップが、オフポリシー強化学習技法を使用して前記ポリシーニューラルネットワークを訓練するステップを含む、請求項1~7のいずれか一項に記載の方法。
【請求項9】
経験データの前記第1のサブセットが、ロボットが前記特定のタスクの1つまたは複数のエピソードを行うとき、収集されたデモンストレーション経験を含む、請求項1~8のいずれか一項に記載の方法。
【請求項10】
前記ロボットが、前記特定のタスクの前記1つまたは複数のエピソードを行いながら、ユーザによって制御される、請求項9に記載の方法。
【請求項11】
アノテーションデータを取得するステップが、
ユーザへの提示のために、経験データの前記第1のサブセット内の前記経験の1つまたは複数の表現を提供するステップと、
前記ユーザから、前記1つまたは複数の経験に対する前記報酬を定義する入力を取得するステップと
を含む、請求項1~10のいずれか一項に記載の方法。
【請求項12】
前記報酬モデルを訓練するステップが、同じタスクエピソードからの異なる経験間の報酬予測の差を測定するヒンジ損失関数を最適化するように前記報酬モデルを訓練するステップを含む、請求項1~11のいずれか一項に記載の方法。
【請求項13】
1つまたは複数のコンピュータと、前記1つまたは複数のコンピュータによって実行されると、前記1つまたは複数のコンピュータに、請求項1~12のいずれか一項に記載のそれぞれの方
法を実行させるように動作可能な命令を記憶する1つまたは複数のストレージデバイスとを含む、システム。
【請求項14】
1つまたは複数のコンピュータによって実行されると、前記1つまたは複数のコンピュータに、請求項1から13のいずれか一項に記載のそれぞれの方
法を実行させる命令で符号化されたコンピュータ記憶媒体。
【国際調査報告】