(57)【要約】  システムは、1つまたは複数のコンピュータによって実装されたニューラルネットワークシステムを含む。ニューラルネットワークシステムは、ロボットタスクを実行するために、ロボットエージェントによって対話されロボットエージェントと対話している現実世界環境の現在の状態を特徴づける観測結果を受信するように、および、観測結果に応答して、ロボットエージェントによって実行されるべきアクションを定義するポリシー出力を生成するために、観測結果を処理するように構成される。ニューラルネットワークシステムは、ディープニューラルネットワーク(DNN)のシーケンスを含み、DNNのシーケンスが、(i)ロボットタスクのシミュレートされたバージョンを実行するために、ロボットエージェントのシミュレートされたバージョンと、現実世界環境のシミュレートされたバージョンとの対話上でトレーニングされた、シミュレーショントレーニングされるDNNと、(ii)観測結果を受信するように、および、ポリシー出力を生成するために、観測結果を処理するように構成される、第1のロボットトレーニングされるDNNとを含む。
2019530105.tif 000002
【特許請求の範囲】
【請求項１】
システムであって、
1つまたは複数のコンピュータによって実装されたニューラルネットワークシステムを備え、
前記ニューラルネットワークシステムが、ロボットタスクを実行するために、ロボットエージェントによって対話されロボットエージェントと対話している現実世界環境の現在の状態を特徴づける観測結果を受信するように、および、前記観測結果に応答して、前記ロボットエージェントによって実行されるべきアクションを定義するポリシー出力を生成するために、前記観測結果を処理するように構成され、
前記ニューラルネットワークシステムが、ディープニューラルネットワーク(DNN)のシーケンスを備え、
前記DNNのシーケンスが、
前記ロボットタスクのシミュレートされたバージョンを実行するために、前記ロボットエージェントのシミュレートされたバージョンと、前記現実世界環境のシミュレートされたバージョンとの対話上でトレーニングされた、シミュレーショントレーニングされるDNNであって、
前記シミュレーショントレーニングされるDNNが、第1の複数のインデックス付き層を備え、
前記シミュレーショントレーニングされるDNNが、前記観測結果を受信するように、および、前記第1の複数のインデックス付き層における各層のためのそれぞれの層出力を生成するために、前記第1の複数のインデックス付き層における各層を通して、前記観測結果を処理するように構成される、シミュレーショントレーニングされるDNNと、
第1のロボットトレーニングされるDNNであって、
前記第1のロボットトレーニングされるDNNが、第2の複数のインデックス付き層を備え、
前記第1のロボットトレーニングされるDNNが、前記観測結果を受信するように、および、前記ポリシー出力を生成するために、前記第2の複数のインデックス付き層における各層を通して、前記観測結果を処理するように構成され、
前記第2の複数のインデックス付き層における前記層のうちの1つまたは複数が、入力として、(i)前記第1のロボットトレーニングされるDNNの先行する層によって生成された層出力と、(ii)前記シミュレーショントレーニングされるDNNの先行する層によって生成された層出力とを受信するように各々構成され、先行する層は、インデックスが前記層の前記インデックスよりも1だけ少ない層である、第1のロボットトレーニングされるDNNと
を備える、システム。
【請求項２】
前記第1のロボットトレーニングされるDNNが、前記ロボットタスクを実行するために、前記ロボットエージェントと前記現実世界環境との対話上でトレーニングされた、請求項1に記載のシステム。
【請求項３】
前記第1のロボットトレーニングされるDNNが、前記シミュレーショントレーニングされるDNNよりも小さい容量を有する、請求項1または2のいずれか一項に記載のシステム。
【請求項４】
前記第1のロボットトレーニングされるDNNが狭いアーキテクチャを有し、前記シミュレーショントレーニングされるDNNが幅広いアーキテクチャを有する、請求項3に記載のシステム。
【請求項５】
前記第2の複数のインデックス付き層のうちの1つまたは複数の層の各々について、同じインデックスを有する前記第1の複数のインデックス付き層における対応する層が、同じタイプであるが、前記第2の複数のインデックス付き層における前記層よりも大きい寸法のニューラルネットワーク層である、請求項1から4のいずれか一項に記載のシステム。
【請求項６】
前記第1の複数のインデックス付き層および前記第2の複数のインデックス付き層が、それぞれのリカレントニューラルネットワーク層を各々含む、請求項1から5のいずれか一項に記載のシステム。
【請求項７】
前記第2の複数のインデックス付き層における前記リカレントニューラルネットワーク層が、入力として、(i)前記第1の複数のインデックス付き層における前記リカレントニューラルネットワーク層に先行する層の層出力と、(ii)前記第1の複数のインデックス付き層における前記リカレントニューラルネットワーク層の内部状態と、(iii)前記第2の複数のインデックス付き層における前記リカレントニューラルネットワーク層に先行する層の層出力とを受信するように構成される、請求項6に記載のシステム。
【請求項８】
入力として、(i)前記第1のロボットトレーニングされるDNNの先行する層によって生成された層出力と、(ii)前記シミュレーショントレーニングされるDNNの先行する層によって生成された層出力とを受信するように構成される、前記第2の複数のインデックス付き層における前記層のうちの前記1つまたは複数の各々が、
前記第1のロボットトレーニングされるDNNの前記先行する層によって生成された前記層出力に、それぞれの第1のセットのパラメータを適用すること、および
前記シミュレーショントレーニングされるDNNの前記先行する層によって生成された前記層出力に、それぞれの第2のセットのパラメータを適用すること
を行うようにさらに構成される、請求項1から7のいずれか一項に記載のシステム。
【請求項９】
前記ポリシー出力が、前記ロボットエージェントの複数の自由度の各々の位置におけるそれぞれの変化を定義する、請求項1から8のいずれか一項に記載のシステム。
【請求項１０】
前記複数の自由度が、前記ロボットエージェントの1つまたは複数の関節と、前記ロボットエージェントの1つまたは複数のアクチュエータとを含む、請求項1から9のいずれか一項に記載のシステム。
【請求項１１】
アクションサブシステムであって、
前記ポリシー出力に基づいて、前記ロボットエージェントによって実行されるべきアクションを選択すること、および
前記ロボットエージェントに前記選択されたアクションを実行させること
を行うように構成された、アクションサブシステム
をさらに備える、請求項1から10のいずれか一項に記載のシステム。
【請求項１２】
前記DNNのシーケンスが、
第2のロボットトレーニングされるDNN
をさらに備え、
前記第2のロボットトレーニングされるDNNが、第3の複数のインデックス付き層を備え、
前記第3の複数のインデックス付き層における前記層のうちの1つまたは複数が、入力として、(i)前記第1のロボットトレーニングされるDNNの先行する層によって生成された層出力と、(ii)前記シミュレーショントレーニングされるDNNの先行する層によって生成された層出力と、(iii)前記第2のロボットトレーニングされるDNNの先行する層によって生成された層出力とを受信するように各々構成される、請求項1から10のいずれか一項に記載のシステム。
【請求項１３】
前記第2のロボットトレーニングされるDNNが、前記観測結果とともに、前記現在の状態を特徴づける異なるデータを受信するように構成され、
前記第2のロボットトレーニングされるDNNが、第2の異なるロボットタスクを実行するために、前記ロボットエージェントによって実行されるべきアクションを定義する第2のポリシー出力を生成するために、前記第3の複数のインデックス付き層を通して、前記異なるデータを処理するように構成される、請求項12に記載のシステム。
【請求項１４】
前記観測結果が視覚的データであり、前記異なるデータが固有受容性データである、請求項13に記載のシステム。
【請求項１５】
DNNのシーケンスにおける前記DNNのうちの1つまたは複数のパラメータのトレーニングされる値を決定するために、請求項1から14のいずれか一項に記載の前記ニューラルネットワークシステムをトレーニングする方法であって、
前記シミュレーショントレーニングされるDNNの前記パラメータのトレーニングされる値を固定のままで保持しながら、前記第1のロボットトレーニングされるDNNのパラメータのトレーニングされる値を決定するために、前記ロボットタスクを実行するために、前記ロボットエージェントと前記現実世界環境との対話上で、前記第1のロボットトレーニングされるDNNをトレーニングするステップ
を含む方法。
【請求項１６】
前記第1のロボットトレーニングされるDNNの出力層が、
入力として、(i)前記第1のロボットトレーニングされるDNNの前記出力層に先行する層によって生成された層出力と、(ii)前記シミュレーショントレーニングされるDNNの出力層に先行する層によって生成された層出力とを受信すること、
前記第1のロボットトレーニングされるDNNの前記出力層に先行する層によって生成された前記層出力に、第1のセットのパラメータを適用すること、および
前記シミュレーショントレーニングされるDNNの前記出力層に先行する層によって生成された前記層出力に、第2のセットのパラメータを適用すること
を行うように構成され、
前記方法が、
前記第2のセットのパラメータの値を、前記シミュレーショントレーニングされるDNNの前記出力層のパラメータのトレーニングされる値と一致するように初期化するステップ
をさらに含む、請求項15に記載の方法。
【請求項１７】
前記第1のセットのパラメータの値を0に初期化するステップ
をさらに含む、請求項16に記載の方法。
【請求項１８】
前記出力層以外の前記第1のロボットトレーニングされるDNNの層のパラメータの値を、ランダム値に初期化するステップ
をさらに含む、請求項16または17のいずれか一項に記載の方法。
【請求項１９】
前記シミュレーショントレーニングされるDNNのパラメータのトレーニングされる値を決定するために、前記ロボットタスクのシミュレートされたバージョンを実行するために、前記ロボットエージェントのシミュレートされたバージョンと、前記現実世界環境のシミュレートされたバージョンとの対話上で、前記シミュレーショントレーニングされるDNNをトレーニングするステップ
をさらに含む、請求項15から18のいずれか一項に記載の方法。
【請求項２０】
前記シミュレーショントレーニングされるDNNをトレーニングするステップが、第1の強化学習技法を使用して、前記ロボットエージェントの前記シミュレートされたバージョンの前記対話上で、前記シミュレーショントレーニングされるDNNをトレーニングするステップを含む、請求項19に記載の方法。
【請求項２１】
前記第1のロボットトレーニングされるDNNをトレーニングするステップが、第2の強化学習技法を使用して、前記ロボットエージェントの前記対話上で、前記第1のロボットトレーニングされるDNNをトレーニングするステップを含む、請求項20に記載の方法。
【請求項２２】
前記第1の強化学習技法が、前記第2の強化学習技法と同じである、請求項21に記載の方法。
【請求項２３】
前記第1の強化学習技法が、前記第2の強化学習技法とは異なる、請求項21に記載の方法。
【請求項２４】
1つまたは複数のコンピュータと、前記1つまたは複数のコンピュータによって実行されると、前記1つまたは複数のコンピュータに、請求項15から23のいずれか一項に記載の方法の動作を実行させる命令を記憶する、1つまたは複数の記憶デバイスとを備える、システム。
【請求項２５】
1つまたは複数のコンピュータによって実行されると、前記1つまたは複数のコンピュータに、請求項15から23のいずれか一項に記載の方法の動作を実行させる命令を記憶する、1つまたは複数のコンピュータ記憶媒体。
【請求項２６】
ロボットタスクを実行するために、ロボットエージェントによって対話されロボットエージェントと対話している現実世界環境の現在の状態を特徴づける観測結果を受信するステップと、
ポリシー出力を生成するために、請求項1から14のいずれか一項に記載の前記ニューラルネットワークシステムを使用して、前記観測結果を処理するステップと、
前記ポリシー出力を使用して、前記観測結果に応答して、前記ロボットエージェントによって実行されるべきアクションを選択するステップと
を含む方法。
【請求項２７】
前記ロボットエージェントに前記アクションを実行させるステップ
をさらに含む、請求項26に記載の方法。
【請求項２８】
1つまたは複数のコンピュータによって実行されると、前記1つまたは複数のコンピュータに、請求項1から14のいずれか一項に記載のシステムを実装させる命令を記憶する、1つまたは複数のコンピュータ記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
関連出願の相互参照
本出願は、2016年10月10日に出願した米国仮出願第62/406,363号の優先権を主張する。前の出願の開示は、本出願の開示の一部と見なされ、参照により本出願の開示に組み込まれる。
【０００２】
本明細書は、強化学習エージェントによって実行されるべきアクションを選択することに関する。
【背景技術】
【０００３】
強化学習エージェントは、環境の現在の状態を特徴づける観測結果を受信すること、およびそれに応答して、アクションを実行することによって、環境と対話(interact)する。
【０００４】
いくつかの強化学習システムは、任意の所与の観測結果の受信に応答して、エージェントによって実行されるべきアクションを選択するために、ニューラルネットワークを使用する。
【０００５】
ニューラルネットワークは、受信された入力のための出力を予測するために、1つまたは複数の層の非線形ユニットを採用する、機械学習モデルである。いくつかのニューラルネットワークは、出力層に加えて、1つまたは複数の隠れ層を含む、ディープニューラルネットワークである。各隠れ層の出力は、ネットワークにおける次の層、すなわち、次の隠れ層または出力層への入力として使用される。ネットワークの各層は、パラメータのそれぞれのセットの現在の値に従って、受信された入力から出力を生成する。
【先行技術文献】
【非特許文献】
【０００６】
【非特許文献１】Volodymyr Mnih、Adria Puigdomenech Badia、Mehdi Mirza、Alex Graves、Timothy P. Lillicrap、Tim Harley、David Silver、およびKoray Kavukcuoglu、Asynchronous methods for deep reinforcement learning、In Int'l Conf. on Machine Learning (ICML)、2016年
【非特許文献２】Timothy P. Lillicrap、Jonathan J. Hunt、Alexander Pritzel、Nicolas Heess、Tom Erez、Yuval Tassa、David Silver、Daan Wierstra、https://arxiv.org/abs/1509.02971において入手可能なContinuous control with Deep Reinforcement Learning
【発明の概要】
【課題を解決するための手段】
【０００７】
本明細書は、1つまたは複数のロケーションにおける1つまたは複数のコンピュータ上でコンピュータプログラムとして実装されたシステムについて説明する。
【０００８】
概して、1つの発明的態様は、1つまたは複数のコンピュータによって実装されたニューラルネットワークシステムを含むシステムにおいて具現化され得る。ニューラルネットワークシステムは、ロボットタスクを実行するために、ロボットエージェントによって対話されロボットエージェントと対話している現実世界環境の現在の状態を特徴づける観測結果を受信するように、および、観測結果に応答して、ロボットエージェントによって実行されるべきアクションを定義するポリシー出力を生成するために、観測結果を処理するように構成される。ニューラルネットワークシステムは、ディープニューラルネットワーク(DNN)のシーケンスを含む。DNNのシーケンスは、ロボットタスクのシミュレートされたバージョンを実行するために、ロボットエージェントのシミュレートされたバージョンと、現実世界環境のシミュレートされたバージョンとの対話上でトレーニングされた、シミュレーショントレーニングされるDNNを含む。シミュレーショントレーニングされるDNNは、第1の複数のインデックス付き層を含み、シミュレーショントレーニングされるDNNは、観測結果を受信するように、および、第1の複数のインデックス付き層における各層のためのそれぞれの層出力を生成するために、第1の複数のインデックス付き層における各層を通して、観測結果を処理するように構成される。DNNのシーケンスは、第1のロボットトレーニングされるDNNをさらに含む。これは、ロボットタスクを実行するために、ロボットエージェントと現実世界環境との対話上でトレーニングされたものであり得る。第1のロボットトレーニングされるDNNは、第2の複数のインデックス付き層を含む。第1のロボットトレーニングされるDNNは、観測結果を受信するように、および、ポリシー出力を生成するために、第2の複数のインデックス付き層における各層を通して、観測結果を処理するように構成され、第2の複数のインデックス付き層における層のうちの1つまたは複数が、入力として、(i)第1のロボットトレーニングされるDNNの先行する層によって生成された層出力と、(ii)シミュレーショントレーニングされるDNNの先行する層によって生成された層出力とを受信するように各々構成され、先行する層が、そのインデックスが層のインデックスよりも1だけ少ない層であ
る。
【０００９】
本明細書で説明する主題の特定の実施形態は、以下の利点のうちの1つまたは複数を実現するように実装され得る。ディープ強化学習アルゴリズムは、現実世界のロボットにおいて性能を達成するには低速すぎるが、シミュレートされた環境において実証され得る。本明細書で説明するようなニューラルネットワークシステムを使用して、リアリティギャップを埋め、学習されたポリシーをシミュレーションから現実世界に移行させることによって、ロボットエージェントのためのアクション選択ポリシーが、既存の手法よりも迅速に、より少ないコンピューティングリソースを使用して、有効に決定され得る。すなわち、本明細書で説明するニューラルネットワークシステムは、ディープ強化学習が、現実のロボットにおいて高速なポリシー学習を実施するために使用されることを可能にする。
【００１０】
いくつかの実装形態では、シミュレーショントレーニングされるDNNが、タスクを最初から学習するために十分な容量および深度を有するように構成されること、および、より最小の容量を有する1つまたは複数のロボットトレーニングされるDNNによって、異なるタスクの最大の移行およびより高速な学習が遂行され得る。シミュレーショントレーニングされるDNNおよびロボットトレーニングされるDNNの容量および構造は、同一である必要はなく、したがって、異なる入力モダリティを含む、異なるタスクを解決することが可能になる。追加として、トレーニング後、トレーニングされたニューラルネットワークシステムは、アクションを選択するために使用されているとき、依然としてロボットエージェントによって実行されるべきアクションを有効に選択しながら、より小さい計算フットプリントを有し、すなわち、より少ない処理リソースおよびより少ないメモリを使用し得る。さらに、既存の手法は、変化するネットワーク形態、または新しい入力モダリティに対応することができないが、進歩的なネットワークを使用することによって、本明細書で説明するニューラルネットワークシステムは、新しいタスクに移行するとき、新しい入力接続を含む、新しい容量を追加するための柔軟性を提供する。これはまた、シミュレーションと実際のセンサーとの間の似ていない入力に対応するために、リアリティギャップを埋めるためにも有利である。
【００１１】
いくつかの実装形態では、第1のロボットトレーニングされるDNNは、シミュレーショントレーニングされるDNNよりも小さい容量を有する。ニューラルネットワークの容量が計算され得る。容量は、概して、ニューラルネットワークのパラメータの数に関し、したがって、第1のロボットトレーニングされるDNNは、シミュレーショントレーニングされるDNNよりも少数の重みなどのパラメータを有し得る。このことは学習を妨げるものではなく、計算負荷を低減しながら、学習を促進し得ることが経験的にわかっている。同様に、第1のロボットトレーニングされるDNNは、シミュレーショントレーニングされるDNNよりも狭いアーキテクチャを有し、たとえば、対応する層においてより少数のノードを有し得る。
【００１２】
いくつかの実装形態では、第1のロボットトレーニングされるDNNの層、およびシミュレーショントレーニングされるDNNの層は、それぞれのリカレントニューラルネットワーク層を各々含み得る。これによって、観測結果の履歴に基づいて、ポリシー出力を生成することが容易になる。
【００１３】
ポリシー出力は、個別または連続的ポリシーを定義し得る。たとえば、出力は、実行されるべきアクションを表す連続アクション空間における値を提供し得るか、または、個別アクション空間における可能なアクションごとにアクション確率を表す1つの値があり得る。たとえば、前者はDDPG DNNを採用することがあり、後者はA3C DNN(頭字語については、以下を参照)を採用することがある。後者の場合、DNNの出力層は、ポリシーと、典型的には、関連付けられた価値関数のための線形出力とを提供するために、ソフトマックス層を備え得る。他のフレームワークも採用されることがあり、たとえば、ポリシーは、たとえば、価値および利点関数出力としての、ディープQネットワーク(DQN)からの出力において暗黙的であり得る。任意選択では、したがって、アクションサブシステムは、ポリシー出力に基づいて、ロボットエージェントによって実行されるべきアクションを選択し得る。これによって、ロボットエージェントに、選択されたアクションを実行させ得る。ロボットエージェントが、制御するべき複数の自由度を有する場合、複数のポリシー出力があり得る。
【００１４】
システムは、前に説明した方法と同様の方法で、第1のロボットトレーニングされるDNNに、およびシミュレーショントレーニングされるDNNにラテラル結合された、第2のロボットトレーニングされるDNNを含み得る。この第2のロボットトレーニングされるDNNは、観測結果とともに、または潜在的に観測結果の代わりに、環境の現在の状態を同じく特徴づける(観測結果に対して)異なるデータを受信し得る。第2のロボットトレーニングされるDNNは、第1のロボットトレーニングされるDNNに対して、異なるタスクを実行するためにトレーニングされ得るか、または、同じタスクを実行するためにトレーニングされ得、その場合、第2のロボットトレーニングされるDNNが、実行されるべきアクションを定義し得る。さらなるDNNが同様の方法で連結され得る。
【００１５】
システムをトレーニングする方法は、DNNのシーケンスにおけるDNNのうちの1つまたは複数のパラメータのトレーニングされる値を決定するステップを含み得る。したがって、シミュレーショントレーニングされるDNNがすでにトレーニングされている場合、ロボットトレーニングされるDNNは、現実世界環境においてトレーニングされ得、したがって、ロボットトレーニングされるDNNが、シミュレーショントレーニングされるDNNによって学習された特徴を使用することが可能になる。シミュレーショントレーニングされるDNNのパラメータのトレーニングされる値は、シミュレーションベースのトレーニングを忘れることを回避するために、固定され得る。シミュレーショントレーニングされるDNNは、現実世界環境のシミュレートされたバージョンとともにトレーニングされ得る。
【００１６】
ロボットトレーニングされるDNNのトレーニングは、入力として、(i)第1のロボットトレーニングされるDNNの出力層に先行する層によって生成された層出力と、(ii)シミュレーショントレーニングされるDNNの出力層に先行する層によって生成された層出力とを受信すること、第1のロボットトレーニングされるDNNの出力層に先行する層によって生成された層出力に、第1のセットのパラメータを適用すること、および、シミュレーショントレーニングされるDNNの出力層に先行する層によって生成された層出力に、第2のセットのパラメータを適用することを伴い得る。方法は、第2のセットのパラメータの値を、シミュレーショントレーニングされるDNNの出力層のパラメータのトレーニングされる値と一致するように初期化するステップと、場合によっては、第1のセットのパラメータの値を0に初期化するステップとをさらに含み得る。たとえば、方法は、前のDNN列の最後の層からのDNN列の出力層への接続の重みのうちの一部または全部を、前のDNN列の出力重みに初期化し、場合によっては、列内のDNN列の出力層への重みのうちの一部または全部を0に初期化し得る。これによって探査を助けることができ、特に、現実世界における報酬がわずかであるので、強化学習がうまく行かないというリスクを、現実世界報酬の可能性を増すことによって補うことができる。
【００１７】
システムを使用する方法は、ロボットタスクを実行するために、ロボットエージェントによって対話されロボットエージェントと対話している現実世界環境の現在の状態を特徴づける観測結果を受信するステップと、ニューラルネットワークシステムを使用して、観測結果を処理するステップと、ポリシー出力を使用して、観測結果に応答して、ロボットエージェントによって実行されるべきアクションを選択するステップとを含み得る。
【００１８】
本明細書の主題の1つまたは複数の実施形態の詳細が、添付の図面および以下の説明において記載される。主題の他の特徴、態様、および利点は、明細書、図面、および特許請求の範囲から明らかになるであろう。
【図面の簡単な説明】
【００１９】
【図１】例示的な強化学習システムを示す図である。
【図２】ニューラルネットワークシステムの例示的なアーキテクチャを示す図である。
【図３】ニューラルネットワークシステムをトレーニングするための例示的なプロセスのフロー図である。
【図４】観測結果に応答して、エージェントによって実行されるべきアクションを選択するための例示的なプロセスのフロー図である。
【発明を実施するための形態】
【００２０】
様々な図面における同様の参照番号および指示は、同様の要素を示す。
【００２１】
本明細書は、概して、現実世界環境と対話(interact)する強化学習エージェントによって実行されるべきアクションを選択する、強化学習システムについて説明する。現実世界環境と対話するために、エージェントは、現実世界環境の現在の状態を特徴づけるデータを受信し、受信されたデータに応答して、アクション空間(たとえば、個別アクション空間または連続アクション空間)からのアクションを実行する。現実世界環境の状態を特徴づけるデータは、本明細書で観測結果と呼ばれる。
【００２２】
いくつかの実装形態では、ロボットエージェントは、特定のタスクを遂行するために、現実世界環境と対話するロボットであり得る。他の実装形態では、ロボットエージェントは、現実世界環境内をナビゲートする、自律または半自律走行車であり得る。これらの実装形態では、アクションは、ロボットまたは自律走行車を制御するための、可能な制御入力の空間における点であり得る。
【００２３】
場合によっては、観測結果は、環境の状態を特徴づける低次元の特徴ベクトルを使用して、環境の状態を特徴づける。これらの場合、低次元の特徴ベクトルの異なる次元の値は、変動する範囲を有し得る。
【００２４】
いくつかの他の場合には、観測結果は、環境の状態を特徴づける1つまたは複数の画像、たとえば、エージェントが現実世界環境と対話するとき、エージェントのセンサーによって取り込まれた画像からの、高次元のピクセル入力を使用して、環境の状態を特徴づける。
【００２５】
図1は、例示的な強化学習システム100を示す。強化学習システム100は、以下で説明するシステム、構成要素、および技法が実装される、1つまたは複数のロケーションにおける1つまたは複数のコンピュータ上のコンピュータプログラムとして実装されたシステムの一例である。
【００２６】
強化学習システム100は、タスクを遂行するために、現実世界環境104と対話する強化学習エージェント102によって実行されるべきアクションを選択する。すなわち、強化学習システム100は、観測結果を受信し、各観測結果が環境104のそれぞれの状態を特徴づけるものであり、各観測結果に応答して、観測結果に応答してエージェント102によって実行されるべきアクションを選択する。
【００２７】
特に、強化学習システム100は、ニューラルネットワークシステム106およびアクションサブシステム108を使用して、アクションを選択する。
【００２８】
ニューラルネットワークシステム106は、タスクを実行するために、エージェント102によって対話されロボットエージェント102と対話している現実世界環境104の現在の状態を特徴づける、観測結果112を受信するように構成される。たとえば、エージェント102は、手を伸ばすタスクまたはコンベヤ(動き追跡)タスクなど、ロボットタスクを実行するロボットエージェントである。
【００２９】
リアリティギャップを埋め、学習されたポリシーをシミュレーションから現実世界に移行させるために、ニューラルネットワークシステム106は、シミュレーショントレーニングされるディープニューラルネットワーク(DNN)と、1つまたは複数のロボットトレーニングされるDNNとを含む、DNNのシーケンスを含む。シミュレーショントレーニングされるDNNは、タスクを最初から学習するために十分な容量および深度を有するように構成され、1つまたは複数のロボットトレーニングされるDNNは、異なるタスクの最大の移行およびより高速な学習を可能にするために、より最小の容量を有するように構成される。シミュレーショントレーニングされるDNNおよびロボットトレーニングされるDNNの容量および構造は、同一である必要はなく、したがって、異なる入力モダリティを含む、異なるタスクを解決することが可能になる。DNNのシーケンスにおける各DNNは、複数のインデックス付き層と、出力層とを含む。ニューラルネットワークシステム106のアーキテクチャについて、図2を参照しながら以下でより詳細に説明する。
【００３０】
ニューラルネットワークシステム106は、ポリシー出力110を生成するために、DNNのシーケンスを使用して、観測結果112を処理するように構成される。概して、ポリシー出力110は、タスクを遂行するために、観測結果112に応答して、エージェント102によって実行され得る可能なアクションのセットにわたる確率分布を定義する。たとえば、いくつかの実装形態では、エージェント102は、1つまたは複数の関節と、1つまたは複数のアクチュエータとを含む、複数の自由度を有する(たとえば、複数の関節および指を有するロボットアーム)。これらの実装形態では、ポリシー出力110は、観測結果に応答して、エージェント102の異なる自由度を制御する可能なアクション、たとえば、エージェント102の各自由度の位置における変化を制御するアクションにわたる確率分布を定義する。
【００３１】
いくつかの実装形態では、ニューラルネットワークシステム106は、第2の異なるタスクを遂行するために、エージェント102によって実行され得る可能なアクションのセットにわたる確率分布を定義する、第2のポリシー出力を生成するために、DNNのシーケンスを使用して、観測結果112を処理するように構成される。
【００３２】
エージェント102が現実世界環境104と有効に対話することを可能にするために、強化学習システム100は、ニューラルネットワークシステム106のパラメータのトレーニングされる値を決定するために、ニューラルネットワークシステム106をトレーニングする。特に、システム100は、シミュレーショントレーニングされるDNNのパラメータのトレーニングされる値を決定するために、タスクのシミュレートされたバージョンを実行するために、エージェントのシミュレートされたバージョンと、現実世界環境のシミュレートされたバージョンとの対話上で、シミュレーショントレーニングされるDNNをトレーニングする。次いで、システム100は、シミュレーショントレーニングされるDNNのパラメータのトレーニングされる値を固定のままで保持しながら、ロボットトレーニングされるDNNのパラメータのトレーニングされる値を決定するために、タスクを実行するために、エージェントと現実世界環境との対話上で、ロボットトレーニングされるDNNをトレーニングする。トレーニング中に、探査を改善し、学習を加速させるために、ロボットトレーニングされるDNNの出力層のパラメータの値が、シミュレーショントレーニングされるDNNの出力層のパラメータのトレーニングされる値に基づいて初期化される。ニューラルネットワークシステム106をトレーニングするための例示的なプロセスについて、図3を参照しながら以下でより詳細に説明する。
【００３３】
ニューラルネットワークシステム106がポリシー出力110を生成した後、アクションサブシステム108は、ニューラルネットワークシステム106からポリシー出力110を受信するように、および、ポリシー出力110に基づいて、エージェント102によって実行されるべきアクション114を選択するように構成される。特に、アクションサブシステム108は、ポリシー出力110によって定義された確率分布から、アクション114をサンプリングすること、たとえば、最も可能性が高いアクションを選択することによって、アクション114を選択し得る。次いで、アクションサブシステム108は、エージェントに、選択されたアクション114を実行させる。
【００３４】
図2は、図1のニューラルネットワークシステム106の例示的なアーキテクチャを示す。
【００３５】
ニューラルネットワークシステム106は、ディープニューラルネットワーク(DNN)のシーケンスを含む。
【００３６】
DNNのシーケンスは、第1のロボットタスクのシミュレートされたバージョンを実行するために、ロボットエージェントのシミュレートされたバージョンと、現実世界環境のシミュレートされたバージョンとの対話上でトレーニングされた、シミュレーショントレーニングされるディープニューラルネットワーク(DNN)222を含む。
【００３７】
概して、シミュレーショントレーニングされるDNN222は、互いの上に積み重なって配置された複数のニューラルネットワーク層を含む。シミュレーショントレーニングされるDNN222は、フィードフォワードニューラルネットワークまたはリカレントニューラルネットワークであり得る。シミュレーショントレーニングされるDNN222は、1つまたは複数の畳み込みニューラルネットワーク層と、後続する完全接続層または長短期メモリ(LSTM:Long Short-Term Memory)ニューラルネットワーク層のいずれかとを含み得る。
【００３８】
図2に示すように、シミュレーショントレーニングされるDNN222は、複数の第1のインデックス付き層、たとえば、層h1(1)(204)および層h2(1)(206)と、出力層208とを含む。シミュレーショントレーニングされるDNN222は、現実世界環境の現在の状態を特徴づける観測結果を含む、入力202を受信するように構成される。たとえば、観測結果は、現実世界環境の現在の状態を示す1つまたは複数のRGB画像などの視覚的データを含む。次いで、シミュレーショントレーニングされるDNN222は、各層のためのそれぞれの層出力を生成するために、第1のインデックス付き層の各々を通して、観測結果を処理するように構成される。次いで、各層のためのそれぞれの層出力が、次の層への入力として与えられる。
【００３９】
DNNのシーケンスは、第1のロボットトレーニングされるDNN224をさらに含む。第1のロボットトレーニングされるDNN224は、フィードフォワードまたはリカレントニューラルネットワークであり得る。第1のロボットトレーニングされるDNN224は、1つまたは複数の畳み込みニューラルネットワーク層と、後続する完全接続ニューラルネットワーク層またはLSTMニューラルネットワーク層のいずれかとを含み得る。
【００４０】
多くの場合、第1のロボットトレーニングされるDNN224およびシミュレーショントレーニングされるDNN222は、同一の容量または構造を有する必要はなく、このことは、シミュレーションから現実への状況(sim-to-real situation)における利点であり得る。シミュレーショントレーニングされるDNN222は、ロボットタスクを最初から学習するために十分な容量および深度を有するように設計され得るが、ロボットトレーニングされるDNN224は、速い学習を促し、全体のパラメータ増大を制限するために、最小の容量を有し得る。したがって、場合によっては、シミュレーショントレーニングされるDNN222は、標準サイズのネットワークであるが、第1のロボットトレーニングされるDNN224は、トレーニングを加速させるために、低減された容量のネットワークである。それは、第1のロボットトレーニングされるDNN224が、シミュレーショントレーニングされるDNN222よりもはるかに少ないパラメータを有することを意味する。たとえば、シミュレーショントレーニングされるDNN222および第1のロボットトレーニングされるDNN224が、両方ともフィードフォワードニューラルネットワークであるとき、シミュレーショントレーニングされるDNN222は、数十万個のパラメータ、たとえば、約600,000個のパラメータを有し得るが、第1のロボットトレーニングされるDNN224は、数万個のパラメータ、たとえば、約40,000個のパラメータのみを有し得る。別の例では、シミュレーショントレーニングされるDNN222および第1のロボットトレーニングされるDNN224が、両方ともリカレントニューラルネットワークであるとき、シミュレーショントレーニングされるDNN222は、約300,000個のパラメータを有し得るが、第1のロボットトレーニングされるDNN224は、約40,000個のパラメータを有し得る。
【００４１】
場合によっては、シミュレーショントレーニングされるDNN222は、幅広いアーキテクチャを有し、第1のロボットトレーニングされるDNN224は、狭いアーキテクチャを有する。たとえば、複数の第2のインデックス付き層のうちの1つまたは複数の層の各々について、同じインデックスを有する複数の第1のインデックス付き層における対応する層は、同じタイプであるが、複数の第2のインデックス付き層における層よりも大きい寸法のニューラルネットワーク層である。たとえば、複数の第1のインデックス付き層における対応する層は、複数の第2のインデックス付き層における層よりもはるかに多いノードを有する。
【００４２】
図2に示すように、第1のロボットトレーニングされるDNN224は、複数の第2のインデックス付き層、たとえば、層h1(2)(210)および層h2(2)(212)と、出力層214とを含む。
【００４３】
第1のロボットトレーニングされるDNN224は、現実世界環境の現在の状態を特徴づける観測結果(たとえば、RGB画像)を含む、入力202を受信するように構成される。概して、第1のロボットトレーニングされるDNN224は、第1のロボットタスクを実行するために、ロボットエージェントによって実行されるべきアクションを定義する、ポリシー出力228を生成するために、複数の第2のインデックス付き層の各々を通して、入力202をまとめて処理するように構成される。ポリシー出力は、エージェントの複数の自由度の各々の位置におけるそれぞれの変化を定義する。自由度は、エージェントの1つまたは複数の関節と、エージェントの1つまたは複数のアクチュエータとを含む。
【００４４】
特に、複数の第2のインデックス付き層のうちの第1の層、たとえば、層h1(2)(210)は、入力202を受信するように、および第1の層出力を生成するために、入力202を処理するように構成される。
【００４５】
エージェントによって実行されるべきアクションを選択する際に使用するために、エージェントのシミュレートされたバージョンの対話から学習された特徴を移行させるために、複数の第2のインデックス付き層における第1の層210に後続する1つまたは複数の層は、入力として、(i)第1のロボットトレーニングされるDNN224の先行する層によって生成された層出力と、(ii)シミュレーショントレーニングされるDNN222の先行する層によって生成された層出力とを受信するように各々構成される。先行する層は、そのインデックスが層のインデックスよりも1だけ少ない層である。たとえば、層h2(2)(212)は、入力として、第1のロボットトレーニングされるDNN224の層h1(2)(210)によって生成された層出力と、層h1(1)(204)によって生成された層出力とを受信するように構成される。システムは、第1のロボットトレーニングされるDNNの先行する層によって生成された層出力に、第1のセットのパラメータ(重み)を適用するように、およびシミュレーショントレーニングされるDNNの先行する層によって生成された層出力に、第2のセットのパラメータ(重み)を適用するように構成され得る。場合によっては、シーケンスのDNN「列」の間の接続は、たとえば、スケーリングおよび/または次元削減のために、あるDNNの層出力を次のDNNの層入力に適合させるために、MLP(多層認知)などのニューラルネットワークを含み得る。そのような適合は、出力層に接続するときに必要ではないことがある。
【００４６】
場合によっては、複数の第1のインデックス付き層、および複数の第2のインデックス付き層は、それぞれのリカレントニューラルネットワーク層を各々含む。これらの場合、複数の第2のインデックス付き層におけるリカレントニューラルネットワーク層は、入力として、(i)複数の第1のインデックス付き層におけるリカレントニューラルネットワーク層に先行する層の層出力と、(ii)複数の第1のインデックス付き層におけるリカレントニューラルネットワーク層の内部状態と、(iii)複数の第2のインデックス付き層におけるリカレントニューラルネットワーク層に先行する層の層出力とを受信するように構成される。たとえば、複数の第1のインデックス付き層のうちの層206、および複数の第2のインデックス付き層のうちの層212が、リカレントニューラルネットワーク層であると仮定すると、次いで、層212は、入力として、層204の層出力と、層206の内部状態と、層210の層出力とを受信するように構成される。
【００４７】
特に、出力層214は、入力として、(i)第1のロボットトレーニングされるDNN224の出力層に先行する層によって生成された層出力、たとえば、層h2(2)(212)によって生成された層出力と、(ii)シミュレーショントレーニングされるDNN222の出力層に先行する層によって生成された層出力、たとえば、層h2(1)(206)によって生成された層出力とを受信するように構成される。出力層214は、ポリシー出力228を生成するために、第1のロボットトレーニングされるDNN224の出力層に先行する層によって生成された層出力に、第1のセットのパラメータを適用するように、およびシミュレーショントレーニングされるDNN222の出力層に先行する層によって生成された層出力に、第2のセットのパラメータを適用するように構成される。第1のセットのパラメータ、および第2のセットのパラメータは、第1のロボットトレーニングされるDNN224が、強化学習技法を使用して、ロボットエージェントと現実世界環境との対話上でトレーニングされた後、決定される。第1のロボットトレーニングされるDNN224をトレーニングすることについて、図3を参照しながら以下でより詳細に説明する。
【００４８】
場合によっては、ニューラルネットワークシステム106は、第1のロボットタスクとは異なる第2のロボットタスクを実行するために、ロボットエージェントと現実世界環境との対話上でトレーニングされた、第2のロボットトレーニングされるDNN226を含み得る。第2のロボットトレーニングされるDNN226は、複数の第3のインデックス付き層(たとえば、層h1(3)(216)および層h2(3)(218))と、出力層220とを含む。第2のロボットトレーニングされるDNNは、入力として、入力202中に含まれる観測結果(たとえば、RGB画像)とともに、現在の状態を特徴づける追加のデータを受信するように構成される。たとえば、追加のデータは、ロボットエージェントの関節およびアクチュエータの各々のための関節角度および速度など、ロボットエージェントの固有受容性特徴を含む、固有受容性データである。
【００４９】
入力として追加のデータをとることによって、第2のロボットトレーニングされるDNNは、ニューラルネットワークシステム106が、新しいタスクに移行するとき、新しい入力モダリティを含む、新しい容量を追加するための柔軟性を有することを可能にする。これは既存の手法よりも有利であり、その理由は、既存の手法が、変化するネットワーク形態、または新しい入力モダリティに対応することができないからである。これはまた、シミュレーションと実際のセンサーとの間の似ていない入力に対応するために、リアリティギャップを埋めるためにも有利である。
【００５０】
一変形態では、第2のロボットトレーニングされるDNNは、追加のデータのみを受信し、観測結果を受信しないことがあり、第1のロボットトレーニングされるDNNへの、および/またはシミュレーショントレーニングされるDNNへのラテラル接続を介して、観測結果を暗黙的に受信し得る。
【００５１】
複数の第3のインデックス付き層における第1の層、たとえば、層h1(3)(216)は、層出力を生成するために、受信された入力202と追加のデータとを処理するように構成される。第2のロボットトレーニングされるDNN226における第1の層216に後続する1つまたは複数の層は、入力として、(i)第1のロボットトレーニングされるDNN224の先行する層によって生成された層出力と、(ii)シミュレーショントレーニングされるDNN222の先行する層によって生成された層出力と、(iii)第2のロボットトレーニングされるDNN226の先行する層によって生成された層出力とを受信するように各々構成される。たとえば、第2のロボットトレーニングされるDNN226の層h2(3)(218)は、入力として、第1のロボットトレーニングされるDNN224の層h1(2)(210)によって生成された層出力と、シミュレーショントレーニングされるDNN222の層h1(1)(204)によって生成された層出力と、第2のロボットトレーニングされるDNN226の層h1(3)(216)によって生成された層出力とを受信するように構成される。
【００５２】
第1の層216に後続する1つまたは複数の層は、それぞれの層出力を生成するために、それぞれの入力を処理するように各々構成される。次いで、層出力が入力として、または、現在の層に後続する層がない(すなわち、現在の層が出力層220である)場合、第2のポリシー出力230として、次の層に与えられる。第2のポリシー出力230は、第2のロボットタスクを実行するために、ロボットエージェントによって実行されるべきアクションを定義する。
【００５３】
図3は、ニューラルネットワークシステム、たとえば、図1のニューラルネットワークシステム106をトレーニングするための例示的なプロセス300のフロー図である。便宜上、プロセス300について、1つまたは複数のロケーションに位置する1つまたは複数のコンピュータのシステムによって実行されているものとして説明する。たとえば、本明細書に従って適切にプログラムされた強化学習システム、たとえば、図1の強化学習システム100は、プロセス300を実行することができる。
【００５４】
システムは、最初に、シミュレーショントレーニングされるDNNのパラメータのトレーニングされる値を決定するために、ロボットタスク(すなわち、現実世界タスク)のシミュレートされたバージョンを実行するために、ロボットエージェントのシミュレートされたバージョンと、現実世界環境のシミュレートされたバージョンとの対話上で、ニューラルネットワークシステムのシミュレーショントレーニングされるDNNをトレーニングする(ステップ302)。ロボットエージェントのシミュレートされたバージョンは、現実世界のロボットエージェントと同様の外観を有し、現実世界のロボットエージェントの動きをエミュレートすることが可能である、仮想3Dモデルである。現実世界環境のシミュレートされたバージョンは、現実世界環境と、現実世界環境における物体とをレンダリングする、仮想3D環境である。トレーニング中に、ロボットエージェントのシミュレートされたバージョンは、現実世界タスクのシミュレートされたバージョンを完了させるために、動くように、またはシミュレートされた環境における仮想物体と対話するようにプログラムされる。システムは、トレーニング入力データをシミュレートすることができる。たとえば、現実世界環境における入力データが、カメラによって取り込まれた観測結果を含む場合、シミュレートされた入力データは、可能な観測結果をレンダリングすることが可能である構成要素によって与えられる。
【００５５】
ニューラルネットワークシステムが、現実世界タスク、現実世界環境、およびロボットエージェントにおける変動に有効に適合することを可能にするために、システムは、シミュレーショントレーニングされるDNNのトレーニングに差異を導入することができる。特に、現実世界のロボットエージェントは、たとえば、製造上の不一致のために変動し得る。加えて、タスクの異なるインスタンスが変動することがあり、たとえば、動かされている物体がわずかに異なる寸法を有することがあり、現実世界エージェントが、製造欠陥のために、選択されたアクションを実行するための異なる能力を有することがあるからである。したがって、システムは、現実世界タスクとまったく同じとは限らない、シミュレートされたタスク上で、シミュレーショントレーニングされるDNNをトレーニングして、シミュレーショントレーニングされるDNNが、現実世界において発生し得る予測不可能な状況を一般化することを可能にすることができる。
【００５６】
システムは、様々な方法で、シミュレーショントレーニングされるDNNのトレーニングに差異を導入することができる。たとえば、システムは、システムがアクションを選択する前に、エージェントによって実行されているアクションにランダムノイズを適用することができる。別の例として、システムは、シミュレートされたタスクのインスタンスの間で環境のシミュレートされたバージョンにおける物体の寸法を変えることができる。
【００５７】
システムは、第1の強化学習技法を使用して、シミュレーショントレーニングされるDNNをトレーニングすることができる。たとえば、システムは、Async Advantage Actor-Critic(A3C)フレームワークを使用して、シミュレーショントレーニングされるDNNをトレーニングすることができる。A3Cフレームワークを使用するトレーニング方法については、Volodymyr Mnih、Adria Puigdomenech Badia、Mehdi Mirza、Alex Graves、Timothy P. Lillicrap、Tim Harley、David Silver、およびKoray Kavukcuoglu、Asynchronous methods for deep reinforcement learning、In Int'l Conf. on Machine Learning (ICML)、2016年において詳細に記載されている。別の例として、システムは、Deep Deterministic Policy Gradients(DDPG)アルゴリズムなどのポリシー勾配アクター評定(policy-gradient actor-critic)アルゴリズムを使用して、シミュレーショントレーニングされるDNNをトレーニングすることができる。DDPGアルゴリズムを使用するトレーニング方法については、Timothy P. Lillicrap、Jonathan J. Hunt、Alexander Pritzel、Nicolas Heess、Tom Erez、Yuval Tassa、David Silver、Daan Wierstra、https://arxiv.org/abs/1509.02971において入手可能なContinuous control with Deep Reinforcement Learningにおいて詳細に記載されている。
【００５８】
シミュレーショントレーニングは、実際のロボットと比較して、高速なレンダリング、マルチスレッド学習アルゴリズム、および人間の関与なしに連続的にトレーニングするための能力のために加速される。シミュレーションを使用して、システムは、様々なトレーニングパラメータを効率的に探査することができる。たとえば、システムは、ログスケールにおいてランダムに均等にサンプリングされる、学習速度およびエントロピーコストを探査することができる。
【００５９】
次いで、システムは、第1のロボットトレーニングされるDNNのパラメータのトレーニングされる値を決定するために、第1のロボットタスクを実行するために、ロボットエージェントと現実世界環境との対話上で、第1のロボットトレーニングされるDNNをトレーニングする(ステップ304)。概して、システムは、最初に、第1のロボットトレーニングされるDNNのパラメータの値を、事前に決定された、またはランダムに生成された初期値に初期化する。
【００６０】
現実世界トレーニングでは、ロボットエージェントがアクションを実行する結果として、システムが受ける報酬が、わずかであるかまたは存在しないことがあるので、収束速度が小さいか、または収束が決して起こらないという、リスクがある。したがって、現実領域における探査中の報酬の見込みを最大にするために、システムは、ロボットエージェントの初期ポリシーが、シミュレーショントレーニングされるDNNと同一になるように、第1のロボットトレーニングされるDNNを初期化する。図2の例示的なニューラルネットワークシステム106を使用して、第1のロボットトレーニングされるDNN224のパラメータがインスタンス化されるとき、出力層214は、層212、およびシミュレーショントレーニングされるDNNの層206からの入力接続を有する。ランダムに初期化される、第1のロボットトレーニングされるDNNの他のパラメータとは異なり、出力層214が層212の層出力に適用することになる第1のパラメータの値は、0に初期化され、出力層214が層206の層出力に適用することになる第2のパラメータの値は、シミュレーショントレーニングされるDNNの出力層のパラメータのトレーニングされる値と一致するように初期化される。
【００６１】
第1のロボットトレーニングされるDNNのパラメータの値を初期化した後、システムは、シミュレーショントレーニングされるDNNのパラメータのトレーニングされる値を固定のままで保持しながら、第1のロボットトレーニングされるDNNのパラメータのトレーニングされる値を決定するために、ロボットタスクを実行するために、エージェントと現実世界環境との対話上で、第1のロボットトレーニングされるDNNをトレーニングする。第1のロボットトレーニングされるDNNは、現実世界環境の状態を特徴づける観測結果に加えて、追加の入力上でトレーニングされ得る。追加の入力は、ロボットエージェントの固有受容性特徴を含む、固有受容性データであり得る。固有受容性特徴は、ロボットエージェントの関節およびアクチュエータの各々のための関節角度および速度を含み得る。
【００６２】
システムは、第2の強化学習技法を使用して、エージェントの対話上で、第1のロボットトレーニングされるDNNをトレーニングすることができる。たとえば、システムは、Async Advantage Actor-Critic(A3C)フレームワーク、Deep Deterministic Policy Gradients(DDPG)アルゴリズムなどのポリシー勾配アクター評定アルゴリズム、または他の強化学習技法を使用して、第1のロボットトレーニングされるDNNをトレーニングすることができる。第2の強化学習技法は、第1の強化学習技法と同じであるか、または第1の強化学習技法とは異なり得る。
【００６３】
次いで、システムは、第2のロボットトレーニングされるDNNのパラメータのトレーニングされる値を決定するために、第2の異なるロボットタスクを実行するために、ロボットエージェントと現実世界環境との対話上で、第2のロボットトレーニングされるDNNをトレーニングする(ステップ306)。システムは、全体的なシステムの能力を拡大するために、第2の異なるロボットタスク上で、第2のロボットトレーニングされるDNNをトレーニングする。
【００６４】
システムは、最初に、第2のロボットトレーニングされるDNNのパラメータの値を、ランダムに生成された初期値に初期化する。
【００６５】
システムは、シミュレーショントレーニングされるDNNと第1のロボットトレーニングされるDNNの両方へのラテラルニューラル接続を使用する、第3の強化学習技法を使用して、第2のロボットトレーニングされるDNNをトレーニングする。第3の強化学習技法は、たとえば、Async Advantage Actor-Critic(A3C)フレームワーク、Deep Deterministic Policy Gradients(DDPG)アルゴリズムなどのポリシー勾配アクター評定アルゴリズム、または他の強化学習技法を使用する技法であり得る。このようにしてトレーニングされると、第2のロボットトレーニングされるDNNは、第2のロボットタスクのための学習速度を向上させるために、シミュレーショントレーニングされるDNN、または第1のロボットトレーニングされるDNNにおいて符号化されるような、第1のロボットタスクについて学習された特徴または表現を利用し得る。たとえば、第1のロボットタスクは、静的な物体に手を伸ばすことであり得、第2のタスクは、動的な動く物体に手を伸ばすことであり得る。
【００６６】
いくつかの実装形態では、第2のロボットトレーニングされるDNNは、現実世界環境の状態を特徴づける観測結果に加えて、追加の入力上でトレーニングされ得る。追加の入力は、ロボットエージェントの固有受容性特徴を含む、固有受容性データであり得る。固有受容性特徴は、ロボットエージェントの関節およびアクチュエータの各々のための関節角度および速度を含み得る。いくつかの実装形態では、トレーニング中に、第2のロボットトレーニングされるDNNは、追加のデータのみを受信し、観測結果を受信しないことがあり、第1のロボットトレーニングされるDNNへの、および/またはシミュレーショントレーニングされるDNNへのラテラル接続を介して、観測結果を暗黙的に受信し得る。
【００６７】
図4は、観測結果に応答して、エージェントによって実行されるべきアクションを選択するための例示的なプロセス400のフロー図である。便宜上、プロセス400について、1つまたは複数のロケーションに位置する1つまたは複数のコンピュータのシステムによって実行されているものとして説明する。たとえば、本明細書に従って適切にプログラムされた強化学習システム、たとえば、図1の強化学習システム100は、プロセス400を実行することができる。
【００６８】
システムは、ロボットタスクを実行するために、エージェントによって対話されロボットエージェントと対話している現実世界環境の現在の状態を特徴づける観測結果を受信する(ステップ402)。観測結果は、環境の現在の状態を特徴づける1つまたは複数の画像、たとえば、エージェントが現実世界環境と対話するとき、エージェントのセンサーによって取り込まれた画像からの、高次元のピクセル入力を使用して、環境の現在の状態を特徴づける。
【００６９】
次いで、システムは、ポリシー出力を生成するために、ニューラルネットワークシステムを使用して、観測結果を処理する(ステップ404)。システムは、ニューラルネットワークシステムのパラメータのトレーニングされる値に従って、観測結果を処理する。概して、ポリシー出力は、観測結果に応答して、エージェントによって実行され得る可能なアクションのセットにわたる確率分布を定義する。たとえば、いくつかの実装形態では、エージェントは、1つまたは複数の関節と、1つまたは複数のアクチュエータとを含む、複数の自由度を有する(たとえば、複数の関節および指を有するロボットアーム)。これらの実装形態では、ポリシー出力は、観測結果に応答して、エージェントの異なる自由度を制御する可能なアクション、たとえば、エージェントの各自由度の位置における変化を制御するアクションにわたる確率分布を定義する。たとえば、ロボットアームの場合、アクションは、腕および指の関節のための速度コマンドを備え得る。
【００７０】
システムは、ポリシー出力を使用して、観測結果に応答して、エージェントによって実行されるべきアクションを選択する(ステップ406)。特に、システムは、ポリシー出力によって定義された確率分布から、アクションをサンプリングすることによって、アクションを選択する。
【００７１】
次いで、システムは、エージェントにアクションを実行させる(ステップ408)。
【００７２】
本明細書は、システムおよびコンピュータプログラム構成要素に関連して、「構成される」という用語を使用する。1つまたは複数のコンピュータのシステムの場合、特定の動作またはアクションを実行するように構成されることは、システムが、動作中に動作またはアクションをシステムに実行させる、そのソフトウェア、ファームウェア、ハードウェア、またはそれらの組合せをインストールしていることを意味する。1つまたは複数のコンピュータプログラムの場合、特定の動作またはアクションを実行するように構成されることは、1つまたは複数のプログラムが、データ処理装置によって実行されると、動作またはアクションを装置に実行させる命令を含むことを意味する。
【００７３】
本明細書で説明する主題および機能的動作の実施形態は、本明細書およびそれらの構造的等価物において開示する構造を含む、デジタル電子回路において、有形に具現化されたコンピュータソフトウェアもしくはファームウェアにおいて、コンピュータハードウェアにおいて、またはそれらのうちの1つもしくは複数の組合せにおいて実装され得る。本明細書で説明する主題の実施形態は、1つまたは複数のコンピュータプログラム、すなわち、データ処理装置による実行のための、またはデータ処理装置の動作を制御するために、有形の非一時的記憶媒体上に符号化されたコンピュータプログラム命令の1つまたは複数のモジュールとして実装され得る。コンピュータ記憶媒体は、機械可読記憶デバイス、機械可読記憶基板、ランダムもしくは順次アクセスメモリデバイス、またはそれらのうちの1つもしくは複数の組合せであり得る。代替的にまたは追加として、プログラム命令は、データ処理装置による実行のために、好適な受信機装置への送信のために情報を符号化するために生成される、人工的に生成された伝搬信号、たとえば、機械により生成された電気信号、光信号、または電磁信号上で符号化され得る。
【００７４】
「データ処理装置」という用語は、データ処理ハードウェアを指し、例として、プログラマブルプロセッサ、コンピュータ、または複数のプロセッサもしくはコンピュータを含む、データを処理するためのすべての種類の装置、デバイス、および機械を包含する。装置は、専用論理回路、たとえば、FPGA(フィールドプログラマブルゲートアレイ)、またはASIC(特定用途向け集積回路)であってもよく、またはそれをさらに含み得る。装置は、場合によっては、ハードウェアに加えて、コンピュータプログラムのための実行環境を作成するコード、たとえば、プロセッサファームウェア、プロトコルスタック、データベース管理システム、オペレーティングシステム、またはそれらのうちの1つもしくは複数の組合せを構成するコードを含み得る。
【００７５】
プログラム、ソフトウェア、ソフトウェアアプリケーション、アプリ、モジュール、ソフトウェアモジュール、スクリプト、またはコードと呼ばれることもあるか、またはそのように説明されることもあるコンピュータプログラムは、コンパイラ型言語もしくはインタープリタ型言語、または宣言型言語もしくは手続き型言語を含む、任意の形式のプログラミング言語において記述され得、スタンドアロンプログラムとして、またはモジュール、構成要素、サブルーチン、もしくはコンピューティング環境において使用するのに好適な他のユニットとしてを含む、任意の形態において展開され得る。プログラムは、ファイルシステムにおけるファイルに対応し得るが、そうである必要はない。プログラムは、他のプログラムもしくはデータ、たとえば、マークアップ言語文書中に記憶された1つもしくは複数のスクリプトを保持するファイルの一部分において、問題になっているプログラム専用の単一のファイルにおいて、または、複数の協調されたファイル、たとえば、1つもしくは複数のモジュール、サブプログラム、もしくはコードの部分を記憶するファイルにおいて記憶され得る。コンピュータプログラムは、1つのサイトに位置するか、または複数のサイトにわたって分散され、データ通信ネットワークによって相互接続された、1つのコンピュータ上、または複数のコンピュータ上で実行されるように展開され得る。
【００７６】
本明細書で説明するプロセスおよび論理フローは、入力データにおいて動作すること、および出力を生成することによって、機能を実行するために、1つまたは複数のプログラマブルコンピュータが1つまたは複数のコンピュータプログラムを実行することによって実行され得る。プロセスおよび論理フローはまた、専用論理回路、たとえば、FPGAもしくはASICによって、または、専用論理回路および1つもしくは複数のプログラムされたコンピュータの組合せによっても実行され得る。
【００７７】
コンピュータプログラムの実行に好適なコンピュータは、汎用もしくは専用マイクロプロセッサもしくは両方、または任意の他の種類の中央処理ユニットに基づき得る。一般に、中央処理ユニットは、読取り専用メモリもしくはランダムアクセスメモリ、または両方から、命令およびデータを受信することになる。コンピュータの本質的な要素は、命令を実施または実行するための中央処理ユニット、ならびに、命令およびデータを記憶するための1つまたは複数のメモリデバイスである。中央処理ユニットおよびメモリは、専用論理回路によって補足されるか、または専用論理回路に組み込まれ得る。一般に、コンピュータはまた、データを記憶するための1つまたは複数の大容量記憶デバイス、たとえば、磁気ディスク、光磁気ディスク、または光ディスクを含むか、または、それからデータを受信するため、もしくはそれにデータを転送するため、もしくはその両方のために動作可能に結合されることになる。しかしながら、コンピュータは、そのようなデバイスを有する必要はない。その上、コンピュータは、別のデバイス、たとえば、ほんのいくつかの例を挙げれば、モバイル電話、携帯情報端末(PDA)、モバイルオーディオもしくはビデオプレーヤ、ゲームコンソール、全地球測位システム(GPS)受信機、またはポータブル記憶デバイス、たとえば、ユニバーサルシリアルバス(USB)フラッシュドライブ中に埋め込まれ得る。
【００７８】
コンピュータプログラム命令およびデータを記憶するのに好適なコンピュータ可読媒体は、例として、半導体メモリデバイス、たとえば、EPROM、EEPROM、およびフラッシュメモリデバイス、磁気ディスク、たとえば、内蔵ハードディスクまたはリムーバブルディスク、光磁気ディスク、ならびにCD-ROMおよびDVD-ROMディスクを含む、すべての形態の不揮発性メモリ、媒体、およびメモリデバイスを含む。
【００７９】
ユーザとの対話を提供するために、本明細書で説明する主題の実施形態は、情報をユーザに表示するためのディスプレイデバイス、たとえば、CRT(陰極線管)またはLCD(液晶ディスプレイ)モニタと、それによってユーザがコンピュータに入力を与えることができるキーボードおよびポインティングデバイス、たとえば、マウスまたはトラックボールとを有する、コンピュータ上で実装され得る。他の種類のデバイスが、ユーザとの対話を提供するために同様に使用され得、たとえば、ユーザに与えられるフィードバックは、任意の形態の感覚フィードバック、たとえば、視覚フィードバック、聴覚フィードバック、または触覚フィードバックであり得、ユーザからの入力は、音響入力、音声入力、または触覚入力を含む、任意の形態で受信され得る。加えて、コンピュータは、ユーザによって使用されるデバイスに文書を送ること、およびそれから文書を受信することによって、たとえば、ウェブブラウザから受信された要求に応答して、ユーザのデバイス上のウェブブラウザにウェブページを送ることによって、ユーザと対話することができる。また、コンピュータは、テキストメッセージまたは他の形式のメッセージをパーソナルデバイス、たとえば、メッセージングアプリケーションを実行中であるスマートフォンに送ること、および返信として、ユーザから応答メッセージを受信することによって、ユーザと対話することができる。
【００８０】
機械学習モデルを実装するためのデータ処理装置はまた、たとえば、機械学習トレーニングまたは生成の一般的な部分および計算集中的な部分、すなわち、推論、作業負荷を処理するための、専用ハードウェアアクセラレータユニットを含み得る。
【００８１】
機械学習モデルは、機械学習フレームワーク、たとえば、TensorFlowフレームワーク、Microsoft Cognitive Toolkitフレームワーク、Apache Singaフレームワーク、またはApache MXNetフレームワークを使用して実装および展開され得る。
【００８２】
本明細書で説明する主題の実施形態は、バックエンド構成要素を、たとえば、データサーバとして含むか、あるいは、ミドルウェア構成要素、たとえば、アプリケーションサーバを含むか、あるいは、フロントエンド構成要素、たとえば、それを通してユーザが、本明細書で説明する主題の実装形態と対話することができる、グラフィカルユーザインターフェース、ウェブブラウザ、もしくはアプリを有する、クライアントコンピュータ、または、1つもしくは複数のそのようなバックエンド構成要素、ミドルウェア構成要素、もしくはフロントエンド構成要素の任意の組合せを含む、コンピューティングシステムにおいて実装され得る。システムの構成要素は、任意の形態または任意の媒体のデジタルデータ通信、たとえば、通信ネットワークによって相互接続され得る。通信ネットワークの例には、ローカルエリアネットワーク(LAN)、およびワイドエリアネットワーク(WAN)、たとえば、インターネットが含まれる。
【００８３】
コンピューティングシステムは、クライアントおよびサーバを含み得る。クライアントおよびサーバは、一般に互いから遠隔であり、典型的には、通信ネットワークを通して対話する。クライアントおよびサーバの関係は、それぞれのコンピュータ上で実行しており、かつ、互いとクライアントサーバ関係を有する、コンピュータプログラムによって生じる。いくつかの実施形態では、サーバは、たとえば、クライアントとして作用するデバイスと対話するユーザにデータを表示し、ユーザからユーザ入力を受信するために、データ、たとえば、HTMLページをユーザデバイスに送信する。ユーザデバイスにおいて生成されたデータ、たとえば、ユーザ対話の結果が、デバイスからサーバにおいて受信され得る。
【００８４】
本明細書は、多数の特定の実装詳細を含むが、これらは、いずれかの発明の範囲の限定、または特許請求され得るものの範囲の限定として解釈されるべきではなく、むしろ、特定の発明の特定の実施形態に固有であり得る特徴の説明として解釈されるべきである。別個の実施形態との関連で本明細書で説明するいくつかの特徴はまた、単一の実施形態において組み合わせて実装され得る。逆に、単一の実施形態との関連で説明する様々な特徴もまた、複数の実施形態において別個に、または任意の好適な部分組合せにおいて実装され得る。その上、特徴は、いくつかの組合せにおいて作用するとして上記で説明されることがあり、最初にそのようなものとして特許請求されることさえあるが、特許請求される組合せからの1つまたは複数の特徴は、場合によっては、その組合せから削除され得、特許請求される組合せは、部分組合せ、または部分組合せの変形形態を対象とし得る。
【００８５】
同様に、動作は、特定の順序で図面において図示され、特許請求の範囲に記載されるが、これは、そのような動作が、図示された特定の順序で、もしくは連続した順序で実行されること、または、望ましい結果を達成するために、すべての図示された動作が実行されることを必要とするものとして理解されるべきではない。いくつかの状況では、マルチタスキングおよび並列処理が有利であり得る。その上、上記で説明した実施形態における様々なシステムモジュールおよび構成要素の分離は、すべての実施形態においてそのような分離を必要とするものとして理解されるべきではなく、説明したプログラム構成要素およびシステムは、一般に単一のソフトウェア製品にともに統合され得るか、または、複数のソフトウェア製品にパッケージ化され得ることを理解されたい。
【００８６】
主題の特定の実施形態について説明した。他の実施形態は、以下の特許請求の範囲の範囲内である。たとえば、特許請求の範囲に記載されているアクションは、異なる順序で実行され、なお、望ましい結果を達成することが可能である。一例として、添付の図面に図示したプロセスは、望ましい結果を達成するために、必ずしも図示の特定の順序、または連続した順序を必要とするとは限らない。場合によっては、マルチタスキングおよび並列処理が有利であり得る。
【符号の説明】
【００８７】
100  強化学習システム、システム
102  強化学習エージェント、エージェント
104  現実世界環境
106  ニューラルネットワークシステム
108  アクションサブシステム
110  ポリシー出力
112  観測結果
114  アクション
202  入力
204  層h1(1)、層
206  層h2(1)、層
208、214、220  出力層
210  層h1(2)、第1の層、層
212  層h2(2)、層
216  層h1(3)、第1の層
218  層h2(3)
222  シミュレーショントレーニングされるディープニューラルネットワーク(DNN)、シミュレーショントレーニングされるDNN
224  第1のロボットトレーニングされるDNN、ロボットトレーニングされるDNN
226  第2のロボットトレーニングされるDNN
228  ポリシー出力
230  第2のポリシー出力
【図１】
2019530105.tif 000003
【図２】
2019530105.tif 000004
【図３】
2019530105.tif 000005
【図４】
2019530105.tif 000006
【国際調査報告】
2019530105.tif 000007
2019530105.tif 000008