(57)【要約】  エージェントが環境とインタラクションすることによって実行される行動を選択するために使用される行動選択ニューラルネットワークを訓練するための、コンピュータストレージ媒体上に符号化されたコンピュータプログラムを含む方法、システム、および装置。1つの態様においては、システムが、複数のアクターコンピューティングユニットおよび複数のラーナーコンピューティングユニットを含む。アクターコンピューティングユニットは、強化学習技術を使用してラーナー行動選択ニューラルネットワークのパラメータを更新するためにラーナーコンピューティングユニットによって使用される経験タプルの軌跡を生成する。強化学習技術は、方策オフ型アクタークリティック強化学習技術である可能性がある。
2021513128.tif 000002
【特許請求の範囲】
【請求項１】
エージェントが環境とインタラクションすることによって実行される行動を選択するために使用される行動選択ニューラルネットワークを訓練するための方法であって、前記行動選択ニューラルネットワークが、前記行動選択ニューラルネットワークの現在のパラメータ値に従って前記環境の観測結果を含む入力を処理して、前記エージェントによって実行され得る行動の所定の組の中の各行動に関するそれぞれのラーナー方策スコアを含む出力を生成するように構成され、前記方法が、
1つまたは複数の経験タプルのシーケンスを取得するステップであって、各経験タプルが、(i)それぞれの時間ステップにおいて前記環境のインスタンスの状態を特徴付ける観測結果、(ii)挙動方策を使用して前記それぞれの時間ステップにおいて前記エージェントによって実行されるために選択された行動、(iii)前記行動が選択されたときに前記挙動方策によって前記選択された行動に割り振られた挙動方策スコア、(iv)前記エージェントが前記選択された行動を実行した後の前記環境のインスタンスの後続の状態を特徴付ける後続の観測結果、および(v)前記エージェントが前記選択された行動を実行した後に受け取られた報酬を含む、ステップと、
状態価値ニューラルネットワークの現在のパラメータ値を調整するステップであって、前記状態価値ニューラルネットワークが、前記状態価値ニューラルネットワークの現在のパラメータ値に従って前記環境の観測結果を含む入力を処理して、前記観測結果に関する状態価値を含む出力を生成するように構成され、前記調整するステップが、
前記状態価値ニューラルネットワークを使用して、前記状態価値ニューラルネットワークの現在のパラメータ値に従って、前記シーケンス内の第1の経験タプルに含まれる前記観測結果に基づいて、前記シーケンス内の前記第1の経験タプルに含まれる前記観測結果に関する状態価値を決定すること、
経験タプルの前記シーケンスの各経験タプルに関して、
前記行動選択ニューラルネットワークを使用して、前記行動選択ニューラルネットワークの現在のパラメータ値に従って、前記経験タプルに含まれる前記観測結果に基づいて、前記経験タプルからの前記選択された行動に関するラーナー方策スコアを決定し、
前記選択された行動に関する前記ラーナー方策スコアと前記選択された行動に関する前記挙動方策スコアとの比率に基づいて追跡係数を決定し、
(i)前記経験タプルに関する前記追跡係数、および(ii)前記シーケンスの中で前記経験タプルよりも前にある任意の経験タプルに関する前記追跡係数に基づいて前記経験タプルに関する補正因子を決定し、
少なくとも、(i)前記経験タプルに含まれる前記報酬、(ii)前記状態価値ニューラルネットワークの現在のパラメータ値に従って前記経験タプルに含まれる前記観測結果を処理することによって生成された前記経験タプルに含まれる前記観測結果に関する状態価値、および(iii)前記状態価値ニューラルネットワークの現在のパラメータ値に従って前記経験タプルに含まれる前記後続の観測結果を処理することによって生成された前記経験タプルに含まれる前記後続の観測結果に関する状態価値に基づいて、前記経験タプルに関する状態価値の時間的な違いを決定すること、
少なくとも、(i)前記補正因子、(ii)前記状態価値の時間的な違い、および(iii)前記シーケンス内の前記第1の経験タプルに含まれる前記観測結果に関する前記状態価値に基づいて、前記シーケンス内の前記第1の経験タプルに含まれる前記観測結果に関する状態価値目標を決定すること、
前記状態価値ニューラルネットワークのパラメータに関連する状態価値損失関数の勾配を決定することであって、前記状態価値損失関数が、少なくとも前記状態価値目標に基づく、こと、ならびに
前記勾配に基づいて前記状態価値ニューラルネットワークの前記現在のパラメータ値を調整することを含む、ステップと、
少なくとも、(i)前記シーケンスの前記第1の経験タプルからの前記選択された行動に関する前記ラーナー方策スコアと前記挙動方策スコアとの比率、および(ii)前記状態価値ニューラルネットワークの現在のパラメータ値に従って1つまたは複数の経験タプルに含まれる観測結果を処理することによって前記状態価値ニューラルネットワークにより生成された状態価値に基づいて、前記行動選択ニューラルネットワークの現在のパラメータ値を調整するステップとを含む、
方法。
【請求項２】
前記経験タプルに関する前記補正因子を決定することが、
第1の切り捨て値で前記経験タプルに関する前記追跡係数を切り捨てることと、
第2の切り捨て値で前記シーケンスの中で前記経験タプルの前にある任意の経験タプルに関する前記追跡係数を切り捨てることとを含む、
請求項1に記載の方法。
【請求項３】
前記第1の切り捨て値が、前記第2の切り捨て値以上である、
請求項2に記載の方法。
【請求項４】
前記経験タプルに関する前記補正因子を決定することが、
所定のスケール因子によって前記追跡係数をスケーリングすることを含む、
請求項1から3のいずれか一項に記載の方法。
【請求項５】
前記経験タプルに関する前記補正因子を決定することが、
(i)前記経験タプルに関する前記追跡係数と、(ii)前記シーケンスの中で前記経験タプルよりも前にある任意の経験タプルに関する前記追跡係数との積を決定することを含む、
請求項1から4のいずれか一項に記載の方法。
【請求項６】
前記経験タプルに関する状態価値の時間的な違いを決定することが、
(i)前記経験タプルに含まれる前記報酬、(ii)割引因子と前記経験タプルに含まれる前記後続の観測結果に関する前記状態価値との積、および(iii)前記経験タプルに含まれる前記観測結果に関する前記状態価値の負数を足すことを含む、
請求項1から5のいずれか一項に記載の方法。
【請求項７】
状態価値目標を決定することが、
経験タプルの前記シーケンスの全体に渡る、(i)前記経験タプルに関する前記補正因子と(ii)前記経験タプルに関する前記状態価値の時間的な違いとの積の割引された合計を決定することと、
前記第1の経験タプルに含まれる前記観測結果に関する前記状態価値を前記割引された合計に足すこととを含む、
請求項1から6のいずれか一項に記載の方法。
【請求項８】
前記状態価値損失関数が、前記シーケンス内の前記第1の経験タプルに含まれる前記観測結果に関する前記状態価値目標と前記状態価値との間の2乗損失を含む、
請求項1から7のいずれか一項に記載の方法。
【請求項９】
前記選択された行動に関する前記ラーナー方策スコアと前記挙動方策スコアとの比率に基づいて前記行動選択ニューラルネットワークの前記現在のパラメータ値を調整するステップが、
所定の値で前記比率を切り捨てることを含む、
請求項1から8のいずれか一項に記載の方法。
【請求項１０】
前記行動選択ニューラルネットワークの前記現在のパラメータ値を調整するステップが、少なくとも、
前記シーケンス内の前記第1の経験タプルに含まれる前記選択された行動に関する前記ラーナー方策スコアの勾配と、
前記シーケンスの中で前記第1の経験タプルの後にあるもっと後の経験タプルに含まれる観測結果に関する状態価値目標であって、前記もっと後の経験タプルに含まれる前記観測結果に関する前記状態価値目標が、少なくとも、(i)前記もっと後の経験タプルおよび後続の経験タプルに関する補正因子、(ii)前記もっと後の経験タプルおよび前記後続の経験タプルに関する状態価値の時間的な違い、ならびに(iii)前記シーケンス内の前記もっと後の経験タプルに含まれる前記観測結果に関する状態価値に基づく、状態価値目標と、
前記シーケンスの1つまたは複数の経験タプルに含まれる報酬とにさらに基づく、
請求項1から9のいずれか一項に記載の方法。
【請求項１１】
行動の前記所定の組の各行動に渡る、(i)前記第1の経験タプルに含まれる前記観測結果に基づく前記行動選択ニューラルネットワークからの前記行動に関するラーナー方策スコアと、(ii)前記第1の経験タプルに含まれる前記観測結果に基づく前記行動選択ニューラルネットワークからの前記行動に関する前記ラーナー方策スコアの対数との積の合計を決定することを含む、エントロピーボーナスを決定するステップと、
少なくとも、前記行動選択ニューラルネットワークのパラメータに関連する前記エントロピーボーナスの勾配にさらに基づいて前記行動選択ニューラルネットワークの前記現在のパラメータ値を調整するステップとをさらに含む、
請求項1から10のいずれか一項に記載の方法。
【請求項１２】
前記挙動方策が、前記行動選択ニューラルネットワークによって定義されるラーナー方策と異なる、
請求項1から11のいずれか一項に記載の方法。
【請求項１３】
ラーナー行動選択ニューラルネットワークのパラメータに従ってエージェントが環境とインタラクションすることによって実行される行動を選択するために使用されるラーナー行動選択ニューラルネットワークを訓練するためのシステムであって、
複数のアクターコンピューティングユニットであって、前記アクターコンピューティングユニットの各々が、それぞれのアクター行動選択ニューラルネットワークを保有し、アクターの動作を実行するように構成され、前記動作が、
1つまたは複数の経験タプルの軌跡を生成する動作であって、経験タプルを生成することが、
前記環境のインスタンスの現在の状態を特徴付ける観測結果を受け取り、
前記アクター行動選択ニューラルネットワークを使用して、前記アクター行動選択ニューラルネットワークの現在のパラメータ値に従って、前記観測結果に基づいて、前記エージェントによって実行される選択された行動および前記選択された行動に関する方策スコアを決定し、
(i)前記エージェントが前記選択された行動を実行した後の前記環境のインスタンスの後続の状態を特徴付ける後続の観測結果、および(ii)前記エージェントが前記選択された行動を実行した後に受け取られた報酬を含む遷移データを取得し、
前記観測結果、前記選択された行動、前記選択された行動に関する前記方策スコア、前記後続の観測結果、および前記報酬から経験タプルを生成することを含む、動作と、
経験タプルの前記軌跡をキューに記憶する動作であって、前記キューが、前記アクターコンピューティングユニットの各々によってアクセス可能であり、前記キューが、異なる経験タプルの軌跡の順序付けられたシーケンスを含む、動作とを含む、複数のアクターコンピューティングユニットと、
1つまたは複数のラーナーコンピューティングユニットであって、前記1つまたは複数のラーナーコンピューティングユニットの各々が、
前記キューから経験タプルの軌跡のバッチを取得する動作と、
経験タプルの軌跡の前記バッチを使用して、強化学習技術を使用して前記ラーナー行動選択ニューラルネットワークのパラメータに対する更新を決定する動作とを含む、ラーナーの動作を実行するように構成される、1つまたは複数のラーナーコンピューティングユニットとを含む、
システム。
【請求項１４】
各アクターコンピューティングユニットが、前記アクター行動選択ニューラルネットワークの前記現在のパラメータ値を更新する動作をさらに含むアクターの動作を実行し、前記更新する動作が、
前記ラーナー行動選択ニューラルネットワークの現在のパラメータ値を取得することと、
前記現在のラーナー行動選択ニューラルネットワークのパラメータ値に基づいて前記アクター行動選択ニューラルネットワークの前記現在のパラメータ値を更新することとを含む、
請求項13に記載のシステム。
【請求項１５】
各アクターコンピューティングユニットが、経験タプルの軌跡を生成した後、前記アクター行動選択ニューラルネットワークの前記現在のパラメータ値を更新する前に追加的な経験タプルの軌跡を生成することを控える、
請求項14に記載のシステム。
【請求項１６】
前記ラーナー行動選択ニューラルネットワークが、1つまたは複数の畳み込み層を含み、
経験タプルの軌跡の前記バッチを使用して、前記ラーナー行動選択ニューラルネットワークのパラメータに対する更新を決定する動作が、
前記ラーナー行動選択ニューラルネットワークを使用して前記バッチ内のそれぞれの経験タプルの軌跡の各経験タプルからの各観測結果を処理することを含み、
前記ラーナー行動選択ニューラルネットワークの各畳み込み層に関して、前記観測結果の各々に関する前記畳み込み層への入力が、前記観測結果の各々に関する畳み込み層の出力を生成するために並列的に処理される、
請求項13から15のいずれか一項に記載のシステム。
【請求項１７】
前記ラーナー行動選択ニューラルネットワークが、1つまたは複数の全結合層を含み、
経験タプルの軌跡の前記バッチを使用して、前記ラーナー行動選択ニューラルネットワークのパラメータに対する更新を決定する動作が、
前記ラーナー行動選択ニューラルネットワークを使用して前記バッチ内のそれぞれの経験タプルの軌跡の各経験タプルからの各観測結果を処理することを含み、
前記ラーナー行動選択ニューラルネットワークの各全結合層に関して、前記観測結果の各々に関する前記全結合層への入力が、前記観測結果の各々に関する全結合層の出力を生成するために並列的に処理される、
請求項13から16のいずれか一項に記載のシステム。
【請求項１８】
前記ラーナー行動選択ニューラルネットワークが、1つまたは複数の長期短期記憶層を含み、
経験タプルの軌跡の前記バッチを使用して、前記ラーナー行動選択ニューラルネットワークのパラメータに対する更新を決定する動作が、
前記ラーナー行動選択ニューラルネットワークを使用して前記バッチ内のそれぞれの経験タプルの軌跡の各経験タプルからの各観測結果を処理することを含み、
前記ラーナー行動選択ニューラルネットワークの各長期短期記憶層に関して、前記観測結果の各々に関する前記長期短期記憶層への入力が、前記観測結果の各々に関する長期短期記憶層の出力を生成するために並列的に処理される、
請求項13から17のいずれか一項に記載のシステム。
【請求項１９】
前記強化学習技術が、請求項1から12のいずれか一項に記載の方法を含む、
請求項13から18のいずれか一項に記載のシステム。
【請求項２０】
各経験タプルが、(i)それぞれの時間ステップにおいて前記環境のインスタンスの状態を特徴付ける観測結果、(ii)挙動方策を使用して前記それぞれの時間ステップにおいて前記エージェントによって実行されるために選択された行動、(iii)前記行動が選択されたときに前記挙動方策によって前記選択された行動に割り振られた挙動方策スコア、(iv)前記エージェントが前記選択された行動を実行した後の前記環境のインスタンスの後続の状態を特徴付ける後続の観測結果、および(v)前記エージェントが前記選択された行動を実行した後に受け取られた報酬を含み、
前記1つまたは複数のラーナーコンピューティングユニットの各々が、
状態価値ニューラルネットワークの現在のパラメータ値を調整する動作であって、前記状態価値ニューラルネットワークが、前記状態価値ニューラルネットワークの現在のパラメータ値に従って前記環境の観測結果を含む入力を処理して、前記観測結果に関する状態価値を含む出力を生成するように構成され、前記調整する動作が、
前記状態価値ニューラルネットワークを使用して、前記状態価値ニューラルネットワークの現在のパラメータ値に従って、シーケンス内の第1の経験タプルに含まれる前記観測結果に基づいて、前記シーケンス内の前記第1の経験タプルに含まれる前記観測結果に関する状態価値を決定すること、
経験タプルの前記バッチの各経験タプルに関して、
前記ラーナー行動選択ニューラルネットワークを使用して、前記ラーナー行動選択ニューラルネットワークの現在のパラメータ値に従って、前記経験タプルに含まれる前記観測結果に基づいて、前記経験タプルからの前記選択された行動に関するラーナー方策スコアを決定し、
前記選択された行動に関する前記ラーナー方策スコアと前記選択された行動に関する前記挙動方策スコアとの比率に基づいて追跡係数を決定し、
(i)前記経験タプルに関する前記追跡係数、および(ii)前記シーケンスの中で前記経験タプルよりも前にある任意の経験タプルに関する前記追跡係数に基づいて前記経験タプルに関する補正因子を決定し、
少なくとも、(i)前記経験タプルに含まれる前記報酬、(ii)前記状態価値ニューラルネットワークの現在のパラメータ値に従って前記経験タプルに含まれる前記観測結果を処理することによって生成された前記経験タプルに含まれる前記観測結果に関する状態価値、および(iii)前記状態価値ニューラルネットワークの現在のパラメータ値に従って前記経験タプルに含まれる前記後続の観測結果を処理することによって生成された前記経験タプルに含まれる前記後続の観測結果に関する状態価値に基づいて、前記経験タプルに関する状態価値の時間的な違いを決定すること、
少なくとも、(i)前記補正因子、(ii)前記状態価値の時間的な違い、および(iii)前記シーケンス内の前記第1の経験タプルに含まれる前記観測結果に関する前記状態価値に基づいて、前記シーケンス内の前記第1の経験タプルに含まれる前記観測結果に関する状態価値目標を決定すること、
前記状態価値ニューラルネットワークのパラメータに関連する状態価値損失関数の勾配を決定することであって、前記状態価値損失関数が、少なくとも前記状態価値目標に基づく、こと、ならびに
前記勾配に基づいて前記状態価値ニューラルネットワークの前記現在のパラメータ値を調整することを含む、動作と、
少なくとも、(i)前記シーケンスの前記第1の経験タプルからの前記選択された行動に関する前記ラーナー方策スコアと前記挙動方策スコアとの比率、および(ii)前記状態価値ニューラルネットワークの現在のパラメータ値に従って1つまたは複数の経験タプルに含まれる観測結果を処理することによって前記状態価値ニューラルネットワークにより生成された状態価値に基づいて前記ラーナー行動選択ニューラルネットワークの現在のパラメータ値を調整することによって、前記ラーナー行動選択ニューラルネットワークのパラメータに対する前記更新を決定する動作とを含む、ラーナーの動作を実行するように構成される、
請求項13から19のいずれか一項に記載のシステム。
【請求項２１】
1つまたは複数のコンピュータによって実行されるときに前記1つまたは複数のコンピュータに請求項1から12のいずれか一項に記載の方法のそれぞれの動作を実行させる命令を記憶する、
コンピュータ可読記憶媒体。
【請求項２２】
1つまたは複数のコンピュータと、前記1つまたは複数のコンピュータによって実行されるときに前記1つまたは複数のコンピュータに請求項1から12のいずれか一項に記載の方法のそれぞれの動作を実行させる命令を記憶する1つまたは複数のストレージデバイスとを含む、
システム。
【請求項２３】
エージェントが環境とインタラクションすることによって実行される行動を選択するために使用されるラーナー行動選択ニューラルネットワークを訓練するための請求項22に記載のシステムであって、前記システムが、
複数のアクターコンピューティングユニットであって、前記アクターコンピューティングユニットの各々が、それぞれのアクター行動選択ニューラルネットワークを保有し、アクターの動作を実行するように構成され、前記動作が、
1つまたは複数の経験タプルの軌跡を生成する動作であって、経験タプルを生成することが、
前記環境のインスタンスの現在の状態を特徴付ける観測結果を受け取り、
前記アクター行動選択ニューラルネットワークを使用して、前記アクター行動選択ニューラルネットワークの現在のパラメータ値に従って、前記観測結果に基づいて、前記エージェントによって実行される選択された行動および前記選択された行動に関する方策スコアを決定し、
(i)前記エージェントが前記選択された行動を実行した後の前記環境のインスタンスの後続の状態を特徴付ける後続の観測結果、および(ii)前記エージェントが前記選択された行動を実行した後に受け取られた報酬を含む遷移データを取得し、
前記観測結果、前記選択された行動、前記選択された行動に関する前記方策スコア、前記後続の観測結果、および前記報酬から経験タプルを生成することを含む、動作、
経験タプルの前記軌跡をキューに記憶する動作であって、前記キューが、前記アクターコンピューティングユニットの各々によってアクセス可能であり、前記キューが、異なる経験タプルの軌跡の順序付けられたシーケンスを含む、動作とを含む、複数のアクターコンピューティングユニットと、
1つまたは複数のラーナーコンピューティングユニットであって、前記1つまたは複数のラーナーコンピューティングユニットの各々が、ラーナーの動作を実行するように構成され、前記動作が、
前記キューから経験タプルの軌跡のバッチを取得する動作であって、各経験タプルが、(i)それぞれの時間ステップにおいて前記環境のインスタンスの状態を特徴付ける観測結果、(ii)挙動方策を使用して前記それぞれの時間ステップにおいて前記エージェントによって実行されるために選択された行動、(iii)前記行動が選択されたときに前記挙動方策によって前記選択された行動に割り振られた挙動方策スコア、(iv)前記エージェントが前記選択された行動を実行した後の前記環境のインスタンスの後続の状態を特徴付ける後続の観測結果、および(v)前記エージェントが前記選択された行動を実行した後に受け取られた報酬を含む、動作、ならびに
経験タプルの軌跡の前記バッチを使用して、
状態価値ニューラルネットワークの現在のパラメータ値を調整することであって、前記状態価値ニューラルネットワークが、前記状態価値ニューラルネットワークの現在のパラメータ値に従って前記環境の観測結果を含む入力を処理して、前記観測結果に関する状態価値を含む出力を生成するように構成され、前記調整することが、
前記状態価値ニューラルネットワークを使用して、前記状態価値ニューラルネットワークの現在のパラメータ値に従って、前記シーケンス内の前記第1の経験タプルに含まれる前記観測結果に基づいて、前記シーケンス内の前記第1の経験タプルに含まれる前記観測結果に関する状態価値を決定すること、
経験タプルの前記バッチの各経験タプルに関して、
前記ラーナー行動選択ニューラルネットワークを使用して、前記ラーナー行動選択ニューラルネットワークの現在のパラメータ値に従って、前記経験タプルに含まれる前記観測結果に基づいて、前記経験タプルからの前記選択された行動に関するラーナー方策スコアを決定し、
前記選択された行動に関する前記ラーナー方策スコアと前記選択された行動に関する前記挙動方策スコアとの比率に基づいて追跡係数を決定し、
(i)前記経験タプルに関する前記追跡係数、および(ii)前記シーケンスの中で前記経験タプルよりも前にある任意の経験タプルに関する前記追跡係数に基づいて前記経験タプルに関する補正因子を決定し、
少なくとも、(i)前記経験タプルに含まれる前記報酬、(ii)前記状態価値ニューラルネットワークの現在のパラメータ値に従って前記経験タプルに含まれる前記観測結果を処理することによって生成された前記経験タプルに含まれる前記観測結果に関する状態価値、および(iii)前記状態価値ニューラルネットワークの現在のパラメータ値に従って前記経験タプルに含まれる前記後続の観測結果を処理することによって生成された前記経験タプルに含まれる前記後続の観測結果に関する状態価値に基づいて、前記経験タプルに関する状態価値の時間的な違いを決定すること、
少なくとも、(i)前記補正因子、(ii)前記状態価値の時間的な違い、および(iii)前記シーケンス内の前記第1の経験タプルに含まれる前記観測結果に関する前記状態価値に基づいて、前記シーケンス内の前記第1の経験タプルに含まれる前記観測結果に関する状態価値目標を決定すること、
前記状態価値ニューラルネットワークのパラメータに関連する状態価値損失関数の勾配を決定することであって、前記状態価値損失関数が、少なくとも前記状態価値目標に基づく、こと、および
前記勾配に基づいて前記状態価値ニューラルネットワークの前記現在のパラメータ値を調整することを含む、こと、ならびに
少なくとも、(i)前記シーケンスの前記第1の経験タプルからの前記選択された行動に関する前記ラーナー方策スコアと前記挙動方策スコアとの比率、および(ii)前記状態価値ニューラルネットワークの現在のパラメータ値に従って1つまたは複数の経験タプルに含まれる観測結果を処理することによって前記状態価値ニューラルネットワークにより生成された状態価値に基づいて、前記ラーナー行動選択ニューラルネットワークの現在のパラメータ値を調整すること、
によって強化学習技術を使用して前記ラーナー行動選択ニューラルネットワークのパラメータに対する更新を決定する動作を含む、1つまたは複数のラーナーコンピューティングユニットとを含む、
システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本明細書は、強化学習に関する。
【背景技術】
【０００２】
エージェントは、環境の現在の状態を特徴付ける観測結果(observation)を受け取ることに応じて選択される行動を実行することによって環境とインタラクションすることができる。所与の観測結果を受け取ることに応じてエージェントによって実行される行動は、ニューラルネットワークの出力に応じて決定され得る。
【０００３】
ニューラルネットワークは、受け取られた入力に関する出力を予測するために非線形ユニットの1つまたは複数の層を使用する機械学習モデルである。一部のニューラルネットワークは、出力層に加えて1つまたは複数の隠れ層を含む深層ニューラルネットワークである。各隠れ層の出力は、ネットワーク内の次の層、すなわち、次の隠れ層または出力層への入力として使用される。ネットワークの各層は、パラメータのそれぞれの組の現在の値に従って、受け取られた入力から出力を生成する。
【先行技術文献】
【非特許文献】
【０００４】
【非特許文献１】J. Chenら、「Revisiting distributed synchronous SGD」、arXiv:1604.00981v3、2017年
【発明の概要】
【課題を解決するための手段】
【０００５】
本明細書は、方策オフ型アクタークリティック強化学習技術を使用して行動選択ネットワークを訓練することができる1つまたは複数の場所の1つまたは複数のコンピュータ上のコンピュータプログラムとして実装される分散型訓練システムを説明する。
【０００６】
第1の態様によれば、エージェントが環境とインタラクションすることによって実行される行動を選択するために使用される行動選択ニューラルネットワークを訓練するための方法が提供される。行動選択ニューラルネットワークは、行動選択ニューラルネットワークの現在のパラメータ値に従って環境の観測結果を含む入力を処理して、エージェントによって実行され得る行動の所定の組の中の各行動に関するそれぞれのラーナー(learner)方策スコアを含む出力を生成するように構成される。
【０００７】
方法は、1つまたは複数の経験タプル(experience tuple)のシーケンスを取得するステップであって、各経験タプルが、(i)それぞれの時間ステップにおいて環境のインスタンスの状態を特徴付ける観測結果、(ii)挙動方策(behavior policy)を使用してそれぞれの時間ステップにおいてエージェントによって実行されるために選択された行動、(iii)行動が選択されたときに挙動方策によって選択された行動に割り振られた挙動方策スコア、(iv)エージェントが選択された行動を実行した後の環境のインスタンスの後続の状態を特徴付ける後続の観測結果、および(v)エージェントが選択された行動を実行した後に受け取られた報酬を含む、ステップを含む可能性がある。挙動方策は、経験タプルが取得されたときに行動選択ニューラルネットワークによって使用された方策である可能性がある。
【０００８】
方法は、状態価値ニューラルネットワークの現在のパラメータ値を調整するステップであって、状態価値ニューラルネットワークが、状態価値ニューラルネットワークの現在のパラメータ値に従って環境の観測結果を含む入力を処理して、観測結果に関する状態価値を含む出力を生成するように構成される、ステップをさらに含む可能性がある。
【０００９】
調整するステップは、状態価値ニューラルネットワークを使用して、状態価値ニューラルネットワークの現在のパラメータ値に従って、シーケンス内の第1の経験タプルに含まれる観測結果に基づいて、シーケンス内の第1の経験タプルに含まれる観測結果に関する状態価値を決定することを含む可能性がある。
【００１０】
調整するステップは、経験タプルのシーケンスの各経験タプルに関して、行動選択ニューラルネットワークを使用して、行動選択ニューラルネットワークの現在のパラメータ値に従って、経験タプルに含まれる観測結果に基づいて、経験タプルからの選択された行動に関するラーナー方策スコアを決定し、選択された行動に関するラーナー方策スコアと選択された行動に関する挙動方策スコアとの比率に基づいて(依存して)追跡係数(trace coefficient)を決定し、(i)経験タプルに関する追跡係数、および(ii)シーケンスの中で経験タプルよりも前にある任意の経験タプルに関する追跡係数に基づいて(依存して)経験タプルに関する補正因子(correction factor)を決定し、経験タプルに関する状態価値の時間的な違いを決定することをさらに含む可能性があり、これは、経験タプル内の観測結果の状態価値と後続の観測結果の状態価値との間の違いを表す可能性があり、少なくとも、(i)経験タプルに含まれる報酬、(ii)状態価値ニューラルネットワークの現在のパラメータ値に従って経験タプルに含まれる観測結果を処理することによって生成された経験タプルに含まれる観測結果に関する状態価値、および(iii)状態価値ニューラルネットワークの現在のパラメータ値に従って経験タプルに含まれる後続の観測結果を処理することによって生成された経験タプルに含まれる後続の観測結果に関する状態価値に基づく可能性がある。
【００１１】
調整するステップは、少なくとも、(i)補正因子、(ii)状態価値の時間的な違い、および(iii)シーケンス内の第1の経験タプルに含まれる観測結果に関する状態価値に基づいてシーケンス内の第1の経験タプルに含まれる観測結果に関する状態価値目標を決定すること、状態価値ニューラルネットワークのパラメータに関連する状態価値損失関数の勾配を決定することであって、状態価値損失関数が、少なくとも状態価値目標に基づく、こと、ならびに勾配に基づいて状態価値ニューラルネットワークの現在のパラメータ値を調整することをさらに含む可能性がある。
【００１２】
方法は、少なくとも、(i)シーケンスの第1の経験タプルからの選択された行動に関するラーナー方策スコアと挙動方策スコアとの比率、および(ii)状態価値ニューラルネットワークの現在のパラメータ値に従って1つまたは複数の経験タプルに含まれる観測結果を処理することによって状態価値ニューラルネットワークにより生成された状態価値に基づいて(依存して)行動選択ニューラルネットワークの現在のパラメータ値を調整するステップをさらに含む可能性がある。
【００１３】
この方法の実装は、方法を実施する複数のアクター(アクターコンピューティングユニット)、潜在的には数千のアクター、および1つまたは複数のラーナー(ラーナーコンピューティングユニット)を有する分散型コンピューティングシステム上の実装に適合される。たとえば、実装において、アクターは、中央方策サーバのパラメータに関連する勾配を伝達するよりもむしろ、経験タプルのシーケンス(経験の軌跡(trajectory))を集中型のラーナーに伝達する。しかし、軌跡を生成するために使用される方策が勾配の計算時にいくつかの更新だけラーナーに関する方策よりも遅れ得るので、学習は、方策オフ型になる。上述の方法は、この有害な相違を改善する追跡係数を組み込む。実装において、挙動方策によって生成される経験の軌跡は、したがって、挙動方策とは異なるラーナー方策に関して価値関数(状態価値)を学習するために使用される可能性がある。ゆえに、方法の実装は、訓練の安定性またはデータの効率を犠牲にすることなく高度に分散されたコンピューティングシステム上の実装に特に適合される。
【００１４】
方法の実装は、並列化にさらに適合される。たとえば、ラーナーのパラメータは、ラーナーの分散された組に分散される可能性があり、アクターは、1つのラーナーにのみ観測結果を送信しながらすべてのラーナーからパラメータを並列的に取り出す可能性がある。これは、他の方法では訓練中の制限の要因である可能性がある単一の専用プロセッサのボトルネックを避けることができる。
【００１５】
さらに、実装においては、ラーナーが軌跡のバッチまたはシーケンス全体に対して更新を実行するので、ラーナーは、これらの軌跡に対する動作を並列化することができる。たとえば、ラーナーが畳み込みニューラルネットワークとそれに続くLSTM(長期短期記憶(Long Short-Term Memory))とを含む場合、ラーナーは、時間次元(time dimension)をバッチ次元(batch dimension)へと折りたたむことによってすべての入力に畳み込みネットワークを並列的に適用する可能性がある。同様に、ラーナーは、すべてのLSTMの状態が計算されると、LSTMに続く全結合出力層をすべての時間ステップに並列的に適用する可能性がある。これは、有効なバッチサイズを数千に増やすことができる。
【００１６】
方法のこの実装は、分離された分散型アーキテクチャおよび並列化された動作に適合され、たとえば、その他の技術を桁違いに改善する非常に高いスループットを実現することができる。方法の実装は、非常にデータ効率も良く、つまり、それらの実装は、学習のためにより少ないデータを使用する可能性があるが、それにもかかわらず、より優れた最終的な性能を実現する可能性がある。たとえば、方法の実装および対応するシステムは、一部のその他の技術よりも桁違いにデータ効率が良い可能性があり、結果的に処理能力を削減する。また、一部の実装は、ハイパーパラメータ値およびネットワークアーキテクチャの選択に対して堅牢である。
【００１７】
方法の実装および対応するシステムのさらなる利点は、それらが、複数の異なるタスクを並列的に学習することができることである。たとえば、同じタスクをすべてのアクターに割り当てる代わりに、異なるアクターが異なるタスクに割り当てられる可能性があり、たとえば、各タスクに決まった数のアクターが割り当てられる可能性がある。方法/システム自体は、それがどのタスクに関して訓練または評価されているかを知る必要がない。
【００１８】
したがって、一部の実装において、方法は、複数のアクターコンピューティングユニットを含むシステムにおいて実施される可能性があり、アクターコンピューティングユニットの各々は、それぞれのアクター行動選択ニューラルネットワークを保有し、1つまたは複数の経験タプルの軌跡を生成する動作を含むアクターの動作を実行するように構成される。経験タプルを生成することは、環境のインスタンスの現在の状態を特徴付ける観測結果を受け取ることを含む可能性がある。経験タプルを生成することは、アクター行動選択ニューラルネットワークを使用して、アクター行動選択ニューラルネットワークの現在のパラメータ値に従って、観測結果に基づいて、エージェントによって実行される選択された行動および選択された行動に関する方策スコアを決定することをさらに含む可能性がある。経験タプルを生成することは、(i)エージェントが選択された行動を実行した後の環境のインスタンスの後続の状態を特徴付ける後続の観測結果、および(ii)エージェントが選択された行動を実行した後に受け取られた報酬を含む遷移データを取得することをさらに含む可能性がある。経験タプルを生成することは、観測結果、選択された行動、選択された行動に関する方策スコア、後続の観測結果、および報酬から経験タプルを生成することをさらに含む可能性がある。アクターの動作は、経験タプルの軌跡をキューに記憶する動作であって、キューが、アクターコンピューティングユニットの各々によってアクセス可能であり、キューが、異なる経験タプルの軌跡の順序付けられたシーケンスを含む、動作をさらに含む可能性がある。システムは、1つまたは複数のラーナーコンピューティングユニットをさらに含む可能性がある。1つまたは複数のラーナーコンピューティングユニットの各々は、上述の方法によって定義されたラーナーの動作を実行するように構成される可能性がある。
【００１９】
方法の一部の実装において、経験タプルに関する補正因子を決定することは、第1の切り捨て値(truncation value)で前記経験タプルに関する追跡係数を切り捨てる(制限する)ことと、第2の切り捨て値でシーケンスの中で経験タプルの前にある任意の経験タプルに関する追跡係数を切り捨てることとを含む可能性がある。一部の実装において、第1の切り捨て値は、たとえば、それが第1の切り捨て値が小さいときに挙動方策のそれにより近いかまたはラーナー方策により近いかに収束させられる(状態価値を定義する)価値関数を制御する可能性があり、第2の切り捨て値は、収束の速度を制御する可能性がある。実装において、第1の切り捨て値は、第2の切り捨て値以上である。経験タプルに関する補正因子を決定することは、追加的にまたは代替的に、所定のスケーリング因子によって追跡係数をスケーリングすることを含む可能性がある。
【００２０】
方法の一部の実装において、経験タプルに関する補正因子を決定することは、(i)経験タプルに関する追跡係数と、(ii)シーケンスの中で経験タプルよりも前にある任意の経験タプルに関する追跡係数との積を決定することを含む可能性がある。経験タプルに関する状態価値の時間的な違いを決定することは、(i)経験タプルに含まれる報酬、(ii)割引因子(discount factor)と前記経験タプルに含まれる後続の観測結果に関する状態価値との積、および(iii)経験タプルに含まれる観測結果に関する状態価値の負数を足すことを含む可能性がある。状態価値目標を決定することは、経験タプルのシーケンス全体に渡る、(i)経験タプルに関する補正因子と(ii)経験タプルに関する状態価値の時間的な違いとの積の割引された合計を決定することと、第1の経験タプルに含まれる観測結果に関する状態価値を割引された合計に足すこととを含む可能性がある。状態価値損失関数は、たとえば、シーケンス内の第1の経験タプルに含まれる観測結果に関する状態価値目標と状態価値との間の2乗損失(squared loss)を含む可能性がある。
【００２１】
一部の実装において、行動選択ニューラルネットワークの現在のパラメータ値を調整するステップは、選択された行動に関するラーナー方策スコアと挙動方策スコアとの比率に基づき、所定の値で比率を切り捨てることを含む可能性がある。概して、挙動方策は、行動選択ニューラルネットワークによって定義されるラーナー方策と異なる。大まかに言って、ラーナー方策スコアが挙動方策スコアと異なれば異なるほど、方法はより方策オフ型である。
【００２２】
方法の一部の実装において、行動選択ニューラルネットワークの現在のパラメータ値を調整するステップは、少なくとも、シーケンス内の第1の経験タプルに含まれる選択された行動に関するラーナー方策スコアの勾配と、シーケンスの中で第1の経験タプルの後にあるもっと後の経験タプルに含まれる観測結果に関する状態価値目標であって、もっと後の経験タプルに含まれる観測結果に関する状態価値目標が、少なくとも、(i)もっと後の経験タプルおよび後続の経験タプルに関する補正因子、(ii)もっと後の経験タプルおよび後続の経験タプルに関する状態価値の時間的な違い、ならびに(iii)シーケンス内のもっと後の経験タプルに含まれる観測結果に関する状態価値に基づく、状態価値目標と、シーケンスの1つまたは複数の経験タプルに含まれる報酬とにさらに基づく可能性がある。
【００２３】
方法は、エントロピーボーナス(entropy bonus)を決定するステップと、少なくとも、行動選択ニューラルネットワークのパラメータに関連するエントロピーボーナスの勾配にさらに基づいて行動選択ニューラルネットワークの現在のパラメータ値を調整するステップとを含む可能性がある。これは、初期収束(premature convergence)を抑止することができる。エントロピーボーナスを決定するステップは、行動の所定の組の各行動に渡る、(i)第1の経験タプルに含まれる観測結果に基づく行動選択ニューラルネットワークからの行動に関するラーナー方策スコアと、(ii)第1の経験タプルに含まれる観測結果に基づく行動選択ニューラルネットワークからの行動に関するラーナー方策スコアの対数との積の合計を決定することを含む可能性がある。
【００２４】
たとえば、エージェントが環境とインタラクションすることによって実行される行動を選択するために使用されるラーナー行動選択ニューラルネットワークを訓練するための上述のシステムは、上述の方法に関連してまたは上述の方法とは独立して実装される可能性がある。
【００２５】
システムの実装において、各ラーナーコンピューティングユニットは、ラーナー行動選択ニューラルネットワークのパラメータのそれぞれの適切なサブセットを更新するように構成される可能性がある(適切なサブセットは、それを含む組と一致しない)。
【００２６】
各アクターコンピューティングユニットは、アクター行動選択ニューラルネットワークの現在のパラメータ値を更新する動作をさらに含むアクターの動作を実行する可能性がある。これらの動作は、ラーナー行動選択ニューラルネットワークの現在のパラメータ値を取得することと、現在のラーナー行動選択ニューラルネットワークのパラメータ値に基づいてアクター行動選択ニューラルネットワークの現在のパラメータ値を更新することとを含む可能性がある。各アクターコンピューティングユニットは、経験タプルの軌跡を生成した後、アクター行動選択ニューラルネットワークの現在のパラメータ値を更新する前に追加的な経験タプルの軌跡を生成することを控える可能性がある。
【００２７】
実装において、ラーナー行動選択ニューラルネットワークは、1つまたは複数の畳み込み層を含む。経験タプルの軌跡のバッチを使用して、ラーナー行動選択ニューラルネットワークのパラメータに対する更新を決定することは、ラーナー行動選択ニューラルネットワークを使用してバッチ内のそれぞれの経験タプルの軌跡の各経験タプルからの各観測結果を処理することを含む可能性がある。ラーナー行動選択ニューラルネットワークの各畳み込み層に関して、観測結果の各々に関する畳み込み層への入力は、観測結果の各々に関する畳み込み層の出力を生成するために並列的に処理される可能性がある。
【００２８】
実装において、ラーナー行動選択ニューラルネットワークは、1つまたは複数の全結合層を含む。経験タプルの軌跡のバッチを使用して、ラーナー行動選択ニューラルネットワークのパラメータに対する更新を決定することは、ラーナー行動選択ニューラルネットワークを使用してバッチ内のそれぞれの経験タプルの軌跡の各経験タプルからの各観測結果を処理することを含む可能性がある。ラーナー行動選択ニューラルネットワークの各全結合層に関して、観測結果の各々に関する全結合層への入力は、観測結果の各々に関する全結合層の出力を生成するために並列的に処理される可能性がある。
【００２９】
実装において、ラーナー行動選択ニューラルネットワークは、1つまたは複数の長期短期記憶層を含む。経験タプルの軌跡のバッチを使用して、ラーナー行動選択ニューラルネットワークのパラメータに対する更新を決定することは、ラーナー行動選択ニューラルネットワークを使用してバッチ内のそれぞれの経験タプルの軌跡の各経験タプルからの各観測結果を処理することを含む可能性がある。ラーナー行動選択ニューラルネットワークの各長期短期記憶層に関して、観測結果の各々に関する長期短期記憶層への入力は、観測結果の各々に関する長期短期記憶層の出力を生成するために並列的に処理される可能性がある。
【００３０】
本明細書に記載の対象の特定の実施形態は、以下のさらなる利点のうちの1つまたは複数を実現するように実装されることが可能である。
【００３１】
本明細書は、ラーナー行動選択ニューラルネットワークを訓練するための分散型訓練システムを説明する。分散型訓練システムは、環境のインスタンスとのエージェントのインタラクションをそれぞれ特徴付ける経験タプルの軌跡を生成する複数のアクターコンピューティングユニットを含む。アクターコンピューティングユニットは、生成された経験タプルの軌跡を1つまたは複数のラーナーコンピューティングユニットに与え、1つまたは複数のラーナーコンピューティングユニットは、経験タプルの軌跡を使用して、強化学習技術を使用してラーナー行動選択ネットワークを訓練する。「行動すること」(つまり、経験タプルの軌跡を生成すること)を学習すること(つまり、ラーナー行動選択ネットワークを訓練すること)から分離することによって、本明細書に記載の分散型訓練システムは、非常に高いデータスループットレートを実現するために利用可能な計算リソース(たとえば、メモリおよび計算能力)を効率的に使用することができる。たとえば、処理ユニット(たとえば、グラフィックス処理ユニット(GPU)および中央演算処理装置(CPU))は、多くの小さな動作よりもむしろいくつかの大きな並列化可能な動作を実行することから大きな恩恵を受ける。本明細書に記載の分散型訓練システムにおいて、各ラーナーコンピューティングユニットは、経験タプルの軌跡のバッチを並列して効率的に処理することができる。対照的に、一部の通常のシステムは、行動することを学習することから分離しない。たとえば、一部の通常のシステムにおいて、アクターコンピューティングユニットは、行動の動作と学習の動作との両方を実行し、行動選択ネットワークのパラメータの更新をラーナーコンピューティングユニットに送信する可能性がある(つまり、本明細書に記載の分散型訓練システムのように経験タプルの軌跡を送信するのではない)。行動することを学習することから分離しない通常のシステムは、(たとえば、経験タプルの軌跡のバッチを並列的に処理することによって)本明細書に記載の分散型訓練システムほど効率的に計算リソースを使用することができない可能性がある。
【００３２】
計算リソースを効率的に使用することに加えて、本明細書に記載の分散型訓練システムは、多数のアクターおよびラーナーコンピューティングユニットを組み込むためにスケーリングされ得る。分散型訓練システムが多数のアクターおよびラーナーコンピューティングユニットを組み込むためにスケーリングされるので、分散型訓練システムは、タスクのより大きな集合を解決するためのより複雑な(たとえば、より深い)行動選択ネットワークを訓練するために使用され得る。
【００３３】
本明細書は、アクタークリティック強化学習技術を使用して方策オフ型の経験タプルの軌跡に基づいて行動選択ネットワークおよび状態価値ネットワークを一緒に訓練することができる強化学習システムを説明する。経験タプルの軌跡は、経験タプルの軌跡に含まれる行動を選択するために使用される行動選択方策が訓練されている行動選択ネットワークの現在のパラメータ値によって定義される行動選択方策と異なる場合、方策オフ型と言われる。本明細書に記載の強化学習システムは、経験データが方策オフ型であることを考慮するために、訓練中に状態価値ニューラルネットワークおよび行動選択ニューラルネットワークのパラメータに対してなされる調整を調節するための補正因子を使用する。対照的に、一部の通常のアクタークリティック強化学習方法は、方策オン型の訓練データに依存する。本明細書に記載の強化学習システムは、方策オン型の経験タプルの軌跡に依存する通常のシステムよりも広い範囲の応用で使用するために適用され得る可能性がある。たとえば、本明細書に記載の強化学習システムは、アクターコンピューティングユニットによって生成された潜在的に方策オフ型の経験タプルの軌跡を処理するために本明細書に記載の分散型訓練システムのラーナーコンピューティングユニットによって使用され得る。
【００３４】
本明細書の対象の1つまたは複数の実施形態の詳細が、添付の図面および以下の説明に記載されている。対象のその他の特徴、態様、および利点は、説明、図面、および請求項から明らかになるであろう。
【図面の簡単な説明】
【００３５】
【図１】エージェントが環境とインタラクションすることによって実行される行動を選択するための行動選択ネットワークを使用するための例示的なデータフローを示す図である。
【図２】例示的な訓練システムを示す図である。
【図３】例示的な強化学習システムを示す図である。
【図４】方策オフ型アクタークリティック強化学習技術を使用して行動選択ネットワークおよび状態価値ネットワークを訓練するための反復的プロセスの例の流れ図である。
【図５】状態価値ネットワークに関する状態価値目標を決定するための例示的なプロセスの流れ図である。
【発明を実施するための形態】
【００３６】
様々な図面における同様の参照番号および参照指示は、同様の要素を示す。
【００３７】
本明細書は、分散型訓練システムおよび強化学習システムを説明する。分散型訓練システムは、行動選択ネットワークを訓練するために1つまたは複数のラーナーコンピューティングユニットによって処理される経験タプルの軌跡を生成するために複数のアクターコンピューティングユニットを使用することによって行動することを学習することから分離する。強化学習システムは、方策オフ型アクタークリティック強化学習技術、つまり、方策オフ型の経験タプルの軌跡に基づいて行動選択ネットワークを訓練するために使用され得るアクタークリティック強化学習技術を実装する。
【００３８】
図1は、複数の時間ステップの各々においてエージェント106が環境108とインタラクションすることによって実行される行動104を選択するために行動選択ニューラルネットワーク102を使用するための例示的なデータフロー100を示す。各時間ステップにおいて、行動選択ネットワーク102は、環境108の現在の状態を特徴付けるデータ、たとえば、環境108の画像を処理して、受け取られたデータに応じてエージェント106によって実行される行動104を選択するために使用される方策スコア110を生成する。環境108の状態を特徴付けるデータは、本明細書においては観測結果と呼ばれる。各時間ステップにおいて、(観測結果112によって特徴付けられる)時間ステップにおける環境108の状態は、前の時間ステップにおける環境108の状態および前の時間ステップにおいてエージェント106によって実行された行動104に依存する。
【００３９】
各時間ステップにおいて、エージェント106は、環境108の現在の状態および時間ステップにおけるエージェント106の行動104に基づく報酬114を受け取る可能性がある。概して、報酬114は、数値である。報酬114は、環境の任意のイベントまたは側面に基づき得る。たとえば、報酬114は、エージェント106がタスク(たとえば、環境108内の目標位置にナビゲートすること)を成し遂げたかどうかまたはタスクの完遂に向けたエージェント106の進度を示す可能性がある。
【００４０】
一部の実装において、環境は、実世界の環境であり、エージェントは、実世界の環境とインタラクションする機械的なエージェントである。たとえば、エージェントは、特定のタスクを成し遂げるため、たとえば、環境内の関心のある物体の位置を特定するため、もしくは環境内の指定された位置に関心のある物体を移動させるため、もしくは環境内の指定された目的地にナビゲートするために環境とインタラクションするロボットである可能性があり、またはエージェントは、環境を通る自律的なもしくは準自律的な陸上もしくは空もしくは海の乗り物である可能性がある。
【００４１】
これらの実装において、観測結果は、たとえば、エージェントが環境とインタラクションするときに観測結果を捕捉するための画像、物体の位置データ、およびセンサーデータ、たとえば、イメージ、距離、もしくは位置センサーからまたはアクチュエータからのセンサーデータのうちの1つまたは複数を含む可能性がある。
【００４２】
たとえば、ロボットの場合、観測結果は、ロボットの現在の状態を特徴付けるデータ、たとえば、関節の位置、関節の速度、関節の力、トルク、または加速度、たとえば、重力補償されたトルクフィードバック、およびロボットによって保持された物の大域的または相対的姿勢のうちの1つまたは複数を含む可能性がある。
【００４３】
ロボットまたはその他の機械的なエージェントまたは乗り物の場合、観測結果は、同様に、エージェントの1つまたは複数の部分の位置、直線もしく角速度、力、トルク、または加速度、および大域的または相対的姿勢のうちの1つまたは複数を含む可能性がある。観測結果は、1、2、または3次元で定義される可能性があり、絶対的なおよび/または相対的な観測結果である可能性がある。
【００４４】
観測結果は、たとえば、モーター電流もしくは温度信号などの感知された電子信号、および/またはたとえばカメラもしくはLIDARセンサーからの画像もしくは動画データ、たとえば、エージェントのセンサーからのデータもしくは環境内のエージェントとは分けて置かれるセンサーからのデータも含む可能性がある。
【００４５】
電子的なエージェントの場合、観測結果は、電流、電圧、電力、温度、およびその他のセンサーなどの工場またはサービス施設の一部を監視する1つまたは複数のセンサーからのデータ、ならびに/または電子的なおよび/もしくは機械的な機器の機能を表す電子信号を含む可能性がある。
【００４６】
これらの実装において、行動は、ロボットを制御するための制御入力、たとえば、ロボットの関節のトルクまたはより高レベルの制御コマンド、あるいは自律的なまたは準自律的な陸上または空または海の乗り物を制御するための制御信号、たとえば、乗り物の舵面もしくはその他の制御要素に対するトルクまたはより高レベルの制御コマンドである可能性がある。
【００４７】
言い換えると、行動は、たとえば、ロボットの1つもしくは複数の関節または別の機械的なエージェントの部分に関する位置、速度、または力/トルク/加速度データを含み得る。行動データは、追加的にまたは代替的に、モーター制御データなどの電子制御データ、またはより広く、その制御が環境の観測される状態に影響を与える環境内の1つまたは複数の電子デバイスを制御するためのデータを含む可能性がある。たとえば、自律的なもしくは準自律的な陸上もしくは空もしくは海の乗り物の場合、行動は、乗り物のナビゲーション、たとえば操舵ならびに移動、たとえば制動および/または加速を制御するための行動を含む可能性がある。
【００４８】
一部の実装において、環境は、シミュレーションされた環境であり、エージェントは、シミュレーションされた環境とインタラクションする1つまたは複数のコンピュータとして実装される。
【００４９】
たとえば、シミュレーションされた環境は、ロボットまたは乗り物のシミュレーションである可能性があり、強化学習システムは、シミュレーション上で訓練される可能性がある。たとえば、シミュレーションされた環境は、運動シミュレーション環境、たとえば、運転シミュレーションまたはフライトシミュレーションである可能性があり、エージェントは、運動シミュレーションによってナビゲートするシミュレーションされた乗り物である。これらの実装において、行動は、シミュレーションされたユーザまたはシミュレーションされた乗り物を制御するための制御入力である可能性がある。
【００５０】
別の例において、シミュレーションされた環境は、ビデオゲームである可能性があり、エージェントは、ビデオゲームをプレーするシミュレーションされたユーザである可能性がある。
【００５１】
さらなる例において、環境は、各状態がタンパク鎖(protein chain)のそれぞれの状態であるようなタンパク質フォールディング環境である可能性があり、エージェントは、タンパク鎖をどのようにして折りたたむべきかを決定するためのコンピュータシステムである。この例において、行動は、タンパク鎖を折りたたむための可能なフォールディング行動であり、達成される結果は、たとえば、タンパク質が安定するようにおよびタンパク質が特定の生物学的機能を達成するようにタンパク質を折りたたむことを含む可能性がある。別の例として、エージェントは、人間のインタラクションなしに自動的にシステムによって選択されたタンパク質フォールディング行動を実行または制御する機械的なエージェントである可能性がある。観測結果は、タンパク質の状態の直接的もしくは間接的な観測結果を含む可能性があり、および/またはシミュレーションから導出される可能性がある。
【００５２】
同様にして、環境は、各状態が潜在的な医薬化学薬品のそれぞれの状態であるような薬品設計環境である可能性があり、エージェントは、医薬化学薬品の成分および/または医薬化学薬品の合成経路を決定するためのコンピュータシステムである。薬品/合成は、たとえば、シミュレーションにおける薬品の目標から導出された報酬に基づいて設計される可能性がある。別の例として、エージェントは、薬品の合成を実行または制御する機械的なエージェントである可能性がある。
【００５３】
概して、シミュレーションされた環境の場合、観測結果は、上述の観測結果または観測結果の種類のうちの1つまたは複数のシミュレーションされたバージョンを含む可能性があり、行動は、上述の行動または行動の種類のうちの1つまたは複数のシミュレーションされたバージョンを含む可能性がある。
【００５４】
一部のその他の応用において、エージェントは、機器を含む実世界の環境、たとえば、データセンターまたは送電もしくは配水システム、あるいは製造工場またはサービス施設における行動を制御する可能性がある。そのとき、観測結果は、工場または施設の運転に関連する可能性がある。たとえば、観測結果は、機器による電力もしくは水の使用の観測結果、または発電もしくは配電制御の観測結果、またはリソースの使用もしくは廃棄物生成の観測結果を含む可能性がある。エージェントは、たとえば、リソースの使用を削減することによって効率を上げる、および/または、たとえば、廃棄物を減らすことによって環境における運転の環境への影響を減らすために環境における行動を制御する可能性がある。行動は、工場/施設の機器を制御するかもしくは工場/施設の機器に運転条件を課す行動、および/または工場/施設の運転の設定の変更をもたらす、たとえば、工場/施設の構成要素を調整するかもしくはオン/オフするための行動を含む可能性がある。
【００５５】
一部のさらなる応用において、環境は、実世界の環境であり、エージェントは、たとえば、モバイルデバイスおよび/またはデータセンターのコンピューティングリソースへのタスクの分散を管理する。これらの実装において、行動は、タスクを特定のコンピューティングリソースに割り振ることを含む可能性がある。
【００５６】
さらなる例として、行動は、広告を提示することを含む可能性があり、観測結果は、広告インプレッションまたはクリック数もしくはクリック率を含む可能性があり、報酬は、1人または複数のユーザによって取得されたアイテムまたはコンテンツの以前の選択を特徴付ける可能性がある。
【００５７】
任意で、上述の実装のいずれにおいても、任意の所与の時間ステップにおける観測結果は、環境を特徴付ける際に有益である可能性がある前の時間ステップからのデータ、たとえば、前の時間ステップにおいて実行された行動、前の時間ステップにおいて受け取られた報酬などを含む可能性がある。
【００５８】
各時間ステップにおいて行動選択ネットワーク102によって生成される方策スコア110は、時間ステップにおいてエージェントによって実行され得る可能な行動の組の中の各行動に関するそれぞれの数値を含む可能性がある。方策スコア110は、時間ステップにおいてエージェント106によって実行される行動104を決定するための様々な方法のいずれかで使用され得る。たとえば、各方策スコア110は、可能な行動の組の中の行動に関するそれぞれの確率値を表す可能性がある。時間ステップにおいてエージェント106によって実行される行動104は、行動に関する確率値に従って行動をサンプリングすることによって決定され得る。別の例として、最も高い方策スコア110を有する行動が、時間ステップにおいて実行される行動として選択される可能性がある。
【００５９】
行動選択ネットワーク102は、任意の適切なニューラルネットワークアーキテクチャを用いて実装され得る。一例において、行動選択ネットワーク102は、1つまたは複数の畳み込み層と、その後に続く1つまたは複数の全結合層と、その後に続く再帰層(たとえば、長期短期記憶(LSTM)再帰層)とを含む可能性がある。この例において、行動選択ネットワーク102は、時間ステップにおける再帰層の内部状態に基づいて各時間ステップにおける方策スコア110を生成する可能性がある。
【００６０】
1つまたは複数の時間ステップに渡る環境108とのエージェント106のインタラクションは、経験タプルの「軌跡」(すなわち、シーケンス)によって表される可能性があり、各経験タプルは、それぞれの時間ステップに対応する。時間ステップに対応する経験タプルは、(i)時間ステップにおける環境の状態を特徴付ける観測結果、(ii)時間ステップにおいてエージェントによって実行されるために選択された行動、(iii)行動が選択されたときに選択された行動に割り振られた方策スコア、(iv)エージェントが選択された行動を実行した後の環境の後続の状態を特徴付ける後続の観測結果、および(v)エージェントが選択された行動を実行した後に受け取られた報酬を含む可能性がある。
【００６１】
図2を参照してより詳細に説明されるように、行動選択ニューラルネットワークは、分散型訓練システムの「ラーナー」または「アクター」コンピューティングユニットに含まれ得る。図3を参照してより詳細に説明されるように、行動選択ニューラルネットワーク102は、方策オフ型アクタークリティック強化学習技術を使用して状態価値ニューラルネットワークと連携して訓練され得る。
【００６２】
図2は、例示的な訓練システム200を示す。訓練システム200は、以下で説明されるシステム、構成要素、および技術が実装される、1つまたは複数の場所の1つまたは複数のコンピュータ上のコンピュータプログラムとして実装されたシステムの例である。
【００６３】
訓練システム200は、1つまたは複数のラーナーコンピューティングユニット(たとえば、202-A、202-B、...、202-Y)および複数のアクターコンピューティングユニット(たとえば、204-A、204-B、...、204-X)を含む分散型コンピューティングシステムである。ラーナーコンピューティングユニットは、それぞれの「ラーナー」行動選択ニューラルネットワークをそれぞれ保有し、アクターコンピューティングユニットは、それぞれの「アクター」行動選択ニューラルネットワークをそれぞれ保有する。概して、ラーナー行動選択ネットワークおよびアクター行動選択ネットワークは、すべて、実質的に同じニューラルネットワークアーキテクチャを有する。ラーナーコンピューティングユニットは、アクター行動選択ネットワークを使用してアクターコンピューティングユニットによって生成された経験タプルの軌跡に基づいて強化学習技術を使用して共有されたラーナー行動選択ネットワークのパラメータ値の組を訓練するように構成される。
【００６４】
コンピューティングユニットは、たとえば、コンピュータ、複数のコアを有するコンピュータ内のコア、または動作を独立して実行することができるコンピュータ内のその他のハードウェアもしくはソフトウェア、たとえば、専用のスレッドであることが可能である。コンピューティングユニットは、プロセッサコア、プロセッサ、マイクロプロセッサ、専用論理回路、たとえば、FPGA(フィールドプログラマブルゲートアレイ)もしくはASIC(特定用途向け集積回路)、または任意のその他の適切なコンピューティングユニットを含む可能性がある。一部の例において、コンピューティングユニットは、すべて、同じ種類のコンピューティングユニットである。その他の例において、コンピューティングユニットは、異なる種類のコンピューティングユニットである可能性がある。たとえば、1つのコンピューティングユニットが、CPUである可能性があり、一方、その他のコンピューティングユニットは、GPUである可能性がある。
【００６５】
各アクターコンピューティングユニットは、アクターコンピューティングユニットによって保有されるアクター行動選択ネットワークを使用して選択される行動を実行することによって環境のインスタンスとのエージェントのインタラクションを特徴付ける経験タプルの軌跡を生成するように構成される。アクターコンピューティングユニットは、アクターおよびラーナーコンピューティングユニットの各々によってアクセスされ得るデータストアに経験タプルの軌跡206を記憶することによって生成された経験タプルの軌跡206をラーナーコンピューティングユニットに提供する可能性がある。たとえば、データストアは、経験タプルの軌跡206がアクターコンピューティングユニットによって生成された順序でその経験タプルの軌跡206を保有するキューである可能性がある。
【００６６】
ラーナーコンピューティングユニットの各々は、たとえば、アクターコンピューティングユニットが生成された経験タプルの軌跡を記憶するデータストア(たとえば、キュー)にアクセスすることによってアクターコンピューティングユニットによって生成された経験タプルの「バッチ」(つまり、1つまたは複数の組)を取得するように構成される。経験タプルの軌跡のバッチを取得した後、ラーナーコンピューティングユニットは、強化学習技術を使用して、経験タプルの軌跡のバッチに基づいてラーナー行動選択ネットワークのパラメータに対する更新を決定する。ラーナーコンピューティングユニットは、アクターコンピューティングユニットによって生成された経験タプルの軌跡の複数のバッチに基づいてラーナー行動選択ネットワークのパラメータを反復的に訓練することができる。ラーナー行動選択ネットワークのパラメータを訓練するために使用され得る強化学習技術を実装する強化学習システムの例は、図3を参照して説明される。
【００６７】
経験タプルの軌跡を生成する間に、アクターコンピューティングユニットは、アクターコンピューティングユニットによって保有されるアクター行動選択ニューラルネットワークのパラメータの組の現在の値に従って観測結果を処理することによってエージェントにより実行される行動を選択するように構成される。アクターコンピューティングユニットは、現在のラーナー行動選択ネットワークのパラメータ208を取得することによってアクター行動選択ネットワークのパラメータの値を更新することができる。たとえば、アクター行動選択ネットワークのパラメータの現在の値に従って経験タプルの軌跡を生成した後、アクターコンピューティングユニットは、そのアクターコンピューティングユニットが現在のラーナー行動選択ネットワークのパラメータ208を使用してアクター行動選択ネットワークのパラメータを更新するまで別の経験タプルを生成することを控える可能性がある。
【００６８】
アクターコンピューティングユニットは、ラーナー行動選択ネットワークのパラメータの現在の値を使用して、任意の適切な方法でそのアクターコンピューティングユニットのアクター行動選択ネットワークのパラメータの現在の値を更新することができる。たとえば、アクターコンピューティングユニットは、そのアクターコンピューティングユニットのアクター行動選択ネットワークのパラメータの現在の値をラーナー行動選択ネットワークのパラメータの現在の値で置き換えることができる。別の例として、アクターコンピューティングユニットは、そのアクターコンピューティングユニットのアクター行動選択ネットワークのパラメータの現在の値をアクター行動選択ネットワークのパラメータおよびラーナー行動選択ネットワークのパラメータの現在の値の一次結合によって置き換えることができる。一次結合の重み係数は、訓練システム200のハイパーパラメータである可能性がある。
【００６９】
アクターコンピューティングユニットは、ラーナー行動選択ネットワークのパラメータ値によって定義される行動選択方策とは異なる行動選択方策(つまり、アクター行動選択ネットワークのパラメータ値によって定義される)を使用して経験タプルの軌跡を生成する可能性がある。たとえば、アクターコンピューティングユニットは、現在のラーナー行動選択ネットワークのパラメータ値を使用してアクター選択ネットワークのパラメータの現在の値を更新し、その後、更新されたアクター選択ネットワークのパラメータを使用して経験タプルの軌跡を生成する可能性がある。しかし、ラーナーコンピューティングユニットが経験タプルの軌跡を取得する前に、現在のラーナー行動選択ネットワークのパラメータ値は、ラーナーコンピューティングユニットによって更新された可能性がある。したがって、ラーナー行動選択ネットワークのパラメータ値を訓練するために使用される強化学習技術は、「方策オフ型」訓練技術、つまり、アクターコンピューティングユニットの行動選択方策とラーナー行動選択ネットワークのパラメータ値によって定義される行動選択方策との間の潜在的な違いを考慮する訓練技術である可能性がある。ラーナー行動選択ネットワークのパラメータ値を訓練するために使用され得る方策オフ型強化学習技術の例は、たとえば、図4を参照して下でより詳細に説明される。
【００７０】
概して、経験タプルの軌跡のバッチに基づいてラーナー行動選択ネットワークのパラメータ値に対する更新を決定することは、それぞれの経験タプルの軌跡に含まれる観測結果の一部またはすべてがラーナー行動選択ネットワークのパラメータ値を使用して処理されること(つまり、観測結果に対応するそれぞれの方策スコアを生成すること)を必要とする。それぞれの経験タプルに含まれる観測結果を連続的に処理するよりもむしろ、ラーナーコンピューティングユニットは、ラーナー行動選択ネットワーク(または状態価値ネットワーク)を使用して観測結果を並列的に処理することができる。より詳細には、ラーナー行動選択ネットワークの各層(たとえば、畳み込み層、全結合層、または再帰層)に関して、観測結果の各々に関する層への入力が、観測結果の各々に関して層出力を生成するために並列的に処理される可能性がある。場合によっては、ラーナー行動選択ネットワークを使用して複数の観測結果を並列的に処理することは、ラーナー行動選択ネットワークを使用して複数の観測結果を連続的に処理するよりもずっと効率的に実施され得る。対照的に、ある通常のシステムにおいて、各コンピューティングユニットは、行動と学習との両方を実行し、つまり、各コンピューティングユニットは、反復的に、(i)経験タプルの軌跡を生成し、(ii)方策オン型の強化学習技術を使用してパラメータ値の更新を決定するように構成される。これらの通常のシステムは、(たとえば、それらのシステムがバッチではなく一度に1つの経験タプルの軌跡ずつ処理するので)本明細書に記載のラーナーコンピューティングユニットほど多くの動作を並列化することができない可能性があり、したがって、より低いデータスループットレートを有する可能性がある。
【００７１】
異なるアクターコンピューティングユニットは、異なる環境のインスタンスとのエージェントのインタラクションを特徴付ける経験タプルの軌跡を生成する可能性がある。たとえば、異なるアクターコンピューティングユニットに対応する環境は、異なるタスクの完遂に向けたエージェントの進度を特徴付ける報酬を生成する可能性がある。この例において、ラーナーコンピューティングユニットは、エージェントが複数のタスクの各々を実行することを可能にする行動を選択するようにラーナー行動選択ネットワークのパラメータ値を訓練するためにアクターコンピューティングユニットによって生成された経験タプルの軌跡を使用することができる。たとえば、ラーナー行動選択ネットワークのパラメータ値は、異なる製造される製品の組み立てにそれぞれ対応する複数のタスクを実行するための行動を選択するために工業製造環境内のロボットエージェントによって使用される可能性がある。
【００７２】
訓練システム200が複数のラーナーコンピューティングユニットを含むとき、訓練システム200は、ラーナー行動選択ネットワークのパラメータ値を訓練するために適切な分散型最適化手順(たとえば、分散型確率的勾配降下法)を使用し得る。たとえば、訓練システム200は、ラーナー行動選択ネットワークのパラメータ値を訓練するために非同期のまたは同期した最適化手順を使用し得る。非同期の最適化手順において、ラーナーコンピューティングユニットは、ラーナー行動選択ネットワークのパラメータ値に対する更新を決定する際に互いに独立して動作する。同期した最適化手順では、複数の訓練の反復の各々において、ラーナーコンピューティングユニットは、現在のラーナー行動選択ネットワークのパラメータ値に基づいてパラメータの更新を決定する。ラーナーコンピューティングユニットの各々によって生成されたパラメータの更新は、訓練の反復の終わりにラーナー行動選択ネットワークのパラメータ値に一緒に適用される。例示的な同期した分散型最適化手順は、J. Chenら、「Revisiting distributed synchronous SGD」、arXiv:1604.00981v3、2017年に関連して記載されている。
【００７３】
訓練システム200に示されるアクターコンピューティングユニットおよびラーナーコンピューティングユニットは、任意の適切な場所に置かれることが可能であり、任意の適切な有線またはワイヤレス通信媒体を介して(たとえば、経験タプルの軌跡を共有することによって)互いに通信する可能性がある。ラーナー行動選択ネットワークのパラメータ値は、任意の適切な場所に(場合によってはラーナーコンピューティングユニットの遠隔に)記憶される可能性がある。
【００７４】
図3は、例示的な強化学習システム300を示す。強化学習システム300は、以下で説明されるシステム、構成要素、および技術が実装される、1つまたは複数の場所の1つまたは複数のコンピュータ上のコンピュータプログラムとして実装されたシステムの例である。
【００７５】
強化学習システム300は、強化学習技術を使用して経験タプルの軌跡304に基づいて行動選択ネットワーク302を訓練するように構成される。より詳細には、システム300は、方策オフ型アクタークリティック強化学習技術を使用して状態価値ネットワーク306と連携して行動選択ネットワーク302を訓練する。上述のように、アクタークリティック強化学習技術は、経験タプルの軌跡304を生成するために使用される行動選択方策と行動選択ネットワーク302の現在のパラメータ値によって定義される行動選択方策との間の潜在的な違いを考慮するので「方策オフ型」と呼ばれる。
【００７６】
行動選択ネットワーク302は、環境の状態を特徴付ける観測結果を含む入力を処理して、行動の所定の組の中の各行動に関して(本明細書においては「ラーナー」方策スコアと呼ばれる)それぞれの方策スコアを含む出力を生成するように構成される。状態価値ネットワーク306は、環境の状態を特徴付ける観測結果を含む入力を処理して、観測結果に関する「状態価値」を含む出力を生成するように構成される。観測結果に関する状態価値は、エージェントが行動選択ネットワークのパラメータ308の現在の値に従って選択された行動を実行することによって環境とインタラクションする場合に環境から受け取られる累積的な報酬の推定値である。たとえば、累積的な報酬は、エージェントが行動選択ネットワークのパラメータの現在の値に従って選択された行動を実行することによって環境とインタラクションする場合に環境から受け取られる将来の報酬の長期的な時間割引された(time-discounted)合計の推定値である可能性がある。
【００７７】
行動選択ネットワーク302および状態価値ネットワーク306は、任意の適切なニューラルネットワークアーキテクチャ、たとえば、畳み込み層、全結合層、または再帰層のうちの1つまたは複数を含むニューラルネットワークアーキテクチャによって実装され得る。場合によっては、行動選択ネットワーク302および状態価値ネットワーク306は、ラーナー方策スコアを生成する第1の出力層および状態価値を生成する第2の出力層を有する共通のニューラルネットワークアーキテクチャによって実装される可能性がある。
【００７８】
概して、システム300は、行動選択ネットワークのパラメータ308および状態価値ネットワークのパラメータ310の値を反復的に更新することによって複数回の訓練の反復に渡って行動選択ネットワーク302および状態価値ネットワーク306を訓練する。それぞれの訓練の反復において、システム300は、経験タプルの軌跡304のそれぞれのバッチに基づいて行動選択ネットワークのパラメータの更新312および状態価値ネットワークのパラメータの更新314を決定する可能性がある。便宜的に、以下の説明は、所与の訓練の反復において所与の経験タプルの軌跡304を処理するものとしてシステム300に言及する。
【００７９】
システム300は、任意の適切な方法で経験タプルの軌跡304を取得する可能性がある。たとえば、システム300は、図2を参照して説明されたように、アクターコンピューティングユニットによって生成された複数の経験タプルの軌跡を含むデータストアから経験タプルの軌跡304を取得する可能性がある。場合によっては、システム300は、(たとえば、優先順位付き再生サンプリング(prioritized replay sampling)技術によって)データストアから経験タプルの軌跡304を無作為にサンプリングする可能性がある。場合によっては、データストアが経験タプルの軌跡が生成された順序でそれらの経験タプルの軌跡を記憶するキューである場合、システム300は、キューから最も最近生成された経験タプルの軌跡を取得する可能性がある。
【００８０】
経験タプルの軌跡304に含まれる選択された行動は、行動選択ネットワークのパラメータ308の現在の値によって定義される行動選択方策とは異なる可能性がある行動選択方策に従って選択された。経験タプルの軌跡304の行動を選択するために使用された行動選択方策は、本明細書においては「挙動」方策と呼ばれる。軌跡304の中の各経験タプルは、行動が選択されたときに経験タプルの選択された行動に割り振られたそれぞれの「挙動」方策スコアを含む。たとえば、挙動方策スコアは、経験タプルの観測結果が可能な行動の組に関してそれぞれの方策スコアを生成するためにアクター行動選択ネットワークによって処理されたときに経験タプルの選択された行動に割り振られた可能性がある。
【００８１】
状態価値ネットワークのパラメータの更新314および行動選択ネットワークのパラメータの更新312を生成するために、システム300は、状態価値316およびラーナー方策スコア318を生成するために状態価値ネットワーク306および行動選択ネットワーク302を使用して軌跡304に含まれる観測結果を処理する。特に、システム300は、軌跡304に含まれる各観測結果に関するそれぞれの状態価値316および軌跡304に含まれるそれぞれの選択された行動に関するそれぞれのラーナー方策スコア318を生成する。その後、訓練エンジン320が、状態価値316およびラーナー方策スコア318から状態価値ネットワークのパラメータの更新314および行動選択ネットワークのパラメータの更新312を生成する。状態価値ネットワークのパラメータの更新314および行動選択ネットワークのパラメータの更新312を生成する際に、訓練エンジン320は、軌跡304に含まれる選択された行動のラーナー方策スコア318と挙動方策スコアとの間の潜在的な相違を考慮に入れる。
【００８２】
状態価値ネットワークのパラメータの更新314を決定するために、訓練エンジン320は、軌跡304内の第1の経験タプルに含まれる観測結果を処理することによって、状態価値ネットワーク306により生成されるべきである状態価値を定義する状態価値目標を決定する。訓練システム200は、状態価値目標により近い状態価値を生成する(つまり、軌跡304内の第1の経験タプルに含まれる観測結果を処理することによって)ように状態価値ネットワーク306を後押しする状態価値ネットワークのパラメータの更新314を決定することができる。たとえば、訓練システム200は、状態価値目標と状態価値ネットワークによって生成された対応する状態価値との間の相違を特徴付ける損失関数の勾配に基づいて状態価値ネットワークのパラメータの更新314を決定することができる。訓練エンジン320は、行動選択ネットワークのパラメータに関連する軌跡304内の第1の経験タプルに含まれる選択された行動に関するラーナー方策スコア318の勾配に部分的に基づいて行動選択ネットワークのパラメータの更新312を決定することができる。行動選択ネットワーク302および状態価値ネットワーク306の現在のパラメータ値を調整するための例示的なプロセスが、図4を参照してより詳細に説明される。
【００８３】
図4は、方策オフ型アクタークリティック強化学習技術を使用して行動選択ネットワークおよび状態価値ネットワークを訓練するための反復的プロセス400の例の流れ図である。便宜上、プロセス400は、1つまたは複数の場所に置かれた1つまたは複数のコンピュータのシステムによって実行されるものとして説明される。たとえば、本明細書によって適切にプログラミングされた強化学習システム、たとえば、図3の強化学習システム300が、プロセス400を実行し得る。
【００８４】
システムが、経験タプルの軌跡を取得する(402)。経験タプルの軌跡は、一連の1つまたは複数の時間ステップに渡る環境のインスタンスとのエージェントのインタラクションを特徴付け、各時間ステップに対応するそれぞれの経験タプルを含む。各経験タプルは、(i)時間ステップにおける環境のインスタンスの状態を特徴付ける観測結果、(ii)挙動方策を使用して時間ステップにおいてエージェントによって実行されるために選択された行動、(iii)行動が選択されたときに挙動方策によって選択された行動に割り振られた挙動方策スコア、(iv)エージェントが選択された行動を実行した後の環境のインスタンスの後続の状態を特徴付ける後続の観測結果、および(v)エージェントが選択された行動を実行した後に受け取られた報酬を含む。
【００８５】
挙動方策は、エージェントによって実行され得る行動の組の中の各行動にそれぞれの挙動方策スコアを割り振ることによって、エージェントが環境のインスタンスとインタラクションすることにより実行される行動を選択する任意の適切な方策であることが可能である。たとえば、経験タプルの軌跡は、(図2を参照して説明されたように)アクターコンピューティングユニットによって生成される可能性があり、挙動方策は、アクター行動選択ネットワークの現在のパラメータ値によって定義される可能性がある。
【００８６】
便宜的に、プロセス400の各反復が、1つの経験タプルの軌跡に関連して説明される。場合によっては、1つの経験タプルの軌跡を取得するよりもむしろ、システムは、複数の経験タプルの軌跡のバッチを取得し、経験タプルの軌跡の各々に関してプロセス400のステップを実行する。
【００８７】
システムは、軌跡内の第1の経験タプルに含まれる観測結果を処理することによって、状態価値ネットワークにより生成されるべきである状態価値を定義する状態価値目標を決定するために経験タプルの軌跡を処理する(404)。システムは、経験タプルの軌跡の行動を選択するために使用される挙動方策と行動選択ネットワークのパラメータの現在の値によって定義される行動選択方策との間の潜在的な違いを考慮する補正因子を使用して状態価値目標を決定する。状態価値目標を決定するための例示的なプロセスは、図5を参照して説明される。
【００８８】
システムは、状態価値目標に基づいて状態価値ネットワークの現在のパラメータ値を調整する(406)。システムは、状態価値目標により近い軌跡内の第1の経験タプルに含まれる観測結果に関する状態価値を生成するように状態価値ネットワークを後押しするために状態価値ネットワークの現在のパラメータ値を調整する可能性がある。たとえば、システムは、状態価値目標に応じて決まる損失関数の勾配を使用して状態価値ネットワークの現在のパラメータ値を調整する可能性がある。システムは、任意の適切な技術、たとえば、誤差逆伝播を使用して状態価値ネットワークの現在のパラメータ値に関連する損失関数の勾配を決定する可能性がある。損失関数は、たとえば、状態価値目標と、軌跡内の第1の経験タプルに含まれる観測結果に関して状態価値ネットワークによって生成された状態価値との間の2乗損失(squared loss)である可能性がある。システムは、損失関数の勾配を使用して状態価値ネットワークの現在のパラメータ値を調整するために任意の適切な勾配降下更新規則、たとえば、AdamまたはRMSprop勾配降下アルゴリズムによって定義された勾配降下更新規則を使用し得る。
【００８９】
システムは、行動選択ネットワークの現在のパラメータ値を調整する(408)。システムは、行動選択ネットワークの現在のパラメータ値に関連する第1の経験タプルに含まれる選択された行動に関するラーナー方策スコアの勾配に基づいて行動選択ネットワークの現在のパラメータ値を調整する可能性がある。第1の経験タプルに含まれる選択された行動に関するラーナー方策スコアは、第1の経験タプルに含まれる観測結果に関して行動選択ネットワークによって生成されたラーナー方策スコアによって選択された行動に割り振られたスコアを指す。システムは、任意の適切な方法、たとえば、誤差逆伝播を使用してラーナー方策スコアの勾配を決定することができる。システムは、下でより詳細に説明されるように、1つまたは複数のスケーリング項(scaling term)を使用してラーナー方策スコアの勾配をスケーリングすることができ、その後、任意の適切な勾配降下更新規則を使用して、勾配に基づいて行動選択ネットワークの現在のパラメータ値を調整することができる。たとえば、システムは、AdamまたはRMSprop勾配降下アルゴリズムによって定義された勾配降下更新規則を使用して行動選択ネットワークの現在のパラメータ値を調整することができる。
【００９０】
場合によっては、システムは、軌跡内の第1の経験タプルからの選択された行動に関するラーナー方策スコアと挙動方策スコアとの比率に基づいてスケーリング項によってラーナー方策スコアの勾配をスケーリングする。代替的にまたは組み合わせて、システムは、経験タプルの軌跡に含まれる1つまたは複数の経験タプルに関して状態価値ネットワークによって生成された状態価値に基づいてスケーリング項によってラーナー方策スコアの勾配をスケーリングする可能性がある。代替的にまたは組み合わせて、システムは、経験タプルの軌跡の中で第1の経験タプルの後にある経験タプルに含まれる観測結果に関する状態価値目標に基づいてスケーリング項によってラーナー方策スコアの勾配をスケーリングする可能性がある。状態価値目標を決定するための例示的なプロセスは、図5を参照して説明される。特定の例において、たとえば、
【００９１】
【数１】
2021513128.tif 000003
【００９２】
によって与えられる第1の経験タプルに含まれる選択された行動に関するラーナー方策スコアのスケーリングされた勾配を使用して、勾配降下によって行動選択ネットワークの現在のパラメータ値を調整する可能性があり、式中、
【００９３】
【数２】
2021513128.tif 000004
【００９４】
は、所定の切り捨て値であり、π(a)は、軌跡内の第1の経験タプルからの選択された行動に関するラーナー方策スコアであり、μ(a)は、軌跡内の第1の経験タプルからの選択された行動に関する挙動方策スコアであり、∇π(a)は、行動選択ネットワークのパラメータに関連する軌跡内の第1の経験タプルからの選択された行動に関するラーナー方策スコアの勾配であり、rは、軌跡内の第1の経験タプルからの報酬であり、γは、一定の割引因子であり、νは、軌跡内の第2の経験タプルに含まれる観測結果に関する状態価値目標であり、V(x)は、軌跡内の第1の経験タプルからの観測結果に関する状態価値である。
【００９５】
任意で、システムは、行動選択ネットワークのパラメータの値に関連するエントロピーボーナスの勾配を使用して行動選択ネットワークのパラメータの現在の値を調整する可能性がある。エントロピーボーナスは、経験タプルの軌跡内の第1の経験タプルに含まれる観測結果に関して行動選択ネットワークによって生成されたラーナー方策スコアが可能な行動の組にどれだけ均一に分散されるかを特徴付ける可能性がある。たとえば、エントロピーボーナスは、
【００９６】
【数３】
2021513128.tif 000005
【００９７】
によって与えられる可能性があり、式中、Aは、可能な行動の組を表し、π(a)は、行動aに関するラーナー方策スコアを表す。エントロピーボーナスの勾配を使用して行動選択ネットワークのパラメータの現在の値を調整することは、訓練中の行動選択ネットワークのパラメータの初期収束を防止する可能性がある。
【００９８】
システムがそれぞれの訓練の反復において複数の経験タプルの軌跡のバッチ(つまり、1つの経験タプルの軌跡ではなく)を処理するとき、システムは、それぞれの経験タプルの軌跡に関して行動選択ネットワークおよび状態価値ネットワークのパラメータ値に対するそれぞれの更新を決定する可能性がある。その後、システムは、たとえば、経験タプルの軌跡の各々に関して決定されたパラメータ値の更新の平均を使用して行動選択ネットワークのパラメータおよび状態価値ネットワークのパラメータの値を調整することができる。
【００９９】
行動選択ネットワークおよび状態価値ネットワークの現在のパラメータ値を調整した後、システムは、訓練の終了基準が満たされるかどうかを判定し得る。たとえば、システムは、システムが所定の回数の訓練の反復を実行した場合、訓練の終了基準が満たされると判定する可能性がある。別の例として、システムは、行動選択ネットワークのパラメータの現在の値を使用して1つまたは複数のタスクを完了する際のエージェントの性能が閾値を満たす場合、訓練の終了基準が満たされると判定する可能性がある。訓練の終了基準が満たされないと判定することに応じて、システムは、ステップ402に戻り、上述のステップを繰り返す。訓練の終了基準が満たされると判定することに応じて、システムは、行動選択ネットワークのパラメータ(および任意で状態価値ネットワークのパラメータ)の訓練された値を出力し得る。
【０１００】
図5は、経験タプルの軌跡に基づいて状態価値ネットワークに関する状態価値目標を決定するための例示的なプロセス500の流れ図である。便宜上、プロセス500は、1つまたは複数の場所に置かれた1つまたは複数のコンピュータのシステムによって実行されるものとして説明される。たとえば、本明細書によって適切にプログラミングされた強化学習システム、たとえば、図3の強化学習システム300が、プロセス500を実行し得る。
【０１０１】
システムは、軌跡内の第1の経験タプルに含まれる観測結果に関する状態価値を決定する(502)。たとえば、システムは、状態価値ネットワークを使用して、状態ネットワークのパラメータの現在の値に従って軌跡内の第1の経験タプルに含まれる観測結果を処理することによって状態価値を決定する可能性がある。
【０１０２】
システムは、軌跡内の各経験タプルに関して(下で説明される)ステップ504〜510を実行する。便宜的に、ステップ504〜510は、軌跡内の所与の経験タプルに関連して説明される。
【０１０３】
システムは、所与の経験タプルに含まれる選択された行動に関するラーナー方策スコアを決定する(504)。たとえば、システムは、所与の経験タプルに含まれる選択された行動に関するラーナー方策スコアを定義する出力を生成するために、行動選択ネットワークのパラメータの現在の値に従って行動選択ネットワークを使用して所与の経験に含まれる観測結果を処理する可能性がある。
【０１０４】
システムは、所与の経験タプルに含まれる選択された行動に関するラーナー方策スコアと挙動方策スコアとの比率に基づいて所与の経験タプルに関する追跡係数を決定する(506)。たとえば、システムは、所与の経験タプルに関する追跡係数を
【０１０５】
【数４】
2021513128.tif 000006
【０１０６】
として決定されることが可能であり、式中、π(a)は、選択された行動に関するラーナー方策スコアであり、μ(a)は、選択された行動に関する挙動方策スコアである。一部の実装において、システムは、所定のスケーリング因子によって追跡係数をスケーリングする可能性がある。
【０１０７】
システムは、(i)所与の経験タプルに関する追跡係数、および(ii)軌跡の中で所与の経験タプルよりも前にある任意の経験タプルに関する追跡係数に基づいて所与の経験タプルに関する補正因子を決定する(508)。たとえば、システムは、所与の経験タプルに関する追跡係数と軌跡の中で所与の経験タプルよりも前にある任意の経験タプルに関する追跡係数との積として補正因子を決定する可能性がある。場合によっては、所与の経験タプルに関する補正因子を決定する際に、システムは、第1の切り捨て値で所与の経験タプルに関する追跡係数を切り捨て、第2の切り捨て値で所与の経験タプルよりも前にある任意の経験タプルに関する追跡係数を切り捨てる。第1の切り捨て値は、第2の切り捨て値以上である可能性がある。たとえば、システムは、経験タプルに関する補正因子を
【０１０８】
【数５】
2021513128.tif 000007
【０１０９】
として決定する可能性があり、式中、tは、経験タプルのシーケンスの中の所与の経験タプルをインデックス付けし、
【０１１０】
【数６】
2021513128.tif 000008
【０１１１】
は、第1の切り捨て値であり、
【０１１２】
【数７】
2021513128.tif 000009
【０１１３】
は、第2の切り捨て値であり、π(ai)は、第iの経験タプルの選択された行動に関するラーナー方策スコアであり、μ(ai)は、第iの経験タプルの選択された行動に関する挙動方策スコアである。
【０１１４】
システムは、経験タプルに関する状態価値の時間的な違いを決定し、これは、経験タプル内の観測結果の状態価値と後続の観測結果の状態価値との間の違いを表す可能性がある。より詳細には、状態価値の時間的な違いは、少なくとも、(i)所与の経験タプルに含まれる報酬、および(ii)所与の経験タプルに含まれる観測結果および後続の観測結果に関するそれぞれの状態価値に基づく可能性がある(510)。システムは、状態価値ネットワークのパラメータの現在の値に従って状態価値ネットワークを使用して所与の経験タプルに含まれる観測結果および後続の観測結果を処理することによってそれぞれの状態価値を決定する可能性がある。たとえば、システムは、所与の経験タプルに関する状態価値の時間的な違いを
δtV = rt +γ・V(xt+1) - V(xt)    (5)
として決定する可能性があり、式中、rtは、所与の経験タプルに含まれる報酬であり、γは、割引因子であり、V(xt+1)は、所与の経験タプルに含まれる後続の観測結果に関する状態価値であり、V(xt)は、所与の経験タプルに含まれる観測結果に関する状態価値である。
【０１１５】
システムは、少なくとも、(i)補正因子、(ii)状態価値の時間的な違い、および(iii)軌跡内の第1の経験タプルに含まれる観測結果に関する状態価値に基づいて経験タプルの軌跡に関する状態価値目標を決定する(512)。たとえば、システムは、経験タプルの軌跡に関する状態価値目標を
【０１１６】
【数８】
2021513128.tif 000010
【０１１７】
として決定する可能性があり、式中、V(x0)は、軌跡内の第1の経験タプルに含まれる観測結果に関する状態価値であり、nは、軌跡内の経験タプルの総数であり、tは、軌跡内の経験タプルをインデックス付けし、γは、割引因子であり、Ctは、第tの経験タプルに関する補正因子であり、δtVは、第tの経験タプルに関する状態価値の時間的な違いである。
【０１１８】
本明細書は、用語「構成される」をシステムおよびコンピュータプログラムの構成要素に関連して使用する。1つまたは複数のコンピュータのシステムが特定の動作または行動を実行するように構成されることは、システムが、動作中にシステムに動作または行動を実行させるソフトウェア、ファームウェア、ハードウェア、またはそれらの組合せをそのシステム上にインストール済みであることを意味する。1つまたは複数のコンピュータプログラムが特定の動作または行動を実行するように構成されることは、1つまたは複数のプログラムが、データ処理装置によって実行されるときに装置に動作または行動を実行させる命令を含むことを意味する。
【０１１９】
本明細書に記載の対象の実施形態および機能的動作は、本明細書において開示された構造およびそれらの構造的均等物を含むデジタル電子回路、有形で具現化されたコンピュータソフトウェアもしくはファームウェア、コンピュータハードウェア、またはそれらのうちの1つもしくは複数の組合せで実装されることが可能である。本明細書に記載の対象の実施形態は、1つまたは複数のコンピュータプログラム、すなわち、データ処理装置による実行のために、またはデータ処理装置の動作を制御するために有形の非一時的ストレージ媒体上に符号化されたコンピュータプログラム命令の1つまたは複数のモジュールとして実装されることが可能である。コンピュータストレージ媒体は、機械可読ストレージデバイス、機械可読ストレージ基板、ランダムもしくはシリアルアクセスメモリデバイス、またはそれらのうちの1つもしくは複数の組合せであることが可能である。代替的にまたは追加的に、プログラム命令は、データ処理装置による実行のために好適なレシーバ装置に送信するために情報を符号化するように生成される人為的に生成された伝播信号、たとえば、機械によって生成された電気的信号、光学的信号、または電磁的信号上に符号化されることが可能である。
【０１２０】
用語「データ処理装置」は、データ処理ハードウェアを指し、例として、1つのプログラミング可能なプロセッサ、1台のコンピュータ、または複数のプロセッサもしくはコンピュータを含む、データを処理するためのすべての種類の装置、デバイス、およびマシンを包含する。装置は、専用の論理回路、たとえば、FPGA(フィールドプログラマブルゲートアレイ)またはASIC(特定用途向け集積回路)であることも可能であり、またはそのような専用論理回路をさらに含むことも可能である。任意で、装置は、ハードウェアに加えて、コンピュータプログラムのための実行環境を作成するコード、たとえば、プロセッサのファームウェア、プロトコルスタック、データベース管理システム、オペレーティングシステム、またはそれらのうちの1つもしくは複数の組合せを構成するコードを含むことが可能である。
【０１２１】
プログラム、ソフトウェア、ソフトウェアアプリケーション、アプリ、モジュール、ソフトウェアモジュール、スクリプト、またはコードと呼ばれるまたは記載される可能性もあるコンピュータプログラムは、コンパイラ型言語もしくはインタープリタ型言語、または宣言型言語もしくは手続き型言語を含む任意の形態のプログラミング言語で記述されることが可能であり、独立型プログラムとしての形態、またはモジュール、コンポーネント、サブルーチン、もしくはコンピューティング環境内での使用に適したその他のユニットとしての形態を含む任意の形態で配置されることが可能である。プログラムは、ファイルシステム内のファイルに対応する可能性があるが、必ずそうであるとは限らない。プログラムは、その他のプログラムもしくはデータを保持するファイルの一部、たとえば、マークアップ言語のドキュメントに記憶された1つもしくは複数のスクリプト、問題にしているプログラムに専用の単一のファイル、または複数の組織されたファイル、たとえば、1つもしくは複数のモジュール、サブプログラム、もしくはコードの一部を記憶するファイルに記憶され得る。コンピュータプログラムは、1台のコンピュータ上で、または1つの場所に置かれるか、もしくは複数の場所に分散され、データ通信ネットワークによって相互に接続される複数のコンピュータ上で実行されるように配置されることが可能である。
【０１２２】
本明細書において、用語「エンジン」は、1つまたは複数の特定の機能を実行するようにプログラミングされるソフトウェアに基づくシステム、サブシステム、またはプロセスを指すために広く使用される。概して、エンジンは、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  報酬
200  訓練システム
202-A  ラーナーコンピューティングユニット
202-B  ラーナーコンピューティングユニット
202-Y  ラーナーコンピューティングユニット
204-A  アクターコンピューティングユニット
204-B  アクターコンピューティングユニット
204-X  アクターコンピューティングユニット
206  経験タプルの軌跡
208  ラーナー行動選択ネットワークのパラメータ
300  強化学習システム
302  行動選択ネットワーク
304  経験タプルの軌跡
306  状態価値ネットワーク
308  行動選択ネットワークのパラメータ
310  状態価値ネットワークのパラメータ
312  行動選択ネットワークのパラメータの更新
314  状態価値ネットワークのパラメータの更新
316  状態価値
318  ラーナー方策スコア
320  訓練エンジン
400  プロセス
500  プロセス
【図１】
2021513128.tif 000011
【図２】
2021513128.tif 000012
【図３】
2021513128.tif 000013
【図４】
2021513128.tif 000014
【図５】
2021513128.tif 000015
【国際調査報告】
2021513128.tif 000016
2021513128.tif 000017
2021513128.tif 000018