(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-04-07
(45)【発行日】2023-04-17
(54)【発明の名称】ニューラルネットワークを使用する強化学習のための行動選択
(51)【国際特許分類】
G06N 3/045 20230101AFI20230410BHJP
G06N 3/049 20230101ALI20230410BHJP
G06N 20/00 20190101ALI20230410BHJP
【FI】
G06N3/045
G06N3/049
G06N20/00
【外国語出願】
(21)【出願番号】P 2021127574
(22)【出願日】2021-08-03
(62)【分割の表示】P 2019546129の分割
【原出願日】2018-02-19
【審査請求日】2021-09-01
(32)【優先日】2017-02-24
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】517030789
【氏名又は名称】ディープマインド テクノロジーズ リミテッド
(74)【代理人】
【識別番号】100108453
【氏名又は名称】村山 靖彦
(74)【代理人】
【識別番号】100110364
【氏名又は名称】実広 信哉
(74)【代理人】
【識別番号】100133400
【氏名又は名称】阿部 達彦
(72)【発明者】
【氏名】サイモン・オシンデロ
(72)【発明者】
【氏名】コーレイ・カヴクチュオグル
(72)【発明者】
【氏名】アレキサンダー・ヴェズネヴェッツ
【審査官】石川 亮
(56)【参考文献】
【文献】特開2005-056185(JP,A)
【文献】米国特許出願公開第2016/0179162(US,A1)
【文献】NICOLAS HEESS ET AL.,LEARNING AND TRANSFER OF MODULATED LOCOMOTOR CONTROLLERS,ARXIV.ORG [ONLINE],2016年10月17日,ARXIV:1610.05182V1,PAGE(S):1 - 13,https://arxiv.org/pdf/1610.05182.pdf
【文献】AURELIA LEON ET AL.,OPTIONS DISCOVERY WITH BUDGETED REINFORCEMENT LEARNING,ARXIV.ORG [ONLINE],2017年02月22日,ARXIV:1611.06824V3,https://arxiv.org/pdf/1611.06824.pdf
【文献】TEJAS D KULKARNI ET AL.,HIERARCHICAL DEEP REINFORCEMENT LEARNING: INTEGRATING TEMPORAL ABSTRACTION AND INTRINSIC MOTIVATION,ARXIV.ORG [ONLINE],2016年05月31日,ARXIV:1604.06057V2,PAGE(S):1 - 14,https://arxiv.org/pdf/1604.06057.pdf
(58)【調査した分野】(Int.Cl.,DB名)
G06N 3/02-3/0985
G06N 20/00
(57)【特許請求の範囲】
【請求項1】
行動を遂行することで環境と相互作用するエージェントが遂行する行動を所定の行動セットから選択するためのシステムであって、
前記システムは、1つまたは複数のコンピュータと前記1つまたは複数のコンピュータと通信可能に結合された1つまたは複数の記憶デバイスとを含み、前記1つまたは複数の記憶デバイスは複数の命令を記憶し、前記複数の命令は、前記1つまたは複数のコンピュータにより実行されたときに前記1つまたは複数のコンピュータに、
マネージャニューラルネットワークサブシステムと、
ワーカニューラルネットワークサブシステムと
、
行動選択サブシステム
を実装させ、
前記マネージャニューラルネットワークサブシステムが、
複数の時間ステップのうちの各々において、
前記時間ステップにおいて前記環境の現在の状態の潜在表現を潜在状態空間において生成する工程と、
前記環境内で前記エージェントが遂行した行動の結果として達成される、前記潜在状態空間での目的を定義する初期の目標ベクトルを、前記時間ステップにおける前記環境の前記現在の状態の前記潜在表現に少なくとも部分的に基づき生成する工程と、
前記時間ステップに関する前記初期の目標ベクトルと1つまたは複数の以前の時間ステップに関する初期の目標ベクトルとをプールし、前記時間ステップに関する最終的な目標ベクトルを生成する工程と
を行うように構成され、
前記ワーカニューラルネットワークサブシステムが、
複数の時間ステップのうちの各々において、
前記時間ステップに関する前記最終的な目標ベクトル
と前記環境の現在の状態に少なくとも部分的に基づき、前記所定の行動セットの各行動に関する各行動スコアを生成する工
程
を行うように構成され、
前記行動選択サブシステムが、
複数の時間ステップのうちの各々において、前記行動スコアを使用して前記時間ステップにおける前記エージェントが遂行する行動を前記所定の行動セットから選択する工程
を行うように構成された、システム。
【請求項2】
前記初期の目標ベクトルを生成する工程が、
目標回帰型ニューラルネットワークを使用して前記潜在表現を処理する工程であって、前記目標回帰型ニューラルネットワークが、前記潜在表現を受け取り、前記目標回帰型ニューラルネットワークの隠れ状態に従って前記潜在表現を処理して、前記初期の目標ベクトルを生成し、前記目標回帰型ニューラルネットワークの前記隠れ状態を更新するように構成された、処理する工程
を含む、請求項1に記載のシステム。
【請求項3】
前記所定の行動セットの各行動に関する前記各行動スコアを生成する工程が、
前記所定の行動セットの各行動に関する、埋め込み空間におけるそれぞれの行動埋め込みベクトルを生成する工程と、
前記時間ステップに関する前記最終的な目標ベクトルを前記埋め込み空間に射影し、目標埋め込みベクトルを生成する工程と、
前記目標埋め込みベクトルにより各行動に関する前記それぞれの行動埋め込みベクトルを調整して、前記所定の行動セットの各行動に関する前記各行動スコアを生成する工程と
を含む、請求項1に記載のシステム。
【請求項4】
前記行動を選択する工程が、最高の行動スコアを有する行動を選択する工程を含む、請求項1に記載のシステム。
【請求項5】
前記所定の行動セットの各行動に関する、前記埋め込み空間内の前記それぞれの行動埋め込みベクトルを生成する工程が、
行動スコア回帰型ニューラルネットワークを使用して、前記行動スコア回帰型ニューラルネットワークの隠れ状態に従って、前記環境の前記現在の状態の表現を処理し、前記行動埋め込みベクトルを生成し、前記行動スコア回帰型ニューラルネットワークの前記隠れ状態を更新する工程を含む、請求項3に記載のシステム。
【請求項6】
前記最終的な目標ベクトルが、前記目標埋め込みベクトルよりも大きい次元数を有する、請求項3に記載のシステム。
【請求項7】
前記最終的な目標ベクトルの次元数が、前記目標埋め込みベクトルの次元数よりも少なくとも10倍大きい、請求項6に記載のシステム。
【請求項8】
前記ワーカニューラルネットワークサブシステムは、時間割引きされた報酬の組合せを最大化する行動スコアを生成するように訓練されており、
各報酬は、前記エージェントが選択された行動を遂行した結果として受け取られる外的報酬と、前記マネージャニューラルネットワークサブシステムによって生成された目標ベクトルに依拠する内的報酬との組合せである、請求項1に記載のシステム。
【請求項9】
前記マネージャニューラルネットワークサブシステムは、前記エージェントが前記選択された行動を遂行した結果として受け取られる前記外的報酬を増加させる行動の選択を助長する行動スコアをもたらす初期の目標ベクトルを生成するように訓練されている、請求項8に記載のシステム。
【請求項10】
前記システムが、
畳み込みニューラルネットワークを使用して前記環境の前記現在の状態を特徴付ける観測を処理
して中間表現を生成する工程
を
さらに行うように構成され、
前記時間ステップにおいて前記環境の現在の状態の潜在表現を潜在状態空間において生成する工程が、前記時間ステップにおいて前記中間表現を処理して前記潜在表現を生成する工程を含み、
前記時間ステップに関する前記最終的な目標ベクトルと前記環境の現在の状態に少なくとも部分的に基づき、前記所定の行動セットの各行動に関する各行動スコアを生成する工程が、前記時間ステップに関する前記最終的な目標ベクトルと前記中間表現に少なくとも部分的に基づき、前記所定の行動セットの各行動に関する各行動スコアを生成する工程を含む、請求項1に記載のシステム。
【請求項11】
前記目標回帰型ニューラルネットワークが、拡張された長短期記憶(LSTM)ニューラルネットワークであり、前記拡張されたLSTMニューラルネットワークは、r個のサブ状態へと分割される内部状態を維持するように構成され、rは1よりも大きい整数であり、前記拡張されたLSTMニューラルネットワークは、前記複数の時間ステップにおける各時間ステップにおいて、
前記時間ステップに関するネットワーク入力を受け取り、
前記r個のサブ状態からサブ状態を選択し、
LSTMニューラルネットワークを使用して前記時間ステップに関する前記選択されたサブ状態の現在の値および前記ネットワーク入力を処理して、前記選択されたサブ状態の前記現在の値を更新し、LSTMネットワークパラメータのセットの現在の値に従って、前記時間ステップに関するネットワーク出力を生成する
ように構成された、請求項2に記載のシステム。
【請求項12】
前記拡張されたLSTMニューラルネットワークは、前記時間ステップの各々に関して、
前記時間ステップに関する前記ネットワーク出力と以前の時間ステップの所定回数までの前記ネットワーク出力とをプールして、前記時間ステップに関する最終的なネットワーク出力を生成するようにさらに構成された、請求項11に記載のシステム。
【請求項13】
前記ネットワーク出力をプールする工程が、前記ネットワーク出力を合計する工程を含む、請求項12に記載のシステム。
【請求項14】
前記ネットワーク出力をプールする工程が、前記ネットワーク出力を平均する工程を含む、請求項12に記載のシステム。
【請求項15】
前記ネットワーク出力をプールする工程が、最大のネットワーク出力を選択する工程を含む、請求項12に記載のシステム。
【請求項16】
前記複数の時間ステップにおける前記時間ステップが、前記複数の時間ステップにおける最初の時間ステップに対する1から、前記複数の時間ステップにおける最後の時間ステップのTまでインデックスを付けられ、
各サブ状態は、1からrまでの範囲のインデックスを割り当てられ、
前記r個のサブ状態からあるサブ状態を選択することは、rを法とする時間ステップのインデックスと等しいインデックスを有するサブ状態を選択することを含む
請求項11に記載のシステム。
【請求項17】
前記LSTMニューラルネットワークは複数のLSTM層を含む、請求項11に記載のシステム。
【請求項18】
LSTMニューラルネットワークを使用して前記時間ステップに関する前記選択されたサブ状態の現在の値および前記ネットワーク入力を処理して、前記選択されたサブ状態の前記現在の値を更新し、LSTMネットワークパラメータのセットの現在の値に従って、前記時間ステップに関するネットワーク出力を生成することが、
前記時間ステップにおける前記ネットワーク入力を処理するために、前記LSTMニューラルネットワークの
内部状態を、前記選択されたサブ状態の現在の値に設定することを含む、請求項11に記載のシステム。
【請求項19】
複数の命令を記録する1つまたは複数の非一時的コンピュータ記録媒体であって、
前記複数の命令は、1つまたは複数のコンピュータにより実行されたときに、行動を遂行することで環境と相互作用するエージェントにより遂行される行動を所定の行動セットから選択するための複数の動作を、前記1つまたは複数のコンピュータに実行させ、前記複数の動作が、複数の時間ステップの各々において、
前記時間ステップにおいて前記環境の現在の状態の潜在表現を潜在状態空間において生成する動作と、
前記環境内で前記エージェントが遂行した行動の結果として達成される、前記潜在状態空間での目的を定義する初期の目標ベクトルを、前記時間ステップにおける前記環境の前記現在の状態の前記潜在表現に少なくとも部分的に基づき生成する動作と、
前記時間ステップに関する前記初期の目標ベクトルと1つまたは複数の以前の時間ステップに関する初期の目標ベクトルとをプールし、前記時間ステップに関する最終的な目標ベクトルを生成する動作と
前記時間ステップに関する前記最終的な目標ベクトル
と前記環境の現在の状態に少なくとも部分的に基づき、前記所定の行動セットの各行動に関する各行動スコアを生成する動作と、
前記行動スコアを使用して前記時間ステップにおける前記エージェントが遂行する行動を前記所定の行動セットから選択する動作と
を含む、1つまたは複数の非一時的コンピュータ記録媒体。
【請求項20】
行動を遂行することで環境と相互作用するエージェントにより遂行される行動を所定の行動セットから選択するための1つまたは複数のデータ処理装置により実行される方法であって、
複数の時間ステップの各々において、
前記時間ステップにおいて前記環境の現在の状態の潜在表現を潜在状態空間において生成する工程と、
前記環境内で前記エージェントが遂行した行動の結果として達成される、前記潜在状態空間での目的を定義する初期の目標ベクトルを、前記時間ステップにおける前記環境の前記現在の状態の前記潜在表現に少なくとも部分的に基づき生成する工程と、
前記時間ステップに関する前記初期の目標ベクトルと1つまたは複数の以前の時間ステップに関する初期の目標ベクトルとをプールし、前記時間ステップに関する最終的な目標ベクトルを生成する工程と
前記時間ステップに関する前記最終的な目標ベクトル
と前記環境の現在の状態に少なくとも部分的に基づき、前記所定の行動セットの各行動に関する各行動スコアを生成する工程と、
前記行動スコアを使用して前記時間ステップにおける前記エージェントが遂行する行動を前記所定の行動セットから選択する工程と
を含む、方法。
【発明の詳細な説明】
【技術分野】
【0001】
本明細書は強化学習に関する。
【背景技術】
【0002】
強化学習システムでは、エージェントは、環境の現在の状態を特徴付ける観測の受け取りに応答して、強化学習システムによって選択されている行動を遂行することにより、環境と相互作用する。
【0003】
いくつかの強化学習システムは、所与の観測の受け取りに応答して、ニューラルネットワークの出力に従って、エージェントによって遂行される行動を選択する。
【0004】
ニューラルネットワークは、受け取られた入力に関する出力を予測するために非線形ユニットの1つまたは複数の層を採用する機械学習モデルである。いくつかのニューラルネットワークは、出力層に加えて1つまたは複数の隠れ層を含む深層ニューラルネットワークである。それぞれの隠れ層の出力は、ネットワークにおける次の層すなわち次の隠れ層または出力層に対する入力として使用される。ネットワークの各層は、パラメータのそれぞれのセットの現在の値に従って、受け取られた入力から出力を生成する。
【発明の概要】
【課題を解決するための手段】
【0005】
本明細書は、環境と相互作用する強化学習エージェントが遂行する行動を選択する行動選択システムを、全般的に説明するものである。
【0006】
第1の態様では、所定の行動セットからの行動を遂行することによって環境と相互作用するエージェントが遂行する行動を選択するための行動選択システムが提供され、このシステムは、複数の時間ステップの各々において、時間ステップにおける環境の現在の状態の中間表現を受け取る工程と、中間表現を潜在状態空間における現在の状態の潜在表現にマッピングする工程と、目標回帰型(goal recurrent)ニューラルネットワークを使用して潜在表現を処理する工程であって、目標回帰型ニューラルネットワークが、潜在表現を受け取り、潜在表現を、目標回帰型ニューラルネットワークの現在の隠れ状態に従って処理して、時間ステップについて、目標空間における初期の目標ベクトルを生成し、目標回帰型ニューラルネットワークの内部状態を更新するように構成される、処理する工程と、時間ステップに関する初期の目標ベクトルと、1つまたは複数の以前の時間ステップに関する初期の目標ベクトルとをプールして、時間ステップに関する最終的な目標ベクトルを生成する工程とを行うように構成されている、マネージャニューラルネットワークサブシステムと、複数の時間ステップの各々において、時間ステップにおける環境の現在の状態の中間表現を受け取る工程と、中間表現を、所定の行動セットの各行動に関する、埋め込み空間におけるそれぞれの行動埋め込みベクトルにマッピングする工程と、時間ステップに関する目標空間からの最終的な目標ベクトルを埋め込み空間へ射影して目標埋め込みベクトルを生成する工程と、目標埋め込みベクトルによる各行動に関するそれぞれの行動埋め込みベクトルを調整して、所定の行動セットにおける各行動に関するそれぞれの行動スコアを生成する工程とを行うように構成されている、ワーカニューラルネットワークサブシステムと、複数の時間ステップの各々において、時間ステップにおける環境の現在の状態を特徴付ける観測を受け取る工程と、観測から中間表現を生成する工程と、中間表現をマネージャニューラルネットワークに入力として供給して時間ステップに関する最終的な目標ベクトルを生成する工程と、中間表現および最終的な目標ベクトルをワーカニューラルネットワークに入力として供給して行動スコアを生成する工程と、行動スコアを使用して、所定の行動セットから、エージェントによって観測に応答して遂行される行動を選択する工程とを行うように構成されている、行動選択サブシステムとを備える。
【0007】
いくつかの実装形態では、行動を選択する工程は、最高の行動スコアを有する行動を選択する工程を含む。
【0008】
いくつかの実装形態では、観測から中間表現を生成する工程は、畳み込みニューラルネットワークを使用して観測を処理する工程を含む。
【0009】
いくつかの実装形態では、中間表現を、所定の行動セットの各行動に関する、埋め込み空間におけるそれぞれの行動埋め込みベクトルにマッピングする工程は、行動スコア回帰型ニューラルネットワークを使用して中間表現を処理する工程であって、行動スコア回帰型ニューラルネットワークが、中間表現を受け取り、行動スコア回帰型ニューラルネットワークの現在の隠れ状態に従って中間表現を処理して、行動埋め込みベクトルを生成し、行動スコアニューラルネットワークの隠れ状態を更新するように構成されている、工程を含む。
【0010】
いくつかの実装形態では、中間表現を現在の状態の潜在表現にマッピングする工程は、フィードフォワードニューラルネットワークを使用して中間表現を処理する工程を含む。
【0011】
いくつかの実装形態では、目標空間は、埋め込み空間よりも大きい次元数を有する。
【0012】
いくつかの実装形態では、目標空間の次元数は、埋め込み空間の次元数よりも少なくとも10倍大きい。
【0013】
いくつかの実装形態では、ワーカニューラルネットワークサブシステムは、時間割引きされた報酬の組合せを最大化する行動スコアを生成するように訓練されており、各報酬は、エージェントが選択された行動を遂行した結果として受け取られる外的報酬と、マネージャニューラルネットワークサブシステムによって生成された目標ベクトルに依拠する内的報酬との組合せである。
【0014】
いくつかの実装形態では、マネージャニューラルネットワークサブシステムは、エージェントを潜在状態空間における有利な方向へ移動させる行動の選択を助長する行動スコアをもたらす初期の目標ベクトルを生成するように訓練されている。
【0015】
いくつかの実装形態では、目標回帰型ニューラルネットワークは、拡張された長短期記憶(LSTM)ニューラルネットワークである。
【0016】
第2の態様では、拡張されたLSTMニューラルネットワークを実施するシステムが提供され、拡張されたLSTMニューラルネットワークは、1よりも大きい整数であるr個のサブ状態に分割された内部状態を維持するように構成されており、時間ステップのシーケンスにおける各時間ステップにおいて、時間ステップに関するネットワーク入力を受け取り、r個のサブ状態からあるサブ状態を選択し、LSTMニューラルネットワークを使用して、時間ステップに関する選択されたサブ状態の現在の値およびネットワーク入力の現在の値を処理して、選択されたサブ状態の現在の値を更新し、LSTMネットワークパラメータのセットの現在の値に従って、時間ステップに関するネットワーク出力を生成するように構成されている。
【0017】
いくつかの実装形態では、拡張されたLSTMニューラルネットワークは、時間ステップの各々について、時間ステップに関するネットワーク出力と、以前の時間ステップの所定回数までのネットワーク出力とをプールして、時間ステップに関する最終的なネットワーク出力を生成するようにさらに構成されている。
【0018】
いくつかの実装形態では、ネットワーク出力をプールする工程は、ネットワーク出力を合計する工程を含む。
【0019】
いくつかの実装形態では、ネットワーク出力をプールする工程は、ネットワーク出力を平均する工程を含む。
【0020】
いくつかの実装形態では、ネットワーク出力をプールする工程は、最大のネットワーク出力を選択する工程を含む。
【0021】
いくつかの実装形態では、時間ステップのシーケンスにおいて、時間ステップは、シーケンスにおける最初の時間ステップの1からシーケンスにおける最後の時間ステップのTまでインデックスを付けられ、各サブ状態は、1からrまでの範囲のインデックスを割り当てられ、r個のサブ状態からあるサブ状態を選択する工程は、rを法とする時間ステップのインデックスと等しいインデックスを有するサブ状態を選択する工程を含む。
【0022】
いくつかの実装形態では、LSTMニューラルネットワークは複数のLSTM層を備える。
【0023】
いくつかの実装形態では、LSTMニューラルネットワークを使用して、時間ステップに関して選択されたサブ状態の現在の値およびネットワーク入力の現在の値を処理して、選択されたサブ状態の現在の値を更新し、LSTMネットワークパラメータのセットの現在の値に従って時間ステップに関するネットワーク出力を生成する工程は、時間ステップにおけるネットワーク入力を処理するために、LSTMニューラルネットワークの内部状態を、選択されたサブ状態の現在の値に設定する工程を含む。
【0024】
上記の態様は、任意の便利な形態で実施され得るものである。たとえば、態様および実装形態を実施し得る適切なコンピュータプログラムは、有形の搬送媒体(たとえばディスク)または無形の搬送媒体(たとえば通信信号)であり得る適切な搬送媒体に搬送されてよい。態様は、コンピュータプログラムを実行するプログラム可能なコンピュータの形態をとり得る適切な装置を使用して実施されてもよい。
【0025】
本明細書で説明される主題の特定の実施形態は、以下の利点の1つまたは複数を実現するように実施され得る。本明細書において説明されたような行動選択システムの構造は、分離されたマネージャ-ワーカシステム構造と拡張されたLSTMネットワークの一方または両方を含み、システムが、長い時間スケールの信用割当てを遂行するように(すなわち、受け取られる報酬に対する、多くの以前の時間ステップにわたる以前の状態および行動の影響を認識するように)効果的に訓練されることが可能になる。詳細には、行動選択システムの構造により、システムのパラメータを調節する工程において多くの以前の時間ステップにわたる状態および行動を考慮に入れるように、勾配が、所与の時間ステップにおいて受け取られた報酬に応答して(強化学習アルゴリズムによって)システムを通じて逆伝搬することが可能になる。行動選択システムの構造によって、長い時間スケールの信用割当てが容易になるため、本明細書において説明されたような行動選択システムを訓練する工程は、異なる構造を有する他の行動選択システムを訓練する工程よりも、消費され得る計算資源(たとえばメモリおよび計算能力)が少なくなり得る。詳細には、本明細書において説明されたような行動選択システムは、異なる構造を有する別のシステムよりも、特定の性能(たとえば、エージェントがタスクを遂行しながら受け取る長期的な時間割引きされた報酬)でタスクを遂行するのに必要な訓練の繰返しがより少なくなり得る。
【0026】
その上に、本明細書において説明されたような行動選択システムのマネージャシステムは、ワーカシステム向けに、絶対的な目標ではなく方向性の目標を生成する。具体的には、ワーカシステムは、マネージャシステムの潜在状態表現を、潜在状態空間における絶対的な目標へ明示的に近付けるように訓練されるのではなく、潜在状態空間における有利な方向へ移動させる行動を生成するように訓練される。ワーカシステムは、マネージャシステムの潜在状態表現を、潜在状態空間における絶対的な目標へ近付けるような行動よりも、潜在状態空間における特定の方向へ移動させる行動を、より効果的に生成することができる。したがって、本明細書において説明されたような行動選択システムは、絶対的な目標ではなく方向性の目標を使用することにより、絶対的な目標を使用するシステムと比べてより優れた性能(たとえばエージェントが、より大きい長期的な時間割引きされた報酬を受け取る)およびより高速の訓練を達成し得る(それによって、消費される計算資源がより少なくなる)。
【0027】
本明細書において説明されたような拡張された長短期記憶(LSTM)ニューラルネットワークは、多数の時間ステップを通じてその内部記憶を効果的に保護することができる一方で、各時間ステップにおいて出力を生成し、すべての入力から学習することもなお可能である。したがって、拡張されたLSTMニューラルネットワークは、所与の出力が、入力シーケンスにおけるかなり早い時期の入力に依拠し得るシーケンス向けに出力を生成することができる。したがって、本明細書において説明されたような行動選択システムに、拡張されたLSTMネットワークを組み込むと、(たとえば特定のタスクを遂行する一方で、エージェントが受け取る長期的な時間割引きされた報酬の増加に反映されるような特定のタスクにおけるエージェントの性能を改善することにより)行動選択システムによって選択された行動に基づいて環境と相互作用するエージェントの性能が改善され得る。
【0028】
本明細書の主題の1つまたは複数の実施形態の詳細を、添付図面および以下の記述において説明する。主題の他の特徴、態様、および利点が、記述、図面、および特許請求の範囲から明らかになるであろう。
【図面の簡単な説明】
【0029】
【
図2】行動選択システムを使用して所定の行動セットから行動を選択する例示のプロセスの流れ図である。
【
図3】マネージャシステムを使用して時間ステップに関する最終的な目標ベクトルを生成する例示のプロセスの流れ図である。
【
図4】ワーカシステムを使用して、時間ステップに関する行動スコアを生成する例示のプロセスの流れ図である。
【
図5】行動選択システムを訓練するための例示のプロセスの流れ図である。
【
図6】拡張された長短期記憶(LSTM)ネットワークを使用してネットワーク出力を生成するための例示のプロセスの流れ図である。
【発明を実施するための形態】
【0030】
様々な図面における類似の参照番号および名称は、類似の要素を示す。
【0031】
図1は例示の行動選択システム100を示す。行動選択システム100は、以下で説明されるシステム、コンポーネント、および技術を実施する1つまたは複数のロケーションの1つまたは複数のコンピュータにおいてコンピュータプログラムとして実施されるシステムの一例である。
【0032】
行動選択システム100は、複数の時間ステップの各々において、環境140と相互作用するエージェント142によって遂行される行動144を選択する。エージェント142が環境140と相互作用するように、システム100は、環境140の現在の状態を特徴付ける観測136を受け取り、受け取った観測136に応じて、エージェント142によって遂行される行動144を選択する。
【0033】
いくつかの実装形態では、環境140はシミュレートされた環境であり、エージェント142は、シミュレートされた環境の中をナビゲートすることによってシミュレートされた環境と相互作用する1つまたは複数のコンピュータプログラムとして実施される。たとえば、シミュレートされた環境はビデオゲームでよく、エージェント142は、シミュレートされた環境の中をナビゲートすることによってビデオゲームで遊ぶ、シミュレートされたユーザでよい。別の例として、シミュレートされた環境は、たとえば運転シミュレーションまたはフライトシミュレーションといった運動シミュレーション環境でよく、エージェント142は、運動シミュレーション環境の中をナビゲートする、シミュレートされた乗り物である。これらの場合の行動144は、シミュレートされたユーザまたはシミュレートされた乗り物を制御するための制御入力でよい。
【0034】
いくつかの他の実装形態では、環境140は現実世界の環境であり、エージェント142は現実世界の環境と相互作用する機械的エージェントである。たとえば、エージェント142は、特定のタスクを達成するために環境140と相互作用するロボットでよい。別の例として、エージェント142は、環境の中をナビゲートする自律性または準自律性の乗り物でよい。これらの場合の行動144は、ロボットまたは自律性の乗り物を制御するための制御入力でよい。
【0035】
これらの実装形態のうちいくつかでは、観測136は、エージェント142のセンサによって生成されてよく、またはこのセンサから導出されてもよい。たとえば、観測136は、エージェント142のカメラによって取り込まれたRGB画像でよい。別の例として、観測136は、エージェント142のレーザセンサが取り込んだデータから導出されてよい。別の例として、観測136は、エージェント142のハイパースペクトルセンサが取り込んだハイパースペクトル画像でよい。
【0036】
各時間ステップにおいて、システム100は、時間ステップにおける環境140の現在の状態およびエージェント142の行動144に基づく外的報酬138を受け取る。一般に、外的報酬は、特定のタスクを達成するエージェント142の行動144を遂行する工程の効果を反映する数値である。たとえば、システム100は、所与の時間ステップについて、エージェント142が1つまたは複数の目的を達成する工程の進捗に基づく外的報酬138を受け取ってよい。たとえば、エージェントの目的は、環境140における目的のロケーションにナビゲートすることでよい。
【0037】
システム100が含む符号化ニューラルネットワーク120は、時間ステップに関する観測136を受け取り、符号化ニューラルネットワークパラメータのセットの現在の値に従って観測を処理して、時間ステップに関する観測136の中間表現118を出力として生成するように構成されている。中間表現118は、時間ステップに関する、中間状態空間(たとえば中間表現118が属するユークリッド空間)における観測136を表現する数値の順序付けられた集合(たとえばベクトルまたはマトリクス)でよい。特に観測136が画像であるとき、符号化ニューラルネットワーク120は畳み込みニューラルネットワークでよい。
【0038】
システム100は、マネージャシステム102およびワーカシステム116を含む。マネージャシステム102は、各時間ステップにおいて、抽象的な目標(すなわち初期の目標ベクトル110)を生成するように構成されている。ワーカシステム116は、各時間ステップにおいて、マネージャシステム102が生成した抽象的な目標を達成するための行動をエージェント142に遂行させる行動スコア132を生成するように構成されている。
【0039】
システム100から、時間ステップに関する中間表現118を入力として供給されるマネージャシステム102は、時間ステップに関する中間表現118を入力として受け取り、マネージャシステムパラメータのセットの現在の値に従って中間表現を処理して、時間ステップに関する最終的な目標ベクトル114を出力として生成するように構成されている。
【0040】
マネージャシステムが含む潜在表現ニューラルネットワーク104は、時間ステップに関する中間表現118を入力として受け取り、潜在表現ニューラルネットワークパラメータのセットの現在の値に従って中間表現を処理して、時間ステップに関する潜在表現106を出力として生成するように構成されている。潜在表現106は、時間ステップに関する、潜在状態空間(たとえば潜在表現106が属するユークリッド空間)における中間表現118を表現するとともに観測136を(間接的に)表現する数値の順序付けられた集合(たとえばベクトルまたはマトリクス)である。いくつかの実装形態では、潜在表現ニューラルネットワーク104はフィードフォワードニューラルネットワーク(たとえば多層パーセプトロン)である。したがって、マネージャシステムは、次いで、目標を定義することができるように、潜在状態空間表現を使用して、たとえば潜在表現ニューラルネットワークを使用して動作(fMspace)を適用することにより、中間表現を、潜在状態空間における現在の状態の潜在表現にマッピングしてよい。目標は、目標ベクトルにより、定義によって目標空間と名付けられ得るもので表現され得る。いくつかの実装形態では、後に説明されるように、潜在状態空間が学習されてよい。そのような潜在表現を使用すると、より高いレベルの目標を設定することが容易になり得、したがって、複雑な、サブ目標を含む、かつ/または遅延報酬を有するタスクの学習が容易になり得る。
【0041】
マネージャシステム102が含む目標回帰型ニューラルネットワーク108は、時間ステップに関する潜在表現106と、時間ステップに関する目標回帰型ニューラルネットワーク108の内部状態とを処理するように構成されている。目標回帰型ニューラルネットワーク108は、目標回帰型ニューラルネットワーク108の内部状態を更新して、時間ステップに関する初期の目標ベクトル110を出力として生成する。時間ステップに関する初期の目標ベクトル110は、ベクトルへと論理的に配置された数値の順序付けられた集合である。目標回帰型ニューラルネットワーク108は、任意の適切な回帰型ニューラルネットワークモデルとして実施され得る。いくつかの実装形態では、目標回帰型ニューラルネットワーク108はLSTMネットワークである。いくつかの実装形態では、目標回帰型ニューラルネットワーク108は拡張されたLSTMネットワークである。拡張されたLSTMネットワークは、各時間ステップについて、ネットワーク出力を生成するが、その内部状態のサブセットのみを処理して更新するLSTMネットワークである。拡張されたLSTMネットワークを使用してネットワーク出力(たとえば初期の目標ベクトル110)を生成するための例示のプロセスを、
図6を参照しながら説明する。
【0042】
マネージャシステム102が含む目標プールエンジン112は、時間ステップに関する初期の目標ベクトル110と、1つまたは複数の以前の時間ステップに関する初期の目標ベクトルとをプールし、組み合わせて、時間ステップに関する最終的な目標ベクトル114を生成する。時間ステップに関する最終的な目標ベクトル114は、ベクトルへと論理的に配置された数値の順序付けられた集合である。最終的な目標ベクトル114は、目標プールエンジン112によって遂行されるプール動作のために、時間ステップの間で滑らかに変化する。マネージャシステムを使用して時間ステップに関する最終的な目標ベクトルを生成するための例示のプロセスを、
図3を参照しながら説明する。
【0043】
システム100は、時間ステップに関する中間表現118および時間ステップに関する最終的な目標ベクトル114(マネージャシステム102によって生成されたもの)を、ワーカシステム116に入力として供給する。
【0044】
ワーカシステム116は、ワーカシステムパラメータのセットの現在の値に従って入力を処理して、出力行動スコア132として生成するように構成されている。システムは、行動スコア132を使用して、時間ステップに関してエージェント142によって遂行される行動144を選択する。
【0045】
行動スコア132は、所定の行動セット(すなわちエージェント142によって採用され得る行動)における各行動に関する個別のスコアを含む。いくつかの実装形態では、システム100は、エージェント142によって遂行される行動144を、行動スコア132に従って、最高の対応するスコアを有する行動として選択する。いくつかの他の実装形態では、システムは、softmax関数によって行動スコア132を処理することにより、所定の行動セットにおける各行動の確率を判定する。これらの実装形態では、システムは、エージェントによって遂行される行動144を、行動スコア132に基づいて判定された所定の行動セットにわたる確率分布からサンプリングすることによって選択してよい。
【0046】
ワーカシステム116が含む行動スコア回帰型ニューラルネットワーク122は、時間ステップに関する中間表現118と、時間ステップに関する行動スコア回帰型ニューラルネットワーク122の内部状態とを処理するように構成されている。行動スコア回帰型ニューラルネットワーク122は、行動スコア回帰型ニューラルネットワーク122の内部状態を更新して、時間ステップに関する行動埋め込みベクトル124のセットを出力として生成する。行動埋め込みベクトル124のセットは、所定の行動セットの各行動に関する埋め込みベクトルを含む。行動埋め込みベクトルは、定義によって、埋め込み空間においてベクトルへと配置された数値の順序付けられた集合である。したがって、ワーカシステムの行動スコア回帰型ニューラルネットワークによる実装形態では、中間表現は、ワーカシステムによって埋め込み空間にマッピングされ得る。行動スコア回帰型ニューラルネットワーク122は、任意の適切な回帰型ニューラルネットワークモデルとして実施され得る。いくつかの実装形態では、行動スコア回帰型ニューラルネットワーク122はLSTMネットワークとして実施される。いくつかの実装形態では、行動スコア回帰型ニューラルネットワーク122は拡張されたLSTMネットワークとして実施される。
【0047】
ワーカシステム116が含む射影エンジン126は、マネージャシステム102によって生成された時間ステップに関する最終的な目標ベクトル114を受け取り、射影エンジンパラメータのセットの現在の値に従って時間ステップに関する最終的な目標ベクトル114を処理して、埋め込み空間において、目標埋め込みベクトル130を出力として生成するように構成されている。目標埋め込みベクトル130は、ベクトルへと配置された数値の順序付けられた集合である。一般に、目標埋め込みベクトル130は、最終的な目標ベクトル114よりも小さい次元数を有する。いくつかの実装形態では、目標埋め込みベクトル130の次元数は、最終的な目標ベクトル114の次元数よりも10倍以上(すなわち1桁以上)小さくてよい。
【0048】
ワーカシステム116が含む調整エンジン128は、時間ステップに関する行動埋め込みベクトル124と時間ステップに関する目標埋め込みベクトル130とを入力として受け取り、出力として行動スコア132を生成するように構成されている。したがって、行動埋め込みベクトルは、たとえば行動埋め込みベクトルを重み付けするために目標埋め込みベクトルを使用して調整され、すなわち、目標埋め込みベクトルの値に依拠して調整される。ワーカシステムを使用して時間ステップに関する行動スコアを生成するための例示のプロセスを、
図4を参照しながら説明する。
【0049】
システムは、ワーカシステム116によって生成された行動スコア132を基に、エージェント142によって遂行される行動144を選択する。行動選択システムを使用して所定の行動セットから行動を選択するための例示のプロセスを、
図2を参照しながら説明する。
【0050】
システム100が含む訓練エンジン134は、強化学習の訓練方法に従って、マネージャシステム102、ワーカシステム116、および符号化ニューラルネットワーク120のパラメータを含んでいるシステム100のパラメータを調節することにより、システム100を訓練するように構成されている。
【0051】
一般に、ワーカシステム116は、エージェント142が選択された行動144を遂行した結果として受け取られる外的報酬138と、訓練エンジン134によって判定される内的報酬との、長期的な時間割引きされた組合せを最大化する行動スコア132を生成するように、訓練エンジン134によって訓練される。訓練エンジン134は、ワーカシステム116によって生成された行動スコア132が、潜在表現106を、マネージャシステム102によって生成された初期の目標ベクトル110が与える、潜在状態空間における方向に、どれくらいうまく移動させるかということに基づいて内的報酬を判定する。マネージャシステム102は、潜在表現106を、潜在状態空間における有利な方向(たとえば、より大きい長期的な時間割引きされた外的報酬138を受け取ることになる方向)に移動させる行動144の選択を助長する行動スコア132をもたらす初期の目標ベクトル110を生成するように、訓練エンジン134によって訓練される。行動選択システムを訓練するための例示のプロセスを、
図5を参照しながら説明する。
【0052】
図2は、行動選択システムを使用して所定の行動セットから行動を選択する例示のプロセスの流れ図である。便宜上、プロセス200は、1つまたは複数のロケーションに配置された1つまたは複数のコンピュータのシステムが遂行するものと説明される。たとえば、本明細書に従って適切にプログラムされた行動選択システム(たとえば
図1の行動選択システム100)は、プロセス200を遂行することができる。
【0053】
システムは、環境の現在の状態を特徴付ける観測を受け取る(202)。いくつかの実装形態では、環境はシミュレートされた環境であり、エージェントは、シミュレートされた環境の中をナビゲートすることによってシミュレートされた環境と相互作用する1つまたは複数のコンピュータプログラムとして実施される。いくつかの他の実装形態では、環境は現実世界の環境であり、エージェントは現実世界の環境と相互作用する機械的エージェントである。いくつかの実装形態では、観測は、エージェントのセンサによって生成されてよく、またはこのセンサから導出されてもよい。
【0054】
システムは、時間ステップに関する観測の中間表現を生成する(204)。具体的には、システムは、符号化ニューラルネットワークに対する入力として観測を供給し、符号化ニューラルネットワークは、符号化ニューラルネットワークパラメータのセットの現在の値に従って観測を処理し、時間ステップに関する観測の中間表現を出力として生成するように構成されている。中間表現は、中間状態空間における時間ステップに関する観測を表現する、数値の順序付けられた集合(たとえばベクトルまたはマトリクス)である。特に観測が画像であるとき、符号化ニューラルネットワークは畳み込みニューラルネットワークでよい。符号化ニューラルネットワークパラメータのセットの値は、訓練エンジンによるシステムの訓練中に判定される。
【0055】
システムは、マネージャシステムに対して時間ステップに関する中間表現を供給し、マネージャシステムは、時間ステップに関する中間表現を処理して、時間ステップに関する最終的な目標ベクトルを出力として生成する(206)。マネージャシステムを使用して時間ステップに関する最終的な目標ベクトルを生成するための例示のプロセスを、
図3を参照しながら以下で説明する。
【0056】
システムは、時間ステップに関する中間表現および時間ステップに関する最終的な目標ベクトル(マネージャシステムによって生成されたもの)を、ワーカシステムに入力として供給する。ワーカシステムは、時間ステップに関する入力を処理して、時間ステップに関する行動スコアを出力として生成する(208)。ワーカシステムを使用して時間ステップに関する行動スコアを生成するための例示のプロセスを、
図4を参照しながら説明する。
【0057】
システムは、ワーカシステムによって生成された行動スコアに基づき、所定の行動セットから行動を選択する(210)。行動スコアは、所定の行動セットにおける各行動について、個別のスコアを含む。いくつかの実装形態では、システムは、エージェントによって遂行される行動を、行動スコアに従って、最高の対応するスコアを有する行動として選択する。いくつかの他の実装形態では、システムは、softmax関数によって行動スコアを処理することにより、所定の行動セットにおける各行動の確率を判定する。これらの実装形態では、システムは、エージェントによって遂行される行動を、行動スコアを基に判定された所定の行動セットにわたる確率分布からサンプリングすることによって選択してよい。
【0058】
図3は、マネージャシステムを使用して時間ステップに関する最終的な目標ベクトルを生成する例示のプロセスの流れ図である。便宜上、プロセス300は、1つまたは複数のロケーションに配置された1つまたは複数のコンピュータのシステムが遂行するものと説明される。たとえば、本明細書に従って適切にプログラムされたマネージャシステム(たとえば
図1のマネージャシステム102)は、プロセス300を遂行することができる。
【0059】
システムは、時間ステップに関する環境の現在の状態の中間表現を受け取る(302)。一般に、環境の現在の状態の中間表現は符号化ニューラルネットワークによって生成される。
【0060】
システムは、潜在表現ニューラルネットワークに対して時間ステップに関する中間表現を入力として供給することにより、時間ステップに関する潜在表現を生成する(304)。潜在表現ニューラルネットワークは、潜在表現ニューラルネットワークパラメータのセットの現在の値に従って時間ステップに関する中間表現を処理して、時間ステップに関する潜在表現を出力として生成するように構成されている。いくつかの実装形態では、潜在表現ニューラルネットワークはフィードフォワードニューラルネットワーク(たとえば多層パーセプトロン)である。時間ステップに関する潜在表現は、時間ステップに関する潜在状態空間における中間観測を表現するとともに観測を(間接的に)表現する、数値の順序付けられた集合(たとえばベクトルまたはマトリクス)である。潜在ニューラルネットワークパラメータのセットの値は、訓練エンジンによるシステムの訓練中に判定される。
【0061】
システムは、時間ステップに関する初期の目標ベクトルを生成する(306)。具体的には、システムは、潜在表現ニューラルネットワークが生成した時間ステップに関する潜在表現を、目標回帰型ニューラルネットワークに供給する。目標回帰型ニューラルネットワークは、時間ステップに関する潜在表現と、時間ステップに関する目標回帰型ニューラルネットワークの内部状態とを処理するように構成されている。目標回帰型ニューラルネットワークは、目標回帰型ニューラルネットワークの内部状態を更新して、時間ステップに関する初期の目標ベクトルを出力として生成し、すなわち
【数1】
であり、ここで、
【数2】
は、目標回帰型ニューラルネットワークの更新された内部状態(すなわち次の時間ステップに関する目標回帰型ニューラルネットワークの内部状態)であり、
【数3】
は、時間ステップに関する目標回帰型ニューラルネットワークの内部状態であり、s
tは時間ステップに関する潜在表現であり、g
tは時間ステップに関する初期の目標ベクトルであって、f
Mrnnは、目標回帰型ニューラルネットワークが、目標回帰型ニューラルネットワークパラメータのセットの現在の値に従って遂行する動作である。時間ステップに関する初期の目標ベクトルは、ベクトルへと論理的に配置された数値の順序付けられた集合である。いくつかの実装形態では、システムは、時間ステップが(たとえばユークリッドノルムに対して)単位長を有するように、初期の目標ベクトルを正規化する。目標回帰型ニューラルネットワークは、任意の適切な回帰型ニューラルネットワークモデルとして実施され得る。いくつかの実装形態では、目標回帰型ニューラルネットワークはLSTMネットワークである。いくつかの実装形態では、目標回帰型ニューラルネットワークは拡張されたLSTMネットワークである。目標回帰型ニューラルネットワークパラメータのセットの値は、訓練エンジンによるシステムの訓練中に判定される。拡張されたLSTMネットワークを使用してネットワーク出力(たとえば初期の目標ベクトル)を生成するための例示のプロセスを、
図6を参照しながら説明する。
【0062】
システムは、目標回帰型ニューラルネットワークによって生成された時間ステップに関する初期の目標ベクトルと、目標回帰型ニューラルネットワークによって生成された1つまたは複数の以前の時間ステップに関する初期の目標ベクトルとをプールすることにより、時間ステップに関する最終的な目標ベクトルを生成する(308)。いくつかの実装形態では、システムは、生成された現在の時間ステップに関する初期の目標ベクトルと、生成された以前の時間ステップに関する1つまたは複数の初期の目標ベクトルとを、合計することによってプールする。しかしながら、目標ベクトルは他の多くのやり方で組み合わされてよい。時間ステップに関する最終的な目標ベクトルは、ベクトルへと配置された数値の順序付けられた集合である。最終的な目標ベクトルは、プールする動作のために、時間ステップの間で滑らかに変化する。
【0063】
図4は、ワーカシステムを使用して、時間ステップに関する行動スコアを生成する例示のプロセスの流れ図である。便宜上、プロセス400は、1つまたは複数のロケーションに配置された1つまたは複数のコンピュータのシステムが遂行するものと説明される。たとえば、本明細書に従って適切にプログラムされたワーカシステム(たとえば
図1のワーカシステム116)は、プロセス400を遂行することができる。
【0064】
システムは、時間ステップに関する環境の現在の状態の中間表現と最終的な目標ベクトルとを受け取る(402)。一般に、環境の現在の状態の中間表現は符号化ニューラルネットワークによって生成され、時間ステップに関する最終的な目標ベクトルはマネージャシステムによって生成される。
【0065】
システムは、時間ステップに関する行動埋め込みベクトルを生成する(404)。具体的には、システムは、符号化ニューラルネットワークが生成した時間ステップに関する中間表現を、行動スコア回帰型ニューラルネットワークに供給する。行動スコア回帰型ニューラルネットワークは、時間ステップに関する中間表現と、時間ステップに関する行動スコア回帰型ニューラルネットワークの内部状態とを処理するように構成されている。行動スコア回帰型ニューラルネットワークは、行動スコア回帰型ニューラルネットワークの内部状態を更新して、時間ステップに関する行動埋め込みベクトルを出力として生成し、すなわち
【数4】
であり、ここで、
【数5】
は、行動スコア回帰型ニューラルネットワークの更新された内部状態(すなわち次の時間ステップに関する行動スコア回帰型ニューラルネットワークの内部状態)であり、
【数6】
は、時間ステップに関する行動スコア回帰型ニューラルネットワークの内部状態であり、z
tは時間ステップに関する中間表現であり、U
tは、(各行が、異なる行動埋め込みベクトルに対応する)マトリクスへと配置された時間ステップに関する行動埋め込みベクトルのセットであって、f
Wrnnは、行動スコア回帰型ニューラルネットワークが、行動スコア回帰型ニューラルネットワークパラメータのセットの現在の値に従って遂行する動作である。行動スコア回帰型ニューラルネットワークは、任意の適切な回帰型ニューラルネットワークモデルとして実施され得る。たとえば、行動スコア回帰型ニューラルネットワークは、LSTMネットワークまたは拡張されたLSTMネットワークとして実施されてよい。
【0066】
システムは、時間ステップに関する最終的な目標ベクトルに基づいて、時間ステップに関する目標埋め込みベクトルを生成する(406)。具体的には、システムは、時間ステップに関する最終的な目標ベクトルを射影エンジンに供給し、射影エンジンは、時間ステップに関する最終的な目標ベクトルを受け取り、射影エンジンパラメータのセットの現在の値に従って時間ステップに関する最終的な目標ベクトルを処理して、時間ステップに関する目標埋め込みベクトルを出力として生成するように構成されている。一般に、目標埋め込みベクトルは、最終的な目標ベクトルよりも小さい次元数を有する。いくつかの実装形態では、目標埋め込みベクトルの次元数は、最終的な目標ベクトルの次元数よりも10倍以上(すなわち1桁以上)小さくてよい。いくつかの実装形態では、射影エンジンの動作は以下の式で与えられ得、
w
t=φG
t
【数7】
ここで、現在の時間ステップはtであり、w
tは時間ステップに関する目標埋め込みベクトルであり、G
tは時間ステップに関する最終的な目標ベクトルであり、φは、射影マトリクス(すなわちベクトルG
tの次元数と同数の列、および目標埋め込みベクトルw
tの次元数と同数の行を有するマトリクス)であって、時間ステップに関する最終的な目標ベクトルは、(たとえば308においてマネージャシステムによって)現在の時間ステップおよび以前のc回の時間ステップについて生成された初期の目標ベクトルを合計することによって判定され、cは正整数である。
【0067】
システムは、時間ステップに関する行動スコアを生成する(408)。具体的には、システムは、時間ステップに関する目標埋め込みベクトルおよび時間ステップに関する行動埋め込みベクトルを、入力として調整エンジンに供給し、調整エンジンは、入力を組み合わせて、時間ステップに関する行動スコアを出力として生成するように構成されている。いくつかの実装形態では、調整エンジンは、時間ステップに関する目標埋め込みベクトルと時間ステップに関する行動埋め込みベクトルとをマトリクスベクトル乗算によって組み合わせて
πt=Utwt
とするように構成されており、ここで、マトリクスUtの各行は時間ステップに関する行動埋め込みベクトルであり、wtは時間ステップに関する目標埋め込みベクトルであり、πtは時間ステップに関する行動スコアのベクトルである。
【0068】
図5は、行動選択システムを訓練するための例示のプロセスの流れ図である。便宜上、プロセス500は、1つまたは複数のロケーションに配置された1つまたは複数のコンピュータを含むエンジンが遂行するものと説明される。たとえば、本明細書に従って適切にプログラムされた訓練エンジン(たとえば
図1の訓練エンジン134)は、プロセス500を遂行することができる。
【0069】
エンジンは、時間ステップに関する外的報酬を受け取る(502)。受け取られる外的報酬は、時間ステップにおける環境の現在の状態およびエージェントの行動に基づくものである。一般に、外的報酬は、特定のタスクを達成するエージェントの行動を遂行する工程の効果を反映する数値である。場合によっては、エンジンは、所与の時間ステップについて、エージェントが1つまたは複数の目的を達成する工程の進捗に基づく外的報酬を受け取ってよい。たとえば、エージェントの目的は、環境における目的のロケーションにナビゲートすることでよい。
【0070】
エンジンは、時間ステップに関する内的報酬を判定する(504)。一般に、エンジンは、ワーカシステムが生成した行動スコアが、(たとえば304においてマネージャシステムが生成した)潜在表現を、(たとえば306において)マネージャシステムが生成した初期の目標ベクトルによって与えられた潜在状態空間における方向にどれくらいうまく移動させるかということに基づいて、内的報酬を判定する。たとえば、訓練エンジンは、時間ステップtに関する内的報酬を次式によって判定してよく、
【数8】
ここで、
【数9】
は時間ステップtに関する内的報酬であり、cは正整数であり、d
cosは、2つのベクトルの間のコサイン類似度(すなわちd
cos =α
Tβ/(|α||β|))であり、s
tは時間ステップtに関する潜在表現であり、s
t-iは時間ステップt-iに関する潜在表現であって、g
t-iは時間ステップt-iに関する初期の目標ベクトルである。したがって、内的報酬は、時間ステップに関する目標ベクトルの方向と、その時間ステップから次の時間ステップまでの潜在表現における変化を表現するベクトルの方向との間の差に依拠し得るものである。
【0071】
エンジンは、外的報酬および内的報酬に基づいてワーカシステムのパラメータを調節する(506)。具体的には、エンジンは、調整エンジンのパラメータ、射影エンジンのパラメータ、行動スコア回帰型ニューラルネットワークのパラメータ、および符号化ニューラルネットワークのパラメータを調節して、ワーカシステムに、エージェントが選択された行動を遂行した結果として受け取られた外的報酬と訓練エンジンが判定した内的報酬との長期的な時間割引きされた組合せを最大化する行動スコアを生成させる。たとえば、長期的な時間割引きされた組合せは以下の式によって与えられてよく、
【数10】
【数11】
【数12】
ここで、γおよびγ
Iは0と1の間の割引き係数であり(一般に異なるものであり得)、r
t+k+1は時間ステップt+k+1において受け取られた外的報酬であり、
【数13】
は時間ステップt+k+1において受け取られた内的報酬であり、αは、内的報酬の作用を調整する定数であって、任意の適切な方法(たとえば任意の方法または相互検証による方法)によって判定され得るものである。エンジンは、任意の適切な強化学習方法によってワーカシステムのパラメータを訓練することができる。たとえば、エンジンは、(たとえば、内的報酬および外的報酬に関する価値関数推定が、行動スコア回帰型ニューラルネットワークの内部状態を入力として受け取る多層パーセプトロンなどのニューラルネットワークによって生成される場合には)アドバンテージアクタクリティック(advantage actor critic)強化学習方法を使用してワーカシステムのパラメータを訓練してよい。いくつかの実装形態では、エンジンは、マネージャシステムとは無関係にワーカシステムを訓練する(すなわち、エンジンはワーカシステムおよびマネージャシステムからの勾配を逆伝搬せず、目標はユニタリ系の単なる内部変数以上のものとなる)。これは、ワーカシステムによる内的報酬に基づく目標の達成から切り離して、マネージャシステムの目標を外的報酬に基づいて発展させることが容易になるので、有効である。
【0072】
エンジンは、外的報酬に基づいてマネージャシステムのパラメータを更新する(508)。具体的には、エンジンは、目標回帰型ニューラルネットワークのパラメータ、潜在表現ニューラルネットワークのパラメータ、および符号化ニューラルネットワークのパラメータを調節する。マネージャシステムのパラメータを調節することにより、マネージャシステムは、マネージャシステムの潜在表現を潜在状態空間において有利な方向に移動する行動の選択を助長する行動スコアをもたらす初期の目標ベクトルを生成する。潜在状態空間における方向は、たとえば、潜在表現がその方向に移動すると、より大きい長期的な時間割引きされた外的報酬を受けられる場合には、有利であると考えられる。いくつかの実装形態では、マネージャシステムのパラメータは勾配の上昇によって更新されてよく、時間ステップt+cにおける勾配は以下の式で与えられ、
【数14】
【数15】
ここで、θはマネージャシステムのパラメータを指し、∇
θはパラメータθに対する導関数を指し、cはマネージャシステムの時間分解能を定義する範囲(horizon)と称される正整数であり、d
cosは(上記で説明されたように)2つのベクトルの間のコサイン類似度であり、s
t+cは時間t+cにおける潜在表現であり、s
tは時間tにおける潜在表現であり、g
t(θ)は時間ステップtに関する初期の目標ベクトル(この表記法はパラメータθに対する依存関係を明示するものである)であり、
【数16】
はマネージャシステムの利益関数と称され、V
M(x
t,θ)は、パラメータθおよび時間ステップtに関する観測x
tに基づいて計算される価値関数推定である(すなわち、時間ステップから予期される長期的な時間割引きされた外的報酬であり、環境の観測はx
tによって与えられる)。価値関数推定V
M(x
t,θ)はニューラルネットワーク(たとえば多層パーセプトロン)を使用して判定され、このニューラルネットワークは、目標回帰型ニューラルネットワークの内部状態を入力として受け取り、予期された長期的な時間割引きされた外的報酬の正確な推定を生成するように(たとえば勾配逆伝搬によって)訓練される。これらの実装形態では、エンジンは、c回の時間ステップごとに、マネージャシステムのパラメータを調節するために勾配を逆伝搬する。
【0073】
図6は、拡張されたLSTMネットワークを使用してネットワーク出力を生成するための例示のプロセスの流れ図である。便宜上、プロセス600は、1つまたは複数のロケーションに配置された1つまたは複数のコンピュータを含むニューラルネットワークが遂行するものと説明される。たとえば、本明細書に従って適切にプログラムされたニューラルネットワーク(たとえば
図1の目標回帰型ニューラルネットワーク108)は、プロセス600を遂行することができる。
【0074】
一般に、拡張されたLSTMネットワークは、複数の独立したサブ状態へと分割される内部状態をそれぞれ維持する1つまたは複数のLSTMネットワーク層のシーケンスを含むLSTMネットワークである。LSTMネットワーク層の内部状態は、数値の順序付けられた集合である(たとえばベクトルまたはマトリクスとして表現される)。LSTMネットワーク層の内部状態のサブ状態は、内部状態の数値の順序付けられた集合のサブセットである。
【0075】
ネットワークは、時間ステップに関するネットワーク入力を受け取る(602)。一般に、ネットワークは、時間ステップのシーケンスにおける各時間ステップについてそれぞれのネットワーク入力を受け取る。たとえば、時間ステップに関するネットワーク入力は、潜在表現ニューラルネットワークによって生成された時間ステップに関する潜在表現でよい。
【0076】
各LSTMネットワーク層は時間ステップに関するサブ状態を選択する(604)。時間ステップのシーケンスにおける時間ステップは、シーケンスにおける最初の時間ステップに1、から始まってシーケンスにおける最後の時間ステップにTまでといったインデックスを付けられてよく、特定のLSTMネットワーク層については、LSTMネットワーク層の各サブ状態が1からrの範囲のインデックスを割り当てられてよい。特定のLSTMネットワーク層は、rを法とする時間ステップのインデックスと等しいサブ状態インデックスを有する時間ステップに関するサブ状態を選択してよい。たとえば、各時間ステップが1から10までのインデックスを割り当てられ、各サブ状態が1から3までのインデックスを割り当てられている場合には、インデックス1を割り当てられた時間ステップ向けに選択されるサブ状態は、インデックス1を割り当てられたサブ状態になり、インデックス5を割り当てられた時間ステップ向けに選択されるサブ状態は、インデックス2を割り当てられたサブ状態になる。
【0077】
サブ状態の現在の値は、そのサブ状態によってインデックスを付けられたLSTMネットワーク層のノードの出力値を含み得る。各LSTMネットワーク層について、LSTMネットワーク層は、LSTMネットワーク層パラメータのセットに従って、時間ステップに関して選択されたサブ状態の現在の値および時間ステップに関する入力を処理し、時間ステップに関して選択されたサブ状態の現在の値を更新して、時間ステップに関する出力を生成する(606)。シーケンスにおける第1のLSTMネットワーク層は、時間ステップに関するネットワーク入力を受け取る。それぞれの後続のLSTMネットワーク層が、時間ステップに関する入力として、時間ステップのシーケンスにおける以前のLSTMネットワーク層の出力を受け取る。各LSTMネットワーク層が次式の動作を遂行してよく、
【数17】
ここで、tは現在の時間ステップであり、rはLSTMネットワーク層のサブ状態の数であり、%はモジュロ演算を指し、
【数18】
は、t%rによってインデックスを付けられたLSTMネットワーク層のサブ状態の更新された値(すなわち時間ステップt+1においてt%rによってインデックスを付けられたサブ状態の値)を指し、
【数19】
は、時間ステップtにおいてt%rによってインデックスを付けられたLSTMネットワーク層のサブ状態の値を指し、g
tは時間ステップに関するLSTMネットワーク層出力を指し、s
tは時間ステップに関するLSTMネットワーク層の入力を指し、θ
LSTMは、LSTMネットワーク層パラメータのセットを指し、LSTMは、LSTMネットワーク層パラメータθ
LSTMのセットに従ってLSTMネットワーク層によって遂行される動作を指す。一般に、各LSTMネットワーク層によって入力を処理するために使用されるLSTMネットワーク層パラメータθ
LSTMのセットは、時間ステップに関して選択されたサブ状態から独立している。異なるLSTMネットワーク層は異なるLSTMネットワーク層パラメータ値を有し得る。拡張されたLSTMネットワークのフル状態は
【数20】
と指定され得、r個のサブ状態、またはグループのサブ状態の各々は、拡張されたLSTMネットワークの個別の「コア」と見なされ得る。
【0078】
ネットワークは、時間ステップに関するネットワーク出力を判定する(608)。いくつかの実装形態では、ネットワークは、時間ステップに関するネットワーク出力を、時間ステップに関する最終的なLSTMネットワーク層の出力であると判定する。いくつかの他の実装形態では、ネットワークは、時間ステップに関する最終的なLSTMネットワーク層出力と以前の時間ステップの所定回数までの出力とをプールすること、すなわち組み合わせることにより、時間ステップに関するネットワーク出力を判定する。ネットワークは、最終的なLSTMネットワーク層出力を、合計することにより、平均することにより、最大のノルムを有する最終的なLSTMネットワーク層出力を選択することにより、または任意の他の適切なプールする方法によって、プールしてよい。これによって、拡張されたLSTMネットワークは、より長い期間にわたって記憶を維持することが容易になる。
【0079】
本明細書は、システムおよびコンピュータプログラムコンポーネントに関連して、「構成されている」という用語を使用する。1つまたは複数のコンピュータのシステムに関して、特定の動作または行為を遂行するように構成されているということは、動作において、システムに動作または行為を遂行させるソフトウェア、ファームウェア、ハードウェアまたはそれらの組合せがシステムにインストールされていることを意味する。1つまたは複数のコンピュータのプログラムに関して、特定の動作または行為を遂行するように構成されているということは、1つまたは複数のプログラムに含まれている命令が、データ処理装置によって実行されたとき、この装置に動作または行為を遂行させることを意味する。
【0080】
本明細書で説明された主題および機能的動作の実施形態は、デジタル電子回路、実体的に実施されたコンピュータソフトウェアまたはファームウェア、本明細書で開示された構造およびそれらの構造的等価物を含むコンピュータハードウェア、あるいはそれらの1つまたは複数の組合せで実施され得る。本明細書で説明された主題の実施形態は、データ処理装置によって実行するために、あるいはデータ処理装置の動作を制御するように、有形の不揮発性記憶媒体上に符号化された1つまたは複数のコンピュータプログラム、すなわちコンピュータプログラムの命令の1つまたは複数のモジュールとして実施され得る。コンピュータ記憶媒体は、機械可読記憶デバイス、機械可読記憶基板、ランダムアクセスメモリデバイスもしくはシリアルアクセスメモリデバイス、またはそれらの1つもしくは複数の組合せであり得る。その代わりに、またはそれに加えて、プログラム命令は、人為的に生成されて伝搬される信号、たとえば、データ処理装置による実行向けに適切な受信装置へ伝送するために、情報を符号化するようにマシンで生成された電気信号、光信号、または電磁気信号上に符号化され得る。
【0081】
「データ処理装置」という用語は、データ処理ハードウェアを指し、例として、プログラマブルプロセッサ、コンピュータ、または複数のプロセッサもしくはコンピュータを含めて、データ処理用のあらゆる種類の装置、デバイス、およびマシンを包含する。この装置は、専用論理回路、たとえばFPGA(フィールドプログラマブルゲートアレイ)、またはASIC(特定用途向け集積回路)でもあり得、またはこれらをさらに含むことができる。この装置は、ハードウェアに加えて、コンピュータプログラムのための実行環境を生成するコード、たとえばプロセッサファームウェア、プロトコルスタック、データベース管理システム、オペレーティングシステム、またはそれらのうち1つもしくは複数の組合せを構成するコードを任意選択で含み得る。
【0082】
プログラム、ソフトウェア、ソフトウェアアプリケーション、アプリケーション、モジュール、ソフトウェアモジュール、スクリプト、もしくはコードとも称され得る、またはそれらとして記述され得る、コンピュータプログラムは、コンパイル型言語もしくはインタープリタ型言語、または宣言型言語もしくは手続き型言語を含んでいる任意の形式のプログラム言語で書かれ得て、スタンドアロンプログラムとして、またはモジュール、コンポーネント、サブルーチン、もしくはコンピューティング環境で使用するのに適切な他のユニットとして含まれる任意の形式で配置され得る。プログラムは、ファイルシステムの中のファイルに対応することができるが、これは必須ではない。プログラムは、たとえばマークアップ言語のドキュメントで記憶された1つまたは複数のスクリプトといった他のプログラムまたはデータを保持するファイルの一部分、当該プログラムに専用の単一ファイル、あるいは、たとえば1つまたは複数のモジュール、サブプログラム、またはコードの一部分を記憶するファイルといった複数の統合されたファイルに記憶され得る。コンピュータプログラムは、1つのコンピュータ、または1つのサイトに配置された、もしくは複数のサイトにわたって分散してデータ通信ネットワークで相互に連結された複数のコンピュータ上で実行されるように配置することができる。
【0083】
本明細書では、「エンジン」という用語は、1つまたは複数の特定の機能を遂行するようにプログラムされたソフトウェアベースのシステム、サブシステム、またはプロセスを指すように広く使用されている。一般に、エンジンは、1つまたは複数のロケーションにおける1つまたは複数のコンピュータにインストールされた1つまたは複数のソフトウェアモジュールまたはコンポーネントとして実施されることになる。場合によっては、1つまたは複数のコンピュータが特定のエンジンに専用のものになり、他の場合には、同一のコンピュータに複数のエンジンがインストールされて動作し得る。
【0084】
本明細書で説明されたプロセスおよび論理の流れは、入力データに対して動作して出力を生成することにより機能を実行する1つまたは複数のコンピュータプログラムを遂行する1つまたは複数のプログラマブルコンピュータによって実行され得る。プロセスおよび論理の流れは、たとえばFPGAもしくはASICといった専用論理回路、または専用論理回路と1つまたは複数のプログラムされたコンピュータとの組合せによっても遂行され得る。
【0085】
コンピュータプログラムを実行するのに適するコンピュータは、汎用マイクロプロセッサもしくは専用マイクロプロセッサまたは両方、あるいは任意の他の種類の中央処理装置に基づくものであり得る。一般に、中央処理装置は、命令およびデータを、読み取り専用メモリもしくはランダムアクセスメモリまたはその両方から受け取ることになる。コンピュータの必須要素は、命令を実行または遂行するための中央処理装置ならびに命令およびデータを記憶するための1つまたは複数の記憶デバイスである。中央処理装置および記憶装置は、専用論理回路によって補足され得、またはこれに組み込まれ得る。一般に、コンピュータは、たとえば磁気ディスク、光磁気ディスク、または光ディスクといった、データを記憶するための1つまたは複数の大容量記憶デバイスも含むことになり、あるいは、これらからデータを受け取り、もしくはこれらへデータを転送し、またはその両方を行うために、これらに対して動作可能に結合される。しかしながら、コンピュータにはそのようなデバイスがなくてもよい。その上に、コンピュータは、別のデバイス、たとえばほんの少数を挙げると、移動電話、携帯情報端末(PDA)、移動式のオーディオプレーヤもしくはビデオプレーヤ、ゲーム機、全地球測位システム(GPS)受信器、または移動式記憶デバイス(たとえばユニバーサルシリアルバス(USB)のフラッシュドライブ)の中に組み込まれ得る。
【0086】
コンピュータプログラムの命令およびデータを記憶するのに適切なコンピュータ可読媒体には、例として、たとえばEPROM、EEPROM、およびフラッシュメモリデバイスといった半導体メモリデバイスと、たとえば内部ハードディスク、または取外し可能ディスクといった磁気ディスクと、光磁気ディスクと、CD-ROMおよびDVD-ROMディスクとを含む、すべての形態の不揮発性記憶装置、媒体、および記憶デバイスが含まれる。
【0087】
ユーザとの相互作用を提供するために、本明細書で説明された主題の実施形態は、ユーザに情報を表示するための、たとえばCRT(ブラウン管)またはLCD(液晶ディスプレイ)のモニタといったディスプレイデバイス、ならびにユーザがコンピュータに入力を与えることができるキーボード、およびたとえばマウスまたはトラックボールといったポインティングデバイスを有するコンピュータ上で実施され得る。ユーザとの対話をもたらすために、他の種類のデバイスも同様に使用され得、たとえば、ユーザに提供されるフィードバックは、たとえば視覚フィードバック、聴覚フィードバック、または触覚フィードバックといった任意の形式の感覚フィードバックであり得、また、ユーザからの入力は、音響、音声、または触覚の入力を含む任意の形式で受け取られ得る。加えて、コンピュータは、ユーザが使用するデバイスとの間でドキュメントを送受することにより、たとえばウェブブラウザから受け取った要求に応答してユーザのデバイス上のウェブブラウザへウェブページを送ることによって、ユーザと相互作用することができる。また、コンピュータは、たとえばメッセージングアプリケーションを実行しているスマートフォンといった個人デバイスに、テキストメッセージまたは他の形式のメッセージを送って、ユーザから返報として応答のメッセージを受け取ることにより、ユーザと相互作用することができる。
【0088】
機械学習モデルを実施するためのデータ処理装置は、たとえば、機械学習訓練または生産の共通の数値計算の部分、すなわち推測、作業負荷を処理するための専用ハードウェアアクセラレータユニットも含むことができる。
【0089】
機械学習モデルは、たとえばTensorFlowフレームワーク、Microsoft Cognitive Toolkitフレームワーク、Apache Singaフレームワーク、またはApache MXNetフレームワークといった機械学習フレームワークを使用して実施されて配置され得る。
【0090】
本明細書で説明された主題の実施形態は、たとえばデータサーバとしてのバックエンドコンポーネント、またはたとえばアプリケーションサーバといったミドルウェアコンポーネント、またはたとえばグラフィカルユーザインターフェース、ウェブブラウザ、もしくはユーザが本明細書で説明された主題の実施形態と相互作用することを可能にするアプリケーションを有するクライアントコンピュータといったフロントエンドコンポーネント、あるいはそのようなバックエンドコンポーネント、ミドルウェアコンポーネント、もしくはフロントエンドコンポーネントの任意の組合せを含んでいるコンピューティングシステムにおいて実施され得る。システムのコンポーネントは、たとえば通信ネットワークであるデジタルデータ通信の任意の形式または媒体によって相互に連結され得る。通信ネットワークの例は、ローカルエリアネットワーク(LAN)と、たとえばインターネットである広域ネットワーク(WAN)とを含む。
【0091】
コンピューティングシステムは、クライアントおよびサーバを含むことができる。一般に、クライアントとサーバとは互いに遠く離れていて、典型的には通信ネットワークを通じて相互作用する。クライアントとサーバの関係は、それぞれのコンピュータ上で走って互いにクライアント対サーバの関係を有するコンピュータプログラムによって生じる。いくつかの実施形態では、サーバは、たとえば、クライアントとして働くユーザデバイスにデータを表示するように、たとえばHTMLページといったデータを伝送し、このデバイスと相互作用するユーザからユーザ入力を受け取る。ユーザデバイスにおいて生成された、たとえばユーザとの相互作用の結果といったデータは、このデバイスから、サーバにおいて受け取られ得る。
【0092】
本明細書は多くの特定の実装形態の詳細を含むが、これらは、何らかの発明の範囲に対する限定または特許請求され得るものの限定としてではなく、特定の発明の特定の実施形態に特有であり得る特徴の説明として解釈されるべきである。本明細書において個別の実施形態の状況で説明された特定の特徴は、単一の実施形態の組合せでも実施され得る。反対に、1つの実施形態の文脈で説明された様々な特徴は、複数の実施形態で別個に、もしくは任意の適切な部分組合せで実施することもできる。その上に、各特徴は、上記ではある組合せにおいて働くように記載されており、場合によっては最初からそのように請求されていることがあるが、請求された組合せの1つまたは複数の特徴は、場合によってはその組合せから除外されてもよく、請求された組合せは、部分組合せまたは部分組合せの変形形態を対象とするものであってもよい。
【0093】
同様に、動作は、図面において特定の順番で表され、特許請求の範囲において特定の順番で列挙されているが、これは、望ましい結果を達成するために、そのような動作が示された特定の順番またはシーケンシャルな順序で遂行されること、あるいは図示のすべての動作が遂行されることを必要とするものと理解されるべきではない。特定の環境では、マルチタスクおよび並行処理が有利なことがある。その上に、前述の実施形態における様々なシステムのモジュールおよびコンポーネントの分離は、すべての実施形態においてそのような分離を必要とするものと理解されるべきではなく、説明されたプログラムコンポーネントおよびシステムは、一般に、1つのソフトウェア製品の中に一緒に組み込まれるか、または複数のソフトウェア製品にパッケージ化され得ることを理解されたい。
【0094】
主題の特定の実施形態が説明されてきた。他の実施形態は、以下の特許請求の範囲内にある。たとえば、特許請求の範囲において列挙された行為は、異なる順番で遂行されても、望ましい結果を達成することができる。一例として、添付図において表された処理は、望ましい結果を達成するために、示された特定の順序またはシーケンシャルな順番を必ずしも必要とするわけではない。場合によっては、マルチタスクおよび並行処理が有利なことがある。
【符号の説明】
【0095】
100 行動選択システム
102 マネージャシステム
104 潜在表現ニューラルネットワーク
106 潜在表現
108 目標回帰型ニューラルネットワーク
110 初期の目標ベクトル
112 目標プールエンジン
114 最終的な目標ベクトル
116 ワーカシステム
118 中間表現
120 符号化ニューラルネットワーク
122 行動スコア回帰型ニューラルネットワーク
124 行動埋め込みベクトル
126 射影エンジン
128 調整エンジン
130 目標埋め込みベクトル
132 行動スコア
134 訓練エンジン
136 観測
138 外的報酬
140 環境
142 エージェント
144 行動