IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ ディープマインド テクノロジーズ リミテッドの特許一覧

特表2022-504739時間的価値移送を使用した長いタイムスケールにわたるエージェントの制御
<>
  • 特表-時間的価値移送を使用した長いタイムスケールにわたるエージェントの制御 図1
  • 特表-時間的価値移送を使用した長いタイムスケールにわたるエージェントの制御 図2
  • 特表-時間的価値移送を使用した長いタイムスケールにわたるエージェントの制御 図3
  • 特表-時間的価値移送を使用した長いタイムスケールにわたるエージェントの制御 図4
  • 特表-時間的価値移送を使用した長いタイムスケールにわたるエージェントの制御 図5
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2022-01-13
(54)【発明の名称】時間的価値移送を使用した長いタイムスケールにわたるエージェントの制御
(51)【国際特許分類】
   G06N 3/08 20060101AFI20220105BHJP
   G06N 20/00 20190101ALI20220105BHJP
   G06N 3/04 20060101ALI20220105BHJP
【FI】
G06N3/08
G06N20/00
G06N3/04 190
【審査請求】有
【予備審査請求】未請求
(21)【出願番号】P 2021519878
(86)(22)【出願日】2019-10-14
(85)【翻訳文提出日】2021-06-08
(86)【国際出願番号】 EP2019077704
(87)【国際公開番号】W WO2020074741
(87)【国際公開日】2020-04-16
(31)【優先権主張番号】62/745,202
(32)【優先日】2018-10-12
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.TENSORFLOW
(71)【出願人】
【識別番号】517030789
【氏名又は名称】ディープマインド テクノロジーズ リミテッド
(74)【代理人】
【識別番号】100108453
【弁理士】
【氏名又は名称】村山 靖彦
(74)【代理人】
【識別番号】100110364
【弁理士】
【氏名又は名称】実広 信哉
(74)【代理人】
【識別番号】100133400
【弁理士】
【氏名又は名称】阿部 達彦
(72)【発明者】
【氏名】グレゴリー・ダンカン・ウェイン
(72)【発明者】
【氏名】ティモシー・ポール・リリクラップ
(72)【発明者】
【氏名】チア-チュン・ハン
(72)【発明者】
【氏名】ジョシュア・サイモン・アブラムソン
(57)【要約】
指定されたタスクを実行するために環境と対話しているエージェントを制御するために使用されるニューラルネットワークシステムをトレーニングするための、コンピュータ記憶媒体上に符号化されたコンピュータプログラムを含む、方法、システム、および装置。これらの方法のうちの1つは、エージェントにエージェントが指定されたタスクの実行を試みるタスクエピソードを実行させるステップと、シーケンス内の1つまたは複数の特定の時間ステップの各々に対して、(i)時間ステップにおける実際の報酬、および(ii)シーケンス内の特定の時間ステップの後のしきい値の時間ステップ数を上回る1つまたは複数の時間ステップにおける価値予測から、特定の時間ステップに対する修正された報酬を生成するステップと、強化学習を通して、特定の時間ステップに対する修正された報酬を少なくとも使用して、ニューラルネットワークシステムをトレーニングするステップとを含む。
【特許請求の範囲】
【請求項1】
指定されたタスクを実行するために環境と対話しているエージェントを制御するために使用されるニューラルネットワークシステムをトレーニングする方法であって、
前記エージェントに前記エージェントが前記指定されたタスクの実行を試みるタスクエピソードを実行させるステップであって、前記タスクエピソード中の時間ステップのシーケンスの各々において、
前記環境の現在の状態を特徴付ける観測を取得するステップと、
前記ニューラルネットワークシステムを使用して、前記観測に応答して前記エージェントによって実行されることになる行動を前記観測から選択するステップと、
前記ニューラルネットワークシステムを使用して、前記指定されたタスクを成功裏に実行するために前記現在の状態にある前記環境の価値を表す価値予測を生成するステップと、
前記エージェントに前記選択された行動を実行させるステップと、
応答して、前記エージェントが前記選択された行動を実行する結果として、前記環境内での進展を特徴付ける実際の報酬を受信するステップと
を含む、実行させるステップと、
前記シーケンス内の1つまたは複数の特定の時間ステップの各々に対して、
(i)前記時間ステップにおける前記実際の報酬、および(ii)前記シーケンス内の前記特定の時間ステップの後のしきい値の時間ステップ数を上回る1つまたは複数の時間ステップにおける価値予測から、前記特定の時間ステップに対する修正された報酬を生成するステップと、
強化学習を通して、前記特定の時間ステップに対する前記修正された報酬を少なくとも使用して、前記ニューラルネットワークシステムをトレーニングするステップと
を含む、方法。
【請求項2】
前記ニューラルネットワークシステムが外部メモリで増強され、
前記エージェントに前記タスクエピソードを前記実行させるステップが、前記シーケンス内の各時間ステップにおいて、
1つまたは複数の読取りヘッドの各々に対して、前記外部メモリからデータを読み取るステップと、
データを前記外部メモリに書き込むステップと
をさらに含み、
各時間ステップにおいて実行されることになる前記行動を選択するステップが、(i)先行する時間ステップにおいて前記外部メモリから読み取られたデータ、または(ii)前記時間ステップにおいて前記外部メモリから読み取られたデータを少なくとも使用して、前記行動を選択するステップを含み、
各時間ステップにおいて前記価値予測を生成するステップが、(i)先行する時間ステップにおいて前記外部メモリから読み取られたデータ、または(ii)前記時間ステップにおいて前記外部メモリから読み取られたデータを少なくとも使用して、前記価値予測を生成するステップを含む、請求項1に記載の方法。
【請求項3】
1つまたは複数の特定の時間ステップの各々に対する修正された報酬を生成するステップが、
前記1つまたは複数の読取りヘッドの各々に対して、
データが前記時間ステップにおいて前記読取りヘッドに対して前記外部メモリから読み取られた強度に基づいて、時間ステップの前記シーケンス内の1つまたは複数の時間ステップをスプライス時間ステップとして識別するステップと、
各スプライス時間ステップに対して、
前記シーケンス内の前記スプライス時間ステップの前の前記しきい値の時間ステップ数を上回る1つまたは複数の特定の時間ステップを識別するステップと、
前記スプライス時間ステップにおいて前記外部メモリから読み取られた前記データを使用して生成された価値予測から各識別された時間ステップに対する前記報酬に対する修正を生成するステップと、
対応する時間ステップに対する前記実際の報酬に前記修正を適用するステップと
を含む、請求項2に記載の方法。
【請求項4】
前記外部メモリからデータを前記読み取るステップが、
各読取りヘッドに対して、前記外部メモリが前記時間ステップにおいてどの程度強く読み取られるかを定義する読取り強度パラメータを生成するステップ
を含み、
データが前記時間ステップにおいて前記読取りヘッドに対して前記外部メモリから読み取られた強度に基づいて、時間ステップの前記シーケンス内の1つまたは複数の時間ステップをスプライス時間ステップとして前記識別するステップが、
前記読取りヘッドに対する前記読取り強度パラメータがしきい値を超える1つまたは複数の時間ステップをスプライス時間ステップとして識別するステップ
を含む、請求項3に記載の方法。
【請求項5】
前記読取り強度パラメータがしきい値を超える1つまたは複数の時間ステップをスプライス時間ステップとして前記識別するステップが、
前記読取りヘッドに対する前記読取り強度パラメータが前記しきい値を超える連続時間ステップの窓を識別するステップと、
前記読取りヘッドに対する前記読取り強度パラメータが最高である前記窓内の前記時間ステップをスプライス時間ステップとして識別するステップと
を含む、請求項4に記載の方法。
【請求項6】
前記読取り強度パラメータがしきい値を超える1つまたは複数の時間ステップをスプライス時間ステップとして前記識別するステップが、
時間ステップの前記窓を識別するのに先立って、(i)前記時間ステップに対する時間指数と、(ii)前記時間ステップにおいて前記読取りヘッドに対して前記外部メモリから読み取るとき、任意の時間ステップの最大重みを有する前記時間ステップに対する時間指数との間の差異が一定値に満たない時間ステップに対して、前記読取りヘッドに対する前記読取り強度パラメータをゼロに設定するステップ
を含む、請求項5に記載の方法。
【請求項7】
前記シーケンス内の前記スプライス時間ステップの前の前記しきい値の時間ステップ数を上回る1つまたは複数の特定の時間ステップを識別するステップが、
半減期値を決定するステップと、
前記シーケンス内の前記スプライス時間ステップの前の前記半減期値を上回る各時間ステップを特定の時間ステップとして識別するステップと
を含む、請求項3から6のいずれか一項に記載の方法。
【請求項8】
各読取りヘッドに対して、かつ各時間ステップに対して、前記外部メモリから前記読み取るステップが、
各先行する時間ステップにおいて前記外部メモリに書き込まれた前記データにそれぞれの重みを割り当てるステップと、
前記それぞれの重みに従って、各先行する時間ステップにおいて前記外部メモリに書き込まれた前記データを結合させる読取りベクトルを生成するステップと
を含む、請求項3から7のいずれか一項に記載の方法。
【請求項9】
前記スプライス時間ステップにおいて前記外部メモリから読み取られた前記データを使用して生成された価値予測から各識別された時間ステップに対する前記報酬に対する修正を前記生成するステップが、
(i)将来の値割引係数、(ii)前記スプライス時間ステップにおいて前記外部メモリから読み取る間に前記識別された時間ステップに割り当てられた重み、および(iii)前記スプライス時間ステップにおいて前記外部メモリから読み取られた前記データを使用して生成された前記価値予測から前記識別された時間ステップに対する前記修正を生成するステップ
を含む、請求項8に記載の方法。
【請求項10】
強化学習を通して、前記特定の時間ステップに対する前記修正された報酬を少なくとも使用して、前記ニューラルネットワークシステムを前記トレーニングするステップが、ポリシー勾配損失を含む損失関数を最小化するように前記ニューラルネットワークシステムをトレーニングするステップを含む、請求項1から9のいずれか一項に記載の方法。
【請求項11】
前記損失関数が再構築損失を含む、請求項10に記載の方法。
【請求項12】
前記損失関数が、読取り強度がしきい値を超えるときはいつでも、正規化コストを課す読取り再構築損失を含む、請求項1から11のいずれか一項に記載の方法。
【請求項13】
命令を記憶した1つまたは複数のコンピュータ可読記憶媒体であって、前記命令が、1つまたは複数のコンピュータによって実行されると、前記1つまたは複数のコンピュータに、請求項1から12のいずれか一項に記載の方法のそれぞれの動作を実行させる、1つまたは複数のコンピュータ可読記憶媒体。
【請求項14】
1つまたは複数のコンピュータと、命令を記憶した1つまたは複数の記憶デバイスとを備えるシステムであって、前記命令が、前記1つまたは複数のコンピュータによって実行されると、前記1つまたは複数のコンピュータに、請求項1から12のいずれか一項に記載の方法のそれぞれの動作を実行させる、システム。
【発明の詳細な説明】
【技術分野】
【0001】
本明細書は、強化学習に関する。
【背景技術】
【0002】
強化学習システムでは、エージェントは、環境の現在の状態を特徴付ける観測の受信に応答して、強化学習システムによって選択された行動を実行することによって環境と対話する。
【0003】
いくつかの強化学習システムは、ニューラルネットワークの出力に従って所与の観測の受信に応答してエージェントによって実行されることになる行動を選択する。
【0004】
ニューラルネットワークは、受信された入力に対する出力を予測するために非線形ユニットの1つまたは複数の層を使用する機械学習モデルである。いくつかのニューラルネットワークは、出力層に加えて1つまたは複数の隠れ層を含むディープニューラルネットワークである。各隠れ層の出力は、ネットワーク内の次の層、すなわち、次の隠れ層または出力層に対する入力として使用される。ネットワークの各層は、パラメータのそれぞれのセットの現在の値に従って、受信された入力から出力を生成する。
【先行技術文献】
【非特許文献】
【0005】
【非特許文献1】Abdolmaleki,A.,et al,Maximum a Posteriori Policy Optimisation,available at arxiv.org/abs/1806.06920
【非特許文献2】Espeholt,L.,et al,Impala:Scalable distributed deep-rl with importance weighted actor-learner architectures. arXiv preprint arXiv:1802.01561,2018年
【非特許文献3】Wayne、G., et al, Unsupervised predictive memory in a goal-directed agent.arXiv preprint arXiv:1803.10760(2018)
【非特許文献4】Graves、A., et al.、Hybrid computing using a neural network with dynamic external memory. Nature 538,471(2016)
【発明の概要】
【課題を解決するための手段】
【0006】
本明細書は、概して、環境と対話しているエージェントを制御するようにニューラルネットワークシステムをトレーニングする強化学習システムについて説明する。
【0007】
したがって、一態様では、指定されたタスクを実行するために環境と対話しているエージェントを制御するために使用されるニューラルネットワークシステムをトレーニングする方法は、エージェントにエージェントが指定されたタスクの実行を試みるタスクエピソードを実行させるステップを含む。タスクエピソード中の時間ステップのシーケンスの各々において、この方法は、環境の現在の状態を特徴付ける観測を取得するステップと、ニューラルネットワークシステムを使用して、観測に応答してエージェントによって実行されることになる行動を観測から選択するステップと、ニューラルネットワークシステムを使用して、指定されたタスクを成功裏に実行するために、現在の状態にある環境の価値を表す価値予測を生成するステップと、エージェントに選択された行動を実行させるステップと、応答して、エージェントが選択された行動を実行する結果として環境内での進展を特徴付ける実際の報酬を受信するステップとを含む。シーケンス内の1つまたは複数の特定の時間ステップの各々に対して、この方法は、(i)その時間ステップにおける実際の報酬、および(ii)シーケンス内の特定の時間ステップの後のしきい値の時間ステップ数を上回る1つまたは複数の時間ステップにおける価値予測から、特定の時間ステップに対する修正された報酬を生成するステップをさらに含み得る。この方法は、強化学習を通して、特定の時間ステップに対する修正された報酬を少なくとも使用して、ニューラルネットワークシステムをトレーニングするステップをさらに含み得る。
【0008】
この方法の実装形態は、長期信用割当ての問題に対処し、それを行うことにより、たとえば、過去の事象に基づいて、特定の時点において何の行動を実行すべきかを決定して、計算的に対処され得る意思決定の問題範囲をかなり広げることができる。修正された報酬は、将来の報酬に対する過去の事象の貢献に基づいて、過去の事象の重要性が再評価されることを可能にする。しきい値の時間ステップ数は、タスクに関連しない報酬がその時間ステップと後の価値予測との間で受信されるようなものであってよく、たとえば、それら両者の間に「ディストラクタ(distractor)タスク」が存在し得る、かつ/またはしきい値の時間ステップ数は、(時間ステップ単位で)報酬半減期よりも大きくてよく、すなわち、(時間ステップの後の)将来の報酬が係数γだけ割り引かれる場合、しきい値の時間ステップ数は、1/(1-γ)であり得る。したがって、概して、この方法の実装形態は、特定の時間ステップ以降、長い期間が経過した後でのみ受信された報酬を考慮に入れることができる。
【0009】
この方法は、任意の強化学習技法に適用され得る。概して、強化学習技法は、経時的にエージェントが指定されたタスクを実行することを学習するように、受信された報酬に基づいて、たとえば、勾配降下技法を使用して、エージェントを制御するために使用されるニューラルネットワークシステムのパラメータを適応する技法であり得る。勾配降下技法は、受信された報酬に依存する損失関数の勾配の逆伝搬を必要とし得る。この方法の実装形態は、強化学習技術が理解する、その他の場合ではその通常の方法で動作し得る報酬を修正し得る。したがって、この方法は、特定の強化学習技術またはニューラルネットワークシステムアーキテクチャとともに使用することに限定されない。しかしながら、いくつかの実装形態では、ニューラルネットワークシステムは、ポリシー勾配損失関数(policy gradient loss function)の勾配の逆伝搬によって、指定されたタスクを実行することを学習するように構成される。
【0010】
修正された報酬を生成する1つの方法は、関連する情報、たとえば、知覚情報および事象情報を外部メモリ内に記憶することを必要とする。この情報は、次いで、どの過去の事象が将来の報酬に貢献するかを評価するために識別されアクセスされ得る。どの過去の事象が将来の報酬に貢献するかを知ることは、将来の報酬に関連する価値予測から過去の事象に対する修正された報酬を生成することを円滑にする。
【0011】
したがって、いくつかの実装形態では、ニューラルネットワークシステムは、外部メモリ、および外部メモリからデータを読み取るための1つまたは複数の読取りヘッドで増強される。各時間ステップにおいて、データは、1つまたは複数の読取りヘッドの各々によって外部メモリから読み取られ、その時間ステップに対する(圧縮された)状態表現を決定するために使用され得、その状態表現は、次いで、外部メモリに書き込まれる。状態表現は、したがって、外部メモリから読み取られたデータと同じ次元を有し得る。メモリは、時間によって索引付けされてよく、たとえば、メモリは、各時間スタップに対してスロットを有し得る。状態表現は、前の行動および報酬の表現を含み得る環境の観測の表現を含んでよく、再帰型ニューラルネットワークシステムでは、状態表現は、前の時間ステップにおけるシステムの隠れ状態を含んでよく、状態表現は、前の時間ステップにおいてメモリから読み取られたデータの表現を含んでもよい。
【0012】
ニューラルネットワークシステムは、時間ステップにおける価値関数の予測に関連するデータをメモリから取り出すこと学習するように構成され得る。より具体的には、ニューラルネットワークシステムは、実行されることになる行動の選択に関連する過去のメモリを取り出すことを学習し得る。いくつかの実装形態では、データは、学習された読取り鍵と時間ステップによって索引付けされた1つまたは複数のメモリとの間の類似性測度に基づいてメモリから読み取られ得る。読取りヘッドの各々は、時間ステップに対するそれぞれの読取り鍵とメモリの行との間の類似性の類似性測度に基づいて、複数のメモリロケーションにわたってソフト読取りを実行し得る。取り出されたデータは、前に記憶された状態表現の加重結合を含み得る。再帰型ニューラルネットワーク(RNN)システムでは、時間ステップに対する状態表現および(前の時間ステップに対して)取り出されたデータは、前の時間ステップに対するRNNシステムの隠れ状態とともに、再帰型入力として使用され得る。学習は、使用される強化学習技術によって、より具体的には、ポリシー勾配損失など、強化学習損失関数によって駆動され得る。
【0013】
いくつかの実装形態では、この方法は、データが時間ステップにおいて読取りヘッドに対して外部メモリから読み取られた強度、たとえば、データが時間ステップにおいて読取りヘッドに対して外部メモリから読み取られた重みに基づいて、時間ステップのシーケンス内の1つまたは複数の時間ステップをスプライス時間ステップとして識別するステップを含み得る。この強度は、外部メモリが時間ステップにおいてどの程度強く読み取られるかを定義する読取り強度パラメータによって決定され得、たとえば、ニューラルネットワークシステムによって決定または学習され得る。これは、類似性測度に対する追加パラメータであり得る。
【0014】
スプライス時間ステップは、修正された報酬を生成するためにそこから価値予測が取得される(特定の、現在時間ステップの後の)時間ステップを含み得る。したがって、修正された報酬を生成するステップは、スプライス時間ステップの前のしきい値の時間ステップ数を上回る1つまたは複数の特定の時間ステップを識別するステップと、スプライス時間ステップにおいて外部メモリから読み取られたデータを使用して生成された価値予測から各識別された時間ステップに対する報酬に対する修正を生成するステップと、対応する時間ステップに対する実際の報酬に修正を適用するステップとを含み得る。スプライス時間ステップは、読取り強度パラメータがしきい値を超えるステップであってよく、スプライス時間ステップは、読取り強度パラメータのすべてがしきい値を超える時間窓内の最高読取り強度パラメータを有する時間ステップであってよい。
【0015】
いくつかの実装形態では、圧縮された状態表現を決定するステップは、デコーダニューラルネットワークを使用して、前の行動および報酬の表現を随意に含む、環境の観測の表現を再構築するステップと、再構築損失を使用してデコーダを含むニューラルネットワークシステムをトレーニングするステップとを含み得る。
【0016】
本明細書で説明する主題の特定の実施形態は、以下の利点のうちの1つまたは複数を実現するために実装され得る。
【0017】
多くの複雑なタスク、たとえば、ロボットタスクは、いくつかの行動を正確に実行するか、または1つまたは複数の以前の時間ステップにおけるいくつかの情報を観測し、次いで、観測された情報または行動の結果を1つまたは複数のかなり後の時間ステップにおいて使用することを必要とする。行動が成功裏に実行されたか否か、または必要とされる情報が以前の時間ステップにおいて成功裏に観測されたか否かは、かなり後の時間ステップまで明らかではない。したがって、これらのタスクは、エージェントによる行動と指定されたタスクを成功裏に完了するためのこれらの行動の結果との間に長い遅延を伴う。
【0018】
従来の強化学習システムは、エージェントがそのようなタスクを成功裏に実行させるために使用され得るニューラルネットワークまたは他のポリシーを成功裏にトレーニングすることができない。具体的には、トレーニング中、従来のシステムは、比較的短期間にわたって所与の時間ステップにおける行動にのみ「信用」を割り当てることができるが、これは、報酬が、エージェントによって実行される行動の短期間の影響にのみ基づくためである。他方で、説明するシステムは、遠い将来の時間ステップからの価値予測を使用していくつかの時間ステップにおいて報酬を修正することによって、遠い過去からの行動に対して信用を成功裏に割り当てることができる。この手法は、説明するシステムが、既存のシステムが処理しにくいタスクを実行するようにエージェントを成功裏に制御することを可能にする。
【0019】
加えて、説明する手法は、後の時間ステップにおいてすでに生成されていることになる情報のみを使用して報酬を修正するため、この手法は、学習プロセスによって消費される計算リソースを大幅に増加させずに、任意の既存の強化学習技術とともに使用され得る。実際に、説明する手法はシステムが従来のシステムが処理しにくかったタスクに対して効果的なポリシーを学習することを可能にするため、説明する手法は、強化学習システムによって消費される計算リソースの量を低減させることが可能であるが、これは、トレーニングプロセスが異なるか、またはさもなければ、成功裏の制御ポリシー決定を進展させることができないとしても、リソースは無駄にされないためである。
【0020】
本明細書で説明する主題の1つまたは複数の実施形態の詳細は、添付の図面および以下の説明に記載される。この主題の他の特徴、態様、および利点は、説明、図面、および特許請求の範囲から明らかになる。
【図面の簡単な説明】
【0021】
図1】1つの例示的な強化学習システムを示す図である。
図2】システムが、タスクエピソード内の後の時間ステップにおける価値予測を使用して、タスクエピソード内の以前の時間ステップに対する報酬をどのように修正するかの一例を示す図である。
図3】タスクエピソード内の時間ステップにおいて報酬を修正するための1つの例示的なプロセスの流れ図である。
図4】時間ステップにおける行動を選択するためにニューラルネットワークシステムによって実行される処理の一例を示す図である。
図5】読取り強度を使用してタスクエピソード内の時間ステップにおける報酬を修正するための1つの例示的なプロセスの流れ図である。
【発明を実施するための形態】
【0022】
様々な図面における同様の参照番号および名称は、同様の要素を指す。
【0023】
本明細書は、複数の時間ステップの各々において、環境と対話しているエージェントによって実行されることになる行動を選択するために時間ステップにおいて環境の現在の状態を特徴付けるデータ(すなわち、「観測」)を処理することによって、エージェントを制御する強化学習システムについて説明する。
【0024】
各時間ステップにおいて、時間ステップにおける環境の状態は、前の時間ステップにおける環境の状態、および前の時間ステップにおいてエージェントによって実行された行動に依存する。
【0025】
いくつかの実装形態では、環境は実世界環境であり、エージェントは、実世界環境と対話している機械エージェント、たとえば、環境を通してナビゲートしている、ロボット、または自律型または半自律型な陸乗車、航空機、または海上車である。
【0026】
これらの実装形態では、観測は、たとえば、画像、物体位置データ、およびエージェントが環境と対話するにつれて観測をキャプチャするためのセンサーデータ、たとえば、画像センサー、距離センサー、または位置センサーからの、またはアクチュエータからの、センサーデータ、のうちの1つまたは複数を含み得る。
【0027】
たとえば、ロボットの場合、観測は、ロボットの現在の状態を特徴付けるデータ、たとえば、関節位置、関節速度、関節力、トルクまたは加速度、たとえば、重力補償トルクフィードバック、およびロボットが保持する品物の大域的または相対的なポーズのうちの1つまたは複数を含み得る。
【0028】
ロボット、または他の機械エージェントもしくは機械車両の場合、観測は、エージェントの1つまたは複数の部分の位置、線形速度または角速度、力、トルクまたは加速度、および大域的または相対的なポーズのうちの1つまたは複数を同様に含み得る。観測は、一次元、二次元、または三次元で定義されてよく、絶対的かつ/または相対的観測であってよい。
【0029】
観測は、たとえば、モーター電流または温度信号など、感知された電子信号、および/または、たとえば、カメラまたはLIDARセンサーからの画像データまたはビデオデータ、たとえば、エージェントのセンサーからのデータまたは環境内でエージェントとは別に配置されたセンサーからのデータを含んでもよい。
【0030】
これらの実装形態では、行動は、ロボットを制御するための制御入力、たとえば、ロボットの関節に対するトルクもしくはより高いレベルの制御コマンド、または自律型または半自律型の陸乗車、航空機、または海上車、たとえば、制御面または他の制御要素、たとえば、車両のステアリング制御要素に対するトルク、またはより高いレベルの制御コマンドであってよい。
【0031】
言い換えれば、行動は、たとえば、ロボットの1つまたは複数の関節または別の機械エージェントの部分に対する位置、速度、または力/トルク/加速度データを含んでよい。行動データは、追加または代替として、モーター制御データなどの電子制御データ、またはより一般的に、その制御が環境の観測された状態に影響を及ぼす環境内で1つまたは複数の電子デバイスを制御するためのデータを含み得る。たとえば、自律型または半自律型の陸乗車、航空機、または海上車の場合、行動は、ナビゲーションを制御するための行動、たとえば、ステアリング、および移動、たとえば、車両のブレーキおよび/または加速を含み得る。
【0032】
電子エージェントの場合、観測は、電流、電圧、電力、温度、および機器の電子および/または機械類の機能を表す他のセンサーおよび/または電子信号など、工場またはサービス施設の1つまたは複数のセンサー監視部分からのデータを含み得る。たとえば、実世界環境は、製造工場またはサービス施設であってよく、観測は、工場または施設の運転、たとえば、電力消費など、リソース使用に関係してよく、エージェントは、たとえば、リソース使用を低減するために、工場/施設内の行動または動作を制御し得る。いくつかの他の実装形態では、実世界環境は再生エネルギー工場であってよく、観測は、たとえば、現在または将来の計画電力生成を最大化するための工場の運転に関係してよく、エージェントは、これを達成するために工場内の行動または運転を制御し得る。
【0033】
いくつかの他の適用例では、エージェントは、たとえば、データセンター内で、配電/配水システム内で、または製造工場またはサービス施設内で、機器類を含む実世界環境における行動を制御し得る。観測は、その場合、工場または施設の運転に関係し得る。たとえば、観測は、機器による電力使用または水使用の観測、もしくは発電制御または配電制御の観測、またはリソースの使用または廃棄物生産の観測を含み得る。行動は、工場/施設の機器類に対して運転条件を制御するかまたは課す行動、および/または、たとえば、工場/施設の構成要素を調整するかまたはオン/オフにするために、工場/施設の運転における設定に変化をもたらす行動を含み得る。
【0034】
別の例として、環境は、各状態がタンパク質鎖のまたは1つまたは複数の中間体または化学前駆体のそれぞれの状態であり、エージェントがタンパク質鎖をどのように折り畳むかまたは化学物質をどのように合成するかを決定するためのコンピュータシステムであるように、化学物質合成環境またはタンパク質折り畳み環境であってよい。この例では、行動は、タンパク質鎖を折り畳むための考えられる折り畳み行動、または化学前駆体/中間体をアセンブルするための行動であり、達成されることになる結果は、たとえば、タンパク質が安定しているように、かつその結果が特定の生物学的機能を達成するように、タンパク質を折り畳むこと、またはその化学物質に対して有効な合成経路を提供することを含み得る。別の例として、エージェントは、タンパク質折り畳み行動、または人間の対話なしに自動的にシステムによって選択される化学合成ステップを実行または制御する機械エージェントであってよい。観測は、タンパク質または化学/中間体/前駆体の状態の直接的または間接的な観測を含んでよく、かつ/またはシミュレーションから導出されてよい。
【0035】
いくつかの実装形態では、環境は、シミュレートされた環境であってよく、エージェントは、シミュレートされた環境と対話している1つまたは複数のコンピュータとして実装されてよい。
【0036】
シミュレートされた環境は、動きシミュレーション環境、たとえば、運転シミュレーションまたは飛行シミュレーションであってよく、エージェントは、動きシミュレーション内をナビゲートする、シミュレートされた車両であってよい。これらの実装形態では、行動は、シミュレートされたユーザまたはシミュレートされた車両を制御するための制御入力であってよい。
【0037】
いくつかの実装形態では、シミュレートされた環境は、特定の実世界環境のシミュレーションであってよい。たとえば、システムは、制御ニューラルネットワークのトレーニングまたは評価中、シミュレートされた環境における行動を選択するために使用されてよく、トレーニングもしくは評価または両方が完了した後、シミュレートされた環境によってシミュレートされた実世界環境において実世界エージェントを制御するために展開されてよい。これは、実世界環境または実世界エージェントに対する不要な摩損および損傷を回避することができ、制御ニューラルネットワークが実世界環境において稀に生じるかまたは再生することが困難な状況に対してトレーニングおよび評価されることを可能にし得る。
【0038】
概して、シミュレートされた環境の場合、観測は、前に説明した観測のうちの1つまたは複数のシミュレートされたバージョンまたは観測のタイプを含んでよく、行動は、前に説明した行動のうちの1つまたは複数のシミュレートされたバージョンまたは行動のタイプを含んでよい。
【0039】
図1は、1つの例示的な強化学習システム100を示す。強化学習システム100は、以下で説明する、システム、構成要素、および技法が実装される1つまたは複数のロケーション内の1つまたは複数のコンピュータ上のコンピュータプログラムとして実装されるシステムの一例である。
【0040】
システム100は、環境104と対話しているエージェント102によって実行されることになる行動106を選択し、次いで、エージェント102に選択された行動106を実行させることによって、エージェント102を制御する。
【0041】
エージェント102による選択された行動106の実行は、概して、環境104を新しい状態に遷移させる。環境104においてエージェント102に繰り返し行動させることによって、システム100は、指定されたタスクを完了するようにエージェント102を制御し得る。
【0042】
システム100は、制御ニューラルネットワークシステム110、トレーニングエンジン150、および制御ニューラルネットワークシステム110のモデルパラメータ118のセットを記憶した1つまたは複数のメモリを含む。
【0043】
複数の時間ステップの各々において、制御ニューラルネットワークシステム110は、行動選択出力122を生成するためのモデルパラメータ118に従って、環境104の現在の状態を特徴付ける現在の観測120を含む入力を処理するように構成される。
【0044】
システム100は、エージェントを制御するために、すなわち、行動選択ポリシーに従って現在の時間ステップにおいてエージェントによって実行されることになる行動106を選択し、次いで、たとえば、制御信号をエージェントに直接的に送信することによって、または行動106を識別するデータをエージェント用の制御システムに送信することによって、エージェントに行動106を実行させるために行動選択出力122を使用する。
【0045】
エージェントによって実行されることになる行動106を選択するために行動選択出力122を使用するいくつかの例について次に説明する。
【0046】
一例では、行動選択出力122は、エージェントによって実行されることになる考えられる行動に対する確率分布を定義する。たとえば、行動選択出力は、環境と対話するためにエージェントによって実行され得る考えられる行動のセット内の各行動に対するそれぞれの行動確率を含み得る。別の例では、行動選択出力122は、考えられる行動のセットに対する分布のパラメータを含み得る。システム100は、たとえば、行動に対する確率値に従って、ある行動をサンプリングすることによって、または最高確率値を有する行動を選択することによって、様々な行動選択ポリシーのうちのいずれかを使用して、行動選択出力122に基づいてエージェントによって実行されることになる行動を選択し得る。
【0047】
別の例では、行動選択出力122は、観測に応答してエージェントによって実行されることになる考えられる行動のセットから最適な行動を識別する。たとえば、機械エージェントを制御する場合、行動選択出力は、機械エージェントの1つまたは複数の関節に印加されることになるトルクを識別し得る。システム100は、たとえば、識別された最適な行動を選択することによって、または調査を奨励するために最適な行動に雑音を加えて、雑音追加行動を選択することによって、様々な行動選択ポリシーのうちのいずれかを使用して行動選択出力122に基づいてエージェントによって実行されることになる行動を選択し得る。
【0048】
別の例では、行動選択出力122は、エージェントによって実行され得る考えられる行動のセット内の各行動に対するそれぞれのQ値を含み得る。
【0049】
行動に対するQ値は、エージェントが、現在の観測120に応じて行動を実行し、その後、制御ニューラルネットワークパラメータの現在の値に従ってエージェント102によって実行される将来の行動を選択することから生じることになる「リターン」の推定である。
【0050】
リターンは、エージェントが受信する「報酬」124の累積測度、たとえば、報酬の時間割引額、を指す。
【0051】
エージェントは、各時間ステップにおいてそれぞれの報酬124を受信することができ、報酬124は、スカラー数値によって指定され、たとえば、指定されたタスクの完了に向けたエージェントの進展を特徴付ける。
【0052】
この例では、システム100は、たとえば、最高Q値を有する行動を選択することによって、またはQ値を確率にマッピングし、それらの確率に従って行動をサンプリングすることによって、様々な行動選択ポリシーのうちのいずれかを使用して行動選択出力122に基づいてエージェントによって実行されることになる行動を選択し得る。いくつかの事例では、システム100は、調査ポリシーに従ってエージェントによって実行されることになる行動を選択し得る。たとえば、調査ポリシーは、システム100が、確率1-εを有する行動選択出力122に従ってエージェントによって実行されることになる行動を選択し、確率εを有する行動をランダムに選択する、εグリーディー調査ポリシーであってよい。この例では、εは、0と1の間のスカラー値である。
【0053】
上記のうちのいずれかに加えて、ニューラルネットワークシステム110は、指定されたタスクを成功裏に実行するために現在の状態である環境の値を表す価値予測126をやはり生成する。言い換えれば、価値予測126は、観測によって特徴付けられる現在の状態にある環境から生じる、指定されたタスクに対するリターンの推定、たとえば、タスクエピソードの残りに対して、またはエージェントが制御ニューラルネットワークシステム110の出力を使用して制御されている場合、将来の時間ステップの何らかの固定数に対して、現在の状態から開始して受信されることになる報酬124の時間割引額の推定である。将来の報酬は、リターンを計算するとき、固定された時間割引係数γによって割り引かれるため、総和は、時間割引と呼ばれる。
【0054】
いくつかの事例では、制御ニューラルネットワークシステム110は、価値予測126を直接的に生成する、すなわち、時間割引された将来のリターンの予測である値を直接的に生成する。他の事例では、制御ニューラルネットワークシステム110は、すなわち、ニューラルネットワークシステム110によって出力される他の数量に基づいて、価値予測126を間接的に生成する。たとえば、ニューラルネットワークシステム110がQ値を生成するとき、価値予測126は、行動のセット内の行動のうちのいずれかに対する最高Q値出力であり得る。
【0055】
価値予測126および行動選択出力122を生成する一環として、制御ニューラルネットワークシステム110は、データを外部メモリから読み取り、データを外部メモリに書き込む。
【0056】
言い換えれば、ニューラルネットワークシステム110は、外部メモリで増強され、各時間ステップにおいて、ニューラルネットワークシステムは、1つまたは複数の読取りヘッドの各々に対して外部メモリからデータを読み取り、外部メモリにデータを書き込む。
【0057】
概して、ニューラルネットワークシステム110は、(i)先行する時間ステップにおいて外部メモリから読み取られたデータ、または(ii)時間ステップにおいて外部メモリから読み取られたデータを少なくとも使用して、各時間ステップにおいて実行されることになる行動を選択し、(i)先行する時間ステップにおいて外部メモリから読み取られたデータ、または(ii)時間ステップにおいて外部メモリから読み取られたデータを少なくとも使用して、価値予測を生成する。
【0058】
外部メモリを使用する制御ニューラルネットワークシステム110に対して多くの考えられるアーキテクチャが存在するが、メモリから読み取り、メモリに書き込むニューラルネットワークシステム110のアーキテクチャの一例は、図4を参照しながら以下で説明される。
【0059】
トレーニングエンジン150は、エージェントの環境との対話に基づいて、制御ニューラルネットワークシステム110のモデルパラメータ118を繰り返し更新することによって、制御ニューラルネットワークシステム110をトレーニングするように構成される。
【0060】
トレーニング中、システム100は、制御ニューラルネットワークシステム110によって制御される間に、エージェントにタスクのエピソードの実行を繰り返させる。タスクのエピソードは、その間にエージェントが指定されたタスクの実行を試みる時間ステップのシーケンスである。たとえば、タスクエピソードは、所定数の時間ステップの間、またはタスクが成功裏に完了したことを示す報酬が受信されるまで、継続し得る。タスクエピソード中の各時間ステップにおいて、システムは、環境の現在の状態を特徴付ける観測120を取得し、観測に応答して、ニューラルネットワークシステム110を使用して、エージェントによって実行されることになる行動を観測120から選択する。システム100はまた、ニューラルネットワークシステム110を使用して、指定されたタスクを成功裏に実行するために現在の状態にある環境の値を表す価値予測126を生成する。システム100は、次いで、エージェントに選択された行動106を実行させ、応答して、エージェントが選択された行動106を実行する結果として、環境におけるタスクの完了に向けた進展を特徴付ける実際の報酬124を受信する。
【0061】
具体的には、トレーニングエンジン150は、強化学習を通じて制御ニューラルネットワークシステム110をトレーニングする。
【0062】
より具体的には、従来のトレーニングエンジン150は、観測120、およびエージェントがトレーニング中に環境と対話する結果として生成される報酬124を使用して、制御ニューラルネットワークシステム110をトレーニングすることになる。
【0063】
説明するシステムは、他方で、修正された報酬172を生成するために、タスクエピソード内の時間ステップのいくつかに対して報酬124を修正する報酬修正エンジン170を含む。
【0064】
トレーニングエンジン150は、その場合、報酬124に基づいて、または、修正された報酬172が生成された時間ステップに対して、修正された報酬172に基づいて、強化学習を通して制御ニューラルネットワークシステム110をトレーニングする。
【0065】
より具体的には、タスクエピソード内のいくつかの特定の時間ステップに対して、報酬修正エンジン170は、エピソード内のかなり後の時間ステップに対して、すなわち、エピソード内の特定の時間ステップよりも後のしきい値の時間ステップ数を上回る時間ステップに対して、生成される価値予測126を使用して、報酬124を修正する。すなわち、システムは、以前の時間ステップに対する報酬124を「ブートストラップ」して、報酬124の代わりにトレーニング中に使用されることになる修正された報酬を生成するために、後の時間ステップからの価値予測126を使用する。このようにして報酬を修正することは、本明細書で、「時間的価値移送」と呼ばれることになる。
【0066】
報酬の修正は、図2図3、および図5を参照しながら以下でより詳細に説明される。
【0067】
このようにして報酬を修正することは、トレーニングエンジン150が、タスクエピソード内で長いタイムスケールにわたってより効果的に信用を割り当てるように、すなわち、エピソード内の以前の行動をより正確に活用するように、制御ニューラルネットワークシステム100をトレーニングすることを可能にし、これは、結果として、エピソード内でさらに後にタスクを完了する際にかなりの進展をもたらし得る。
【0068】
概して、トレーニングエンジン150は、任意の適切な強化学習技術、たとえば、ポリシー勾配ベース技法を使用して、エージェントによって受信されるリターン(すなわち、報酬または修正された報酬の累積測度)を増大させるように制御ニューラルネットワークシステム110をトレーニングし得る。
【0069】
制御ニューラルネットワークシステム110をトレーニングするためにトレーニングエンジン150によって使用され得る技法の一例は、arxiv.org/abs/1806.06920において入手可能な(available at)、Abdolmaleki,A.ら、Maximum a Posteriori Policy Optimisationに記載されている、最大事後ポリシー最適化(MPO:Maximum a Posteriori Policy Optimisation)技法である。
【0070】
制御ニューラルネットワークシステム110をトレーニングするためにトレーニングエンジン150によって使用され得る技法の別の例は、Espeholt、L.ら、Impala:Scalable distributed deep-rl with importance weighted actor-learner architectures.arXiv preprint arXiv:1802.01561、2018年に記載されている、IMPALA V-trace技法である。
【0071】
いくつかの事例では、システム100は、複数のエージェントが同じ環境の異なるレプリカと対話するトレーニング中に分散型フレームワークを使用する。
【0072】
図2は、システムが、タスクエピソード内の後の時間ステップにおける価値予測を使用して、タスクエピソード内の以前の時間ステップに対する報酬をどのように修正するかの一例を示す。具体的には、図2は、システムが、タスクエピソード内の時間ステップ204に対する価値予測を使用して、タスクエピソード内の時間ステップ202において報酬をどのように修正するかを示す。図2におけるシンボルの定義は、図4を参照しながら後で与えられる。
【0073】
図2から分かるように、タスクエピソードは、3つの時間期間を含む。すなわち、何の報酬も受信されない初期時間ステップ、初期時間ステップにおいて何の行動が行われるかに依存しない、何らかの小さな報酬(「ディストラクタ報酬」)が受信され得る中間時間ステップ、および実際に、初期時間ステップにおいて何の行動が行われるかに依存する末梢(distal)報酬が受信され得る後の時間ステップである。すなわち、報酬は「末梢」であるが、これは、報酬の受信が初期時間ステップから長い時間量だけ離れていても、報酬が受信されるかまたはどの程度の報酬が受信されるかが、それらの初期時間ステップにおいて何が起こったかに依然として依存するためである。これらの時間ステップにおける報酬は、時間ステップにおいて生成される情報のみに、すなわち、時間ステップにおいて受信される実際の報酬、およびいくつかの事例では、次の時間ステップにおける価値予測、のみに対して決定されるため、これは、多くの従来の強化学習アルゴリズムが明らかにするには困難な状況であり得る。具体的には、いくつかの強化学習技術は、最初に次の時間ステップにおける価値予測から導出された値を実際の報酬に追加し、次いで、強化学習に対するこのブートストラップされた報酬を使用することによって、「標準ブートストラッピング」を使用して、所与の時間ステップにおける実際の報酬をブートストラップするが、この標準ブートストラッピングは、図2に示した末梢報酬を明らかにするには不十分である。
【0074】
具体的には、(図2において時間ステップ「t1」と示す)時間ステップ202において、標準ブートストラッピングは、時間ステップ202において実際の報酬
【0075】
【数1】
【0076】
に、次の時間ステップからの価値予測
【0077】
【数2】
【0078】
と割引係数γの積である修正子を加えて、ブートストラップされたリターン
【0079】
【数3】
【0080】
を生成することになる。
【0081】
本明細書で説明する時間的価値移送(TVT:temporal value transport)は、他方で、一定の基準が満たされると、かなり後の時間ステップ204からの価値予測
【0082】
【数4】
【0083】
とブートストラップされたリターン
【0084】
【数5】
【0085】
を生成するときの重みαの積に基づく修正子をやはり加えることになる。外部メモリから読み取る間に生成される読取り重み(read weight)にやはり依存するこの修正子の代替公式は、図5を参照しながら以下でより詳細に説明される。これは、また実際の報酬
【0086】
【数6】
【0087】
から修正された報酬
【0088】
【数7】
【0089】
を生成するために時間ステップ204からの価値予測
【0090】
【数8】
【0091】
を使用し、次いで、たとえば、図2に示すような標準ブートストラッピングと組み合わせて、強化学習を通してニューラルネットワークシステムをトレーニングするための修正された報酬を使用するか、または任意の他の強化学習技術を使用するものと理解することができる。
【0092】
修正された報酬をこのようにして生成することは、システムが、時間ステップ202において受信されたような観測に応答して、どの行動が実行に最適であるかを学習するとき、かなり後の時間ステップ204において末梢報酬を生じさせた、時間ステップ202において実行された行動を識別することを可能にする。
【0093】
図3は、タスクエピソード内の時間ステップに対する報酬を修正するための1つの例示的なプロセス300の流れ図である。便宜上、プロセス300は、1つまたは複数のロケーションに配置された1つまたは複数のコンピュータのシステムによって実行されるとして説明される。たとえば、適切にプログラムされた強化学習システム、たとえば、図1の強化学習システム100がプロセス300を実行し得る。
【0094】
システムは、エージェントにエージェントが指定されたタスクの実行を試みるタスクエピソードを実行させる(ステップ302)。たとえば、システムは、たとえば、タスクが成功裏に実行されたことを示す報酬が受信されるまで、しきい値の時間ステップ数において行動が実行されるまで、またはいくつかの他の終了基準が満たされるまで、エージェントに時間ステップのシーケンスの各時間ステップにおいて行動を実行させることができる。
【0095】
システムは、タスクエピソード中に1つまたは複数の特定の時間ステップ、すなわち、タスクエピソードに対する時間ステップのシーケンス内の1つまたは複数の特定の時間ステップ、の各々に対して修正された報酬を生成する(ステップ304)。
【0096】
概して、システムは、システムが時間ステップにおいて外部メモリからデータをどのように読み取るかに基づいて、タスクエピソード内の後の1つまたは複数のスプライス時間ステップを最初に識別する。システムは、次いで、各スプライス時間ステップに対して、エピソード内のスプライス時間ステップよりも以前のしきい値を上回る1つまたは複数の以前の時間ステップを識別し、そのスプライス時間からの、またはそのスプライス時間ステップの直後の時間ステップからの、価値予測を使用して、識別された以前の時間ステップに対して実際の報酬を修正する。
【0097】
どの特定の時間ステップに対して報酬を修正すべきか、および報酬を修正する際にどの後の時間ステップを使用すべきかを決定するための技法のより詳細な例は、図5を参照しながら以下でより詳細に説明される。
【0098】
システムは、少なくとも修正された報酬に対して強化学習を通してニューラルネットワークシステムをトレーニングする(ステップ306)。すなわち、システムは、任意の適切な強化学習技術を使用してニューラルネットワークシステムをトレーニングするとき、実際の報酬の代わりに修正された報酬を使用し得る。システムが報酬を修正しない時間ステップの間、システムは、強化学習技術を実行するとき実際の報酬を使用する。上記で説明したように、いくつかの強化学習技術に対して、システムは、修正された報酬(または、報酬が修正されなかった時間ステップに対する実際の報酬)に標準報酬ブートストラッピングを適用する。
【0099】
図4は、所与の時間ステップtにおいてニューラルネットワークシステムによって実行され得るプロセスの一例を示す。
【0100】
図4は、タスクエピソード中の異なる時間ステップにおいてメモリから読み取り、メモリに書き込む特定の例を示すが、説明する技法の原理は、いずれのニューラルネットワークシステムにも適用可能である。より具体的には、図4は、ニューラルネットワークシステムの1つの構成について説明するが、本明細書で説明する時間的価値移送技法は、エージェントを制御するときに外部メモリから読み取り、外部メモリに書き込むシステムを含めて、ニューラルネットワークシステムのいずれの構成にも適用され得る。
【0101】
図4の例では、画像フレームItまたは時間ステップに対する他のセンサーデータ、前の報酬rt-1、および前の行動at-1が、ここで、時間ステップtにおける観測otを構成する。これらの入力は、エンコーダニューラルネットワークによって処理され、再帰型ニューラルネットワーク(RNN)の出力と結合されることになる埋込みベクトルetにマージされる。たとえば、It、rt-1およびat-1は、3つのベクトルを生成するために別個に動作させられてよく、システムは、3つのベクトルを連結させて、埋込みベクトルetを生成することができる。システムは、畳み込みニューラルネットワーク、たとえば、畳み込みニューラルネットワークの常住ブロックを備えた畳み込みニューラルネットワーク、を使用して画像フレームItを処理して特徴マップを生成し、次いで、特徴マップをベクトルに平坦化する(flatten)ことができる。システムは、次いで、平坦化された特徴マップを1つまたは複数の線形層を通して処理して、画像フレームItに対する最終ベクトルを生成し得る。前の報酬および前の行動に対して、システムは、最終ベクトルとして、各々のワンホット符号化表現(one-hot encoded representation)を生成し得るか、またはワンホット符号化表現を埋込み空間内にマッピングして、最終ベクトルを生成し得る。
【0102】
RNNは、再帰型、たとえば、LSTM、「コントローラ」ネットワークh、および次元NxWのメモリ行列Mを含む。前の時間ステップt-1からのこのRNNおよびメモリシステムの出力は、前の時間ステップおよび1つまたは複数のメモリ読取りベクトル、すなわち、1つまたは複数の読取りヘッドの各々に対するそれぞれのベクトルからのコントローラ出力ht-1である。言い換えれば、このRNNおよびメモリシステムの出力は、メモリ読取りベクトルと呼ばれる、メモリから読み取られた長さWのk個(正の整数、たとえば、3)のベクトル
【0103】
【数9】
【0104】
を含む。ともに、これらの出力は、フィードフォワードネットワークによって埋込みベクトルと結合されて、「状態表現」zt=f(et、ht-1、mt-1)になる。状態表現ztは、メモリ読取りベクトルと同じ次元Wを有し、次の時間ステップにおいてメモリ内に挿入されて第tの行になる:Mt[t,・]←zt
【0105】
時間ステップtにおいて、RNNは、メモリおよび計算から1つの読取りサイクルを実行する。状態表現ztは、前の時間ステップのメモリ読取りベクトルmt-1とともに、入力としてRNNに提供され、次のRNN出力htを生み出す。次いで、現在の時間ステップのメモリ読取りベクトルを生み出すための読取りメモリが生じる:次元Wのk個の読取り鍵
【0106】
【数10】
【0107】
が、htの関数として生み出され、各鍵は、類似性測度
【0108】
【数11】
【0109】
たとえば、コサイン類似性、を使用して、すべての行nに対して整合される。これらの類似性は、htの関数としてやはり計算される、正の読取り強度パラメータ
【0110】
【数12】
【0111】
によってスケーリングされる。たとえば、スカラー
【0112】
【数13】
【0113】
を作成するために、線形層をhtに適用して、長さWを有するk個の読取り鍵およびSoftPlus関数を通過するk個のスカラーを有する次元kx(W+1)のメモリインターフェースベクトルを構築し得る。スケーリングされた、重み付けされた類似性をソフトマックスに適用して、第iのメモリ読取りベクトル
【0114】
【数14】
【0115】
を構築するために使用される、次元Nを有するアテンション(attentional)読取り重みベクトル
【0116】
【数15】
【0117】
を作成する。
【0118】
状態表現ztは、価値関数
【0119】
【数16】
【0120】
をやはり予測すると同時に、その目的関数が観測の再構築
【0121】
【数17】
【0122】
を生み出すことをデコーダネットワークに要求するデコーダネットワークにも送られる(キャレットは、ネットワークによって生み出される概算数量を示す)。たとえば、
【0123】
【数18】
【0124】
を生成するデコーダニューラルネットワークは、状態表現を画像にマッピングするために転置畳み込みを適用する、畳み込みニューラルネットワークであってよく、
【0125】
【数19】
【0126】
を生成するデコーダは、各々、状態表現をそれぞれスカラー報酬値および行動濃度(cardinality)にマッピングするために1つまたは複数の線形層を適用し得る。
【0127】
このプロセスは、ztが有用な感覚情報を圧縮形式で含むことを確実にする。最終的に、状態表現ztおよびRNN出力htおよびmtは、行動選択出力πを構築するための入力としてポリシーネットワークに提供され、行動は、行動選択出力πからサンプリングされる。
【0128】
したがって、図4に示すように、異なるメモリヘッドは、異なる時間ステップにおいて異なる読取り強度を有するメモリからデータを読み取る。これらの読取り強度は、任意の所与の読取りの大きさを決定するため、より大きな読取り強度は、現在の時間ステップにおける行動を効果的に選択するために、より多くのデータがメモリから、すなわち、以前の時間ステップにおいて生成されたデータから、読み取られることを必要とすることを暗示する。
【0129】
図4を参照しながら説明したようにニューラルネットワークシステムをトレーニングするために、システムは、たとえば、上記で説明したMPOを通して、ポリシー勾配損失と、随意に、観測の再構築をシステムが受信する実際の観測に整合させる再構成損失とを含む損失関数を最小化するように、ニューラルネットワークシステムをトレーニングし得る。たとえば、再構築損失は、行動再構築デコーダに対する多項ソフトマックスクロスエントロピー損失(multinomial softmax cross-entropy loss)、報酬および価値関数デコーダに対する平均平方誤差(たとえば、1の固定変数を有するガウス)損失項、および画像デコーダによって生成される画像の各画素チャネルに対するBernoulliクロスエントロピー損失項を含み得る。
【0130】
これらの事例のうちのいくつかでは、損失関数は、読取り強度パラメータがしきい値を超えるときはいつでも、正規化コストを課す読取り再構築損失をやはり含む。以下の図5の説明から明らかになるように、この損失を含めることは、価値移送機構がトリガされる時間数を低減させる、すなわち、後の時間ステップから価値を移送させた以前の時間ステップの数を低減させることになり、価値移送機構が学習中に無関係にトリガされることを防止し得る。
【0131】
メモリからの読取りの一環として読取り強度を生成するニューラルネットワークシステムに関する例示的なアーキテクチャ、およびそのようなニューラルネットワークシステムをトレーニングするために使用され得る損失関数の例は、その内容全体が参照により本明細書に組み込まれている、Wayne、G.ら、Unsupervised predictive memory in a goal-directed agent.arXiv preprint arXiv:1803.10760(2018)、およびGraves、A.ら、Hybrid computing using a neural network with dynamic external memory. Nature 538,471(2016)に記載されている。
【0132】
図5は、読取り強度を使用してタスクエピソード内の時間スタップに対する報酬を修正するための1つの例示的なプロセス500の流れ図である。便宜上、プロセス500は、1つまたは複数のロケーションに配置された1つまたは複数のコンピュータのシステムによって実行されているとして説明される。たとえば、適切にプログラムされた、強化学習システム、たとえば、図1の強化学習システム100がプロセス500を実行し得る。
【0133】
システムは、1つまたは複数の読取りヘッドの各々に対して、それを用いてデータが時間ステップにおいて読取りヘッドに対して外部メモリから読み取られた強度に基づいて、タスクエピソードに対する時間ステップのシーケンスから1つまたは複数のスプライス時間ステップを識別する(ステップ502)。すなわち、各読取りヘッドに対して、システムは、それを用いてデータが異なるエピソード時間ステップにおいて読取りヘッドに対して外部メモリから読み取られた強度に基づいて、エピソード時間ステップのいくつかのサブセットをスプライス時間ステップとして識別する。
【0134】
具体的には、上記で説明したように、読取りヘッドを使用してデータを読み取るとき、システムは、外部メモリが読取りヘッドに対して、時間ステップにおいてどの程度強く読み取られるかを定義する読取り強度パラメータを生成する。
【0135】
概して、システムは、読取りヘッドに対する読取り強度パラメータがしきい値を超える1つまたは複数の時間ステップを読取りヘッドに対するスプライス時間ステップとして識別し得る。特定の例として、システムは、読取りヘッドに対する読取り強度パラメータがしきい値を超える(1つまたは複数の)連続時間ステップの各窓を識別し、次いで、読取りヘッドに対する読取り強度パラメータが最高である窓内の時間ステップをスプライス時間ステップとして識別し得る。すなわち、この特定の例では、システムは、連続時間ステップの各窓に対して単一のスプライス時間ステップのみを選択する。
【0136】
いくつかの実装形態では、任意の所与の時間ステップに近接し過ぎている時間ステップに値が移送されることを回避するために、時間ステップの窓を識別するのに先立って、システムは、(i)時間ステップに対する時間指数、すなわち、時間ステップに対するtの値と(ii)時間ステップにおいて読取りヘッドに対して外部メモリから読み取るとき、任意の時間ステップの最大重みを有する時間ステップに対する時間指数との間の差異が一定値に満たない時間ステップに対して、読取りヘッドに対する読取り強度パラメータをゼロに設定する。言い換えれば、システムは、システムが現在の時間ステップに近接し過ぎる時間ステップにおいて書き込まれたデータから最も強く読み取る任意の時間ステップを(スプライス時間ステップを決定するために)ゼロに設定する。これは、システムが最近の時間ステップにおいてメモリに書き込まれたデータから最も強く読み取る時間ステップがスプライス時間ステップと見なされることを防止し得る。
【0137】
各読取りヘッドに対して、かつ読取りヘッドに対して識別された各スプライス時間ステップに対して、システムは、シーケンス内のスプライス時間ステップの前のしきい値の時間ステップ数を上回る1つまたは複数の特定の以前の時間ステップを識別する(504)。たとえば、しきい値数は、時間ステップの半減期値であってよく、この半減期値は、一定値であってよく、かつ、たとえば、1/(1-γ)に設定されてよい。すなわち、システムは、各スプライス時間ステップに対して、半減期値を決定し、シーケンス内のスプライス時間ステップの前の半減期値を上回る各時間ステップを特定の時間ステップとして識別し得る。
【0138】
各読取りヘッドに対して、かつ各スプライス時間ステップに対して、システムは、識別された特定の以前の時間ステップに対する実際の報酬に対する修正をスプライス時間ステップにおいて外部メモリから読み取られたデータを使用して生成された価値予測から生成する(ステップ506)。
【0139】
具体的には、上記で説明したように、外部メモリから読み取るとき、各読取りヘッドに対して、かつ各時間ステップに対して、システムは、各先行する時間ステップにおいて外部メモリに書き込まれたデータにそれぞれの重みを割り当て、それぞれの重みに従って、各先行する時間ステップにおいて外部メモリに書き込まれたデータを結合させる読取りベクトルを生成する。しかしながら、所与の時間ステップにおける価値予測は、(所与の時間ステップではなく)先行する時間ステップにおいてメモリから読み取られたデータを使用して生成される。所与の時間ステップにおいて外部メモリから読み取られたデータを使用して生成された価値予測は、その場合、所与の時間ステップの後の時間ステップにおける価値予測になり、すなわち、所与の時間ステップにおける価値予測ではないことになる。
【0140】
しかしながら、システムの他の構成では、システムは、所与の時間ステップにおいて価値予測を計算するときに所与の時間ステップにおいてメモリから読み取られたデータを使用し得る。これらの構成では、所与の時間ステップにおいて外部メモリから読み取られたデータを使用して生成された価値予測は、その場合、所与の時間ステップにおける価値予測になる。
【0141】
システムは、次いで、(i)固定された将来の値割引係数、(ii)読取りヘッドに対してスプライス時間ステップにおいて外部メモリから読み取る間に所与の識別された時間ステップに割り当てられた重み、および(iii)スプライス時間ステップにおいて外部メモリから読み取られたデータを使用して生成された価値予測から、所与の識別された時間ステップに対する修正を生成する。たとえば、この修正は、(i)、(ii)、および(iii)の積であってよい。
【0142】
システムは、識別された特定の以前の時間ステップに対する修正された報酬を生成するために読取りヘッドに対する修正を適用する(508)。所与の以前の時間ステップが(すなわち、単一の読取りヘッドに対する)単一の修正のみによって修正されるとき、システムは、以前の時間ステップにおける実際の報酬に修正を加えることによって修正を適用し得る。所与の以前の時間ステップが(すなわち、複数の異なる読取りヘッドに対する)複数の修正によって修正されるとき、システムは、修正を、独立した、追加変更として、所与の以前の時間ステップにおける実際の報酬に適用し得る。
【0143】
本明細書は、システムおよびコンピュータプログラム構成要素に関して「構成される」という用語を使用する。特定の動作または行動を実行するように構成されることになる1つまたは複数のコンピュータのシステムは、そのシステムが、動作の際、それらの動作または行動をシステムに実行させるソフトウェア、ファームウェア、ハードウェア、またはそれらの組合せをその上にインストールしていることを意味する。特定の動作または行動を実行するように構成されることになる1つまたは複数のコンピュータプログラムは、その1つまたは複数のプログラムが、データ処理装置によって実行されると、それらの動作または行動を装置に実行させる命令を含むことを意味する。
【0144】
本明細書で説明した主題および機能的動作の実施形態は、デジタル電子回路の形で、有形に具現されたコンピュータソフトウェアまたはコンピュータファームウェアの形で、本明細書で開示した構造およびそれらの構造的な均等物を含めて、コンピュータハードウェアの形で、またはそれらの1つまたは複数の組合せの形で、実装され得る。本明細書で説明した主題の実施形態は、1つまたは複数のコンピュータプログラム、すなわち、データ処理装置によって実行するための、またはデータ処理装置の動作を制御するための有形の非一時的記憶媒体上に符号化されたコンピュータプログラム命令の1つまたは複数のモジュールとして実装され得る。コンピュータ記憶媒体は、機械可読記憶デバイス、機械可読記憶基盤、ランダムアクセスメモリデバイスもしくはシリアルアクセスメモリデバイス、またはそれらの1つまたは複数の組合せであってよい。代替または追加として、プログラム命令は、データ処理装置による実行のために好適な受信機装置に送信するための情報を符号化するために生成された、人工的に生成された伝搬信号、たとえば、機械生成された電気信号、光信号、または電磁信号上で符号化され得る。
【0145】
「データ処理装置」という用語は、データ処理ハードウェアを指し、例として、プログラマブルプロセッサ、コンピュータ、または複数のプロセッサもしくはコンピュータを含む、データを処理するためのすべての種類の装置、デバイス、および機械を包含する。装置は、専用論理回路、たとえば、FPGA(フィールドプログラマブルゲートアレイ)またはASIC(特定用途向け集積回路)であってよく、またはそれらをさらに含み得る。装置は、ハードウェアに加えて、コンピュータプログラムに対する実行環境を生み出すコード、たとえば、プロセッサファームウェア、プロトコルスタック、データベース管理システム、オペレーティングシステム、またはそれらの1つまたは複数の組合せを構成するコードを随意に含み得る。
【0146】
プログラム、ソフトウェア、ソフトウェアアプリケーション、アプリ、モジュール、ソフトウェアモジュール、スクリプト、またはコードとも呼ばれることがあるか、またはそれらとして説明されることもあるコンピュータプログラムは、コンパイル型言語もしくはインタープリタ型言語、または宣言型言語もしくは手続き言語を含めて、任意の形態のプログラム言語で書き込まれてよく、コンピュータプログラムは、スタンドアロンプログラムとして、もしくはモジュール、構成要素、サブルート、またはコンピューティング環境で使用するのに適した他のユニットとして、を含めて、任意の形態で展開されてよい。プログラムは、ファイルシステム内のファイルに対応し得るが、そうでなくてもよい。プログラムは、他のプログラムまたはデータ、たとえば、当該プログラム専用の単一のファイル内に、または複数の協調ファイル内に、たとえば、1つまたは複数のモジュール、サブプログラム、またはコードの部分を記憶するファイル内に、マークアップ言語文書の形で記憶された1つまたは複数のスクリプトを保持するファイルの一部分の中に記憶され得る。コンピュータプログラムは、1つのコンピュータ上で、または1つの場所に配置されるか、または複数の場所にわたって分散され、データ通信ネットワークによって相互接続された、複数のコンピュータ上で実行されるように展開され得る。
【0147】
本明細書において、「データベース」という用語は、データの任意の収集物を指すために広く使用され、データは、任意の特定の方法で構築されなくてよく、またはまったく構築されなくてもよく、データは、1つまたは複数のロケーション内の記憶デバイス上に記憶されてよい。したがって、たとえば、索引データベースは、その各々が異なって組織されアクセスされてよい、データの複数の収集物を含んでよい。
【0148】
同様に、本明細書において、「エンジン」という用語は、ソフトウェアベースのシステム、サブシステム、または1つまたは複数の特定の機能を実行するようにプログラムされたプロセスを指すために広く使用される。概して、エンジンは、1つまたは複数のロケーション内で1つまたは複数のコンピュータ上にインストールされた、1つまたは複数のソフトウェアモジュールまたはコンピュータとして実装されることになる。いくつかの事例では、1つまたは複数のコンピュータは、特定のエンジン専用になり、他の事例では、複数のエンジンが同じ1つまたは複数のコンピュータ上にインストールされ実行され得る。
【0149】
本明細書で説明したプロセスおよび論理フローは、入力データに対して動作し、出力を生成することによって機能を実行するために、1つまたは複数のコンピュータプログラムを実行する1つまたは複数のプログラマブルコンピュータによって実行され得る。プロセスおよび論理フローは、専用論理回路、たとえば、FPGAまたはASICによって、または専用論理回路と1つまたは複数のプログラムされたコンピュータの組合せによって実行されてもよい。
【0150】
コンピュータプログラムの実行に適したコンピュータは、汎用マイクロプロセッサもしくは専用マイクロプロセッサまたは両方、あるいは任意の他の種類の中央処理装置に基づき得る。概して、中央処理装置は、読取り専用メモリもしくはランダムアクセスメモリまたは両方から命令およびデータを受信することになる。コンピュータの要素は、命令を実行(performing)または実行(executing)するための中央処理装置、および命令およびデータを記憶するための1つまたは複数のメモリデバイスである。中央処理装置およびメモリは、専用論理回路によって補完され得るか、または専用論理回路内に組み込まれ得る。概して、コンピュータはまた、データを記憶するための1つまたは複数の大容量記憶デバイス、たとえば、磁気ディスク、光磁気ディスク、または光ディスクを含むことになるか、またはそれらからデータを受信し、それらにデータを転送するように動作可能に結合されることになる。しかしながら、コンピュータは、そのようなデバイスを有さなくてもよい。その上、コンピュータは、別のデバイス、たとえば、ほんのいくつかを挙げると、モバイル電話、携帯情報端末(PDA)、モバイルオーディオプレイヤーもしくはモバイルビデオプレイヤー、ゲーム機、全地球測位システム(GPS)受信機、またはポータブル記憶デバイス、たとえば、ユニバーサルシリアルバス(USB)フラッシュドライブの中に埋め込まれてよい。
【0151】
コンピュータプログラム命令およびデータを記憶するのに適したコンピュータ可読媒体は、例として、半導体メモリデバイス、たとえば、EPROMデバイス、EEPROMデバイス、およびフラッシュメモリデバイス;磁気ディスク、たとえば、内部ハードディスクまたはリムーバブルディスク;光磁気ディスク;ならびにCD ROMディスクおよびDVD-ROMディスクを含めて、すべての形態の不揮発性メモリ、媒体、およびメモリデバイスを含む。
【0152】
ユーザとの対話を提供するために、本明細書で説明した主題の実施形態は、情報をユーザに表示するためのディスプレイデバイス、たとえば、CRT(陰極線管)モニタまたはLCD(液晶ディスプレイ)モニタ、ならびにそれによりユーザがコンピュータに入力を提供し得る、キーボードおよびポインティングディバイス、たとえば、マウスまたはトラックボールを有するコンピュータ上で実装され得る。他の種類のデバイスがユーザとの対話を同様に提供するために使用されてよく、たとえば、ユーザに提供されるフィードバックは、任意の形態の感覚フィードバック、たとえば、視覚フィードバック、聴覚フィードバック、または触覚フィードバックであってよく、ユーザからの入力は、音響入力、音声入力、または触覚入力を含めて、任意の形態で受信されてよい。加えて、コンピュータは、たとえば、ユーザのデバイス上のウェブブラウザから受信された要求に応答して、そのウェブブラウザにウェブページを送ることによって、ユーザによって使用されるデバイスに文書を送り、そこから文書を受信することによってユーザと対話し得る。また、コンピュータは、テキストメッセージまたは他の形態のメッセージをパーソナルデバイス、たとえば、メッセージングアプリケーションを実行しているスマートフォンに送り、返して、ユーザから応答メッセージを受信することによって、ユーザと対話し得る。
【0153】
機械学習モデルを実装するためのデータ処理装置は、たとえば、機械学習トレーニングまたは作成の共通の計算集約的な部分、すなわち、推論、作業負荷、を処理するための専用ハードウェア加速装置ユニットも含み得る。
【0154】
機械学習モデルは、機械学習フレームワーク、たとえば、TensorFlowフレームワーク、Microsoft Cognitive Toolkitフレームワーク、Apache Singaフレームワーク、またはApache MXNetフレームワークを使用して、実装され展開され得る。
【0155】
本明細書で説明した主題の実施形態は、バックエンド構成要素、たとえば、データサーバを含むか、もしくはミドルウェア構成要素、たとえば、アプリケーションサーバを含むか、またはフロントエンド構成要素、たとえば、それを通してユーザが本明細書で説明した主題の実装形態と対話し得る、グラフィカルユーザインターフェース、ウェブブラウザ、またはアプリを有するクライアントコンピュータを含むか、あるいは1つまたは複数のそのようなバックエンド構成要素、ミドルウェア構成要素、またはフロントエンド構成要素の任意の組合せを含む、コンピュータシステム内で実装され得る。システムの構成要素は、任意の形態または媒体のデジタルデータ通信、たとえば、通信ネットワークによって相互接続され得る。通信ネットワークの例は、ローカルエリアネットワーク(LAN)および広域ネットワーク(WAN)、たとえば、インターネットを含む。
【0156】
コンピューティングシステムは、クライアントおよびサーバを含み得る。クライアントおよびサーバは、概して、互いから離れており、一般に、通信ネットワークを通して対話する。クライアントおよびサーバの関係は、それぞれのコンピュータ上で実行し、互いに対してクライアント・サーバ関係を有する、コンピュータプログラムにより生じる。いくつかの実施形態では、サーバは、たとえば、クライアントとして行動するデバイスと対話しているユーザにデータを表示し、そこからユーザ入力を受信するために、データ、たとえば、HTMLページをユーザデバイスに送信する。ユーザデバイスにおいて生成されるデータ、たとえば、ユーザ対話の結果は、デバイスからサーバにおいて受信され得る。
【0157】
本明細書は多くの特定の実装詳細を含むが、これらは、任意の発明の範囲に対する、または特許請求され得るものの範囲に対する限定と解釈すべきではなく、むしろ、特定の発明の特定の実施形態に固有であり得る特徴の記述と解釈すべきである。本明細書で別個の実施形態の文脈で説明したいくつかの特徴は、また単一の実施形態において組み合わせて実装されてよい。逆に、単一の実施形態の文脈で説明した様々な特徴は、複数の実施形態で別個にまたは任意の好適な部分組合せで実装されてもよい。その上、特徴はいくつかの組合せで動作するとして上記で説明されることがあり、当初、そういうものとして特許請求されていることすらあるが、特許請求される組合せからの1つまたは複数の特徴は、いくつかの事例では、その組合せから削除されてよく、特許請求される組合せは、部分組合せまたは部分組合せの変形形態を対象とすることがある。
【0158】
同様に、動作は特定の順序で図面に示され、請求項で列挙されているが、これは、所望の結果を達成するために、示された特定の順序でまたは順番に実行されること、またはすべての示された動作が実行されることを必要とすると理解すべきではない。ある特定の状況では、マルチタスキングおよび並列処理が有利であり得る。その上、上記で説明した実施形態における様々なシステムモジュールおよびシステム構成要素の分離は、そのような分離がすべての実施形態で必要とされると理解すべきではなく、説明したプログラム構成要素およびシステムは、概して、単一のソフトウェア製品内で一緒に統合されてよいか、または複数のソフトウェア製品にパッケージングされてよいことを理解されたい。
【0159】
主題の特定の実施形態が説明されてきた。他の実施形態は以下の請求項の範囲内である。たとえば、請求項に列挙する行動は、異なる順序で実行されてよく、所望の結果を依然として達成する。一例として、添付の図面に示したプロセスは、所望の結果を達成するために、必ずしも示した特定の順序、または順番を必要とするとは限らない。いくつかの事例では、マルチタスキングおよび並列処理が有利であり得る。
【符号の説明】
【0160】
100 強化学習システム、システム
102 エージェント
104 環境
106 行動
110 制御ニューラルネットワークシステム
118 モデルパラメータ
120 観測
122 行動選択出力
124 報酬
126 価値予測
150 トレーニングエンジン
170 報酬修正エンジン
172 修正された報酬
202 時間ステップ
204 時間ステップ
300 プロセス
500 プロセス
図1
図2
図3
図4
図5
【国際調査報告】