(57)【要約】【課題】環境とインタラクションするときにエージェントによって実行される行動を選択するために強化学習システムによって使用される深層ニューラルネットワークを非同期に訓練するための技術を提供する。【解決手段】システムのうちの1つは、複数のワーカーを実装するように構成された1つまたは複数のコンピュータを含み、各ワーカーは、互いのワーカーと独立して動作するように構成され、各ワーカーは、深層ニューラルネットワークの訓練中に環境のそれぞれの複製とインタラクションするそれぞれのアクターに関連付けられる。本明細書の態様は、ニューラルネットワークのより速い訓練および/または訓練のためのメモリの要件の低減という技術的効果を有する。【選択図】図１
2020042837.tif 000002
【特許請求の範囲】
【請求項１】
１つまたは複数のコンピュータを含むシステムであって、
前記1つまたは複数のコンピュータは、行動の予め決められた組から選択された行動を実行することにより、環境とインタラクションするエージェントを制御するために使用される方策ニューラルネットワークを実装するように構成され、
前記方策ニューラルネットワークは、複数の方策パラメータを有し、前記環境の状態を特徴付ける観測結果を処理し、前記行動の予め決められた組における各行動に関しそれぞれのスコアを生成するように構成され、
前記方策ニューラルネットワークは、基底ニューラルネットワークと共に訓練されており、前記基底ニューラルネットワークは、複数の基底パラメータを有し、前記環境の状態を特徴付ける入力観測結果を処理し、前記入力観測結果により特徴付けられる前記状態から始めて前記エージェントにより受け取られる推定された長期的報酬を表す基底スコアを生成するように構成され、
前記方策ニューラルネットワークおよび前記基底ニューラルネットワークは、複数のワーカーを使用して訓練されており、
各ワーカーは、他の各ワーカーと独立して動作するように構成され、
各ワーカーは、前記訓練の間、前記環境の複製の各々とインタラクションするアクターの各々に関連付けられ、
各ワーカーは、前記訓練の間に動作を反復的に実行するように構成され、当該動作は、
(１)前記ワーカーの各々によりアクセス可能な共有メモリから、前記基底ニューラルネットワークの前記基底パラメータの現在の値と前記方策ニューラルネットワークの前記方策パラメータの現在の値とを受け取る動作と、
(２)前記ワーカーに関連付けられる前記アクターとインタラクションする前記環境の複製が特定の基準を満たす状態に遷移するまで、
前記環境の複製の状態を特徴付ける観測結果を受け取り、各観測結果に応答し、前記ワーカーに関する各行動選択方策に従って前記観測結果に応答して前記ワーカーに関連付けられる前記アクターによって実行されるべき行動を選択する動作であって、前記選択することが、
各観測結果に関して、
前記観測結果と前記方策ニューラルネットワークの前記パラメータの前記現在の値とに基づき、前記行動の予め決められた組における各行動に関する各々のスコアを生成し、
前記各々のスコアを使用して前記アクターにより実行されるべき現在の行動を選択する
ことを含む、選択する動作と、
(３)前記ワーカーに関連付けられる前記アクターとインタラクションする前記環境の複製が前記特定の基準を満たす前記状態に遷移する前に受け取られた各観測結果に関して、
前記観測結果と前記基底ネットワークの前記パラメータの前記現在の値とに基づき、前記観測結果によって特徴づけられる前記状態から始めて前記エージェントにより受け取られる推定報酬を示す対応する基底スコアを生成し、
前記観測結果に対応する実際の長期的報酬を決定し、
強化学習技術の反復実行を行い、前記基底スコアと前記観測結果に対応する前記実際の長期的報酬とに基づき、前記基底および方策ネットワークに関する各々の現在の勾配を決定し、
前記基底および方策ネットワークに関する前記各々の現在の勾配に基づいて、前記基底および方策ネットワークに関する累積された勾配の各々を更新する動作と、
(４)前記方策ニューラルネットワークおよび前記基底ニューラルネットワークの前記パラメータの前記現在の値を更新するための基準が満たされたか否かを決定する動作と、
(５)前記基準が満たされたときに、
前記方策ニューラルネットワークおよび前記基底ニューラルネットワークの前記パラメータの前記現在の値を更新する動作であって、前記更新することが、
前記更新された累積された勾配を使用して、前記方策ニューラルネットワークおよび前記基底ニューラルネットワークの前記パラメータの更新された値を決定することと、
前記複数のワーカーの各々にとってアクセス可能な前記共有メモリ内に、前記方策ニューラルネットワークおよび前記基底ニューラルネットワークの前記パラメータの前記更新された値を記録することとを含む、更新する動作と
を含む、システム。
【請求項２】
各ワーカーは、同じコンピュータ上で他の各ワーカーとは独立して実行される、請求項1に記載のシステム。
【請求項３】
各ワーカーに関する前記各行動選択方策は、他の各ワーカーに関する各行動選択方策とは異なる、請求項1に記載のシステム。
【請求項４】
各ワーカーにより実行される前記動作が、
前記方策ニューラルネットワークおよび前記基底ニューラルネットワークの前記パラメータの前記現在の値を更新するための前記基準が満たされたときに、前記更新された累積された勾配を消去する動作
をさらに含む、請求項1に記載のシステム。
【請求項５】
前記方策ニューラルネットワークおよび前記基底ニューラルネットワークの前記パラメータの前記現在の値を更新するための前記基準が満たされたか否かを決定することが、前記方策ニューラルネットワークおよび前記基底ニューラルネットワークの前記パラメータの前記値の前回の更新から所定回数の前記強化学習技術の反復が行われたことを決定することを含む、請求項1に記載のシステム。
【請求項６】
前記観測結果に対応する前記実際の長期的報酬を決定することが、
前記アクターが前記観測結果に応答して前記選択された行動を実行した結果として生ずる実際の報酬を特定することと、
少なくとも前記観測結果に関する前記実際の報酬と前記特定の基準を満たす状態を特徴付ける前記観測結果に関する基底スコアとから、前記観測結果に対応する前記実際の長期的報酬を決定することと
を含む、請求項1に記載のシステム。
【請求項７】
少なくとも前記観測結果に関する前記実際の報酬と前記特定の基準を満たす状態を特徴付ける前記観測結果に関する基底スコアとから、前記観測結果に対応する前記実際の長期的報酬を決定することが、
前記基準が満たされる前に受け取った最後の観測結果に関して、前記観測結果に関する前記実際の報酬と前記特定の基準を満たす前記状態を特徴付ける前記観測結果に関する前記基底スコアとに基づき、前記実際の長期的報酬を設定することと、
前記基準が満たされる前に受け取った他の観測結果の各々に関して、前記観測結果に関する前記実際の長期的報酬を、前記観測結果の後に受け取られた観測結果に関する前記実際の長期的報酬の割り引かれた合計と前記現在の報酬とを足したものとして設定することと
を含む、請求項6に記載のシステム。
【請求項８】
前記方策ネットワークに関する前記現在の勾配が、
【数１】
2020042837.tif 000007
として決定され、
ここで、π(at |st;θ')は、前記方策ニューラルネットワークθ'の前記パラメータの前記現在の値に従って前記観測結果が決定されたことに応じて実行される行動atに関する前記スコアを示し、Rtは、前記観測結果に対応する前記実際の長期的報酬であり、btは、前記観測結果に対応する前記基底スコアである、請求項1に記載のシステム。
【請求項９】
前記基底ニューラルネットワークに関する前記現在の勾配が、
【数２】
2020042837.tif 000008
として決定され、
ここで、Rtは、前記観測結果に対応する前記実際の長期的報酬であり、btは、前記観測結果に対応する前記基底スコアであり、θb'は、前記基底パラメータの前記現在の値である、請求項1に記載のシステム。
【請求項１０】
命令を記録する1つまたは複数の非一時的コンピュータ可読記録媒体であって、
前記命令は、１つまたは複数のコンピュータにより実行されたときに、前記1つまたは複数のコンピュータに、行動の予め決められた組から選択された行動を実行することにより、環境とインタラクションするエージェントを制御するために使用される方策ニューラルネットワークを実装させ、
前記方策ニューラルネットワークは、複数の方策パラメータを有し、前記環境の状態を特徴付ける観測結果を処理し、前記行動の予め決められた組における各行動に関しそれぞれのスコアを生成するように構成され、
前記方策ニューラルネットワークは、基底ニューラルネットワークと共に訓練されており、前記基底ニューラルネットワークは、複数の基底パラメータを有し、前記環境の状態を特徴付ける入力観測結果を処理し、前記入力観測結果により特徴付けられる前記状態から始めて前記エージェントにより受け取られる推定された長期的報酬を表す基底スコアを生成するように構成され、
前記方策ニューラルネットワークおよび前記基底ニューラルネットワークは、複数のワーカーを使用して訓練されており、
各ワーカーは、他の各ワーカーと独立して動作するように構成され、
各ワーカーは、前記訓練の間、前記環境の複製の各々とインタラクションするアクターの各々に関連付けられ、
各ワーカーは、前記訓練の間に動作を反復的に実行するように構成され、当該動作は、
(１)前記ワーカーの各々によりアクセス可能な共有メモリから、前記基底ニューラルネットワークの前記基底パラメータの現在の値と前記方策ニューラルネットワークの前記方策パラメータの現在の値とを受け取る動作と、
(２)前記ワーカーに関連付けられる前記アクターとインタラクションする前記環境の複製が特定の基準を満たす状態に遷移するまで、
前記環境の複製の状態を特徴付ける観測結果を受け取り、各観測結果に応答し、前記ワーカーに関する各行動選択方策に従って前記観測結果に応答して前記ワーカーに関連付けられる前記アクターによって実行されるべき行動を選択する動作であって、前記選択することが、
各観測結果に関して、
前記観測結果と前記方策ニューラルネットワークの前記パラメータの前記現在の値とに基づき、前記行動の予め決められた組における各行動に関する各々のスコアを生成し、
前記各々のスコアを使用して前記アクターにより実行されるべき現在の行動を選択する
ことを含む、選択する動作と、
(３)前記ワーカーに関連付けられる前記アクターとインタラクションする前記環境の複製が前記特定の基準を満たす前記状態に遷移する前に受け取られた各観測結果に関して、
前記観測結果と前記基底ネットワークの前記パラメータの前記現在の値とに基づき、前記観測結果によって特徴づけられる前記状態から始めて前記エージェントにより受け取られる推定報酬を示す対応する基底スコアを生成し、
前記観測結果に対応する実際の長期的報酬を決定し、
強化学習技術の反復実行を行い、前記基底スコアと前記観測結果に対応する前記実際の長期的報酬とに基づき、前記基底および方策ネットワークに関する各々の現在の勾配を決定し、
前記基底および方策ネットワークに関する前記各々の現在の勾配に基づいて、前記基底および方策ネットワークに関する累積された勾配の各々を更新する動作と、
(４)前記方策ニューラルネットワークおよび前記基底ニューラルネットワークの前記パラメータの前記現在の値を更新するための基準が満たされたか否かを決定する動作と、
(５)前記基準が満たされたときに、
前記方策ニューラルネットワークおよび前記基底ニューラルネットワークの前記パラメータの前記現在の値を更新する動作であって、前記更新することが、
前記更新された累積された勾配を使用して、前記方策ニューラルネットワークおよび前記基底ニューラルネットワークの前記パラメータの更新された値を決定することと、
前記複数のワーカーの各々にとってアクセス可能な前記共有メモリ内に、前記方策ニューラルネットワークおよび前記基底ニューラルネットワークの前記パラメータの前記更新された値を記録することとを含む、更新する動作と
を含む、非一時的コンピュータ可読記録媒体。
【請求項１１】
各ワーカーは、同じコンピュータ上で他の各ワーカーとは独立して実行される、請求項10に記載の非一時的コンピュータ可読記録媒体。
【請求項１２】
各ワーカーに関する前記各行動選択方策は、他の各ワーカーに関する各行動選択方策とは異なる、請求項10に記載の非一時的コンピュータ可読記録媒体。
【請求項１３】
各ワーカーにより実行される前記動作が、
前記方策ニューラルネットワークおよび前記基底ニューラルネットワークの前記パラメータの前記現在の値を更新するための前記基準が満たされたときに、前記更新された累積された勾配を消去する動作
をさらに含む、請求項10に記載の非一時的コンピュータ可読記録媒体。
【請求項１４】
前記方策ニューラルネットワークおよび前記基底ニューラルネットワークの前記パラメータの前記現在の値を更新するための前記基準が満たされたか否かを決定することが、前記方策ニューラルネットワークおよび前記基底ニューラルネットワークの前記パラメータの前記値の前回の更新から所定回数の前記強化学習技術の反復が行われたことを決定することを含む、請求項10に記載の非一時的コンピュータ可読記録媒体。
【請求項１５】
行動の予め決められた組から選択された行動を実行することにより、環境とインタラクションするエージェントを制御するための1つまたは複数のデータ処理装置により実行される方法であって、
複数の方策パラメータを有する方策ニューラルネットワークを使用して前記環境の状態を特徴付ける観測結果を処理し、前記行動の予め決められた組における各行動に関する各々のスコアを生成するステップと、
前記行動の予め決められた組における各行動に関する前記各々のスコアを使用して前記エージェントにより実行されるべき行動を選択するステップと
を含み、
前記方策ニューラルネットワークは、複数の方策パラメータを有し、前記環境の状態を特徴付ける観測結果を処理し、前記行動の予め決められた組における各行動に関しそれぞれのスコアを生成するように構成され、
前記方策ニューラルネットワークは、基底ニューラルネットワークと共に訓練されており、前記基底ニューラルネットワークは、複数の基底パラメータを有し、前記環境の状態を特徴付ける入力観測結果を処理し、前記入力観測結果により特徴付けられる前記状態から始めて前記エージェントにより受け取られる推定された長期的報酬を表す基底スコアを生成するように構成され、
前記方策ニューラルネットワークおよび前記基底ニューラルネットワークは、複数のワーカーを使用して訓練されており、
各ワーカーは、他の各ワーカーと独立して動作するように構成され、
各ワーカーは、前記訓練の間、前記環境の複製の各々とインタラクションするアクターの各々に関連付けられ、
各ワーカーは、前記訓練の間に動作を反復的に実行するように構成され、当該動作は、
(１)前記ワーカーの各々によりアクセス可能な共有メモリから、前記基底ニューラルネットワークの前記基底パラメータの現在の値と前記方策ニューラルネットワークの前記方策パラメータの現在の値とを受け取る動作と、
(２)前記ワーカーに関連付けられる前記アクターとインタラクションする前記環境の複製が特定の基準を満たす状態に遷移するまで、
前記環境の複製の状態を特徴付ける観測結果を受け取り、各観測結果に応答し、前記ワーカーに関する各行動選択方策に従って前記観測結果に応答して前記ワーカーに関連付けられる前記アクターによって実行されるべき行動を選択する動作であって、前記選択することが、
各観測結果に関して、
前記観測結果と前記方策ニューラルネットワークの前記パラメータの前記現在の値とに基づき、前記行動の予め決められた組における各行動に関する各々のスコアを生成し、
前記各々のスコアを使用して前記アクターにより実行されるべき現在の行動を選択する
ことを含む、選択する動作と、
(３)前記ワーカーに関連付けられる前記アクターとインタラクションする前記環境の複製が前記特定の基準を満たす前記状態に遷移する前に受け取られた各観測結果に関して、
前記観測結果と前記基底ネットワークの前記パラメータの前記現在の値とに基づき、前記観測結果によって特徴づけられる前記状態から始めて前記エージェントにより受け取られる推定報酬を示す対応する基底スコアを生成し、
前記観測結果に対応する実際の長期的報酬を決定し、
強化学習技術の反復実行を行い、前記基底スコアと前記観測結果に対応する前記実際の長期的報酬とに基づき、前記基底および方策ネットワークに関する各々の現在の勾配を決定し、
前記基底および方策ネットワークに関する前記各々の現在の勾配に基づいて、前記基底および方策ネットワークに関する累積された勾配の各々を更新する動作と、
(４)前記方策ニューラルネットワークおよび前記基底ニューラルネットワークの前記パラメータの前記現在の値を更新するための基準が満たされたか否かを決定する動作と、
(５)前記基準が満たされたときに、
前記方策ニューラルネットワークおよび前記基底ニューラルネットワークの前記パラメータの前記現在の値を更新する動作であって、前記更新することが、
前記更新された累積された勾配を使用して、前記方策ニューラルネットワークおよび前記基底ニューラルネットワークの前記パラメータの更新された値を決定することと、
前記複数のワーカーの各々にとってアクセス可能な前記共有メモリ内に、前記方策ニューラルネットワークおよび前記基底ニューラルネットワークの前記パラメータの前記更新された値を記録することとを含む、更新する動作と
を含む、方法。
【請求項１６】
各ワーカーは、同じコンピュータ上で他の各ワーカーとは独立して実行される、請求項15に記載の方法。
【請求項１７】
各ワーカーに関する前記各行動選択方策は、他の各ワーカーに関する各行動選択方策とは異なる、請求項15に記載の方法。
【請求項１８】
各ワーカーにより実行される前記動作が、
前記方策ニューラルネットワークおよび前記基底ニューラルネットワークの前記パラメータの前記現在の値を更新するための前記基準が満たされたときに、前記更新された累積された勾配を消去する動作
をさらに含む、請求項15に記載の方法。
【請求項１９】
前記方策ニューラルネットワークおよび前記基底ニューラルネットワークの前記パラメータの前記現在の値を更新するための前記基準が満たされたか否かを決定することが、前記方策ニューラルネットワークおよび前記基底ニューラルネットワークの前記パラメータの前記値の前回の更新から所定回数の前記強化学習技術の反復が行われたことを決定することを含む、請求項15に記載の方法。
【請求項２０】
前記観測結果に対応する前記実際の長期的報酬を決定することが、
前記アクターが前記観測結果に応答して前記選択された行動を実行した結果として生ずる実際の報酬を特定することと、
少なくとも前記観測結果に関する前記実際の報酬と前記特定の基準を満たす状態を特徴付ける前記観測結果に関する基底スコアとから、前記観測結果に対応する前記実際の長期的報酬を決定することと
を含む、請求項15に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本明細書は、強化学習(Reinforcement Learning)に関する。
【背景技術】
【０００２】
強化学習システムにおいては、エージェントが、環境の現在の状態を特徴付ける観測結果(Observation)を受け取ることに応じて強化学習システムによって選択される行動(Action)を実行することによって環境とインタラクションする。
【０００３】
一部の強化学習システムは、ニューラルネットワークの出力に応じて所与の観測結果を受け取ることに応じてエージェントによって実行される行動を選択する。
【０００４】
ニューラルネットワークは、受け取られた入力に関する出力を予測するために非線形ユニットの1つまたは複数の層を使用する機械学習モデルである。一部のニューラルネットワークは、出力層に加えて1つまたは複数の隠れ層を含む深層ニューラルネットワーク(Deep Neural Networks)である。各隠れ層の出力は、ネットワーク内の次の層、すなわち、次の隠れ層または出力層への入力として使用される。ネットワークの各層は、パラメータのそれぞれの組の現在の値に従って、受け取られた入力から出力を生成する。
【発明の概要】
【課題を解決するための手段】
【０００５】
本明細書は、強化学習に関するテクノロジーを説明する。特に、本明細書は、環境とインタラクションするときにエージェントによって実行される行動を選択するために強化学習システムによって使用される深層ニューラルネットワークを非同期に訓練するための技術を説明する。本明細書の態様は、ニューラルネットワークのより速い訓練および/または訓練のためのメモリの要件の低減という技術的効果を有する。
【０００６】
1つまたは複数のコンピュータのシステムが特定の動作または行動を実行するように構成されることは、システムが、動作中にシステムに動作または行動を実行させるソフトウェア、ファームウェア、ハードウェア、またはそれらの組合せをそのシステム上にインストール済みであることを意味する。1つまたは複数のコンピュータプログラムが特定の動作または行動を実行するように構成されることは、1つまたは複数のプログラムが、データ処理装置によって実行されるときに装置に動作または行動を実行させる命令を含むことを意味する。
【０００７】
本明細書に記載の対象は、以下の利点のうちの1つまたは複数を実現するように特定の実施形態に実装され得る。訓練を並列化することによって、強化学習システムによって使用されるニューラルネットワークが、より速く訓練され得る。より具体的には、単一のマシン上で独立して動作する複数のワーカー(Worker)を使用して訓練を並列化することによって、並列化の結果としてかかる通信コストが削減され得る。加えて、複数のマシン上の複数のワーカーを含む並列化技術において通常必要とされる、ワーカーが再生メモリ(Replay Memory)またはその他のストレージに経験タプル(Experience Tuple)を記憶する必要をなくすことによって、訓練のためのメモリの要件が低減される可能性があり、方策オン型(On-Policy)強化学習方法が使用される可能性がある。
【０００８】
本明細書の対象の1つまたは複数の実施形態の詳細が、添付の図面および以下の説明に記載されている。対象のその他の特徴、態様、および利点は、説明、図面、および請求項から明らかになるであろう。たとえば、本明細書は、本明細書において開示される技術のいずれかを実行するための、コンピュータストレージ媒体上に符号化されたコンピュータプログラムを含む方法、システム、および装置を提供する。一部の実施形態において、コンピュータプログラムは、コンピューティング装置によって実行されるときにそのコンピューティング装置に本明細書において開示される技術のいずれかを実行させる命令を含む。
【図面の簡単な説明】
【０００９】
【図１】例示的なニューラルネットワーク訓練システムの図である。
【図２】深層ニューラルネットワークを訓練するための例示的なプロセスの流れ図である。
【図３】Q学習技術の反復を実行するための例示的なプロセスの流れ図である。
【図４】SARSA技術の反復を実行するための例示的なプロセスの流れ図である。
【図５】方策(Policy)ニューラルネットワークを訓練するための例示的なプロセスの流れ図である。
【発明を実施するための形態】
【００１０】
様々な図面における同様の参照番号および参照指示は、同様の要素を示す。
【００１１】
本明細書は、概して、非同期深層強化学習(Asynchronous Deep Reinforcement Learning)に関する技術を説明する。特に、本明細書は、環境とインタラクションするエージェントによって実行される行動(Action)を選択するために強化学習システムによって使用される深層ニューラルネットワークを複数のワーカーがどのようにして非同期に訓練し得るのかを説明する。
【００１２】
一部の実装において、環境は、シミュレーションされた環境であり、エージェントは、シミュレーションされた環境とインタラクションする1つまたは複数のコンピュータプログラムとして実装される。たとえば、シミュレーションされた環境は、ビデオゲームである可能性があり、エージェントはビデオゲームをプレイするシミュレーションされたユーザである可能性がある。別の例として、シミュレーションされた環境は、運動シミュレーション環境、たとえば、運転シミュレーションまたはフライトシミュレーションである可能性があり、エージェントは、運動シミュレーションによって移動するシミュレーションされた乗り物である。これらの実装において、行動は、シミュレーションされたユーザまたはシミュレーションされた乗り物を制御するための制御入力である可能性がある。
【００１３】
一部のその他の実装において、環境は、実世界の環境(Real-World Environment)であり、エージェントは、実世界とインタラクションする機械的なエージェントである。たとえば、エージェントは、特別なタスクを遂行するために環境とインタラクションするロボットである可能性がある。別の例として、エージェントは、環境の中を移動する自律的なまたは半自律的な乗り物である可能性がある。これらの実装において、行動は、ロボットまたは自律的な乗り物を制御するための制御入力である可能性がある。
【００１４】
概して、強化学習システムは、環境の現在の状態を特徴付ける観測結果を受け取り、観測結果を使用してエージェントによって実行される行動を選択する。エージェントが選択された行動を実行することに応じて、環境は、新しい状態に遷移し、強化学習システムは、報酬(Reward)を受け取る。報酬は、環境の状態の関数である数値である。環境とインタラクションする間に、強化学習システムは、エージェントによって実行された行動に応じてエージェントによって受け取られる長期的報酬(Long-Term Reward)を最大化しようと試みる。
【００１５】
特に、所与の観測結果に応答して、強化学習システムは、深層ニューラルネットワークによって生成された出力に従ってエージェントによって実行される行動を選択する。
【００１６】
強化学習システムがエージェントによって実行される行動を効果的に選択することを可能にするために、ニューラルネットワーク訓練システムは、パラメータの初期値から深層ニューラルネットワークのパラメータの値を調整するように深層ニューラルネットワークを訓練する。
【００１７】
特に、ニューラルネットワーク訓練システムは、環境の複製とインタラクションするアクター(Actor)によって実行される行動を選択することによって深層ニューラルネットワークを非同期に訓練する複数のワーカーを含む。
【００１８】
各アクターは、互いのインスタンスと独立して動作するエージェントのインスタンスである。たとえば、エージェントが機械的なエージェントであるとき、各アクターは、やはり、エージェントと同じであるかまたはほぼ同じである、たとえば、同じまたはほぼ同じ特性を有し、エージェントと同じ行動を実行することができ、互いのアクターと独立して動作する別個の機械的なエージェントである。
【００１９】
図1は、例示的なニューラルネットワーク訓練システム100を示す。ニューラルネットワーク訓練システム100は、以下で説明されるシステム、構成要素、および技術が実装される、1つまたは複数の場所の1つまたは複数のコンピュータ上のコンピュータプログラムとして実装されたシステムの例である。
【００２０】
ニューラルネットワーク訓練システム100は、複数のワーカー102A〜Nおよび共有メモリ110を含む。ワーカー102A〜102Nの各々は、対応する環境の複製106A〜106Nとインタラクションするそれぞれのアクター104A〜Nに関連付けられる。たとえば、ワーカー102Aは、環境の複製106Aとインタラクションするアクター104Aに関連付けられる。
【００２１】
一部の実装において、ワーカー110A〜Nの各々は、同じコンピュータ上に実装されるが、ワーカーに関する計算を独立して実行することができるコンピュータ内の別々のスレッド、プロセス、またはその他のハードウェアもしくはソフトウェア内で実行される。これらの実装において、共有メモリ110は、ワーカー102A〜102Nの各々がアクセス可能なコンピュータのメモリである。環境が仮想化された環境である実装において、所与のワーカーに関連するアクターおよび環境の複製も、所与のワーカーと同じスレッドまたはその他のハードウェアもしくはソフトウェア内で実行される。
【００２２】
ワーカー102A〜102Nの各々は、訓練されている深層ニューラルネットワークのインスタンスを保有し、共有メモリ110に記憶される深層ニューラルネットワークのパラメータの現在の値を取得するために共有メモリ110にアクセスする。そして、各ワーカーは、共有メモリ110から得られたニューラルネットワークのパラメータの現在の値に応じてワーカーに関連するアクターによって実行される行動を選択するためにワーカーの深層ニューラルネットワークのインスタンスを使用する。
【００２３】
特に、訓練中に、各ワーカーは、ワーカーに関連する環境の複製の状態を特徴付ける観測結果を受け取り、各観測結果に応答して、深層ニューラルネットワークを使用して環境の複製に関連するアクターによって実行される行動を選択する。そして、ワーカーは、環境の複製の次の状態、すなわち、アクターが選択された行動を実行した結果として環境の複製が遷移する状態を特徴付ける次の観測結果と、アクターが選択された行動を実行した結果として生じる報酬とを受け取る。ワーカーは、報酬と次の観測結果を使用して勾配を決定し、ワーカーによって決定された勾配を周期的に使用して、共有メモリ110に記憶されるパラメータ値を更新する。勾配を決定し、共有メモリに記憶されたパラメータ値を更新することが、図2を参照して以下でより詳細に説明される。
【００２４】
ワーカー102A〜102Nの各々が共有メモリ110に記憶されるパラメータ値を繰り返し、非同期に更新することによって、ワーカー102A〜102Nは、深層ニューラルネットワークのパラメータの訓練された値を決定するように深層ニューラルネットワークを集団で訓練する。
【００２５】
図2は、深層ニューラルネットワークを訓練するための例示的なプロセス200の流れ図である。便宜的に、プロセス200は、ワーカー、たとえば、図1のワーカー102A〜Nのうちの1つによって実行されるものとして説明される。
【００２６】
ワーカーは、深層ニューラルネットワークのパラメータの現在の値を決定する(ステップ202)。
【００２７】
一部の実装において、ワーカーは、ワーカーのすべての間で共有されるメモリ、たとえば、図1の共有メモリ110から現在の値を取得する。
【００２８】
いくつかのその他の実装において、ワーカーは、下で説明されるように共有メモリを更新した後にのみメモリから現在の値を取得し、それらの現在の値をローカルメモリに書き込む。これらの実装において、ワーカーは、現在の値がローカルメモリに記憶される値であることを決定する。
【００２９】
ワーカーは、ワーカーに関連するアクターによってインタラクションされている環境の複製の現在の状態を特徴付ける現在の観測結果を受け取る(ステップ204)。
【００３０】
ワーカーは、深層ニューラルネットワークを使用して環境が現在の状態であるときにアクターによって実行される現在の行動を選択する(ステップ206)。
【００３１】
特に、一部の実装において、深層ニューラルネットワークは、観測結果および行動を入力として受け取り、Qネットワークのパラメータの現在の値に従って入力を処理してニューラルネットワークの出力を生成するように構成されるQネットワークである。本明細書においてQ値(Q Value)と呼ばれることになるニューラルネットワークの出力は、環境が入力された観測結果によって特徴付けられる状態であるときにエージェントまたはアクターが入力された行動を実行した結果生じる長期的報酬の推定値である。
【００３２】
これらの実装においては、行動の予め決められた組の中の各行動に関して、ワーカーが、Qネットワークを使用して行動および現在の観測結果を処理して、各行動に関するそれぞれの現在のQ値を生成する。
【００３３】
それから、ワーカーは、現在のQ値を使用して、ワーカーに関する行動選択の方策(Policy)に従って、アクターによって実行される現在の行動として行動の予め決められた組から行動を選択する。
【００３４】
概して、所与のワーカーに関する行動選択の方策は、それぞれのその他のワーカーに関する行動選択の方策と異なる。たとえば、一部の実装において、各ワーカーに関する行動選択の方策は、ワーカーが確率εで行動の予め決められた組から無作為に行動を選択し、確率1-εで最も高いQ値を有する行動を選択するが、ただし、εの値は、各ワーカーに関して異なるεグリーディ方策(ε-greedy policy)である。たとえば、各ワーカーは、εが行動選択の方策において使用されると決定するために、ワーカーに関するεの可能な値の分布からワーカーに関するεのための値を周期的にサンプリングし得る。別の例として、ワーカーは、Q値にSoftmaxの非線形性を適用し、結果として得られる分布から行動をサンプリングすることによって行動を選択する可能性がある。そして、各ワーカーは、Softmaxにおいて異なる温度(Temperature)パラメータを使用して、各ワーカーが異なる行動選択の方策を有していたことを保証する可能性がある。
【００３５】
ワーカーは、次の観測結果および実際の報酬を受け取る(ステップ208)。次の観測結果は、環境の複製の次の状態、すなわち、ワーカーが現在の行動をすることに関連するアクターの結果として環境の複製が遷移した状態を特徴付ける。実際の報酬は、現在の状態から次の状態への遷移の結果として環境の複製から受け取られる数値である。
【００３６】
ワーカーは、実際の報酬および次の観測結果を使用して現在の勾配を決定するために強化学習手順の反復を実行する(ステップ210)。勾配は、深層ニューラルネットワークを訓練するために最適化されている損失関数の勾配である。
【００３７】
損失関数と、ワーカーが勾配を決定する方法とは、深層ニューラルネットワークを訓練するために使用されている強化学習手順に依存し、そしてまた、その強化学習手順は、深層ニューラルネットワークがどのようにして構成されるかに依存する。
【００３８】
たとえば、深層ニューラルネットワークがQネットワークであるとき、ワーカーは、Q学習技術またはSARSA技術を使用する可能性がある。Q学習技術の反復を実行することは、図3を参照して下で説明される。SARSA技術の反復を実行することは、図4を参照して下で説明される。
【００３９】
ワーカーは、累積された勾配を現在の勾配によって更新して、更新された累積された勾配を決定する(ステップ212)。つまり、ワーカーは、ローカルメモリに勾配を保有し、新しい勾配が計算される度に、たとえば、累積された勾配に新しい勾配を足すことによって、保有される勾配を新しい勾配によって更新する。
【００４０】
ワーカーは、ニューラルネットワークのパラメータの現在の値を更新するための基準が満たされるかどうかを判定する(ステップ214)。たとえば、現在の値を更新するための基準は、ワーカーが最も最近パラメータ値を更新して以降にワーカーが指定された回数の強化学習の反復を実行した後でワーカーが現在の値を更新すると指定する可能性がある。別の例として、基準は、ワーカーが最も最近パラメータ値を更新して以降に複数のワーカーのすべてによって実行された強化学習の反復の合計回数が指定された閾値を超えるときにワーカーが現在の値を更新すると指定する可能性がある。
【００４１】
基準が満たされる場合、ワーカーは、累積された勾配を使用して更新されたパラメータ値を決定し(ステップ216)、更新されたパラメータ値を共有メモリに書き込む(ステップ218)。特に、ワーカーは、累積された勾配からパラメータ値の最新情報を決定し、共有メモリ内の現在の値にアクセスし、それから、パラメータ値の最新情報を使用してそれらの値を更新する。一部の例において、ワーカーは、累積された勾配に学習率パラメータを掛け、それから、現在のパラメータ値とパラメータ値の最新情報とを合計して更新されたパラメータ値を決定する。いくつかのその他の例において、ワーカーは、RMSProp最適化手順の非同期の変化型を使用してパラメータ値を更新する。
【００４２】
ワーカーが更新されたパラメータ値を共有メモリに書き込んだ後、ワーカーは、累積された勾配を消去し、つまり、その結果、プロセス200の次の反復が開始されるとき、ワーカーによって勾配が保有されていない。
【００４３】
基準が満たされない場合、ワーカーは、共有メモリにいかなるものも書き込むことを控え(ステップ220)、つまり、ワーカーは、現在のパラメータ値を更新することなくプロセス200の別の反復を実行し始める。
【００４４】
複数のワーカーの各々は、プロセス200を非同期に繰り返し実行して、深層ニューラルネットワークのパラメータの訓練された値を集団で決定し得る。訓練された値が決定されると、強化学習システムは、エージェントが環境とインタラクションすることによって、つまり、ニューラルネットワークのパラメータの訓練された値に従って深層ニューラルネットワークを使用してニューラルネットワークの入力を処理することによって、深層ニューラルネットワークを使用して実行される値を選択し得る。いくつかのその他の場合、強化学習システムは、ワーカーがプロセス200を実行し続ける間に、つまり、共有メモリに記憶された値を周期的に取得し、それらの値を使用してエージェントによって実行される行動を選択することによって、深層ニューラルネットワークを使用してエージェントによって実行される値を選択する。
【００４５】
場合によっては、訓練された値が決定されると、それらの訓練された値が記憶され、それから、深層ニューラルネットワークの訓練されたバージョンをインスタンス化する際に使用するために、つまり、エージェントが環境とインタラクションする際に行動を効果的に選択することを可能にするためにネットワークを介して別のシステムに送信される。
【００４６】
図3は、Q学習技術の反復を実行するための例示的なプロセス300の流れ図である。便宜的に、プロセス300は、ワーカー、たとえば、図1のワーカー102A〜Nのうちの1つによって実行されるものとして説明される。
【００４７】
ワーカーは、現在の観測結果、現在の行動、実際の報酬、および次の観測結果を(ステップ302)、つまり、図2を参照して上で説明されたように取得する。
【００４８】
ワーカーは、環境の複製が次の観測結果によって特徴付けられる状態であるときに目標ネットワーク(Target Network)の最大の出力を決定する(ステップ304)。目標ネットワークは、Qネットワークと同じニューラルネットワークであり、つまり、同じニューラルネットワークアーキテクチャ/ニューラルネットワークの形態を有するが、おそらく異なるパラメータ値を有する。特に、各ワーカーは、目標ネットワークのパラメータの値を共有メモリに記憶されたQネットワークのパラメータの現在の値と周期的に同期させる。しかし、概して、ワーカーは、ワーカーが共有メモリに記憶されたパラメータ値を更新するよりも少ない頻度で目標ネットワークのパラメータの値を同期させ、その結果、目標ネットワークおよびQネットワークは、異なるパラメータ値を有することが多くなる。
【００４９】
ワーカーは、行動の予め決められた組の内の各行動に関して、目標ネットワークを使用して次の観測結果と組み合わせて行動を処理して行動に関する目標ネットワークの出力を決定することによって目標ネットワークの最大の出力を決定する。それから、システムは、行動の予め決められた組の内の行動に関する目標ネットワークの出力の最大値を目標ネットワークの最大の出力として選択する。
【００５０】
ワーカーは、目標ネットワークの最大の出力、実際の報酬、および環境が現在の状態であったときに現在の行動に関して前に決定された現在のQ値、すなわち、環境が現在の状態であったときに実行される行動として現在の行動を選択するために使用された現在のQ値から誤差を決定する(ステップ306)。一部の実装において、誤差Eは、
E = r +γmax(Qtarget) - Qcurrent
を満たし、ここで、rは、実際の報酬であり、γは、予め決められた割引率(Discount Factor)、max(Qtarget)は、目標ネットワークの最大の出力であり、Qcurrentは、環境が現在の状態であったときに現在の行動に関して前に決定された現在のQ値である。
【００５１】
ワーカーは、決定された誤差を使用して現在の勾配を決定する(ステップ308)。つまり、ワーカーは、誤差逆伝播を使用して値を更新し、誤差逆伝播される誤差は、選択された行動に関しては決定された誤差であり、すべてのその他の行動に関してはゼロである。
【００５２】
図4は、SARSA技術の反復を実行するための例示的なプロセス400の流れ図である。便宜的に、プロセス400は、ニューラルネットワーク訓練システム内のワーカー、たとえば、図1のニューラルネットワーク訓練システム100内のワーカー102A〜Nのうちの1つによって実行されるものとして説明される。
【００５３】
ワーカーは、現在の観測結果、現在の行動、実際の報酬、および次の観測結果を受け取る(ステップ402)。
【００５４】
ワーカーは、環境の複製が次の状態であるときにアクターによって実行される次の行動を選択する(ステップ404)。ワーカーは、ステップ206を参照して上で説明されたように次の行動を選択する。つまり、行動の予め決められた組の内の各行動に関して、ワーカーは、Qネットワークを使用して行動および次の観測結果を処理して、各行動に関するそれぞれの次のQ値を生成する。それから、ワーカーは、次のQ値を使用して、ワーカーに関する行動選択の方策に従って、アクターによって実行される次の行動として行動の予め決められた組から行動を選択する。
【００５５】
ワーカーは、次の行動に関する目標ネットワークの出力を決定する(ステップ406)。つまり、ワーカーは、目標ネットワークを使用して次の行動および次の観測結果を処理して、次の行動に関する目標ネットワークの結果を決定する。
【００５６】
ワーカーは、次の行動に関する目標ネットワークの出力、実際の報酬、および現在の行動に関して前に決定された現在のQ値から誤差を決定する(ステップ408)。一部の実装において、誤差Eは、
E = r +γQtarget - Qcurrent
を満たし、ここで、rは、実際の報酬であり、γは、予め決められた割引率、Qtargetは、次の行動に関する目標ネットワークの出力であり、Qcurrentは、環境が現在の状態であったときに現在の行動に関して前に決定された現在のQ値である。
【００５７】
ワーカーは、決定された誤差を使用して現在の勾配を決定する(ステップ410)。
【００５８】
プロセス300かまたはプロセス400かのどちらかを実行するとき、ワーカーは、目標ネットワークのパラメータを共有メモリ内のパラメータと同期させるための基準が満たされるか否かをさらに判定する。たとえば、基準は、ステップ216に関連して上で説明された基準と同じである可能性があるが、ただし、指定された閾値または指定された回数は、共有メモリに記憶されたパラメータを更新すべきかどうかの判定のために使用される値または回数よりも大きい。したがって、ワーカーは、ワーカーが共有メモリに記憶されたパラメータ値を更新するよりも少ない頻度で目標ネットワークのパラメータの値を同期させ、その結果、目標ネットワークおよびQネットワークは、異なるパラメータ値を有することが多くなる。
【００５９】
上の説明は、深層ニューラルネットワークがQネットワークである実装を説明した。しかし、いくつかのその他の実装において、深層ニューラルネットワークは、入力された観測結果を受け取り、行動の予め決められた組の内の各行動に関するそれぞれのスコアを出力する方策ニューラルネットワークであり、スコアは、それぞれ、対応する行動が、環境が入力された観測結果によって特徴付けられる状態であることの結果として生じる長期的報酬を最大化するために実行されるべきである行動である見込みを表す。
【００６０】
これらの実装においては、所与の観測結果に応答して行動を選択するために、強化学習システムが、方策ニューラルネットワークを使用して所与の観測結果を処理し、行動のスコアに応じて行動からサンプリングすることによってエージェントにより実行される行動を選択する。
【００６１】
各ワーカーが異なる行動選択の方策を有することを保証するために、各ワーカーは、行動からサンプリングするときに異なる無作為のシード(Seed)を使用する可能性があり、または代替的に、各ワーカーは、行動に関するスコアを生成する方策ニューラルネットワークの出力層に関して異なる温度を有する可能性がある。
【００６２】
図5は、方策ニューラルネットワークを訓練するための例示的なプロセス500の流れ図である。便宜的に、プロセス500は、ニューラルネットワーク訓練システム内のワーカー、たとえば、図1のニューラルネットワーク訓練システム100内のワーカー102A〜Nのうちの1つによって実行されるものとして説明される。
【００６３】
ワーカーは、方策ニューラルネットワークのパラメータの現在の値を決定する(ステップ502)。特に、ワーカーは、ワーカーのすべての間で共有されるメモリ、たとえば、図1の共有メモリ110から現在の値を取得する。
【００６４】
ワーカーは、共有メモリから基底(Baseline)ニューラルネットワークのパラメータの現在の値も取得する。基底ニューラルネットワークは、入力された観測結果を受け取り、入力された観測結果によって特徴付けられる状態から始まる、エージェントによって受け取られる推定された長期的報酬を表す基底スコアを生成するように構成されるニューラルネットワークである。一部の実装において、基底および方策ネットワークは、それらのパラメータの一部を共有する。
【００６５】
ワーカーは、環境の複製が特定の基準を満たす状態に遷移するまで、環境の複製の状態を特徴付ける観測結果を受け取り、方策ニューラルネットワークのパラメータの現在の値に従ってアクターによって実行される行動を選択する(ステップ504)。つまり、各観測結果に関して、ワーカーは、現在の値に従って方策ニューラルネットワークを使用して観測結果を処理し、行動に関するスコアに従って行動からサンプリングすることによってエージェントにより実行される行動を選択する。たとえば、特定の基準は、所定の数tmaxの観測結果が受け取られた後、または予め決められた終末状態が達せられるまで、満たされる可能性がある。
【００６６】
特に、環境の複製の状態を特徴付けるそれぞれの受け取られた観測結果に関して、ワーカーは、方策ニューラルネットワークのパラメータの現在の値に従って方策ニューラルネットワークを使用して観測結果を処理して行動の予め決められた組の内の各行動に関するそれぞれのスコアを生成し、分布からサンプリングすることによってアクターにより実行される行動を選択する。
【００６７】
それぞれの受け取られた観測結果に関して、ワーカーは、基底ニューラルネットワークのパラメータの現在の値に従って基底ニューラルネットワークを使用して行動および観測結果も処理して観測結果に関する基底スコアを生成する。
【００６８】
一部の実装においては、基底ニューラルネットワークおよび方策ニューラルネットワークのうちの一方または両方がリカレントニューラルネットワークである可能性がある。
【００６９】
ワーカーは、それぞれの受け取られた観測結果に関する実際の長期的報酬を決定する(ステップ506)。
【００７０】
つまり、受け取られた最後の観測結果に関して、システムは、実際の長期的報酬を、たとえば、基底ニューラルネットワークによって予測された基底スコアに設定する。
【００７１】
最後の観測結果以外の所与の観測結果に関して、システムは、所与の観測結果に関する実際の長期的報酬を、環境の複製が最後の観測結果によって特徴付けられる状態に遷移したときに受け取られた報酬に、所与の観測結果を受け取ることに応じて選択された行動をアクターが実行した後に受け取られた観測結果に関する実際の長期的報酬の割り引かれた合計を足したものとして設定する。
【００７２】
ワーカーは、各観測結果に関して、方策ニューラルネットワークに関するそれぞれの勾配の最新情報と、基底ニューラルネットワークに関するそれぞれの勾配の最新情報とを決定する(ステップ510)。
【００７３】
特に、観測結果stに関する方策ニューラルネットワークの勾配の最新情報は、
【数１】
2020042837.tif 000003
を満たし、ここで、
【数２】
2020042837.tif 000004
は、観測結果stに応答して実行された行動に関して生成されたスコアであり、Rtは、観測結果stに関して決定された実際の長期的報酬であり、btは、観測結果stに関する基底スコアである。
【００７４】
観測結果stに関する基底ニューラルネットワークの勾配の最新情報は、
【数３】
2020042837.tif 000005
を満たし、ここで、
【数４】
2020042837.tif 000006
は、観測結果stに関する基底スコアである。
【００７５】
ワーカーは、たとえば、ニューラルネットワークに関する累積された勾配に各ニューラルネットワークに関する新しい勾配を足すことによって、方策ニューラルネットワークに関する勾配の最新情報によって方策ニューラルネットワークに関する累積された勾配を更新して方策ニューラルネットワークに関する更新された累積された勾配を決定し、基底ニューラルネットワークに関する勾配の最新情報によって基底ニューラルネットワークに関する累積された勾配を更新して基底ニューラルネットワークに関する更新された累積された勾配を決定する(ステップ512)。
【００７６】
ワーカーは、基底ニューラルネットワークおよび方策ニューラルネットワークのパラメータの現在の値を更新するための基準が満たされるかどうかを判定する(ステップ514)。
【００７７】
たとえば、現在の値を更新するための基準は、ワーカーが最も最近パラメータ値を更新して以降にワーカーがステップ504の指定された回数の反復を実行した後でワーカーが現在の値を更新すると指定する可能性がある。
【００７８】
別の例として、基準は、ワーカーが最も最近パラメータ値を更新して以降に複数のワーカーのすべてによって実行されたステップ504の反復の合計回数が指定された閾値を超えるときにワーカーが現在の値を更新すると指定する可能性がある。
【００７９】
基準が満たされる場合、ワーカーは、たとえば、ステップ216および218に関連して上で説明されたように、対応する累積された勾配を使用して基底ニューラルネットワークおよび方策ニューラルネットワークに関する更新されたパラメータ値を決定し(ステップ516)、更新されたパラメータ値を共有メモリに書き込む(ステップ518)。
【００８０】
ワーカーが更新されたパラメータ値を共有メモリに書き込んだ後、ワーカーは、累積された勾配を消去し、つまり、その結果、プロセス500の次の反復が開始されるとき、ワーカーによって勾配が保有されていない。
【００８１】
基準が満たされない場合、ワーカーは、共有メモリにいかなるものも書き込むことを控え(ステップ520)、つまり、ワーカーは、現在のパラメータ値を更新することなくプロセス500の別の反復を実行し始める。
【００８２】
本明細書に記載の対象の実施形態および機能的動作は、本明細書で開示された構造およびそれらの構造的均等物を含むデジタル電子回路、または有形で具現化されたコンピュータソフトウェアもしくはファームウェア、コンピュータハードウェア、またはそれらのうちの1つもしくは複数の組合せで実装され得る。本明細書に記載の対象の実施形態は、1つまたは複数のコンピュータプログラム、すなわち、データ処理装置による実行のために、またはデータ処理装置の動作を制御するために有形の非一時的プログラムキャリア上に符号化されたコンピュータプログラム命令の1つまたは複数のモジュールとして実装され得る。代替的にまたは追加的に、プログラム命令は、データ処理装置による実行のために好適な受信機装置に送信するために情報を符号化するように生成される人為的に生成された伝播信号、たとえば、機械によって生成された電気的信号、光学的信号、または電磁的信号上に符号化され得る。コンピュータストレージ媒体は、機械可読ストレージデバイス、機械可読ストレージ基板、ランダムもしくはシリアルアクセスメモリデバイス、またはそれらのうちの1つもしくは複数の組合せである可能性がある。
【００８３】
用語「データ処理装置」は、データ処理ハードウェアを指し、例として、1つのプログラミング可能なプロセッサ、1台のコンピュータ、または複数のプロセッサもしくはコンピュータを含む、データを処理するためのすべての種類の装置、デバイス、およびマシンを包含する。装置は、専用の論理回路、たとえば、FPGA (フィールドプログラマブルゲートアレイ)またはASIC (特定用途向け集積回路)である可能性もあり、またはそのような専用論理回路をさらに含む可能性がある。任意で、装置は、ハードウェアに加えて、コンピュータプログラムのための実行環境を生成するコード、たとえば、プロセッサのファームウェア、プロトコルスタック、データベース管理システム、オペレーティングシステム、またはそれらのうちの1つもしくは複数の組合せを構成するコードを含み得る。
【００８４】
コンピュータプログラム(プログラム、ソフトウェア、ソフトウェアアプリケーション、モジュール、ソフトウェアモジュール、スクリプト、またはコードと呼ばれるまたは称される可能性もある)は、コンパイラ型言語もしくはインタープリタ型言語、または宣言型言語もしくは手続き型言語を含む任意の形態のプログラミング言語で記述可能であり、独立型プログラムとしての形態、またはモジュール、コンポーネント、サブルーチン、もしくはコンピューティング環境内での使用に適したその他のユニットとしての形態を含む任意の形態で配置され得る。コンピュータプログラムは、ファイルシステム内のファイルに対応する可能性があるが、必ずそうであるとは限らない。プログラムは、その他のプログラムもしくはデータを保持するファイルの一部、たとえば、マークアップ言語のドキュメントに記憶された1つもしくは複数のスクリプト、問題にしているプログラムに専用の単一のファイル、または複数の組織されたファイル、たとえば、1つもしくは複数のモジュール、サブプログラム、もしくはコードの一部を記憶するファイルに記憶され得る。コンピュータプログラムは、1つのコンピュータ上で、または1つの場所に置かれるか、もしくは複数の場所に分散され、通信ネットワークによって相互に接続される複数のコンピュータ上で実行されるように配置され得る。
【００８５】
本明細書に記載のプロセスおよび論理フローは、入力データに対して演算を行い、出力を生成することによって機能を実行する1つまたは複数のコンピュータプログラムを1つまたは複数のプログラミング可能なコンピュータが実行することによって実行され得る。また、プロセスおよび論理フローは、専用の論理回路、たとえば、FPGA (フィールドプログラマブルゲートアレイ)またはASIC (特定用途向け集積回路)によって実行される可能性があり、さらに、装置は、それらの専用の論理回路として実装される可能性がある。
【００８６】
コンピュータプログラムの実行に好適なコンピュータは、汎用マイクロプロセッサもしくは専用マイクロプロセッサもしくはこれら両方、または任意のその他の種類の中央演算処理装置を含み、例として、それらに基づく可能性がある。概して、中央演算処理装置は、読み出し専用メモリ、またはランダムアクセスメモリ、またはこれら両方から命令およびデータを受け取る。コンピュータの必須の要素は、命令を遂行または実行するための中央演算処理装置、ならびに命令およびデータを記憶するための1つまたは複数のメモリデバイスである。また、概してコンピュータは、データを記憶するための1つまたは複数の大容量ストレージデバイス、たとえば、磁気ディスク、光磁気ディスク、もしくは光ディスクを含むか、またはそれらの大容量ストレージデバイスからデータを受信するか、もしくはそれらの大容量ストレージデバイスにデータを転送するか、もしくはその両方を行うために動作可能なように結合される。しかし、コンピュータは、そのようなデバイスを備えていなくてもよい。さらに、コンピュータは、別のデバイス、たとえば、ほんのいくつか例を挙げるとすれば、モバイル電話、携帯情報端末(PDA)、モバイルオーディオもしくはビデオプレイヤー、ゲームコンソール、全地球測位システム(GPS)受信機、またはポータブルストレージデバイス、たとえば、ユニバーサルシリアルバス(USB)フラッシュドライブに組み込まれる可能性がある。
【００８７】
コンピュータプログラム命令およびデータを記憶するのに適したコンピュータ可読媒体は、例として、半導体メモリデバイス、たとえば、EPROM、EEPROM、およびフラッシュメモリデバイス、磁気ディスク、たとえば、内蔵ハードディスクまたはリムーバブルディスク、光磁気ディスク、ならびにCD-ROMディスクおよびDVD-ROMディスクを含む、すべての形態の不揮発性メモリ、メディア、およびメモリデバイスを含む。プロセッサおよびメモリは、専用の論理回路によって補完されるか、または専用の論理回路に組み込まれる可能性がある。
【００８８】
ユーザとのインタラクションを提供するために、本明細書に記載の対象の実施形態は、ユーザに対して情報を表示するためのディスプレイデバイス、たとえば、CRT(ブラウン管)またはLCD(液晶ディスプレイ)モニタ、ならびにユーザがコンピュータに入力を与えることができるキーボードおよびポインティングデバイス、たとえば、マウスまたはトラックボールを有するコンピュータ上に実装され得る。その他の種類のデバイスが、ユーザとのインタラクションを提供するためにやはり使用される可能性があり、たとえば、ユーザに提供されるフィードバックは、任意の形態の感覚フィードバック、たとえば、視覚的フィードバック、聴覚的フィードバック、または触覚的フィードバックである可能性があり、ユーザからの入力は、音響、発話、または触覚による入力を含む任意の形態で受け取られる可能性がある。加えて、コンピュータは、ユーザによって使用されるデバイスにドキュメントを送信し、そのデバイスからドキュメントを受信することによって、たとえば、ウェブブラウザから受信された要求に応答してユーザのクライアントデバイス上のウェブブラウザにウェブページを送信することによってユーザとインタラクションすることができる。
【００８９】
本明細書に記載の対象の実施形態は、バックエンド構成要素を、たとえば、データサーバとして含むか、またはミドルウェア構成要素、たとえば、アプリケーションサーバを含むか、またはフロントエンド構成要素、たとえば、ユーザが本明細書に記載の対象の実装とインタラクションすることができる関係グラフィカルユーザインターフェース(Relationship Graphical User Interface)もしくはウェブブラウザを有するクライアントコンピュータを含むか、または1つもしくは複数のそのようなバックエンド構成要素、ミドルウェア構成要素、もしくはフロントエンド構成要素の任意の組合せを含むコンピューティングシステムに実装され得る。システムの構成要素は、任意の形態または媒体のデジタルデータ通信、たとえば、通信ネットワークによって相互に接続され得る。通信ネットワークの例は、ローカルエリアネットワーク(「LAN」)および広域ネットワーク(「WAN」)、たとえば、インターネットを含む。
【００９０】
コンピューティングシステムは、クライアントおよびサーバを含み得る。クライアントおよびサーバは、概して互いに離れており、通常は通信ネットワークを通じてインタラクションする。クライアントとサーバとの関係は、それぞれのコンピュータ上で実行されており、互いにクライアント-サーバの関係にあるコンピュータプログラムによって生じる。
【００９１】
本明細書は多くの特定の実装の詳細を含むが、これらは、いかなる発明の範囲または特許請求され得るものの範囲に対する限定とも見なされるべきではなく、むしろ、特定の発明の特定の実施形態に特有である可能性がある特徴の説明と見なされるべきである。別々の実施形態の文脈で本明細書において説明されている特定の特徴が、単一の実施形態において組み合わせて実装される可能性もある。反対に、単一の実施形態の文脈で説明されている様々な特徴が、複数の実施形態に別々に、または任意の好適な部分的組合せで実装される可能性もある。さらに、特徴は、特定の組合せで動作するものとして上で説明されている可能性があり、最初にそのように主張されてさえいる可能性があるが、主張された組合せの1つまたは複数の特徴は、場合によっては組合せから削除される可能性があり、主張された組合せは、部分的組合せ、または部分的組合せの変形を対象とする可能性がある。
【００９２】
同様に、動作が図中に特定の順序で示されているが、これは、そのような動作が示された特定の順序でもしくは逐次的順序で実行されること、または所望の結果を達成するために示されたすべての動作が実行されることを必要とするものと理解されるべきでない。特定の状況においては、マルチタスクおよび並列処理が有利である可能性がある。さらに、上述の実施形態における様々なシステムモジュールおよび構成要素の分割は、すべての実施形態においてそのような分割を必要とするものと理解されるべきでなく、説明されたプログラム構成要素およびシステムは、概して、単一のソフトウェア製品に一緒に統合されるか、または複数のソフトウェア製品にパッケージングされる可能性があると理解されるべきである。
【００９３】
対象の特定の実施形態が、説明された。その他の実施形態は、添付の請求項の範囲内にある。たとえば、請求項に挙げられた行動は、異なる順序で実行される可能性があり、それでも所望の結果を達成することができる。一例として、添付の図面に示されたプロセスは、所望の結果を達成するために、必ずしも、示された特定の順序、または逐次的順序である必要はない。特定の実装においては、マルチタスクおよび並列処理が有利である可能性がある。
【符号の説明】
【００９４】
100  ニューラルネットワーク訓練システム
102A〜N  ワーカー
104A〜N  アクター
106A〜106N  環境の複製
110  共有メモリ
200  プロセス
300  プロセス
400  プロセス
500  プロセス
【図１】
2020042837.tif 000009
【図２】
2020042837.tif 000010
【図３】
2020042837.tif 000011
【図４】
2020042837.tif 000012
【図５】
2020042837.tif 000013
【外国語明細書】
2020042837000001.pdf