(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-09-06
(45)【発行日】2024-09-17
(54)【発明の名称】報酬予測モデルを使用したロボット制御のためのオフライン学習
(51)【国際特許分類】
G06N 3/092 20230101AFI20240909BHJP
G06N 3/008 20230101ALI20240909BHJP
G06N 3/088 20230101ALI20240909BHJP
G06N 3/09 20230101ALI20240909BHJP
G06N 20/00 20190101ALI20240909BHJP
【FI】
G06N3/092
G06N3/008
G06N3/088
G06N3/09
G06N20/00
(21)【出願番号】P 2023506025
(86)(22)【出願日】2021-07-27
(86)【国際出願番号】 EP2021071079
(87)【国際公開番号】W WO2022023386
(87)【国際公開日】2022-02-03
【審査請求日】2023-03-27
(32)【優先日】2020-07-28
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】517030789
【氏名又は名称】ディープマインド テクノロジーズ リミテッド
(74)【代理人】
【識別番号】100108453
【氏名又は名称】村山 靖彦
(74)【代理人】
【識別番号】100110364
【氏名又は名称】実広 信哉
(74)【代理人】
【識別番号】100133400
【氏名又は名称】阿部 達彦
(72)【発明者】
【氏名】コンラッド・ゾルナ
(72)【発明者】
【氏名】スコット・エリソン・リード
【審査官】多賀 実
(56)【参考文献】
【文献】Serkan Cabi et al.,"Scaling data-driven robotics with reward sketching and batch reinforcement learning",arXiv.org [online],arXiv:1909.12200v3,Cornell University,2020年06月,[令和6年2月21日検索],インターネット:<URL: https://arxiv.org/abs/1909.12200v3>
(58)【調査した分野】(Int.Cl.,DB名)
G06N 3/00-99/00
B25J 1/00-21/02
G05B 13/02
(57)【特許請求の範囲】
【請求項1】
環境とのロボットインタラクションを特徴づけるロボット経験データを取得するステップであって、前記ロボット経験データが、(i)前記環境の状態を特徴づける観測と、(ii)前記観測に応じてそれぞれのロボットによって行われる行為とを各々含む複数の経験を含み、前記経験が、
熟練者エージェントによって行われている特定のタスクのエピソードからの熟練者の経験と、
ラベルのない経験と
を含む、取得するステップと、
前記ロボット経験データの第1のサブセットについて、入力観測を含む報酬入力を受け取り、前記入力観測に割り当てられるべき、前記特定のタスクに対するタスク固有の報酬の予測である報酬予測を出力として生成する報酬予測モデルを訓練するステップであって、前記報酬予測モデルを訓練するステップが、
熟練者の経験からの観測に対して、前記環境が前記観測によって特徴づけられる前記状態となった後に前記特定のタスクが正常に完了されたことを示す第1の報酬値を割り当てるよう前記報酬予測モデルを促す第1の項を含み、
ラベルのない経験からの観測に対して、前記環境が前記観測によって特徴づけられる前記状態となった後に前記特定のタスクが正常に完了されなかったことを示す第2の報酬値を割り当てるよう前記報酬予測モデルを促す第2の項を含む、
目的関数を最適化するステップを含む、訓練するステップと、
前記訓練された報酬予測モデルを使用して、前記ロボット経験データ中の経験を処理して、前記処理された経験の各々に対するそれぞれの報酬予測を生成するステップと、
(i)前記処理された経験、および(ii)前記処理された経験に対する前記それぞれの報酬予測についてポリシーニューラルネットワークを訓練するステップであって、前記ポリシーニューラルネットワークが、観測を含むネットワーク入力を受け取ることと、前記特定のタスクを行うロボットに対する制御ポリシーを定義するポリシー出力を生成することとを行うように構成される、訓練するステップと
を含む、方法。
【請求項2】
ロボットが前記特定のタスクを行う間、前記訓練されたポリシーニューラルネットワークを使用して前記ロボットを制御するステップ
をさらに含む、請求項1に記載の方法。
【請求項3】
ロボットが前記特定のタスクを行う間、前記ロボットを制御する際に使用する前記訓練されたポリシーニューラルネットワークを指定するデータを提供するステップ
をさらに含む、請求項1に記載の方法。
【請求項4】
前記第1のサブセットが、前記熟練者の経験と、前記ラベルのない経験の適切なサブセットとを含む、請求項1から3のいずれか一項に記載の方法。
【請求項5】
前記目的関数が、熟練者の経験からの観測に、前記第2の報酬値を割り当てるよう前記報酬予測モデルを促す第3の項を含む、請求項1から4のいずれか一項に記載の方法。
【請求項6】
前記第1および第2の項が、前記目的関数において前記第3の項とは異なる符号を有する、請求項5に記載の方法。
【請求項7】
前記目的関数が、前記特定のタスクのエピソードの第1の所定数の観測が熟練者エージェントによって行われることに基づいて、熟練者の経験をラベルのない経験と正確に区別するために前記報酬予測モデルに罰則を適用する第4の項を含む、請求項1から6のいずれか一項に記載の方法。
【請求項8】
前記ポリシーニューラルネットワークを訓練するステップが、オフライン強化学習技法を使用して、(i)前記経験、および(ii)前記経験に対する前記それぞれの報酬予測について、前記ポリシーニューラルネットワークを訓練するステップを含む、請求項1から7のいずれか一項に記載の方法。
【請求項9】
前記オフライン強化学習技法が、オフラインアクター-クリティック技法である、請求
項8に記載の方法。
【請求項10】
前記オフライン強化学習技法が、クリティック正則化回帰(CRR)である、請求項8に記載の方法。
【請求項11】
前記報酬予測モデルを訓練するステップが、前記報酬予測モデルの前記訓練に使用される前記ロボット経験データ中の前記経験にデータ拡張を適用するステップを含む、請求項1から10のいずれか一項に記載の方法。
【請求項12】
前記ロボット経験データの前記第1のサブセットの経験の少なくとも一部が、実世界の環境に関係する、請求項1から11のいずれか一項に記載の方法。
【請求項13】
前記ロボットを制御するステップが、実世界の環境を検知している1つまたは複数のセンサーから観測を取得し、前記観測を前記訓練されたポリシーニューラルネットワークに提供し、前記訓練されたポリシーニューラルネットワークの出力を使用して、前記特定のタスクを行うために前記ロボットを制御するための行為を選択するステップを含む、請求項2に従属すると
きの請求項4、5、7、8、11及び12と、請求項2に従属するときの請求項5を引用する請求項6と、請求項2に従属するときの請求項8を引用する請求項9及び10と、のいずれか一項に記載の方法。
【請求項14】
1つまたは複数のコンピュータと、前記1つまたは複数のコンピュータによって実行されると、前記1つまたは複数のコンピュータに
、請求項
1から13のいずれか一項に記載のそれぞれの方法の動作を行わせるように動作可能な命令を記憶する1つまたは複数のストレージデバイスとを含む、システム。
【請求項15】
1つまたは複数のコンピュータによって実行されると、前記1つまたは複数のコンピュータに請求項1から13のいずれかに記載のそれぞれの方法の動作を行わせる命令で符号化されたコンピュータ記憶媒体。
【発明の詳細な説明】
【技術分野】
【0001】
関連出願の相互参照
本出願は、2020年7月28日に出願され、その全体が参照により本明細書に組み込まれる、米国仮特許出願第63/057,850号の出願日の利益を主張する。
【0002】
本明細書は、ニューラルネットワークを使用して、ロボットを制御することに関する。
【背景技術】
【0003】
ニューラルネットワークは、受け取った入力に対する出力を予測するために非線形ユニットの1つまたは複数の層を用いる機械学習モデルである。いくつかのニューラルネットワークは、出力層に加えて1つまたは複数の隠れ層を含む。各隠れ層の出力は、ネットワークの次の層、すなわち次の隠れ層または出力層への入力として使用される。ネットワークの各層が、重みのそれぞれのセットの現在の値に従って、受け取った入力から出力を生成する。
【先行技術文献】
【非特許文献】
【0004】
【文献】Sascha Lange、Thomas Gabel、およびMartin Riedmiller、Batch reinforcement learning、Reinforcement learning、45~72頁、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
【文献】Konrad Zolna、Scott Reed、Alexander Novikov、Sergio Gomez Colmenarej、David Budden、Serkan Cabi、Misha Denil、Nando de Freitas、およびZiyu WangのTask-relevant adversarial imitation learning, Supplementary Materials B、CoRL、2020
【文献】Ziyu Wang、Alexander Novikov、Konrad Zolna、Jost Tobias Springenberg、Scott Reed、Bobak Shahriari、Noah Siegel、Josh Merel、Caglar Gulcehre、Nicolas HeessらのCritic regularized regression
【発明の概要】
【課題を解決するための手段】
【0005】
本明細書は、1つまたは複数の場所にある1つまたは複数のコンピュータにコンピュータプログラムとして実装されるシステムについて説明し、このシステムは、ロボットに特定のタスクを行わせるため、ロボットを制御するために、すなわちロボットが環境と対話しながらロボットによって行われる行動を選択するために使用されるポリシーニューラルネットワークを訓練する。
【0006】
本明細書で説明する主題の特定の実施形態は、以下の利点のうちの1つまたは複数を実現するために実装することができる。
【0007】
ロボット操作タスクには、疎なまたは入手不可能な報酬信号、および複雑な目視観測がある場合がある。時には既存の行動クローニング(behavior cloning:BC)エージェントが、ピクセルから、報酬なしで、熟練者のデモンストレーションについての教師あり学習によってこれらのタスクを解決できる。しかしながら、教師ありポリシーは、熟練者の軌道に回帰するにすぎないので、他のエージェントおよび他のタスクからの潜在的に大量のデータを活用しない。本明細書は、デモンストレーションと、大量のラベルのない軌道の両方について、以下のようにポリシーを訓練するための技法について説明する。(1)熟練者およびラベルのない観測を対比することによって報酬関数を学習する、(2)学習した報酬関数とともにデータの一部または全部をアノテートする、(3)アノテートされたデータについてオフライン強化学習エージェントを訓練する。いくつかの連続制御タスクにわたって、説明する技法は、同等数のデモンストレーションおよびタスク報酬なしで、一貫してBCより優れている。さらに、説明する技法の性能は、ラベルのない軌道の数とともに桁違いに高まる。加えて、いくつかのタスクでは説明する技法は、デモンストレーションのわずか10%で、BCを凌ぐ。さらに、説明する技法は、低品質のラベルのない軌跡にロバストである。
【0008】
本明細書で説明する一例では、方法は、環境とのロボット対話を特徴づけるロボット経験データを取得するステップを含む。ロボット経験データは、(i)環境の状態を特徴づける観測、および(ii)観測に応じてそれぞれのロボットによって行われる行為を含む、複数の経験を含んでもよい。経験は、熟練者エージェントによって行われている特定のタスクのエピソードからの熟練者の経験と、ラベルのない経験とを含む。ラベルのない経験の少なくとも一部は、特定のタスクに関係していない、または特定のタスクに関係していると識別できない経験を含む場合がある。この方法は、ロボット経験データの第1のサブセットについて、入力観測を含む報酬入力を受け取り、入力観測に割り当てられるべき特定のタスクに対するタスク固有の報酬の予測である報酬予測を出力として生成する報酬予測モデルを訓練するステップを含む。報酬予測モデルを訓練するステップは、熟練者の経験からの観測に、環境が観測によって特徴づけられる状態になった後に、特定のタスクが正常に完了されたことを示す第1の報酬値を割り当てるよう報酬予測モデルを促す第1の項と、ラベルのない経験からの観測に、環境が観測によって特徴づけられる状態になった後に、特定のタスクが正常に完了されなかったことを示す第2の報酬値を割り当てるよう報酬予測モデルを促す第2の項とを含む目的関数を最適化するステップを含む。ロボット経験データ中の経験は、訓練された報酬予測モデルを使用して処理されて、処理された経験の各々に対するそれぞれの報酬予測を生成し、ポリシーニューラルネットワークが、(i)処理された経験、および(ii)処理された経験に対するそれぞれの報酬予測について訓練され、ポリシーニューラルネットワークは、観測を含むネットワーク入力を受け取ることと、特定のタスクを行うロボットに対する制御ポリシーを定義するポリシー出力を生成することとを行うように構成される。
【0009】
ロボットは、特定のタスクを行う間、訓練されたポリシーニューラルネットワークを使用して制御されてもよい。たとえば、観測が、実世界の環境を検知する1つまたは複数のセンサーから取得されてもよく、観測は、訓練されたポリシーニューラルネットワークへの入力として提供されてもよい。入力は、出力を生成するためにポリシーニューラルネットワークによって使用されてもよく、訓練されたポリシーニューラルネットワークの出力は、特定のタスクを行うためにロボットを制御するための行為を選択するために使用されてもよい。
【0010】
訓練されたポリシーニューラルネットワークを指定するデータが、ロボットが特定のタスクを行う間、ロボットの制御に使用するために提供されてもよい。
【0011】
第1のサブセットは、熟練者の経験と、ラベルのない経験の適切なサブセットとを含んでもよい。
【0012】
目的関数は、熟練者の経験からの観測に、第2の報酬値を割り当てるよう報酬予測モデルを促す第3の項を含んでもよい。第1および第2の項は、目的関数において第3の項とは異なる符号を有してもよい。
【0013】
目的関数は、特定のタスクのエピソードの第1の所定数の観測が熟練者エージェントによって行われることに基づいて、熟練者の経験をラベルのない経験と正確に区別するために報酬予測モデルに罰則を適用する第4の項を(第3の項に加えて、またはこれに代えて)含む。
【0014】
ポリシーニューラルネットワークを訓練するステップは、オフライン強化学習技法を使用して、(i)経験、および(ii)経験に対するそれぞれの報酬予測について、ポリシーニューラルネットワークを訓練するステップを含んでもよい。オフライン強化学習技法は、オフラインアクター-クリティック技法であってもよい。オフライン強化学習技法は、クリティック正則化回帰(Critic-Regularized Regression:CRR)である。
【0015】
報酬予測モデルを訓練するステップは、報酬予測モデルの訓練に使用されるロボット経験データ中の経験にデータ拡張(data augmentation)を適用するステップを含んでもよい。
【0016】
ロボット経験データの第1のサブセットの経験の少なくとも一部は、実世界の環境に関係する。
【0017】
本明細書で説明する別の例では、システムが、1つまたは複数のコンピュータと、1つまたは複数のコンピュータによって実行されると、1つまたは複数のコンピュータに本明細書で説明する方法のいずれかの動作を行わせるように動作可能な命令を記憶する1つまたは複数のストレージデバイスとを備えるシステムである。
【0018】
コンピュータ記憶媒体が与えられてもよく、コンピュータ記憶媒体は、1つまたは複数のコンピュータによって実行されると、1つまたは複数のコンピュータに本明細書で説明する方法のいずれかの動作を行わせる命令で符号化されてもよい。
【0019】
本明細書の主題の1つまたは複数の実施形態の詳細について、添付の図面および以下の説明で述べる。説明、図面、および特許請求の範囲から、主題の他の特徴、態様、および利点が明らかとなるであろう。
【図面の簡単な説明】
【0020】
【
図1】例示的なニューラルネットワーク訓練システムを示す図である。
【
図2】ポリシーニューラルネットワークを訓練するための例示的なプロセスの流れ図である。
【
図3】従来の訓練プロセスに対する、説明する訓練プロセスの性能の比較を示す図である。
【発明を実施するための形態】
【0021】
□様々な図面における同様の参照番号および名称は、同様の要素を示す
【0022】
図1は、例示的なニューラルネットワーク訓練システム100を示す。システム100は、以下で説明するシステム、構成要素、および技法を実装することができる、1つまたは複数の場所の1つまたは複数のコンピュータ上に、コンピュータプログラムとして実装されるシステムの一例である。
【0023】
システム100は、ロボット112に特定のタスクを実行させるため、ロボット112を制御するために、すなわちロボット112が環境114と対話している間にロボットによって行われる行動を選択するために使用されるポリシーニューラルネットワーク110を訓練する。
【0024】
たとえば、特定のタスクは、ロボット112に環境内の異なる場所にナビゲートさせること、ロボット112に異なる物体の位置を特定させること、ロボット112に異なる物体を持ち上げさせること、または異なる物体を1つもしくは複数の指定された場所に移動させることなどを含むことができる。
【0025】
本明細書におけるロボットを制御することへの言及は、どのようなタイプの物理的(すなわち実世界の)エージェントの制御も含むと理解されるべきである。エージェントは、機械的エージェント、たとえば自律走行車両、産業設備用の制御システム、たとえば、データセンターまたは電力網、個々のアクチュエータまたは複数の分散アクチュエータであってもよい。物理的エージェントは、電気であってもよい。たとえば、本明細書で説明する技法は、システムの1つまたは複数の構成要素内の電圧または電流の生成を制御するために使用することができ、たとえば、LEDもしくはX線などのランプを制御すること、電磁場の生成を制御すること、または他の電気的構成要素のどんな制御にも使用することができる。たとえば、センサーは、人間のまたは動物の患者など、X線機械内の対象の状態を監視してもよく、ポリシーニューラルネットワーク110は、X線機械内のX線の生成を制御してもよい。
【0026】
本明細書で説明する技法は、ソフトウェアエージェントを制御するためのポリシーニューラルネットワーク、たとえば仮想環境においてシミュレートされたロボットまたは車両を制御するポリシーニューラルネットワーク、またはユーザインターフェースを制御するポリシーニューラルネットワークを訓練するために使用することもできる。
【0027】
ソフトウェアエージェントが、実世界のセンサーからのセンサーデータなどの、実世界の入力に基づいて、または仮想入力、たとえば仮想環境からの入力を取得する仮想センサーからの出力に基づいて制御されてもよい。同様に、実世界のエージェントが、実世界の入力または仮想入力に基づいて制御されてもよい。仮想環境が、実世界の入力に基づいて構築されてもよい。たとえば、実世界の環境に関係するセンサーデータが取得されてもよく、そのセンサーデータは、仮想環境を作成するために使用されてもよい。
【0028】
ポリシーニューラルネットワーク110への各入力は、エージェントによって対話されている環境の状態を特徴づける観測を含むことができ、ポリシーニューラルネットワークの出力(「ポリシー出力」)は、観測に応じてエージェントによって行われる行動、たとえば、エージェントによって行われる可能な行動についての確率分布を定義する出力を定義することができる。
【0029】
観測は、たとえば、エージェントが環境と対話するとき観測を取り込むための画像、物体位置データ、およびセンサーデータのうちの1つまたは複数、たとえば画像、距離、もしくは位置センサーからまたはアクチュエータからのセンサーデータを含んでもよい。たとえば、ロボットの場合、観測は、ロボットの現在の状態を特徴づけるデータ、たとえば、関節位置、関節速度、関節力、トルク、または加速度のうちの1つまたは複数を含んでもよく、たとえば、重力補償されたトルクフィードバック、およびロボットによってつかまれたアイテムの大域的または相対的姿勢を含んでもよい。言い換えれば、観測は、エージェントの1つまたは複数の部分の位置、線もしくは角測度、力、トルク、または加速度、および大域的または相対的姿勢のうちの1つまたは複数を同様に含んでもよい。観測は、1次元、2次元、または3次元で定義されてもよく、絶対観測および/または相対観測であってもよい。観測はまた、たとえば、モーター電流もしくは温度信号などの、検知された電子信号、および/または、たとえばカメラもしくはLIDARセンサーからの画像もしくはビデオデータ、たとえばエージェントのセンサーからのデータもしくは環境内のエージェントから離れた所にあるセンサーからのデータを含んでもよい。
【0030】
行動は、ロボットを制御するための制御入力、たとえばロボットの関節のトルク、またはより高レベルの制御コマンド、または自律走行もしくは半自律走行の陸、空、海用車両、たとえば、車両の制御面もしくは他の制御要素へのトルク、またはより高レベルの制御コマンドであってもよい。
【0031】
言い換えれば、行動は、たとえば、ロボットの1つもしくは複数の関節または別の機械的エージェントの部品についての位置、速度、または力/トルク/加速度データを含むことができる。行動データは、追加または代替として、モーター制御データなどの電子制御データ、またはより一般的には、その制御が環境の観測される状態に影響を与える、環境内の1つまたは複数の電子デバイスを制御するためのデータを含んでもよい。
【0032】
一例では、観測は各々、1つまたは複数のカメラ、たとえばロボットのカメラセンサー、ロボットの外にある、環境内の異なる場所に位置する1つまたは複数のカメラ、または両方によって取り込まれた環境の1つまたは複数の画像と、ロボットのより低次元の自己受容感覚の特徴(proprioceptive features)とを含む。
【0033】
特定の例として、ポリシーニューラルネットワーク110への各入力は、行動および観測を含むことができ、ポリシーニューラルネットワーク110の出力は、観測に応じて行動を行った結果としてロボットによって受け取られる予測されるリターンを表すQ値とすることができる。
【0034】
リターンは、エージェント112によって受け取られる報酬の累積測定、たとえば時間割引報酬和(time-discounted sum of rewards)を指す。一般的に、報酬は、スカラー数値であり、たとえば、タスクの完了に向かうエージェントの進行を特徴づける。
【0035】
特定の例として、報酬は、行動が行われた結果として、タスクが正常に完了されなければゼロであり、タスクが正常に完了されれば1である、疎な2値報酬とすることができる。
【0036】
別の特定の例として、報酬は、タスクを完了しようとするエピソードの間に受け取られる個々の観測の時点から、タスクの完了に向かうロボットの進行を測定する、密な報酬とすることができる。すなわち、環境が観測によって特徴づけられる状態であるとき、個々の観測は、タスクの完了に向かうロボットの進行を示す非ゼロの報酬値に関連付けることができる。
【0037】
システム100はしたがって、たとえばロボット112によって行われる行動として、最も高いQ値を有する行動を選択することによって、行動のセットにおいて行動に対するQ値に基づいてロボット112を制御することができる。
【0038】
別の特定の例として、ポリシーニューラルネットワーク110への各入力は、観測とすることができ、ポリシーニューラルネットワーク110の出力は、行動のセットについての確率分布とすることができ、各行動に対する確率は、観測に応じた行動の実行が予測されるリターンを最大にする可能性を表す。システム100はしたがって、たとえばロボット112によって行われる行動として、最も高い確率を有する行動を選択することによって、または確率分布から行動を標本化することによって、確率に基づいてロボット112を制御することができる。
【0039】
いくつかの場合には、エージェントのきめ細かい制御を可能にするために、システム100は、ロボットによって行われる行動の空間、すなわち可能な制御入力のセットを、連続的な空間として扱うことができる。そのような設定は、連続制御設定と呼ばれる。これらの場合、ポリシーニューラルネットワーク110の出力は、空間についての多変量確率分布のパラメータ、たとえば多変量正規分布の平均および共分散とすることができる。
【0040】
ポリシーニューラルネットワーク110は、ポリシーニューラルネットワーク110がポリシー出力を生成するために観測を処理することを可能にする任意の適切なアーキテクチャを有することができる。
【0041】
特定の例として、観測が高次元センサーデータ、たとえば画像またはレーザーデータを含むとき、ポリシーニューラルネットワーク110は、畳み込みニューラルネットワークとすることができる。別の例として、観測が比較的低次元入力、たとえばロボットの現在の状態を特徴づけるセンサーの読みしか含まないとき、ポリシーニューラルネットワーク110は、多層パーセプトロンとすることができる。また別の例として、観測が高次元センサーデータと低次元入力の両方を含むとき、ポリシーニューラルネットワーク110は、高次元データを符号化する畳み込みエンコーダ、低次元データを符号化する全結合エンコーダ、およびポリシー出力を生成するために符号化されたデータの組合せ、たとえば連結(concatenation)で動作するポリシーサブネットワークを含むことができる。
【0042】
システム100がニューラルネットワーク110を訓練することを可能にするために、システム100は、ロボット経験データ120を取得する。一般的には、ロボット経験データ120は、環境114とのロボットインタラクションを特徴づけるデータである。
【0043】
場合によっては、ロボット経験データ120は、実世界のロボットの実世界の環境との実世界の対話を特徴づける。
【0044】
いくつかの他の場合では、ロボット経験データ120は、ロボット112のコンピュータシミュレーションであるシミュレートされたバージョンの、環境114のコンピュータシミュレーションであるシミュレートされた環境とのインタラクションを特徴づける。シミュレートされた経験データを使用して訓練した後、ポリシーニューラルネットワーク110は、次いで実世界の環境114において実世界のロボット112を制御するために使用され得る。シミュレートされた環境での訓練により、ニューラルネットワーク110は、実世界の環境での訓練に関連するリスク、たとえば下手な選択の行為を行うことによるロボットへの損傷または実世界の環境との繰り返されるインタラクションによるロボットへの全体的な摩損を回避しながら、大量のシミュレートされた訓練データから学習することが可能になり得る。
【0045】
ロボット経験データ120は、観測と、観測に応じてロボットによって行われる行動とを、順番に各々含む経験122を含む。
【0046】
このロボット経験データ120は、1つまたは複数のロボットが様々な異なるタスクを行う、または環境とランダムに対話する間に収集される大量の経験122を含むことができる。しかしながら、ロボット経験データ120は一般的に、強化学習を通してポリシーニューラルネットワーク110を訓練するために必要とされる、特定のタスクに対する報酬と関連付けられない。すなわち、特定のタスクに対するタスク固有の報酬は、特定のタスクを行うようにロボット112を制御するためポリシーニューラルネットワーク110を訓練するために必要とされるが、そのような報酬は、ロボット経験データ120では利用可能ではない。
【0047】
より詳細には、ロボット経験データ120は一般に、熟練者エージェント、たとえば、ユーザによってまたはすでに学習されたポリシーによって制御されるロボットが、特定のタスクを正常に行う間に収集された少量の熟練者の経験データ124を含むことになる。
【0048】
さらに、ロボット経験データ120は一般に、大量のラベルのない経験126をさらに含むことになる。ラベルのない経験は、それについてシステム100が特定のタスクに対する報酬を入手できず、経験が特定のタスクを正常に行っている間に収集されたかどうかの表示がない経験である。
【0049】
たとえば、ラベルのない経験は、1つまたは複数のロボットが異なるタスクを行っている、または環境とランダムに相互に作用している間に収集された経験を含むことがある。特定の例として、ロボット経験データ120は、複数の異なるタスクを行いながら複数のロボットのインタラクションから収集されたデータを含むことができる。たとえば、システム100は、他のタスクを行うようにロボットを制御するための1つまたは複数の他のポリシーニューラルネットワークをあらかじめ訓練していてもよく、ロボット経験データ120は、事前の訓練の結果として収集された任意のデータを含むことができる。
【0050】
別の例として、ラベルのない経験は、1つまたは複数のロボットが特定のタスクを行おうと試みている間に収集された経験を含むことがあるが、特定のタスクが、所与のラベルのない経験に対する対応する軌跡の間に正常に行われたかどうかの表示がない。
【0051】
したがって、大量のデータ120がシステム100に利用可能である可能性があるが、経験データ120内の経験は特定のタスクに対する報酬と関連付けられないので、システム100は、ポリシーニューラルネットワーク110を訓練するためにデータ120を直接使用することができない。
【0052】
システム100がデータ120を使用してポリシーニューラルネットワーク110を訓練することを可能にするために、システムは、入力観測を入力として受け取り、入力観測に割り当てられるべき、特定のタスクに対するタスク固有の報酬の予測である報酬予測を出力として生成する報酬予測モデル140を訓練するために経験データ120を使用する。
【0053】
したがって、訓練後、訓練された報酬予測モデル140は、観測に対してそれらの観測が、ロボットが特定のタスクを行っている間に生成されなかったとしても、タスク固有の報酬を予測することができる。
【0054】
報酬予測モデル140は、モデル140が報酬予測を生成するために観測を処理することを可能にする任意の適切なアーキテクチャを有することができる。詳細には、報酬予測モデル140は、ポリシーニューラルネットワーク110と同様のアーキテクチャを有することができるが、報酬予測モデル140が、多値になる可能性があるポリシー出力ではなく単一の値である出力を生成することを可能にする、異なる出力層を有する。
【0055】
システム100は、経験データ120内の複数の経験122の各々を、特定のタスクに対するタスク固有の報酬と関連付ける、特定のタスクに対するタスク固有の訓練データ150を生成するために報酬予測モデル140を使用する。
【0056】
詳細には、ロボット経験データ120中の経験122の第2のサブセット内の各経験に対して、システム100は、報酬予測を生成するために、報酬予測モデル140を使用して経験における観測を処理し、報酬予測を経験と関連付ける。
【0057】
このようにして訓練データ150を生成することによって、システム100は、ほんの少量の熟練者の経験から特定のタスクに対する大量の訓練データを生成することができる。
【0058】
システム100は、次いで、特定のタスクに対するタスク固有の訓練データ150上で、たとえばオフライン強化学習を使用して、ポリシーニューラルネットワーク110を訓練する。訓練が完全にオフラインで行われる場合、システムは、追加のロボット環境インタラクションなしで、すなわちロボット経験データ120においてすでに反映されていたインタラクションに加えて環境インタラクションなしで、大量のデータ上で、ポリシーニューラルネットワーク110を訓練することができる。このさらなるロボット環境インタラクションを回避して、ロボットへのさらなる摩損を必要とせず、かつ安全ではない、ロボット、環境、または両方への損傷を生じる可能性があるさらなる行為が行われることなく、ロボットが実世界の環境と相互に作用するように訓練されることを可能にし得る。
【0059】
いくつかの実装形態では、システム100は、まず報酬予測モデル140を訓練して完了し、次いで、報酬予測モデル140が訓練されて完了した後、報酬予測モデル140を使用してポリシーニューラルネットワーク110を訓練する。
【0060】
いくつかの他の実装形態では、システム100は、複数の訓練の繰返しの各々で、報酬予測モデル140とポリシーニューラルネットワーク110の両方を繰り返して更新する。すなわち、システム100は、ポリシーニューラルネットワーク110の訓練中に、複数の訓練の繰返しを行い、各繰返し時に、報酬予測モデル140を更新し、次いで更新された報酬予測モデル140を使用して、タスク固有の訓練データ150を生成し、繰返し時にポリシーニューラルネットワーク110を更新する。
【0061】
ロボット経験データ120から始めて、ポリシーニューラルネットワーク110を訓練するためのシステム100の動作については、
図2を参照して以下でより詳細に説明する。
【0062】
システム100がポリシーニューラルネットワーク110を訓練した後、システム100は、訓練されたポリシーニューラルネットワーク110を使用して、ロボット112が特定のタスクを行う間、ロボット112を制御することができる。
【0063】
代替または追加として、システムは、ロボットが特定のタスクを行う間、ロボットを制御する際に使用するために、訓練されたポリシーニューラルネットワーク110を指定するデータ、すなわちニューラルネットワークのパラメータの訓練された値を、提供することができる。たとえば、システムは、訓練されたポリシーニューラルネットワークを指定するデータ、たとえばポリシーニューラルネットワーク110のパラメータの訓練されたパラメータ値を、データ通信ネットワークを通じてまたはワイヤード接続を通じて他のシステムに提供して、ロボットが特定のタスクを行う間に他のシステムがロボットを制御することを可能にすることができる。
【0064】
これらの事例のいずれでも、システム100は次いで、特定のタスクを行うために、訓練されたポリシーニューラルネットワーク110を使用してロボットを制御した結果として生成される経験を取得し、この経験をロボット経験データ120に追加することができる。このようにして、経験は、別のタスクを行うようにロボットを制御するために別のニューラルネットワークを訓練する際に使用できるようになる。したがって、経験データ120のどれも、新しいタスクに対するタスク報酬と関連付けられない、またはロボットが新しいタスクを行っている間に生成されなかったとしても、ロボット経験データ120中の経験の量は増え続け、新しいタスクを学習するためにシステム100によって再利用され続ける可能性がある。
【0065】
図2は、報酬予測モデルを使用してポリシーニューラルネットワークを訓練するための例示的なプロセス200の流れ図である。便宜上、プロセス200は、1つまたは複数の場所にある1つまたは複数のコンピュータのシステムによって行われるものとして説明する。たとえば、適切にプログラムされたニューラルネットワーク訓練システム、たとえば、
図1のニューラルネットワーク訓練システム100が、プロセス200を行うことができる。
【0066】
システムは、環境とのロボットインタラクションを特徴づけるロボット経験データを取得する(ステップ202)。
【0067】
詳細には、データは経験を含み、経験は各々、順番に、観測と、観測に応じてそれぞれのロボットによって行われる行動とを含む。
【0068】
より詳細には、ロボット経験データは、熟練者エージェントによって行われている特定のタスクのエピソードからの熟練者の経験と、特定のタスクが正常に行われる間に経験が収集されたかどうかの表示と関連付けられない、ラベルのない経験とを含む。
【0069】
システムは、ロボット経験データのサブセットについて、報酬予測モデルを訓練する(ステップ204)。報酬予測モデルは、入力観測を含む報酬入力を受け取り、入力観測に割り当てられるべき特定のタスクに対するタスク固有の報酬の予測である報酬予測、すなわち特定のタスクに対するタスク固有の報酬値の予測を表す数値を、出力として生成する。
【0070】
一般に、報酬予測モデルを訓練するために使用されるロボット経験データのサブセットは、ステップ202で取得されるロボット経験データ中の熟練者の経験の全部と、ステップ202で取得されるラベルのない経験の適切なサブセットとを含む。
【0071】
より詳細には、システムは、目的関数を最適化するために、報酬予測モデルを訓練する。
【0072】
目的関数は、熟練者の経験からの観測に、第1の報酬値、たとえば環境が観測によって特徴づけられる状態となった後に特定のタスクが正常に完了されたことを示す1の値または別の正の値を割り当てるよう報酬予測モデルを促す第1の項を含む。
【0073】
目的関数はまた、ラベルのない経験からの観測に、第2の報酬値、たとえば環境が観測によって特徴づけられる状態となった後に特定のタスクが正常に完了されなかったことを示す第2の報酬値、たとえば負の1の値または0の値、を割り当てるよう報酬予測モデルを促す第2の項を含む。
【0074】
たとえば、目的関数は、以下を満たす損失関数Lであることがある。
【0075】
【0076】
ただし、Eは期待値演算子であり、stは、パラメータΨを有する報酬予測モデルRΨを訓練するために使用される熟練者の経験DEのセットからサンプリングされた経験からの観測であり、RΨ(st)は、観測stを含む入力を処理することによって報酬予測モデルによって生成された報酬予測であり、s'tは、報酬予測モデルRΨを訓練するために使用されるラベルのない経験DUのセットからサンプリングされた経験からの観測であり、RΨ(s't)は、観測s'tを含む入力を処理することによって報酬予測モデルによって生成された報酬予測である。
【0077】
上記の損失関数は、観測が受け取られた後に、報酬予測モデルがすべての熟練者の経験からのすべての観測に1を割り当て、ラベルのない経験からのすべての観測に0を割り当てる、すなわち、ラベルのない経験からのすべての観測に、タスクが正常に行われないことを示す報酬値を割り当てるとき、最小化される。しかしながら、システムは、ラベルのない経験についてはラベルにアクセスできないが、ラベルのない経験データは、不成功の経験に加えてタスクが正常に行われた軌跡中に生じた成功の経験を含む可能性がある。言い換えれば、ラベルのない経験データは、「偽陰性」、すなわち損失関数がそれらに0の報酬値を割り当てるよう報酬予測モデルを促したとしても、1の報酬値を割り当てられるべきであるラベルのない経験を含む可能性がある。この偽陰性の存在は、場合によっては、ポリシーニューラルネットワークを訓練する際に、訓練された報酬予測モデルの有用性を低下させることがある。
【0078】
これをなくすために、いくつかの実装形態では、目的関数は、第1および第2の項に加えて、熟練者の経験からの観測に、第2の報酬値を割り当てるよう報酬予測モデルを促す第3の項もまた含む。これらの実装形態では、第3の項は、第1および第2の項とは反対の符号を有することができ、第1の項は、第2の項に関連してスケーリングされる、すなわち、損失関数において第2の項よりも低い重みを有することができる。このようにして目的関数を修正することによって、すなわち第1の項をスケーリングし、第2の項に関連して同じくスケーリングされるが、第2の項とは反対の符号を有する第3の項を追加することによって、システムは、ラベルのない経験データにおける偽陰性の存在を効果的に考慮することができる。特定の例として、これらの実装形態では、目的関数は、以下を満たす損失関数Lであることがある。
【0079】
【0080】
ただし、ηは、0と1の間の正の値に設定されたハイパーパラメータである。
【0081】
いくつかの実装形態では、第3の項の代わりに、またはこれに加えて、報酬関数は、エピソードのまさに開始時の早期の観測が熟練者の経験に由来するか、それともラベルのない経験に由来するかを正確に区別するために報酬予測モデルに罰則を適用する第4の項を含む。本明細書で使用する「エピソード」は、ロボットが対応する初期環境状態から始まるいくつかのタスクを行おうと試みた時系列で配置された一連の経験、またはロボットが対応する初期環境状態から始まる環境とランダムに相互に作用する時系列で配置された一連の経験である。
【0082】
すなわち、インタラクションのエピソードにおける早期の観測は一般に、特定のタスクに固有の行動を反映せず、すなわち、インタラクションのエピソードの開始時には、エージェントが後にエピソードにおいて特定のタスクを正常に行うかどうかを示す意味を持つ行為を、ロボットはまだ行っていないからである。言い換えれば、エージェントがランダムに相互に作用しているか、別のタスクを行っているか、または特定のタスクを行っている場合、同じ早期の観測が受け取られる可能性がある。
【0083】
特定の例として、システムは、所与のエピソードにおいて、最初のn個の観測、たとえば最初の5個、10個、または20個の観測を早期の観測として識別することができる。次いで、システムは、1つのラベルのないエピソードからの早期の観測、および1つの熟練者エピソードからの早期の観測をサンプリングし、ラベルのないエピソードからの早期の観測について報酬モデルによって生成される報酬予測の平均(「ラベルのない平均」)、および熟練者エピソードからの早期の観測について報酬モデルによって生成される報酬予測の平均(「熟練者平均」)を計算することができる。
【0084】
熟練者の平均が、ラベルのない平均ほど高くない場合、システムは、第4の項を0に設定する。
【0085】
熟練者の平均が、ラベルのない平均よりも高い場合、システムは第4の項を、熟練者エピソードおよびラベルのないエピソードからの早期の観測について計算された上記の損失、たとえば、第1および第2の項のみを有する損失、または第1、第2、および第3の項を有する損失の負数に等しく設定する。
【0086】
したがって、システムは、報酬モデルが早期の観測に過剰適合している場合、すなわち、熟練者の平均がラベルのない平均よりも高いことによって、第1の制御に早期の観測を使用し、そうである場合、システムは、報酬モデルの訓練を正規化する逆損失(reversed loss)を計算するために早期の観測を再び使用する。
【0087】
システムは、適切なニューラルネットワーク訓練技法、たとえば任意の勾配ベースの技法、たとえば確立勾配降下、Adamオプティマイザを使用する技法、rmspropオプティマイザなどを使用して、報酬予測目的関数を最適化するために、報酬予測モデルを訓練することができる。
【0088】
いくつかの実装形態では、経験のサブセットについて報酬予測モデルを訓練するより前にシステムは、報酬予測モデルの訓練に使用されるロボット経験データ中の経験にデータ拡張を適用する。いくつかの場合には、熟練者の経験のサイズがごく限られていることがあるとすれば、報酬モデルは、熟練者の状態すべてを単に記憶し、他の状態すべてに盲目的に報酬0を割り当てることによって、「高」性能を達成することができる。報酬モデルを訓練するために使用される経験にデータ拡張を適用すると、この問題を緩和することに役立ち得る。一般に、データ拡張は、熟練者の経験および場合によってはラベルのない経験において経験の数を増やす、または経験を修正する技法を使用することを含むことができる。たとえば、画像がゆがめられる、回転される、切り取られる場合があり、(たとえば、センサーからの)センサー入力がドロップされる、またはランダムノイズで増やされる場合がある。適用され得る特定のデータ拡張技法の例は、Konrad Zolna、Scott Reed、Alexander Novikov、Sergio Gomez Colmenarej、David Budden、Serkan Cabi、Misha Denil、Nando de Freitas、およびZiyu WangのTask-relevant adversarial imitation learning, Supplementary Materials B、CoRL、2020に記載されている。
【0089】
システムは、訓練された報酬予測モデルを使用して、ロボット経験データ中の経験の各々を処理して、経験の各々に対してそれぞれの報酬予測を生成する(ステップ206)。すなわち、経験ごとにシステムは、ステップ204における訓練が行われた後に、報酬モデルを使用して経験からの観測を含む報酬入力を処理して、経験に対するそれぞれの報酬予測を生成する。
【0090】
システムは、(i)経験、および(ii)経験に対するそれぞれの報酬予測について、ポリシーニューラルネットワークを訓練する(ステップ208)。
【0091】
一般に、システムは、オフポリシー強化学習技法を使用して、(i)経験、および(ii)経験に対するそれぞれの報酬予測について、ポリシーニューラルネットワークを訓練することができる。この技法は「オフポリシー」である、すなわちそれについてニューラルネットワークが訓練されるどんな経験も、ニューラルネットワークの現在のバージョンを使用して生成される必要がないので、システムは、完全に「オフラインで」、すなわち特定のタスクを行うためにニューラルネットワークを使用してロボットを制御する必要なしに、タスク固有の訓練データについてポリシーニューラルネットワークを訓練することができる。
【0092】
システムは、ポリシーニューラルネットワークを訓練するために任意の適切なオフポリシー強化学習技法を使用することができる。
【0093】
1つの特定の例として、システムは、クリティックニューラルネットワークがポリシーニューラルネットワークと一緒に訓練される、オフラインアクター-クリティック技法を使用することができる。そのような技法の一例は、クリティック正則化回帰(CRR)技法である。CRRは、Ziyu Wang、Alexander Novikov、Konrad Zolna、Jost Tobias Springenberg、Scott Reed、Bobak Shahriari、Noah Siegel、Josh Merel、Caglar Gulcehre、Nicolas HeessらのCritic regularized regressionに、より詳細に記載されている。
【0094】
別の特定の例として、システムは、ポリシーニューラルネットワークを更新するために分布方策勾配(distributional policy gradient)に依拠するバッチ強化技法を使用することができ、またはポリシーニューラルネットワークを更新するために非分布決定論的方策勾配(non-distributional deterministic policy gradient)に依拠するものを使用することができる。バッチ強化学習については、Sascha Lange、Thomas Gabel、およびMartin Riedmiller、Batch reinforcement learning、Reinforcement learning、45~72頁、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により詳細に説明されている。
【0095】
いくつかの実装形態では、システムは、まず報酬予測モデルを訓練して完了し、次いで、報酬予測モデルが訓練されて完了した後、報酬予測モデルを使用してポリシーニューラルネットワークを訓練する。言い換えれば、システムは、プロセス200の単一の繰返しを行って、報酬予測モデルおよびポリシーニューラルネットワークの訓練を完了し、ポリシーニューラルネットワークは、ステップ208においてシステムに利用可能なロボット経験データの全セットについて訓練される。
【0096】
いくつかの他の実装形態では、システムは、プロセス200を行うことによって、報酬予測モデルおよびポリシーニューラルネットワークを繰り返して更新する。すなわち、システムは、ポリシーニューラルネットワークの訓練の間にプロセス200の複数の繰返しを行い、各繰返しにおいて、報酬予測モデルを訓練し、報酬予測モデルは前の繰返し時点のそれぞれのパラメータの値から始まる。
【0097】
これらの実装形態では、各反復において、システムは、ロボット経験データの全セットの一部分を取得することができる。特定の例として、システムは、ロボット経験データの全セットから、熟練者の経験のバッチおよびラベルのない経験の複数のバッチをサンプリングすることができる。システムは、次いで、熟練者の経験のバッチおよびラベルのない経験のバッチのうちの1つを、報酬予測モデルが訓練される対象のサブセットとして、熟練者の経験のバッチおよびラベルのない経験のバッチの全部を、ポリシーニューラルネットワークが訓練される対象のデータとして、使用することができる。
【0098】
図3は、従来の訓練プロセスに対する、説明する訓練プロセスの性能の比較を示すグラフ300である。
【0099】
詳細には、
図3は、ロボット経験データの特定のセットの熟練者の経験データで反映されるように特定のタスクが行われるエピソードの平均リターン310を示す。熟練者の経験データは熟練者エージェントから収集されるので、平均リターン310は、特定のタスクについての熟練者エージェントの性能を表す。
【0100】
図3はまた、ロボット経験データの特定のセットのラベルのない経験で反映されるように行われるエピソードの平均リターン320を示す。
図3からわかるように、また上記で説明した理由により、平均の熟練者エピソードは、平均のラベルのないエピソードよりもはるかに高いリターンを有する。
【0101】
図3はまた、同じく既存のタスク報酬に頼らない現在の最新技術の技法(行動クローニング(BC))に関連する説明した技法(オフライン強化模倣学習(Offline Reinforced Imitation Learning:ORIL)とも呼ばれる)の性能を示す。
【0102】
詳細には、グラフ300のy軸は、平均リターンを示し、グラフ300のx軸は、ロボット経験データにおけるラベルのない経験の数を示す。ラベルのない経験データのすべての数に対して、同じ比較的少数の熟練者の経験(189)である。
【0103】
図3は、ORILの性能を曲線330として、BCの性能を曲線340として示す。
【0104】
図3からわかるように、ORILは、より多数のラベルのない経験を活用することを学習して、熟練者レベルの性能に近づくことができ、すなわち、曲線330は、ラベルのない経験の数が増えるにつれて、平均リターン310に近づくが、ロボット経験データにおいて熟練者の経験よりもかなり多くのラベルのない経験があるとき、BCの性能は低下する。
【0105】
本明細書は、システムおよびコンピュータプログラムコンポーネントに関連して「構成される」という用語を使用する。1つまたは複数のコンピュータのシステムが特定の動作または行動を行うように構成されるとは、動作時にシステムにその動作または行動を行わせるソフトウェア、ファームウェア、ハードウェア、またはそれらの組合せをシステムがインストールしていることを意味する。1つまたは複数のコンピュータプログラムが特定の動作または行動を行うように構成されるとは、1つまたは複数のプログラムが、データ処理装置によって実行されると、装置に動作または行動を行わせる命令を含むことを意味する。
【0106】
本明細書で説明する主題および機能的動作の実施形態は、デジタル電子回路において、有形に具現化されたコンピュータソフトウェアもしくはファームウェアにおいて、本明細書で開示する構造およびそれらの構造的に同等のものを含む、コンピュータハードウェアにおいて、またはそれらの1つもしくは複数の組合せにおいて、実装されることがある。本明細書で説明する主題の実装形態は、1つまたは複数のコンピュータプログラムとして実装されることがあり、すなわち、データ処理装置によって実行されるように、またはデータ処理装置の動作を制御するために、有形の非一時的記憶媒体上に符号化されたコンピュータプログラム命令の1つまたは複数のモジュールとして実装されることがある。コンピュータ記憶媒体は、機械可読ストレージデバイス、機械可読記憶基板、ランダムもしくはシリアルアクセスメモリデバイス、またはそれらのうちの1つもしくは複数の組合せであることがある。代替的にまたは追加として、プログラム命令は、人為的に生成された伝搬信号、たとえば、データ処理装置による実行のために好適な受信装置に送信するための情報を符号化するために生成される機械生成の電気、光、または電磁信号上で符号化されることがある。
【0107】
「データ処理装置」という用語は、データ処理ハードウェアを指し、例としてプログラマブルプロセッサ、コンピュータ、または複数のプロセッサもしくはコンピュータを含む、データを処理するためのあらゆる種類の装置、デバイス、および機械を包含する。装置は、専用の論理回路、たとえばFPGA(フィールドプログラマブルゲートアレイ)またはASIC(特定用途向け集積回路)であることもあり、またはこれらをさらに含むことがある。装置は、場合によってはハードウェアに加えて、コンピュータプログラムのための実行環境を作成するコード、たとえば、プロセッサファームウェアを構成するコード、プロトコルスタック、データベース管理システム、オペレーティングシステム、またはそれらのうちの1つもしくは複数の組合せを含むことができる。
【0108】
プログラム、ソフトウェア、ソフトウェアアプリケーション、アプリ、モジュール、ソフトウェアモジュール、スクリプト、またはコードと呼ばれる、または説明される場合もあるコンピュータプログラムは、コンパイラ型もしくはインタープリタ型言語、または宣言型もしくは手続き型言語を含む、プログラム言語の任意の形態で書くことができ、またコンピュータプログラムは、スタンドアロンプログラムとして、またはモジュール、コンポーネント、サブルーチン、もしくはコンピューティング環境で使用するのに適した他のユニットとしてなど、任意の形態で展開されることがある。プログラムは、ファイルシステムのファイルに対応してもよいが、対応する必要はない。プログラムは、他のプログラムまたはデータ、たとえば、マークアップ言語ドキュメントに記憶された1つまたは複数のスクリプトを入れたファイルの一部分に、当該プログラムに専用の単一ファイルに、または複数の協調ファイル、たとえば、1つもしくは複数のモジュール、サブプログラム、もしくはコードの一部を記憶するファイルに、記憶することができる。コンピュータプログラムは、1つのコンピュータ上で、または1つのサイトに位置するもしくは複数のサイトにわたって分散し、データ通信ネットワークによって相互接続された複数のコンピュータ上で実行されるように展開することができる。
【0109】
本明細書では、「データベース」という用語は、データのどのような収集も指すように広く使用され、データは、特定の方法で構造化される必要はなく、またはまったく構造化される必要はなく、1つまたは複数の場所のストレージデバイス上に記憶され得る。したがって、たとえば索引データベースは、データの複数の収集を含むことができ、その各々は、異なるように編成され、アクセスされてもよい。
【0110】
同様に、本明細書では、「エンジン」という用語は、1つまたは複数の特定の機能を行うようにプログラムされたソフトウェアベースのシステム、サブシステム、またはプロセスを指すように広く使用される。一般的にエンジンは、1つまたは複数の場所の1つまたは複数のコンピュータ上にインストールされた、1つまたは複数のソフトウェアモジュールまたはコンポーネントとして実装されることになる。ある場合には、1つまたは複数のコンピュータが、特定のエンジンに専用となり、他の場合には、複数のエンジンが、同じ1つまたは複数のコンピュータ上にインストールされ、動作していることがある。
【0111】
本明細書で説明するプロセスおよび論理フローは、1つまたは複数のプログラマブルコンピュータが、入力データ上で動作し、出力を生成することによって機能を行う1つまたは複数のコンピュータプログラムを実行することによって行われ得る。プロセスおよび論理フローは、専用論理回路、たとえば、FPGAもしくはASICによって、または専用論理回路および1つもしくは複数のプログラムされたコンピュータの組合せによって行われることもある。
【0112】
コンピュータプログラムの実行に好適なコンピュータは、汎用または専用マイクロプロセッサ、または両方、または他の種類の中央処理ユニットに基づくことがある。一般的に中央処理ユニットは、読取り専用メモリ、またはランダムアクセスメモリ、または両方から命令およびデータを受け取ることになる。コンピュータの必須要素は、命令を行うまたは実行するための中央処理ユニット、ならびに命令およびデータを記憶するための1つまたは複数のメモリデバイスである。中央処理ユニットおよびメモリは、専用論理回路によって補われる、または専用論理回路に組み込まれることがある。一般に、コンピュータはまた、データを記憶するための1つまたは複数の大容量記憶デバイス、たとえば、磁気ディスク、光磁気ディスク、もしくは光ディスクを含むか、または、それらからデータを受信することもしくはそれらにデータを転送すること、もしくは両方を行うために動作可能に結合される。しかしながら、コンピュータはそのようなデバイスを有する必要はない。さらに、コンピュータが別のデバイス、たとえば、ほんのいくつかの例を挙げれば、携帯電話、携帯情報端末(PDA)、モバイルオーディオもしくはビデオプレーヤ、ゲーム機、全地球測位システム(GPS)レシーバ、またはポータブルストレージデバイス、たとえば、ユニバーサルシリアルバス(USB)フラッシュドライブに埋め込まれることがある。
【0113】
コンピュータプログラム命令およびデータを記憶するのに好適なコンピュータ可読媒体は、あらゆる形態の不揮発性メモリ、媒体、およびメモリデバイスを含み、例として、半導体メモリデバイス、たとえばEPROM、EEPROM、およびフラッシュメモリデバイス、磁気ディスク、たとえば内蔵ハードディスクまたはリムーバブルディスク、光磁気ディスク、ならびにCD ROMおよびDVDROMディスクを含む。
【0114】
ユーザとの対話を提供するために、本明細書で説明した主題の実施形態は、ユーザに情報を表示するためのディスプレイデバイス、たとえば、CRT(陰極線管)またはLCD(液晶ディスプレイ)モニタ、およびそれによりユーザが入力をコンピュータに提供することができるキーボードおよびポインティングデバイス、たとえば、マウスまたはトラックボールを有するコンピュータ上で実装され得る。ユーザとの対話を可能にするために他の種類のデバイスも使用されることがあり、たとえばユーザに提供されるフィードバックは、任意の形態の感覚フィードバック、たとえば視覚フィードバック、聴覚フィードバック、または触覚フィードバックの任意の形態とすることができ、ユーザからの入力は、音響入力、音声入力、または触覚入力など、任意の形態で受け取ることができる。加えて、コンピュータが、ユーザによって使用されるデバイスに文書を送信し、デバイスから文書を受け取ることによってユーザと対話することができ、たとえば、ウェブブラウザから受け取られた要求に応答してユーザのデバイス上のウェブブラウザにウェブページを送信することによってユーザと対話することができる。また、コンピュータが、パーソナルデバイス、たとえば、メッセージングアプリケーションを実行しているスマートフォンに、テキストメッセージまたは他の形態のメッセージを送信し、返信としてユーザから応答メッセージを受け取ることによってユーザと対話することができる。
【0115】
機械学習モデルを実装するためのデータ処理装置は、たとえば、機械学習訓練または生成の共通の、計算負荷の高い(compute-intensive)部分、すなわち推論、ワークロードを処理するための専用ハードウェアアクセラレータユニットを含むこともできる。
【0116】
機械学習モデルは、機械学習フレームワーク、たとえば、TensorFlowフレームワークを使用して実装し、展開することができる。
【0117】
本明細書で説明する主題の実施形態は、たとえばデータサーバとして、バックエンド構成要素を含むコンピューティングシステム、またはミドルウェア構成要素、たとえばアプリケーションサーバを含むコンピューティングシステム、またはフロントエンド構成要素、たとえばグラフィカルユーザインターフェース、ウェブブラウザ、もしくはそれによりユーザが本明細書で説明する主題の実装形態と対話することができるアプリを有するクライアントコンピュータを含むコンピューティングシステム、または1つもしくは複数のそのようなバックエンド構成要素、ミドルウェア構成要素、もしくはフロントエンド構成要素の任意の組合せを含むコンピューティングシステムにおいて実装され得る。システムの構成要素は、デジタルデータ通信の任意の形態または媒体、たとえば、通信ネットワークによって相互接続され得る。通信ネットワークの例には、ローカルエリアネットワーク(LAN)、およびワイドエリアネットワーク(WAN)、たとえばインターネットが含まれる。
【0118】
コンピューティングシステムは、クライアントと、サーバとを含むことができる。クライアントおよびサーバは、一般的に互いから遠くにあり、典型的には通信ネットワークを介して対話する。クライアントとサーバの関係は、それぞれのコンピュータで実行している、互いにクライアント-サーバ関係を有するコンピュータプログラムによって生じる。いくつかの実施形態では、サーバがユーザデバイスに、たとえば、クライアントの役割を果たすデバイスと対話するユーザにデータを表示し、ユーザからユーザ入力を受け取るために、データ、たとえばHTMLページを伝送する。ユーザデバイスで生成されたデータ、たとえば、ユーザインタラクションの結果が、デバイスからサーバで受け取られることがある。
【0119】
本明細書は、多くの特定の実装形態の詳細を含むが、これらは任意の発明の範囲への、または特許請求される可能性のあるものの範囲への制限として解釈されるべきではなく、むしろ特定の発明の特定の実施形態に固有である場合がある特徴の説明として解釈されるべきである。本明細書で別個の実施形態の文脈で説明されるいくつかの特徴は、単一の実施形態において組み合わせて実装されることもある。逆に、単一の実施形態の文脈で説明される様々な特徴は、複数の実施形態において別々に、または任意の適切な部分的組合せで実装されることもある。さらに、特徴は、ある組合せで機能するものとして上記で説明され、さらに当初はそのように特許請求される場合があるが、特許請求される組合せからの1つまたは複数の特徴は、場合によってはその組合せから削除されることがあり、特許請求される組合せは、部分的組合せ、または部分的組合せの変形を対象とすることがある。
【0120】
同様に、動作は特定の順序で図面に示され、特許請求の範囲に記載されるが、これは、望ましい結果を得るために、このような動作が図示された特定の順序でもしくは逐次的な順序で行われること、または例示したすべての動作が行われることを必要とするものと理解されるべきではない。いくつかの環境では、マルチタスクおよび並列処理が有利である場合がある。さらに、上記で説明した実施形態における様々なシステムモジュールおよび構成要素の分離は、すべての実施形態においてそのような分離を必要とすると理解されるべきではなく、記載するプログラム構成要素およびシステムは、一般的に単一のソフトウェア製品に統合される、または複数のソフトウェア製品にパッケージ化されることがあると理解されるべきである。
【0121】
主題の特定の実施形態について説明した。他の実施形態は、以下の特許請求の範囲内にある。たとえば、特許請求の範囲に記載する行動は、異なる順序で行われ、やはり望ましい結果を実現する可能性がある。一例として、添付図に示すプロセスは、望ましい結果を達成するために、示した特定の順序、または逐次的な順序を必ずしも必要としない。場合によっては、マルチタスクおよび並列処理が有利である可能性がある。
【符号の説明】
【0122】
100 システム
110 ポリシーニューラルネットワーク
112 ロボット
114 環境
120 ロボット経験データ
122 経験
124 熟練者の経験データ
126 ラベルのない経験
130 アノテーションデータ
140 報酬予測モデル
150 訓練データ