(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024102049
(43)【公開日】2024-07-30
(54)【発明の名称】相対エントロピーQ学習を使ったアクション選択システムのトレーニング
(51)【国際特許分類】
G06N 3/092 20230101AFI20240723BHJP
【FI】
G06N3/092
【審査請求】有
【請求項の数】15
【出願形態】OL
【外国語出願】
(21)【出願番号】P 2024055152
(22)【出願日】2024-03-29
(62)【分割の表示】P 2022576854の分割
【原出願日】2021-07-27
(31)【優先権主張番号】63/057,826
(32)【優先日】2020-07-28
(33)【優先権主張国・地域又は機関】US
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.TENSORFLOW
(71)【出願人】
【識別番号】517030789
【氏名又は名称】ディープマインド テクノロジーズ リミテッド
(74)【代理人】
【識別番号】100108453
【弁理士】
【氏名又は名称】村山 靖彦
(74)【代理人】
【識別番号】100110364
【弁理士】
【氏名又は名称】実広 信哉
(74)【代理人】
【識別番号】100133400
【弁理士】
【氏名又は名称】阿部 達彦
(72)【発明者】
【氏名】レ・チャン・ジョン
(72)【発明者】
【氏名】ヨースト・トバイアス・スプリンゲンバーグ
(72)【発明者】
【氏名】ジャクリーン・オク-チャン・ケイ
(72)【発明者】
【氏名】ダニエル・ハイ・フアン・チェン
(72)【発明者】
【氏名】アレクサンドル・ガラショフ
(72)【発明者】
【氏名】ニコラス・マンフレート・オットー・ヒース
(72)【発明者】
【氏名】フランチェスコ・ノリ
(57)【要約】
【課題】強化学習技法を使ってアクション選択システムをトレーニングする。
【解決手段】方法は、複数の反復の各々において、経験のバッチを取得するステップであって、各経験タプルは、第1の観測結果、アクション、第2の観測結果、および報酬を含む、ステップと、各経験タプルについて、第2の観測結果についての状態値を決定するステップであって、方策ニューラルネットワークを使って第1の観測結果を処理して、可能性のあるアクションのセットの中の各アクションについてのアクションスコアを生成することと、アクションスコアに従って、可能性のあるアクションのセットから複数のアクションをサンプリングすることと、Qニューラルネットワークを使って第2の観測結果を処理して、各サンプリングされたアクションについてのQ値を生成することと、第2の観測結果についての状態値を決定することとを含む、ステップと、状態値を使って、Qニューラルネットワークパラメータの現在の値に対する更新を決定するステップとを含む。
【選択図】
図2
【特許請求の範囲】
【請求項1】
タスクを実行するために環境と対話するエージェントによって実行されるべきアクションを選択するのに使われるアクション選択システムをトレーニングするための、1つまたは複数のデータ処理装置によって実行される方法であって、前記アクション選択システムはQニューラルネットワークおよび方策ニューラルネットワークを備え、前記方法は、複数の反復の各々において、
前記エージェントと前記環境の以前の対話を特徴づける経験タプルのバッチをリプレイバッファから取得するステップであって、各経験タプルは、(i)前記環境の状態を特徴づける第1の観測結果、(ii)前記第1の観測結果に応答して前記エージェントによって実行されたアクション、(iii)前記第1の観測結果に応答して前記エージェントが前記アクションを実行した後の前記環境の状態を特徴づける第2の観測結果、および(iv)前記第1の観測結果に応答して前記エージェントが前記アクションを実行した結果として受けられる報酬を含む、ステップと、
各経験タプルについて、前記経験タプルの中の前記第2の観測結果についての状態値を決定するステップであって、
前記方策ニューラルネットワークを使って、前記経験タプルの中の前記第1の観測結果を処理して、前記エージェントによって実行することができる可能性のあるアクションのセットの中の各アクションについてのそれぞれのアクションスコアを生成することと、
前記アクションスコアに従って、前記可能性のあるアクションのセットから複数のアクションをサンプリングすることと、
前記Qニューラルネットワークを使って前記第2の観測結果を処理して、各サンプリングされたアクションについてのそれぞれのQ値を生成することと、
前記サンプリングされたアクションについての前記Q値を使って、前記第2の観測結果についての前記状態値を決定することとを含むステップと、
前記経験タプルの中の前記第2の観測結果についての前記状態値を使って、前記QニューラルネットワークのQニューラルネットワークパラメータのセットの現在の値に対する更新を決定するステップとを含む方法。
【請求項2】
各経験タプルについて、前記サンプリングされたアクションについての前記Q値を使って、前記第2の観測結果についての前記状態値を決定することは、
前記第2の観測結果についての前記状態値を、前記サンプリングされたアクションについての前記Q値の線形結合として決定することを含む、請求項1に記載の方法。
【請求項3】
前記第2の観測結果についての前記状態値を、前記サンプリングされたアクションについての前記Q値の線形結合として決定することは、
前記サンプリングされたアクションについての前記Q値に基づいて温度係数を決定することと、
各サンプリングされたアクションについてのそれぞれの修正されたQ値を、(i)前記サンプリングされたアクションについての前記Q値と、(ii)前記温度係数の比として決定することと、
前記修正されたQ値にソフトマックス関数を適用して、各サンプリングされたアクションについての重み係数を決定することと、
前記第2の観測結果についての前記状態値を、前記サンプリングされたアクションについての前記Q値の線形結合として決定することであって、各サンプリングされたアクションについての前記Q値は、前記サンプリングされたアクションについての前記重み係数によってスケーリングされる、こととを含む、請求項2に記載の方法。
【請求項4】
前記第2の観測結果についての前記状態値は、
【数1】
と計算され、上式で、V
π(s)は、前記第2の観測結果についての前記状態値であり、jは、前記サンプリングされたアクションをインデックス付けし、Mは、サンプリングされたアクションの数であり、w
jは、サンプリングされたアクションa
jについての前記重み係数であり、Q
φ'(a
j,s)は、サンプリングされたアクションa
jについての前記Q値であり、各重み係数w
jは、
【数2】
と計算され、上式で、kは、前記サンプリングされたアクションをインデックス付けし、η
sは前記温度係数である、請求項3に記載の方法。
【請求項5】
前記サンプリングされたアクションについての前記Q値に基づいて前記温度係数を決定することは、1つまたは複数の最適化反復の各々において、
前記温度係数に対して双対関数の勾配を決定することであって、前記双対関数は、(i)前記温度係数、および(ii)前記サンプリングされたアクションについての前記Q値に依存する、ことと、
前記温度係数に対する前記双対関数の前記勾配を使って、前記温度係数の現在の値を調節することとを含む、請求項3から4のいずれか一項に記載の方法。
【請求項6】
前記双対関数は、
【数3】
と計算され、上式で、g(η
s)は、温度係数η
sについて評価される前記双対関数であり、|B|は、経験タプルの前記バッチの中の経験タプルの数を記し、εは正則化パラメータであり、jは、前記サンプリングされたアクションをインデックス付けし、Mは、サンプリングされたアクションの数であり、Q
φ'(a
j,s)は、サンプリングされたアクションa
jについての前記Q値である、請求項5に記載の方法。
【請求項7】
前記経験タプルの中の前記第2の観測結果についての前記状態値を使って、前記QニューラルネットワークのQニューラルネットワークパラメータのセットの現在の値に対する更新を決定することは、
各経験タプルについて、
前記Qニューラルネットワークを使って、前記経験タプルの中の前記第1の観測結果を処理して、前記経験タプルの中の前記アクションについてのQ値を生成することと、
前記経験タプルの中の前記第2の観測結果についての前記状態値を使って、前記経験タプルの中の前記アクションについての目標Q値を決定することと、
各経験タプルについて、(i)前記経験タプルの中の前記アクションについての前記Q値と、(ii)前記経験タプルの中の前記アクションについての前記目標Q値との間の誤差を測定するQ目的関数の勾配を決定することと、
前記勾配を使って、前記Qニューラルネットワークパラメータのセットの前記現在の値に対する前記更新を決定することとを含む、請求項1から6のいずれか一項に記載の方法。
【請求項8】
前記経験タプルの中の前記第2の観測結果についての前記状態値を使って、前記経験タプルの中の前記アクションについての前記目標Q値を決定することは、
(i)前記経験タプルの中の前記報酬、および(ii)割引係数と前記経験タプルの中の前記第2の観測結果についての前記状態値の積の合計として、前記目標Q値を決定することを含む、請求項7に記載の方法。
【請求項9】
(i)前記経験タプルの中の前記アクションについての前記Q値と、(ii)前記経験タプルの中の前記アクションについての前記目標Q値との間の前記誤差は、(i)前記経験タプルの中の前記アクションについての前記Q値と、(ii)前記経験タプルの中の前記アクションについての前記目標Q値との間の二乗誤差を含む、請求項7から8のいずれか一項に記載の方法。
【請求項10】
前記Q目的関数は、
【数4】
と計算され、上式で、|B|は、経験タプルの前記バッチの中の経験タプルの数であり、各(s,a,r,s')は、経験タプルの前記バッチBの中の経験タプルであって、ここで、sは前記第1の観測結果であり、aは前記アクションであり、rは前記報酬であり、s'は前記第2の観測結果であり、γは割引係数であり、V
π(s')は、前記経験タプルの中の前記第2の観測結果についての前記状態値であり、Q
φ(a,s)は、前記経験タプルの中の前記アクションについての前記Q値である、請求項9に記載の方法。
【請求項11】
前記複数の反復の各々において、前記方策ニューラルネットワークの方策ニューラルネットワークパラメータのセットの現在の値に対する更新を決定するステップであって、
各経験タプルについて、
前記Qニューラルネットワークを使って、前記経験タプルの中の前記第1の観測結果を処理して、前記経験タプルの中の前記アクションについてのQ値を生成することと、
前記経験タプルの中の前記第1の観測結果についての状態値を決定することと、
前記経験タプルについてのアドバンテージ値を、(i)前記経験タプルの中の前記アクションについての前記Q値と、(ii)前記経験タプルの中の前記第1の観測結果についての前記状態値との間の差として決定することとを含むステップと、
負でないアドバンテージ値を有する前記経験タプルのみに基づいて、前記方策ニューラルネットワークの前記方策ニューラルネットワークパラメータのセットの前記現在の値に対する前記更新を決定するステップとをさらに含む、請求項1から10のいずれか一項に記載の方法。
【請求項12】
負でないアドバンテージ値を有する前記経験タプルのみに基づいて、前記方策ニューラルネットワークの前記方策ニューラルネットワークパラメータのセットの前記現在の値に対する前記更新を決定することは、
負でないアドバンテージ値を有する前記経験タプルのみに依存する方策目的関数の勾配を決定することと、
前記勾配を使って、前記方策ニューラルネットワークパラメータのセットの前記現在の値に対する前記更新を決定することとを含む、請求項11に記載の方法。
【請求項13】
負でないアドバンテージ値を有する各経験タプルについて、前記方策目的関数は、前記方策ニューラルネットワークを使って、前記経験タプルの中の前記第1の観測結果を処理することによって生成される前記経験タプルの中の前記アクションについてのアクションスコアに依存する、請求項12に記載の方法。
【請求項14】
前記方策目的関数は、
【数5】
と計算され、上式で、|B|は、経験タプルの前記バッチの中の経験タプルの数であり、各(s,a,r)は、経験タプルの前記バッチBの中の経験タプルであって、ここで、sは前記第1の観測結果であり、aは前記アクションであり、rは前記報酬であり、II[・]はインジケータ関数であり、A
π(a,s)は前記経験タプルについての前記アドバンテージ値であり、π
θ(a|s)は、前記方策ニューラルネットワークを使って、前記経験タプルの中の前記第1の観測結果を処理することによって生成される前記経験タプルの中の前記アクションについての前記アクションスコアである、請求項13に記載の方法。
【請求項15】
前記複数の反復のうちの1つまたは複数の各々において、
前記アクション選択システム、エキスパートアクション選択方策、または両方を使って、複数の新たな経験タプルを生成するステップと、
前記リプレイバッファに前記新たな経験タプルを追加するステップとをさらに含む、請求項1から14のいずれか一項に記載の方法。
【請求項16】
複数の新たな経験タプルを生成することは、1つまたは複数の時間ステップの各々において、
前記時間ステップについての現在の観測結果を受信するステップと、
前記アクション選択システムまたは前記エキスパートアクション選択方策を使って、前記時間ステップにおいて、前記エージェントによって実行されるべきアクションを選択するステップと、
前記選択されたアクションを前記エージェントが実行したことから生じる次の観測結果および報酬を受信するステップと、
前記現在の観測結果、前記選択されたアクション、前記次の観測結果、および前記報酬を含む新たな経験タプルを生成するステップとを含む、請求項15に記載の方法。
【請求項17】
前記アクション選択システムまたは前記エキスパートアクション選択方策を使って、前記時間ステップにおいて前記エージェントによって実行されるべき前記アクションを選択することは、前記時間ステップにおいて前記エージェントによって実行されるべき前記アクションを選択するために、前記アクション選択システムまたは前記エキスパートアクション選択方策を使うことの間で確率的に選択をすることを含む、請求項16に記載の方法。
【請求項18】
前記アクション選択システムを使って、時間ステップにおいて前記エージェントによって実行されるべきアクションを選択することは、
前記方策ニューラルネットワークを使って、前記時間ステップに対する前記現在の観測結果を処理して、前記可能性のあるアクションのセットの中の各アクションについてのそれぞれのアクションスコアを生成することと、
前記Qニューラルネットワークを使って、前記時間ステップに対する前記現在の観測結果を処理して、前記可能性のあるアクションのセットの中の各アクションについてのそれぞれのQ値を生成することと、
(i)前記アクションについての前記アクションスコア、および(ii)前記アクションについての前記Q値に基づいて、各アクションについての最終アクションスコアを決定することと、
前記最終アクションスコアに従って、前記エージェントによって実行されるべき前記アクションを選択することとを含む、請求項16から17のいずれか一項に記載の方法。
【請求項19】
アクションについての前記最終アクションスコアは、
【数6】
と計算され、上式で、π(a|s)は、前記アクションについての前記アクションスコアであり、Q(s,a)は、前記アクションについての前記Q値であり、η
sは温度パラメータである、請求項18に記載の方法。
【請求項20】
前記エージェントは、実世界環境と対話するロボットエージェントであり、前記エキスパートアクション選択方策は、中間地点追跡コントローラを組織することによって生成される、請求項16から19のいずれか一項に記載の方法。
【請求項21】
1つまたは複数のコンピュータと、
前記1つまたは複数のコンピュータに通信可能に結合された1つまたは複数の記憶デバイスとを備えるシステムであって、前記1つまたは複数の記憶デバイスは、前記1つまたは複数のコンピュータによって実行されると、前記1つまたは複数のコンピュータに、請求項1から20のいずれか一項に記載の方法の動作を実行させる命令を記憶する、システム。
【請求項22】
1つまたは複数のコンピュータによって実行されると、前記1つまたは複数のコンピュータに、請求項1から20のいずれか一項に記載の方法の動作を実行させる命令を記憶する1つまたは複数の非一時的コンピュータ記憶媒体。
【発明の詳細な説明】
【技術分野】
【0001】
関連出願の相互参照
本出願は、2020年7月28日に出願され、参照によってその全体が本明細書に組み込まれている米国仮特許出願第63/057,826号の出願日の利益を主張する。
【0002】
本明細書は、機械学習モデルを使うデータの処理に関する。
【背景技術】
【0003】
機械学習モデルは、入力を受信し、受信された入力に基づいて、出力、たとえば、予測される出力を生成する。いくつかの機械学習モデルは、パラメータモデルであり、受信された入力に、およびモデルのパラメータの値に基づいて出力を生成する。
【0004】
いくつかの機械学習モデルは、受信された入力に対する出力を生成するのに、モデルの複数のレイヤを利用する深層モデルである。たとえば、深層ニューラルネットワークとは、出力レイヤと、出力を生成するために、受信された入力に非線形変換を各々が適用する1つまたは複数の隠れレイヤとを含む深層機械学習モデルである。
【先行技術文献】
【非特許文献】
【0005】
【非特許文献1】Rae Jeongら、「Learning Dexterous Manipulation from Suboptimal Experts」、arXiv:2010.08587v2、2021年1月5日
【発明の概要】
【課題を解決するための手段】
【0006】
本明細書は概して、強化学習技法を使ってタスクを実行するために環境と対話するエージェントを制御するのに使われるアクション選択システムをトレーニングするための、1つまたは複数のロケーションにある1つまたは複数のコンピュータ上でコンピュータプログラムとして実装されるシステムについて記載する。本明細書に記載する強化学習技法は、相対エントロピーQ学習と呼ばれ得る。アクション選択システムは、以下でより詳しく説明するように、Qニューラルネットワークおよび方策ニューラルネットワークを備えることができる。
【0007】
第1の態様によると、タスクを実行するために環境と対話するエージェントによって実行されるべきアクションを選択するのに使われるアクション選択システムをトレーニングするための、1つまたは複数のデータ処理装置によって実行される方法が提供される。アクション選択システムは、Qニューラルネットワークおよび方策ニューラルネットワークを備える。方法は、複数の反復の各々において、エージェントと環境の以前の対話を特徴づける経験タプルのバッチをリプレイバッファから取得するステップを含む。各経験タプルは、(i)環境の状態を特徴づける第1の観測結果、(ii)第1の観測結果に応答してエージェントによって実行されたアクション、(iii)第1の観測結果に応答してエージェントがアクションを実行した後の環境の状態を特徴づける第2の観測結果、および(iv)第1の観測結果に応答してエージェントがアクションを実行した結果として受けられる報酬を含む。方法は、複数の反復の各々において、各経験タプルについて、経験タプルの中の第2の観測結果についての状態値を決定するステップを含み、このステップは、方策ニューラルネットワークを使って、経験タプルの中の第1の観測結果を処理して、エージェントによって実行することができる可能性のあるアクションのセットの中の各アクションについてのそれぞれのアクションスコアを生成することと、アクションスコアに従って、可能性のあるアクションのセットから複数のアクションをサンプリングすることと、Qニューラルネットワークを使って第2の観測結果を処理して、各サンプリングされたアクションについてのそれぞれのQ値を生成することと、サンプリングされたアクションについてのQ値を使って、第2の観測結果についての状態値を決定することとを含む。方法は、複数の反復の各々において、経験タプルの中の第2の観測結果についての状態値を使って、QニューラルネットワークのQニューラルネットワークパラメータのセットの現在の値に対する更新を決定するステップをさらに含む。
【0008】
いくつかの実装形態では、アクション選択システムは、機械エージェント、たとえば、タスクを実行するために実世界環境と対話するロボットによって実行されるべきアクションを選択するのに使われる。たとえば、アクション選択システムは、実世界環境に関する観測結果を処理するのに使われてよく、選択されたアクションは、機械エージェントによって実行されるべきアクションに関連してよい。したがって、方法は、実世界環境を検知する1つまたは複数のセンサーデバイスからの観測結果、たとえば、機械エージェントの画像、距離、もしくは位置センサーから、またはアクチュエータからのセンサーデータを取得すること、およびタスクを実行するように機械エージェントを制御するためのアクションを選択するのにアクション選択システムを使って観測結果を処理することによって、実世界環境と対話しながら、タスクを実行するように機械エージェント、たとえば、ロボットを制御するのに、アクション選択ニューラルネットワークを使うステップをさらに含んでよい。
【0009】
いくつかの実装形態では、各経験タプルについて、サンプリングされたアクションについてのQ値を使って、第2の観測結果についての状態値を決定することは、第2の観測結果についての状態値を、サンプリングされたアクションについてのQ値の線形結合として決定することを含む。
【0010】
いくつかの実装形態では、第2の観測結果についての状態値を、サンプリングされたアクションについてのQ値の線形結合として決定することは、サンプリングされたアクションについてのQ値に基づいて温度係数を決定することと、各サンプリングされたアクションについてのそれぞれの修正されたQ値を、(i)サンプリングされたアクションについてのQ値と、(ii)温度係数の比として決定することと、修正されたQ値にソフトマックス関数を適用して、各サンプリングされたアクションについての重み係数を決定することと、第2の観測結果についての状態値を、サンプリングされたアクションについてのQ値の線形結合として決定することであって、各サンプリングされたアクションについてのQ値は、サンプリングされたアクションについての重み係数によってスケーリングされる、こととを含む。
【0011】
いくつかの実装形態では、第2の観測結果についての状態値は、
【数1】
と計算され、上式で、V
π(s)は第2の観測結果についての状態値であり、jは、サンプリングされたアクションをインデックス付けし、Mは、サンプリングされたアクションの数であり、w
jは、サンプリングされたアクションa
jについての重み係数であり、Q
φ'(a
j,s)は、サンプリングされたアクションa
jについてのQ値であり、各重み係数w
jは、
【数2】
と計算され、上式で、kは、サンプリングされたアクションをインデックス付けし、η
sは温度係数である。
【0012】
いくつかの実装形態では、サンプリングされたアクションについてのQ値に基づいて温度係数を決定することは、1つまたは複数の最適化反復の各々において、温度係数に対して双対関数の勾配を決定することであって、双対関数は、(i)温度係数、および(ii)サンプリングされたアクションについてのQ値に依存する、ことと、温度係数に対する双対関数の勾配を使って、温度係数の現在の値を調節することとを含む。
【0013】
いくつかの実装形態では、双対関数は、
【数3】
と計算され、上式で、g(η
s)は、温度係数η
sについて評価される双対関数であり、|B|は、経験タプルのバッチの中の経験タプルの数を記し、εは正則化パラメータであり、jは、サンプリングされたアクションをインデックス付けし、Mは、サンプリングされたアクションの数であり、Q
φ'(a
j,s)は、サンプリングされたアクションa
jについてのQ値である。
【0014】
いくつかの実装形態では、経験タプルの中の第2の観測結果についての状態値を使って、QニューラルネットワークのQニューラルネットワークパラメータのセットの現在の値に対する更新を決定することは、各経験タプルについて、Qニューラルネットワークを使って、経験タプルの中の第1の観測結果を処理して、経験タプルの中のアクションについてのQ値を生成することと、経験タプルの中の第2の観測結果についての状態値を使って、経験タプルの中のアクションについての目標Q値を決定することと、各経験タプルについて、(i)経験タプルの中のアクションについてのQ値と、(ii)経験タプルの中のアクションについての目標Q値との間の誤差を測定するQ目的関数の勾配を決定することと、勾配を使って、Qニューラルネットワークパラメータのセットの現在の値に対する更新を決定することとを含む。
【0015】
いくつかの実装形態では、経験タプルの中の第2の観測結果についての状態値を使って、経験タプルの中のアクションについての目標Q値を決定することは、(i)経験タプルの中の報酬、および(ii)割引係数と経験タプルの中の第2の観測結果についての状態値の積の合計として、目標Q値を決定することを含む。
【0016】
いくつかの実装形態では、(i)経験タプルの中のアクションについてのQ値と、(ii)経験タプルの中のアクションについての目標Q値との間の誤差は、(i)経験タプルの中のアクションについてのQ値と、(ii)経験タプルの中のアクションについての目標Q値との間の二乗誤差を含む。
【0017】
いくつかの実装形態では、Q目的関数は、
【数4】
と計算され、上式で、|B|は、経験タプルのバッチの中の経験タプルの数であり、各(s,a,r,s')は、経験タプルのバッチBの中の経験タプルであって、ここで、sは第1の観測結果であり、aはアクションであり、rは報酬であり、s'は第2の観測結果であり、γは割引係数であり、V
π(s')は、経験タプルの中の第2の観測結果についての状態値であり、Q
φ(a,s)は、経験タプルの中のアクションについてのQ値である。
【0018】
いくつかの実装形態では、方法は、複数の反復の各々において、方策ニューラルネットワークの方策ニューラルネットワークパラメータのセットの現在の値に対する更新を決定するステップであって、各経験タプルについて、Qニューラルネットワークを使って、経験タプルの中の第1の観測結果を処理して、経験タプルの中のアクションについてのQ値を生成することと、経験タプルの中の第1の観測結果についての状態値を決定することと、経験タプルについてのアドバンテージ値を、(i)経験タプルの中のアクションについてのQ値と、(ii)経験タプルの中の第1の観測結果についての状態値との間の差として決定することとを含む、ステップと、負でないアドバンテージ値を有する経験タプルのみに基づいて、方策ニューラルネットワークの方策ニューラルネットワークパラメータのセットの現在の値に対する更新を決定するステップとをさらに含む。
【0019】
いくつかの実装形態では、負でないアドバンテージ値を有する経験タプルのみに基づいて、方策ニューラルネットワークの方策ニューラルネットワークパラメータのセットの現在の値に対する更新を決定することは、負でないアドバンテージ値を有する経験タプルのみに依存する方策目的関数の勾配を決定することと、勾配を使って、方策ニューラルネットワークパラメータのセットの現在の値に対する更新を決定することとを含む。
【0020】
いくつかの実装形態では、負でないアドバンテージ値を有する各経験タプルについて、方策目的関数は、方策ニューラルネットワークを使って、経験タプルの中の第1の観測結果を処理することによって生成される経験タプルの中のアクションについてのアクションスコアに依存する。
【0021】
いくつかの実装形態では、方策目的関数は、
【数5】
と計算され、上式で、|B|は、経験タプルのバッチの中の経験タプルの数であり、各(s,a,r)は、経験タプルのバッチBの中の経験タプルであって、ここで、sは第1の観測結果であり、aはアクションであり、rは報酬であり、II[・]はインジケータ関数であり、A
π(a,s)は経験タプルについてのアドバンテージ値であり、π
θ(a|s)は、方策ニューラルネットワークを使って、経験タプルの中の第1の観測結果を処理することによって生成される経験タプルの中のアクションについてのアクションスコアである。
【0022】
いくつかの実装形態では、方法は、複数の反復のうちの1つまたは複数の各々において、アクション選択システム、エキスパートアクション選択方策、または両方を使って、複数の新たな経験タプルを生成するステップと、リプレイバッファに新たな経験タプルを追加するステップとをさらに含む。
【0023】
いくつかの実装形態では、複数の新たな経験タプルを生成することは、1つまたは複数の時間ステップの各々において、時間ステップについての現在の観測結果を受信することと、アクション選択システムまたはエキスパートアクション選択方策を使って、時間ステップにおいて、エージェントによって実行されるべきアクションを選択することと、選択されたアクションをエージェントが実行したことから生じる次の観測結果および報酬を受信することと、現在の観測結果、選択されたアクション、次の観測結果、および報酬を含む新たな経験タプルを生成することとを含む。
【0024】
いくつかの実装形態では、アクション選択システムまたはエキスパートアクション選択方策を使って、時間ステップにおいてエージェントによって実行されるべきアクションを選択することは、時間ステップにおいてエージェントによって実行されるべきアクションを選択するために、アクション選択システムまたはエキスパートアクション選択方策を使うことの間で確率的に選択をすることを含む。
【0025】
いくつかの実装形態では、アクション選択システムを使って、時間ステップにおいてエージェントによって実行されるべきアクションを選択することは、方策ニューラルネットワークを使って、時間ステップに対する現在の観測結果を処理して、可能性のあるアクションのセットの中の各アクションについてのそれぞれのアクションスコアを生成することと、Qニューラルネットワークを使って、時間ステップに対する現在の観測結果を処理して、可能性のあるアクションのセットの中の各アクションについてのそれぞれのQ値を生成することと、(i)アクションについてのアクションスコア、および(ii)アクションについてのQ値に基づいて、各アクションについての最終アクションスコアを決定することと、最終アクションスコアに従って、エージェントによって実行されるべきアクションを選択することとを含む。
【0026】
いくつかの実装形態では、アクションについての最終アクションスコアは、
【数6】
と計算され、上式で、π(a|s)は、アクションについてのアクションスコアであり、Q(s,a)は、アクションについてのQ値であり、η
sは温度パラメータである。
【0027】
いくつかの実装形態では、エージェントは、実世界環境と対話するロボットエージェントであり、エキスパートアクション選択方策は、中間地点追跡コントローラを組織することによって生成される。
【0028】
別の態様によると、1つまたは複数のコンピュータと、1つまたは複数のコンピュータに通信可能に結合された1つまたは複数の記憶デバイスとを備えるシステムが提供され、1つまたは複数の記憶デバイスは命令を記憶し、命令は、1つまたは複数のコンピュータによって実行されると、1つまたは複数のコンピュータに、本明細書に記載する技法の動作を実行させる。
【0029】
別の態様によると、命令を記憶する1つまたは複数の非一時的コンピュータ記憶媒体が提供され、命令は、1つまたは複数のコンピュータによって実行されると、1つまたは複数のコンピュータに、本明細書に記載する技法の動作を実行させる。
【0030】
本明細書に記載する本主題の特定の実施形態は、以下の利点のうちの1つまたは複数を実現するように実装され得る。
【0031】
本明細書に記載するトレーニングシステムは、エージェントと環境の以前の対話を特徴づける方策オンおよび方策オフ経験タプルの両方を使って、環境と対話するエージェントを制御するのに使われるアクション選択システムをトレーニングすることができる。特に、トレーニングシステムは、たとえば、タスクを実行することに関連するアクションを選択する、アクション選択システムによって生成される方策オン「探査」経験タプルと、エキスパートアクション選択方策によって生成される方策オフ「エキスパート」経験タプルとを含む混合トレーニングデータを使って、アクション選択システムをトレーニングすることができる。本明細書に記載する技法の特定の利点は、準最適エキスパートアクション選択方策、すなわち、高度に方策オフである、タスクの一部にのみ関連するアクションを選択するものから利益を受けることができ、それらを、方法を使うことによって取得される、エージェントと環境の対話を特徴づける方策オン「探査」データと効果的に組み合わせることができることである。実世界環境と対話するロボットエージェントのコンテキストでは、エキスパートアクション選択方策は、中間地点追跡コントローラの(準最適)エキスパートアクション選択方策を組織することによって生成することができる。混合トレーニングデータ(たとえば、方策オントレーニングデータ単独ではなく)でトレーニングされることで、アクション選択システムは、より迅速に(たとえば、より少ないトレーニング反復にわたって)トレーニングされ、より優れた性能を(たとえば、エージェントがタスクをより効果的に実行することを可能にすることによって)達成することが可能になる。アクション選択システムをより迅速にトレーニングすることによって、トレーニングシステムは、いくつかの従来のトレーニングシステムよりも少ない計算リソース(たとえば、メモリおよび計算能力)をトレーニング中に消費することが可能である。
【0032】
本明細書に記載するトレーニングシステムは、方策ニューラルネットワークを使って重点サンプリングによって決定される状態値を使って、エージェントと環境の対話を表す経験タプルで、Qニューラルネットワークをトレーニングすることができる。たとえば、観測結果についての状態値を決定するために、トレーニングシステムは、方策ニューラルネットワークを使って、先行する観測結果を処理して、可能性のあるアクションのセットにわたるスコア分散を生成し、スコア分散に従って複数のアクションをサンプリングし、サンプリングされたアクションについてのQ値を組み合わせることによって状態値を決定することができる。方策ニューラルネットワークを使って重点サンプリングによって決定された状態値を使ってQニューラルネットワークをトレーニングすることで、Qネットワークのトレーニングを正則化し、加速することができ、したがって、トレーニングシステムによる計算リソースの消費を削減する。
【0033】
本明細書に記載するトレーニングシステムは、エージェントと環境の以前の対話を表す経験タプルで、方策ニューラルネットワークをトレーニングすることができ、ここでエージェントは、厳選されたアクション、たとえば、負でないアドバンテージ値に関連付けられたアクションを実行した。所与のアクションについてのアドバンテージ値は、所与のアクションを実行することによって受け取られるリターン(たとえば、報酬の累積測度)と、平均的(たとえば、ランダムに選択された)アクションを実行することによって受け取られるリターンとの間の差を特徴づけることができる。環境との効果的なエージェント対話を表す経験タプルで方策ニューラルネットワークをトレーニングすることで、アクション選択システムのトレーニングを加速し(したがって、トレーニング中の計算リソースの消費を削減する)、トレーニングされたアクション選択システムの性能を向上させることができる。
【0034】
本明細書の主題の1つまたは複数の実施形態の詳細は、添付の図面および以下の説明に記載される。本主題の他の特徴、態様および利点は、説明、図面および特許請求の範囲から明らかになるであろう。
【図面の簡単な説明】
【0035】
【
図1】例示的アクション選択システムのブロック図である。
【
図2】例示的トレーニングシステムのブロック図である。
【
図3】相対エントロピーQ学習を使ってアクション選択システムをトレーニングするための例示的プロセスの流れ図である。
【
図4】観測結果の状態値を決定するための例示的プロセスの流れ図である。
【
図5】Qネットワークパラメータの現在の値を更新するための例示的プロセスの流れ図である。
【
図6】方策ネットワークパラメータの現在の値を更新するための例示的プロセスの流れ図である。
【
図7】環境と対話するためにエージェントによって実行されるべきアクションを選択するのにアクション選択システムを使うための例示的プロセスの流れ図である。
【発明を実施するための形態】
【0036】
様々な図面における同様の参照番号および名称は、同様の要素を示す。
【0037】
図1は、例示的アクション選択システム100を示す。アクション選択システム100は、以下で説明するシステム、構成要素、および技法が実装される、1つまたは複数のロケーションにある1つまたは複数のコンピュータ上でコンピュータプログラムとして実装されるシステムの例である。
【0038】
システム100は、目標を遂行するために複数の時間ステップの各々において環境116と対話するエージェント114によって実行されるべきアクション112を選択する。各時間ステップにおいて、システム100は、環境116の現在の状態を特徴づけるデータ、たとえば、環境116の画像を受信し、受信されたデータに応答して、エージェント114によって実行されるべきアクション112を選択する。環境116の状態を特徴づけるデータは本明細書では、観測結果120と呼ばれる。各時間ステップにおいて、時間ステップにおける環境116の状態(観測結果120によって特徴づけられる)は、前の時間ステップにおける環境116の状態と、前の時間ステップにおいてエージェント114によって実行されるアクション112とに依存する。
【0039】
各時間ステップにおいて、システム100は、その時間ステップにおける、環境116の現在の状態およびエージェント114のアクション112に基づいて、報酬118を受け取ることができる。概して、報酬118は、数値で表すことができる。報酬118は、環境116中のどのイベントまたは環境の態様に基づいてもよい。たとえば、報酬118は、エージェント114が目標を遂行した(たとえば、環境116中の目標ロケーションへナビゲートし、もしくはタスクを完了する)かどうか、または目標、たとえばタスクを遂行する方向へのエージェント114の進行を示すことができる。
【0040】
いくつかの実装形態では、環境は実世界環境であり、エージェントは実世界環境と対話する、たとえば、実世界環境内で(環境の中での並進および/もしくは回転、ならびに/またはその構成を変えることによって)動く、ならびに/あるいは実世界環境を修正する機械エージェントである。たとえば、エージェントは、たとえば、環境の中の対象のオブジェクトを突き止めるために、対象のオブジェクトを、環境の中の指定されたロケーションに動かすために、環境の中の対象のオブジェクトを物理的に操作するために、もしくは環境の中の指定された目的地にナビゲートするために、環境と対話するロボットであってよく、またはエージェントは、環境の中の指定された目的地に向かって環境の中をナビゲートする、自律もしくは半自律的陸上、航空、もしくは海上輸送手段であってよい。
【0041】
これらの実装形態では、観測結果は、たとえば、エージェントが環境と対話すると観測結果を取り込むための、画像、オブジェクト位置データ、およびセンサーデータ、たとえば画像、距離、もしくは位置センサーから、またはアクチュエータからのセンサーデータのうちの1つまたは複数を含み得る。
【0042】
たとえば、ロボットのケースでは、観測結果は、ロボットの現在の状態を特徴づけるデータ、たとえば、関節位置、関節速度、関節力、トルクまたは加速度、たとえば、重力補償トルクフィードバック、およびロボットによってとられる、部材の大域または相対姿勢のうちの1つまたは複数を含み得る。
【0043】
ロボットまたは他の機械エージェントまたは輸送手段のケースでは、観測結果は、同様に、位置、線形または角速度、力、トルクまたは加速度、およびエージェントの1つまたは複数の部分の大域または相対姿勢のうちの1つまたは複数を含み得る。観測結果は、1、2または3次元で定義されてよく、絶対および/または相対的観測結果であってよい。
【0044】
観測結果は、たとえば、実世界環境を検知する1つまたは複数のセンサーデバイスによって取得されたデータ、たとえば、モータ電流もしくは温度信号など、検知された電子信号、および/または、たとえばカメラもしくはLIDARセンサーからの画像もしくはビデオデータ、たとえば、エージェントのセンサーからのデータもしくは環境中でエージェントとは別個に置かれたセンサーからのデータも含み得る。
【0045】
電子エージェントのケースでは、観測結果は、電流、電圧、電力、温度など、施設もしくはサービス設備の部分を監視する1つもしくは複数のセンサー、および他のセンサーからのデータならびに/または機器の電子および/もしくは機械的部材が機能していることを表す電子信号を含み得る。
【0046】
アクションは、ロボットを、たとえば、ロボットの関節についてのトルクを制御するための制御入力もしくは高度制御コマンド、または自律もしくは半自律的陸上、空中、もしくは輸送手段、たとえば、輸送手段の制御面または他の制御要素へのトルクもしくは高度制御コマンドであってよい。
【0047】
言い換えると、アクションは、たとえば、ロボットの1つもしくは複数の関節または別の機械エージェントの部品についての位置、速度、または力/トルク/加速度データを含み得る。アクションは、追加または代替として、モータ制御データなどの電子制御データ、またはより全般的には、環境の観測される状態に対してその制御が影響を有する環境内の1つもしくは複数の電子デバイスを制御するためのデータを含み得る。たとえば、自律または半自律的陸上、空中または海洋輸送手段のケースでは、アクションは、航行、たとえばステアリング、ならびに動き、たとえば、輸送手段の制動および/または加速度を制御するためのアクションを含み得る。
【0048】
いくつかの実装形態では、環境は、シミュレートされた環境であり、エージェントは、シミュレートされた環境と対話する1つまたは複数のコンピュータとして実装される。
【0049】
たとえば、シミュレートされた環境は、ロボットまたは輸送手段のシミュレーションであってよく、アクション選択ネットワークはそのシミュレーションでトレーニングされてよい。たとえば、シミュレートされた環境は、運動シミュレーション環境、たとえば、運転シミュレーションまたはフライトシミュレーションであってよく、エージェントは、運動シミュレーションを通して航行する、シミュレートされた輸送手段であってよい。これらの実装形態では、アクションは、シミュレートされたユーザまたはシミュレートされた輸送手段を制御するための制御入力であってよい。
【0050】
別の例では、シミュレートされた環境はビデオゲームであってよく、エージェントは、そのビデオゲームをする、シミュレートされたユーザであってよい。
【0051】
さらなる例では、環境は、タンパク質フォールディング環境であってよく、そうであることによって、各状態は、タンパク鎖のそれぞれの状態であり、エージェントは、どのようにタンパク鎖を折り畳むかを決定するためのコンピュータシステムである。この例では、アクションは、タンパク鎖を折り畳むための、可能な折り畳みアクションであり、達成されるべき結果は、たとえば、タンパク質が安定するように、および特定の生物学的機能を遂行するようにタンパク質を折り畳むことを含み得る。別の例として、エージェントは、人間対話なしで自動的にシステムによって選択されたタンパク質折り畳みアクションを実行または制御する機械エージェントであってよい。観測結果は、タンパク質の状態の直接もしくは間接的観測結果を含んでよく、かつ/またはシミュレーションから導出されてよい。
【0052】
概して、シミュレートされた環境のケースでは、観測結果は、前に記述された観測結果または観測結果タイプのうちの1つまたは複数の、シミュレートされたバージョンを含んでよく、アクションは、前に記述されたアクションまたはアクションタイプのうちの1つまたは複数の、シミュレートされたバージョンを含み得る。
【0053】
シミュレートされた環境の中でエージェントをトレーニングすると、エージェントは、大量のシミュレートされたトレーニングデータから学習することが可能になり得ると同時に、実世界環境の中でエージェントをトレーニングすることに関連した危険、たとえば、間違って選ばれたアクションを実行することによる、エージェントに対する損害が避けられる。シミュレートされた環境の中でトレーニングされたエージェントはその後、実世界環境の中で展開されてよい。つまり、アクション選択システム100は、シミュレートされた環境とのエージェント対話を表す経験タプルでトレーニングされてよい。シミュレートされた環境とのエージェント対話を表す経験タプルでトレーニングされた後、アクション選択システム100は、実世界環境と対話する実世界エージェントを制御するのに使われ得る。
【0054】
いくつかの他のアプリケーションでは、エージェントは、機器の部材を含む現実世界環境における、たとえば、データセンタにおける、グリッド引き込み電力/もしくは水分配システムにおける、または製造施設もしくはサービス設備におけるアクションを制御することができる。その場合、観測結果は、設備の施設の動作に関し得る。たとえば観測結果は、機器による電力もしくは水使用の観測結果、または電力生成もしくは分配制御の観測結果、またはリソースの使用の、もしくは廃棄物産出の観測結果を含み得る。エージェントは、たとえば、リソース使用を削減することによって、効率を上げ、かつ/または、たとえば廃棄物を削減することによって環境中での動作の環境影響を削減するために、環境の中でのアクションを制御することができる。アクションは、施設/設備の機器の部材に対する動作条件を制御するか、もしくは条件を課すアクション、および/または、たとえば、施設/設備の構成要素を調節もしくはオン/オフにするための、施設/設備の動作の設定への変更をもたらすアクションを含み得る。
【0055】
任意選択で、上記実装形態のいずれかにおいて、任意の所与の時間ステップにおける観測結果は、環境を特徴づける際に有益であり得る、前の時間ステップからのデータ、たとえば、前の時間ステップにおいて実行されたアクションを含み得る。
【0056】
アクション選択システム100は、Qニューラルネットワーク104および方策ニューラルネットワーク106を使って時間ステップに対する現在の観測結果120を処理することによって、各時間ステップにおいて、環境116中でエージェント114によってとられるべきアクション112を選択する。
【0057】
Qニューラルネットワーク104は、エージェントによって実行することができる可能性のあるアクションのセットの中の各アクションについてのそれぞれのQ値108を生成するために、現在の観測結果120を含む入力を処理する。所与のアクションについてのQ値は、エージェントが、現在の観測結果によって表される状態でスタートし、現在の観測結果に応答して所与のアクションを実行した場合、時間ステップのシーケンスにわたって受信されるであろう報酬の累積測度(たとえば、報酬の時間割引された合計)の推定値である。
【0058】
方策ネットワーク106は、現在の観測結果120を処理して、アクションスコア110のセットを生成する。方策ネットワーク106は、可能性のあるアクションのセットの中の各アクションについてのそれぞれのアクションスコアを生成することができる。
【0059】
アクション選択システム100は、Q値108およびアクションスコア110に従って、時間ステップにおいてエージェントによって実行されるべきアクションを選択する。たとえば、アクション選択システム100は、Q値108とアクションスコア110を組み合わせて、各可能性のあるアクションについてのそれぞれの「最終」アクションスコアを生成し、次いで、最終アクションスコアを使って、エージェントによって実行されるべきアクションを選択することができる。Qニューラルネットワーク104および方策ニューラルネットワーク106を使って、エージェントによって実行されるべきアクションを選択するための例示的プロセスについては、
図7を参照してより詳しく記載する。
【0060】
アクション選択システム100は、たとえば、トレーニングシステム200によってトレーニングされ得る。トレーニングシステム200は、トレーニングデータを記憶するリプレイバッファ102を使って、アクション選択システム100をトレーニングすることができる。リプレイバッファ102に記憶されるトレーニングデータは、たとえば、エージェントと環境の対話を特徴づける経験タプルであってよい。リプレイバッファ102の中の各経験タプルは、環境の初期状態を特徴づける第1の観測結果、環境と対話するためにエージェントによってとられるアクション(たとえば、アクション112)、エージェントによってアクションがとられた後の環境の状態を特徴づける第2の観測結果(たとえば、観測結果120)、および対応する報酬(たとえば、報酬118)を含み得る。
【0061】
トレーニングシステム200は、複数の反復の各々において、Qニューラルネットワーク104、および任意選択で、方策ニューラルネットワーク106のネットワークパラメータ値を更新することによって、アクション選択システム100をトレーニングすることができる。トレーニングシステム200は、リプレイバッファ102から経験タプルのバッチをサンプリングすること、およびサンプリングされた経験タプルでQニューラルネットワークおよび方策ニューラルネットワークをトレーニングすることによって、Qニューラルネットワークおよび方策ニューラルネットワークのネットワークパラメータ値を各反復において更新することができる。アクション選択システムをトレーニングするための例示的プロセスについては、
図2を参照してより詳しく記載する。
【0062】
図2は、例示的トレーニングシステム200を示す。トレーニングシステム200は、以下で説明するシステム、構成要素、および技法が実装される、1つまたは複数のロケーションにある1つまたは複数のコンピュータ上でコンピュータプログラムとして実装されるシステムの例である。
【0063】
トレーニングシステム200は、Qネットワーク106、および任意選択で、タスクを実行するために環境中で対話するエージェントを制御するのに使われる方策ニューラルネットワーク104をトレーニングする。トレーニングシステム200は、一連の反復の各々において、Qネットワークパラメータおよび方策ニューラルネットワークパラメータの現在の値を更新することによって、アクション選択システムのQネットワーク106および方策ニューラルネットワーク104をトレーニングする。
【0064】
各反復において、トレーニングシステム200は、リプレイバッファ102から経験タプル204のバッチ(セット)をサンプリングする。各経験タプルは、環境の第1の観測結果、環境の第1の観測結果に応答してエージェントによってとられるアクション、アクションがとられた後の環境の第2の観測結果、およびアクションをとったことに対する報酬を含む。たとえば、システムは、リプレイバッファ102から、経験タプルのバッチをランダムにサンプリングすることができる。
【0065】
各反復において、および経験タプル204のバッチの中の各経験タプルについて、トレーニングシステム200は、方策ネットワーク106を使って、経験タプルからの第1の観測結果を処理して、エージェントによってとることができる可能性のあるアクションのセットの中の各アクションについてのアクションスコア110のそれぞれのセットを生成する。
【0066】
各反復において、および経験タプル204のバッチの中の各経験タプルについて、トレーニングシステム200は、アクションスコアに従って、可能性のあるアクションのセットから複数のアクションをサンプリングする。トレーニングシステム200は、各第1の観測結果についてのアクションスコアに従ってM個のアクションをサンプリングするのに、サンプリングエンジン212を使うことができ、ここでM>2は正の整数である。たとえば、サンプリングエンジン212は、可能性のあるアクションのセットにわたって確率分布を取得するためにアクションスコアを(たとえば、ソフトマックス関数を使って)処理し、次いで、可能性のあるアクションのセットにわたる確率分布からM個のアクションを個別にサンプリングすることができる。
【0067】
各反復において、および経験タプル204のバッチの中の各経験タプルについて、トレーニングシステム200は、Qネットワーク106を使って第2の観測結果を処理して、各サンプリングされたアクションについてのそれぞれのQ値、たとえば、Q値220を生成する。たとえば、Qネットワーク106は、経験タプルからの第2の観測結果を処理して、可能性のあるアクションのセットの中の各アクションについてのそれぞれのQ値を生成することができ、サンプリングされたアクションに対応するQ値は、生成されたQ値から決定され得る。
【0068】
各反復において、および経験タプル204のバッチの中の各経験タプルについて、トレーニングシステム200は、状態値エンジン222を使って、第2の観測結果についてのそれぞれの状態値を生成する。状態についての状態値は、たとえば、エージェントがその状態でスタートした場合に連続ステップにわたってエージェントによって受信されるであろう報酬の累積測度(たとえば、報酬の時間割引された合計)についての推定値を表すことができる。状態値エンジン222は、それぞれのQ値を処理して、第2の観測結果についてのそれぞれの状態値を決定することができる。たとえば、状態値エンジン222は、
図3を参照して以下でさらに詳しく論じるように、状態値をQ値の線形結合として決定することができる。
【0069】
各反復において、トレーニングシステム200は、更新エンジン226を使って、Qネットワーク106のQネットワークパラメータ228の現在の値を更新する。更新エンジン226は、たとえば、状態値224に依存するQ目的関数の勾配を使って、状態値224を処理して、Qネットワークパラメータ228の現在の値に対する更新を生成する。Qネットワークパラメータの現在の値を更新するための例示的プロセスについては、
図4を参照してより詳しく記載する。
【0070】
任意選択で、各反復において、トレーニングシステム200は、方策ニューラルネットワークの現在の値を更新することができる。たとえば、トレーニングシステムは、たとえば、
図6に記載するように、方策目的関数の勾配を使って方策ニューラルネットワークパラメータ値を更新することができる。方策ニューラルネットワークパラメータの値を更新することで、Qニューラルネットワークのトレーニングを容易にし、正則化することができる。
【0071】
図3は、相対エントロピーQ学習を使ってアクション選択システムをトレーニングするための例示的プロセスの流れ図である。便宜上、プロセス300は、1つまたは複数のロケーションにある1つまたは複数のコンピュータからなるシステムによって実行されるものとして記載される。たとえば、本明細書に従って適切にプログラムされたトレーニングシステム、たとえば、
図2のトレーニングシステム200が、プロセス300を実行することができる。
【0072】
トレーニングに先立って、システムは、方策ニューラルネットワークおよびQニューラルネットワークのネットワークパラメータ値を、どの適切なやり方でも初期化してもよい。たとえば、システムは、方策ニューラルネットワークおよびQニューラルネットワークのネットワークパラメータ値をランダムに初期化することができる。
【0073】
各反復(すなわち、複数のトレーニング反復の)において、システムは、リプレイバッファから経験タプルのバッチを取得し、各経験タプルは、(1)第1の観測結果、(2)エージェントによって実行されたアクション、(3)得られた第2の観測結果、および(4)対応する報酬を含む(302)。たとえば、システムは、経験タプルのバッチをランダムにサンプリングして、複数の反復にわたる、リプレイバッファの代表的サンプリングを提供することができる。リプレイバッファ中の各経験タプルは、たとえば、
図7を参照して記載するように、エージェントがアクション選択システムによって制御されたとき、またはエージェントがエキスパートアクション選択方策によって制御されたときの、エージェントと環境の以前の対話を表し得る。
【0074】
各反復において、および各経験タプルについて、システムは、方策ニューラルネットワークを使って、経験タプルの中の第1の観測結果を処理することによって、アクションスコアを生成する(304)。システムは、第1の観測結果sによって与えられる、アクションの可能セットの中の各アクションについてのそれぞれのアクションスコアを生成する。いくつかの実装形態では、システムは、目標方策ニューラルネットワークパラメータのセットおよび現在の方策ネットワークパラメータのセットを維持することができる。システムは、これらのアクションスコアを、目標方策ニューラルネットワーク値を使って生成することができる。システムは、
図5を参照してさらに詳しく論じるように、現在の方策ニューラルネットワークパラメータ値を各反復において更新することができる。システムは、目標方策ニューラルネットワークパラメータを現在の方策ニューラルネットワークパラメータ値に、U回の反復ごとに更新することができ、ここでUは正の整数である。現在の方策ニューラルネットワーク値に値が定期的に更新される目標方策ネットワークパラメータの個別セットを維持することで、トレーニングを安定させ、正則化することができる。
【0075】
方策ニューラルネットワークは、記述された関数を実行すること、すなわち、環境の観測結果を処理して可能性のあるアクションのセットの中の各アクションについてのそれぞれのアクションスコアを生成することを可能にする、どの適切なニューラルネットワークアーキテクチャを有してもよい。特に、方策ニューラルネットワークは、任意の適切なタイプのニューラルネットワークレイヤ(たとえば、完全接続レイヤ、注意レイヤ、畳み込みレイヤなど)を任意の適切な数(たとえば、1つのレイヤ、5つのレイヤ、または25個のレイヤ)で含み、任意の適切な構成で(たとえば、レイヤの線形シーケンスとして)接続されてよい。特定の例では、方策ニューラルネットワークは、畳み込みニューラルネットワークレイヤのシーケンスと、それに続く完全接続レイヤを含んでよく、完全接続レイヤは、可能性のあるアクションのセットの中の各アクションに対応するそれぞれのニューロンを含む。
【0076】
各反復において、および各経験タプルについて、システムは、アクションスコアに従って複数のアクションをサンプリングする(306)。システムは、アクションスコアに従って、経験タプルについてM個のアクションをサンプリングすることができ、M>2は正の整数である。たとえば、システムは、可能性のあるアクションのセットにわたって確率分布を取得するためにアクションスコアを(たとえば、ソフトマックス関数を使って)処理し、次いで、可能性のあるアクションのセットにわたる確率分布からM個のアクションを個別にサンプリングすることができる。
【0077】
各反復において、および各経験タプルについて、システムは、環境の状態の第2の観測結果を処理することによって、各サンプリングされたアクションについてのそれぞれのQ値を生成する(308)。システムは、それぞれのQ値を、Qニューラルネットワークを使って生成することができる。システムは、状態の第2の観測結果を処理して、可能性のあるアクションのセットについてのそれぞれのアクションスコアを生成し、サンプリングされたアクションを、Qネットワークを使って生成された適切なアクションスコアと突き合わせればよい。いくつかの実装形態では、システムは、目標Qニューラルネットワークパラメータのセットおよび現在のQニューラルネットワークパラメータのセットを維持することができる。システムは、これらのQ値を、目標Qニューラルネットワーク値を使って生成することができる。システムは、
図4を参照してさらに詳しく論じるように、現在のQネットワークパラメータ値を各反復において更新することができる。システムは、目標Qニューラルネットワークパラメータ値を現在のQニューラルネットワークパラメータ値に、V回の反復ごとに更新することができ、ここでVは正の整数である。現在のQニューラルネットワーク値に値が定期的に更新される目標Qニューラルネットワークパラメータの個別セットを維持することで、トレーニングを安定させ、正則化することができる。
【0078】
Qニューラルネットワークは、記述された関数を実行すること、すなわち、環境の状態の観測結果を処理して可能性のあるアクションのセットの中の各アクションについてのそれぞれのQ値を生成することを可能にする、どの適切なニューラルネットワークアーキテクチャを有してもよい。特に、Qニューラルネットワークは、任意の適切なタイプのニューラルネットワークレイヤ(たとえば、完全接続レイヤ、注意レイヤ、畳み込みレイヤなど)を任意の適切な数(たとえば、1つのレイヤ、5つのレイヤ、または25個のレイヤ)で含み、任意の適切な構成で(たとえば、レイヤの線形シーケンスとして)接続されてよい。特定の例では、Qニューラルネットワークは、畳み込みニューラルネットワークレイヤのシーケンスと、それに続く完全接続レイヤを含んでよく、完全接続レイヤは、可能性のあるアクションのセットの中の各アクションに対応するそれぞれのニューロンを含む。
【0079】
各反復において、および各経験タプルについて、システムは、対応するQ値を使って、第2の観測結果についての状態値を決定する(310)。システムは、状態値関数を使って、第2の観測結果についてのそれぞれの状態値を決定することができる。たとえば、状態値関数は、
図4を参照してさらに詳しく論じるように、第2の観測結果のそれぞれの状態値を、対応するQ値の線形結合として決定することができる。
【0080】
各反復において、システムは、状態値を使って、現在のQネットワークパラメータ値に対する更新を決定する(312)。システムは、Q目的関数の勾配を決定することによって、現在のQネットワークパラメータ値に対する更新を生成することができる。たとえば、各経験タプルについて、Q目的関数は、
図5においてさらに詳しく論じるように、状態値に基づいて、経験タプルの中のアクションのQ値と、目標Q値との間の誤差を測定することができる。
【0081】
任意選択で、各反復において、システムは、現在の方策ニューラルネットワークパラメータ値に対する更新を決定することができる(314)。方策ニューラルネットワークパラメータを更新することで、システムが、Qニューラルネットワークパラメータ値をより良好にトレーニングし、正則化することが可能になり得る。たとえば、システムは、
図6においてさらに詳しく論じるように、方策目的関数の勾配を使って更新を決定することができる。
【0082】
各反復において、システムは、トレーニングのための終了基準が満たされているかどうかを決定する(316)。終了基準が満たされていない場合、トレーニングはステップ302にループバックする。たとえば、終了基準は、システムが、あらかじめ定義された回数の反復を実行することを含み得る。システムが、あらかじめ定義された回数の反復を実行すると、システムはトレーニングを終了することができる。
【0083】
終了基準が満たされているとシステムが決定した場合、システムはトレーニングループを終了する(318)。
【0084】
図4は、経験タプルの中の第2の観測結果の状態値を決定するための例示的プロセスの流れ図である。便宜上、プロセス400は、1つまたは複数のロケーションにある1つまたは複数のコンピュータからなるシステムによって実行されるものとして記載される。たとえば、本明細書に従って適切にプログラムされた状態値エンジン、たとえば、
図2の状態値エンジン222が、プロセス400を実行することができる。
【0085】
システムは、各トレーニング反復中に、たとえば、
図3に記載するトレーニングプロセスのステップ310中に、プロセス400を実行する。
【0086】
システムは、第2の観測結果を含む特定の経験タプルに対応する、サンプリングされたアクションのそれぞれのQ値を受信する(402)。Q値は、たとえば、
図3のステップ308に記載するように、Qネットワークを使って生成することができる。
【0087】
システムは、Q値に基づいて温度係数(temperature factor)を生成する(404)。温度係数は、最初に初期化され、次いで、温度係数の(ラグランジュ)双対関数の勾配を使って更新され得る。たとえば、温度係数は、
【数7】
として初期化することができ、上式で、|B|は経験タプルのバッチの中の経験タプルの数であり、nは経験タプルをインデックス付けし、Mはアクションサンプルの数であり、mはアクションサンプルをインデックス付けし、Q
φ'(a
nm,s)は状態とアクションのペアのQ値を表し、sは状態の観測結果(ここでは、第2の観測結果)を表し、a
mnは、第nの経験タプルに対する第mのサンプリングされたアクションを表し、σ
M(.)は、M個のサンプリングされたアクションにわたる標準偏差を表す。システムは次いで、特定の経験タプルに対して勾配降下の複数のステップを使って(たとえば、ADAMなど、任意の適切な勾配降下方法を使って)、温度係数の双対関数を、
【数8】
として最適化することができ、上式で、g(η
s)は、温度係数η
sに対する双対関数であり、|B|は経験タプルのバッチの中の経験タプルの数を表し、εは正則化パラメータを表し、jは、サンプリングされたアクションをインデックス付けし、Mは、サンプリングされたアクションの数を表し、Q
φ'(a
j,s)は、サンプリングされたアクションa
jについてのQ値である。
【0088】
システムは、Q値および温度係数に基づいて、各Q値についてのそれぞれの重み係数を生成する(406)。それぞれの重み係数は、Q値およびそれぞれの温度係数の関数であってよい。たとえば、サンプリングされたアクションa
jについてのそれぞれの重み係数は、
【数9】
と決定されてよく、上式で、w
jは重み係数を表し、jおよびkは、サンプリングされたアクションをインデックス付けし、η
sは温度係数を表し、Q
φ'(a
j,s)は、サンプリングされたアクションa
jについてのQ値を表す。
【0089】
システムは、それぞれの重み係数を使って、状態値をQ値の線形結合として決定する(408)。たとえば、状態値を決定することは、
【数10】
と表すことができ、上式で、V
π(s)は、方策πの下での観測結果sの状態値を表し、jは、サンプリングされたアクションをインデックス付けし、w
jは重み係数を表し、Q
φ'(a
j,s)はQ値を表す。
【0090】
図5は、Qネットワークパラメータの現在の値を更新するための例示的プロセスの流れ図である。便宜上、プロセス500は、1つまたは複数のロケーションにある1つまたは複数のコンピュータからなるシステムによって実行されるものとして記載される。たとえば、本明細書に従って適切にプログラムされた更新エンジン、たとえば、
図2の更新エンジン226が、プロセス500を実行することができる。
【0091】
システムは、各トレーニング反復において、たとえば、
図3のステップ312中に、プロセス500を実行する。便宜上、システムは、「現在の」反復においてステップ502~508を実行すると言われる。
【0092】
システムは、現在の反復に対して、経験タプルのバッチ、および経験タプルの中の第2の観測結果についてのそれぞれの状態値を受信する(502)。経験タプルは各々、環境の第1の観測結果、エージェントによってとられるアクション、アクションがとられた後の環境の第2の観測結果、および対応する報酬を含む。
【0093】
各経験タプルについて、システムは、Qネットワークを使って、経験タプルの中の第1の観測結果を処理して、経験タプルの中のアクションについてのQ値を生成する(504)。
【0094】
各経験タプルについて、システムは、第2の観測結果についての状態値を使って、経験タプルの中のアクションについての目標Q値を決定する(506)。システムは、第2の観測結果についての状態値および報酬に基づいて、目標Q値を決定することができる。たとえば、システムは、目標Q値を、
Q*(r,s')=r+γVπ(s') (5)
と決定することができ、上式で、rは報酬を表し、s'は第2の観測結果を表し、γは割引係数(たとえば1未満の、たとえば、正の浮動小数点値として表される)であり、Vπ(s')は第2の観測結果の状態値を表す。
【0095】
システムは、各経験タプルについて、(1)経験タプルの中のアクションについてのQ値と、(2)経験タプルの中のアクションについての目標Q値との間の誤差を測定するQ目的関数の勾配を使って、Qネットワークパラメータのセットの現在の値を更新する(508)。システムは、運動量ありもしくはなしの確率的勾配降下、またはADAMなど、どの適切な方法を使っても、Qネットワークパラメータの現在の値を更新することができる。たとえば、システムは、
【数11】
として表される二乗誤差Q目的関数を使って、現在のQネットワークパラメータ値を更新することができ、上式で、Bは経験タプルのバッチを表し、|B|は経験タプルのバッチの中の経験タプルの数を記し、(s,a,r,s')は、第1の観測結果s、アクションa、報酬r、および第2の観測結果s'をもつ経験タプルを表し、Q'(r,s')は目標Q値を表し、Q
φ(a,s)は、アクションについてのQ値を表す。
【0096】
いくつかの実装形態では、システムは、目標Qニューラルネットワークパラメータ値のセットおよび現在のQニューラルネットワークパラメータ値のセットを維持する。システムは、Qニューラルネットワークパラメータ値の現在のセットを使ってQ値を、および目標Qニューラルネットワーク値を使って目標Q値を生成することができる。システムは、式6を使って、現在のQネットワークパラメータ値を各反復において更新することができる。Uが正の整数であるU回の反復ごとに、システムは、目標Qネットワークパラメータ値を、現在のQネットワークパラメータ値と等しくなるように更新することができる。明確な目標および現在のQネットワークパラメータ値を維持することで、トレーニングを正則化し、安定させることができる。
【0097】
図6は、方策ネットワークパラメータの現在の値を更新するための例示的プロセスの流れ図である。便宜上、プロセス600は、1つまたは複数のロケーションにある1つまたは複数のコンピュータからなるシステムによって実行されるものとして記載される。
【0098】
システムは、任意選択で、各トレーニング反復において、たとえば、
図3のステップ314中に、プロセス600を実行する。便宜上、システムは、「現在の」反復においてステップ602~610を実行すると言われる。
【0099】
システムは、現在の反復に対して、経験タプルのバッチを受信する(602)。各経験タプルは、環境の状態の第1の観測結果、第1の観測結果に応答してエージェントによってとられるアクション、環境の状態の第2の観測結果、および対応する報酬を含み得る。
【0100】
各経験タプルについて、システムは、Qニューラルネットワークを使って、経験タプルの中の第1の観測結果を処理して、経験タプルの中のアクションについてのQ値を生成する(604)。
【0101】
各経験タプルについて、システムは、第1の観測結果についての状態値を決定する(606)。システムは、たとえば、式3および4の方法を使って、第1の観測結果についての状態値を、対応するQ値の線形結合として決定することができる。
【0102】
各経験タプルについて、システムは、Q値および状態値に基づいてアドバンテージ値を生成する(608)。システムは、経験タプルについてのアドバンテージ値を、たとえば、
Aπ(a,s)=Qφ'(a,s)-Vπ(a,s) (7)
と表される、Q値と状態値との間の差として生成することができ、上式で、aはアクションを表し、sは第1の観測結果を表し、πは方策ネットワークを表し、Aπ(a,s)はアドバンテージ値を表し、Qφ'(a,s)は、ターゲットネットワークパラメータφ'を使って生成されたQ値を表し、Vπ(a,s)は状態値を表す。
【0103】
システムは、アドバンテージ値に基づく方策目的関数の勾配を使って、方策ネットワークパラメータの現在の値を更新する(610)。方策目的関数は、負でないアドバンテージ値にのみ基づき得る。負でないアドバンテージ値のみを使うことで、システムは、その値が方策の平均値よりも高いと(たとえば、アドバンテージ値によって)推定されるアクションのみを使って、現在の方策ニューラルネットワークパラメータ値を更新することが可能になり得る。システムは、確率的勾配降下、またはADAMなど、どの適切な勾配降下方法を使っても、更新を実行することができる。たとえば、方策目的関数は、
【数12】
と表すことができ、上式で、Bは経験タプルのバッチを表し、|B|は経験タプルのバッチの中の経験タプルの数を表し、(s,a,r)は、第1の観測結果を表すsと、アクションを表すaと、報酬を表すrとをもつ経験タプルを表し、II[.]はインジケータ関数(たとえば、条件が真である場合は1を、または条件が偽である場合は0を戻す関数)を表し、A
π(a,s)はアドバンテージ値を表し、π
θ(a|s)は、現在の方策ネットワークパラメータθを使う方策ニューラルネットワークπ
θを使って生成されたアクションスコアを表す。
【0104】
いくつかの実装形態では、システムは、目標方策ニューラルネットワークパラメータのセットおよび現在の方策ニューラルネットワークパラメータのセットを維持することができる。システムは、式(8)を使って、現在の方策ニューラルネットワークパラメータ値を各反復において更新することができる。V回の反復ごとに、システムは、目標方策ニューラルネットワークパラメータ値を、現在の方策ニューラルネットワークパラメータ値になるように更新し、ここでVは正の整数である。個別目標および現在の方策ニューラルネットワークパラメータを維持することで、トレーニングを正則化し、安定させることができる。
【0105】
図7は、環境と対話するためにエージェントによって実行されるべきアクションを選択するのにアクション選択システムを使うための例示的プロセスの流れ図である。便宜上、プロセス700は、1つまたは複数のロケーションにある1つまたは複数のコンピュータからなるシステムによって実行されるものとして記載される。
【0106】
便宜上、プロセス700は、「現在の」時間ステップにおいてエージェントによって実行されるべきアクションを選択することに関して記載される。
【0107】
システムは、現在の時間ステップについての現在の観測結果を受信する(702)。現在の観測結果は、たとえば、環境の中でのオブジェクトの位置、速度、および加速度についての、またはロボットエージェントの関節の関節位置、速度、および加速度についての観測結果を含み得る。
【0108】
システムは、アクション選択システム、またはエキスパートアクション選択方策、特に準最適エキスパートアクション選択方策のいずれかを使って、現在の時間ステップにおいてエージェントによって実行されるべきアクションを選択する(704)。エキスパートアクション選択方策は、タスクの一部を実行するための、たとえば、環境の中のロケーションへグリッパを動かすための、または環境の中でオブジェクトを持ち上げるためのアクションの学習されたシーケンスを含み得る。準最適エキスパートアクション選択方策とは、エージェントを制御するのに使われるとき、エージェントが少なくとも部分的なタスク成功を達成することを可能にすることができる方策であってよい。システムは、アクション選択システムまたは準最適エキスパートアクション選択方策を使うことの間で確率的に、たとえば、各々または他のものを選ぶあらかじめ定義された確率で、選択をすることができる。アクション選択システムは、たとえば、
図2のトレーニングシステム200によってトレーニングされるアクション選択システムであってよく、(準最適)エキスパートアクション選択方策は、たとえば、実世界環境において対話するロボットエージェント用に、中間地点追跡コントローラを組織することによって生成されてよい。いくつかの実装形態では、中間地点追跡コントローラとは、コントローラに与えられている中間地点のセットに基づいてロボットのアクションを制御するためのコントローラである。たとえば、中間地点追跡コントローラは、ロボットの一部を、1つまたは複数の中間地点のセットによって定義された経路に沿って動くように制御するための出力を与える学習済みコントローラであってよい。中間地点は、ユーザインターフェースを介してユーザによって指定されていてよい。こうすることにより、ユーザが、人間による実演も報酬形成も必要なく、所望の挙動を指定するための単純で直観的なやり方を提供することができる。エキスパートアクション選択方策は、中間地点追跡コントローラを組織すること、すなわち組み合わせることによって生成されてよい。たとえば、中間地点追跡コントローラは、ロボットの一部を、経路に沿って動くように制御することなど、特定の挙動を指定してよく、エキスパートアクション選択方策は、複数の中間地点追跡コントローラの挙動を、たとえば、順々に、および/または並行して動作するように組織すること、すなわち組み合わせることによって生成されてよい。中間地点追跡コントローラを組織する例は、Rae Jeongら、「Learning Dexterous Manipulation from Suboptimal Experts」、arXiv:2010.08587v2、2021年1月5日を参照すると、より詳しく記載されている。より一般的には、エキスパートアクション選択方策は、どのタイプの学習済みコントローラ、たとえば、あらかじめトレーニングされたコントローラアクション選択ニューラルネットワークに基づくコントローラの挙動を組織すること、すなわち組み合わせることによっても生成されてよい。
【0109】
システムがアクション選択システムを選択した場合、アクション選択システムはアクションを選択する(706)。アクション選択システムは、たとえば、
図2のトレーニングシステム200によって、現在トレーニングされているものであってよい。アクション選択システムは、アクションの可能セットの中の各アクションについての最終アクションスコアのセットを生成すること、および最終アクションスコアに従って、アクション、たとえば、最も大きいそれぞれの最終アクションスコアをもつアクションを選択することによって、エージェントによってとられるべきアクションを選択することができる。たとえば、アクション選択システムは、方策ニューラルネットワークを使って、時間ステップに対する現在の観測結果を処理して、可能性のあるアクションのセットの中の各アクションについてのそれぞれのアクションスコアを生成し、Qニューラルネットワークを使って、時間ステップに対する現在の観測結果を処理して、可能性のあるアクションのセットの中の各アクションについてのそれぞれのQ値を生成することができる。アクション選択システムは次いで、たとえば、アクションについてのアクションスコア、およびアクションについてのQ値に基づいて、各アクションについての最終アクションスコアを決定することができ、ここで、それぞれの最終アクションスコアは、
【数13】
と決定され、上式で、aはアクションを表し、sは現在の観測結果を表し、π(a|s)はアクションスコアを表し、Q(a,s)はQ値を表し、η
sは温度係数を表す(たとえば、式3および4でのように)。アクション選択システムは、最終アクションスコアに従って、たとえば、最も大きい最終アクションスコアに対応するアクションを選択することによって、エージェントによって実行されるべきアクションを選択することができる。
【0110】
トレーニング中、Qネットワーク、方策ネットワーク、または両方のための目標ニューラルネットワークパラメータのセットおよび現在のニューラルネットワークパラメータのセットをシステムが維持する実装形態では、アクション選択システムは、方策およびQネットワークの各々について、現在のニューラルネットワークパラメータ値を使うことができる。
【0111】
システムが準最適エキスパートアクション選択方策を選択した場合、準最適エキスパートアクション選択方策はアクションを選択する(708)。たとえば、エージェントは、環境中で対話するロボットエージェントであってよく、エキスパートアクション選択方策は、中間地点追跡コントローラを組織することによって生成されてよい。
【0112】
システムは、選択されたアクションに基づいて、環境の次の観測結果および報酬を受信する(710)。たとえば、環境中で対話するロボットエージェントについて、次の観測結果は、ロボット関節のセットの各々をそれぞれのやり方で動かし、環境に対してどのような効果を有するかを見た結果であってよい。
【0113】
システムは、(1)現在の観測結果、(2)選択されたアクション、(3)次の観測結果、および(4)報酬に基づいて、新たな経験タプルを生成する(712)。システムは、これらの4つの部分から新たな経験タプルを生成し、新たな経験タプルをリプレイバッファに追加する。
【0114】
アクション選択システムと準最適エキスパートアクション選択方策との間でのアクション選択を絡み合わせることで、トレーニングデータ用の混合方策オン「探査」経験タプルおよび方策オフ「エキスパート」経験タプルを生成することができる。システムは、これらの混合経験タプルを、トレーニング用にリプレイバッファに追加することができる。混合トレーニングデータを使って(たとえば、方策オントレーニングデータ単独で、ではなく)アクション選択システムをトレーニングすることで、アクション選択システムは、より迅速に(たとえば、より少ないトレーニング反復で)トレーニングされ、(たとえば、エージェントがタスクをより効果的に実行することを可能にすることによって)より優れた性能を達成することが可能になり得る。アクション選択システムをより迅速にトレーニングすることによって、トレーニングシステムは、いくつかの従来のトレーニングシステムよりも少ない計算リソース(たとえば、メモリおよび計算能力)をトレーニング中に消費することが可能である。
【0115】
本明細書は、「構成される」という用語を、システムおよびコンピュータプログラム構成要素との関連で使っている。1つまたは複数のコンピュータからなるシステムが特定の動作またはアクションを実行するように構成されることは、システムが、動作の際にシステムに動作またはアクションを実行させるソフトウェア、ファームウェア、ハードウェア、またはそれらの組合せをインストールしたことを意味する。1つまたは複数のコンピュータプログラムが、特定の動作またはアクションを実行するように構成されることは、1つまたは複数のプログラムが、データ処理装置によって実行されると、装置に動作またはアクションを実行させる命令を含むことを意味する。
【0116】
本明細書に記載する主題および機能的動作の実施形態は、デジタル電子回路機構で、または有形に実施されるコンピュータソフトウェアもしくはファームウェアで、本明細書において開示した構造およびそれらの構造的等価物を含むコンピュータハードウェアで、またはそれらのうちの1つもしくは複数の、組合せで実装することができる。本明細書において説明される主題の実施形態は、1つまたは複数のコンピュータプログラムとして、すなわち、データ処理装置によって実行するか、またはデータ処理装置の動作を制御するための、有形の非一時的記憶媒体上に符号化されたコンピュータプログラム命令の1つまたは複数のモジュールとして、実装することができる。コンピュータ記憶媒体は、機械可読記憶デバイス、機械可読記憶基板、ランダムもしくはシリアルアクセスメモリデバイス、またはそれらのうちの1つもしくは複数の、組合せであってよい。代替または追加として、プログラム命令は、データ処理装置による実行のために、適切な受信機装置への送信用の情報を符号化するように生成される、人工的に生成された伝搬信号、たとえば、機械生成された電気、光学、または電磁信号上で符号化されてよい。
【0117】
「データ処理装置」という用語は、データ処理ハードウェアを指し、例として、プログラム可能プロセッサ、1つのコンピュータ、または複数のプロセッサもしくはコンピュータを含む、データを処理するための、あらゆる種類の装置、デバイス、および機械を包含する。装置は、特殊目的論理回路機構、たとえば、FPGA(フィールドプログラム可能ゲートアレイ)またはASIC(特定用途向け集積回路)であるか、またはそれらをさらに含んでもよい。装置は、任意選択で、ハードウェアに加え、コンピュータプログラムのための実行環境を作成するコード、たとえば、プロセッサファームウェア、プロトコルスタック、データベース管理システム、オペレーティングシステム、またはそれらのうちの1つもしくは複数の、組合せを構成するコードを含むことができる。
【0118】
コンピュータプログラムは、プログラム、ソフトウェア、ソフトウェアアプリケーション、アプリ、モジュール、ソフトウェアモジュール、スクリプト、またはコードと呼ばれるか、またはそれらとして記述されている場合もあり、コンパイル型もしくはインタープリタ型言語、または宣言型もしくは手続き型言語を含む、どの形のプログラミング言語でも書かれてよく、スタンドアロンプログラムとして、またはモジュール、構成要素、サブルーチン、もしくはコンピューティング環境における使用に適した他の単位として、を含む、どの形でも展開することができる。プログラムが、ファイルシステム内のファイルに対応してよいが、そうである必要はない。プログラムは、他のプログラムもしくはデータ、たとえば、マークアップ言語ドキュメントに記憶された1つもしくは複数のスクリプトを保持するファイル部分に、問題になっているプログラムに専用の単一のファイルに、または複数の協調ファイル、たとえば、1つもしくは複数のモジュール、サブプログラム、もしくはコードの部分を記憶するファイルに記憶することができる。コンピュータプログラムは、1つの場所に位置する1つのコンピュータ上または複数のコンピュータ上で実行されるように展開されても、複数の場所に分散され、データ通信ネットワークによって相互接続されてもよい。
【0119】
本明細書では、「エンジン」という用語は、1つまたは複数の特定の機能を実施するようにプログラムされる、ソフトウェアベースのシステム、サブシステム、またはプロセスを指すように広く使われる。概して、エンジンは、1つまたは複数のソフトウェアモジュールまたは構成要素として実装され、1つまたは複数のロケーションにある1つまたは複数のコンピュータ上にインストールされることになる。いくつかのケースでは、1つまたは複数のコンピュータは、特定のエンジンに専用となり、他のケースでは、複数のエンジンが、同じコンピュータまたは複数のコンピュータ上でインストールされ、稼動中であってよい。
【0120】
本明細書に記載したプロセスおよび論理フローは、入力データに対して動作し、出力を生成することによって機能を実施するための1つまたは複数のコンピュータプログラムを実行する1つまたは複数のプログラム可能コンピュータによって実行され得る。プロセスおよび論理フローは、特殊目的論理回路機構、たとえば、FPGA、もしくはASICによって、または特殊目的論理回路機構と1つもしくは複数のプログラムされたコンピュータの組合せによって実施されてもよい。
【0121】
コンピュータプログラムの実行に適したコンピュータは、汎用もしくは特殊目的マイクロプロセッサもしくは両方、またはどの他の種類の中央処理ユニットに基づいてもよい。概して、中央処理ユニットは、読取り専用メモリもしくはランダムアクセスメモリまたは両方から、命令およびデータを受信することになる。コンピュータの本質的要素は、命令を実施または実行するための中央処理ユニットと、命令およびデータを記憶するための1つまたは複数のメモリデバイスとである。中央処理ユニットおよびメモリは、特殊目的論理回路機構によって補完することも、その中に組み込むこともできる。概して、コンピュータは、データを記憶するための1つまたは複数の大容量記憶デバイス、たとえば、磁気、光磁気ディスク、または光ディスクも含み、あるいは大容量記憶デバイスからデータを受信し、もしくはデータを転送し、または両方を行うように大容量記憶デバイスに動作可能に結合される。ただし、コンピュータは、そのようなデバイスを有する必要はない。その上、コンピュータは、別のデバイス、たとえば、ほんのいくつかの例を挙げれば、モバイル電話、携帯情報端末(PDA)、モバイルオーディオまたはビデオプレーヤ、ゲームコンソール、全地球測位システム(GPS)受信機、またはポータブル記憶デバイス、たとえば、ユニバーサルシリアルバス(USB)フラッシュドライブに組み込むことができる。
【0122】
コンピュータプログラム命令およびデータを記憶するのに適したコンピュータ可読媒体は、例として、半導体メモリデバイス、たとえば、EPROM、EEPROM、およびフラッシュメモリデバイスと、磁気ディスク、たとえば、内部ハードディスクまたは取外し可能ディスクと、光磁気ディスクと、CD ROMおよびDVD-ROMディスクとを含む、あらゆる形の不揮発性メモリ、媒体およびメモリデバイスを含む。
【0123】
ユーザとの対話を可能にするために、本明細書に記載する主題の実施形態は、ユーザに情報を表示するためのディスプレイデバイス、たとえば、CRT(陰極線管)やLCD(液晶ディスプレイ)モニタと、ユーザがコンピュータに入力を与え得るためのキーボードおよびポインティングデバイス、たとえば、マウスやトラックボールとを有するコンピュータ上で実装することができる。他の種類のデバイスも、ユーザとの対話を可能にするのに使われることが可能であり、たとえば、ユーザに与えられるフィードバックは、どの形の感覚フィードバックでも、たとえば、視覚フィードバック、聴覚フィードバック、または触覚フィードバックであることができ、ユーザからの入力は、音響、発話、または触覚入力を含む、どの形でも受信されることが可能である。さらに、コンピュータは、ユーザによって使われるデバイスへドキュメントを送信し、デバイスからドキュメントを受信することによって、たとえば、ウェブブラウザから受信された要求に応答して、ユーザのデバイス上のウェブブラウザへウェブページを送信することによってユーザと対話することができる。また、コンピュータは、パーソナルデバイス、たとえば、メッセージングアプリケーションを稼動しているスマートフォンにテキストメッセージまたは他の形のメッセージを送り、ユーザから引き換えに応答メッセージを受信することによって、ユーザと対話することができる。
【0124】
機械学習モデルを実装するためのデータ処理装置は、たとえば、機械学習トレーニングまたは生産、すなわち、推論、作業負荷の共通および数値計算部分を処理するための特殊目的ハードウェアアクセラレータユニットも含むことができる。
【0125】
機械学習モデルは、機械学習フレームワーク、たとえば、TensorFlowフレームワークを使って実装し、展開することができる。
【0126】
本明細書に記載する主題の実施形態は、バックエンド構成要素を、たとえば、データサーバとして含む、もしくはミドルウェア構成要素、たとえば、アプリケーションサーバを含む、もしくはフロントエンド構成要素、たとえば、本明細書に記載する主題の実装形態とユーザが対話し得るためのグラフィカルユーザインターフェースもしくはウェブブラウザ、またはアプリを有するクライアントコンピュータ、または1つもしくは複数のそのようなバックエンド、ミドルウェア、もしくはフロントエンド構成要素のどの組合せも含むコンピューティングシステムで実装することができる。システムの構成要素は、どの形または媒体のデジタルデータ通信(たとえば、通信ネットワーク)によっても相互接続されることが可能である。通信ネットワークの例には、ローカルエリアネットワーク(LAN)およびワイドエリアネットワーク(WAN)、たとえば、インターネットがある。
【0127】
コンピューティングシステムは、クライアントおよびサーバを含み得る。クライアントとサーバは概して、互いから離れており、通常、通信ネットワークを通して対話する。クライアントとサーバの関係は、それぞれのコンピュータ上で稼動するとともに互いとのクライアント-サーバ関係を有するコンピュータプログラムにより発生する。いくつかの実施形態では、サーバが、データ、たとえば、HTMLページを、ユーザデバイスへ、たとえば、クライアントとして作用するデバイスと対話するユーザにデータを表示し、ユーザからユーザ入力を受信する目的のために送信する。ユーザデバイスにおいて生成されたデータ、たとえば、ユーザ対話の結果が、デバイスからサーバにおいて受信され得る。
【0128】
本明細書は、多くの具体的な実装形態詳細を含むが、これらは、任意の発明の範囲において、または特許請求され得るものの範囲において、限定と解釈されるべきではなく、特定の発明の特定の実施形態に特有であり得る特徴の記述として解釈されるべきである。また、別個の実施形態の文脈において本明細書で説明したいくつかの特徴は、単一の実施形態において組み合わせて実装することができる。逆に、単一の実施形態の文脈において記載される様々な特徴はまた、複数の実施形態において別々に、またはどの適切な部分組合せでも実装することができる。さらに、特徴は、いくつかの組合せで働くものとして上記で説明され、初めにそのように請求される場合さえあるが、請求項からの1つまたは複数の特徴は、場合によってはその組合せから削除することができ、請求される組合せは、部分組合せ、または部分組合せの変形形態を対象とすることができる。
【0129】
同様に、動作は、特定の順序において図面に示され、請求項に具陳されているが、これは、そのような動作が図示された特定の順序において、もしくは順次に実施されることを必要とするか、または、所望の結果を達成するためにすべての示された動作が実施されることを必要とするものと理解されるべきではない。いくつかの状況では、マルチタスキングおよび並列処理が有利であり得る。その上、上述した実施形態における様々なシステムモジュールおよび構成要素の分離は、すべての実施形態においてそのような分離を必要とするものとして理解されるべきではなく、記載したプログラム構成要素およびシステムは概して、単一のソフトウェア製品に一緒に統合されるか、または複数のソフトウェア製品にパッケージングされることが可能であることを理解されたい。
【0130】
本主題の特定の実施形態について記載した。他の実施形態は、以下の特許請求の範囲内である。たとえば、請求項において具陳されるアクションは、異なる順序で実施され、望ましい結果を依然として達成することができる。一例として、添付の図面に示されるプロセスは、望ましい結果を達成するのに、図示される特定の順序、または順番を必ずしも要求しない。いくつかのケースでは、マルチタスキングおよび並列処理が有利であり得る。
【符号の説明】
【0131】
100 アクション選択システム、システム
102 リプレイバッファ
104 Qニューラルネットワーク、方策ニューラルネットワーク
106 方策ニューラルネットワーク、Qネットワーク
114 エージェント
200 トレーニングシステム
212 サンプリングエンジン
222 状態値エンジン
226 更新エンジン
【手続補正書】
【提出日】2024-04-26
【手続補正1】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
アクション選択システムをトレーニングするために1つまたは複数のデータ処理装置により実行される方法であって、
前記アクション選択システムは、タスクを実行するために環境と対話するエージェントにより実行されるアクションを選択するために使用され、
前記アクション選択システムが、Qニューラルネットワークと方策ニューラルネットワークとを含み、
前記方法は、複数の反復の各々において、
前記エージェントのシミュレートされたバージョンまたは実世界のバージョンと前記環境との以前の対話を特徴づける経験タプルのバッチをリプレイバッファから取得するステップであって、各経験タプルは、(i)前記環境の状態を特徴づける第1の観測結果と、(ii)前記第1の観測結果に応答して前記エージェントによって実行されたアクションと、(iii)前記第1の観測結果に応答して前記エージェントが前記アクションを実行した後の環境の状態を特徴づける第2の観測結果と、(iv)前記第1の観測結果に応答して前記エージェントが前記アクションを実行した結果として受けられる報酬とを含む、ステップと、
各経験タプルについて、重点サンプリングによって、前記経験タプルの中の前記第2の観測結果についての状態値を決定するステップと、
前記経験タプルの中の前記第2の観測結果についての前記状態値を使用して、QニューラルネットワークのQニューラルネットワークパラメータのセットの現在の値に対する更新を決定するステップ
を含み、
前記方法が、さらに、重点サンプリングされたアクションに対するQ値の線形結合として、前記第2の観測結果についての前記状態値を決定するステップを含み、重点サンプリングされたアクションに対するQ値の線形結合として、前記第2の観測結果についての前記状態値を決定することが、
前記サンプリングされたアクションについての前記Q値に基づいて、温度係数を決定することと、
(i)前記サンプリングされたアクションについての前記Q値と(ii)前記温度係数との比として、各サンプリングされたアクションについての各修正されたQ値を決定することと、
ソフトマックス関数を前記修正されたQ値に適用して、各サンプリングされたアクションについての重み関数を決定することと、
前記サンプリングされたアクションについての前記Q値の線形結合として、前記第2の観測結果についての前記状態値を決定することであって、各サンプリングされたアクションについての前記Q値が、前記サンプリングされたアクションについての前記重み関数によりスケーリングされる、ことと
によって行われる、方法。
【請求項2】
前記第2の観測結果についての前記状態値が、
【数1】
として計算され、上式で、V
π
(s)は、前記第2の観測結果についての前記状態値であり、jは、前記サンプリングされたアクションをインデックス付けし、Mは、サンプリングされたアクションの数であり、w
j
は、サンプリングされたアクションa
j
についての前記重み係数であり、Q
φ'
(a
j
,s)は、サンプリングされたアクションa
j
についての前記Q値であり、各重み係数w
j
は、
【数2】
として計算され、上式で、kは、前記サンプリングされたアクションをインデックス付けし、η
s
は前記温度係数である、請求項1に記載の方法。
【請求項3】
前記サンプリングされたアクションについての前記Q値に基づいて前記温度係数を決定することは、1つまたは複数の最適化反復の各々において、
前記温度係数に対して双対関数の勾配を決定することであって、前記双対関数は、(i)前記温度係数、および(ii)前記サンプリングされたアクションについての前記Q値に依存する、ことと、
前記温度係数に対する前記双対関数の前記勾配を使用して、前記温度係数の現在の値を調節することと
を含む、請求項1または2に記載の方法。
【請求項4】
前記双対関数は、
【数3】
として計算され、上式で、g(η
s
)は、温度係数η
s
について評価される前記双対関数であり、|B|は、経験タプルの前記バッチの中の経験タプルの数を記し、εは正則化パラメータであり、jは、前記サンプリングされたアクションをインデックス付けし、Mは、サンプリングされたアクションの数であり、Q
φ'
(a
j
,s)は、サンプリングされたアクションa
j
についての前記Q値である、請求項3に記載の方法。
【請求項5】
前記経験タプルの中の前記第2の観測結果についての前記状態値を使用して、前記QニューラルネットワークのQニューラルネットワークパラメータのセットの現在の値に対する更新を決定するステップが、
各経験タプルについて、
前記Qニューラルネットワークを使用して前記経験タプルの中の第1の観測結果を処理して、前記経験タプルの中の前記アクションについてのQ値を生成し、
前記経験タプルの中の前記第2の観測結果についての前記状態値を使用して、前記経験タプルの中の前記アクションについての目標Q値を決定するステップと、
各経験タプルについて、(i)前記経験タプルの中の前記アクションについての前記Q値と、(ii)前記経験タプルの中の前記アクションについての前記目標Q値との間の誤差を測定するQ目的関数の勾配を決定するステップと、
前記勾配を使用して、前記Qニューラルネットワークパラメータのセットの現在の値に対する前記更新を決定するステップと
を含む、請求項1から4のいずれか一項に記載の方法。
【請求項6】
前記経験タプルの中の前記第2の観測結果についての前記状態値を使用して、前記経験タプルの中の前記アクションについての前記目標Q値を決定するステップが、
(i)前記経験タプルの中の前記報酬と、(ii)前記経験タプルの中の前記第2の観測結果についての前記状態値と割引係数の積との合計として、前記目標Q値を決定するステップ、および/または
(i)前記経験タプルの中の前記アクションについての前記Q値と、(ii)前記経験タプルの中の前記アクションについての前記目標Q値との間の誤差が、(i)前記経験タプルの中の前記アクションについての前記Q値と、(ii)前記経験タプルの中の前記アクションについての前記目標Q値との間の二乗誤差を含む、請求項5に記載の方法。
【請求項7】
前記Q目的関数は、
【数4】
として計算され、上式で、Bは経験タプルの前記バッチを表し、|B|は、経験タプルの前記バッチの中の経験タプルの数であり、各(s,a,r,s')は、経験タプルの前記バッチBの中の経験タプルであり、sは前記第1の観測結果であり、aは前記アクションであり、rは前記報酬であり、s'は前記第2の観測結果であり、γは割引係数であり、V
π
(s')は、前記経験タプルの中の前記第2の観測結果についての前記状態値であり、Q
φ
(a,s)は、前記経験タプルの中の前記アクションについての前記Q値である、請求項6に記載の方法。
【請求項8】
前記複数の反復の各々において、前記方策ニューラルネットワークの方策ニューラルネットワークパラメータのセットの現在の値に対する更新を決定するステップであって、
各経験タプルについて、
前記Qニューラルネットワークを使用して、前記経験タプルの中の前記第1の観測結果を処理して、前記経験タプルの中の前記アクションについてのQ値を生成するステップと、
前記経験タプルの中の前記第1の観測結果についての状態値を決定するステップと、
前記経験タプルについてのアドバンテージ値を、(i)前記経験タプルの中の前記アクションについての前記Q値と、(ii)前記経験タプルの中の前記第1の観測結果についての前記状態値との間の差として決定するステップと
を含む、ステップと、
負でないアドバンテージ値を有する前記経験タプルのみに基づいて、前記方策ニューラルネットワークの前記方策ニューラルネットワークパラメータのセットの前記現在の値に対する更新を決定するステップと
をさらに含む、請求項1から7のうちのいずれか一項に記載の方法。
【請求項9】
負でないアドバンテージ値を有する前記経験タプルのみに基づいて、前記方策ニューラルネットワークの前記方策ニューラルネットワークパラメータのセットの前記現在の値に対する前記更新を決定するステップは、
負でないアドバンテージ値を有する前記経験タプルのみに依存する方策目的関数の勾配を決定するステップと、
前記勾配を使用して、前記方策ニューラルネットワークパラメータのセットの前記現在の値に対する前記更新を決定するステップと
を含む、請求項8に記載の方法。
【請求項10】
負でないアドバンテージ値を有する各経験タプルについて、前記方策目的関数は、前記方策ニューラルネットワークを使用して、前記経験タプルの中の前記第1の観測結果を処理することによって生成される前記経験タプルの中の前記アクションについてのアクションスコアに依存し、
前記方策目的関数は、
【数5】
として計算され、上式で、Bは経験タプルの前記バッチを表し、|B|は、経験タプルの前記バッチの中の経験タプルの数であり、各(s,a,r)は、経験タプルの前記バッチBの中の経験タプルであり、sは前記第1の観測結果であり、aは前記アクションであり、rは前記報酬であり、
【数6】
はインジケータ関数であり、A
π
(a,s)は前記経験タプルについての前記アドバンテージ値であり、π
θ
(a|s)は、前記方策ニューラルネットワークを使用して、前記経験タプルの中の前記第1の観測結果を処理することによって生成される前記経験タプルの中の前記アクションについての前記アクションスコアである、請求項9に記載の方法。
【請求項11】
前記複数の反復のうちの1つまたは複数の各々において、
前記アクション選択システム、エキスパートアクション選択方策、または両方を使用して、複数の新たな経験タプルを生成するステップと、
前記リプレイバッファに前記新たな経験タプルを追加するステップと
をさらに含み、
複数の新たな経験タプルを生成するステップが、1つまたは複数の時間ステップの各々において、
前記時間ステップについての現在の観測結果を受信するステップと、
前記アクション選択システムまたは前記エキスパートアクション選択方策を使用して、前記時間ステップにおいて前記エージェントによって実行されるべきアクションを選択するステップと、
前記選択されたアクションを前記エージェントが実行したことから生じる次の観測結果および報酬を受信するステップと、
前記現在の観測結果、前記選択されたアクション、前記次の観測結果、および前記報酬を含む新たな経験タプルを生成するステップと
を含み、
前記アクション選択システムまたは前記エキスパートアクション選択方策を使用して、前記時間ステップにおいて前記エージェントによって実行されるべき前記アクションを選択するステップは、前記時間ステップにおいて前記エージェントによって実行されるべき前記アクションを選択するために、前記アクション選択システムまたは前記エキスパートアクション選択方策を使うことの間で確率的に選択をするステップを含む、請求項1から10のうちのいずれか一項に記載の方法。
【請求項12】
前記アクション選択システムを使用して、時間ステップにおいて前記エージェントによって実行されるべきアクションを選択することは、
前記方策ニューラルネットワークを使用して、前記時間ステップに対する前記現在の観測結果を処理して、可能性のあるアクションのセットの中の各アクションについてのそれぞれのアクションスコアを生成することと、
前記Qニューラルネットワークを使用して、前記時間ステップに対する前記現在の観測結果を処理して、前記可能性のあるアクションのセットの中の各アクションについてのそれぞれのQ値を生成することと、
(i)前記アクションについての前記アクションスコア、および(ii)前記アクションについての前記Q値に基づいて、各アクションについての最終アクションスコアを決定することと、
前記最終アクションスコアに従って、前記エージェントによって実行されるべき前記アクションを選択することと
を含む、請求項11に記載の方法。
【請求項13】
アクションについての前記最終アクションスコアは、
【数7】
として計算され、上式で、π(a|s)は、前記アクションについての前記アクションスコアであり、Q(s,a)は、前記アクションについての前記Q値であり、η
s
は温度パラメータである、請求項12に記載の方法。
【請求項14】
1つまたは複数のコンピュータと、
前記1つまたは複数のコンピュータに通信可能に結合された1つまたは複数の記憶デバイスとを備えるシステムであって、前記1つまたは複数の記憶デバイスは、前記1つまたは複数のコンピュータによって実行されると、前記1つまたは複数のコンピュータに、請求項1から13のいずれか一項に記載の方法を実行させる命令を記憶する、システム。
【請求項15】
1つまたは複数のコンピュータによって実行されると、前記1つまたは複数のコンピュータに、請求項1から13のいずれか一項に記載の方法を実行させる命令を記憶する1つまたは複数の非一時的コンピュータ記憶媒体。
【外国語明細書】