(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2022-11-29
(54)【発明の名称】後知恵モデリングを用いた行動選択ニューラルネットワークの訓練
(51)【国際特許分類】
G06N 3/08 20060101AFI20221121BHJP
G06N 20/00 20190101ALI20221121BHJP
【FI】
G06N3/08
G06N20/00
【審査請求】有
【予備審査請求】未請求
(21)【出願番号】P 2022519019
(86)(22)【出願日】2020-09-23
(85)【翻訳文提出日】2022-05-24
(86)【国際出願番号】 EP2020076604
(87)【国際公開番号】W WO2021058588
(87)【国際公開日】2021-04-01
(32)【優先日】2019-09-25
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
(71)【出願人】
【識別番号】517030789
【氏名又は名称】ディープマインド テクノロジーズ リミテッド
(74)【代理人】
【識別番号】100108453
【氏名又は名称】村山 靖彦
(74)【代理人】
【識別番号】100110364
【氏名又は名称】実広 信哉
(74)【代理人】
【識別番号】100133400
【氏名又は名称】阿部 達彦
(72)【発明者】
【氏名】アーサー・クレメント・ゲーズ
(72)【発明者】
【氏名】ファビオ・ヴィオーラ
(72)【発明者】
【氏名】テオファヌ・ギヨーム・ウェーバー
(72)【発明者】
【氏名】ラース・ビュージング
(72)【発明者】
【氏名】ニコラス・マンフレート・オットー・ヒース
(57)【要約】
環境とインタラクションする強化学習エージェントによって実行される行動を選択する強化学習方法およびシステム。因果モデルが、後知恵モデルニューラルネットワークによって実装され、後知恵を使用して、すなわち、将来の環境の状態軌道を使用して訓練される。方法およびシステムは行動を選択するときにこの将来の情報にアクセスすることができないため、後知恵モデルニューラルネットワークが、現在の観測結果からのデータを条件とするモデルニューラルネットワークを訓練するために使用され、モデルニューラルネットワークは、後知恵モデルニューラルネットワークの出力を予測することを学習する。
【特許請求の範囲】
【請求項1】
コンピュータによって実施される強化学習の方法であって、
タスクを実行するために環境内でエージェントによって実行される行動を選択するように行動選択ニューラルネットワークシステムを訓練するステップを含み、
前記行動選択ニューラルネットワークシステムが、i)前記環境の現在の状態を特徴付ける観測結果、およびii)モデルニューラルネットワークの出力から入力データを受け取り、前記エージェントによって実行される前記行動を選択するための行動選択出力を生成するために行動選択ニューラルネットワークシステムのパラメータに従って前記入力データを処理するように構成され、
前記モデルニューラルネットワークが、前記環境の前記現在の状態を特徴付ける前記観測結果から導出された入力を受け取るように構成され、前記モデルニューラルネットワークの前記出力が、前記現在の状態から始まる前記環境の一連のk個の予測された将来の状態を含む予測された状態軌道を特徴付け、
前記方法が、
時間ステップtにおける前記環境の状態から始まる前記環境の一連のk個の状態を含む状態軌道を特徴付ける出力を有する後知恵モデルニューラルネットワークを、前記時間ステップtおよび一連のk個のその後の時間ステップにおける前記環境の前記状態を特徴付ける1つまたは複数の観測結果からのデータを処理し、前記時間ステップtの訓練目標を使用して前記後知恵モデルニューラルネットワークのパラメータを調整することによって訓練するステップと、
前記後知恵モデルニューラルネットワークの前記出力を近似するように前記モデルニューラルネットワークの前記出力を訓練するステップとをさらに含む、コンピュータによって実施される方法。
【請求項2】
前記後知恵モデルを訓練するステップが、前記時間ステップtにおける前記環境の前記状態に関する推定された後知恵価値または状態行動価値を生成するために、後知恵価値ニューラルネットワークを使用して、前記後知恵モデルニューラルネットワークの前記出力、および前記時間ステップtにおける前記環境の前記状態を特徴付ける前記観測結果からのデータを処理することと、前記後知恵価値ニューラルネットワークのパラメータおよび前記後知恵モデルニューラルネットワークの前記パラメータを更新するために、前記時間ステップtにおける前記環境の前記状態に関する前記推定された後知恵価値または状態行動価値と前記時間ステップtの前記訓練目標との間の差に依存する目的関数の勾配を逆伝播することとを含む請求項1に記載の方法。
【請求項3】
前記行動選択ニューラルネットワークシステムが、前記エージェントによって実行される前記行動を選択するかまたは選択することを学習するための状態価値ニューラルネットワークを含む請求項2に記載の方法。
【請求項4】
前記行動選択ニューラルネットワークシステムを訓練するステップが、前記状態価値ニューラルネットワークを使用して決定された前記環境の前記現在の状態に関する状態価値または状態行動価値と、前記環境の前記現在の状態に関する推定されたリターンまたは状態行動価値との間の差に依存する目的関数の勾配を逆伝播することを含む請求項3に記載の方法。
【請求項5】
前記行動選択ニューラルネットワークシステムが、前記モデルニューラルネットワークと共通のパラメータを有する請求項3または4に記載の方法。
【請求項6】
前記行動選択ニューラルネットワークシステムおよび前記後知恵価値ニューラルネットワークへの入力として、前記環境の前記状態を特徴付ける前記観測結果からのデータを受け取る1つまたは複数の再帰型ニューラルネットワーク(RNN)層の内部状態を提供するステップをさらに含む請求項2から5のいずれか一項に記載の方法。
【請求項7】
前記後知恵モデルニューラルネットワークおよび前記モデルニューラルネットワークへの入力として、前記環境の前記状態を特徴付ける前記観測結果からのデータを受け取る1つまたは複数の再帰型ニューラルネットワーク(RNN)層の内部状態を提供するステップをさらに含む請求項1から6のいずれか一項に記載の方法。
【請求項8】
前記時間ステップtの前記訓練目標が、前記時間ステップtの状態価値または状態行動価値ターゲットを含む請求項1から7のいずれか一項に記載の方法。
【請求項9】
前記時間ステップtの前記訓練目標が、前記時間ステップtの推定されたリターンを含む請求項1から8のいずれか一項に記載の方法。
【請求項10】
前記後知恵モデルニューラルネットワークの前記出力を近似するように前記モデルニューラルネットワークの前記出力を訓練するステップが、前記状態軌道を特徴付ける前記後知恵モデルニューラルネットワークの前記出力と前記予測された状態軌道を特徴付ける前記モデルニューラルネットワークの前記出力との間の差に依存する目的関数の勾配を逆伝播することを含む請求項1から9のいずれか一項に記載の方法。
【請求項11】
前記状態軌道を特徴付ける前記後知恵モデルニューラルネットワークの前記出力と、前記予測された状態軌道を特徴付ける前記モデルニューラルネットワークの前記出力とが、それぞれ、前記環境の1つまたは複数の観測結果の次元を下げられた表現の特徴を含む請求項1から10のいずれか一項に記載の方法。
【請求項12】
前記状態軌道を特徴付ける前記後知恵モデルニューラルネットワークの前記出力と、前記予測された状態軌道を特徴付ける前記モデルニューラルネットワークの前記出力とが、それぞれ、前記後知恵モデルニューラルネットワークおよび前記モデルニューラルネットワークの入力よりも低い、20未満の、または10未満の次元を有する請求項1から11のいずれか一項に記載の方法。
【請求項13】
kが、20未満である請求項1から12のいずれか一項に記載の方法。
【請求項14】
前記エージェントの前記環境とのインタラクションの結果として生成された軌道を表すデータを記憶するメモリを維持するステップをさらに含み、各軌道が、前記後知恵モデルニューラルネットワークを訓練するための、少なくとも、前記環境の状態を特徴付ける観測結果および前記環境のその後の状態を特徴付ける一連のその後の観測結果を特定する一連の時間ステップの各々におけるデータを含む請求項1から13のいずれか一項に記載の方法。
【請求項15】
タスクを実行するために環境内でエージェントによって実行される行動を選択する、コンピュータによって実施される方法であって、
前記環境の現在の状態を特徴付ける観測結果を受け取るステップと、
前記現在の状態から始まる前記環境の一連のk個の予測された将来の状態を含む予測された状態軌道を特徴付けるモデルニューラルネットワーク出力を生成するためにモデルニューラルネットワークを使用して前記観測結果を処理するステップと、
前記タスクを実行するために前記エージェントによって実行される前記行動を選択するための行動選択出力を生成するために、前記環境の前記現在の状態を特徴付ける前記観測結果および前記モデルニューラルネットワーク出力を処理するステップとを含む、コンピュータによって実施される方法。
【請求項16】
前記エージェントが、機械的エージェントを含み、前記環境が、実世界の環境を含む請求項1から15のいずれか一項に記載の方法。
【請求項17】
強化学習ニューラルネットワークシステムであって、
タスクを実行するために環境内でエージェントによって実行される行動を選択するための行動選択ニューラルネットワークシステムであって、
i)前記環境の現在の状態を特徴付ける観測結果、およびii)モデルニューラルネットワークの出力から入力データを受け取り、前記エージェントによって実行される前記行動を選択するための行動選択出力を生成するために行動選択ニューラルネットワークシステムのパラメータに従って前記入力データを処理するように構成される、行動選択ニューラルネットワークシステムと、
モデルニューラルネットワークであって、
前記環境の前記現在の状態を特徴付ける前記観測結果からの入力を受け取るように構成され、前記モデルニューラルネットワークの前記出力が、前記現在の状態から始まる前記環境の一連のk個の予測された将来の状態を含む予測された状態軌道を特徴付ける、モデルニューラルネットワークとを含み、
前記システムが、
時間ステップtにおける前記環境の状態から始まる前記環境の一連のk個の状態を含む状態軌道を特徴付ける出力を有する後知恵モデルニューラルネットワークを、前記時間ステップtおよび一連のk個のその後の時間ステップにおける前記環境の前記状態を特徴付ける観測結果を処理し、前記時間ステップtの訓練目標を使用して前記後知恵モデルニューラルネットワークのパラメータを調整することによって訓練し、
前記後知恵モデルニューラルネットワークの前記出力を近似するように前記モデルニューラルネットワークの前記出力を訓練するように構成される、強化学習ニューラルネットワークシステム。
【請求項18】
タスクを実行するためのニューラルネットワークコンピュータシステムであって、
タスクを実行するために環境内でエージェントによって実行される行動を選択するための行動選択ニューラルネットワークシステムであって、i)前記環境の現在の状態を特徴付ける観測結果、およびii)モデルニューラルネットワークの出力から入力データを受け取り、前記エージェントによって実行される前記行動を選択するための行動選択出力を生成するために行動選択ニューラルネットワークシステムのパラメータに従って前記入力データを処理するように構成される、行動選択ニューラルネットワークシステムと、
モデルニューラルネットワークであって、前記環境の前記現在の状態を特徴付ける前記観測結果からの入力を受け取るように構成され、前記モデルニューラルネットワークの前記出力が、前記現在の状態から始まる前記環境の一連のk個の予測された将来の状態を含む予測された状態軌道を特徴付ける、モデルニューラルネットワークとを含む、ニューラルネットワークコンピュータシステム。
【請求項19】
1つまたは複数のコンピュータによって実行されるときに前記1つまたは複数のコンピュータに請求項1から16のいずれか一項に記載の方法の動作を実行させる命令を記憶する1つまたは複数のコンピュータストレージ媒体。
【発明の詳細な説明】
【技術分野】
【0001】
本明細書は、強化学習に関する。
【背景技術】
【0002】
強化学習システムにおいては、エージェントが、環境の現在の状態を特徴付ける観測結果(observation)の受け取りに応答して強化学習システムによって選択される行動を実行することによって環境とインタラクションする。
【0003】
一部の強化学習システムは、ニューラルネットワークの出力に応じて所与の観測結果の受け取りに応答してエージェントによって実行される行動を選択する。
【0004】
ニューラルネットワークは、受け取られた入力に関する出力を予測するために非線形ユニットの1つまたは複数の層を使用する機械学習モデルである。一部のニューラルネットワークは、出力層に加えて1つまたは複数の隠れ層を含む深層ニューラルネットワークである。各隠れ層の出力は、ネットワーク内の次の層、すなわち、次の隠れ層または出力層への入力として使用される。ネットワークの各層は、パラメータのそれぞれの組の現在の値に従って、受け取られた入力から出力を生成する。
【先行技術文献】
【非特許文献】
【0005】
【非特許文献1】アドバンテージアクタークリティック(A3C)システム、Mnihら、2016年
【非特許文献2】DDPG、Lillicrapら、2015年
【非特許文献3】IMPALA(重要度加重アクターラーナー(Importance-Weighted Actor-Learner))、Espholtら、arXiv:1802.01561
【非特許文献4】再帰的再生分散DQN(Recurrent Replay Distributed DQN) (R2D2)、Kapturowskiら、ICLR 2019
【発明の概要】
【課題を解決するための手段】
【0006】
本明細書は、概して、環境とインタラクションする強化学習エージェントによって実行される行動を選択する強化学習方法およびシステムを説明する。説明される方法およびシステムの一部の実装は、後知恵を使用して因果モデル(causal model)を学習することを目的とする。これは、特に、環境の現在の状態の価値を推定するのに有用な環境の側面にモデルを集中させて、行動の選択を導く。本明細書全体を通じて、状態の価値への言及は、行動と組み合わせた状態の価値を含む場合がある。
【0007】
一態様において、強化学習の方法が説明される。方法は、タスクを実行するために環境内でエージェントによって実行される行動を選択するように行動選択ニューラルネットワークシステムを訓練するステップを含んでよい。行動選択ニューラルネットワークシステムは、環境の現在の状態を特徴付ける観測結果からのデータを受け取るように構成されてよい。また、行動選択ニューラルネットワークシステムは、モデルニューラルネットワークの出力からデータを受け取るように構成されてよい。行動選択ニューラルネットワークシステムは、エージェントによって実行される行動を選択するための行動選択出力を生成するために、行動選択ニューラルネットワークシステムのパラメータに従って入力データを処理してよい。
【0008】
モデルニューラルネットワークは、環境の現在の状態を特徴付ける観測結果からの(導出された)入力を受け取るように構成されてよい。モデルニューラルネットワークの出力は、現在の状態から始まる環境の一連のk個の予測された将来の状態を含む予測された状態軌道(state trajectory)を特徴付けてよい。
【0009】
方法は、時間ステップtにおける環境の状態から始まる環境の一連のk個の状態を含む状態軌道を特徴付ける出力を有する後知恵モデルニューラルネットワークを訓練するステップを含んでよい。訓練するステップは、オンラインまたはオフラインで、時間ステップtおよび一連のk個のその後の時間ステップにおける環境の状態を特徴付ける1つまたは複数の観測結果、たとえば、観測結果のシーケンスからのデータを処理することと、時間ステップtの訓練目標を使用して後知恵モデルニューラルネットワークのパラメータを調整することとを含んでよい。方法は、後知恵モデルニューラルネットワークの出力を近似するようにモデルニューラルネットワークの出力を訓練するステップをさらに含んでよい。
【0010】
実装において、後知恵モデルは、強化学習システムのモデルフリーの訓練のために通常使用される環境からの報酬によって提供されるよりも豊かな情報のストリームから学習することができる場合がある。たとえば、後知恵モデルは、やがて報酬につながる状態の軌道を表現することを学習することができる場合がある。
【0011】
より詳細には、後知恵モデルは、報酬を受け取るために重要な状態の軌道の特定の側面を表現することを学習する場合がある。したがって、観測結果のすべての詳細をモデリングすることを学習するのではなく、後知恵モデルは、低次元の特徴ベクトル表現出力と、任意で、比較的短い前方(すなわち、後知恵)時間ウィンドウ(time window)とを有する。これらは、後知恵モデルが訓練目標、たとえば、状態価値(state value)または状態行動価値(state-action value)の予測のために有用な観測結果の特定の側面をモデリングすることに集中することを促し、したがって、訓練のスピードを上げ、かつ必要な計算を削減する。しかし、この情報は後知恵でのみ利用可能であるため、モデルニューラルネットワークが、後知恵モデルを使用して、環境の現在の状態からこれを予測するように訓練される。後知恵モデルは、決まった数k個の将来の状態を処理してよく、実装において、kは、50、20、または10未満、たとえば、オーダー(order)5であってよい。
【0012】
したがって、実装において、後知恵モデルは、状態(および状態-行動ペア)のより良い価値の予測を提供するのに役立つことができ、したがって、行動選択ニューラルネットワークを訓練するのに有用である観測結果の側面をモデリングするように訓練されてよい。このようにして、モデルは、実行されるタスクにとって最も重要な環境のこれらの側面に焦点を当てるように訓練されてよい。また、モデルは、その他の方法でそうである可能性があるよりも単純である場合がある。
【0013】
実装において、時間ステップtの訓練目標は、実行されるタスクにふさわしい任意の目標であってよい。
【0014】
たとえば、時間ステップtの訓練目標は、時間ステップtの状態価値ターゲットを含んでよく、または時間ステップtの1つもしくは複数の状態行動価値ターゲットから導出されてよい。たとえば、時間ステップtの訓練目標は、時間ステップtにおける環境の状態から期待されるリターン、たとえば、時間ステップtにおける環境の状態からエージェントによって受け取られる期待される累積的な報酬を定義してよい。
【0015】
より詳細には、後知恵モデルを訓練することは、時間ステップtにおける環境の状態に関する推定された後知恵価値(hindsight value)または状態行動価値を生成するために、後知恵価値ニューラルネットワークを使用して、後知恵モデルニューラルネットワークの出力、および時間ステップtにおける環境の状態を特徴付ける観測結果を処理することを含んでよい。そして、方法は、後知恵価値ニューラルネットワークのパラメータおよび後知恵モデルニューラルネットワークのパラメータを更新するために、時間ステップtにおける環境の状態に関する推定された後知恵価値または状態行動価値と時間ステップtの訓練目標との間の差に依存する目的関数の勾配を逆伝播してよい。したがって、後知恵価値を学習するプロセスが、後知恵モデルを訓練するために使用されてよい。
【0016】
一部の実装において、時間ステップtの訓練目標(G)は、(たとえば、モンテカルロ学習が使用される場合)時間ステップtの実際のリターンを含み、その他の実装において、時間ステップtの訓練目標は、(たとえば、時間的差分TD学習が使用される場合)時間ステップtの推定されたリターンを含む。ここで、リターンは、エージェントによって受け取られた報酬の累積的な尺度、たとえば、報酬の時間割引された(time-discounted)総和を指す。たとえば、時間ステップtのリターンは、時間ステップt+1における実際のリターンと、その後の時間ステップの推定されたリターン、たとえば、割引率γ < 1によって小さくされた、時間ステップt+1における環境の状態に関する後知恵価値との組合せを含んでよく(TD(0))、または、たとえば、nステップリターン(たとえば、TD(λ))が、使用されてよい。価値ニューラルネットワークを訓練するために使用される差分値は、TD誤差差分値を含んでよい。
【0017】
後知恵モデルニューラルネットワークの出力を近似するようにモデルニューラルネットワークの出力を訓練するステップは、(ベクトル値の)出力の間の、すなわち、状態軌道の特徴と予測された状態軌道の特徴との間の差に依存する目的関数の勾配を逆伝播することを含んでよい。これらの特徴は、現在の時間ステップtにおける状態行動価値の値を予測するために有用な軌道の側面を表す場合がある。差は、たとえば、L2ノルムまたは交差エントロピー損失(cross-entropy loss)を含んでよい。モデルニューラルネットワークおよび後知恵モデルニューラルネットワークは、一緒に訓練されてよく、または別々に、たとえば、逐次的に訓練されてよい。
【0018】
一部の実装において、後知恵モデルニューラルネットワークは、モデルニューラルネットワークの出力が後知恵モデルニューラルネットワークの出力を近似することを学習するのを容易にするために、(たとえば、学習率パラメータを選択することによって)行動選択ニューラルネットワークシステムよりも遅いレートで学習するように構成される。
【0019】
実装において、状態軌道を特徴付ける後知恵モデルニューラルネットワークの出力と、予測された状態軌道を特徴付けるモデルニューラルネットワークの出力とは、それぞれ、環境の1つまたは複数の観測結果の(多次元の)次元を下げられた表現を含む。これは、(予測された)状態軌道の有用な表現のより速いまたは削減された計算の学習を容易にすることができ、状態価値の予測に有用な表現を促すのに役立つ場合がある。たとえば、状態軌道を特徴付ける後知恵モデルニューラルネットワークの出力と、予測された状態軌道を特徴付けるモデルニューラルネットワークの出力とが、それぞれ、それらの入力の次元未満の、または20、10、もしくは5未満の次元を有する特徴ベクトルを含んでよい(しかし、スカラではない)。
【0020】
モデルニューラルネットワークおよび後知恵モデルニューラルネットワークを訓練することは、オンラインまたはオフラインで(たとえば、方策オフ型で)実行されてよい。訓練がオンラインで実行される場合、k状態バッファが設けられてよく、その結果、訓練は、過去のk状態を効果的に提供する場合がある。
【0021】
したがって、方法は、エージェントの環境とのインタラクションの結果として生成された軌道を表すデータを記憶するメモリを維持するステップをさらに含んでよく、各軌道は、後知恵モデルニューラルネットワークを訓練するための、少なくとも、環境の状態を特徴付ける観測結果および環境のその後の状態を特徴付ける一連のその後の観測結果を特定する一連の時間ステップの各々におけるデータを含む。
【0022】
行動選択ニューラルネットワークシステムの方策オフ型の訓練に関しては、再生バッファ(replay buffer)が、環境の状態を特徴付ける観測結果と、観測結果に応答してエージェントによって実行された行動と、エージェントの行動の実行に応答して受け取られた報酬と、環境の次の状態を特徴付ける観測結果とを含むタプル、たとえば、タプルのシーケンスを記憶してよい。
【0023】
概して、行動選択ニューラルネットワークシステムを訓練するステップは、状態価値ニューラルネットワークを使用して決定された(推定された)環境の現在の状態に関する状態価値または状態行動価値と、環境の現在の状態に関する推定されたリターンまたは状態行動価値との間の差に依存する目的関数の勾配を逆伝播することを含んでよい。
【0024】
行動選択ニューラルネットワークシステムは、たとえば、SARSA、Q学習、および(状態価値の学習された推定値がベースラインとして使用される)アドバンテージアクタークリティック(advantage actor-critic)技術を含むアクタークリティック(actor-critic)技術を含む任意の強化学習方法を使用して訓練されてよい。行動選択ニューラルネットワークシステムからの出力は、行動、たとえば、連続的行動を直接示してよく、または行動が選択される分布をパラメータによって表してよく、または行動スコアもしくはQ値を直接出してよく、または行動スコアもしくはQ値が選択される分布をパラメータによって表してよい。強化学習の訓練方法は、決定的(deterministic)または確率的である場合があり、たとえば、複数のアクターおよび/またはラーナーを用いる分散型の方法である場合がある。
【0025】
したがって、本明細書において説明される技術は、たとえば、方策と、任意で、価値関数とを直接パラメータによって表す方策に基づくシステム(たとえば、アドバンテージアクタークリティック(A3C)システム、Mnihら、2016年、またはその変化型)、出力が、行動を決定するための行動価値関数および任意で状態の価値を近似する、深層Q学習ネットワーク(DQN: Deep Q-learning Network)システムもしくはダブルDQNシステムなどのQ学習システム、DDPG(Lillicrapら、2015年)もしくはその変化型などの連続制御強化学習システム、またはIMPALA(重要度加重アクターラーナー(Importance-Weighted Actor-Learner))、Espholtら、arXiv:1802.01561または再帰的再生分散DQN(Recurrent Replay Distributed DQN) (R2D2)、Kapturowskiら、ICLR 2019などの分散型アクタークリティックもしくはQ値に基づく強化学習システムを含む強化学習システムと併せて使用されてよい。
【0026】
一部の実装において、行動選択ニューラルネットワークシステムは、エージェントによって実行される行動を選択するかまたは選択することを学習するための状態価値または状態行動価値(Q値)を生成するための状態価値ニューラルネットワークを含んでよい。このシステムは、モデルニューラルネットワークと共通のパラメータを有する場合がある。一部の実装において、行動選択ニューラルネットワークシステムは、行動を選択するための、可能な行動全体にわたる確率分布を定義するポリシー出力、たとえば、所定の組の各行動に関するそれぞれのスコアを生成するポリシーニューラルネットワーク(またはポリシーヘッド(policy head))と、状態の価値を表す出力(たとえば、入力された観測結果によって特徴付けられる状態から始まる、エージェントによって受け取られる推定された長期的な報酬)を生成する価値ニューラルネットワーク(または価値ヘッド(value head))とを含んでよい。
【0027】
たとえば、一部の実装において、行動選択ニューラルネットワークシステムは、1つもしくは複数の再帰型ニューラルネットワーク(RNN)層を含むか、または1つもしくは複数のRNN層から入力を受け取ってよい。これらは、行動選択ニューラルネットワークシステムと、後知恵価値ニューラルネットワークおよび/または状態価値ニューラルネットワークとの両方によって共有されてよい。たとえば、RNN層の1つまたは複数の内部状態または隠れ層の表現が、行動選択ニューラルネットワークシステムならびに後知恵価値ニューラルネットワークおよび/または状態価値ニューラルネットワークの各々への入力として提供されてよい。1つまたは複数のRNN層は、環境の状態を特徴付ける各観測結果からのデータを受け取ってよい。実装において、RNN層は、後知恵を使用して訓練されない。
【0028】
一部の実装において、行動選択ニューラルネットワークシステムは、1組の離散的な行動の各々に関して行動スコアまたはQ値が決定されるQ学習プロセスを実施してよい。行動スコアは、行動選択ニューラルネットワークシステムから出力されてよく、または行動選択ニューラルネットワークシステムによりパラメータによって表された分布からサンプリングされてよい。そして、後知恵価値ニューラルネットワークおよび/または状態価値ニューラルネットワークは、行動スコアの対応する組を生成するように構成されてよい。時間ステップtの訓練目標は、たとえば、行動スコアを表す単一のスカラ値を決定することによって、または行動選択ニューラルネットワークシステムからの各行動スコア(もしくは分布)と後知恵価値ニューラルネットワークからの対応する行動スコア(もしくは分布)との間のそれぞれの差を決定することによって、行動スコアのこの対応する組から決定されてよい。
【0029】
一部の実装において、行動選択ニューラルネットワークシステムは、行動選択ニューラルネットワークシステムが行動選択ポリシー出力と価値推定出力(クリティック)との両方を生成するように構成されるアクタークリティックプロセスを実施してよい。価値の推定値は、環境の現在の状態が与えられたとして、行動選択ネットワークのパラメータの現在の値に従ってエージェントによって実行される将来の行動を選択した結果として生じるリターン、たとえば、時間割引されたリターンの推定値を表す。たとえば、推定されたnステップ先読みリターン(n-step look-ahead return)が、
【数1】
によって与えられてよく、式中、γは、0から1までの間の割引率であり、r
t+iは、時間ステップt + iにおいて受け取られた報酬であり、V(o
t+n)は、時間ステップt + nにおける価値の推定値を指す。時間割引されたリターンは、後知恵価値ニューラルネットワークのためおよび状態価値ニューラルネットワークのための訓練目標として使用されてよい。
【0030】
行動選択ニューラルネットワークシステムがアクタークリティックに基づく手法を実施する場合(またはそれ以外の手法を実施する場合)、行動選択ニューラルネットワークシステムは、状態価値および行動選択(ポリシー)を定義する別々の出力を提供してよい。そのようなシステムにおいては、環境の現在の状態を特徴付ける観測結果およびモデルニューラルネットワークの出力が、状態価値および行動選択(ポリシー)出力を生成するために行動選択ニューラルネットワークシステムによって処理される。たとえば、観測結果は、1つまたは複数のRNN層によって処理され、その後、たとえば、行動選択(ポリシー)出力(および状態価値出力)を含む行動選択出力を生成するために1つまたは複数の後続のニューラルネットワーク層においてモデルニューラルネットワークの出力と組み合わされてよい。
【0031】
大まかに言って、後知恵価値ニューラルネットワークおよび状態価値ニューラルネットワークは、それぞれ、状態軌道を特徴付ける後知恵モデルニューラルネットワークの出力および予測された状態軌道を特徴付けるモデルニューラルネットワークの出力にそれぞれ依存する状態価値かまたは状態行動価値(Q値)のベクトルかのどちらかを生成するように構成されてよい。
【0032】
概して、システムの実装において使用される観測結果は、たとえば、畳み込みまたはその他のニューラルネットワークによって前処理されてよい。
【0033】
モデルニューラルネットワークが訓練されると、後知恵モデルニューラルネットワークは、省略されてよい。つまり、システムは、後知恵モデルニューラルネットワークが存在しなくてもタスクを実行するために使用されてよい。
【0034】
したがって、タスクを実行するために環境内でエージェントによって実行される行動を選択する方法は、環境の現在の状態を特徴付ける観測結果を受け取るステップを含んでよい。方法は、現在の状態から始まる環境の一連のk個の予測された将来の状態を含む予測された状態軌道を特徴付けるモデルニューラルネットワーク出力、たとえば、多次元特徴ベクトルを生成するためにモデルニューラルネットワークを使用して観測結果を処理するステップをさらに含んでよい。方法は、タスクを実行するためにエージェントによって実行される行動を選択するための行動選択出力を生成するために、環境の現在の状態を特徴付ける観測結果およびモデルニューラルネットワーク出力を処理するステップをさらに含んでよい。
【0035】
方法のさらなる特徴は、すべて上述のとおりである可能性があるが、後知恵モデルニューラルネットワークが省略される。
【0036】
(訓練された)行動選択ニューラルネットワークシステムと(訓練された)モデルニューラルネットワークとの組合せを含む、タスクを実行するためのニューラルネットワークコンピュータシステムも提供される。
【0037】
別の態様においては、タスクを実行するために環境内でエージェントによって実行される行動を選択するための行動選択ニューラルネットワークシステムを含む強化学習ニューラルネットワークシステムが提供される。行動選択ニューラルネットワークシステムは、i)環境の現在の状態を特徴付ける観測結果、および/またはii)モデルニューラルネットワークの出力から入力データを受け取り、エージェントによって実行される行動を選択するための行動選択出力を生成するために行動選択ニューラルネットワークシステムのパラメータに従って入力データを処理するように構成されてよい。システムは、モデルニューラルネットワークをさらに含んでよい。モデルニューラルネットワークは、環境の現在の状態を特徴付ける観測結果からの入力を受け取るように構成されてよい。モデルニューラルネットワークの出力は、現在の状態から始まる環境の一連のk個の予測された将来の状態を含む予測された状態軌道を特徴付けてよい。
【0038】
システムは、時間ステップtにおける環境の状態から始まる環境の一連のk個の状態を含む状態軌道を特徴付ける出力を有する後知恵モデルニューラルネットワークを、時間ステップtおよび一連のk個のその後の時間ステップにおける環境の状態を特徴付ける観測結果を処理し、時間ステップtの訓練目標を使用して後知恵モデルニューラルネットワークのパラメータを調整することによって訓練するように構成されてよい。システムは、後知恵モデルニューラルネットワークの出力を近似するようにモデルニューラルネットワークの出力を訓練するようにさらに構成されてよい。
【0039】
一部の実装において、環境は、実世界の環境であり、エージェントは、実世界の環境とインタラクションする、ロボット、乗り物、またはその他の機械的エージェントなどの機械的エージェントである。環境は、実世界の環境のシミュレーションであってもよく、エージェントは、機械的エージェントのシミュレーションであってよく、その場合、システム/方法は、シミュレーションされた環境において訓練されてよく、それから、実世界の環境においてエージェントを制御するためにデプロイされてよい。
【0040】
本明細書に記載の対象は、以下の利点のうちの1つまたは複数を実現するように特定の実施形態において実装され得る。
【0041】
これらの技術を使用する強化学習方法およびシステムは、以前の技術よりも少ない計算能力を使用して、より速く、より効果的に学習することができる可能性がある。モデルニューラルネットワークは、後知恵モデルニューラルネットワークを介して、データのより豊かな組、すなわち、軌道の観測結果から学習することができ、環境の状態の価値の推定に関連する特徴を選択的に学習することができる場合がある。これは、特に、モデルニューラルネットワークが観測結果の次元を下げられた表現を学習する場合である。また、次元を下げられたモデルを使用することは、学習プロセスを簡単にし得る。
【0042】
大まかに言えば、後知恵モデルニューラルネットワークは、現状の状態価値の予測に最も有用な将来の観測結果の特徴を学習することができ、これらが、モデルニューラルネットワークに伝えられる。その結果、学習は、一部のその他の技術よりも速く、より少ないメモリおよび計算能力を必要とする。説明されるシステムおよび方法は、特に複雑な環境において、その他の技術が実行することを学習し得ないタスクを実行することを学習すること、またはその他の技術よりもタスクをうまく実行することを学習することができる場合がある。説明されるシステムおよび方法は、それらが広範囲の強化学習タスクに適用可能であり、手動で作成された補助報酬(auxiliary reward)を必要としないという点で幅が広い。
【0043】
本明細書に記載の対象の1つまたは複数の実装の詳細が、添付の図面および以下の説明に記載されている。対象のその他の特徴、態様、および利点は、説明、図面、および請求項から明らかになるであろう。
【図面の簡単な説明】
【0044】
【
図1】後知恵モデリングを実装する強化学習システムを示す図である。
【
図2】
図1の強化学習システムを訓練するための例示的なプロセスの流れ図である。
【
図3a】
図1の強化学習システムの例の訓練および動作を概略的に示す図である。
【
図3b】
図1の強化学習システムの例の訓練および動作を概略的に示す図である。
【
図3c】
図1の強化学習システムの例の訓練および動作を概略的に示す図である。
【
図3d】
図1の強化学習システムの例の訓練および動作を概略的に示す図である。
【
図4】
図3a~
図3dに従って強化学習システムを訓練するための例示的なプロセスの流れ図である。
【
図5a】アクタークリティック強化学習システムのための、
図1の強化学習システムの例示的なニューラルネットワークアーキテクチャを示す図である。
【
図5b】Q学習強化学習システムのための、
図1の強化学習システムの例示的なニューラルネットワークアーキテクチャを示す図である。
【発明を実施するための形態】
【0045】
図において、同様の参照番号は、同様要素を示す。
【0046】
本明細書は、ニューラルネットワークに基づく強化学習システムおよび方法を説明する。訓練中、システム/方法は、後知恵によって、環境からの報酬信号によって示される所望の結果を達成するために重要であると特定され得る、システムが動作する環境の側面をモデリングする。
【0047】
実装においては、単にスカラのリターンから学習するか、または環境の完全なモデルを決定しよう試みるのではなく、システム/方法は、状態の将来の軌道からのリターンを特徴付ける少数の特徴をモデリングすることを学習する。訓練中、この将来の軌道は、それが既に発生したために知られている--つまり、モデルは後知恵を使用する。しかし、システム/方法が行動を行うようにエージェントを制御している特定のときに、この将来の情報は、利用可能でない。したがって、第2のモデルが、後知恵モデルを近似するように、ただし現在(および過去)の情報のみを用いて訓練され、この第2のモデルが、行動を選択するために使用される。
【0048】
本明細書において、後知恵を使用するモデルは、後知恵モデルニューラルネットワークによって実装され、第2のモデルは、モデルニューラルネットワークによって実装される。現在の時間ステップにおいて、後知恵モデルニューラルネットワークは、追加の入力として将来の観測結果からのデータを受け取っており、訓練目標、たとえば、状態価値の推定値または状態行動(Q)価値の推定値を学習するのに有用であるこれらの観測結果の特徴を学習する。モデルニューラルネットワークは、現在の時間ステップにおいて利用可能な1つまたは複数の観測結果からこれらの特徴を予測することを学習する。
【0049】
図1は、1つまたは複数の場所の1つまたは複数のコンピュータにコンピュータプログラムとして実装される場合がある強化学習システム100を示す。強化学習システム100は、複数の時間ステップtの各々において、環境104内でエージェント102によって実行される行動a
tを選択する。各時間ステップにおいて、強化学習システム100は、本明細書においては観測結果o
tと呼ばれる環境の状態を特徴付けるデータを受け取り、行動を選択するために処理する。観測結果は、環境の画像および/または環境からのその他のセンサーもしくは入力データを含んでよい。
【0050】
また、強化学習システム100は、行動atを実行した結果として報酬rtを受け取ってよい。概して、報酬は、数値であり、環境の任意のイベントまたは側面に基づいてよい。たとえば、報酬rtは、エージェント106がタスク(たとえば、操作タスク、もしくは環境内の目標位置へのナビゲート)を成し遂げたかどうか、またはタスクの完遂に向けたエージェント106の進捗を示す場合がある。
【0051】
一部の実装において、環境は、実世界の環境、または実世界の環境のシミュレーションである。エージェントは、実世界の環境とインタラクションする機械的エージェント、またはそのような機械的エージェントのシミュレーション、または機械的エージェントの制御システムを含んでよい。
【0052】
たとえば、エージェントは、環境の中をナビゲートする自律的なまたは半自律的な乗り物の制御システムを含む場合がある。これらの実装において、行動は、乗り物を制御するための可能な制御入力であってよく、エージェントが達成しようと試みている結果は、実世界の環境内の乗り物のナビゲーションに関する目的を満たすことである。たとえば、目的は、目的地に到達すること、乗り物のすべての乗員の安全を保証すること、目的地に到達するのに使用されるエネルギーを最小化すること、乗員の快適性を最大化することなどの1つまたは複数の目的を含み得る。別の例として、エージェントは、特定のタスクを達成するため、たとえば、環境内の関心のある物体の位置を特定するため、または関心のある物体を拾い上げるかもしくは環境内の特定の場所に移動させるために環境とインタラクションするロボットまたはその他の機械的エージェントであってよい。
【0053】
これらの実装において、行動は、ロボットを制御するため、つまり、ロボットまたは乗り物の物理的な挙動を制御するための可能な制御入力であってよい。たとえば、行動は、ロボットを制御するための制御入力、たとえば、ロボットの関節のトルクまたはより高レベルの制御コマンド、あるいは自律的なまたは半自律的な陸上または空または海の乗り物を制御するための制御入力、たとえば、乗り物の舵面もしくはその他の制御要素に対するトルクまたはより高レベルの制御コマンド、あるいは、たとえば、モータ制御データであってよい。言い換えると、行動は、たとえば、ロボットの1つもしくは複数の関節または別の機械的エージェントの部分に関する位置、速度、または力/トルク/加速度データを含み得る。行動データは、これらの行動に関するデータおよび/もしくはモータ制御データなどの電子制御データ、またはより広く、その制御が環境の観測される状態に影響を与える環境内の1つもしくは複数の電子デバイスを制御するためのデータを含んでよい。たとえば、自律的なまたは半自律的な陸上または空または海の乗り物の場合、行動は、乗り物のナビゲーション、たとえば操舵、ならびに移動、たとえば制動および/または加速を制御するための行動を含む場合がある。
【0054】
概して、観測結果は、たとえば、エージェントが環境とインタラクションするときに観測結果を捕捉するための画像、物体の位置データ、およびセンサーデータ、たとえば、イメージ、距離、もしくは位置センサーからまたはアクチュエータからのセンサーデータのうちの1つまたは複数を含んでよい。ロボットまたはその他の機械的なエージェントまたは乗り物の場合、観測結果は、同様に、エージェントの1つまたは複数の部分の位置、直線もしく角速度、力、トルク、または加速度、および大域的または相対的姿勢のうちの1つまたは複数を含む可能性がある。観測結果は、1、2、または3次元で定義される可能性があり、絶対的なおよび/または相対的な観測結果である可能性がある。たとえば、ロボットの場合、観測結果は、ロボットの現在の状態を特徴付けるデータ、たとえば、関節の位置、関節の速度、関節の力、トルク、または加速度、ならびにアームなどのロボットの一部および/またはロボットによって保持された物の大域的または相対的姿勢のうちの1つまたは複数を含んでよい。観測結果は、たとえば、モータ電流もしくは温度信号などの感知された電子信号、および/またはたとえばカメラもしくはLIDARセンサーからの画像もしくは動画データ、たとえば、エージェントのセンサーからのデータもしくは環境内のエージェントとは別れて置かれるセンサーからのデータも含む場合がある。
【0055】
報酬、すなわち、環境からの外部報酬は、たとえば、1つもしくは複数の目標位置、1つもしくは複数の目標姿勢、または1つもしくは複数のその他の目標構成に近づくことまたはそれらを達成することに関する1つまたは複数の報酬を含んでよい。たとえば、ロボットに関して、報酬は、関節の向き(角度)もしくは速度、エンドエフェクタの位置、重心の位置、またはボディの部分のグループの位置および/もしくは向きに依存する場合がある。コスト(すなわち、負の報酬)が、たとえば、物体とインタラクションするときの加えられる力、エネルギー使用量、またはロボットのボディの部分の位置に応じて同様に定義されてよい。
【0056】
システム/方法は、倉庫、物流、もしくは工場自動化のタスク、たとえば、保管されている商品もしくは商品もしくは商品の製造中の商品の部品の収集、配置、もしくは移動などのタスクを実行するために乗り物もしくはロボットを訓練するために使用されてよく、または学習されるタスクは、荷物配送制御タスクを含んでよい。行動は、操舵に関連する行動またはその他の方向制御行動を含んでよく、観測結果は、その他の乗り物またはロボットの位置または運動の観測結果を含んでよい。
【0057】
ロボットまたは乗り物は、実世界の環境内で使用される前にシミュレーションで訓練される場合がある。後述されるように、システムが訓練されると、後知恵モデルニューラルネットワークはもはや必要とされず、省略されてよい。
【0058】
一部の実装において、実世界の環境は、製造工場またはサービス施設である場合があり、観測結果は、工場または施設の運転、たとえば、電力消費などリソースの使用に関連する場合があり、エージェントは、たとえば、リソースの使用を削減するために工場/施設における行動または動作を制御する場合がある。
【0059】
したがって、一部の応用において、エージェントは、電子的エージェントである場合があり、観測結果は、電流、電圧、電力、温度、およびその他のセンサーなどの工場またはサービス施設の一部を監視する1つまたは複数のセンサーからのデータ、ならびに/または電子的なおよび/もしくは機械的な機器の機能を表す電子信号を含む場合がある。エージェントは、機器を含む実世界の環境における、たとえば、データセンター、サーバファーム、または系統配電もしくは配水システムなどの施設における行動、あるいは製造工場またはサービス施設における行動、あるいは太陽光発電所もしくは風力発電所などの発電施設における行動を制御する場合がある。そのとき、観測結果は、工場または施設の運転に関連する場合があり、たとえば、機器による電力もしくは水の使用の観測結果、または発電もしくは配電制御の観測結果、またはリソースの使用もしくは廃棄物生成の観測結果を含む場合がある。行動は、工場/施設の機器を制御するかもしくは工場/施設の機器に運転条件を課す行動、および/または工場/施設の運転の設定の変更をもたらす、たとえば、工場/施設の構成要素を調整するかもしくはオン/オフするための行動を含む場合がある。学習されるタスクは、対応する報酬、たとえば、リソースの使用をともなう制御タスク、たとえば、水または電力制御、環境影響制御、電気またはその他の電力消費制御、加熱、冷却、または温度制御、および広く施設内の物の制御である場合がある。報酬は、そのような制御タスクの実行に依存する1つまたは複数の報酬を含んでよい。
【0060】
一部のその他の実装において、実世界の環境は、再生エネルギー発電所である場合があり、観測結果は、たとえば、現在のまたは将来の計画された発電を最大化するための発電所の運転に関連する場合があり、エージェントは、これを達成するために発電所における行動または動作を制御する場合がある。
【0061】
したがって、概して、実装において、エージェントは、機械的または電子的エージェントであってよく、行動は、機械的または電子的エージェントを制御するための制御入力を含んでよい。観測結果は、センサー、たとえば、イメージセンサーに由来する場合があり、および/またはエージェントからの電気的もしくは機械的な信号から導出される場合がある。
【0062】
一部のさらなる実装において、環境は、実世界の環境であり、エージェントは、ユーザに対して提示するための出力を生成するコンピュータシステムである。たとえば、環境は、各状態が患者の、すなわち、患者の健康を特徴付ける健康データによって反映されるそれぞれの患者の状態であるような患者診断環境である場合があり、エージェントは、患者のための治療法を提案するためのコンピュータシステムである場合がある。この例において、1組の行動の中の行動は、患者のための可能な医療処置であり、達成されるべき結果は、患者の現在の健康の維持、患者の現在の健康の改善、患者の医療費の最小化などのうちの1つまたは複数を含み得る。観測結果は、イメージセンサーもしくはバイオマーカーセンサーなどの1つもしくは複数のセンサーからのデータを含んでよく、および/または、たとえば、医療記録からの処理されたテキストを含んでよい。
【0063】
別の例として、環境は、各状態がタンパク質鎖または1つもしくは複数の中間生成物もしくは前駆化学物質のそれぞれの状態であるような化学合成またはタンパク質フォールディング環境である場合があり、エージェントは、タンパク質鎖をどのようにして折り畳むべきかまたは化学物質をどのようにして合成すべきかを決定するためのコンピュータシステムである。この例において、行動は、タンパク質鎖を折り畳むための可能なフォールディング行動または前駆化学物質/中間生成物を組み立てるための行動であり、達成されるべき結果は、たとえば、タンパク質が安定するようにおよびタンパク質が特定の生物学的機能を達成するようにタンパク質を折り畳むこと、または化学物質のための妥当な合成経路を提供することを含んでよい。別の例として、エージェントは、人間のインタラクションなしに自動的にシステムによって選択されたタンパク質フォールディング行動または化学合成ステップを実行または制御する機械的エージェントである場合がある。観測結果は、タンパク質もしくは化学物質/中間生成物/前駆体の状態の直接的もしくは間接的な観測結果を含む場合があり、および/またはシミュレーションから導出される場合がある。
【0064】
一部の応用において、エージェントは、タスクを実行するために自律的におよび/またはその他のソフトウェアエージェントもしくは人とともに動作するように構成されたスタティックまたはモバイルソフトウェアエージェント、すなわち、コンピュータプログラムである場合がある。たとえば、環境は、集積回路配線環境である場合があり、システムは、ASICなどの集積回路の相互接続線を配線するための配線タスクを実行することを学習するように構成される場合がある。そのとき、報酬(またはコスト)は、インターコネクトの抵抗、静電容量、インピーダンス、損失、速度、または伝搬遅延、幅、厚さ、または形状などの物理的配線のパラメータ、および設計規則などの1つまたは複数の配線測定基準に依存する場合がある。観測結果は、構成要素の位置および相互接続の観測結果である場合があり、行動は、たとえば、構成要素の位置もしくは向きを定義する構成要素配置行動、ならびに/またはインターコネクト配線行動、たとえば、インターコネクトの選択および/もしくは配置行動を含む場合がある。したがって、配線タスクは、構成要素を配置すること、すなわち、集積回路の構成要素の位置および/もしくは向きを決定すること、ならびに/または構成要素間の相互接続の配線を決定することを含んでよい。配線タスクが完了されると、ASICなどの集積回路が、決定された配置および/または配線に従って製造されてよい。
【0065】
一部の応用において、環境は、データパケット通信ネットワーク環境である場合があり、エージェントは、通信ネットワーク上でデータのパケットをルーティングするルータを含む場合がある。行動は、データパケットルーティング行動を含む場合があり、観測結果は、たとえば、ルーティング経路の長さ、帯域幅、負荷、ホップ数、経路コスト、遅延、最大送信単位(MTU)、および信頼性の測定基準などのルーティング測定基準を含むルーティングテーブルの観測結果を含む場合がある。学習されるタスクは、ルーティング測定基準のうちの1つまたは複数を最大化または最小化する報酬/コストを有するパケットルーティングタスクを含む場合がある。一部のその他の応用において、エージェントは、たとえば、モバイルデバイスおよび/またはデータセンターのコンピューティングリソースへの計算タスクの分散を管理するソフトウェアエージェントである。これらの実装において、観測結果は、計算および/もしくはメモリ容量、またはインターネットアクセス可能なリソースなどのコンピューティングリソースの観測結果を含んでよく、行動および関連タスクは、特定のコンピューティングリソースに計算タスクを割り振ることを含んでよい。報酬は、たとえば、コンピューティングリソースの利用、電力、帯域幅、および計算速度に依存する場合がある。
【0066】
一部のその他の応用において、環境は、インターネットまたはモバイル通信環境であり、エージェントは、ユーザのためのパーソナライズされた推薦を管理するソフトウェアエージェントである。観測結果は、ユーザによって行われた以前の行動(を特徴付ける特徴)を含む場合があり、タスクは、ユーザに対してコンテンツアイテムなどのアイテムを推薦する行動を含む場合がある。報酬は、ユーザが(コンテンツ)アイテムを推薦されることに好意的に反応する推定された尤度(likelihood)、またはユーザによって(任意である期間内に)受け取られた推薦の数を含む場合があり、コストは、1つまたは複数の推薦されたアイテムの好適さ、推薦されたアイテムのコストに依存する可能性がある。さらなる例として、行動は、広告を提示することを含む場合があり、観測結果は、広告インプレッションまたはクリック数もしくはクリック率を含む場合があり、報酬は、1人または複数のユーザによって取得されたアイテムまたはコンテンツの以前の選択を特徴付ける場合がある。
【0067】
一部のさらなる応用において、環境は、サイバーセキュリティ環境である。たとえば、観測結果は、コンピュータネットワークまたは分散コンピューティングシステムの状態を特徴付けるデータを含む場合があり、行動は、たとえば、1つまたは複数のその他のエージェントによるサイバーセキュリティ攻撃からコンピュータシステムを守るために実行される1つまたは複数のタスクを定義する場合がある。報酬は、システム/環境セキュリティの尺度、たとえば、検出された攻撃の数に依存する1つまたは複数の報酬を含む場合がある。
【0068】
概して、上述の応用においては、環境が実世界の環境のシミュレーションされたバージョンである場合、システム/方法がシミュレーションで訓練されると、その後、システム/方法は、実世界の環境に適用されてよい(および任意で後知恵モデルニューラルネットワークは、省略されてよい)。つまり、システム/方法によって生成された制御信号が、実世界の環境からの観測結果に応答して実世界の環境においてタスクを実行するようにエージェントを制御するために使用されてよい。任意で、システム/方法は、実世界の環境からの1つまたは複数の報酬に基づいて、実世界の環境において訓練を継続してよい。
【0069】
一部のその他の実装において、環境は、シミュレーションされた環境であり、エージェントは、シミュレーションされた環境とインタラクションする1つまたは複数のコンピュータプログラムとして実装される。たとえば、シミュレーションされた環境は、ユーザが目標を達成するためにコンピュータ化されたエージェントと競争する仮想環境である場合があり、エージェントは、コンピュータ化されたエージェントである。この例において、1組の行動の中の行動は、コンピュータ化されたエージェントによって実行され得る可能な行動であり、達成されるべき結果は、たとえば、ユーザとの競争に勝つことであってよい。一部の実装において、環境は、シミュレーションされた環境であり、エージェントは、シミュレーションされた環境とインタラクションする1つまたは複数のコンピュータプログラムとして実装される。たとえば、シミュレーションされた環境は、ビデオゲームである場合があり、エージェントはビデオゲームをプレイするシミュレーションされたユーザである場合がある。別の例として、シミュレーションされた環境は、運動シミュレーション環境、たとえば、運転シミュレーションまたはフライトシミュレーションである場合があり、エージェントは、運動シミュレーションによってナビゲートするシミュレーションされた乗り物である。これらの実装において、行動は、シミュレーションされたユーザまたはシミュレーションされた乗り物を制御するための制御入力であってよい。
【0070】
任意で、上述の実装のいずれにおいても、任意の所与の時間ステップにおける観測結果は、環境を特徴付ける際に有益である可能性がある前の時間ステップからのデータ、たとえば、前の時間ステップにおいて実行された行動、前の時間ステップにおいて受け取られた報酬などを含む場合がある。
【0071】
再び
図1を参照すると、強化学習システム100は、現在の時間ステップtにおける環境の状態から始まる環境の一連のk個の状態を含む状態軌道を特徴付けるデータを受け取り、処理し、対応する特徴ベクトル出力φを提供する後知恵モデルニューラルネットワーク130を含む。受け取られ、処理されたデータは、時間tの後に発生する観測結果、たとえば、環境の対応する状態を表すo
t+1...o
t+kのうちの1つまたはシーケンスから導出される。
【0072】
訓練エンジン150は、強化学習システム100の訓練目標を使用して後知恵モデルニューラルネットワークのパラメータを調整するように構成される。たとえば、後知恵モデルニューラルネットワークの出力が、訓練目標の推定値を決定するために使用されてよく、後知恵モデルニューラルネットワークのパラメータが、推定値を改善するために、たとえば、誤差逆伝播法によって調整されてよい。
【0073】
強化学習システム100は、環境の現在の状態を特徴付ける観測結果o
tから導出された入力を受け取るモデルニューラルネットワーク120も含む。訓練エンジン150は、たとえば、2つの出力間の差を測定する、2乗損失(squared loss)または交差エントロピー損失などの損失関数に基づいて、後知恵モデルニューラルネットワークの出力を近似するようにモデルニューラルネットワーク120の特徴ベクトル出力
【数2】
を訓練するように構成される。
【0074】
したがって、モデルニューラルネットワーク120の特徴ベクトル出力が、現在の状態から始まる環境の一連のk個の予測された将来の状態を含む予測された状態軌道を特徴付けるように訓練される。後知恵モデルニューラルネットワークが訓練目標を使用して訓練されるので、モデルニューラルネットワーク120の特徴ベクトル出力も、この目標を推定するのに有用な特徴を学習する。
【0075】
実装において、訓練目標は、環境の現在の状態の状態価値または状態行動価値を含む。これは、強化学習システム100の行動選択ポリシーに従うときに、現在の状態から始まる時間ステップtのリターン(状態価値)、または特定の行動が最初に実行されるようにして現在の状態から始まる時間ステップtのリターン(状態行動価値)であってよい。概して、リターンは、エージェントが強化学習システムによって選択された行動を実行することによって環境とインタラクションする場合に環境から受け取られる累積的な報酬、たとえば、将来の報酬の長期的な時間割引された総和の推定値である。
【0076】
強化学習システム100は、行動選択ニューラルネットワークシステム110を含む。これは、観測結果o
tとモデルニューラルネットワーク120の特徴ベクトル出力
【数3】
との両方を受け取り、この情報を使用して、エージェントによって実行される行動を選択するための行動選択出力を生成する。
【0077】
行動選択ニューラルネットワークシステム110は、任意の強化学習手法、たとえば、Q学習技術またはアクタークリティック技術を実装してよい。
【0078】
たとえば、行動選択出力は、エージェントによって実行され得る1組の可能な行動の中の各行動につき1つずつのQ値のベクトルを含んでよい。そして、最大のQ値を有する行動が、選択されてよく、またはQ値は、各可能な行動に関するそれぞれの確率値を生成するために、たとえば、ソフトマックス関数を使用して処理されることが可能であり、それらの確率値が、エージェントによって実行される行動を選択するために使用され得る。
【0079】
アクタークリティック手法において、行動選択出力は、時間ステップにおいてエージェントによって実行され得る1組の可能な行動の中の各行動に関するそれぞれの数値的な確率値を含む行動選択ポリシー出力を含んでよい。そのとき、エージェントによって実行される行動は、最も高い確率値を有する行動を選択することによって、または行動に関する確率値に従って行動をサンプリングすることによって決定されてよい。別の例として、行動選択ポリシー出力は、たとえば、エージェントによって実行され得る1組の可能な行動の中の行動をインデックス付けすることによって、またはエージェントによって行われる連続値を取る(continuous valued)行動に関する値を定義する連続値出力を提供することによって、エージェントによって実行される行動を直接定義してよい。アクタークリティック手法においては、推定された状態価値が、訓練中に行動選択ニューラルネットワークシステムのパラメータを調整するときに使用されるクリティックとして働く。
【0080】
図1において、後知恵モデルニューラルネットワーク130は、訓練中にのみ使用され、したがって、これと、
図1に破線で示されたその他の要素とは、訓練されたシステム/方法から省略されてよい。
【0081】
図2は、
図1の強化学習システムを訓練するための例示的なプロセスの流れ図である。プロセスは、観測結果および報酬を受け取り(ステップ200)、モデルニューラルネットワーク120を使用して現在の観測結果から導出されたデータを処理する(ステップ202)。モデルニューラルネットワーク120の出力が、エージェントによって実行される行動を選択するために、現在の観測結果から導出されたデータと併せて行動選択ニューラルネットワークシステム110によって処理される(ステップ204)。
【0082】
1つまたは複数の将来の観測結果から導出され、k個の時間ステップにわたる環境の状態の将来の軌道を特徴付けるデータが、後知恵モデルニューラルネットワーク130によって処理される(ステップ206)。これは、たとえば、現在の観測結果の処理をk時間ステップだけ遅らせることによって行われてよい。それから、プロセスは、現在の時間ステップの訓練目標を使用して後知恵モデルニューラルネットワーク130のパラメータを調整し(ステップ208)、モデルニューラルネットワーク120が後知恵モデルニューラルネットワーク130の出力を近似する出力を提供するように、モデルニューラルネットワーク120のパラメータを調整する(ステップ210)。
【0083】
図2のプロセスは、たとえば、いくつかの時間ステップに関して訓練すること、もしくはタスクの完了を示す報酬を取得することなどの終了基準が達せられるまで、または無期限に繰り返し実行される。ステップは、示された順序とは異なる順序で実行されてよい。訓練の後、ステップ206~210は、省略されてよい。
【0084】
図3a~
図3dは、
図1の強化学習システム100の例の訓練および動作を概略的に示す。
図3aは、強化学習システムの例示的なアーキテクチャを概略的に示し、
図3b~
図3dは、システムの訓練を示す。
図3a~
図3dにおいて、ノードは、ニューラルネットワークの出力を示し、エッジはそれらの出力につながる学習可能な変換、すなわち、1つまたは複数のニューラルネットワーク層を示す。エッジは、学習されるとき、太字であり、スラッシュ付きのゼロは、誤差逆伝播法において勾配が停止されることを示す。
【0085】
図3a~
図3dの特定の例は、アクタークリティック強化学習システムに関するものであり、予測された状態価値を示す。Q学習システムの訓練および動作は、同様であるが、状態行動価値を予測する。
【0086】
行動選択ニューラルネットワークシステムは、
図3a~
図3dに明示的に示されていない。アクタークリティック強化学習システムには、行動選択ニューラルネットワーク(図示せず)が含まれてよく、これは、下で説明される状態価値ニューラルネットワークとパラメータを共有してよい。Q学習システムにおいては、Q値のベクトル
【数4】
が、行動を選択するために使用されてよい。
【0087】
図3a~
図3dの特定の例においては、観測結果o
tが、長期短期記憶(LSTM)再帰などの1つまたは複数の再帰型ニューラルネットワーク(RNN)層によって処理される。観測結果は、1つまたは複数の畳み込み(CNN)層(図示せず)によって前処理される場合がある。RNN層は、現在の観測結果および前の内部状態h
t-1に基づいて、概して内部または隠れ状態表現と呼ばれる状態表現h
tを提供する。これは、(よくあるように)環境が部分的にのみ観測可能であるときに有用であり得る。
【0088】
図3a~
図3dにおいて、h
tおよびh
t+kは、それぞれ、時間tおよびt + kにおけるRNN層(複数可)の内部状態を示し、φ
tは、時間tにおける後知恵モデルニューラルネットワーク130の出力を示し、
【数5】
は、時間tにおけるモデルニューラルネットワーク120の出力を示す。後知恵モデルニューラルネットワーク130は、入力h
t+kを処理してφ
tを決定し、モデルニューラルネットワーク120は、入力h
tを処理して
【数6】
を決定する。
【0089】
訓練中、システムは、時間ステップtにおける環境の状態に関する推定された後知恵価値
【数7】
を決定するための後知恵価値関数を実装するために後知恵価値ニューラルネットワークを使用する。
図3a~
図3dにおいてエッジによって示される後知恵価値ニューラルネットワークは、
【数8】
と表記され(図中ではラベル付けされていない)、ニューラルネットワークパラメータθ
1を有する。後知恵価値ニューラルネットワークは、後知恵モデルニューラルネットワークの特徴ベクトル出力φ
tと、観測結果o
tからのデータ、
図3a~
図3dにおけるh
tとの組合せを処理して、
【数9】
を決定する。後知恵モデルニューラルネットワークがパラメータθ
2を有する場合、
【数10】
は、
【数11】
によって与えられてよく、式中、
【数12】
は、時間tに続く軌道における将来の観測結果、行動、および報酬のいずれか、たとえば、時間tに続くk個の観測結果を含む場合がある。
【0090】
システムは、時間ステップtにおける環境の状態に関してモデルベースの価値の推定値v
mを決定するための状態価値ニューラルネットワークも有する。
図3a~
図3dにおいてエッジによって示される状態価値ニューラルネットワークは、
【数13】
と表記され(図中ではラベル付けされていない)、ニューラルネットワークパラメータη
1を有する。実装において、価値の推定値
【数14】
は、行動選択ニューラルネットワークシステム(および入力
【数15】
を有する行動選択ニューラルネットワークシステム)を訓練するために使用される。状態価値ニューラルネットワークは、モデルニューラルネットワークの特徴ベクトル出力
【数16】
と、観測結果o
tからのデータ、
図3a~
図3dにおけるh
tとの組合せを処理して、
【数17】
を決定する。モデルニューラルネットワークがパラメータη
2を有する場合、
【数18】
は、
【数19】
によって与えられてよい。
【0091】
Q学習を使用するシステムにおいて、
【数20】
および
【数21】
は、スカラ状態価値
【数22】
および
【数23】
の代わりに、状態行動価値、すなわちQ値
【数24】
および
【数25】
のそれぞれのベクトルを生成してよい。代替的に、
【数26】
および
【数27】
は、
【数28】
および
【数29】
が確率的に選択されるQ値の分布をパラメータによって表す出力を生成してよい。
【0092】
上記式から、
【数30】
にはh
tよりも追加的な情報がないことが分かるが、それにもかかわらず、
【数31】
は、後知恵でより豊かな信号で訓練されたことの恩恵を受けることができるので、より良い訓練信号をやはり提供し得る。さらに、モデルおよび後知恵モデルの使用は、将来の軌道のボトルネック表現(bottleneck representation)を通して将来の軌道についての情報を強制することができ、したがって、学習された特徴ベクトルは、時間tにおける軌道からのリターンを予測するのに最大限に有用である将来/予測された将来のこれらの特徴を特定する。
【0093】
したがって、実装において、後知恵モデルニューラルネットワークおよびモデルニューラルネットワークからの学習された特徴ベクトル出力は、それらの入力よりも低い次元、たとえば、20未満の次元を有する。これは、学習を容易にすることができる。同様に、将来の観測結果を見ることに制限をかけることが役に立ち得る、すなわち、システムが先読みするステップ数kが、たとえば、20ステップ未満、たとえば、5つの時間ステップ程度に制限されてよい。しかし、システムは、これらのハイパーパラメータの厳密な値に特段敏感ではないようである。
【0094】
図3bは、価値関数損失L
vを訓練するために使用される強化学習システム100のサブセットを強調する。価値関数損失L
vは、価値の推定値
【数32】
と強化学習の訓練目標との間の差の任意の尺度、たとえば、2乗差(平均2乗誤差)であってよい。訓練目標は、時間ステップtのリターンから決定された状態価値であってよい。たとえば、IMPALAに基づく強化学習システム(ibid)において、訓練目標は、Vトレースターゲット(V-trace target)であってよい。
【0095】
Q学習強化学習システムにおいて、価値関数損失L
vは、特定の行動に関する状態行動価値の推定値
【数33】
と、時間ステップtのリターンから決定された特定の行動に対する状態行動価値である場合がある強化学習の訓練目標との間の差の任意の尺度、たとえば、2乗差であってよい。特定の行動は、それぞれがそれぞれの時間ステップに対応する経験タプル(experience tuple)のシーケンスを記憶するメモリからサンプリングされた行動(または行動の軌道のうちの1つ)であってよい。時間ステップtに対応する経験タプルは、観測結果o
t、時間ステップにおいてエージェントによって実行されるように選択された行動a
t、エージェントが選択された行動を実行した後に受け取られた報酬r
t、およびその後の観測結果o
t+1を含んでよい(o
t+1は、たとえば、R2D2、ibidと同様に、タプルのシーケンスを記憶するときに省略される場合がある)。たとえば、R2D2に基づく強化学習システム(ibid)において、訓練目標は、Kapturowskiらの論文で定義されたnステップリターンQターゲット(n-step return Q-target)であってよい。
【0096】
図3bに示されるように、価値関数損失L
vを使用して強化学習システム100を訓練するとき、訓練エンジン150は、損失の勾配を逆伝播して、状態価値ニューラルネットワーク(
【数34】
)のニューラルネットワークパラメータη
1を更新し、さらに、(h
tを生成する)1つまたは複数のRNN層と、存在する場合には1つまたは複数のCNN層のニューラルネットワークパラメータを更新する。モデルニューラルネットワークのパラメータη
2は、価値関数損失L
vを使用して訓練されず、したがって、状態価値ニューラルネットワークに関する限り、
【数35】
は、単なる追加入力である。微分不可能として扱われる量、つまり、勾配が停止される量をバー表記で表すと、これは、
【数36】
のようにまとめられてよい。
【0097】
図3cは、後知恵価値関数損失L
v+を訓練するために使用される強化学習システム100のサブセットを強調する。後知恵価値関数損失L
v+は、推定された後知恵価値
【数37】
と強化学習の訓練目標との間の差の任意の尺度、たとえば、2乗差であってよい。つまり、価値関数損失L
vのためおよび後知恵価値関数損失L
v+のために、同じ強化学習の訓練目標が使用される。したがって、推定された後知恵価値
【数38】
および価値の推定値
【数39】
は、同じ訓練目標を推定することを目的とするが、推定された後知恵価値
【数40】
に関しては後知恵を使用する。
【0098】
図3cに示されるように、後知恵価値関数損失L
v+を使用して強化学習システム100を訓練するとき、訓練エンジン150は、損失の勾配を逆伝播して、後知恵価値ニューラルネットワーク(
【数41】
)のニューラルネットワークパラメータθ
1を更新し、さらに、後知恵モデルニューラルネットワーク(
【数42】
)のニューラルネットワークパラメータθ
2を更新する。実装において、RNN層のパラメータは、後知恵価値関数損失L
v+を使用して訓練されない。
【0099】
したがって、後知恵モデルニューラルネットワークは、観測結果、より詳細には、RNNの内部状態h
t+kによって表される現在の時間ステップtからの将来の観測結果の軌道から導出されたデータを使用して、後知恵を用いて訓練目標を推定するため、すなわち、状態価値(または状態行動価値)を予測するために有用な観測結果の特徴をモデリングすることを学習する。今度もバー表記を用いて、これは、
【数43】
のようにまとめられてよい。
【0100】
図3dは、モデル損失L
modelを訓練するために使用される強化学習システム100のサブセットを強調する。モデル損失L
modelは、後知恵モデルニューラルネットワーク130の特徴ベクトル出力とモデルニューラルネットワーク120の特徴ベクトル出力との間、すなわち、φ
tと
【数44】
との間の差の任意の尺度であってよい。たとえば、これは、φ
tおよび
【数45】
の成分間の2乗差(明瞭にするためにt依存性(t-dependence)を省略する)を含んでよい。
【数46】
別の例として、交差エントロピー損失が、使用されてよく、その場合、特徴ベクトル出力φ
tおよび
【数47】
、すなわち、
【数48】
および
【数49】
は、ロジット(logit)のベクトルとみなされてよい。それらを交差エントロピー損失
【数50】
を決定するための確率分布
【数51】
および
【数52】
に変換するために、それぞれにソフトマックスが適用されてよく、
【数53】
は、pに対する
【数54】
の交差エントロピーである。
【0101】
図3dに示されるように、モデル損失L
modelを使用して強化学習システム100を訓練するとき、訓練エンジン150は、損失の勾配を逆伝播してモデルニューラルネットワーク(
【数55】
)のパラメータη
2を更新する。任意で、勾配は、モデルニューラルネットワークへの入力をエンコーディングする観測結果を訓練するために、RNN層と、存在する場合はCNN層とにも逆伝播されてよい。したがって、モデルニューラルネットワーク120は、現在の観測結果を使用して後知恵モデルニューラルネットワーク130によって出力される特徴ベクトルを予測することを学習する。
【0102】
強化学習システム100の結合された損失Lは、
L = L
v + αL
v+ + βL
model
のように表されてよく、式中、αおよびβは、重みであり、たとえば、モデル
【数56】
が変化する後知恵モデルφ
tに適応するための時間を与えるために引き下げられたレートで
【数57】
を更新するためにα<βである。
【0103】
行動選択ニューラルネットワークシステム110が上述の行動選択ポリシー出力を有する場合、たとえば、アクタークリティック強化学習システムにおいて、結合された損失Lは、行動選択ポリシー出力を提供する行動選択ニューラルネットワークのパラメータを更新するためのアクター損失を含んでよい。たとえば、アクター損失は、行動選択ニューラルネットワークのパラメータに関する、状態価値関数とlogπの勾配との積に依存する場合があり、πは、行動選択ポリシー出力である。任意で、探索を促進し、訓練中の初期収束(premature convergence)のリスクを減らすために、たとえば、利用可能な行動全体にわたる-π・logπの総和またはこれの何らかの変化型に依存するエントロピー損失も含められてよい(高エントロピーのコストを削減するために負)。
【0104】
図4は、
図3a~
図3dに従って例示的な強化学習システム100を訓練するための例示的なプロセスの流れ図である。
図4のステップは、
図3b~
図3dに示されたステップに対応し、任意の順序で実行されてよく、任意で、1つまたは複数のステップが、別のステップが実行される前に繰り返されてよい。ステップは、無期限に、または終了基準が達せられるまで繰り返される。
【0105】
したがって、強化学習システム100は、観測結果および報酬を受け取り(ステップ400)、エージェントによって実行される行動を選択するために、存在する場合はCNN層、RNN層、および行動選択ニューラルネットワークシステム110を使用して観測結果を処理する(ステップ402)。それから、強化学習システム100は、上述のように価値関数(または状態価値関数)損失を決定し、これを使用して状態価値ネットワークおよびRNN層ならびにCNN層を訓練する(ステップ404)。強化学習システム100は、上述のように後知恵価値関数(または状態価値関数)損失も決定し、これを使用して後知恵価値ニューラルネットワークおよび後知恵モデルニューラルネットワークを訓練する(ステップ406)。強化学習システム100は、上述のようにモデル損失も決定し、これを使用して、モデルニューラルネットワークと、任意でRNN層およびCNN層とを訓練する。訓練は、オフラインで(たとえば、記憶された経験タプルを使用して)、または後知恵価値関数(もしくは状態価値関数)損失およびモデル損失の計算をk時間ステップだけ遅らせることによってオンラインで実行されてよい。
【0106】
概して、強化学習システム100は、任意の適切なニューラルネットワークアーキテクチャ、たとえば、畳み込み層、全結合層、および再帰層のうちの1つまたは複数を含むニューラルネットワークアーキテクチャによって実装され得る。
【0107】
図5aおよび
図5bは、それぞれ、アクタークリティック強化学習システム100(たとえば、IMPALA、ibid)のためおよびQ学習強化学習システム100(たとえば、R2D2 ibid)のための例示的なニューラルネットワークアーキテクチャを示しており、ニューラルネットワークは、先に用いた記号によって示されている。実際には、ニューラルネットワークは、いくつかのパラメータを共有してよい。Q学習強化学習システムは、訓練のために経験タプルのシーケンスを記憶するメモリ502を含む。
【0108】
1つまたは複数のコンピュータのシステムが特定の動作または行動を実行するように構成されることは、システムが、動作中にシステムに動作または行動を実行させるソフトウェア、ファームウェア、ハードウェア、またはそれらの組合せをそのシステム上にインストール済みであることを意味する。1つまたは複数のコンピュータプログラムが特定の動作または行動を実行するように構成されることは、1つまたは複数のプログラムが、データ処理装置によって実行されるときに装置に動作または行動を実行させる命令を含むことを意味する。
【0109】
本明細書に記載の対象の実施形態および機能的動作は、本明細書において開示された構造およびそれらの構造的均等物を含むデジタル電子回路、有形で具現化されたコンピュータソフトウェアもしくはファームウェア、コンピュータハードウェア、またはそれらのうちの1つもしくは複数の組合せで実装されることが可能である。本明細書に記載の対象の実施形態は、1つまたは複数のコンピュータプログラム、すなわち、データ処理装置による実行のために、またはデータ処理装置の動作を制御するために有形の非一時的プログラム担体上に符号化されたコンピュータプログラム命令の1つまたは複数のモジュールとして実装され得る。代替的にまたは追加的に、プログラム命令は、データ処理装置による実行のために好適なレシーバ装置に送信するために情報を符号化するように生成される人為的に生成された伝播信号、たとえば、機械によって生成された電気的信号、光学的信号、または電磁的信号上に符号化されることが可能である。コンピュータストレージ媒体は、機械可読ストレージデバイス、機械可読ストレージ基板、ランダムもしくはシリアルアクセスメモリデバイス、またはそれらのうちの1つもしくは複数の組合せであることが可能である。しかし、コンピュータストレージ媒体は、伝播信号ではない。
【0110】
用語「データ処理装置」は、例として、1つのプログラミング可能なプロセッサ、1台のコンピュータ、または複数のプロセッサもしくはコンピュータを含む、データを処理するためのすべての種類の装置、デバイス、およびマシンを包含する。装置は、専用の論理回路、たとえば、FPGA(フィールドプログラマブルゲートアレー)またはASIC(特定用途向け集積回路)を含み得る。また、装置は、ハードウェアに加えて、問題にしているコンピュータプログラムのための実行環境を生成するコード、たとえば、プロセッサのファームウェア、プロトコルスタック、データベース管理システム、オペレーティングシステム、またはそれらのうちの1つもしくは複数の組合せを構成するコードを含み得る。
【0111】
コンピュータプログラム(プログラム、ソフトウェア、ソフトウェアアプリケーション、モジュール、ソフトウェアモジュール、スクリプト、またはコードと呼ばれるまたは称される場合もある)は、コンパイラ型言語もしくはインタープリタ型言語、または宣言型言語もしくは手続き型言語を含む任意の形態のプログラミング言語で記述可能であり、独立型プログラムとしての形態、またはモジュール、コンポーネント、サブルーチン、もしくはコンピューティング環境内での使用に適したその他のユニットとしての形態を含む任意の形態でデプロイされ得る。コンピュータプログラムは、ファイルシステム内のファイルに対応する場合があるが、必ずそうであるとは限らない。プログラムは、その他のプログラムもしくはデータを保持するファイルの一部、たとえば、マークアップ言語のドキュメントに記憶された1つもしくは複数のスクリプト、問題にしているプログラムに専用の単一のファイル、または複数の組織されたファイル、たとえば、1つもしくは複数のモジュール、サブプログラム、もしくはコードの一部を記憶するファイルに記憶され得る。コンピュータプログラムは、1つのコンピュータ上で、または1つの場所に置かれるか、もしくは複数の場所に分散され、通信ネットワークによって相互に接続される複数のコンピュータ上で実行されるようにデプロイされ得る。
【0112】
本明細書において使用されるとき、「エンジン」または「ソフトウェアエンジン」は、入力と異なる出力を提供するソフトウェアで実装された入力/出力システムを指す。エンジンは、ライブラリ、プラットフォーム、ソフトウェア開発キット(「SDK」)、またはオブジェクトなどの機能の符号化されたブロックであることが可能である。各エンジンは、任意の適切な種類のコンピューティングデバイス、たとえば、サーバ、モバイル電話、タブレットコンピュータ、ノートブックコンピュータ、音楽プレーヤー、電子ブックリーダ、ラップトップもしくはデスクトップコンピュータ、PDA、スマートフォン、または1つもしくは複数のプロセッサおよびコンピュータ可読媒体を含むその他の据え置き型もしくは可搬型デバイスに実装され得る。さらに、エンジンのうちの2つ以上が、同じコンピューティングデバイスにまたは異なるコンピューティングデバイスに実装される場合がある。
【0113】
本明細書に記載のプロセスおよび論理フローは、入力データに対して演算を行い、出力を生成することによって機能を実行するための1つまたは複数のコンピュータプログラムを1つまたは複数のプログラミング可能なコンピュータが実行することによって実行され得る。また、プロセスおよび論理フローは、専用の論理回路、たとえば、FPGA(フィールドプログラマブルゲートアレー)またはASIC(特定用途向け集積回路)によって実行されることが可能であり、さらに、装置は、それらの専用の論理回路として実装されることが可能である。たとえば、プロセスおよび論理フローは、グラフィックス処理ユニット(GPU)によって実行されることが可能であり、さらに、装置は、グラフィックス処理ユニット(GPU)として実装されることが可能である。
【0114】
コンピュータプログラムの実行に好適なコンピュータは、汎用マイクロプロセッサもしくは専用マイクロプロセッサもしくはそれら両方、または任意のその他の種類の中央演算処理装置を含み、例として、それらに基づくことが可能である。概して、中央演算処理装置は、読み出し専用メモリ、またはランダムアクセスメモリ、またはそれら両方から命令およびデータを受け取る。コンピュータの必須の要素は、命令を遂行または実行するための中央演算処理装置、ならびに命令およびデータを記憶するための1つまたは複数のメモリデバイスである。また、概して、コンピュータは、データを記憶するための1つもしくは複数の大容量ストレージデバイス、たとえば、磁気ディスク、光磁気ディスク、もしくは光ディスクを含むか、またはそれらの大容量ストレージデバイスからデータを受信するか、もしくはそれらの大容量ストレージデバイスにデータを転送するか、もしくはその両方を行うために動作可能なように結合される。しかし、コンピュータは、そのようなデバイスを有していなくてもよい。さらに、コンピュータは、別のデバイス、たとえば、ほんのいくつか例を挙げるとすれば、モバイル電話、携帯情報端末(PDA)、モバイルオーディオもしくはビデオプレーヤー、ゲームコンソール、全地球測位システム(GPS)受信機、またはポータブルストレージデバイス、たとえば、ユニバーサルシリアルバス(USB)フラッシュドライブに組み込まれることが可能である。
【0115】
コンピュータプログラム命令およびデータを記憶するのに好適なコンピュータ可読媒体は、例として、半導体メモリデバイス、たとえば、EPROM、EEPROM、およびフラッシュメモリデバイス、磁気ディスク、たとえば、内蔵ハードディスクまたはリムーバブルディスク、光磁気ディスク、ならびにCD-ROMディスクおよびDVD-ROMディスクを含む、すべての形態の不揮発性メモリ、媒体、およびメモリデバイスを含む。プロセッサおよびメモリは、専用論理回路によって補完され得るか、または専用論理回路に組み込まれ得る。
【0116】
ユーザとのインタラクションを提供するために、本明細書に記載の対象の実施形態は、ユーザに対して情報を表示するためのディスプレイデバイス、たとえば、CRT(ブラウン管)またはLCD(液晶ディスプレイ)モニタ、ならびにユーザがコンピュータに入力を与えることができるキーボードおよびポインティングデバイス、たとえば、マウスまたはトラックボールを有するコンピュータ上に実装されることが可能である。その他の種類のデバイスが、ユーザとのインタラクションを提供するためにやはり使用されることが可能であり、たとえば、ユーザに提供されるフィードバックは、任意の形態の感覚フィードバック、たとえば、視覚フィードバック、聴覚フィードバック、または触覚フィードバックであることが可能であり、ユーザからの入力は、音響、発話、または触覚による入力を含む任意の形態で受け取られることが可能である。加えて、コンピュータは、ユーザによって使用されるデバイスにドキュメントを送信し、そのデバイスからドキュメントを受信することによって、たとえば、ウェブブラウザから受信された要求に応答してユーザのクライアントデバイス上のウェブブラウザにウェブページを送信することによってユーザとインタラクションすることができる。
【0117】
本明細書に記載の対象の実施形態は、バックエンドコンポーネントを、たとえば、データサーバとして含むか、またはミドルウェアコンポーネント、たとえば、アプリケーションサーバを含むか、またはフロントエンドコンポーネント、たとえば、ユーザが本明細書に記載の対象の実装とインタラクションすることができるグラフィカルユーザインターフェースもしくはウェブブラウザを有するクライアントコンピュータを含むか、または1つもしくは複数のそのようなバックエンドコンポーネント、ミドルウェアコンポーネント、もしくはフロントエンドコンポーネントの任意の組合せを含むコンピューティングシステムに実装されることが可能である。システムのコンポーネントは、任意の形態または媒体のデジタルデータ通信、たとえば、通信ネットワークによって相互に接続されることが可能である。通信ネットワークの例は、ローカルエリアネットワーク(「LAN」)および広域ネットワーク(「WAN」)、たとえば、インターネットを含む。
【0118】
コンピューティングシステムは、クライアントおよびサーバを含み得る。クライアントおよびサーバは、概して互いに離れており、通常は通信ネットワークを通じてインタラクションする。クライアントとサーバとの関係は、それぞれのコンピュータ上で実行されており、互いにクライアント-サーバの関係にあるコンピュータプログラムによって生じる。
【0119】
本明細書は多くの特定の実装の詳細を含むが、これらは、いかなる発明の範囲または特許請求される可能性があるものの範囲に対する限定ともみなされるべきではなく、むしろ、特定の発明の特定の実施形態に特有である可能性がある特徴の説明とみなされるべきである。別々の実施形態の文脈で本明細書において説明されている特定の特徴が、単一の実施形態において組み合わせて実装されることも可能である。反対に、単一の実施形態の文脈で説明されている様々な特徴が、複数の実施形態において別々にまたは任意の好適な部分的組合せで実装されることも可能である。さらに、特徴は、特定の組合せで働くものとして上で説明されている場合があり、最初にそのように主張されてさえいる場合があるが、主張された組合せの1つまたは複数の特徴は、場合によっては組合せから削除されることが可能であり、主張された組合せは、部分的組合せ、または部分的組合せの変形を対象とする可能性がある。
【0120】
同様に、動作が図中に特定の順序で示されているが、これは、そのような動作が示された特定の順序でもしくは逐次的順序で実行されること、または所望の結果を達成するために示されたすべての動作が実行されることを必要とするものと理解されるべきでない。特定の状況においては、マルチタスクおよび並列処理が有利である場合がある。さらに、上述の実施形態における様々なシステムモジュールおよび構成要素の分割は、すべての実施形態においてそのような分割を必要とするものと理解されるべきでなく、説明されたプログラム構成要素およびシステムは、概して、単一のソフトウェア製品に一緒に統合されるか、または複数のソフトウェア製品にパッケージングされることが可能であることが理解されるべきである。
【0121】
対象の特定の実施形態が、説明された。その他の実施形態は、添付の請求項の範囲内にある。たとえば、請求項に挙げられた行動は、異なる順序で実行され、それでも所望の結果を達成することができる。一例として、添付の図に示されたプロセスは、所望の結果を達成するために、必ずしも、示された特定の順序または逐次的順序を必要としない。特定の実装においては、マルチタスクおよび並列処理が有利である場合がある。
【符号の説明】
【0122】
100 強化学習システム
102 エージェント
104 環境
106 エージェント
110 行動選択ニューラルネットワークシステム
120 モデルニューラルネットワーク
130 後知恵モデルニューラルネットワーク
150 訓練エンジン
502 メモリ
a 行動
o 観測結果
r 報酬
【国際調査報告】