(57)【要約】  実装形態は、現在の状態に基づいてロボットのアクションを決定するためのポリシーをパラメータ化するポリシーニューラルネットワークをトレーニングするために深層強化学習を利用する。それらの実装形態のうちのいくつかは、同時に動作する複数のロボットから経験データを収集する。各ロボットが、エピソードの繰返し実施の間の経験データのインスタンスを生成し、エピソードのそれぞれが、タスク実施の探査であり、ポリシーネットワークと、エピソード中のポリシーネットワーク向けの現在のポリシーパラメータとに基づいて導かれる。収集された経験データは、エピソード中に生成され、収集された経験データのバッチに基づきポリシーネットワークのポリシーパラメータを繰り返し更新することによってポリシーネットワークをトレーニングするために使用される。さらに、複数のエピソードの各々がロボットによって実施されるのに先立って、現在の更新されたポリシーパラメータが、エピソードを実施するのに利用するために供給されることが可能である(または取り出されることが可能である)。
2019529135.tif 000002
【特許請求の範囲】
【請求項１】
1つまたは複数のプロセッサによって実施される方法であって、
実施複数のエピソードの各々が、タスクに関する強化学習ポリシーを表現するポリシーニューラルネットワークに基づいて前記タスクを実施する探査である、複数のロボットの各々による前記複数のエピソードの実施中において、
前記エピソード中に前記複数のロボットによって生成されたロボット経験データのインスタンスをバッファに記憶するステップであって、前記ロボット経験データの前記インスタンスの各々が、前記エピソードのうちの対応するエピソード中に生成され、かつ前記対応するエピソード向けの前記ポリシーニューラルネットワークの対応するポリシーパラメータを伴う前記ポリシーニューラルネットワークを使用して生成される対応する出力上に少なくとも部分的に生成される、ステップと、
前記ポリシーニューラルネットワークの更新されたポリシーパラメータを繰り返し生成するステップであって、前記繰り返し生成するステップの繰返しの各々が、前記繰返し中に、前記バッファの中の前記ロボット経験データの前記インスタンスのうちの1つまたは複数のもののグループを使用して前記更新されたポリシーパラメータを生成するステップを含む、ステップと、
前記ロボットが実施する複数のエピソードの各々の開始と同時に、前記複数のロボットの各々によって、前記エピソードにおいて前記ロボットが使用する前記ポリシーニューラルネットワークを更新するステップであって、前記更新されたポリシーパラメータを前記繰り返し生成するステップの直近の繰返しの前記更新されたポリシーパラメータを使用するステップを含む、ステップと
を含む、方法。
【請求項２】
前記更新されたポリシーパラメータの各々が、前記ポリシーニューラルネットワークの対応する層の対応するノード向けの対応する値を定義する、請求項1に記載の方法。
【請求項３】
前記複数のロボットのうちの所与のロボットの前記ロボット経験データの前記インスタンスが、前記更新されたポリシーパラメータを繰り返し生成する生成周波数よりも低い周波数である第1の周波数において前記バッファに記憶される、請求項1または2に記載の方法。
【請求項４】
前記複数のロボットの各々の前記ロボット経験データの前記インスタンスが、前記更新されたポリシーパラメータを繰り返し生成する生成周波数よりもそれぞれ低い周波数である対応する周波数において前記バッファに記憶される、請求項1または2に記載の方法。
【請求項５】
前記ロボット経験データの前記インスタンスを前記バッファに記憶するステップが、第1のスレッドにおいて前記複数のプロセッサのうちの1つまたは複数によって実施され、前記繰り返し生成するステップが、前記第1のスレッドとは別個の第2のスレッドにおいて、前記複数のプロセッサのうちの1つまたは複数によって実施される、請求項1から4のいずれか一項に記載の方法。
【請求項６】
前記第1のスレッドが、前記複数のプロセッサのうちの1つまたは複数の第1のグループによって実施され、前記第2のスレッドが、前記第1のグループとオーバラップしない、前記複数のプロセッサのうちの1つまたは複数の第2のグループによって実施される、請求項5に記載の方法。
【請求項７】
前記繰り返し生成するステップの前記繰返しの各々が、前記生成する繰返し中に、前記バッファの中の前記ロボット経験データの前記インスタンスのうちの1つまたは複数のグループを考慮して損失関数を最小化することに基づいて前記更新されたポリシーパラメータを生成するステップを含む、請求項1から6のいずれか一項に記載の方法。
【請求項８】
前記繰り返し生成するステップの前記繰返しの各々が、前記生成する繰返し中に、前記バッファの中の前記ロボット経験データの前記インスタンスのうちの1つまたは複数のグループを考慮するオフポリシー型の学習を含む、請求項1から7のいずれか一項に記載の方法。
【請求項９】
前記オフポリシー型の学習がQ学習である、請求項8に記載の方法。
【請求項１０】
前記Q学習が正規化利益関数(NAF)アルゴリズムまたは深層決定論的ポリシー勾配(DDPG)アルゴリズムを利用する、請求項9に記載の方法。
【請求項１１】
前記経験データの前記インスタンスの各々が、対応する、開始ロボット状態と、前記開始ロボット状態から遷移した後続ロボット状態と、前記開始ロボット状態から前記後続ロボット状態へ遷移するために実行されるアクションと、前記アクションに対する報酬とを指示し、
前記開始ロボット状態から前記後続ロボット状態へ遷移するために実行される前記アクションが、前記対応するエピソード向けの前記更新されたポリシーパラメータを伴う前記ポリシーニューラルネットワークを使用して前記開始ロボット状態を処理することに基づいて生成され、
前記アクションに対する前記報酬が、前記強化学習ポリシーの報酬関数に基づいて生成される、
請求項1から10のいずれか一項に記載の方法。
【請求項１２】
1つまたは複数の基準に基づいて、前記複数のエピソードの前記実施を停止し、かつ前記繰り返し生成するステップを停止するステップと、
1つまたは複数の追加のロボットが使用するように直近生成されたバージョンの前記更新されたポリシーパラメータを前記ポリシーニューラルネットワークに供給するステップと
をさらに含む、請求項1から11のいずれか一項に記載の方法。
【請求項１３】
所与のロボットの1つまたは複数のプロセッサによって、
第1のポリシーパラメータのグループを有するポリシーネットワークに基づいてタスクを実施する探査の所与のエピソードを実施するステップと、
前記所与のエピソード中に、前記ポリシーネットワークに基づいて生成されたロボット体験データの第1のインスタンスを供給するステップと、
前記ポリシーネットワークに基づいて前記タスクを実施する後続のエピソードを前記所与のロボットによって実施するのに先立って、
前記第1のポリシーパラメータのグループのうちの1つまたは複数を更新されたポリシーパラメータで置換するステップであって、前記更新されたポリシーパラメータが、追加のロボットによって前記タスクを実施する探査の前記追加のロボットのエピソード中に前記追加のロボットによって生成されたロボット経験データの追加のインスタンスに基づいて生成される、ステップ
を含み、
前記後続のエピソードが前記第1のエピソードのすぐ後に続き、前記後続のエピソードにおいて前記ポリシーネットワークに基づいて前記タスクを実施するステップが、前記置換されたポリシーパラメータの代わりに前記更新されたポリシーパラメータを使用するステップを含む、
方法。
【請求項１４】
1つまたは複数の追加のプロセッサによって、前記後続のエピソードの前記実施中に、さらに更新されたポリシーパラメータを生成するステップであって、前記第1のエピソード中に生成されたロボット体験データの前記第1のインスタンスのうちの1つまたは複数に基づく、ステップと、
前記追加のロボットによる対応するエピソードの実施において前記追加のロボットが使用するように前記さらに更新されたポリシーパラメータを供給するステップと
をさらに含む、請求項13に記載の方法。
【請求項１５】
前記所与のロボットによる前記後続のエピソードの実施中に、前記追加のロボットが前記対応するエピソードの実施を開始する、請求項14に記載の方法。
【請求項１６】
前記所与のロボットによる任意のエピソードの実施において、前記さらに更新されたポリシーパラメータが前記所与のロボットによって利用されない、請求項14に記載の方法。
【請求項１７】
前記追加のプロセッサのうちの1つまたは複数によって、またさらに更新されたポリシーパラメータを生成するステップであって、前記またさらに更新されたポリシーパラメータが、前記さらに更新されたポリシーパラメータの生成の後に、前記後続のエピソードの前記実施中に生成される、ステップと、
前記またさらに更新されたポリシーパラメータを、前記ポリシーネットワークに基づいて前記タスクを実施するさらなる後続のエピソードの前記所与のロボットによる実施において前記所与のロボットが使用するように供給するステップであって、前記さらなる後続のエピソードが前記後続のエピソードのすぐ後に続く、ステップと
をさらに含む、請求項14から16のいずれか一項に記載の方法。
【請求項１８】
前記追加のロボットによる前記対応するエピソードの実施中に、前記所与のロボットが、前記さらなる後続のエピソードの実施を開始する、請求項17に記載の方法。
【請求項１９】
前記更新されたポリシーパラメータと、前記またさらに更新されたポリシーパラメータとが、前記追加のロボットによる任意のエピソードの実施において前記追加のロボットによって利用されない、請求項17に記載の方法。
【請求項２０】
前記追加のロボットによる任意のエピソードの実施において、前記更新されたポリシーパラメータが前記追加のロボットによって利用されない、請求項13から18のいずれか一項に記載の方法。
【請求項２１】
前記ポリシーネットワークがニューラルネットワークモデルを備える、請求項13から20のいずれか一項に記載の方法。
【請求項２２】
前記更新されたポリシーパラメータの各々が、前記ニューラルネットワークモデルの対応する層の対応するノード向けの対応する値を定義する、請求項21に記載の方法。
【請求項２３】
前記タスクを実施する前記所与のエピソードの実施中に、
前記ポリシーネットワークからの出力の所与の繰返しにおいて、前記所与のロボットの1つまたは複数の基準の違反を判定するステップと、
前記1つまたは複数の基準がもはや違反されることのないように、前記所与の繰返しの前記出力を修正するステップと、
前記修正された出力に基づいて、経験データの前記インスタンスの所与のインスタンスを生成するステップと
をさらに含む、請求項13に記載の方法。
【請求項２４】
前記基準が、関節位置の制限と、関節速度の制限と、エンドエフェクタの位置の制限とのうちの1つまたは複数を含む、請求項23に記載の方法。
【請求項２５】
前記所与のエピソード中に、
前記ポリシーネットワークに対する入力として現在の状態表現を適用するステップであって、前記現在の状態表現が、少なくとも前記所与のロボットの現在の状態を指示する、ステップと、
前記ポリシーネットワークを使用して前記入力を処理することにより、出力を生成するステップと、
前記出力に基づいて、前記所与のロボットの1つまたは複数のアクチュエータに対して制御コマンドを供給するステップと
によって、前記探査のうちの所与の探査を生成するステップ
をさらに含む、請求項13から24のいずれか一項に記載の方法。
【請求項２６】
前記出力に基づいて前記アクチュエータに前記制御コマンドを供給するステップが、
前記出力にノイズを付加することにより、修正された出力を生成するステップと、
前記修正された出力に基づいて前記制御コマンドを供給するステップと
を含む、請求項25に記載の方法。
【請求項２７】
前記出力が、前記ロボットの複数のアクチュエータの各々向けの速度またはトルクを含み、前記制御コマンドを供給するステップが、前記アクチュエータが前記速度またはトルクを印加するように前記制御コマンドを供給するステップを含む、請求項25に記載の方法。
【請求項２８】
前記経験データの前記第1のインスタンスの各々が、対応する、開始ロボット状態と、前記開始ロボット状態から遷移した後続ロボット状態と、前記開始ロボット状態から前記後続ロボット状態へ遷移するために実行されるアクションと、前記アクションに対する報酬とを指示する、請求項13から27のいずれか一項に記載の方法。
【請求項２９】
1つまたは複数のプロセッサによって実施される方法であって、
複数のロボットのうちの所与のロボットによって生成されたロボット経験データの所与のインスタンスを受信するステップであって、前記ロボット経験データの前記所与のインスタンスが、タスクを実施する探査の所与のエピソード中に、前記所与のロボットによって前記所与のインスタンスを生成するのに利用されるポリシーネットワークのポリシーパラメータの所与のバージョンに基づいて生成される、ステップと、
前記複数のロボットのうちの追加のロボットからロボット経験データの追加のインスタンスを受信するステップであって、前記追加のインスタンスが、前記追加のロボットによって、前記ポリシーネットワークに基づいて前記タスクを実施する探査のエピソード中に生成される、ステップと、
前記所与のロボットおよび前記追加のロボットが前記タスクを実施する前記探査のエピソードを継続している間に、前記所与のインスタンスおよび前記追加のインスタンスに少なくとも部分的に基づく前記ポリシーネットワークのトレーニングに基づいて、前記ポリシーネットワークの前記ポリシーパラメータの新バージョンを生成するステップと、
前記所与のロボットが前記ポリシーパラメータの前記新バージョンに基づいて前記タスクを実施する探査の直後のエピソードを実施するように、前記所与のロボットに対して前記ポリシーパラメータの前記新バージョンを供給するステップと
を含む、方法。
【請求項３０】
前記所与のインスタンスを受信するステップが、前記所与のロボットから経験データのインスタンスを受信する複数の経験データの繰返しのうちの1つの繰返しにおいて生じ、前記複数の経験データの繰返しが第1の周波数において生じる、請求項30に記載の方法。
【請求項３１】
前記更新されたパラメータを生成するように前記強化モデルをトレーニングするステップが、複数のトレーニングの繰返しを実施するステップであって、
前記所与のインスタンスおよび前記追加のインスタンスに少なくとも部分的に基づく前記ポリシーネットワークのトレーニングの第1のトレーニングの繰返しと、
前記複数のロボットからの経験データのまたさらなるインスタンスに基づく、前記ポリシーネットワークのトレーニングの1つまたは複数の追加のトレーニングの繰返しと
を含み、
前記トレーニングの繰返しが、前記経験データの繰返しよりも高い周波数である第2の周波数において生じる、
請求項30に記載の方法。
【請求項３２】
1つまたは複数のプロセッサによって実施される方法であって、
非同期かつ同時に動作する複数のロボットによって生成された経験データのインスタンスを繰り返し受信するステップであって、前記経験データのインスタンスの各々が、ポリシーニューラルネットワークに基づくタスク探査の対応するエピソード中に、前記複数のロボットのうちの対応するロボットによって生成される、ステップと、
トレーニングの繰返しの各々において前記ポリシーネットワークの1つまたは複数の更新されたパラメータを生成するために、前記複数のロボットからの前記受信された経験データに基づいて前記ポリシーネットワークを繰り返しトレーニングするステップと、
前記経験データのインスタンスが基づく前記タスク探査のエピソードに先立って、前記ロボットの前記ポリシーニューラルネットワークを更新するために、前記更新されたパラメータのインスタンスを前記ロボットに対して非同期かつ繰り返し供給するステップと
を含む、方法。
【請求項３３】
前記複数のロボットのうちの少なくとも1つのロボットの1つまたは複数のアクチュエータを動かしてアクションを有効にするように、前記更新されたポリシーパラメータを繰り返し生成するステップの直近の繰返しの前記更新されたポリシーパラメータを使用して、1つまたは複数の運動コマンドを生成するステップをさらに含む、請求項1から12のいずれか一項に記載の方法。
【請求項３４】
前記所与のロボットによって、前記ポリシーパラメータの前記新バージョンに基づいて前記所与のロボットによって前記タスクを実施する探査の直後のエピソードを実施するステップをさらに含む、請求項29から31のいずれか一項に記載の方法。
【請求項３５】
前記ロボットにおいて、前記経験データのインスタンスが基づく前記タスク探査のエピソードを実施するステップをさらに含む、請求項32に記載の方法。
【請求項３６】
コンピュータ可読命令であって、コンピュータ装置によって実行されたとき、請求項1から35のいずれか一項に記載の方法が実施される、コンピュータ可読命令。
【請求項３７】
請求項1から35のいずれか一項に記載の方法を実行するように構成される、装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ロボット操作のための深層強化学習に関する。
【背景技術】
【０００２】
多くのロボットが、1つまたは複数の物体を操作するために1つまたは複数のエンドエフェクタを利用するようにプログラムされる。たとえば、ロボットは、物体に力を加えて移動させるのにエンドエフェクタを利用する場合がある。たとえば、ロボットは、その物体を必ずしも握ることなく変位させるのに、把持エンドエフェクタまたは他のエンドエフェクタを利用する場合がある。また、たとえばロボットは、物体を第1の位置から取り上げ、第2の位置へ移動させてそこにおろすために「衝撃」グリッパまたは「進入」グリッパ(たとえば、ピン、ニードルなどを使用して物体に物理的に侵入するもの)などの把持エンドエフェクタを利用してもよい。
【発明の概要】
【課題を解決するための手段】
【０００３】
以下で説明される実装形態は、1つまたは複数のタスクを実行するときの1つまたは複数のロボットの動作性能における改善を提供する。本明細書で説明されるように、強化学習プロセスを使用して1つまたは複数のロボットの性能が改善され、強化学習プロセスにより、1つまたは複数のロボットを使用して特定の物理的タスクを実施するための最適な手法またはポリシーの迅速な学習が促進される。ロボットは、習得したポリシーを使用して、タスクの実施における効率の利益を得ることができる。説明された強化学習プロセスが行われるとき、物理的タスクは、ロボットによって、たとえばより迅速に、かつ/またはより少ない電力消費量で実施されてもよい。それに加えてまたはその代わりに、そのような物理的タスクは、より安全に実施されてもよく、もしくは、ロボットの性能の他の態様が学習プロセスに伴って改善しながら、定義された安全パラメータの範囲内で実行され続ける場合がある。
【０００４】
以下の開示から明らかなように、学習プロセスは繰り返されてもよい。新規の繰返しがロボットの物理的作用の制御を担うコンピュータ装置を通るとき、1つまたは複数のロボットが、特定のタスクのためのポリシー/手法のそれぞれの新規の改善された繰返しに従って動作してもよい。そのため、学習プロセスが続行されるにつれて、ロボットによって実施される物理的作用の点から、上記で言及された効率の利益がたびたび生じる場合がある。全体として、もたらされる効率の利益と併せて、ロボットの性能の改善が特に高速であってよく、その結果、ロボットは、物理的タスクを、他の学習手法を用いる場合よりも短い時間において最適なやり方で実行することになってもよい。このことにより、ロボットの改善された消費電力など前述の利点が初期段階においてもたらされることが理解されよう。これは、たとえば別々のコンピュータプロセッサにおける、1つまたは複数のロボット用のトレーニングスレッドと経験スレッドの間の分離の説明の一部分として以下で説明される。詳細には、ポリシーの更新を非同期でプールする複数のロボットにわたるトレーニングアルゴリズムを並行処理すると、トレーニングの所与の回数の繰返しの後に、より正確で、かつ/またはロバストなポリシーのニューラルネットワークをもたらすことができることが説明される。
【０００５】
強化学習の目的は、ロボットスキル(本明細書ではタスクとも称される)の状況では、ユーザから与えられた、ロボットが達成するべきものの定義を表す報酬関数を最大化しようとするエージェントを制御することである。時間tにおける状態xtにおいて、エージェントは、そのポリシーπ(ut|xt)に従ってアクションutを選択かつ実行し、ロボットのダイナミクスp(xt|xt, ut)に従って新規の状態xtへ遷移し、報酬r(xt, ut)を受信する。強化学習の目的は、初期状態の分布から、報酬の予期される合計を最大化する最適なポリシーπ*を発見することである。報酬は、前述のように、達成されるべきロボットのタスクに依拠する報酬関数に基づいて判定される。したがって、ロボット工学の状況における強化学習は、所与のロボットのタスクの実施のために最適なポリシーを学習しようとする。
【０００６】
本明細書で開示される実装形態は、現在の状態に基づいてロボットのアクションを決定するためのポリシーをパラメータ化するポリシーネットワークをトレーニングするために、深層強化学習を利用する。現在の状態は、ロボットの状態(たとえばロボットの関節の角度、ロボットのエンドエフェクタの位置、および/またはそれらの時間微分)、および/またはロボットの環境における1つまたは複数の構成要素の現在の状態(たとえばロボットの環境におけるセンサの現在の状態、ロボットの環境における対象物体の現在の姿勢)を含むことができる。ポリシーネットワークは深層ニューラルネットワークなどのニューラルネットワークであることが可能である。たとえば、ポリシーネットワークはニューラルネットワークであることが可能であり、これは現在の状態を入力として受信し、入力および学習したニューラルネットワークのポリシーパラメータに基づいて、実施されるべきアクションを指示する出力を生成する。たとえば、出力は、ロボットのアクチュエータの各々に与えられる速度コマンド、またはロボットのアクチュエータの各々に印加されるトルクを指示することができる。ロボットは、ロボットの各制御サイクルにおいてポリシーニューラルネットワークに現在の状態を適用し、ポリシーニューラルネットワークを使用して現在の状態を処理することにより出力を生成して、出力によって指示されたアクションを有効にするために制御コマンドを実施することにより、ポリシーニューラルネットワークを利用することができる。次いで、制御コマンドを実施することに続く状態が、次の制御サイクルにおける現在の状態として利用されることが可能である。
【０００７】
本明細書で開示される実装形態は、同時に動作する複数のロボットから経験データを収集する。各ロボットが、エピソードの繰返し実施の間の経験データのインスタンスを生成し、エピソードのそれぞれが、タスク実施の探査であり、ポリシーネットワークと、エピソード中のポリシーネットワーク向けの現在のポリシーパラメータとに基づいて導かれる。たとえば、エピソード中に、ロボットは、そのエピソード中のロボットの複数の制御サイクルの各制御サイクルにおいて、経験データのインスタンスを生成することができる。経験データの各インスタンスは、対応する現在の/初期の状態、初期の状態から遷移した後続の状態、初期の状態から後続の状態に遷移するために実行されたロボットのアクション(アクションは、ポリシーネットワークに対して初期の状態および現在のポリシーパラメータを適用することに基づく)を指示することができ、アクションに対する報酬(報酬関数に基づいて決定される)をオプションで指示することができる。収集された経験データは、エピソード中に生成され、収集された経験データのバッチに基づきポリシーネットワークのポリシーパラメータを繰り返し更新することによってポリシーネットワークをトレーニングするために使用される。さらに、複数のエピソードの各々がロボットによって実施されるのに先立って、現在の更新されたポリシーパラメータが、エピソードを実施するのに利用するために供給されることが可能である(または取り出されることが可能である)。たとえば、各ロボットは、そのエピソードの各々を実施するのに先立って、トレーニングのつい最近の繰返しから更新されたポリシーパラメータを取得して、エピソードを実施するのに更新されたポリシーパラメータを使用することができる。したがって、各エピソードの経験データは、トレーニングの(エピソードの開始に対して)つい最近の繰返しからの更新されたポリシーパラメータを伴うポリシーネットワークに基づく。
【０００８】
多くの実装形態において、ポリシーネットワークのトレーニングは、複数のロボットからの経験データの生成および収集に対して非同期である。すなわち、ポリシーネットワークをトレーニングする/更新するスレッドは、複数のロボットからの経験データを生成する、および/または収集するスレッドから分離される。たとえば、トレーニング/更新スレッドは、1つまたは複数のプロセッサ上で動作することができ、経験スレッドは、トレーニング/更新スレッドを動作させる1つまたは複数のプロセッサとは別の1つまたは複数の追加のプロセッサ上で動作することができる。トレーニングスレッドと経験スレッドを分離すると、固定周波数で制御を送信しなければならないことが多い、経験データを生成するロボットの制御プログラムをトレーニングの速度と経験を収集する速度の差によって停止させることのないように保証することができる。言い換えれば、分離することにより、トレーニングのためのスレッドを停止させることなく、対応する経験スレッドを通じて経験データを収集し続けることができる。さらに、分離すると、トレーニングスレッドを経験スレッドと並行して動作させること、ポリシーネットワークのポリシーパラメータを非同期で繰り返し更新すること、およびエピソード向けの更新されたポリシーパラメータを繰り返し供給することが可能になる。また、多くの実装形態において、トレーニングスレッドは、ロボットの制御周波数(たとえば20Hz)のうちの1つまたは複数(たとえばすべて)よりも高い周波数(たとえば60Hz)で動作することができる。それらの実装形態では、並行して動作する複数のロボットから経験データを取得し、個別のスレッドにおいて非同期でトレーニングすることにより、(複数のロボットからの経験データを利用しない技術と比較して)現実の(たとえば実時間の(clock on the wall))トレーニング時間を短縮することができる。たとえば、利用可能な新規の経験データがバッファにないことによるいかなる(またはわずかな)遅延もなく、トレーニングすることができる。また、たとえば個別のスレッドは、トレーニングを可能にするために経験データの収集を停止する必要性を防止することができ、その逆も同様である。
【０００９】
その上、複数のロボットからの経験データを利用し、トレーニングスレッドと経験収集スレッドを分離すると、トレーニングを所与の回数だけ繰り返した後には、そのような技術を利用しない場合よりも正確かつ/またはロバストなモデルをもたらすことができる。これは、たとえばロボットによって、所与のエピソードにおいて、このロボットからの経験データの過去のインスタンスと、並行動作している他のロボットからの経験データの過去のインスタンスとの両方を基に更新されたポリシーパラメータに基づいて生成される経験データによることが可能である。たとえば、ロボットの第3のエピソードでは、第3のエピソードにおいて利用されるポリシーパラメータは、そのロボットの第1のエピソードおよび/または第2のエピソードからの経験データだけでなく、並行動作しているロボットの第1のエピソードおよび/または第2のエピソードからの経験データに基づくことが可能である。このように、第3のエピソードにおいて生成される経験データは、たった2つの従前のエピソードよりも多くからの経験データを考慮してトレーニングされた更新されたポリシーパラメータを伴うポリシーネットワークに基づき、2つの従前のエピソードからの経験データを考慮して更新のポリシーパラメータをトレーニングするのみの場合よりも速い収斂をもたらす経験データが、第3のエピソードにおいて生成されることが可能である。
【００１０】
本明細書で説明される様々な実装形態では、経験データを生成する複数のロボットのうちの1つまたは複数が、互いに非同期で動作すること、および/またはエピソードを実施するのに先立って更新されたポリシーパラメータをロボットによって非同期で供給する(または取り出す)ことが可能である。このように、複数のロボットの各々に供給される更新されたポリシーパラメータが互いに対して変化することができる。たとえば、第1のロボットは、第1の時間において、第1のロボットによって実施されるべきエピソードに用いる更新されたポリシーパラメータを取得することができる。第1の時間において、第2のロボットは、引き続き従前のエピソードを実施することができる。次いで、第1の時間の後の第2の時間において、第2のロボットは、従前のエピソードの直後に第2のロボットによって実施されるべきエピソードに用いるさらに更新されたポリシーパラメータを取得することができる。第2の時間において、取得されるさらに更新されたポリシーパラメータは、(第1の時間と第2の時間の間に行われたさらなるトレーニングのために)第1の時間において第1のロボットによって取得された更新されたポリシーパラメータとは異なることが可能である。このように、第1の時間において第1のロボットによって取得された更新されたポリシーパラメータは、第2のロボットが利用するように供給されることはない。むしろ、より最新のさらに更新されたポリシーパラメータが取得される。
【００１１】
いくつかの実装形態では、複数のロボットの各々による複数のエピソードの実施中であり、エピソードの各々が、タスクに関する強化学習ポリシーを表現するポリシーニューラルネットワークに基づいてタスクを実施する探査である、該実施中において、エピソード中にロボットによって生成されたロボット経験データのインスタンスをバッファに記憶するステップであって、ロボット経験データのインスタンスの各々が、複数のエピソードのうちの対応するエピソード中に生成され、対応するエピソード向けのポリシーニューラルネットワークの対応するポリシーパラメータを伴うポリシーニューラルネットワークを使用して生成される対応する出力上に少なくとも部分的に生成される、ステップと、ポリシーニューラルネットワークの更新されたポリシーパラメータを繰り返し生成するステップであって、繰り返し生成するステップの繰返しの各々が、繰返し中に、バッファの中のロボット経験データのインスタンスのうちの1つまたは複数のもののグループを使用して更新されたポリシーパラメータを生成することを含む、ステップと、ロボットが実施する複数のエピソードの各々の開始と同時に、ロボットの各々によって、エピソードにおいてロボットが使用するポリシーニューラルネットワークを更新するステップであって、更新されたポリシーパラメータを繰り返し生成するステップの直近の繰返しの更新されたポリシーパラメータを使用することを含む、ステップとの実施を含む方法が提供される。
【００１２】
本明細書で開示されたこれらの実装形態および他の実装形態は、以下の特徴のうちの1つまたは複数を含むことができる。
【００１３】
更新されたポリシーパラメータの各々が、ポリシーニューラルネットワークの対応する層の対応するノード向けの対応する値を定義することができる。
【００１４】
各ロボットの所与のロボットのロボット経験データのインスタンスは、更新されたポリシーパラメータを繰り返し生成する生成周波数よりも低い周波数である第1の周波数においてバッファに記憶されることが可能である。
【００１５】
ロボットの各々のロボット経験データのインスタンスは、更新されたポリシーパラメータを繰り返し生成する生成周波数よりもそれぞれ低い周波数である対応する周波数においてバッファに記憶されることが可能である。
【００１６】
ロボット経験データのインスタンスをバッファに記憶するステップは、第1のスレッドにおいて1つまたは複数のプロセッサによって実施されることが可能であり、繰り返し生成するステップは、第1のスレッドとは別個の第2のスレッドにおいて、各プロセッサのうちの1つまたは複数によって実施されることが可能である。たとえば、第1のスレッドは、プロセッサのうちの1つまたは複数の第1のグループによって実施されることが可能であり、第2のスレッドは、第1のグループとオーバラップしない、プロセッサのうちの1つまたは複数の第2のグループによって実施されることが可能である。
【００１７】
繰り返し生成するステップの繰返しの各々が、この生成する繰返し中に、バッファの中のロボット経験データのインスタンスのうちの1つまたは複数のグループを考慮して損失関数を最小化することに基づいて更新されたポリシーパラメータを生成するステップを含むことができる。
【００１８】
繰り返し生成するステップの繰返しの各々が、この生成する繰返し中に、バッファの中のロボット経験データのインスタンスのうちの1つまたは複数のグループを考慮するオフポリシー型の学習を含むことができる。たとえば、オフポリシー型の学習は、正規化された利益関数(NAF)アルゴリズムまたは深層決定論的ポリシー勾配(DDPG)アルゴリズムを利用するQ学習などのQ学習であることができる。
【００１９】
経験データのインスタンスの各々が、対応する、開始ロボット状態と、開始ロボット状態から遷移した後続ロボット状態と、開始ロボット状態から後続ロボット状態へ遷移するために実行されるアクションと、アクションに対する報酬とを指示することができる。開始ロボット状態から後続ロボット状態へ遷移するために実行されるアクションは、対応するエピソード向けの更新されたポリシーパラメータを伴うポリシーニューラルネットワークを使用して開始ロボット状態を処理することに基づいて生成されることが可能である。アクションに対する報酬は、強化学習ポリシーの報酬関数に基づいて生成されることが可能である。
【００２０】
本方法は、1つまたは複数の基準に基づき、複数のエピソードを実施するのを停止して、繰り返し生成するのを停止するステップと、1つまたは複数の追加のロボットが使用するように直近に生成されたバージョンの更新されたポリシーパラメータをポリシーニューラルネットワークに供給するステップとをさらに含むことができる。
【００２１】
いくつかの実装形態では、所与のロボットの1つまたは複数のプロセッサによって、第1のポリシーパラメータのグループを有するポリシーネットワークに基づいてタスクを実施する探査の所与のエピソードを実施するステップと、所与のエピソード中に、ポリシーネットワークに基づいて生成された第1のロボット経験データのインスタンスを供給するステップと、ポリシーネットワークに基づいてタスクを実施する後続のエピソードを所与のロボットによって実施するのに先立って、第1のグループのポリシーパラメータのうちの1つまたは複数を更新されたポリシーパラメータで置換するステップであって、更新されたポリシーパラメータは、追加のロボットによってタスクを実施する探査の追加のロボットのエピソード中に追加のロボットによって生成されたロボット経験データの追加のインスタンスに基づいて生成され、後続のエピソードは第1のエピソードのすぐ後に続く、ステップとを含む方法であって、後続のエピソードにおいてポリシーネットワークに基づいてタスクを実施するステップが、置換されたポリシーパラメータの代わりに更新されたポリシーパラメータを使用することを含む、方法が提供される。
【００２２】
本明細書で開示されたこれらの実装形態および他の実装形態は、以下の特徴のうちの1つまたは複数を含むことができる。
【００２３】
いくつかの実装形態では、本方法は、後続のエピソードの実施中に、1つまたは複数の追加のプロセッサによって、第1のエピソード中に生成された第1のロボット経験データのインスタンスのうちの1つまたは複数に基づいて、さらに更新されたポリシーパラメータを生成するステップをさらに含むことができる。本方法は、追加のロボットによる対応するエピソードの実施において追加のロボットが使用するためのさらに更新されたポリシーパラメータを供給するステップをさらに含むことができる。それらの実装形態のうちのいくつかでは、所与のロボットによる後続のエピソードの実施中に、追加のロボットが、対応するエピソードの実施を開始し、および/または所与のロボットによる任意のエピソードの実施において、さらに更新されたポリシーパラメータが所与のロボットによって利用されない。それらの実装形態のうちのいくつかでは、本方法は、追加のプロセッサのうちの1つまたは複数によって、またさらに更新されたポリシーパラメータを生成するステップであって、またさらに更新されたポリシーパラメータが、さらに更新されたポリシーパラメータの生成の後に、後続のエピソードの実施中に生成される、ステップと、またさらに更新されたポリシーパラメータを、ポリシーネットワークに基づいてタスクを実施するさらなる後続のエピソードの所与のロボットによる実施において所与のロボットが使用するように供給するステップとをさらに含むことができる。さらなる後続のエピソードは、後続のエピソードのすぐ後に続く。それらの実装形態のうちのいくつかバージョンでは、追加のロボットによる対応するエピソードの実施中に、所与のロボットが、さらなる後続のエピソードの実施を開始し、更新されたポリシーパラメータと、またさらに更新されたポリシーパラメータとは、追加のロボットによる任意のエピソードの実施において追加のロボットによって利用されることはなく、および/または追加のロボットによる任意のエピソードの実施において、更新されたポリシーパラメータが追加のロボットによって利用されない。
【００２４】
ポリシーネットワークは、ニューラルネットワークモデルを含むことができ、またはニューラルネットワークモデルからなることができ、更新されたポリシーパラメータの各々が、ニューラルネットワークモデルの対応する層の対応するノード向けの対応する値を定義することができる。
【００２５】
いくつかの実装形態では、本方法は、タスクを実施する所与のエピソードの実施中に、ポリシーネットワークからの出力の所与の繰返しにおいて、所与のロボットの1つまたは複数の基準の違反を判定するステップと、1つまたは複数の基準がもはや違反されることのないように、所与の繰返しの出力を修正するステップと、修正された出力に基づいて、経験データのインスタンスの所与のインスタンスを生成するステップとをさらに含む。基準は、関節位置の制限と、関節速度の制限と、エンドエフェクタの位置の制限とのうちの1つまたは複数を含むことができる。
【００２６】
いくつかの実装形態では、本方法は、所与のエピソード中に、ポリシーネットワークに対する入力として現在の状態表現を適用するステップであって、現在の状態表現が、少なくとも所与のロボットの現在の状態を指示する、ステップと、ポリシーネットワークを使用して入力を処理することにより、出力を生成するステップと、出力に基づいて、所与のロボットの1つまたは複数のアクチュエータに対して制御コマンドを供給するステップとによって、探査のうちの所与の探査を生成するステップをさらに含む。出力に基づいてアクチュエータに対して制御コマンドを供給するステップは、出力にノイズを付加することによって修正された出力を生成するステップと、修正された出力に基づいて制御コマンドを供給するステップとを含むことができる。出力は、ロボットの複数のアクチュエータの各々向けの速度またはトルクを含むことができ、制御コマンドを供給するステップは、アクチュエータが速度またはトルクを印加する制御コマンドセットを供給するステップを含むことができる。
【００２７】
経験データの第1のインスタンスの各々が、対応する、開始ロボット状態と、開始ロボット状態から遷移した後続ロボット状態と、開始ロボット状態から後続ロボット状態へ遷移するために実行されるアクションと、アクションに対する報酬とを指示することができる。
【００２８】
いくつかの実装形態では、複数のロボットのうちの所与のロボットによって生成されたロボット経験データの所与のインスタンスを受信するステップを含む方法が提供される。ロボット経験データの所与のインスタンスは、タスクを実施する探査の所与のエピソード中に、所与のロボットによって所与のインスタンスを生成するのに利用されるポリシーネットワークのポリシーパラメータの所与のバージョンに基づいて生成される。本方法は、複数のロボットのうちの追加のロボットから、ロボット経験データの追加のインスタンスを受信するステップをさらに含む。追加のインスタンスは、追加のロボットによって、ポリシーネットワークに基づいてタスクを実施する探査のエピソード中に生成される。本方法は、所与のロボットおよび追加のロボットがタスクを実施する探査のエピソードを継続している間に、所与のインスタンスおよび追加のインスタンスに少なくとも部分的に基づくポリシーネットワークのトレーニングに基づいて、ポリシーネットワークのポリシーパラメータの新バージョンを生成するステップをさらに含む。本方法は、所与のロボットが、タスクを実施する探査の直後のエピソードをポリシーパラメータの新バージョンに基づいて実施するように、所与のロボットに対してポリシーパラメータの新バージョンを供給するステップをさらに含む。
【００２９】
本明細書で開示されたこれらの実装形態および他の実装形態は、以下の特徴のうちの1つまたは複数を含むことができる。
【００３０】
所与のインスタンスを受信するステップは、所与のロボットから経験データのインスタンスを受信する複数の経験データの繰返しのうちの1つの繰返しにおいて生じることができ、複数の経験データの繰返しは第1の周波数において生じる。更新されたパラメータを生成するように強化モデルをトレーニングするステップは複数のトレーニングの繰返しを実施するステップを含むことが可能であり、この複数のトレーニングの繰返しを実施するステップは、所与のインスタンスおよび追加のインスタンスに少なくとも部分的に基づくポリシーネットワークのトレーニングの、第1のトレーニングの繰返しと、複数のロボットからの経験データのまたさらなるインスタンスに基づく、ポリシーネットワークのトレーニングの1つまたは複数の追加のトレーニングの繰返しとを含む。トレーニングの繰返しは、経験データの繰返しよりも高い周波数である第2の周波数において生じることができる。
【００３１】
いくつかの実装形態では、非同期で同時に動作する複数のロボットによって生成された経験データのインスタンスを繰り返し受信するステップを含む方法が提供される。経験データのインスタンスの各々が、ポリシーニューラルネットワークに基づくタスク探査の対応するエピソード中に、複数のロボットのうちの対応するロボットによって生成される。本方法は、トレーニングの繰返しの各々においてポリシーネットワークの1つまたは複数の更新されたパラメータを生成するために、複数のロボットから受信された経験データに基づいてポリシーネットワークを繰り返しトレーニングするステップをさらに含む。本方法は、経験データのインスタンスが基づくタスク探査のエピソードに先立って、ロボットのポリシーニューラルネットワークを更新するために、更新されたパラメータのインスタンスをロボットに対して非同期で繰り返し供給するステップをさらに含む。
【００３２】
他の実装形態は、上記の方法および/または本明細書の他のところで説明される方法のうちの1つまたは複数などの方法を実施するために1つまたは複数のプロセッサ(たとえば1つもしくは複数の中央処理装置(CPU)、1つもしくは複数のグラフィック処理ユニット(GPU)、および/または1つもしくは複数のテンソル処理ユニット(TPU))によって実行可能な命令を記憶する非一時的コンピュータ可読記憶媒体を含む場合がある。もう1つの実装形態は、1つまたは複数のコンピュータのシステム、ならびに/あるいは上記および/または本明細書の他のところで説明された方法のうちの1つまたは複数などの方法を実施するために記憶された命令を実行するように動作可能な1つまたは複数のプロセッサを含む1つまたは複数のロボットを含む場合がある。
【００３３】
本明細書でより詳細に説明される前述の概念および追加の概念のすべての組合せは、本明細書で開示された主題の一部分として企図されていることを理解されたい。たとえば、この開示の最後に出現する特許請求された主題のすべての組合せは、本明細書で開示された主題の一部分として企図される。
【図面の簡単な説明】
【００３４】
【図１】本明細書で開示された実装形態が実施されてもよい例示的な環境を示す図である。
【図２】図1のロボットのうちの1つと、ロボットの把持エンドエフェクタの経路に沿った移動の一例とを示す図である。
【図３】ロボットによってエピソードを実施する一例を示す流れ図である。
【図４】経験データのインスタンスを記憶する例示的な方法を示す流れ図である。
【図５】ポリシーネットワークのパラメータを更新するためのトレーニングの例示的な方法を示す流れ図である。
【図６】ロボットの例示的な構造を表す概略図である。
【図７】コンピュータシステムの例示的な構造を表す概略図である。
【発明を実施するための形態】
【００３５】
ロボットの強化学習のアプリケーションは、実際の物理的システムの実用的なトレーニング時間を達成することを優先して、学習プロセスの自律性を損なうことが多い。強化学習プロセスのこの妥協は、手作業のポリシー表現および/または人手による実演を導入することによる場合がある。
【００３６】
この説明の実装形態は、1つまたは複数のロボットの動作性能を改善するための深層強化学習の方法の拡張を対象とする。以前に説明されたように、この実装形態は、ロボットによって実行される物理的作用における効率の利益などの動作上の利点をもたらし、また従前のロボットの強化学習のアプリケーションの短所を軽減する。これらは、人手による実演の必要性を軽減すること、および/または手作業のポリシー表現(たとえば「モデルベースの」ポリシー表現)の必要性を軽減することを含む場合がある。本明細書で説明されるいくつかの実装形態では、ポリシーをパラメータ化するポリシーニューラルネットワークが深層強化学習によってトレーニングされ、手作業のポリシー表現の必要性が軽減される。その上、ポリシーニューラルネットワークは、ロボットの環境のモデルを明示的に学習しないという点で「モデルなし」であることが可能である。特定の例の1つとして、いくつかの実装形態では、深層Q関数のオフポリシー型のトレーニングに基づく深層強化学習アルゴリズムは、複雑な3D操作タスクに合わせて調整することができ、実際の物理的ロボットによって生成された経験データに基づいて深層ニューラルネットワークポリシーをトレーニングするように十分効率的に学習することができる。それらの実装形態のうちのいくつかでは、それ自体のポリシー更新を非同期でプールする複数のロボットにわたってアルゴリズムを並行処理することにより、現実の(たとえば実時間の)トレーニング時間を短縮することができる。それらの実装形態のうちのいくつかでは、それ自体のポリシー更新を非同期でプールする複数のロボットにわたってアルゴリズムを並行処理すると、トレーニング時間を短縮することに加えてまたはその代わりに、トレーニングを所与の回数だけ繰り返した後には、そのような並行処理を利用しない場合よりも正確かつ/またはロバストなポリシーニューラルネットワークをもたらすことができる。これは、たとえばロボットによって、所与のインスタンスにおいて、このロボットからの経験データの過去のインスタンスと、並行動作している他のロボットからの経験データの過去のインスタンスとの両方に基づいて更新されたポリシーパラメータに基づいて生成される経験データによることが可能である。その上、本明細書で開示された技術のいくつかの実装形態により、いかなる従前の実演または手作業で設計された(たとえば「モデルベースの」)ポリシー表現も必要なく、実際のロボットにおける3次元("3D")ロボット操作タスク(たとえばドアを開くタスク、ピックアンドプレースタスク)の学習が可能になる。
【００３７】
以下でより詳細に説明されるように、様々な実装形態において、オフポリシー型の強化学習方法(たとえば深層Q関数のオフポリシー型のトレーニングに基づくQ学習)は、複雑な操作ポリシーをゼロから学習するように拡張される。それらの様々な実装形態のうちのいくつかでは、複雑な操作ポリシーが、ユーザの実演なしで学習され、かつ/またはタスクに特有の分野の知見を必要としないニューラルネットワーク表現を使用して学習される。また、それらの様々な実装形態のうちのいくつかでは、ポリシーは、深層決定論的ポリシー勾配アルゴリズム(DDPG)または正規化利益関数アルゴリズム(NAF)などのオフポリシー型の深層Q関数アルゴリズムを使用して学習される。たとえば、複数の実際の物理的ロボットにわたる並列NAFアルゴリズムを使用する非同期の深層強化学習などの非同期の深層強化学習が利用される場合がある。これにより、実際のロボットのプラットフォーム上のサンプル効率がよいトレーニング、トレーニングする際に複数のロボットの共有経験を使用することによる高い時間効率、ならびに/あるいは複数のロボットおよび/またはそれらの環境の間の多様性による、よりロバストなトレーニングが可能になる場合がある。トレーニングの時間効率が改善されると、たとえば改善されたポリシーを使用する実際の物理的ロボットが、物理的タスクをより早期に実行するようになる。これは、たとえば初期段階におけるロボットの消費電力の改善、ならびに/あるいはたとえばロボットのポリシーおよびもたらされる物理的作用における早期の改善によるロボットの関節に対する摩耗の全体的な速度の低下といった形の技術的利益をもたらす。
【００３８】
複数のロボットからの経験をプールするいくつかの過去のアプリケーション(集合的なロボットの学習)は、シミュレーション時間が低コストであり、トレーニングがニューラルネットワークの逆伝搬によって支配されるという想定の下で、全体的なトレーニング時間を短縮しようとする。対照的に、この説明のいくつかの実装形態は、経験が割高であってニューラルネットワークの逆伝搬が比較的安価である実際の物理的ロボットからのデータに基づいてトレーニングするときのトレーニング時間を最小化しようとする。たとえば、本明細書で開示される様々な実装形態は、互いに非同期で動作する複数のロボットから経験データを収集する。その上、様々な実装形態は、複数のロボットの動作とは非同期で(しかし同時に)ポリシーニューラルネットワークをトレーニングするのに、収集された経験データを利用する。たとえば、各ロボットのうちの1つのロボットのエピソードから収集された経験データのバッファは、ポリシーニューラルネットワークを更新するのに利用されることが可能であり、更新されたポリシーニューラルネットワークからの更新されたポリシーパラメータは、複数のロボットのうちの1つまたは複数による実施のために、対応する次のエピソードを実施する前に供給される。このように、経験データの収集は、複数のロボットの間で非同期であることが可能であり、ポリシーニューラルネットワークの更新に対して非同期であることが可能である。しかしながら、複数のロボットのそれぞれが、各エピソードにおいて、そのロボットの過去のエピソードからの経験データと他のロボットの過去のエピソードとに基づく更新されたポリシーパラメータを利用することができる。そのような非同期の実行およびニューラルネットワークのトレーニングは、複数のロボットのプラットフォームにわたって経験を同時に収集することの結果として、全体的なトレーニング時間のスピードアップを達成する場合がある。
【００３９】
実際のロボットの環境、特に接触イベントを伴う環境では、大抵の場合環境ダイナミクスは利用不可能であるか、または正確にモデル化することができない。この点からみて、本明細書で開示される実装形態は、ポリシー探索方法および価値反復方法を含む、モデルなしの強化学習に注目する。ポリシー探索方法は、真の目的を最適化する直接的なやり方を供するが、オンポリシー型の学習のために、価値反復方法よりもかなり多くのデータを必要とすることが多い。したがって、本明細書で開示されるいくつかの実装形態は、関数近似を伴うQ学習に基づく価値反復方法などの価値反復方法に特に注目する。DDPGおよびNAFは価値反復方法の2つの例であり、深層Q学習を連続した行動空間へと拡張し、たとえばリプレイバッファによるオフポリシー型の学習のために、匹敵するポリシー探索方法よりもサンプル効率がよい。
【００４０】
強化学習の目的は、ロボットスキル(本明細書でタスクとも称される)の状況では、ユーザから与えられた、ロボットが達成するべきものの定義を表す報酬関数を最大化しようとするエージェントを制御することである。時間tにおける状態xtにおいて、エージェントは、そのポリシーπ(ut|xt)に従ってアクションutを選択して実行し、ダイナミクスp(xt|xt, ut)に従って新規の状態xtへ遷移し、報酬r(xt, ut)を受信する。本明細書で説明される実装形態では、無限計画対象期間の割引累積報酬問題が考慮に入れられる。無限計画対象期間の割引累積報酬問題の目的は、以下で与えられる時間tからTまでの割引率γの将来の報酬である。
【数１】
2019529135.tif 000003
目的は、初期状態の分布から、以下で与えられる、予期される報酬の合計を最大化する最適なポリシーπ*を発見することである。
【数２】
2019529135.tif 000004
【００４１】
強化学習方法の中でも、Q学習などのオフポリシー型の方法は、オンポリシー型の変形形態と比較してデータ効率の利益を供する場合がある。これは、ロボットのアプリケーションにとって有益な場合がある。Q学習は、ポリシーのQ関数
【数３】
2019529135.tif 000005
を学習するステップと、Q関数
【数４】
2019529135.tif 000006
を貪欲に最大化することによってポリシーを更新するステップとの間を繰り返すことにより、貪欲な決定論的ポリシーπ(ut|xt)=δ(ut=μ(xt))を学習する。
【数５】
2019529135.tif 000007
はアクション値の関数をパラメータ化し、βは任意の探査ポリシーであり、pβはβによって誘起される状態到達であり、学習目的は、目標ytが以下のように固定された状況でベルマン誤差を最小化することである。
【数６】
2019529135.tif 000008
【００４２】
連続アクション問題については、ポリシー更新ステップが、深層ニューラルネットワークによってパラメータ化されたQ関数のために至難である可能性がある。したがって、本明細書で説明された様々な実装形態では、関数近似を用いるQ学習の拡張が利用される場合がある。DDPGおよびNAFは、関数近似を用いるQ学習の拡張の2つの例である。DDPGはアクタークリティック法(actor-critic method)を採用することによって至難問題を回避するが、NAFは、離散アクションの場合と同様に閉形式の更新を可能にするために、以下の式に対するQ関数のクラスを制限する。探査中に、時間的に関連付けられたノイズが、オプションでポリシーネットワーク出力に追加されてもよい。
【数７】
2019529135.tif 000009
【００４３】
この強化学習構成は、報酬関数によって定義された様々なロボットのスキルを学習するようにロボットシステムに適用することができる。しかしながら、学習プロセスは一般的には時間がかかる。したがって、本明細書で開示された実装形態では、これらの問題の一方または両方を緩和するために、NAFの並行処理される変形形態またはDDPGの並行処理されるバージョンが利用されてもよい。これにより、複雑な実際のロボットタスクに関して、ニューラルネットワークによってパラメータ化されたQ関数をゼロから学習することが可能になる場合がある。実用的なロボットの深層学習のアプリケーションでは、学習時間は実際のロボットのデータ収集レートによって、ネットワークのトレーニング速度ではなく実時間に制限される制約を加えられる。したがって、本明細書で開示される様々な実装形態は、データ収集のために複数の実際のロボットを効果的に使用して学習の現実の速度を増すために、非同期NAFの使用を提案する。これは、もちろん、物理的タスクを実行するロボットが習得されたポリシーを実施するとき、以前に論じられたような対応する効率の利益とともに、現実のロボット性能において、より迅速な改善を達成する。その上、本明細書で開示された様々な実装形態は、Q学習中に(たとえば探査の程度を向上するために、ポリシーネットワーク出力に対して、時間的に関連付けられた大きなノイズを付加することにより)アクティブな探査を達成し、これはゼロから学習するときに必要とされ、かつ/または有益な場合がある。それらの実装形態のうちのいくつかでは、探査を実施するロボットの1つまたは複数の基準(たとえば安全基準および/または他の基準)の違反を最小化するかまたは防止しながら、アクティブな探査を達成するための技術が採用される場合がある。
【００４４】
本明細書で開示された非同期NAFの実装形態では、(ポリシーニューラルネットワークを更新する/トレーニングする)トレーニングスレッドは、(探査中に1つまたは複数のロボットからそれぞれ経験データを収集する)経験収集スレッドから分離されている。それらの実装形態のうちのいくつかでは、トレーニングスレッドと収集スレッドを分離すると、固定周波数で制御を送信しなければならないことが多い、経験データを生成するロボットの制御プログラムが、トレーニングの速度と収集の速度の差によって停止することのないように保証される場合がある。トレーニングスレッドが、(経験収集スレッドが存在する)リプレイバッファからのトレーニングを続けている間に、各エピソードの始まりにおいてそれぞれのポリシーパラメータをトレーニングスレッドと同期させる(たとえば、トレーニングスレッドのつい最近の繰返しにおいて生成された、更新されたパラメータを用いてそれ自体のポリシーニューラルネットワークを更新する)経験収集スレッドは、ロボットに対するコマンドを実行して、リプレイバッファに経験データのインスタンスを押し込む。
【００４５】
N個の収集スレッドおよび1つのトレーニングスレッドを用いて非同期NAFを実施するためのアルゴリズムの一例の概要が以下に示される。例示のアルゴリズムは1つのトレーニングスレッドを伴って示されるが、いくつかの実装形態では、複数のトレーニングスレッド(たとえば複数のスレッドにわたって分配されたトレーニング)が用意されてよい。
【数８】
2019529135.tif 000010
【００４６】
本明細書で説明されたように、様々な実装形態において、ニューラルネットワークはアクション値関数およびポリシーをパラメータ化してもよい。それらの実装形態のうちのいくつかでは、ポリシーに基づいて実施されるアクションを表す出力を生成する際にモデルに対する入力として様々な状態表現が利用される場合がある。状態表現は、ロボットの状態と、オプションの1つまたは複数の環境物体の状態とを指示することができる。一例として、ロボットの状態表現は、関節角度およびエンドエフェクタの位置、ならびにそれらの時間微分を含む場合がある。いくつかの実装形態では、成功信号(たとえば目標位置)が、ロボットの状態表現に添付される場合がある。本明細書で説明されたように、成功信号は、アクションに対する報酬を判定する際に、および/または他の目的のために利用される場合がある。特定の成功信号は、強化学習が目的とするタスクに依拠することになる。たとえば、到達するタスクについては、成功信号はエンドエフェクタの目的位置/目標位置でもよい。別の例として、ドアを開くタスクについては、ドアが閉まっているときには、成功信号は、取っ手位置およびドア枠に取り付けられたセンサ(たとえばドア枠に取り付けられた慣性計測ユニット)の四元数測定値を含む場合がある。様々な実装形態において、アクション値関数とポリシーとをパラメータ化するためのポリシーニューラルネットワークとして、標準的なフィードフォワードネットワークが利用されることが可能である。一例として、m(x)、L(x)(P(x)のコレスキー分解)、NAFにおけるV(x)、ならびにDDPGにおけるm(x)およびQ(x;u)の各々をパラメータ化するのに、それぞれが100ユニットのサイズを有する2つの隠れ層のネットワークが使用されてもよい。DDPGにおけるQ(x; u)については、線形予測が続く第2の隠れ層に対する別の入力として、アクションベクトルuが追加される場合がある。隠れアクティブ化としてReLUが使用されてもよく、最終層のアクティブ化のためにアクションスケールに対する境界を示すのに、双曲正接(Tanh)がポリシーネットワークm(x)においてのみ使用されてもよい。
【００４７】
本明細書で説明されたように、いくつかの実装形態では、探査を実施するロボットの1つまたは複数の基準(たとえば安全基準および/または他の基準)の違反を最小化するかまたは防止しながら、アクティブな探査を達成するための技術が採用される場合がある。それらの実装形態のうちのいくつかでは、基準は、ロボットの各関節に対する速度制限、ロボットの各関節の位置制限、ならびに/あるいはロボットの他の運動学の制約および/または動的制約を含む場合がある。たとえば、ロボットによる探査中に(たとえば利用されているポリシーネットワークによって)コマンドされた出力が、関節の速度制限を超える速度を指示する場合、その速度は、出力の実施に先立って修正されてもよく(たとえば速度制限まで低下されてもよく)、または代わりに誤差を明らかにして、探査の新規のエピソードを開始してもよい。
【００４８】
いくつかの実装形態では、エンドエフェクタの位置の境界を示す球体(または境界を示す他の形状)が基準として利用される場合がある。ロボットによる探査中に、コマンドされた出力によってロボットのエンドエフェクタが境界を示す球体の外部へ送られると、コマンドされた速度にいくらかの補正速度を加えて球体の表面に投射するのに、ロボットの順運動学が利用される場合がある。追加の基準および/または代替の基準が利用されてもよい。たとえば、ドアの開/閉などの特定のタスクを学習するために探査が実施されているときには、ロボットが特定の物体(たとえばドア)を強く押しすぎるのを防止するための基準が設けられてもよい。たとえば、ドアの閉位置の先の数センチメートルのところに、追加の境界を示す面が追加されてもよく、かつ/または(たとえばドアまたは取っ手との接触のために、コマンドされた速度を達成することができない場合、ロボットが過剰なトルクを加えることのないように)ロボットの1つまたは複数の関節にトルク限界が追加されてもよい。
【００４９】
次に、図を参照しながら、上記のさらなる説明およびさらなる実装形態が提供される。図1は、本明細書で開示された実装形態が実施されてもよい例示的な環境を示す。図1には例示のロボット180Aおよび180Bが含まれる。ロボット180Aおよび180Bは、ロボットの運動によって、把持エンドエフェクタ182Aおよび182Bを複数の可能な経路のうちの任意のものに沿って移動させて所望の場所に位置決めすることを可能にする、多自由度を有する「ロボットアーム」である。たとえば図2を参照すると、それのエンドエフェクタを経路201に沿って移動させるロボット180Aの一例が示される。図2は、経路201に沿って移動するときのロボット180Aおよびそのエンドエフェクタの姿勢のセットの2つの別々の姿勢を示す、ロボット180Aのファントム画像および非ファントム画像を含む。図1を再び参照して、ロボット180Aおよび180Bのそれぞれが、対応する把持エンドエフェクタ182A、182Bの2つの対向した「爪」を、少なくとも開位置と閉位置(および/またはオプションの複数の「部分的に閉じた」位置)との間で、作動させるようにさらに制御する。
【００５０】
図1には例示の視覚センサ184Aおよび184Bも示される。図1において、視覚センサ184Aは、ロボット180Aのベースまたは他の静止した基準点に対して一定の姿勢で取り付けられる。視覚センサ184Bも、ロボット180Bのベースまたは他の静止した基準点に対して一定の姿勢で取り付けられる。図1に示されるように、ロボット180Aに対する視覚センサ184Aの姿勢は、ロボット180Bに対する視覚センサ184Bの姿勢とは異なる。本明細書で説明されたように、いくつかの実装形態では、これは(視覚センサ184Aおよび184Bからのセンサデータによって経験データが少なくとも部分的に影響を受ける場合に)ロボット180Aおよび/または180Bの各々によって生成された経験データの多様性をもたらすのに有益な場合がある。視覚センサ184Aおよび184Bは、画像あるいは形状、色、奥行き、および/またはセンサの見通し線における物体の他の特徴に関係のある他の視覚データを生成することができるセンサである。視覚センサ184Aおよび184Bは、たとえばモノグラフのカメラ、立体画法のカメラ、および/または3Dレーザスキャナでもよい。3Dレーザスキャナは、光を放射する1つまたは複数のレーザと、放射光の反射に関係のあるデータを収集する1つまたは複数のセンサとを含む。3Dレーザスキャナは、たとえば飛行時間の3Dレーザスキャナまたは三角測量ベースの3Dレーザスキャナでもよく、位置敏感型検知器(PSD)または他の光位置センサを含む場合がある。
【００５１】
視覚センサ184Aは、例示のへら191Aを含む作業空間の部分などのロボット180Aの作業空間の少なくとも一部分の視野を有する。図1にはへら191Aを置く面は示されないが、へら191Aは、テーブル、ビン、および/または他の面に置かれてもよい。他の実装形態では、本明細書で説明されたようにロボット180Aによって実施される1つまたは複数のエピソード中に、より多数の物体、より少数の物体、追加物体、および/または代替物体が与えられる場合がある。エピソードの各々は、へら191Aおよびホッチキス191Bのうちの対応するものを包含しているタスク(たとえば物体への接触、物体の「ピックアンドプレース」)を実施する際の探査でもよい。追加物体および/または代替物体が与えられてもよい。たとえば、「ドアを開ける」タスクについては、ロボット180Aおよび180Bの各々の環境にドアが与えられてもよい。視覚センサ184Bは、例示のホッチキス191Bを含む作業空間の部分などのロボット180Bの作業空間の少なくとも一部分の視野を有する。図1にはホッチキス191Bを置く面は示されないが、ホッチキス191Bは、テーブル、ビン、および/または他の面に置かれてもよい。他の実装形態では、本明細書で説明されたようにロボット180Bによって実施される1つまたは複数のエピソード中に、より多数の物体、より少数の物体、追加物体、および/または代替物体が与えられる場合がある。
【００５２】
図1には特定のロボット180Aおよび180Bが示されるが、ロボット180Aおよび180Bに類似の追加のロボットアーム、他のロボットアームの形態を有するロボット、人型ロボット、動物型ロボット、1つまたは複数のホイールによって移動するロボット(たとえば自動均衡のロボット)、水中作業ロボット、無人飛行機("UAV")などを含む追加のロボットおよび/または代替のロボットが利用されてもよい。また、図1には特定の把持エンドエフェクタが示されるが、追加のエンドエフェクタおよび/または代替エンドエフェクタが利用される場合がある。たとえば、把持することができないエンドエフェクタが利用されてもよい。加えて、図1には視覚センサ184Aおよび184Bの特定の台が示されるが、追加の台または代替の台が利用されてもよく、あるいは視覚センサが省略されてもよい。たとえば、いくつかの実装形態では、視覚センサは、ロボットの非可動構成要素またはロボットの可動構成要素(たとえばエンドエフェクタ、またはエンドエフェクタに近接した構成要素)などにおいてロボットに直接取り付けられる場合がある。また、たとえばいくつかの実装形態では、視覚センサは、関連するロボットとは別個の静止していない構造に取り付けられてもよく、かつ/または関連するロボットとは別個の構造に対して静止していないやり方で取り付けられてもよい。
【００５３】
それぞれがモデルなしの強化学習ネットワークに基づいてタスクを実施する探査である複数のエピソードを実施するのに、ロボット180A、180B、および/または他のロボットが利用される場合がある。たとえば、ロボット180Aおよびロボット180Bは、それぞれが、決定論的なポリシー関数を表現する深層ニューラルネットワークなどのポリシーネットワークを含む場合がある。エピソードの始まりにおいて、ロボットの現在の状態(たとえば疑似ランダム的に選択された起動状態)が、成功信号(たとえば到達タスクについてはエンドエフェクタの目標位置)、および入力に基づいてポリシーネットワークにわたって生成された出力とともに、ポリシーネットワークに対する入力として適用されてもよい。ポリシーネットワークの出力は、ロボットの次の制御サイクルにおいて実施されるアクションを指示する。たとえば、ポリシーネットワークの出力は、ロボットのアクチュエータの各々に対する関節空間における速度コマンドでもよい。別の例として、ポリシーネットワーク出力は、ロボットのアクチュエータの各々に関するモータのトルクでもよい。次いで、そのアクションがロボットによって実施される。次いで、アクションを実施した後のロボットの状態が、成功信号、および入力に基づきネットワークにわたって生成された追加の出力とともに、ポリシーネットワークに対する入力として適用されることが可能である。これは、(たとえばロボットの各制御サイクルにおいて)成功信号が達成される(たとえば報酬が基準を満たすことに基づいて判定される)、かつ/または他の基準が満たされるまで、繰り返し実施され続けてもよい。他の基準は、たとえばエピソードの時間的な期間が閾値(たとえばX秒)を満たすこと、また制御サイクルの閾値量が生じることであることが可能である。成功信号の後、および/または他の基準が満たされた後に、新規のエピソードを開始してもよい。
【００５４】
図1に示され、本明細書でより詳細に説明されたように、経験収集エンジン112は、エピソードを実施している間に、ロボット180Aおよびロボット180B(およびオプションの追加のロボット)によって生成された経験データのインスタンスを受信する。たとえば、ロボット180Aは、その制御サイクルの各々において、エピソードを実施しながら、経験データの新規のインスタンスを経験収集エンジン112に供給してもよい。別の例として、ロボット180Aは、エピソードの終了において、エピソード中に生成された経験データのすべてのインスタンスを経験収集エンジン112に供給することができる。さらに別の例として、ロボット180Aは、0.2秒ごとに、または他の通常もしくは非通常の間隔において、経験データの新規のインスタンスを供給することができる。経験データの各インスタンスは、対応する繰返しにおいて、ロボットのポリシーネットワークに与えられた入力および/またはロボットのポリシーネットワークにわたって生成された出力に基づいて、対応するロボットによって生成される。たとえば、経験データの各インスタンスは、ロボットの現在の状態、ポリシーネットワークの出力に基づいて実施されるアクション、アクションを実施した後のロボットの状態、および/またはアクションに対する報酬(ポリシーネットワークにわたって生成された出力および/または個別の報酬関数によって指示されるもの)を指示してもよい。
【００５５】
経験収集エンジン112は、経験データの受信されたインスタンスをリプレイバッファ122に記憶する。リプレイバッファ122は、トレーニングエンジン114にアクセス可能なメモリおよび/またはデータベースを含むことができる。示される経験収集エンジン112は1つであるが、複数の経験収集エンジン112が設けられる場合があることが理解される。たとえば、各ロボットが、独自の経験収集エンジンを含むかまたはこれに関連付けられてもよく、すべてのエンジンが、経験データのインスタンスをリプレイバッファ122に記憶してもよい。
【００５６】
トレーニングエンジン114は、本明細書で説明されたものなどの技術(たとえばNAFおよび/またはDDPGの変形形態などのQ学習に関係のあるもの)を利用して、ポリシーネットワーク124の1つまたは複数のパラメータを繰り返しトレーニングする。トレーニングエンジン114は、トレーニングのそれぞれの繰返しにおいて、リプレイバッファ122の経験データの1つまたは複数のインスタンスのグループを利用して、更新されたポリシーパラメータを生成してもよい。利用されたインスタンスは、トレーニングエンジン114によってリプレイバッファ122からオプションでクリアされてもよく、かつ/または別のやり方で(たとえば先入れ先出し方式で)クリアされてもよい。
【００５７】
ロボットは、ロボット180Aと180Bのいずれかによる新規のエピソードのそれぞれの実施に先立って、トレーニングエンジン114によってつい最近生成されたポリシーパラメータを用いて、そのポリシーネットワークを更新してもよい。いくつかの実装形態では、ポリシーパラメータは、トレーニングエンジン114によってロボット180Aおよび180Bへ「プッシュ」されてもよい。いくつかの他の実装形態では、ポリシーパラメータは、ロボット180Aおよび180Bによって「プル」されてもよい。したがって、図1の実装形態では、ロボット180Aと、ロボット180Bと、オプションの追加のロボットとが、それぞれ同一のモデルなしの強化ポリシーネットワークに基づいて複数のエピソードを実施しながら並行して動作する場合がある。しかしながら、ロボットのうちの1つまたは複数が利用するポリシーパラメータは、1つまたは複数の時間において、ロボットの他の1つまたは複数が利用するものから異なる場合がある。たとえば、所与のエピソードの開始に先立つ時間T1において、ロボット180Aは、そのポリシーパラメータを直近更新されたポリシーパラメータに同期させてもよい。しかしながら、ロボット180Bは、時間T1において1つのエピソードにあって、依然として、トレーニングエンジン114の従前の繰返し(直前の繰返しまたは従前の複数の繰返し)から更新の少ないポリシーパラメータの下で動作している可能性がある。時間T2において、ロボット180Bは、そのポリシーパラメータを、またさらに更新されたポリシーパラメータと同期させてもよく、しかし、ロボット180Aは、時間T2において、依然として所与のエピソードにあって、依然として時間T1の(より少ない)更新のポリシーパラメータの下で動作している可能性がある。
【００５８】
本明細書で説明されたように、ロボット180A、180B、および/または他のロボットの各々の経験データのインスタンスは、ロボットの並行運転中に生成されるので、経験収集エンジン112によってリプレイバッファ122に追加されてもよい。いくつかの実装形態では、ロボットの各々の経験データは、(たとえばロボットの制御サイクル周波数における)各ロボットの対応する周波数において(オプションで同一の周波数で)リプレイバッファ122に追加されてもよい。たとえば、あるロボットは、60Hzの制御周波数を有し、経験データを60Hzで供給する(すなわち経験データのインスタンスを毎秒60回供給する)ことができる。それらの実装形態のうちのいくつかでは、トレーニングエンジン114は、ロボットの周波数のうちの1つまたは複数(たとえばすべて)よりも高い周波数でトレーニングの繰返しを実施してよく、それらの繰返しを、ロボットがエピソードに基づく経験データを並行動作で生成し続けている間に実施してもよい。これらの技術のうちの1つまたは複数を採用すれば、不採用の場合よりも、ポリシーネットワークがより迅速に収斂する可能性がある。
【００５９】
図1において、経験収集エンジン112、リプレイバッファ122、トレーニングエンジン114、およびポリシーネットワーク124は、ロボット180Aおよび180Bから分離して示される。しかしながら、いくつかの実装形態では、それらの構成要素のすべて、あるいはそれらの構成要素のうちの1つまたは複数のものの態様が、ロボット180Aおよび/またはロボット180B上で(たとえばロボット180Aおよび180Bの1つまたは複数のプロセッサによって)実施される場合がある。たとえば、ロボット180Aおよび180Bのそれぞれが経験収集エンジン112のインスタンスを含む場合がある。いくつかの実装形態では、それらの構成要素のすべて、あるいはそれらの構成要素のうちの1つまたは複数のものの態様が、ロボット180Aおよび180Bから分離されてこれらとネットワーク通信する1つまたは複数のコンピュータシステム上で実施される場合がある。それらの実装形態のうちのいくつかでは、経験データはロボットから1つまたは複数のネットワークを通じて構成要素に伝送されることが可能であり、更新されたポリシーパラメータは、構成要素から、ネットワークのうちの1つまたは複数を通じてロボットに伝送されることが可能である。
【００６０】
図3は、物体運動の試みを実施するステップと、物体運動の試みに関連したデータを記憶するステップとの例示的な方法300を示す流れ図である。便宜上、流れ図の動作は、動作を実施するシステムを参照しながら説明される。このシステムは、プロセッサなどロボットの1つまたは複数の構成要素、ならびに/あるいはロボット180A、180B、640、および/または他のロボットのロボット制御システムを含む場合がある。その上、方法300の動作は特定の順序で示されるが、これは限定することを意味するわけではない。1つまたは複数の動作が、並べ替えられてよく、省略されてよく、または追加されてもよい。
【００６１】
ブロック352において、エピソードはタスクの実施を開始する。
【００６２】
ブロック354において、システムは、利用可能な更新されたパラメータがあれば、更新されたパラメータに基づいてシステムによって使用されるポリシーネットワークのポリシーパラメータを同期させる。たとえば、システムは、図5の方法500に基づいて生成された1つまたは複数の最近更新されたポリシーパラメータでポリシーネットワークの1つまたは複数のポリシーパラメータを置換してもよい。いくつかの実装形態では、ポリシーパラメータを別のポリシーパラメータで置換するステップは、ニューラルネットワークモデルのノードの値を別の値で置換するステップを含む。
【００６３】
ブロック356において、システムはタスク探査のためのランダムプロセスを初期化する。本明細書で使用されるように、ランダムは真ランダムばかりでなく疑似ランダムも含む。一例として、システムは、ロボットのエンドエフェクタをランダムな開始位置へ移動させてもよい。別の例として、システムは、ロボットの関節の各々に、それぞれの特定の運動状態(たとえば特定の位置、速度、および/または加速度)を想定してもよい。
【００６４】
ブロック358において、システムは現在の状態を識別する。現在の状態は、現在のロボット状態ならびに/あるいは1つまたは複数の環境物体の現在の状態を含むことができる。環境物体の現在の状態は、それらの環境物体に取り付けられたセンサおよび/またはロボットからのセンサデータに基づいて判定されることが可能である。たとえば、環境物体の現在の状態は、ドアを開くタスクのときには、ドアに取り付けられた慣性測定ユニット("IMU")など1つまたは複数のセンサからのセンサデータに基づくことが可能である。また、たとえば環境物体の現在の状態は、ロボットの視覚センサによって捕捉された視覚センサデータに基づくことが可能である(たとえば、物体の現在の位置は、ロボットの視覚センサからの視覚センサデータに基づいて判定されることが可能である))。ブロック358の第1の繰返しでは、現在のロボット状態は、ブロック356の初期化後の初期のロボット状態になる。たとえば、初期のロボット状態は、関節および/またはエンドエフェクタの各々の位置、速度、および/または加速度などのロボットの1つまたは複数の構成要素の現在の状態を含む場合がある。
【００６５】
ブロック360において、システムは、現在の状態およびポリシーネットワークに基づいて、実施するアクションを選択する。たとえば、システムは強化学習ポリシーモデルに対する入力として現在の状態を適用してよく、入力に基づき、実施するべきアクションを指示する出力をモデルにわたって生成してもよい。システムは、出力を基にアクションを選択してもよい。いくつかの実装形態では、出力は、ロボットのアクチュエータに印加するべきトルク値および/または他の値を含み、アクションを選択するステップは、それらの値をアクションとして選択するステップを含む場合がある。ブロック358において追加または代替の現在の観測が識別される実装形態では、これらの観測もポリシーネットワークに対する入力として印加される場合がある。
【００６６】
ブロック362において、システムはアクションを実行して、アクションに由来する報酬および後続の状態を観測する。たとえば、システムは、アクチュエータのうちの1つまたは複数を動かしてアクションを有効にするための1つまたは複数の運動コマンドを生成してもよい。システムは、報酬関数と、オプションのシステムに供給された成功信号とに基づいて報酬を観測してもよい。たとえば、エンドエフェクタの目標の姿勢に達するタスクに対する報酬関数は、エンドエフェクタのアクションに由来する姿勢と、(成功信号として供給される)目標の姿勢の間の差に基づいてもよい。後続の状態は、後続ロボット状態ならびに/あるいは1つまたは複数の環境物体の後続の状態を含むことができる。たとえば、後続ロボット状態は、関節および/またはエンドエフェクタの各々の位置、速度、および/または加速度などのロボットの1つまたは複数の構成要素のアクションの結果としての状態を含む場合がある。いくつかの実装形態では、ブロック362において、システムは、それに加えてまたはその代わりに、アクションを実施した後のロボットの視覚センサが捕捉した視覚センサデータおよび/または他のセンサからの他のセンサデータなどの他の観測をアクションの結果として識別する。
【００６７】
ブロック364において、システムは、経験データのインスタンスをリプレイバッファに送信する。たとえば、システムは、それ自体がインスタンスをリプレイバッファに記憶してもよく、またはインスタンスをリプレイバッファに記憶する個別の構成要素にインスタンスを供給してもよい。図5の方法500に関して説明されたように、ポリシーパラメータを更新するためのトレーニング中に、インスタンスおよび他のロボットからの他のインスタンスが使用されてもよい。いくつかの実装形態では、経験データは、ブロック358の現在の状態、ブロック360のアクション、および/または観測された報酬および/またはブロック362の後続の状態を指示するデータを含む場合がある。
【００６８】
ブロック366において、システムは、成功したかどうか、または他の基準が満たされたかどうかを判定する。たとえば、ブロック362において観測された報酬が閾値を満たす場合には、システムは成功と判定してもよい。また、たとえば基準は、ブロック358、360、362、および364の繰返しの閾値時間および/または閾値回数が満たされることといった別のものでもよい。
【００６９】
システムは、成功したことまたは他の基準が満たされたことを判定すると、ブロック352へ進んで新規のエピソードを開始する。新規のエピソードでは、システムは、新規のエピソードのブロック354において、ポリシーパラメータを、直前のエピソードにおけるパラメータに関連して(図5の方法500および/または他の方法によるパラメータの同時更新の結果として)更新された、1つまたは複数の更新されたパラメータと同期させることができることに留意されたい。たとえば、更新されたパラメータは、図3の方法300に従って非同期で経験データを生成している1つまたは複数の他のロボットからの経験データを利用して、図5の方法500によって更新されることが可能である。これらおよび他のやり方では、図3のそれぞれのエピソードは、他のロボットからの経験データに基づいて更新されたポリシーパラメータを利用することができる。これは、より効率のよいトレーニングを可能にする経験データを生成するそれぞれのエピソードをもたらすことができる。方法300を利用するシステムによって、複数のエピソードが、(図5の方法500および/または他の方法による)トレーニングが終了するまで、および/または(たとえば誤差が生じて)他の何らかの信号が受信されるまで、実施されてもよい。
【００７０】
システムは、不成功であることまたは他の基準が満たされていないことを判定すると、ブロック358へ進んで、ブロック358、360、362、および364の追加の繰返しを実施する。
【００７１】
図3にはブロック370、372、および374も示されており、これらが表すオプションのブロックは、ブロック360のアクションのうちのいずれかがロボットの1つまたは複数の基準に違反するかどうか判定して、違反する場合には、ブロック362におけるアクションの実行に先立って訂正動作を採用するように実施されてもよい。ブロック370において、システムは、ブロック360のアクションが1つまたは複数のロボットの基準に違反するかどうか判定する。違反しなければ、システムはブロック362へ進んでアクションを実行する。
【００７２】
システムは、ブロック360のアクションが1つまたは複数のロボットの基準に違反すると判定した場合には、ブロック372またはブロック374へ進む。システムは、ブロック372において、基準に違反しないようにアクションを修正し、ブロック362において、元のアクションの代わりに実行するように修正されたアクションを供給してもよい。たとえば、速度の制約に違反する場合、もはや速度の制約に違反しないようにアクションを修正してもよい。修正されたアクションは、経験データのインスタンスにおいて未修正のアクションの代わりに供給されることが可能である。
【００７３】
ブロック374において、システムは、ロボットの基準の特定の違反に応答して、オプションでエピソードを停止してもよい。システムは、ブロック374においてエピソードを停止するとブロック352へ戻り、かつ/または介入(たとえば人間の介入)を待つ。
【００７４】
本明細書で説明されたように、多くの実装形態では、図3の方法300は、方法300のそれぞれの繰返しのうちの1つまたは複数(たとえばすべて)を通じて並行動作する複数のロボットの各々において実施されてもよい。たとえば、第1のロボットの1つまたは複数のプロセッサは方法300のインスタンス化を実施することができ、第2のロボットの1つまたは複数のプロセッサは方法300のインスタンス化を実施することができるなどである。これによって、ロボットが1台だけで方法300を操業する場合よりも、所与の期間において経験データのより多くのインスタンスが生成されることを可能にしてよい。これにより、所与のロボットによる経験データの生成よりも高い周波数でポリシーニューラルネットワークのトレーニングが生じる実装形態において、ポリシーニューラルネットワークが時間的に効率よくトレーニングされるようになることが可能である。加えて、これにより、所与のロボットによる方法300の各エピソードは、他のロボットからの経験データに基づいて更新された経験データを利用することができるようになる。これは、非同期の経験データに基づく非同期のトレーニングを利用しない場合よりも少数の繰返しで収斂するポリシーニューラルネットワークのトレーニングをもたらすことができる。その上、複数のロボットのエンドエフェクタ、センサ、アクチュエータ、および/または他のハードウェア構成要素が一様でない、かつ/または別な風に摩耗する実装形態、ならびに/あるいは様々なロボットが、様々な環境(たとえば様々な表面、様々な照明、様々な環境障害物)において様々な物体(たとえば様々なサイズ、様々な重さ、様々な形状、様々な透光性、様々な材料の物体)と相互作用する実装形態では、トレーニングにおいて、複数のロボットによって生成された経験データを利用すると、トレーニングされたポリシーネットワークにおいて、様々なロボットの構成および/または環境の構成にロバスト性がもたらされる場合がある。
【００７５】
図4は、経験データのインスタンスを記憶する例示的な方法400を示す流れ図である。便宜上、流れ図の動作は、動作を実施するシステムを参照しながら説明される。このシステムは、1つまたは複数のコンピュータシステムのプロセッサなどの1つまたは複数の構成要素を含んでよく、かつ/または1つもしくは複数のロボットのプロセッサおよび/またはロボット制御システムなどのロボットの1つまたは複数の構成要素を含んでもよい。その上、方法400の動作は特定の順序で示されるが、これは限定することを意味するわけではない。1つまたは複数の動作が、並べ替えられてよく、省略されてよく、または追加されてもよい。
【００７６】
ブロック452において経験データの収集が始まる。
【００７７】
ブロック454において、システムは、ロボットの経験データのインスタンスを受信する。ロボットは、システムおよび/または他のシステムに経験データを並行して(オプションで異なる周波数において)供給する複数のロボットのうちの1つである。たとえば、各ロボットが図3の方法300を実施してもよく、方法300のブロック364を実施することのそれぞれのインスタンスに応答してブロック454が実施されてもよい。
【００７８】
ブロック456において、システムは、経験データのインスタンスをリプレイバッファに記憶する。ブロック458において、システムは、トレーニングが完了したかどうか判定する。システムは、リプレイバッファに記憶された経験データに基づいてポリシーパラメータを更新しているオプションで分離されたトレーニングシステムからの信号に応答して、トレーニングが完了したと判定してもよい。
【００７９】
システムは、ブロック458においてトレーニングが完了していないと判定した場合にはブロック454へ戻って、(同一のロボットまたは異なるロボットからの)経験データのさらなるインスタンスを受信する。複数のロボットからの経験データの同時受信を可能にするために、方法400のブロックの1つまたは複数のものの複数のスレッドが実施される場合があることが理解される。
【００８０】
システムが、ブロック458において、トレーニングが完了していると判定すると、ブロック460において経験データの収集が終了する。
【００８１】
本明細書では、方法300と方法400は、明瞭さのために個別の図に示されるが、方法300の1つまたは複数のブロックを実施するものと同じ構成要素によって方法400の1つまたは複数のブロックが実施されてもよいことが理解される。たとえば、方法300および方法400のブロックのうちの1つまたは複数が(たとえばすべてが)ロボットのプロセッサによって実施される場合がある。また、方法400の1つまたは複数のブロックが、方法300の1つまたは複数のブロックに先行して、または続いて、またはそれと組み合わせて実施される場合があることが理解される。
【００８２】
図5は、ポリシーネットワークのパラメータを更新するためのトレーニングの例示的な方法500を示す流れ図である。便宜上、流れ図の動作は、動作を実施するシステムを参照しながら説明される。このシステムは、トレーニングエンジン114のプロセッサ(たとえばGPUおよび/またはCPU)などのコンピュータシステムおよび/または他のコンピュータシステムの1つまたは複数の構成要素を含む場合がある。その上、方法500の動作は特定の順序で示されるが、これは限定することを意味するわけではない。1つまたは複数の動作が、並べ替えられてよく、省略されてよく、または追加されてもよい。
【００８３】
ブロック552においてトレーニングが始まる。
【００８４】
ブロック554において、システムは、ランダムに初期化されたQ関数推定をパラメータ化する正規化Qネットワークなどの正規化Qネットワークを初期化する。たとえば、システムは正規化Qネットワーク
【数９】
2019529135.tif 000011
を初期化してもよく、ここで
【数１０】
2019529135.tif 000012
である。
【００８５】
ブロック556においてシステムによって初期化された対象のポリシーネットワークが、ブロック554において、初期化された正規化Qネットワークに対する入力であるアクションを出力する。たとえば、システムは、対象のポリシーネットワーク
【数１１】
2019529135.tif 000013
を、ウェイト
【数１２】
2019529135.tif 000014
を用いて初期化してもよい。
【００８６】
ブロック558において、システムは、リプレイバッファからの経験データのバッチをサンプリングする。たとえば、システムは、図3の方法300および/または図4の方法400に基づいて、リプレイバッファに記憶された経験データの1つまたは複数のインスタンスのバッチをサンプリングしてもよい。
【００８７】
いくつかの実装形態では、システムは、経験データに関して次のように設定する。
【数１３】
2019529135.tif 000015
【００８８】
ブロック560において、システムは、ブロック558においてサンプリングされた経験データに基づいて正規化Qネットワークを更新する。たとえば、システムは、損失関数に基づき、Qネットワーク上で逆伝搬および/または他の技術を実施してもよい。たとえば、システムは、損失
【数１４】
2019529135.tif 000016
を最小化することによってQネットワークのウェイト
【数１５】
2019529135.tif 000017
を更新してもよい。
【００８９】
ブロック562において、システムは、正規化Qネットワークに対する更新に基づいて対象のポリシーネットワークを更新する。たとえば、システムは、ネットワークパラメータに対する損失関数の勾配に基づいて対象のポリシーネットワークを更新してもよい。たとえば、システムは、
【数１６】
2019529135.tif 000018
に基づいて対象のポリシーネットワークを更新してもよい。
【００９０】
ブロック564において、システムは、来たるべきエピソードにおいてロボットが使用するための更新を供給する。たとえば、システムは、来たるべきエピソードにおいてロボットが使用するための更新されたポリシーパラメータおよび/または他のパラメータを供給してもよい。
【００９１】
ブロック566において、システムは、トレーニングが完了したかどうか判定する。いくつかの実装形態では、トレーニングが完了したと判定することは、収斂したと判定すること、ブロック558〜564の繰返しの閾値量が生じること、すべての利用可能な経験データが処理されること、閾値時間が経過すること、および/または他の基準が満たされることに基づく場合がある。
【００９２】
システムが、トレーニングが完了したと判定すると、ブロック568においてトレーニングが終了する。システムは、トレーニングが完了していないと判定すると、ブロック558へ進む。本明細書で説明されたように、方法500は、本明細書で説明された方法300および方法400と同時に実施されてもよい。それらの実装形態のうちのいくつかでは、方法500を繰り返し実施する周波数は、方法300および/または方法400を繰り返し実施する周波数よりも高い場合がある。1つの非限定的な例として、方法500が100Hzのレートで実施されてよく、方法300が20Hzのレートで実施されてもよい。いくつかの実装形態では、方法300、方法400、および/または方法500は、経験データが1つまたは複数の現実のロボットによって連続的に生成されて、対象のポリシーネットワークを更新するために連続的に利用されるという点で、「連続的に」実施されてもよいことに留意されたい。
【００９３】
本明細書で説明された実装形態に関していくつかの付加的な詳細を提供するために、本明細書で開示された強化学習技術によって学習されてもよいいくつかの例示のタスクを、より詳細に説明する。タスクのいくつかの例には、ランダムな目標到達、ドアの押し引き、およびピックアンドプレースが含まれる。たとえば、到達するタスクでは、ロボットアームは、一定の初期構成から、空間におけるランダムな目標に達しようとする場合がある。ランダムな目標は、1つのエピソードごとに、ポイントのあたりに中心がある0.2mのサイズの立方体から、サンプリングポイントによって均一に生成される。ランダムな目標は成功信号として供給されてもよい。エンドエフェクタの位置eおよび目標位置yを所与として、報酬関数は、r(x;u)=c1d(y;e(x))c2uTuであってよい。
【００９４】
また、たとえばドアを押し引きするタスクでは、ロボットアームは、ドアの取っ手を押すかまたは引くことによってドアを開けようとする場合がある。取っ手は下向きに90度まで旋回することができ、ドアは両方向に90度まで開くことができる。ドアは、力が加わらないとき徐々に閉じるように、ばねを有する。ドアは、取っ手が約60度を超えて旋回されなければ開けられないように、ラッチを有する。ドアに取り付けられたIMUセンサがドア角を測定するのに使用されることが可能であり、IMUセンサからの四元数の読取り値が損失を計算するのに使用されることが可能である。たとえば、報酬関数は、取っ手に対するエンドエフェクタの近さと、ドアが正しい方向に開かれている程度との2つの部分から成ることができる。報酬関数の第1の部分は、エンドエフェクタの位置eと、取っ手の中立状態における位置hとの間の距離に依拠する。報酬関数の第2の部分は、取っ手の四元数qと、取っ手が旋回されてドアが開いたときのその値q0との間の距離に依拠する。状態の特徴は、ロボットアームの関節角度およびそれらの時間微分、エンドエフェクタの位置、静止しているドア取っ手の位置、ドア枠の位置、ドア角度、および取っ手角度を含むことができる。
【００９５】
図6は、ロボット640の例示的な構造を概略的に表す。ロボット640は、ロボット制御システム660、1つまたは複数の動作コンポーネント640a〜640n、および1つまたは複数のセンサ642a〜642mを含む。センサ642a〜642mは、たとえば視覚センサ、光センサ、圧力センサ、圧力波センサ(たとえばマイクロフォン)、近接センサ、加速度計、ジャイロスコープ、温度計、バロメータなどを含んでもよい。センサ642a〜642mはロボット620と一体になって表されているが、これは限定することを意味するわけではない。いくつかの実装形態では、センサ642a〜642mは、たとえばスタンドアロンのユニットとしてロボット620の外部に配置されてもよい。
【００９６】
動作コンポーネント640a〜640nは、たとえばロボットの1つまたは複数の構成要素の運動を有効にするための1つまたは複数のエンドエフェクタおよび/または1つまたは複数のサーボモータもしくは他のアクチュエータを含む場合がある。たとえば、ロボット620は複数の自由度を有する場合があり、アクチュエータの各々が、制御コマンドに応答して、自由度のうちの1つまたは複数の範囲内でロボット620の作動を制御してもよい。本明細書で使用されるように、アクチュエータという用語には、アクチュエータに関連付けられて、受信した制御コマンドを、アクチュエータを駆動するための1つまたは複数の信号に変換する場合がある何らかの駆動回路に加えて、運動を生成する機械デバイスまたは電気デバイス(たとえばモータ)が包含される。したがって、アクチュエータに制御コマンドを供給するステップは、電気デバイスまたは機械デバイスを駆動して所望の運動を生成するために制御コマンドを適切な信号に変換する駆動回路に対して制御コマンドを供給するステップを含む場合がある。
【００９７】
ロボット制御システム660は、CPU、GPU、および/またはロボット620の他のコントローラなどの1つまたは複数のプロセッサにおいて実施されてもよい。いくつかの実装形態では、ロボット620は、制御システム660のすべてまたは態様を含む場合がある「コンピュータ」を備える場合がある。たとえば、コンピュータは、動作コンポーネント640a〜640nにデータのリアルタイムバーストを供給してもよく、リアルタイムバーストの各々に含まれる1つまたは複数の制御コマンドのセットが、とりわけ、動作コンポーネント640a〜640nのうちの1つまたは複数の各々に関する運動のパラメータを(もしあれば)規定する。いくつかの実装形態では、ロボット制御システム660は、本明細書で説明された方法300、400、および/または500の1つまたは複数の態様を実施してもよい。
【００９８】
本明細書で説明されたように、いくつかの実装形態では、ロボットの1つまたは複数の構成要素を動かす際に制御システム660によって生成される制御コマンドのすべてまたは態様は、現在のロボット状態および/または他の観測に基づいて、ポリシーネットワークにわたって生成された出力に基づいてもよい。図6では、制御システム660はロボット620の一体部品として示されるが、いくつかの実装形態では、制御システム660のすべてまたは態様が、ロボット620から分離されているが、ロボット620と通信する構成要素において実施されてもよい。たとえば、制御システム660のすべてまたは態様は、ロボット620と有線および/またはワイヤレスで通信するコンピュータデバイス710などの1つまたは複数のコンピュータデバイス上で実施される場合がある。
【００９９】
図7は、本明細書で説明された技術の1つまたは複数の態様を実施するためにオプションで利用される場合がある例示のコンピュータデバイス710のブロック図である。コンピュータデバイス710は、一般的には、バスサブシステム712を介して複数の周辺機器と通信する少なくとも1つのプロセッサ714を含む。これらの周辺機器は記憶サブシステム724を含んでよく、この記憶サブシステム724は、たとえばメモリサブシステム725およびファイル記憶サブシステム726と、ユーザインターフェース出力デバイス720と、ユーザインターフェース入力デバイス722と、ネットワークインターフェースサブシステム716とを含む。入力デバイスおよび出力デバイスにより、ユーザは、コンピュータデバイス710と相互作用することができる。ネットワークインターフェースサブシステム716は、外部ネットワークに対するインターフェースをもたらし、他のコンピュータデバイスの対応するインターフェースデバイスに結合される。
【０１００】
ユーザインターフェース入力デバイス722は、キーボード、マウス、トラックボール、タッチパッド、またはグラフィックスタブレットなどのポインティングデバイス、スキャナ、表示器に内蔵されたタッチスクリーン、音声認識システムなどの音声入力デバイス、マイクロフォン、および/または他のタイプの入力デバイスを含む場合がある。一般に、「入力デバイス」という用語の使用は、コンピュータデバイス710または通信ネットワークに情報を入力するためのすべての可能なタイプのデバイスおよびやり方を含むように意図される。
【０１０１】
ユーザインターフェース出力デバイス720は、表示サブシステム、プリンタ、ファックス、または音声出力デバイスなどの非視覚的表示を含む場合がある。表示サブシステムは、ブラウン管(CRT)、液晶表示器(LCD)などの平面パネルデバイス、投影デバイス、または可視画像を生成するための他の何らかの機構を含む場合がある。表示サブシステムは、音声出力デバイスなどを介して非視覚的表示も供給する場合がある。一般に、「出力デバイス」という用語の使用は、コンピュータデバイス710からの情報を、ユーザまたは別のマシンもしくはコンピュータデバイスに出力するためのすべての可能なタイプのデバイスおよびやり方を含むように意図される。
【０１０２】
記憶サブシステム724は、本明細書で説明されたモジュールのいくつかまたはすべての機能をもたらすプログラムおよびデータ構造を記憶する。たとえば、記憶サブシステム724は、図3、図4、および/または図5の方法の選択された態様を実施するための論理を含む場合がある。
【０１０３】
これらのソフトウェアモジュールは、一般にプロセッサ714によって、単独で、または他のプロセッサと組み合わせて実行される。記憶サブシステム724において使用されるメモリ725は複数のメモリを含んでよく、この複数のメモリは、プログラムの実行中に命令およびデータを記憶するための主要なランダムアクセスメモリ(RAM)730と、一定の命令を記憶する読取り専用メモリ(ROM)732とを含む。ファイル記憶サブシステム726は、プログラムファイルおよびデータファイルのための持続的な記憶をもたらし、ハードディスクドライブ、関連するリムーバブル媒体に加えたフロッピーディスクドライブ、CD-ROMドライブ、光ドライブ、またはリムーバブル媒体カートリッジを含む場合がある。特定の実装形態の機能を実施するモジュールは、ファイル記憶サブシステム726によって、記憶サブシステム724またはプロセッサ714によるアクセスが可能な他のマシンに記憶されてもよい。
【０１０４】
バスサブシステム712は、コンピュータデバイス710の様々な構成要素とサブシステムが目的通りに互いに通信するための機構をもたらす。バスサブシステム712は、概略的に1つのバスとして示されるが、バスサブシステムの代替実装形態は複数のバスを使用する場合がある。
【０１０５】
コンピュータデバイス710は、ワークステーション、サーバ、計算クラスタ、ブレードサーバ、サーバファーム、または何らかの他のデータ処理システムもしくはコンピュータデバイスを含む様々なタイプであることが可能である。コンピュータおよびネットワークの常に変化する特質のために、図7に表されたコンピュータデバイス710の説明は、いくつかの実装形態を例証する目的のための特定の例としてしか意図されていない。図7に表されたコンピュータデバイスよりも多数または少数の構成要素を有する、コンピュータデバイス710の他の多くの構成が可能である。
【０１０６】
本明細書ではいくつかの実装形態が説明され、かつ例証されてきたが、機能を実施するため、および/または結果を取得するための様々な他の手段および/または構造、ならびに/あるいは本明細書で説明された利益のうちの1つまたは複数が利用される場合があり、そのような変形形態および/または修正形態の各々が、本明細書で説明された実装形態の範囲内にあると見なされる。より一般的には、本明細書で説明されたすべてのパラメータ、寸法、材料、および構成は例示的であり、実際のパラメータ、寸法、材料、および/または構成は、本教示が使用される特定の用途に依拠することになる。当業者なら、せいぜい型通りの実験作業をするだけで、本明細書で説明された特定の実装形態に対する多くの等価物を理解するはずであり、または確認することができるであろう。したがって、前述の実装形態は例としてのみ示されており、実装形態は、添付の特許請求の範囲および等価物の範囲内で、明確に説明されて特許請求されたものと別様に実施される場合があることを理解されたい。本開示の実装形態は、本明細書で説明されたそれぞれの個別の特徴、システム、物品、材料、キット、および/または方法を対象にする。加えて、そのような特徴、システム、物品、材料、キット、および/または方法の2つ以上のものの任意の組合せは、そのような特徴、システム、物品、材料、キット、および/または方法が互いに矛盾していなければ、本開示の範囲内に含まれる。
【符号の説明】
【０１０７】
112  経験収集エンジン
114  トレーニングエンジン
122  リプレイバッファ
124  ポリシーネットワーク
180A  ロボット
180B  ロボット
182A  把持エンドエフェクタ
182B  把持エンドエフェクタ
184A  視覚センサ
184B  視覚センサ
191A  へら
191B  ホッチキス
201  経路
620  ロボット
640  ロボット
640a  動作コンポーネント
640n  動作コンポーネント
642a  センサ
642b  センサ
642m  センサ
654
660  ロボット制御システム
710  コンピュータデバイス
712  バスサブシステム
714  プロセッサ
716  ネットワークインターフェースサブシステム
720  ユーザインターフェース出力デバイス
722  ユーザインターフェース入力デバイス
724  記憶サブシステム
725  メモリサブシステム
726  ファイル記憶サブシステム
730  ランダムアクセスメモリ(RAM)
732  読取り専用メモリ(ROM)
【図１】
2019529135.tif 000019
【図２】
2019529135.tif 000020
【図３】
2019529135.tif 000021
【図４】
2019529135.tif 000022
【図５】
2019529135.tif 000023
【図６】
2019529135.tif 000024
【図７】
2019529135.tif 000025
【手続補正書】
【提出日】令和1年5月30日(2019.5.30)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
1つまたは複数のプロセッサによって実施される方法であって、
実施複数のエピソードの各々が、タスクに関する強化学習ポリシーを表現するポリシーニューラルネットワークに基づいて前記タスクを実施する探査である、複数のロボットの各々による前記複数のエピソードの実施中において、
前記エピソード中に前記複数のロボットによって生成されたロボット経験データのインスタンスをバッファに記憶するステップであって、前記ロボット経験データの前記インスタンスの各々が、前記エピソードのうちの対応するエピソード中に生成され、かつ前記対応するエピソード向けの前記ポリシーニューラルネットワークの対応するポリシーパラメータを伴う前記ポリシーニューラルネットワークを使用して生成される対応する出力上に少なくとも部分的に生成され、前記複数のロボットのうちの所与のロボットの前記ロボット経験データの前記インスタンスが、第1の周波数において前記バッファに記憶される、ステップと、
前記第1の周波数よりも高い第2の周波数において前記ポリシーニューラルネットワークの更新されたポリシーパラメータを繰り返し生成するステップであって、前記繰り返し生成するステップの繰返しの各々が、前記繰返し中に、前記バッファの中の前記ロボット経験データの前記インスタンスのうちの1つまたは複数のもののグループを使用して前記更新されたポリシーパラメータを生成するステップを含む、ステップと、
前記ロボットが実施する複数のエピソードの各々の開始と同時に、前記複数のロボットの各々によって、前記エピソードにおいて前記ロボットが使用する前記ポリシーニューラルネットワークを更新するステップであって、前記更新されたポリシーパラメータを前記繰り返し生成するステップの直近の繰返しの前記更新されたポリシーパラメータを使用するステップを含む、ステップと
を含む、方法。
【請求項２】
前記更新されたポリシーパラメータの各々が、前記ポリシーニューラルネットワークの対応する層の対応するノード向けの対応する値を定義する、請求項1に記載の方法。
【請求項３】
前記複数のロボットの各々の前記ロボット経験データの前記インスタンスが、前記第2の周波数よりもそれぞれ低い周波数である対応する周波数において前記バッファに記憶される、請求項1または2に記載の方法。
【請求項４】
前記ロボット経験データの前記インスタンスを前記バッファに記憶するステップが、第1のスレッドにおいて前記複数のプロセッサのうちの1つまたは複数によって実施され、前記繰り返し生成するステップが、前記第1のスレッドとは別個の第2のスレッドにおいて、前記複数のプロセッサのうちの1つまたは複数によって実施される、請求項1から3のいずれか一項に記載の方法。
【請求項５】
前記第1のスレッドが、前記複数のプロセッサのうちの1つまたは複数の第1のグループによって実施され、前記第2のスレッドが、前記第1のグループとオーバラップしない、前記複数のプロセッサのうちの1つまたは複数の第2のグループによって実施される、請求項4に記載の方法。
【請求項６】
前記繰り返し生成するステップの前記繰返しの各々が、前記生成する繰返し中に、前記バッファの中の前記ロボット経験データの前記インスタンスのうちの1つまたは複数のグループを考慮して損失関数を最小化することに基づいて前記更新されたポリシーパラメータを生成するステップを含む、請求項1から5のいずれか一項に記載の方法。
【請求項７】
前記繰り返し生成するステップの前記繰返しの各々が、前記生成する繰返し中に、前記バッファの中の前記ロボット経験データの前記インスタンスのうちの1つまたは複数のグループを考慮するオフポリシー型の学習を含む、請求項1から6のいずれか一項に記載の方法。
【請求項８】
前記オフポリシー型の学習がQ学習である、請求項7に記載の方法。
【請求項９】
前記Q学習が正規化利益関数(NAF)アルゴリズムまたは深層決定論的ポリシー勾配(DDPG)アルゴリズムを利用する、請求項8に記載の方法。
【請求項１０】
前記ロボット経験データの前記インスタンスの各々が、対応する、開始ロボット状態と、前記開始ロボット状態から遷移した後続ロボット状態と、前記開始ロボット状態から前記後続ロボット状態へ遷移するために実行されるアクションと、前記アクションに対する報酬とを指示し、
前記開始ロボット状態から前記後続ロボット状態へ遷移するために実行される前記アクションが、前記対応するエピソード向けの前記更新されたポリシーパラメータを伴う前記ポリシーニューラルネットワークを使用して前記開始ロボット状態を処理することに基づいて生成され、
前記アクションに対する前記報酬が、前記強化学習ポリシーの報酬関数に基づいて生成される、
請求項1から9のいずれか一項に記載の方法。
【請求項１１】
1つまたは複数の基準に基づいて、前記複数のエピソードの前記実施を停止しかつ、前記繰り返し生成するステップを停止するステップと、
1つまたは複数の追加のロボットが使用するように直近生成されたバージョンの前記更新されたポリシーパラメータを前記ポリシーニューラルネットワークに供給するステップと
をさらに含む、請求項1から10のいずれか一項に記載の方法。
【請求項１２】
複数のロボットのうちの所与のロボットの1つまたは複数のプロセッサによって、
第1のポリシーパラメータのグループを有するポリシーネットワークに基づいてタスクを実施する探査の所与のエピソードを実施するステップと、
前記所与のロボットからロボット経験データを提供する複数の経験データの繰返しのうちの1つの繰返しにおいて、前記所与のエピソード中に、前記ポリシーネットワークに基づいて生成されたロボット経験データの第1のインスタンスを供給するステップであって、前記複数のロボット経験データの繰返しが第1の周波数において生じる、ステップと、
前記ポリシーネットワークに基づいて前記タスクを実施する後続のエピソードを前記所与のロボットによって実施するのに先立って、
前記第1のポリシーパラメータのグループのうちの1つまたは複数を更新されたポリシーパラメータで置換するステップであって、前記更新されたポリシーパラメータが、追加のロボットによって前記タスクを実施する探査の前記追加のロボットのエピソード中に前記追加のロボットによって生成されたロボット経験データの追加のインスタンスに基づく前記ポリシーネットワークのトレーニングに基づいて生成され、前記追加のロボットによって前記タスクを前記実施するステップが前記ポリシーネットワークに基づき、前記ポリシーネットワークの前記トレーニングが前記第1の周波数よりも高い第2の周波数において生じる複数のトレーニングの繰返しを含み、前記複数のトレーニングの繰返しが、
前記第1のインスタンスおよび前記追加のインスタンスに少なくとも部分的に基づく前記ポリシーネットワークのトレーニングの第1のトレーニングの繰返しと、
前記複数のロボットからの経験データのまたさらなるインスタンスに基づく、前記ポリシーネットワークの1つまたは複数の追加のトレーニングの繰返しと
を含む、ステップ
を含み、
前記後続のエピソードが前記所与のエピソードのすぐ後に続き、前記後続のエピソードにおいて前記ポリシーネットワークに基づいて前記タスクを実施するステップが、前記置換されたポリシーパラメータの代わりに前記更新されたポリシーパラメータを使用するステップを含む、
方法。
【請求項１３】
1つまたは複数の追加のプロセッサによって、前記後続のエピソードの前記実施中に、さらに更新されたポリシーパラメータを生成するステップであって、前記所与のエピソード中に生成されたロボット経験データの前記第1のインスタンスのうちの1つまたは複数に基づく、ステップと、
前記追加のロボットによる対応するエピソードの実施において前記追加のロボットが使用するように前記さらに更新されたポリシーパラメータを供給するステップと
をさらに含む、請求項12に記載の方法。
【請求項１４】
前記所与のロボットによる前記後続のエピソードの実施中に、前記追加のロボットが前記対応するエピソードの実施を開始する、請求項13に記載の方法。
【請求項１５】
前記所与のロボットによる任意のエピソードの実施において、前記さらに更新されたポリシーパラメータが前記所与のロボットによって利用されない、請求項13に記載の方法。
【請求項１６】
前記追加のプロセッサのうちの1つまたは複数によって、またさらに更新されたポリシーパラメータを生成するステップであって、前記またさらに更新されたポリシーパラメータが、前記さらに更新されたポリシーパラメータの生成の後に、前記後続のエピソードの前記実施中に生成される、ステップと、
前記またさらに更新されたポリシーパラメータを、前記ポリシーネットワークに基づいて前記タスクを実施するさらなる後続のエピソードの前記所与のロボットによる実施において前記所与のロボットが使用するように供給するステップであって、前記さらなる後続のエピソードが前記後続のエピソードのすぐ後に続く、ステップと
をさらに含む、請求項13から15のいずれか一項に記載の方法。
【請求項１７】
前記追加のロボットによる前記対応するエピソードの実施中に、前記所与のロボットが、前記さらなる後続のエピソードの実施を開始する、請求項16に記載の方法。
【請求項１８】
前記更新されたポリシーパラメータと、前記またさらに更新されたポリシーパラメータとが、前記追加のロボットによる任意のエピソードの実施において前記追加のロボットによって利用されない、請求項16に記載の方法。
【請求項１９】
前記追加のロボットによる任意のエピソードの実施において、前記更新されたポリシーパラメータが前記追加のロボットによって利用されない、請求項12から17のいずれか一項に記載の方法。
【請求項２０】
前記ポリシーネットワークがニューラルネットワークモデルを備える、請求項12から19のいずれか一項に記載の方法。
【請求項２１】
前記更新されたポリシーパラメータの各々が、前記ニューラルネットワークモデルの対応する層の対応するノード向けの対応する値を定義する、請求項20に記載の方法。
【請求項２２】
前記タスクを実施する前記所与のエピソードの実施中に、
前記ポリシーネットワークからの出力の所与の繰返しにおいて、前記所与のロボットの1つまたは複数の基準の違反を判定するステップと、
前記1つまたは複数の基準がもはや違反されることのないように、前記所与の繰返しの前記出力を修正するステップと、
前記修正された出力に基づいて、経験データの前記インスタンスの所与のインスタンスを生成するステップと
をさらに含む、請求項12に記載の方法。
【請求項２３】
前記基準が、関節位置の制限と、関節速度の制限と、エンドエフェクタの位置の制限とのうちの1つまたは複数を含む、請求項22に記載の方法。
【請求項２４】
前記所与のエピソード中に、
前記ポリシーネットワークに対する入力として現在の状態表現を適用するステップであって、前記現在の状態表現が、少なくとも前記所与のロボットの現在の状態を指示する、ステップと、
前記ポリシーネットワークを使用して前記入力を処理することにより、出力を生成するステップと、
前記出力に基づいて、前記所与のロボットの1つまたは複数のアクチュエータに対して制御コマンドを供給するステップと
によって、前記探査のうちの所与の探査を生成するステップ
をさらに含む、請求項12から23のいずれか一項に記載の方法。
【請求項２５】
前記出力に基づいて前記アクチュエータに前記制御コマンドを供給するステップが、
前記出力にノイズを付加することにより、修正された出力を生成するステップと、
前記修正された出力に基づいて前記制御コマンドを供給するステップと
を含む、請求項24に記載の方法。
【請求項２６】
前記出力が、前記ロボットの複数のアクチュエータの各々向けの速度またはトルクを含み、前記制御コマンドを供給するステップが、前記アクチュエータが前記速度またはトルクを印加するように前記制御コマンドを供給するステップを含む、請求項24に記載の方法。
【請求項２７】
前記ロボット経験データの前記第1のインスタンスの各々が、対応する、開始ロボット状態と、前記開始ロボット状態から遷移した後続ロボット状態と、前記開始ロボット状態から前記後続ロボット状態へ遷移するために実行されるアクションと、前記アクションに対する報酬とを指示する、請求項12から26のいずれか一項に記載の方法。
【請求項２８】
1つまたは複数のプロセッサによって実施される方法であって、
複数のロボットのうちの所与のロボットから経験データを受信する複数の経験データの繰返しのうちの1つの繰返しにおいて、前記所与のロボットによって生成されたロボット経験データの所与のインスタンスを受信するステップであって、前記ロボット経験データの前記所与のインスタンスが、タスクを実施する探査の所与のエピソード中に、前記所与のロボットによって前記所与のインスタンスを生成するのに利用されるポリシーネットワークのポリシーパラメータの所与のバージョンに基づいて生成され、前記複数の経験データの繰返しが第1の周波数において生じる、ステップと、
前記複数のロボットのうちの追加のロボットからロボット経験データの追加のインスタンスを受信するステップであって、前記追加のインスタンスが、前記追加のロボットによって、前記ポリシーネットワークに基づいて前記タスクを実施する探査のエピソード中に生成される、ステップと、
前記所与のロボットおよび前記追加のロボットが前記タスクを実施する前記探査のエピソードを継続している間に、前記所与のインスタンスおよび前記追加のインスタンスに少なくとも部分的に基づく前記ポリシーネットワークのトレーニングに基づいて、前記ポリシーネットワークの前記ポリシーパラメータの新バージョンを生成するステップであって、前記ポリシーネットワークの前記トレーニングが前記第1の周波数よりも高い第2の周波数において生じる複数のトレーニングの繰返しを含み、前記複数のトレーニングの繰返しが、
前記所与のインスタンスおよび前記追加のインスタンスに少なくとも部分的に基づく前記ポリシーネットワークのトレーニングの第1のトレーニングの繰返しと、
前記複数のロボットからの経験データのまたさらなるインスタンスに基づく、前記ポリシーネットワークの1つまたは複数の追加のトレーニングの繰返しと
を含む、ステップと、
前記所与のロボットが前記ポリシーパラメータの前記新バージョンに基づいて前記タスクを実施する探査の直後のエピソードを実施するように、前記所与のロボットに対して前記ポリシーパラメータの前記新バージョンを供給するステップと
を含む、方法。
【請求項２９】
1つまたは複数のプロセッサによって実施される方法であって、
非同期かつ同時に動作する複数のロボットによって生成された経験データのインスタンスを繰り返し受信するステップであって、前記経験データのインスタンスの各々が、ポリシーニューラルネットワークに基づくタスク探査の対応するエピソード中に、前記複数のロボットのうちの対応するロボットによって生成され、前記複数のロボットのうちの所与のロボットによって生成された前記経験データのインスタンスが、第1の周波数において受信される、ステップと、
トレーニングの繰返しの各々において前記ポリシーニューラルネットワークの1つまたは複数の更新されたパラメータを生成するために、前記複数のロボットからの前記受信された経験データに基づいて第2の周波数において前記ポリシーニューラルネットワークを繰り返しトレーニングするステップであって、前記第2の周波数は前記第1の周波数よりも高い、ステップと、
さらなる経験データのインスタンスが基づく前記タスク探査の後続のエピソードに先立って、前記ロボットの前記ポリシーニューラルネットワークを更新するために、前記更新されたパラメータのインスタンスを前記ロボットに対して非同期かつ繰り返し供給するステップと
を含む、方法。
【請求項３０】
前記複数のロボットのうちの少なくとも1つのロボットの1つまたは複数のアクチュエータを動かしてアクションを有効にするように、前記更新されたポリシーパラメータを繰り返し生成するステップの直近の繰返しの前記更新されたポリシーパラメータを使用して、1つまたは複数の運動コマンドを生成するステップをさらに含む、請求項1から11のいずれか一項に記載の方法。
【請求項３１】
前記所与のロボットによって、前記ポリシーパラメータの前記新バージョンに基づいて前記所与のロボットによって前記タスクを実施する探査の直後のエピソードを実施するステップをさらに含む、請求項28に記載の方法。
【請求項３２】
前記ロボットにおいて、前記経験データのインスタンスが基づく前記タスク探査のエピソードを実施するステップをさらに含む、請求項29に記載の方法。
【請求項３３】
コンピュータ可読命令であって、コンピュータ装置によって実行されたとき、請求項1から32のいずれか一項に記載の方法が実施される、コンピュータ可読命令。
【国際調査報告】
2019529135.tif 000026
2019529135.tif 000027
2019529135.tif 000028