(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2024-09-26
(54)【発明の名称】エージェントによって実行されることになるアクションを定義するデータ要素のシーケンスの自己回帰生成
(51)【国際特許分類】
G06N 3/092 20230101AFI20240918BHJP
G06N 3/04 20230101ALI20240918BHJP
【FI】
G06N3/092
G06N3/04
【審査請求】有
【予備審査請求】未請求
(21)【出願番号】P 2024512162
(86)(22)【出願日】2022-08-12
(85)【翻訳文提出日】2024-04-04
(86)【国際出願番号】 EP2022072731
(87)【国際公開番号】W WO2023025607
(87)【国際公開日】2023-03-02
(32)【優先日】2021-08-24
(33)【優先権主張国・地域又は機関】US
(32)【優先日】2022-05-12
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
(71)【出願人】
【識別番号】517030789
【氏名又は名称】ディープマインド テクノロジーズ リミテッド
(74)【代理人】
【識別番号】100108453
【氏名又は名称】村山 靖彦
(74)【代理人】
【識別番号】100110364
【氏名又は名称】実広 信哉
(74)【代理人】
【識別番号】100133400
【氏名又は名称】阿部 達彦
(72)【発明者】
【氏名】スコット・エリソン・リード
(72)【発明者】
【氏名】コンラッド・ゾルナ
(72)【発明者】
【氏名】エミリオ・パリソット
(72)【発明者】
【氏名】トム・エレズ
(72)【発明者】
【氏名】アレクサンダー・ノヴィコフ
(72)【発明者】
【氏名】ジャック・ウィリアム・レイ
(72)【発明者】
【氏名】ミーシャ・マン・レイ・デニール
(72)【発明者】
【氏名】ジョアン・フェルディナンド・ゴメス・デ・フレイタス
(72)【発明者】
【氏名】オリオル・ビニャルズ
(72)【発明者】
【氏名】セルヒオ・ゴメス
(72)【発明者】
【氏名】アシュリー・デロリス・エドワーズ
(72)【発明者】
【氏名】ジェイコブ・ブルース
(72)【発明者】
【氏名】ガブリエル・バース-マロン
(57)【要約】
アクション選択ニューラルネットワークを使用して、環境と対話するために、エージェントによって実行されることになるアクションを選択するための、コンピュータ記憶媒体上に符号化されたコンピュータプログラムを含む、方法、システム、および装置。一態様では、方法は、時間ステップのシーケンス中の各時間ステップにおいて、データ要素のシーケンスとしての、現在の時間ステップの時点の、環境内でエージェントによって実行されているタスクの状態の現在の表現を生成するステップと、現在の時間ステップにおいてエージェントによって実行されることになる現在のアクションを表すデータ要素のシーケンスを、自己回帰的に生成するステップと、現在のアクションを表すデータ要素のシーケンスを自己回帰的に生成した後、エージェントに現在の時間ステップにおいて現在のアクションを実行させるステップとを含む。
【特許請求の範囲】
【請求項1】
アクション選択ニューラルネットワークを使用して、環境と対話するために、エージェントによって実行されることになるアクションを選択するための、1つまたは複数のコンピュータによって実行される方法であって、
時間ステップのシーケンス中の各時間ステップにおいて、
データ要素のシーケンスとしての、現在の時間ステップの時点の、前記環境内で前記エージェントによって実行されているタスクの状態の現在の表現を生成するステップと、
前記現在の時間ステップにおいて前記エージェントによって実行されることになる現在のアクションを表すデータ要素のシーケンスを、自己回帰的に生成するステップであって、
前記現在のアクションを表す前記データ要素のシーケンス中の最初の位置から開始して、各位置について、
前記アクション選択ニューラルネットワークを使用して、前記タスクの前記状態の前記現在の表現を処理して、可能なデータ要素のセットにわたるスコア分布を生成するステップと、
前記スコア分布に従って、前記現在のアクションを表す前記データ要素のシーケンス中の前記位置のためのデータ要素を選択するステップと、
前記位置のための前記選択されたデータ要素を、前記タスクの前記状態の前記現在の表現に連結することによって、前記タスクの前記状態の前記現在の表現を更新するステップと
を含む、ステップと、
前記現在のアクションを表す前記データ要素のシーケンスを自己回帰的に生成した後、前記エージェントに前記現在の時間ステップにおいて前記現在のアクションを実行させるステップと
を含む、方法。
【請求項2】
前記時間ステップのシーケンス中の各時間ステップについて、前記現在の時間ステップの時点の前記タスクの前記状態の前記現在の表現を生成するステップが、
前記現在の時間ステップにおける前記環境の状態を特徴づける現在の観測を受信するステップと、
データ要素のシーケンスとしての前記現在の観測の表現を生成するステップと、
前記現在の時間ステップの時点の前記タスクの前記状態の前記現在の表現中に、データ要素のシーケンスとしての前記現在の観測の前記表現を含めるステップと
を含む、請求項1に記載の方法。
【請求項3】
前記現在の観測が、数値の集まりによって定義され、
データ要素のシーケンスとしての前記現在の観測の前記表現を生成するステップが、
前記現在の観測を定義する前記数値の集まりにおける各数値を、あらかじめ定義された順序における数値のシーケンスに連結するステップを含む、請求項2に記載の方法。
【請求項4】
データ要素のシーケンスとしての前記現在の観測の前記表現を生成するステップが、
前記現在の観測を定義する前記数値の集まりにおける各数値を離散化するステップをさらに含む、請求項3に記載の方法。
【請求項5】
前記現在の時間ステップにおける前記環境の前記現在の状態を特徴づける前記現在の観測が、ピクセルのアレイによって定義された画像を備える、請求項2から4のいずれか一項に記載の方法。
【請求項6】
データ要素のシーケンスとしての前記現在の観測の前記表現を生成するステップが、
前記エージェントと前記環境との対話によって達成されることになるターゲットリターンを、データ要素のシーケンスとしての前記現在の観測の前記表現と結合するステップであって、前記ターゲットリターンが、前記エージェントと前記環境との前記対話の結果として達成されることになる報酬の累積測度を定義する、ステップを含む、請求項2から5のいずれか一項に記載の方法。
【請求項7】
前記時間ステップのシーケンス中の第1の時間ステップ後の各時間ステップについて、前記現在の時間ステップの時点の前記タスクの前記状態の前記現在の表現中に、データ要素のシーケンスとしての前記現在の観測の前記表現を含めるステップが、
データ要素のシーケンスとしての前の時間ステップの時点の前記タスクの前記状態の表現を受信するステップと、
データ要素のシーケンスとしての前記現在の観測の前記表現を、データ要素のシーケンスとしての前記前の時間ステップの時点の前記タスクの前記状態の前記表現に連結して、前記現在の時間ステップの時点の前記タスクの前記状態の前記現在の表現を生成するステップと
を含む、請求項2から6のいずれか一項に記載の方法。
【請求項8】
前記前の時間ステップの時点の前記タスクの前記状態の前記表現が、前記現在の時間ステップに先行する各時間ステップについて、(i)前記時間ステップにおける前記環境の状態を特徴づけるそれぞれの観測、および(ii)前記時間ステップにおいて前記エージェントによって実行されるそれぞれのアクションを表す、請求項7に記載の方法。
【請求項9】
前記時間ステップのシーケンス中の第1の時間ステップにおいて、前記現在の時間ステップの時点の前記タスクの前記状態の前記現在の表現中に、データ要素のシーケンスとしての前記現在の観測の前記表現を含めるステップが、
前記環境内で前記エージェントによって実行されることになる前記タスクを特徴づけるデータを備える、プロンプトを受信するステップと、
データ要素のシーケンスとしての前記プロンプトの表現を生成するステップと、
データ要素のシーケンスとしての前記現在の観測の前記表現を、データ要素のシーケンスとしての前記プロンプトの前記表現に連結して、前記現在の時間ステップの時点の前記タスクの前記状態の前記現在の表現を生成するステップと
を含む、請求項2から8のいずれか一項に記載の方法。
【請求項10】
前記プロンプトが、前記タスクのデモンストレーション、前記環境の目的状態を特徴づける目的観測、または前記タスクに関係する命令を与える自然言語におけるテキストのシーケンスのうちの1つまたは複数を備える、請求項9に記載の方法。
【請求項11】
前記アクション選択ニューラルネットワークが、トレーニング例のセットにおいてトレーニングされたものであり、
各トレーニング例について、
前記トレーニング例が、データ要素のシーケンスとして表され、
前記トレーニング例を表す前記データ要素のシーケンス中の前記データ要素のうちの少なくとも1つが、アクションデータ要素として指定され、
前記トレーニング例における前記アクション選択ニューラルネットワークのトレーニングが、前記トレーニング例中に含まれた前記アクションデータ要素を生成するように、前記アクション選択ニューラルネットワークをトレーニングするステップを含む、請求項1から10のいずれか一項に記載の方法。
【請求項12】
前記トレーニング例のセットが、複数の異なる制御ドメインからのそれぞれのトレーニング例を含み、
各制御ドメインが、(i)対応するエージェント、(ii)対応する環境、および(iii)対応するタスクに関連付けられ、
各制御ドメインからの各トレーニング例が、前記対応するタスクを遂行するためのアクションを実行することによって、前記対応するエージェントと前記対応する環境との対話を特徴づける、請求項11に記載の方法。
【請求項13】
前記複数の異なる制御ドメインが、前記対応する環境の観測が第1の次元数を有する、第1の制御ドメインと、前記対応する環境の観測が第2の異なる次元数を有する、第2の制御ドメインとを含む、請求項12に記載の方法。
【請求項14】
前記複数の異なる制御ドメインが、前記対応するエージェントによって実行されるアクションが第1の次元数を有する、第1の制御ドメインと、前記対応するエージェントによって実行されるアクションが第2の異なる次元数を有する、第2の制御ドメインとを含む、請求項12または13に記載の方法。
【請求項15】
前記トレーニング例のセットが、複数の言語モデリングトレーニング例を含み、
各言語モデリングトレーニング例が、自然言語におけるテキストのシーケンスを表す、請求項11から14のいずれか一項に記載の方法。
【請求項16】
前記アクション選択ニューラルネットワークが、複数のセルフアテンションニューラルネットワーク層を備える、請求項1から15のいずれか一項に記載の方法。
【請求項17】
前記現在のアクションを表す前記データ要素のシーケンス中の前記最初の位置から開始して、各位置について、前記位置のための前記データ要素を選択するステップが、
前記スコア分布の下で最高スコアを有するデータ要素を選択するステップを含む、請求項1から16のいずれか一項に記載の方法。
【請求項18】
前記時間ステップのシーケンス中の各時間ステップについて、前記現在の時間ステップの時点の前記タスクの前記状態を表す前記データ要素のシーケンスが、数値のシーケンス、埋込みのシーケンス、またはいくつかの位置における数値と他の位置における埋込みとを含むシーケンスを備える、請求項1から17のいずれか一項に記載の方法。
【請求項19】
前記現在の観測が画像を備え、
データ要素のシーケンスとしての前記現在の観測の前記表現を生成するステップが、
前記画像中の複数のパッチの各々に対応するそれぞれの初期パッチ埋込みを生成するステップと、
エンコーダニューラルネットワークを使用して、前記初期パッチ埋込みを処理して、前記画像中の前記複数のパッチの各々のためのそれぞれの最後のパッチ埋込みを生成するステップと
を含み、
各最後のパッチ埋込みが、前記現在の観測を表す前記データ要素のシーケンス中のそれぞれのデータ要素として含まれる、請求項2に従属するときの請求項1から18のいずれか一項に記載の方法。
【請求項20】
前記画像中のパッチに対応するそれぞれの初期パッチ埋込みを生成するステップが、
前記画像中の前記パッチ中のピクセルを表すピクセル埋込みを生成するステップと、
前記画像中の前記パッチの位置を表すパッチ位置埋込みを生成するステップと、
前記パッチのための前記ピクセル埋込みおよび前記パッチ位置埋込みを結合することによって、前記パッチのための前記初期パッチ埋込みを生成するステップと
を含む、請求項19に記載の方法。
【請求項21】
前記エンコーダニューラルネットワークが、1つまたは複数のセルフアテンションニューラルネットワーク層を備える、請求項19または20に記載の方法。
【請求項22】
前記エンコーダニューラルネットワークが、1つまたは複数の残差ブロックを備える、請求項19、20、または21に記載の方法。
【請求項23】
前記エージェントが、現実世界の環境と対話する機械的エージェントである、請求項1から22のいずれか一項に記載の方法。
【請求項24】
前記機械的エージェントによって実行されることになるアクションを選択するステップが、前記機械的エージェントに前記環境内で1つまたは複数のオブジェクトを物理的に操作させるためのアクションを選択するステップを含む、請求項23に記載の方法。
【請求項25】
システムであって、
1つまたは複数のコンピュータと、
前記1つまたは複数のコンピュータに通信可能に結合された、1つまたは複数の記憶デバイスと
を備え、前記1つまたは複数の記憶デバイスが命令を記憶し、前記命令が、前記1つまたは複数のコンピュータによって実行されると、前記1つまたは複数のコンピュータに、請求項1から24のいずれか一項に記載のそれぞれの方法の動作を実行させる、システム。
【請求項26】
命令を記憶した1つまたは複数の非一時的コンピュータ可読記録媒体であって、前記命令が、1つまたは複数のコンピュータによって実行されると、前記1つまたは複数のコンピュータに、請求項1から24のいずれか一項に記載のそれぞれの方法の動作を実行させる、1つまたは複数の非一時的コンピュータ可読記録媒体。
【発明の詳細な説明】
【技術分野】
【0001】
本明細書は、機械学習モデルを使用して、データを処理することに関する。
【背景技術】
【0002】
機械学習モデルは、入力を受信し、受信された入力に基づいて、出力、たとえば、予測された出力を生成する。いくつかの機械学習モデルは、パラメトリックモデルであり、受信された入力、およびモデルのパラメータの値に基づいて、出力を生成する。
【0003】
いくつかの機械学習モデルは、受信された入力に対する出力を生成するために、モデルの複数の層を採用する、ディープモデルである。たとえば、ディープニューラルネットワークは、出力層と、出力を生成するために、受信された入力に非線形変換を各々適用する、1つまたは複数の隠れ層とを含む、ディープ機械学習モデルである。
【先行技術文献】
【非特許文献】
【0004】
【非特許文献1】K. Heら、「Identity mappings in deep residual networks」、European Conference on Computer Vision、630~645頁、2016
【非特許文献2】A. Dosovitskiyら、「An image is worth 16x16 words: transformers for image recognition at scale」、arXiv:2010.11929v2、2021
【非特許文献3】A. Vaswaniら、「Attention is all you need」、arXiv:1706.03762v5、2017年12月6日
【非特許文献4】「Transformer-XL: Attentive Language Models Beyond a Fixed-Length Context」、Daiら、arXiv:1901.02860v3、2019年6月2日
【発明の概要】
【課題を解決するための手段】
【0005】
本明細書は、タスクを実行するために環境と対話するエージェントを制御するための、1つまたは複数のロケーションにおける1つまたは複数のコンピュータ上のコンピュータプログラムとして実装された、アクション選択システムについて説明する。
【0006】
本明細書の全体にわたって、「データ要素」は、たとえば、数値(たとえば、整数または浮動小数点数値)または埋込みを指すことがある。埋込みは、数値の順序付きの集まり、たとえば、数値のベクトル、行列、または他のテンソルを指す。
【0007】
第1の態様によれば、アクション選択ニューラルネットワーク、詳細には、トレーニングされたアクション選択ニューラルネットワークを使用して、環境と対話するために、エージェントによって実行されることになるアクションを選択するための、1つまたは複数のコンピュータによって実行される方法が提供される。方法は、時間ステップのシーケンス中の各時間ステップにおいて、たとえば、環境の状態を特徴づける現在の観測から、データ要素の(第1の)シーケンスとしての、現在の時間ステップの時点の、環境内でエージェントによって実行されているタスクの状態の現在の表現を生成するステップを含む。方法はまた、現在の時間ステップにおいてエージェントによって実行されることになる現在のアクションを表すデータ要素の(第2の)シーケンスを、自己回帰的に生成するステップも含む。たとえば、データ要素の(第2の)シーケンスは、エージェントによって実行されることになるアクションを集合的に表す、複数のアクションデータ要素を備え得る。実装形態では、データ要素の(第2の)シーケンスを自己回帰的に生成するステップが、現在のアクションを表すデータ要素のシーケンス中の最初の位置から開始して、(データ要素の第2のシーケンス中の)各位置について、アクション選択ニューラルネットワークを使用して、タスクの状態の現在の表現を処理して、可能なデータ要素のセットにわたるスコア分布を生成するステップと、スコア分布に従って、現在のアクションを表すデータ要素のシーケンス中の位置のためのデータ要素を選択するステップと、位置のための選択された(アクション)データ要素を、タスクの状態の現在の表現に連結することによって、タスクの状態の現在の表現を更新するステップとを含む。すなわち、タスクの状態の更新された現在の表現、すなわち、データ要素の(第1の)シーケンスが、データ要素の(第2の)シーケンスの自己回帰生成のために、詳細には、タスクの状態の現在の(現在更新された)表現を処理して、次の位置のための(アクション)データ要素を選択するために、更新される。現在のアクションを表すデータ要素のシーケンスを自己回帰的に生成した後、方法は、エージェントに現在の時間ステップにおいて現在のアクションを実行させる。次いで、方法は、次の時間ステップのための現在の観測を使用して、タスクの状態の現在の表現を更新し得る。
【0008】
いくつかの実装形態では、時間ステップのシーケンス中の各時間ステップについて、現在の時間ステップの時点のタスクの状態の現在の表現を生成するステップが、現在の時間ステップにおける環境の状態を特徴づける現在の観測を受信するステップと、データ要素のシーケンスとしての現在の観測の表現を生成するステップと、たとえば、タスクの現在の状態を表すデータ要素の(第1の)シーケンスと、データ要素のシーケンスとしての現在の観測の表現とを連結することによって、現在の時間ステップの時点のタスクの状態の現在の表現中に、データ要素のシーケンスとしての現在の観測の表現を含めるステップとを含む。
【0009】
いくつかの実装形態では、現在の観測が、数値の集まりによって定義され、データ要素のシーケンスとしての現在の観測の表現を生成するステップが、現在の観測を定義する数値の集まりにおける各数値を、あらかじめ定義された順序における、すなわち、観測の数値の順序を定義する、数値のシーケンスに連結するステップを含む。
【0010】
いくつかの実装形態では、データ要素のシーケンスとしての現在の観測の表現を生成するステップが、現在の観測を定義する数値の集まりにおける各数値を離散化するステップをさらに含む。
【0011】
いくつかの実装形態では、現在の時間ステップにおける環境の現在の状態を特徴づける現在の観測が、ピクセルのアレイによって定義された環境の画像を備える。
【0012】
いくつかの実装形態では、データ要素のシーケンスとしての現在の観測の表現を生成するステップが、エージェントと環境との対話によって達成されることになるターゲットリターン(target return)を、データ要素のシーケンスとしての現在の観測の表現と結合するステップであって、ターゲットリターンが、エージェントと環境との対話の結果として達成されることになる報酬の累積測度(cumulative measure)を定義する、ステップを含む。
【0013】
いくつかの実装形態では、時間ステップのシーケンス中の第1の時間ステップ後の各時間ステップについて、現在の時間ステップの時点のタスクの状態の現在の表現中に、データ要素のシーケンスとしての現在の観測の表現を含めるステップが、データ要素のシーケンスとしての前の時間ステップの時点のタスクの状態の表現を受信するステップと、データ要素のシーケンスとしての現在の観測の表現を、データ要素のシーケンスとしての前の時間ステップの時点のタスクの状態の表現に連結して、現在の時間ステップの時点のタスクの状態の現在の表現を生成するステップとを含む。
【0014】
いくつかの実装形態では、前の時間ステップの時点のタスクの状態の表現が、現在の時間ステップに先行する各時間ステップについて、(i)時間ステップにおける環境の状態を特徴づけるそれぞれの観測、および(ii)時間ステップにおいてエージェントによって実行されるそれぞれのアクションを表す。
【0015】
いくつかの実装形態では、時間ステップのシーケンス中の第1の時間ステップにおいて、現在の時間ステップの時点のタスクの状態の現在の表現中に、データ要素のシーケンスとしての現在の観測の表現を含めるステップが、環境内でエージェントによって実行されることになるタスクを特徴づけるデータを備える、プロンプトを受信するステップと、データ要素のシーケンスとしてのプロンプトの表現を生成するステップと、データ要素のシーケンスとしての現在の観測の表現を、データ要素のシーケンスとしてのプロンプトの表現に連結して、現在の時間ステップの時点のタスクの状態の現在の表現を生成するステップとを含む。
【0016】
いくつかの実装形態では、プロンプトが、タスクのデモンストレーション、環境の目的状態を特徴づける目的観測、またはタスクに関係する命令を与える自然言語におけるテキストのシーケンスのうちの1つまたは複数を備える。
【0017】
いくつかの実装形態では、アクション選択ニューラルネットワークが、トレーニング例のセットにおいてトレーニングされたものであり、各トレーニング例について、トレーニング例が、データ要素のシーケンスとして表され、トレーニング例を表すデータ要素のシーケンス中のデータ要素のうちの少なくとも1つが、アクションデータ要素として指定され、トレーニング例におけるアクション選択ニューラルネットワークのトレーニングが、トレーニング例中に含まれたアクションデータ要素を生成するように、アクション選択ニューラルネットワークをトレーニングするステップを含む。
【0018】
いくつかの実装形態では、トレーニング例のセットが、複数の異なる制御ドメインからのそれぞれのトレーニング例を含み、各制御ドメインが、(i)対応するエージェント、(ii)対応する環境、および(iii)対応するタスクに関連付けられ、各制御ドメインからの各トレーニング例が、対応するタスクを遂行するためのアクションを実行することによって、対応するエージェントと対応する環境との対話を特徴づける。
【0019】
いくつかの実装形態では、複数の異なる制御ドメインが、対応する環境の観測が第1の次元数を有する、第1の制御ドメインと、対応する環境の観測が第2の異なる次元数を有する、第2の制御ドメインとを含む。
【0020】
いくつかの実装形態では、複数の異なる制御ドメインが、対応するエージェントによって実行されるアクションが第1の次元数を有する、第1の制御ドメインと、対応するエージェントによって実行されるアクションが第2の異なる次元数を有する、第2の制御ドメインとを含む。
【0021】
いくつかの実装形態では、トレーニング例のセットが、複数の言語モデリングトレーニング例を含み、各言語モデリングトレーニング例が、自然言語におけるテキストのシーケンスを表す。
【0022】
いくつかの実装形態では、アクション選択ニューラルネットワークが、複数のセルフアテンションニューラルネットワーク層を備える。概して、セルフアテンションニューラルネットワーク層は、入力の各要素のためのアテンション層入力を有し、アテンション層入力にわたってアテンション機構を適用して、入力の各要素のためのアテンション層出力を生成するように構成される。使用され得る多数の異なるアテンション機構がある。
【0023】
いくつかの実装形態では、現在のアクションを表すデータ要素のシーケンス中の最初の位置から開始して、各位置について、位置のためのデータ要素を選択するステップが、スコア分布の下で最高スコアを有するデータ要素を選択するステップを含む。
【0024】
いくつかの実装形態では、時間ステップのシーケンス中の各時間ステップについて、現在の時間ステップの時点のタスクの状態を表すデータ要素のシーケンスが、数値のシーケンス、埋込みのシーケンス、またはいくつかの位置における数値と他の位置における埋込みとを含むシーケンスを備える。
【0025】
いくつかの実装形態では、エージェントが、現実世界の環境と対話する機械的エージェントである。したがって、選択されたアクションは、機械的エージェントに環境内で1つまたは複数のオブジェクトを物理的に操作させるためのアクションなど、現実世界の環境内で機械的エージェントによって実行されるアクションであってよく、環境の状態を特徴づける観測は、現実世界の環境の観測であり得る。観測は、マルチモーダル観測であり得る。方法は、アクション選択ニューラルネットワークを使用して、1つまたは複数のタスクを実行してよく、説明されるシステムの特定の利点は、パラメータ(重み)の同じセットをもつ同じアクション選択ニューラルネットワークが、多数の異なるタスクを実行するために使用され得ることである。いくつかの実装形態では、システム、詳細には、アクション選択ニューラルネットワークは、12億以上の学習可能なパラメータを有し、これによって、複数の異なるタスクを実行するための能力が可能になる。
【0026】
いくつかの実装形態では、時間ステップのシーケンス中の各時間ステップについて、現在の時間ステップの時点のタスクの状態を表すデータ要素のシーケンスが、数値のシーケンス、埋込みのシーケンス、またはいくつかの位置における数値と他の位置における埋込みとを含むシーケンスを備える。
【0027】
いくつかの実装形態では、現在の観測が画像を備え、データ要素のシーケンスとしての現在の観測の表現を生成するステップが、画像中の複数のパッチの各々に対応するそれぞれの初期パッチ埋込みを生成するステップと、エンコーダニューラルネットワークを使用して、初期パッチ埋込みを処理して、画像中の複数のパッチの各々のためのそれぞれの最後のパッチ埋込みを生成するステップとを含み、各最後のパッチ埋込みが、現在の観測を表すデータ要素のシーケンス中のそれぞれのデータ要素として含まれる。
【0028】
いくつかの実装形態では、画像中のパッチに対応するそれぞれの初期パッチ埋込みを生成するステップが、画像中のパッチ中のピクセルを表すピクセル埋込みを生成するステップと、画像中のパッチの位置を表すパッチ位置埋込みを生成するステップと、パッチのためのピクセル埋込みおよびパッチ位置埋込みを結合することによって、パッチのための初期パッチ埋込みを生成するステップとを含む。
【0029】
いくつかの実装形態では、エンコーダニューラルネットワークが、1つまたは複数のセルフアテンションニューラルネットワーク層を備える。
【0030】
いくつかの実装形態では、エンコーダニューラルネットワークが、1つまたは複数の残差ブロックを備える。
【0031】
いくつかの実装形態では、エージェントが、現実世界の環境と対話する機械的エージェントである。
【0032】
いくつかの実装形態では、機械的エージェントによって実行されることになるアクションを選択するステップが、機械的エージェントに環境内で1つまたは複数のオブジェクトを物理的に操作させるためのアクションを選択するステップを含む。
【0033】
別の態様によれば、システムが提供され、システムは、1つまたは複数のコンピュータと、1つまたは複数のコンピュータに通信可能に結合された、1つまたは複数の記憶デバイスとを備え、1つまたは複数の記憶デバイスが命令を記憶し、命令が、1つまたは複数のコンピュータによって実行されると、1つまたは複数のコンピュータに、本明細書で説明される方法の動作を実行させる。
【0034】
命令を記憶する、1つまたは複数の非一時的コンピュータ記憶媒体であって、命令が、1つまたは複数のコンピュータによって実行されると、1つまたは複数のコンピュータに、本明細書で説明される方法の動作を実行させる。
【0035】
本明細書で説明される主題の特定の実施形態は、以下の利点のうちの1つまたは複数を実現するように実装され得る。
【0036】
本明細書で説明されるアクション選択システムは、データ要素のシーケンスにおいて動作する自己回帰アクション選択ニューラルネットワークを使用して、環境内でエージェントによって実行されることになるアクションを選択する。詳細には、アクション選択システムは、観測とアクションの両方をデータ要素のシーケンスとして表し、アクション選択ニューラルネットワークを使用して、これらのシーケンスにおいて動作して、環境内でエージェントによって実行されることになるアクションを表すデータ要素のシーケンスを自己回帰的に生成する。アクション選択ニューラルネットワークは、データ要素のシーケンスにおいて動作するので、データ要素のシーケンスとして表され得る任意のトレーニング例においてトレーニングされ得る。したがって、アクション選択ニューラルネットワークは、環境の観測の、およびエージェントによって実行されるアクションの、それぞれの次元数にかかわらず、任意のタスクを実行するための任意のエージェントと任意の環境との対話を表すトレーニング例においてトレーニングされ得る。
【0037】
アクション選択システムは、複数の異なるタスクを実行するための、複数の異なるエージェントと複数の異なる環境との対話を表す、トレーニング例の極めて多様なセットにおいて、アクション選択ニューラルネットワークをトレーニングする。したがって、アクション選択ニューラルネットワークは、アクション選択ニューラルネットワークが新しいドメインに迅速かつ有効に一般化することを可能にする、エージェント制御の柔軟かつ転移可能な理解を学習する。詳細には、アクション選択ニューラルネットワークは、「フューショット学習」を実行することができ、すなわち、アクション選択ニューラルネットワークは、新しいドメインからの少数のトレーニング例のみにおいてトレーニングされた後、新しいドメインにおけるタスクにおいて許容できるレベルの性能を達成するようにトレーニングされ得る。場合によっては、アクション選択ニューラルネットワークは、「ゼロショット学習」を、すなわち、新しいドメインからのいかなるトレーニング例においてもトレーニングされることなしに、新しいドメインにおけるタスクにおいて許容できるレベルの性能を達成することによって、実行することができる。したがって、アクション選択システムは、従来のアクション選択システムよりも広く適用可能である、エージェント制御のための汎用モデルを提供する。アクション選択システムは、新しいドメインにおいてエージェントを制御することにおいて許容できるレベルの性能を達成するために、従来のシステムよりも少ないトレーニングデータおよび少ないトレーニング反復を必要とすることによって、計算リソース(たとえば、メモリおよび計算能力)のより効率的な使用を可能にする。
【0038】
エージェント制御タスクを実行するように、アクション選択ニューラルネットワークをトレーニングすることに加えて、アクション選択システムはまた、言語モデリングを実行するように、すなわち、自然言語におけるテキストを表すデータ要素のシーケンスにおいて、アクション選択ニューラルネットワークをトレーニングすることによって、アクション選択ニューラルネットワークをトレーニングすることもできる。言語モデリングを実行するように、アクション選択ニューラルネットワークをトレーニングすることによって、たとえば、アクション選択ニューラルネットワークに提供された自然言語プロンプトの意味を暗黙的に推論するための、アクション選択ニューラルネットワークの能力を向上させることによって、トレーニングを加速し、アクション選択ニューラルネットワークの性能を向上させることができる。
【0039】
本明細書の主題の1つまたは複数の実施形態の詳細が、添付の図面および以下の説明において記載される。主題の他の特徴、態様、および利点は、説明、図面、および特許請求の範囲から明らかになるであろう。
【図面の簡単な説明】
【0040】
【
図1】例示的なアクション選択システムを示す図である。
【
図2】異なるドメインからのトレーニング例を示す図である。
【
図3A】タスクを遂行するために環境と対話するエージェントによって実行されることになるアクションを選択するために、アクション選択システムによって実行される動作を示す図である。
【
図3B】タスクを遂行するために環境と対話するエージェントによって実行されることになるアクションを選択するために、アクション選択システムによって実行される動作を示す図である。
【
図4】現在の時間ステップにおいて環境と対話するために、エージェントによって実行されることになるアクションを選択するための、例示的なプロセスのフロー図である。
【発明を実施するための形態】
【0041】
様々な図面における同様の参照番号および名称は、同様の要素を示す。
【0042】
図1は、例示的なアクション選択システム100を示す。アクション選択システム100は、それにおいて以下で説明されるシステム、構成要素、および技法が実装される、1つまたは複数のロケーションにおける1つまたは複数のコンピュータ上のコンピュータプログラムとして実装されたシステムの一例である。
【0043】
システム100は、環境118内でタスクを遂行するために、複数の時間ステップの各々において環境118と対話するエージェント120によって実行されることになるアクション102を選択する。
【0044】
各時間ステップにおいて、システム100は、環境118の現在の状態を特徴づける観測116を受信し、観測116に応答して、エージェント120によって実行されることになるアクション102を選択する。後で説明されるように、時間ステップにおけるアクション102は、アクションデータ要素のシーケンスによって表され得る。
【0045】
各時間ステップは、たとえば、時間ステップにおける環境118の状態、時間ステップにおいてエージェント120によって実行されるアクション102、またはその両方に基づいて、報酬に関連付けられ得る。一般に、報酬は数値として表され得る。報酬は、環境118内の任意のイベントまたは環境118の態様に基づき得る。たとえば、報酬は、エージェント120が環境内のタスク(たとえば、環境118内の目標ロケーションまでナビゲートすること)を遂行したか否か、またはタスクの遂行に向けたエージェントの進捗を示すことができる。いくつかの実装形態では、報酬は、エージェントがタスクを遂行する前の各時間ステップにおける値0、およびエージェントがタスクを遂行する時間ステップにおける値1(または何らかの他の正の値)を有する、疎な報酬であり得る。いくつかの実装形態では、報酬は、エージェントがタスクを遂行する前の時間ステップにおける非0値を有する、密な報酬であってよく、たとえば、タスクが目標ロケーションにナビゲートすることを伴う場合、各時間ステップにおける報酬は、目標ロケーションへのエージェントの近接度に基づいて、連続的に変動し得る。
【0046】
トレーニングエンジン112は、以下でより詳細に説明されるように、システム100によって選択されたアクション102を実行することによって、エージェント120と環境118との対話によって生成される「収益」を増加するアクションを選択するように、システム100をトレーニングすることができる。収益は、エージェント120と環境118との対話によって生成された報酬の累積測度、たとえば、時間割引報酬和(time discounted sum of rewards)を指す。
【0047】
いくつかの実装形態では、環境は、現実世界の環境であり、エージェントは、現実世界の環境と対話する機械的エージェントである。たとえば、エージェントは、たとえば、環境内の関心オブジェクトを配置するため、関心オブジェクトを環境内の指定されたロケーションに移動するため、関心オブジェクトを環境内で指定された方法で物理的に操作するため、または環境内の指定された目的地にナビゲートするための、タスクを実行するために環境と対話するロボットであり得るか、あるいはエージェントは、環境内の指定された目的地まで環境を通してナビゲートする、自律型または半自律型の陸上車両、航空機、または船舶であり得る。特定の例では、エージェントは、たとえば、環境内でオブジェクト(たとえば、箱)のセットを積み重ねるために、または構成要素(たとえば、電子的構成要素)のセットを組み立てるために、機械的グリッピングツールを使用して、現実世界の環境と対話するロボットであり得る。
【0048】
これらの実装形態では、観測は、たとえば、エージェントが環境と対話するときに観測をキャプチャするための、画像(そこで、画像は、たとえば、ピクセルのアレイとして表され得る)、オブジェクト位置データ、およびセンサーデータ、たとえば、画像センサー、距離センサー、もしくは位置センサーからの、またはアクチュエータからのセンサーデータのうちの1つまたは複数を含み得る。
【0049】
たとえば、ロボットの場合、観測は、ロボットの現在の状態を特徴づけるデータ、たとえば、ジョイント位置、ジョイント速度、ジョイント力、トルクまたは加速度、たとえば、重力補償トルクフィードバック、およびロボットによって保持されるアイテムのグローバルまたは相対ポーズのうちの1つまたは複数を含み得る。
【0050】
ロボットもしくは他の機械的エージェント、または車両の場合、観測は、エージェントの1つまたは複数の部分の位置、直線速度または角速度、力、トルクまたは加速度、およびグローバルまたは相対ポーズのうちの1つまたは複数を同様に含み得る。観測は、1次元、2次元、または3次元において定義されてよく、絶対観測および/または相対観測であり得る。
【0051】
観測はまた、たとえば、現実世界の環境を検知する1つまたは複数のセンサーデバイスによって取得されたデータ、たとえば、モーター電流または温度信号などの検知された電子信号、および/あるいは、たとえば、カメラまたはLIDARセンサーからの画像またはビデオデータ、たとえば、エージェントのセンサーからのデータ、または環境内のエージェントから離れて配置されたセンサーからのデータを含み得る。
【0052】
電子エージェントの場合、観測は、電流センサー、電圧センサー、電力センサー、温度センサー、および他のセンサーなど、プラントもしくはサービス施設の部分を監視する1つもしくは複数のセンサーからのデータ、ならびに/または機器の電子的および/もしくは機械的アイテムの機能を表す電子信号を含み得る。
【0053】
アクションは、ロボットを制御するための制御入力、たとえば、ロボットのジョイントのためのトルク、またはより高レベルの制御コマンド、あるいは自律型または半自律型の陸上車両または航空機または船舶を制御するための制御入力、たとえば、車両の制御面もしくは他の制御要素へのトルク、またはより高レベルの制御コマンドであり得る。
【0054】
言い換えれば、アクションは、たとえば、ロボットの1つもしくは複数のジョイントまたは別の機械的エージェントの部分のための、位置、速度、または力/トルク/加速度のデータを含み得る。アクションは、追加または代替として、モーター制御データなどの電子制御データ、またはより一般的には、その制御が環境の観測された状態に影響を与える、環境内の1つもしくは複数の電子デバイスを制御するためのデータを含み得る。たとえば、自律型または半自律型の陸上車両、航空機、または船舶の場合、アクションは、ナビゲーションを制御するためのアクション、たとえば、ステアリング、および動き、たとえば、車両の制動および/または加速を含み得る。上記で説明されたように、特定の時間ステップにおけるアクションは、それぞれのアクションデータ要素によって各々表される複数の構成要素を有し得る。
【0055】
いくつかの実装形態では、環境は、シミュレートされた環境であり、エージェントは、シミュレートされた環境と対話する1つまたは複数のコンピュータとして実装される。
【0056】
たとえば、シミュレートされた環境は、運動シミュレーション環境、たとえば、運転シミュレーションまたは飛行シミュレーションであってよく、エージェントは、運動シミュレーションを通してナビゲートする、シミュレートされた車両であり得る。これらの実装形態では、アクションは、シミュレートされたユーザまたはシミュレートされた車両を制御するための制御入力であり得る。
【0057】
別の例では、シミュレートされた環境は、ビデオゲームであってよく、エージェントは、ビデオゲームをプレイするシミュレートされたユーザであり得る。
【0058】
さらなる例では、シミュレートされた環境は、各状態がタンパク質鎖のそれぞれの状態であり、エージェントがタンパク質鎖を折り畳む方法を決定するためのコンピュータシステムであるような、タンパク質折り畳み環境であり得る。この例では、アクションは、タンパク質鎖を折り畳むための可能な折り畳みアクションであり、実行されることになるタスクは、たとえば、タンパク質が安定するように、かつ特定の生物学的機能を達成するように、タンパク質を折り畳むことを含み得る。
【0059】
一般に、シミュレートされた環境の場合、観測は、前に説明された観測または観測のタイプのうちの1つまたは複数のシミュレートされたバージョンを含んでよく、アクションは、前に説明されたアクションまたはアクションのタイプのうちの1つまたは複数のシミュレートされたバージョンを含んでよい。
【0060】
場合によっては、アクション選択システム100は、エージェントとシミュレートされた環境との対話を制御するために使用されてよく、トレーニングエンジン112は、エージェントとシミュレートされた環境との対話に基づいて、アクション選択システムのパラメータをトレーニングすることができる。アクション選択システムが、エージェントとシミュレートされた環境との対話に基づいてトレーニングされた後、エージェントは、現実世界の環境内で展開されてよく、トレーニングされたアクション選択システムは、エージェントと現実世界の環境との対話を制御するために使用され得る。エージェントとシミュレートされた環境(すなわち、現実世界の環境の代わりに)との対話に基づいて、アクション選択システムをトレーニングすることによって、エージェントの損耗を回避することができ、不十分に選定されたアクションを実行することによって、エージェントがそれ自体またはその環境の態様に損害を与え得る可能性を、低減することができる。
【0061】
いくつかの他の適用例では、エージェントは、機器のアイテムを含む現実世界の環境における、たとえば、データセンターまたはグリッド幹線電力または配水システムにおける、あるいは製造プラントまたはサービス施設における、アクションを制御し得る。次いで、観測は、プラントまたは施設の運転に関連し得る。たとえば、観測は、機器による電力もしくは水の使用の観測、または発電もしくは配電制御の観測、またはリソースの使用もしくは廃棄物生成の観測を含み得る。エージェントは、たとえば、リソース使用量を削減することによって、効率を高めるタスクを実行し、かつ/または、たとえば、廃棄物を削減することによって、環境内の運転による環境への影響を低減するために、環境内のアクションを制御し得る。アクションは、たとえば、プラント/施設の構成要素を調整またはオン/オフするために、プラント/施設の機器のアイテムにおける運転条件を制御するか、もしくは課すアクション、および/またはプラント/施設の運転における設定の変更を生じるアクションを含み得る。
【0062】
いくつかのさらなる適用例では、環境は、現実世界の環境であり、エージェントは、たとえば、モバイルデバイス上および/またはデータセンター内の、コンピューティングリソースにわたるタスクの分散を管理する。これらの実装形態では、アクションは、特定のコンピューティングリソースにタスクを割り当てることを含んでよく、実行されることになるタスクは、指定されたコンピューティングリソースを使用して、タスクのセットを完了するために必要とされる時間を最小限に抑えることを含み得る。
【0063】
さらなる例として、アクションは、広告を提示することを含むことがあり、観測は、広告のインプレッションまたはクリックスルーのカウントまたはレートを含むことがあり、報酬は、1人または複数のユーザによって取られたアイテムまたはコンテンツの前の選択を特徴づけることがある。この例では、実行されることになるタスクは、1人または複数のユーザによるアイテムまたはコンテンツの選択を最大化することを含み得る。
【0064】
さらなる例として、エージェントは、自然言語におけるテキストのシーケンスを表すアクションを生成することができる。いくつかの実装形態では、タスクは、たとえば、自然言語テキストのシーケンスによって表された観測に応答する、自然言語テキストのシーケンスを生成することであり得る。いくつかの実装形態では、タスクは、たとえば、(現実の、またはシミュレートされた)物理的環境内でタスクを実行するように、(現実の、またはシミュレートされた)物理的エージェントを制御するための命令を表す、自然言語テキストのシーケンス(たとえば、「左に曲がって」、「速度を上げて」、「ライトを起動して」など)を生成することであり得る。
【0065】
さらなる例として、エージェントは、(たとえば、コンピュータプログラミング言語における)コンピュータコードのシーケンスを表すアクションを生成することができる。いくつかの実装形態では、タスクは、所望のコンピュータコードの自然言語記述を定義する観測を受信することと、それに応答して、所望のコンピュータコードの自然言語記述に適合する、コンピュータコードのシーケンスを生成することとを伴うことができる。いくつかの実装形態では、タスクは、コンピュータコードの入力シーケンスを定義する観測を受信することと、それに応答して、コンピュータコードの入力シーケンスの完成である(たとえば、コンピュータコードの入力シーケンスを論理的に拡張する)コンピュータコードの出力シーケンスを生成することとを伴うことができる。
【0066】
エージェント120によって実行されることになるアクション102を選択するために、システム100は、データ要素のシーケンスとして表される現在のタスク状態110を維持し、反復的に更新する。現在のタスク状態110を表すデータ要素のシーケンスは、たとえば、数値のシーケンス、埋込みのシーケンス、またはいくつかの位置における数値と他の位置における埋込みとを含むシーケンスであり得る。各時間ステップにおいて、現在のタスク状態110は、その時間ステップの時点の、環境内でエージェントによって実行されているタスクの状態を表す。
【0067】
場合によっては、第1の時間ステップ(すなわち、その間にエージェントがタスクを実行するために環境と対話する複数の時間ステップのシーケンス中の、第1の時間ステップ)より前に、システム100は、「プロンプト」によって、現在のタスク状態110を初期化することができ、「プロンプト」は、環境118内でエージェント120によって実行されることになるタスクを特徴づける、任意の適切なデータであり得る。プロンプトは、たとえば、システム100のユーザによって、システム100に提供され得る。プロンプトの数例が、次により詳細に説明され、データ要素のシーケンスとしてプロンプトを表すための例示的な技法が、以下でより詳細に説明される。
【0068】
いくつかの実装形態では、プロンプトは、環境内でエージェントによって実行されることになるタスクのデモンストレーションを含み得る。すなわち、プロンプトは、その間にエージェントが環境内のタスクの遂行に向けて進行する時間ステップのシーケンスにわたる、エージェントと環境との対話を特徴づけることができる。プロンプトは、「対話タプル」のシーケンスによって定義されてよく、そこで、各対話タプルは、それぞれの時間ステップに対応し、時間ステップにおける環境の観測、時間ステップにおいてエージェントによって実行されるアクション、またはその両方を表す。
【0069】
プロンプトは、環境118内でエージェント120によって実行されることになるタスクとは異なる(が、それに関係する)、タスクのデモンストレーションを含み得る。たとえば、エージェント120がロボットエージェントであり、エージェント120によって実行されることになるタスクが、あるタイプのオブジェクト(たとえば、立方形を有するオブジェクト)をつかんで移動することを伴う場合、プロンプトは、異なるタイプのオブジェクト(たとえば、球形を有するオブジェクト)をつかんで移動するデモンストレーションを定義することができる。
【0070】
プロンプトは、エージェント120がそのタスクを実行することになる環境118とは異なる環境内のタスクのデモンストレーションを含み得る。たとえば、エージェント120が家庭用ロボットエージェントであり、エージェントによって実行されることになるタスクが、部屋(たとえば、台所)を掃除することを伴う場合、プロンプトは、エージェントが異なる部屋(たとえば、浴室)を掃除するデモンストレーションを定義することができる。
【0071】
プロンプトは、システム100によって制御されているエージェント120とは異なるエージェントによって実行されているタスクのデモンストレーションを含み得る。たとえば、エージェントが、ロボットアームをもつロボットエージェント120である場合、プロンプトは、異なるように構成された(たとえば、異なる長さを有する)ロボットアームをもつエージェントがタスクを実行することによる、デモンストレーションを定義することができる。
【0072】
いくつかの実装形態では、プロンプトは、たとえば、エージェント120が、環境を目的状態(または目的状態に関係する状態)に遷移させるアクションを実行することによって、タスクを遂行するように、環境の目的状態を特徴づける、「目的」観測を含み得る。たとえば、エージェント120がロボットエージェントであり、エージェント120によって実行されることになるタスクが、構成要素(たとえば、電子的または機械的構成要素)のセットを組み立てることを伴う場合、目的観測は、たとえば、所望の構成に組み立てられた構成要素のセットを示す画像であり得る。
【0073】
いくつかの実装形態では、プロンプトは、環境118内でエージェント120によって実行されることになるタスクに関係する命令を与える、自然言語(たとえば、英語)におけるテキストのシーケンスを含み得る。たとえば、エージェント120が半自律型または完全自律型の車両である場合、プロンプトは、「店の入口に一番近い駐車場に車を駐車して」または「ハイウェイに合流して、一番左の車線に移動して」という、単語のシーケンスであり得る。
【0074】
いくつかの実装形態では、プロンプトは、複数の異なる方法で、エージェント120によって実行されることになるタスクを特徴づけるデータを含むことができ、たとえば、プロンプトは、タスクのデモンストレーションと、タスクに関係する命令を与える自然言語におけるテキストのシーケンスの両方を含み得る。
【0075】
システム100は、任意の適切な方法で、プロンプトをデータ要素のシーケンスとして表すことができる。たとえば、プロンプトがテキストのシーケンスを含む場合、システム100は、トークンのあらかじめ定義されたセットからのトークンのシーケンスとして、テキストのシーケンスを表し、次いで、あらかじめ定義されたマッピングに従って、各トークンを対応する数値にマッピングすることができる。トークンのセットは、たとえば、文字、nグラム、単語ピース、単語、またはそれらの組合せを含み得る。データ要素のシーケンスとしてプロンプト内でタスクのデモンストレーションまたは目的観測を表すために適用され得る、データ要素のシーケンスとして観測およびアクションを表すための例示的な技法が、以下でより詳細に説明される。
【0076】
一般に、プロンプトは、環境118内でエージェント120によって実行されることになるタスクを推論し、したがって、タスクを遂行するために、エージェント120によって実行されることになるアクションを選択することを、システム100が行うことを可能にすることができる情報を符号化する。システムは、タスクの状態の表現における観測およびアクションのフォーマットから、実行されることになるタスクを推論することが可能であり得る。しかしながら、システムは、タスクのあいまいさを除去するために、さらなるコンテキストを必要とし得ることがあり、これがプロンプトによって提供され得る。
【0077】
場合によっては、上記で説明されたように、プロンプトは、異なる環境(たとえば、環境118とは異なる)内のタスクデモンストレーション、または異なるエージェント(たとえば、エージェント120とは異なるように構成される)によるタスクデモンストレーション、または異なるが、エージェント120によって実行されることになるタスクに関係するタスクのタスクデモンストレーションを表す。これらの場合、システム100は、環境118の観測116内に符号化された情報とともに、プロンプト内に符号化された情報を組み込んで、環境118内でエージェント120によって実行されることになるタスクを推論することができる。たとえば、エージェントが家庭用ロボットであり、エージェントによって実行されることになるタスクが、目標の家を掃除することを伴う場合、プロンプトは、エージェントが異なる家を掃除するデモンストレーションを含み得る。この例では、システムは、プロンプト内に符号化されるような、掃除するタスクを表す情報を、システムによって受信された観測内に符号化されるような、目標の家を表す情報と結合して、エージェントによって実行されることになるタスクが目標の家を掃除することを伴うことを、暗黙的に推論することができる。
【0078】
場合によっては、システム100は、詳細には、システム100によって受信された観測内に符号化された情報に基づいて、プロンプトの不在下でも、エージェント120によって実行されることになるタスクを暗黙的に推論することができる。たとえば、システム100は、エージェントがトレーニング中に概して特定のタスクを実行したあるタイプの環境と、エージェント120が対話中であることを、観測から暗黙的に推論し、これに基づいて、特定のタスクを遂行するために、エージェントによって実行されることになるアクションを選択することができる。
【0079】
各時間ステップにおいて、システム100は、時間ステップにおける環境118の状態を特徴づける現在の観測116を受信し、現在の観測116を使用して、現在のタスク状態110を更新する。たとえば、システム100は、現在の観測116をデータ要素のシーケンスとして表し、現在の観測を表すデータ要素のシーケンスを、現在のタスク状態110を表すデータ要素のシーケンスに連結することによって、現在のタスク状態110を更新することができる。すなわち、この例では、更新されたタスク状態は、(i)現在のタスク状態110を表すデータ要素のシーケンスと、(ii)現在の観測116を表すデータ要素のシーケンスとを連結することによって定義された、データ要素のシーケンスによって表される。
【0080】
システム100は、任意の適切な方法で、時間ステップのための現在の観測116をデータ要素のシーケンスとして表すことができる。現在の観測116を表すデータ要素のシーケンスは、たとえば、数値のシーケンス、埋込みのシーケンス、またはいくつかの位置における数値と他の位置における埋込みとを含むシーケンスであり得る。現在の観測116をデータ要素のシーケンスとして表すための数個の例示的な技法が、次に説明される。
【0081】
概して、システム100によって受信されるとき、現在の観測116は、数値の順序付きの集まり、たとえば、数値のベクトル、行列、または他のテンソルによって定義される。(観測を定義する数値の順序付きの集まりにおける数値の数は、観測の「次元数」と呼ばれることがある)。いくつかの実装形態では、システム100は、たとえば、現在の観測を定義する数値を、任意であるが固定の順序における数値のシーケンスに連結することによって、現在の観測116を定義する数値の集まりを数値のシーケンスとして表すことができる。
【0082】
たとえば、観測116が、ピクセル強度値のアレイによって表された画像を含む場合、システム100は、画像を表すピクセル強度値のアレイにおける各ピクセル強度値を、任意であるが固定の順序におけるピクセル強度値のシーケンスに連結することによって、ピクセル強度値のアレイを数値のシーケンスとして表すことができる。ピクセル強度値のアレイが、N行およびN列を有するN×Nアレイである場合、システムは、たとえば、アレイ内の最初の行からアレイ内の最後の行までについて、行内の最初の位置から開始して、行内の最後の位置まで、アレイの各行におけるピクセル強度値を集約することができる。
【0083】
別の例として、観測が、位置値(たとえば、環境内のエージェントの位置を表す)、速度値(たとえば、環境内のエージェントの速度を表す)、および加速度値(たとえば、環境内のエージェントの加速度を表す)を含む場合、システムは、たとえば、位置値の後に速度値が続き、その後に加速度値が続くなど、任意のあらかじめ定義された順序において、これらの数値を連結することができる。
【0084】
いくつかの実装形態では、数値のシーケンスとしての観測116(または観測116の何らかの部分)の表現を生成するために、システム100は、最初に、エンコーダ機械学習モデルを使用して、観測116を処理することによって、観測116の埋込み(たとえば、より低次元の埋込み)を生成する。次いで、システム100は、観測の埋込みを定義する数値を、任意であるが固定の順序における、観測を表す数値のシーケンスに連結することができる。エンコーダ機械学習モデルは、たとえば、オートエンコーダ機械学習モデルのエンコーダニューラルネットワークであり得る。
【0085】
いくつかの実装形態では、システム100は、1つまたは複数の埋込みのシーケンスとしての観測の表現を生成することができる。たとえば、システム100は、画像をパッチのシーケンスに分割すること、および次いで、エンコーダ機械学習モデルを使用して、各パッチのそれぞれの埋込みを生成することによって、埋込みのシーケンスとしての画像の表現を生成することができる。次いで、システムは、画像パッチのそれぞれの埋込みを連結して、埋込みのシーケンスとしての画像の表現を生成することができる。エンコーダ機械学習モデルは、任意の適切なニューラルネットワークアーキテクチャを有するニューラルネットワークとして実装され得る。エンコーダニューラルネットワークのための、すなわち、エンコーダ機械学習モデルを実装する、可能なアーキテクチャの数例が、次に説明される。
【0086】
一例では、エンコーダニューラルネットワークは、残差ブロックのシーケンスを含む残差ニューラルネットワークアーキテクチャを有することができ、たとえば、そこで、各残差ブロックへの入力が、残差ブロックの出力に追加される。特定の例では、エンコーダニューラルネットワークは、たとえば、K. Heら、「Identity mappings in deep residual networks」、European Conference on Computer Vision、630~645頁、2016を参照しながら説明されるような、v2 ResNetアーキテクチャを使用して実装され得る。エンコーダニューラルネットワークは、画像中の各パッチを表すそれぞれの初期埋込みを受信するように構成され得る。画像パッチの初期埋込みは、(i)たとえば、画像パッチ中のピクセルをベクトルに連結することによって生成された、画像パッチ中のピクセルを表すパッチピクセル埋込み、および(ii)画像中のパッチの位置を表すパッチ位置埋込みに基づき得る。たとえば、画像パッチの初期埋込みは、パッチのためのパッチピクセル埋込みおよびパッチ位置埋込みの和または連結であり得る。エンコーダニューラルネットワークは、各画像パッチの初期埋込みを処理して、パッチの最後の埋込みを生成するように構成され得る。
【0087】
システムは、任意の適切な方法で、画像パッチのためのパッチ位置埋込み、すなわち、そこから画像パッチが抽出された画像中の画像パッチの位置を表すものを生成することができる。たとえば、システムは、画像解像度によって、パッチのピクセル区間を正規化することによって、パッチのための相対的な行区間および列区間を生成することができる。システムは、行および列の正規化された区間を、(i)行位置符号化を記憶するテーブル、および(ii)列位置符号化を記憶するテーブルをインデックス付けする、インデックスの有限の語彙(finite vocabulary of indices)に量子化することができる。システムは、インデックス付けされた行位置符号化および列位置符号化を取り出し、行位置符号化および列位置符号化を加算(または場合によっては結合)して、パッチ位置埋込みを作り出すことができる。
【0088】
別の例として、エンコーダニューラルネットワークは、アテンションベースのニューラルネットワークアーキテクチャを有し得る。たとえば、エンコーダニューラルネットワークは、1つまたは複数のセルフアテンションニューラルネットワーク層を含み得る。エンコーダニューラルネットワークは、たとえば、セルフアテンションニューラルネットワーク層を使用して、(上記で説明されたような)画像パッチの初期埋込みを繰り返し更新して、各画像パッチのそれぞれの最後の埋込みを生成することができる。特定の例では、エンコーダニューラルネットワークは、たとえば、A. Dosovitskiyら、「An image is worth 16x16 words: transformers for image recognition at scale」、arXiv:2010.11929v2、2021を参照しながら説明されるような、ビジョントランスフォーマ(Vision Transformer)アーキテクチャを有し得る。
【0089】
エンコーダニューラルネットワークは、たとえば、損失関数を最適化するために、アクション選択ニューラルネットワーク108とともに一緒にトレーニングされ得る。たとえば、トレーニングエンジン112は、アクション選択ニューラルネットワーク108を通して、かつエンコーダニューラルネットワークへと、損失関数の勾配を逆伝播することができる。
【0090】
場合によっては、時間ステップのための観測は、複数の、構成要素である観測を含み得る。たとえば、時間ステップのための観測は、エージェントの複数のカメラセンサーによってキャプチャされたそれぞれの画像を含み得る。これらの事例では、観測をデータ要素のシーケンスとして表すことの一部として、システムは、それぞれの「観測レベル」位置埋込みを、シーケンス中の各データ要素と結合(たとえば、加算)することができる。データ要素のための観測レベル位置埋込みは、たとえば、データ要素によって表されている、構成要素である観測のインデックスを特徴づける。観測レベル位置埋込みは、たとえば、学習された、またはあらかじめ定義された埋込みであり得る。時間ステップのためのアクションデータ要素は、各アクションデータ要素について同じであり得る、アクション埋込みと結合され得る。
【0091】
場合によっては、システム100は、(1つまたは複数の時間ステップにおいて)エージェント120と環境118との対話によって達成されることになるターゲットリターンを表す追加の数値(「収益値」)を生成すること、および収益値を、現在の観測を表すデータ要素のシーケンスと結合することによって、「収益調整(return conditioning)」を実行することができる。たとえば、システム100は、収益値を、現在の観測116を表すデータ要素のシーケンスに連結することによって、収益調整を実行することができる。
【0092】
一般に、システム100は、エージェント120によって受け取られる収益を最大化するアクション102を選択することを目的とする。したがって、システム100は、収益値を、エージェントによってタスクのエキスパート実行によって達成されることになる収益を表す、あらかじめ定義された「エキスパート」収益値に設定することができる。システムは、エキスパート収益値を、たとえば、エージェントがエキスパート、たとえば、人間のエキスパートの制御下で1回または複数回、タスクを実行したときに達成された平均収益値として、計算することができる。収益調整を実行することによって、トレーニングエンジン112が、以下でより詳細に説明されるように、エージェントが様々な可能な収益(場合によっては、低収益を含む)を受け取るトレーニング例において、システム100を有効にトレーニングすることが可能になる。トレーニングエンジン112は、以下でより詳細に説明されるように、収益値をエキスパート収益値によって除算することによって、各タスクのための最適な収益値が同じあらかじめ定義された値、たとえば、値1であるように、トレーニング中に使用される収益値を正規化することができる。
【0093】
場合によっては、システム100が、タスクデモンストレーションを含むプロンプトを使用して、現在のタスク状態110を初期化する場合、プロンプトは、収益調整も同様に含み得る。たとえば、プロンプト内の各観測は、タスクデモンストレーション中に達成された収益を表す追加の値を含み得る。
【0094】
現在の観測116をデータ要素のシーケンスとして表すことの一部として、システム100は、現在の観測116を定義する数値の集まりにおける各数値を離散化することができる。数値を離散化することは、数値を、「離散化された」数値の有限のあらかじめ定義されたセット、たとえば、範囲[0,255]内の整数値からの対応する数値にマッピングすることを指すことがある。数値を離散化するために、システム100は、最初に変換関数(たとえば、μ法則変換関数)を数値に適用して、数値をあらかじめ定義された範囲(たとえば、範囲[-1,1])にマッピングすることができる。あらかじめ定義された範囲は、区間のセットへのあらかじめ定義された区分に関連付けられ得、これらの区間の各々は、離散化された数値のあらかじめ定義されたセットからの対応する離散化された数値に関連付けられ得る。変換関数を数値に適用することは、数値が区間のうちの1つに含まれることを引き起こすことになり、システム100は、数値を、区間に関連付けられた離散化された数値にマッピングすることによって、数値を離散化することができる。
【0095】
現在の観測116を使用して、現在のタスク状態110を更新した後、システム100は、現在のタスク状態110を処理して、現在の時間ステップにおいてエージェントによって実行されることになるアクション102を集合的に表す、1つまたは複数のデータ要素のシーケンスを自己回帰的に生成する。アクション102を表すデータ要素のシーケンス中の各データ要素は、本明細書で「アクションデータ要素」104と呼ばれ、すなわち、アクション102が、アクション選択ニューラルネットワーク108によって生成されたアクションデータ要素104のシーケンスによって定義されるようになる。
【0096】
システム100は、シーケンス中の最初の位置から開始して、順序正しく、現在のアクション102を定義するアクションデータ要素のシーケンス中の各位置におけるそれぞれのアクションデータ要素104を生成する。システム100は、アクション選択ニューラルネットワーク108のパラメータ値に従って、アクション選択ニューラルネットワーク108を使用して、現在のタスク状態110を処理して、可能なアクションデータ要素のセットにわたるスコア分布106を生成することによって、各アクションデータ要素104を生成する。可能なアクションデータ要素のセットは、データ要素の任意の適切なセット、たとえば、範囲[0,255]内の整数値、または設定された埋込みのあらかじめ定義されたセットであり得る。次いで、システム100は、可能なアクションデータ要素のセットにわたるスコア分布106を使用して、アクションデータ要素104を選択する。たとえば、システム100は、スコア分布106に従って、最高スコアを有するアクションデータ要素104を選択することができる。別の例として、システム100は、たとえば、ソフトマックス関数を使用して、スコア分布106を処理することによって生成され得る、可能なアクションデータ要素のセットにわたる確率分布に従って、可能なアクションデータ要素のセットから、アクションデータ要素をサンプリングすることができる。
【0097】
場合によっては、現在のアクション102を定義するアクションデータ要素のシーケンス中の1つまたは複数の位置について、その位置における有効なアクションデータ要素のセットは、可能なアクションデータ要素のセットの適切なサブセット(すなわち、すべてよりも少ない)であり得る。位置におけるアクションデータ要素は、その位置におけるアクションデータ要素を含むアクションが、エージェントによって実行され得る実現可能なアクションを表す場合、「有効」であると言われることがある。たとえば、位置におけるアクションデータ要素が、ロボットエージェントのジョイントに適用されることになるトルクを表し、ロボットエージェントが、ジョイントにM個の可能なトルクを適用することができ、可能なアクションデータ要素のセットが、N>M個のアクションデータ要素を含む場合、可能なアクションデータ要素のうちのM個が、その位置における有効なアクションデータ要素であるとして指定され得る。システムは、たとえば、その位置における可能なアクションデータ要素のセットにわたるスコア分布に従って、最高スコアを有する有効なアクションデータ要素を選択することによって、各位置において選択されたアクションデータ要素が有効なアクションデータ要素であることを保証することができる。
【0098】
各アクションデータ要素104を生成した後、システム100は、現在のアクション102を定義するアクションデータ要素104のシーケンス中の次のアクションデータ要素104を生成する前に、アクションデータ要素104を現在のタスク状態110に連結することによって、現在のタスク状態110を更新する。したがって、アクション選択ニューラルネットワーク108は、アクションデータ要素104のシーケンスを自己回帰的に生成し、すなわち、各位置におけるアクションデータ要素104が、各先行する位置について生成されたアクションデータ要素104を含む現在のタスク状態110を処理することによって、生成されるからである。アクション選択ニューラルネットワーク108を使用して、アクションデータ要素を自己回帰的に生成することによって、エージェントによって実行されることになるアクションを選択する一例が、
図3Aおよび
図3Bを参照しながら示される。
【0099】
アクションデータ要素104のシーケンスは、時間ステップにおいてエージェント120によって実行されることになるアクション102を定義する。たとえば、エージェントが機械的エージェントである場合、シーケンス中の各位置におけるアクションデータ要素104は、ロボットの対応するジョイントに適用されることになるトルクを定義することができる。別の例として、エージェントが自律型の車両である場合、ある位置におけるアクションデータ要素104は、車両によって実装されることになる加速度/減速度を定義することができ、別の位置におけるアクションデータ要素104は、車両によって実装されることになるステアリングを定義することができる。
【0100】
場合によっては、システム100のハイパーパラメータは、現在のタスク状態110の最大長、すなわち、現在のタスク状態110中に含まれ得るデータ要素の最大数を指定することができる。システム100が、新しい観測およびアクションを表すデータ要素を、現在のタスク状態の「終端」端部上に連結するとき、現在のタスク状態の長さが増加する。したがって、システムは、現在のタスク状態の長さが多くとも最大長のままであることを保証するために、必要に応じて、現在のタスク状態の「初期」端部からデータ要素を除去することができる。(現在のタスク状態の終端端部は、現在のタスク状態を表すデータ要素のシーケンス中の最後のデータ要素によって占有される位置を指し、現在のタスク状態の初期端部は、現在のタスク状態を表すデータ要素のシーケンス中の最初のデータ要素によって占有される位置を指す)。
【0101】
アクション選択ニューラルネットワーク108は、その説明された機能、すなわち、現在のタスク状態110を処理して、可能なアクションデータ要素のセットにわたるスコア分布を生成することを、アクション選択ニューラルネットワーク108が実行することを可能にする、任意の適切なニューラルネットワークアーキテクチャを有し得る。詳細には、アクション選択ニューラルネットワークは、任意の適切な数(たとえば、5層、10層、または100層)における、かつ任意の適切な構成において(たとえば、層の線形シーケンスとして)接続された、任意の適切なニューラルネットワーク層(たとえば、アテンション層、畳み込み層、全結合層など)を含み得る。
【0102】
アクション選択ニューラルネットワーク108の可能なアーキテクチャの数例が、次に説明される。これらの例の各々では、アクション選択ニューラルネットワークは、数値として表される、現在のタスク状態110を定義するデータ要素のシーケンス中の各データ要素を、埋込み空間内の対応する埋込みにマッピングするように構成される、埋込み層を含み得る。埋込み層は、変更なしで、埋込みとしてすでに表されている、現在のタスク状態110を定義するデータ要素のシーケンス中のデータ要素を維持することができる。すなわち、埋込み層は、たとえば、数値から埋込みへのあらかじめ定義されたマッピングに従って、現在のタスク状態110中に含まれた各数値を、対応する埋込みによって置き換えることによって、現在のタスク状態110を埋込みの集まりとして表すことができる。
【0103】
場合によっては、現在のタスク状態110における各位置について、埋込み層は、位置のための埋込みを、現在のタスク状態における位置を表す位置埋込みと結合(たとえば、加算または平均)することができる。そのような位置埋込みは、アクション選択ニューラルネットワークが、リカレンスまたは畳み込みに依拠することなしに、現在のタスク状態110におけるデータ要素の順序を十分に利用することを可能にすることができる。
【0104】
一例では、アクション選択ニューラルネットワーク108は、埋込み層を使用して、現在のタスク状態110を処理して、現在のタスク状態110を表す埋込みの集まりを生成することができる。次いで、アクション選択ニューラルネットワーク108は、1つまたは複数のセルフアテンション層(たとえば、クエリキーバリューアテンション(query-key-value attention)機構を使用する、セルフアテンション層)を含む、ニューラルネットワーク層のシーケンスを使用して、現在のタスク状態110を表す埋込みを処理して、更新された埋込みのセットを生成することができる。アクション選択ニューラルネットワーク108は、1つまたは複数の最後のニューラルネットワーク層を使用して、更新された埋込みを処理して、更新された埋込みを、可能なアクションデータ要素のセットにわたるスコア分布に投影することができる。特定の例では、アクション選択ニューラルネットワーク108は、トランスフォーマニューラルネットワーク(セルフアテンションニューラルネットワーク層の連続を有することによって特徴づけられるニューラルネットワーク)のアーキテクチャ、たとえば、A. Vaswaniら、「Attention is all you need」、arXiv:1706.03762v5、2017年12月6日を参照しながら説明されるような、トランスフォーマニューラルネットワークのデコーダを有し得る。トランスフォーマニューラルネットワークは、タスクの現在の状態を表すデータ要素のより長いシーケンスを処理することを容易にするために、メモリを含み得る。たとえば、トランスフォーマニューラルネットワークは、「Transformer-XL: Attentive Language Models Beyond a Fixed-Length Context」、Daiら、arXiv:1901.02860v3、2019年6月2日において説明されるような、トランスフォーマXL(Transformer-XL)アーキテクチャを有し得る。
【0105】
別の例では、アクション選択ニューラルネットワーク108は、埋込み層と、その後に続く、現在のタスク状態を表すデータ要素のシーケンス中の各データ要素を表すそれぞれの埋込みに別個に適用される、全結合層とを含み得る。全結合層によって生成された、更新された埋込みは、結合(たとえば、平均)され、次いで、最後の全結合ニューラルネットワーク層によって処理されて、可能なアクションデータ要素のセットにわたるスコア分布が生成され得る。
【0106】
別の例では、アクション選択ニューラルネットワーク108は、リカレントニューラルネットワーク(RNN)、たとえば、長短期記憶(LSTM)ニューラルネットワークであり得る。RNNは、データ要素を表す埋込みを処理して、RNNの隠れ状態(たとえば、セル状態)を更新すること、および場合によっては、更新された隠れ状態を処理して、可能なアクションデータ要素のセットにわたるスコア分布を生成することを行うように構成され得る。観測を受信した後、RNNは、観測を表すデータ要素のシーケンス中の各データ要素に対応するそれぞれの埋込みを1つずつ、シーケンス中の最初の位置から開始する順序で処理して、RNNの隠れ状態を繰り返し更新することができる。次いで、RNNは、観測に応答して実行されることになるアクションを定義するデータ要素のシーケンスを自己回帰的に生成することができる。詳細には、アクションデータ要素のシーケンス中の各位置について、RNNは、その現在の隠れ状態を処理して、その位置のためのアクションデータ要素を選択するために使用される、可能なアクションデータ要素のセットにわたるスコア分布を生成する。次いで、RNNは、次の位置のための可能なアクションデータ要素のセットにわたるスコア分布を生成する前に、その位置のために選択されたアクションデータ要素を表す埋込みを処理して、その隠れ状態を更新する。
【0107】
いくつかの実装形態では、外部環境から観測を受信するのではなく、アクション選択システム100は、環境から受信される観測をシミュレートすることができる。より詳細には、各時間ステップにおいて、アクション選択システム100は、その時間ステップにおいてエージェントによって実行される現在のアクションを表すデータ要素のシーケンスを、自己回帰的に生成し、次いで、次の時間ステップにおける観測を表すデータ要素のシーケンスを自己回帰的に生成することができる。
【0108】
アクション選択システム100は、観測を表すデータ要素のシーケンス中の最初の位置から開始して、各位置のためのそれぞれのデータ要素を連続的に生成することによって、次の時間ステップにおける観測を表すデータ要素のシーケンスを自己回帰的に生成することができる。詳細には、観測を表すデータ要素のシーケンス中の各位置について、システムは、アクション選択ニューラルネットワークを使用して、現在のタスク状態110を処理して、可能なデータ要素のセットにわたるスコア分布を生成することができる。システムは、スコア分布に従って、観測を表すデータ要素のシーケンス中の位置のためのデータ要素を選択することができる。たとえば、システムは、スコア分布の下で最高スコアをもつデータ要素を選択することができるか、またはシステムは、データ要素のセットにわたるスコア分布によって定義される、データ要素のセットにわたる確率分布に従って、データ要素をサンプリングすることができる。次いで、システムは、観測を表すデータ要素のシーケンス中の位置のための選択されたデータ要素を、現在のタスク状態110に連結することによって、現在のタスク状態110を更新することができる。システムは、終了基準が満たされるまで、たとえば、システムが、観測を集合的に定義するあらかじめ定義された数のデータ要素を生成するまで、観測を表すデータ要素のシーケンスを自己回帰的に生成し続けることができる。
【0109】
いくつかの実装形態では、アクション選択システム100は、アクションのみを生成することを、すなわち、観測を受信または生成することなしに、および詳細には、現在のタスク状態110中に観測を含めないことによって(アクション選択システム100に提供されたプロンプト中に含まれた任意の観測の例外があり得る)行うように構成され得る。たとえば、アクション選択システム100は、質問に対するテキスト応答を表すアクションのシーケンスを生成することによって(すなわち、いかなる介在する観測を生成または受信することもなしに)、(以下でより詳細に説明されるような)テキスト質問返答タスクを実行するように構成され得る。
【0110】
いくつかの実装形態では、アクション選択システム100は、観測のみを生成することを、すなわち、アクションを受信または生成することなしに、および詳細には、現在のタスク状態110中にアクションを含めないことによって(アクション選択システム100に提供されたプロンプト中に含まれた任意のアクションの例外があり得る)行うように構成され得る。たとえば、アクション選択システム100は、詳細には、ビデオフレームのシーケンスを生成することによって、ビデオ生成タスクを実行するように構成され得、そこで、各ビデオフレームがそれぞれの観測を表す。たとえば、アクション選択システム100は、ビデオのトピックを定義するプロンプト(たとえば、「車のタイヤを交換する方法についてのビデオを生成する」)を受信するように構成され得、それに応答して、アクション選択システム100は、トピックに関連するビデオフレームの対応するシーケンスを生成することができる。
【0111】
いくつかの実装形態では、アクション選択システム100は、各時間ステップにおいて、時間ステップのためのアクションを受信することと、データ要素のシーケンスとしてのアクションの表現を生成することと、アクションを表すデータ要素のシーケンスを現在のタスク状態110に連結することとを行うように構成され得る。次いで、アクション選択システム100は、(上記で説明されたような)アクション選択ニューラルネットワーク108を使用して、次の観測を表すデータ要素のシーケンスを自己回帰的に生成し、次いで、次の時間ステップに進むことができる。すなわち、アクション選択システム100は、外部ソースからアクションを受信することができ、すなわち、アクション選択ニューラルネットワーク108を使用して、アクションを生成するのではなく、アクション選択ニューラルネットワーク108を使用して、アクションを実行することから生じるようになる観測をシミュレートすることができる。場合によっては、アクションのうちの1つまたは複数は、ユーザによって、たとえば、アクション選択システム100によって利用可能にされたアプリケーションプログラミングインターフェース(API)を介して指定され得る。場合によっては、アクションのうちの1つまたは複数は、任意の適切な方法で、たとえば、外部ニューラルネットワークによってパラメータ化される、外部アクション選択ポリシーを使用して選択され得る。
【0112】
したがって、いくつかの実装形態では、アクション選択システム100は、外部ソース(たとえば、環境)から観測を受信しながら、アクションを生成することができるが、他の実装形態では、アクション選択システム100は、外部ソース(たとえば、ユーザ)からアクションを受信しながら、観測を生成することができる。外部ソースからアクションを受信しながら、観測を生成することによって、アクション選択システム100が、環境内のいくつかのアクションを実行する効果をシミュレートする観測のシーケンスを生成することが可能になり得る。
【0113】
トレーニングエンジン112は、トレーニング例のセットを含むトレーニングデータ114において、アクション選択ニューラルネットワーク108をトレーニングすることができる。各トレーニング例は、データ要素のシーケンス、たとえば、数値のシーケンス、埋込みのシーケンス、またはいくつかの位置における数値と他の位置における埋込みとを含むシーケンスとして表される。したがって、アクション選択ニューラルネットワーク108は、教師あり様式で、オフラインでトレーニングされ得る。代替的にまたは組合せで、アクション選択ニューラルネットワーク108は、オフラインまたはオンライン強化学習を使用して、部分的にまたは完全にトレーニングされ得る。
【0114】
データ要素のシーケンスとして表されたトレーニング例において、アクション選択ニューラルネットワーク108をトレーニングするために、トレーニングエンジン112は、トレーニング例中に含まれた1つまたは複数のデータ要素の各々のためのそれぞれの予測を生成することができる。トレーニング例における指定されたデータ要素のための予測を生成するために、トレーニングエンジン112は、トレーニング例における指定されたデータ要素に先行するデータ要素のサブシーケンス(すなわち、「現在のタスク状態」を集合的に表す)を処理して、可能なデータ要素のセットにわたるスコア分布を生成することができる。トレーニングエンジン112は、(i)可能なデータ要素のセットにわたるスコア分布と、(ii)トレーニング例における指定されたデータ要素との間の誤差、たとえば、クロスエントロピー誤差を測る、損失関数の勾配を決定することができる。トレーニングエンジン112は、たとえば、誤差逆伝播法を使用して、アクション選択ニューラルネットワークのパラメータ値に関して、損失関数の勾配を決定することができる。トレーニングエンジン112は、損失関数の勾配を使用して、任意の適切な勾配降下最適化アルゴリズム、たとえば、AdamまたはRMSpropを使用して、アクション選択ニューラルネットワークパラメータの現在の値を調整することができる。
【0115】
トレーニング例中に含まれた各データ要素は、アクションデータ要素、観測データ要素、またはプロンプトデータ要素であるとして指定され得る。アクションデータ要素は、(上記で説明されたような)アクションを表す1つまたは複数のデータ要素のシーケンス中のデータ要素を指す。観測データ要素は、観測を表す1つまたは複数のデータ要素のシーケンス中のデータ要素を指す。(場合によっては、トレーニングエンジン112が収益調整を実行する場合、観測のための観測データ要素のシーケンス中の観測データ要素のうちの1つは、以下でより詳細に説明されるように、収益を表すことができる)。プロンプトデータ要素は、プロンプトを表す1つまたは複数のデータ要素のシーケンス中のデータ要素を指す。
【0116】
いくつかの実装形態では、トレーニングエンジン112は、各トレーニング例中に含まれたアクションのみを予測するように、アクション選択ニューラルネットワークをトレーニングする。すなわち、トレーニングエンジン112は、(たとえば、他のデータ要素をマスキングすることによって)アクションデータ要素であるとして指定される各トレーニング例中のデータ要素のみを生成するように、アクション選択ニューラルネットワークをトレーニングする。
【0117】
他の実装形態では、トレーニングエンジン112は、各トレーニング例中に含まれたアクションと観測の両方を予測するように、アクション選択ニューラルネットワークをトレーニングする。すなわち、トレーニングエンジン112は、アクションデータ要素または観測データ要素のいずれかであるとして指定される各トレーニング例中のデータ要素を生成するように、アクション選択ニューラルネットワークをトレーニングする。
【0118】
一般に、アクション選択ニューラルネットワークは、アクション選択ニューラルネットワークが可能なアクションデータ要素のセットにわたるスコア分布を生成するのと同じ様式で、可能な観測データ要素のセットにわたるスコア分布を生成することができる。場合によっては(たとえば、可能な観測データ要素のセットが、可能なアクションデータ要素のセットとは異なる場合)、アクション選択ニューラルネットワークは、可能な観測データ要素のセットにわたるスコア分布を生成するように構成される、ある出力ヘッド(すなわち、サブネットワーク)と、可能なアクションデータ要素のセットにわたるスコア分布を生成するように構成される、別個の出力ヘッドとを含む。
【0119】
トレーニング例中に含まれた観測とアクションの両方を予測するように、アクション選択ニューラルネットワークをトレーニングすることによって、アクション選択ニューラルネットワークに環境力学のモデルを暗黙的に学習させ、それによって、アクション選択ニューラルネットワークが、タスクを実行するためのアクションをより有効に選択することを可能にすることができる。
【0120】
アクション選択ニューラルネットワークが、エージェントを制御するために実行されることになるアクションを選択するために使用されるとき、アクション選択ニューラルネットワークは、アクションデータ要素を自己回帰的に生成する。しかしながら、トレーニング中に、トレーニングエンジンは、アクション選択ニューラルネットワークを使用して、各トレーニング例中に含まれた各データ要素のための予測を並列に生成することができ、それによって、トレーニングの効率を著しく高めることができることが諒解されよう。
【0121】
場合によっては、トレーニングエンジンは、トレーニング中に、アクション、観測、またはその両方のための予測を自己回帰的に生成することができる。たとえば、トレーニング例におけるアクションを定義するアクションデータ要素のための予測を生成するために、トレーニングエンジンは、トレーニング例におけるアクションを定義するアクションデータ要素のシーケンス中の最初のアクションデータ要素より前の、データ要素のサブシーケンスを含む、現在のタスク状態を初期化することができる。次いで、トレーニングエンジンは、上記で説明されたように、現在のタスク状態を処理して、アクションを定義するアクションデータ要素のための予測を自己回帰的に生成することができる。
【0122】
一般に、任意の適切なソースからの、データ要素の任意のシーケンスが、アクション選択ニューラルネットワーク108をトレーニングするためのトレーニング例として使用され得る。したがって、トレーニングエンジン112は、たとえば、シミュレートされたデータと現実世界のデータの両方を含む、多種多様なソースからのトレーニング例において、アクション選択ニューラルネットワーク108をトレーニングすることができる。アクション選択ニューラルネットワークをトレーニングするためのトレーニング例を生成するための数個の例示的な技法が、次により詳細に説明される。
【0123】
一例では、トレーニングエンジン112は、時間ステップのシーケンスにわたるエージェントと環境との対話を表すトレーニング例を生成することができる。エージェントと環境との対話は、次の形式において表されてよく、
【0124】
【0125】
ただし、Nは、時間ステップの数であり、siは、時間ステップiにおける環境の状態であり、aiは、時間ステップiにおいてエージェントによって実行されるアクションであり、riは、時間ステップiにおいて受け取られる報酬である。一般に、各状態siおよび各アクションaiは、数値の順序付きの集まり、たとえば、数値のベクトル、行列、または他のテンソルとして表され得る。(アクションを定義する数値の順序付きの集まりにおける数値の数は、アクションの「次元数」と呼ばれることがある)。報酬の使用は随意である。報酬は、たとえば、エキスパートエージェントがタスクを実行することによって達成された収益の少なくともしきい値割合をもつものを選択するために、トレーニング例をフィルタ処理するために使用され得る。
【0126】
エージェントと環境との対話を表すトレーニング例を生成するために、トレーニングエンジン112は、各観測をデータ要素のシーケンス、たとえば、数値のシーケンスまたは埋込みのシーケンスとして表す。たとえば、トレーニングエンジン112は、たとえば、観測を定義する数値を、任意であるが固定の順序における数値のシーケンスに連結することによって、各観測を定義する数値のそれぞれの集まりを数値のシーケンスとして表すことができる。(観測を埋込みのシーケンスとして表すための例示的な技法は、上記で説明されている)。トレーニングエンジン112は、収益を決定することによって、たとえば、時間割引報酬和を計算すること、および次いで、収益を、各観測を表すデータ要素のシーケンスに連結することによって、収益調整を実行することができる。場合によっては、トレーニングエンジン112は、たとえば、エージェントによって実行されているタスクのためのエキスパート収益、たとえば、エージェントがエキスパート、たとえば、人間のエキスパートの制御下で1回または複数回、タスクを実行したときに達成された平均収益値によって、収益を除算することによって、収益を正規化することができる。トレーニングエンジン112はまた、各アクションをデータ要素のシーケンスとして表し、たとえば、トレーニングエンジン112は、アクションを表す数値の集まりを、数値のシーケンスに連結することによって、アクションを数値のシーケンスとして表すことができる。次いで、トレーニングエンジン112は、各時間ステップにおけるそれぞれの観測およびそれぞれのアクションを表す、データ要素のそれぞれのシーケンスを、データ要素の1つのシーケンスに連結する。トレーニング例を生成する一部として、トレーニングエンジン112は、場合によっては、観測、アクション、またはその両方を表す数値の集まりにおける数値を離散化することができる。
【0127】
場合によっては、トレーニングエンジン112は、データ要素のシーケンスとしてのトレーニング例のためのプロンプトの表現を生成し、プロンプトを、トレーニング例を表すデータ要素のシーケンスに連結することができる。
【0128】
収益調整を実行することによって、トレーニングエンジン112が、低収益を含む様々な可能な収益をエージェントが受け取るトレーニング例において、アクション選択ニューラルネットワーク108を有効にトレーニングすることが可能になる。トレーニング例に関連付けられた収益が低いことは、その間にエージェントがそのタスクの実行に失敗した、環境とのエージェント対話を、トレーニング例が表すことを示し得る。収益調整の不在下で、低収益に関連付けられたトレーニング例においてアクション選択ニューラルネットワーク108をトレーニングすることは、たとえば、そのトレーニング例によって表された無効なアクション選択ポリシーを強化することによって、アクション選択ニューラルネットワーク108の性能を低下させ得る。収益調整を実行することによって、アクション選択ニューラルネットワークが、有効および無効なアクション選択ポリシーを表すトレーニング例の間で区別することが可能になり、それによって、アクション選択ニューラルネットワーク108の性能を高めることができる。
【0129】
別の例では、トレーニングエンジン112は、自然言語におけるテキストのシーケンスを表す「言語モデリング」トレーニング例を生成することができる。トレーニングエンジン112は、テキストのシーケンスを、可能なトークン(たとえば、文字、nグラム、または単語)のあらかじめ定義されたセットからのトークンのシーケンスとして表し、次いで、各トークンを、対応するデータ要素、たとえば、可能なトークンのセットにおけるトークンをインデックス付けする整数値識別子、または埋込みによって置き換えることができる。次いで、トレーニング例は、トークンのシーケンスを識別するデータ要素のシーケンスによって表され得、そこで、各トークンが、アクションデータ要素であるとして指定される(すなわち、この事例では、トレーニング例がいかなる観測データ要素も含まないようになる)。
【0130】
別の例では、トレーニングエンジン112は、(i)画像、および(ii)画像のコンテンツを説明するテキストのシーケンスを定義する画像キャプションを表す、「画像キャプショニング」トレーニング例を生成することができる。たとえば、トレーニングエンジン112は、画像および画像キャプションを表すデータ要素のそれぞれのシーケンスを連結することによって、トレーニング例を生成することができる。画像を表すデータ要素のシーケンスは、観測データ要素のシーケンスとして指定され得、画像キャプションを表すデータ要素のシーケンスは、アクションデータ要素のシーケンスとして指定され得る。
【0131】
別の例では、トレーニングエンジン112は、(i)テキスト質問、および(ii)テキスト質問に応答するテキスト返答を表す、「テキスト質問返答」トレーニング例を生成することができる。たとえば、トレーニングエンジン112は、テキスト質問およびテキスト返答を表すデータ要素のそれぞれのシーケンスを連結することによって、トレーニング例を生成することができる。テキスト質問を表すデータ要素のシーケンスは、観測データ要素のシーケンスとして指定され得、テキスト返答を表すデータ要素のシーケンスは、アクションデータ要素のシーケンスとして指定され得る。
【0132】
別の例では、トレーニングエンジン112は、(i)画像、および画像に関連するテキスト質問、ならびに(ii)テキスト質問に応答するテキスト返答を表す、「視覚質問返答」トレーニング例を生成することができる。たとえば、トレーニングエンジン112は、画像、テキスト質問、およびテキスト返答を表すデータ要素のそれぞれのシーケンスを連結することによって、トレーニング例を生成することができる。画像およびテキスト質問を表すデータ要素のシーケンスは、観測データ要素のシーケンスとして指定され得、テキスト返答を表すデータ要素のシーケンスは、アクションデータ要素のシーケンスとして指定され得る。
【0133】
別の例では、トレーニングエンジン112は、(i)画像、および(ii)カテゴリーのあらかじめ定義されたセットからのカテゴリーへの画像の分類を表す、「画像分類」トレーニング例を生成することができる。たとえば、各カテゴリーは、オブジェクトのそれぞれのタイプを表すことができ、画像は、カテゴリーによって表されたタイプのオブジェクトを示す場合、そのカテゴリー中に含まれるとして分類され得、各カテゴリーは、それぞれの数値によって表され得る。トレーニングエンジン112は、(i)画像を表すデータ要素のシーケンス、および(ii)画像の分類を表す数値を連結することによって、トレーニング例を生成することができる。画像を表すデータ要素のシーケンスは、観測データ要素のシーケンスとして指定され得、画像の分類を表す数値は、アクションデータ要素として指定され得る。
【0134】
トレーニングエンジン112は、複数の異なるドメインの多様なセットからのトレーニング例において、アクション選択ニューラルネットワーク108をトレーニングすることができる。詳細には、トレーニングエンジン112は、複数の異なるタスクを実行するための、複数の異なるエージェントと複数の異なる環境との対話を表すトレーニング例において、アクション選択ニューラルネットワークをトレーニングすることができる。(可能なエージェント、環境、およびタスクの例が、上記で説明されている)。複数のドメインからのトレーニング例において、アクション選択ニューラルネットワーク108をトレーニングすることによって、エージェント制御の柔軟かつ転移可能な理解を、アクション選択ニューラルネットワークのパラメータにおいて符号化することができ、それによって、アクション選択ニューラルネットワークが新しいドメインに迅速かつ有効に一般化することを可能にすることができる。詳細には、複数のドメインにおいてアクション選択ニューラルネットワーク108をトレーニングすることによって、アクション選択ニューラルネットワーク108が、新しいドメインからの少数のトレーニング例においてトレーニングされた後、新しいドメインにおけるタスクにおいて許容できる性能を達成することを可能にすることができる。場合によっては、複数のドメインにおけるトレーニングによって、アクション選択ニューラルネットワークが、新しいドメインからのいかなるトレーニング例においてもトレーニングされなかった場合でも、アクション選択ニューラルネットワーク108が、新しいドメインにおけるタスクにおいて許容できる性能を達成することを可能にすることができる。
【0135】
環境とのエージェント対話を表すもの以外の追加のトレーニング例、たとえば、上記で説明された言語モデリング、画像キャプショニング、テキスト質問返答、視覚質問返答、および画像分類トレーニング例において、アクション選択ニューラルネットワーク108をトレーニングすることによって、トレーニングを加速し、アクション選択ニューラルネットワークの性能を向上させることができる。たとえば、言語モデリングトレーニング例において、アクション選択ニューラルネットワークをトレーニングすることによって、制御タスクのために提供された自然言語プロンプトの意味を暗黙的に推論するための、アクション選択ニューラルネットワークの能力を向上させることができる。これによって、たとえば、そのためにシステムが特にトレーニングされなかった環境内のタスクへの一般化も容易にすることができる。
【0136】
一般に、異なるドメインからのトレーニング例は、異なる長さのデータ要素のシーケンスを使用して、アクションおよび観測を表すことができる。たとえば、
図2に示されているように、「ドメイン#1」202からのトレーニング例は、4つのデータ要素のシーケンスを使用して、観測を表し、2つのデータ要素のシーケンスを使用して、アクションを表し、「ドメイン#2」204からのトレーニング例は、3つのデータ要素のシーケンスを使用して、観測を表し、3つのデータ要素のシーケンスを使用して、アクションを表す。これは、たとえば、固定サイズの観測を処理して、固定サイズのアクションを生成するように構成された、ニューラルネットワークアーキテクチャを有する、従来のアクション選択ニューラルネットワークについての問題を提示し得る。対照的に、アクション選択ニューラルネットワーク108の動作は、観測およびアクションのドメイン固有の次元数にかかわらず、いかなるドメインからのトレーニング例も処理するように柔軟に適応することができる。たとえば、特定のドメインに適した次元数を有するアクションを生成するために、アクション選択ニューラルネットワーク108は、生成されたアクションが適切な次元数を有するまで、アクションデータ要素を自己回帰的にサンプリングし続けることができる。
【0137】
図3Aおよび
図3Bは、タスクを遂行するために環境と対話するエージェントによって実行されることになるアクションを選択するために、アクション選択システム100によって実行される動作を示す。
【0138】
図3Aは、第1の時間ステップ、すなわち、T=0において、エージェントによって実行されることになるアクションを表すアクションデータ要素のシーケンスを自己回帰的に生成するために実行される動作を示す。システムは、この例では、プロンプト302を使用して、現在のタスク状態304を初期化する。データ要素のシーケンスとして表される、プロンプト302は、エージェントによって実行されることになるタスクに関連する任意の適切なデータ、たとえば、タスクのデモンストレーション、またはタスクに関連する自然言語命令を含み得る。
【0139】
システム100は、たとえば、環境の画像の形態で、環境の現在の状態を表す、環境からの観測を受信する。システムは、たとえば、観測を表す数値の集まりにおける数値を、任意であるが固定の順序におけるシーケンスに連結することによって、観測を観測データ要素310のシーケンスとして表す。
【0140】
次いで、システム100は、観測データ要素を現在のタスク状態304に連結する。
【0141】
システム100は、アクション選択ニューラルネットワーク108を使用して、現在のタスク状態304を処理して、可能なアクションデータ要素のセットにわたる確率分布を生成し、次いで、可能なアクションデータ要素のセットにわたる確率分布に従って、アクションデータ要素312を選択する。
【0142】
システム100は、アクションデータ要素312を現在のタスク状態306に連結し、アクション選択ニューラルネットワーク108を使用して、更新されたタスク状態306を処理して、別のアクションデータ要素314を生成する。より詳細には、システムは、更新されたタスク状態306を処理して、可能なアクションデータ要素のセットにわたる確率分布を生成し、次いで、可能なアクションデータ要素のセットにわたる確率分布に従って、アクションデータ要素314を選択する。
【0143】
アクションデータ要素の生成されたシーケンス(すなわち、アクションデータ要素312および314を含む)は、第1の時間ステップにおいてエージェントによって実行されることになるアクション316を定義する。
【0144】
図3Bは、第2の時間ステップ、すなわち、T=1において実行されることになるアクションを表すアクションデータ要素のシーケンスを自己回帰的に生成するために実行される動作を示す。
【0145】
エージェントは、第1の時間ステップ(T=0)において選択されたアクション316を実行し、環境は、エージェントによって実行されたアクションの結果として、新しい状態に遷移する。システムは、第2の時間ステップにおける環境の新しい状態を特徴づける観測を受信し、観測を観測データ要素318のシーケンスとして表し、観測データ要素を現在のタスク状態326に連結する。したがって、現在のタスク状態326は、プロンプト302と、第1の時間ステップにおける観測を表す観測データ要素のシーケンスと、第1の時間ステップにおいてエージェントによって実行されるアクションを表すアクションデータ要素のシーケンスと、第2の時間ステップにおける観測を表す観測データ要素318のシーケンスとを含む。
【0146】
システム100は、アクション選択ニューラルネットワークを使用して、現在のタスク状態326を処理して、可能なアクションデータ要素のセットにわたるスコア分布を生成し、可能なアクションデータ要素のセットにわたるスコア分布に従って、アクションデータ要素320を選択する。
【0147】
次いで、システムは、アクションデータ要素320を現在のタスク状態328に連結する。
【0148】
システムは、アクション選択ニューラルネットワーク108を使用して、更新されたタスク状態328を処理して、可能なアクションデータ要素のセットにわたる別のスコア分布を生成し、可能なアクションデータ要素のセットにわたるスコア分布に従って、アクションデータ要素322を選択する。システムは、アクションデータ要素322を現在のタスク状態330に連結し、次の時間ステップにおいてエージェントによって実行されることになるアクションを選択する際に使用するために、現在のタスク状態330を提供する。
【0149】
アクションデータ要素320および322の生成されたシーケンスは、第2の時間ステップにおいてエージェントによって実行されることになるアクション324を定義する。
【0150】
図4は、現在の時間ステップにおいて環境と対話するために、エージェントによって実行されることになるアクションを選択するための、例示的なプロセス400のフロー図である。便宜上、プロセス400は、1つまたは複数のロケーションに配置された1つまたは複数のコンピュータのシステムによって実行されるものとして説明される。たとえば、本明細書に従って適切にプログラムされたアクション選択システム、たとえば、
図1のアクション選択システム100は、プロセス400を実行することができる。
【0151】
システムは、データ要素のシーケンスとしての、現在の時間ステップの時点の、環境内でエージェントによって実行されているタスクの状態の現在の表現を生成する(402)。データ要素のシーケンスは、たとえば、数値のシーケンス、埋込みのシーケンス、またはいくつかの位置における数値と他の位置における埋込みとを含むシーケンスであり得る。
【0152】
システムは、現在の時間ステップにおいてエージェントによって実行されることになる現在のアクションを表すデータ要素のシーケンスを、自己回帰的に生成する。詳細には、システムは、現在のアクションを表すデータ要素のシーケンス中の最初の位置から開始して、各位置について、ステップ404~410を実行する。便宜上、ステップ404~410は、現在のアクションを表すデータ要素のシーケンス中の現在の位置について実行されるものとして説明される。
【0153】
システムは、アクション選択ニューラルネットワークを使用して、タスクの状態の現在の表現を処理して、可能なデータ要素のセットにわたるスコア分布を生成する(404)。
【0154】
システムは、スコア分布に従って、現在のアクションを表すデータ要素のシーケンス中の現在の位置のためのデータ要素を選択する(406)。
【0155】
システムは、位置のための選択されたデータ要素を、タスクの状態の現在の表現に連結することによって、タスクの状態の現在の表現を更新する(408)。
【0156】
システムは、現在のアクションが完了するか否かを決定する(410)。現在の位置が、現在のアクションを表すデータ要素のシーケンス中の最後の位置である場合、システムは、現在のアクションが完了すると決定し、ステップ412に進む。そうでない場合、システムは、現在のアクションが完了していないと決定し、ステップ404にループバックする。
【0157】
現在のアクションを表すデータ要素のシーケンスを自己回帰的に生成した後、システムは、エージェントに現在の時間ステップにおいて現在のアクションを実行させる(412)。
【0158】
本明細書は、システムおよびコンピュータプログラム構成要素に関連して「構成される」という用語を使用する。1つまたは複数のコンピュータのシステムが、特定の動作またはアクションを実行するように構成されることは、システムが、動作中に動作またはアクションをシステムに実行させるソフトウェア、ファームウェア、ハードウェア、またはそれらの組合せをインストールしていることを意味する。1つまたは複数のコンピュータプログラムが、特定の動作またはアクションを実行するように構成されることは、1つまたは複数のプログラムが、データ処理装置によって実行されると、動作またはアクションを装置に実行させる命令を含むことを意味する。
【0159】
本明細書で説明される主題および機能的動作の実施形態は、本明細書で開示される構造およびそれらの構造的等価物を含む、デジタル電子回路において、有形に実施されたコンピュータソフトウェアもしくはファームウェアにおいて、コンピュータハードウェアにおいて、またはそれらのうちの1つもしくは複数の組合せにおいて実装され得る。本明細書で説明される主題の実施形態は、1つまたは複数のコンピュータプログラム、すなわち、データ処理装置による実行のために、またはデータ処理装置の動作を制御するために、有形の非一時的記憶媒体上に符号化されたコンピュータプログラム命令の1つまたは複数のモジュールとして実装され得る。コンピュータ記憶媒体は、機械可読記憶デバイス、機械可読記憶基板、ランダムもしくは順次アクセスメモリデバイス、またはそれらのうちの1つもしくは複数の組合せであり得る。代替または追加として、プログラム命令は、データ処理装置による実行のために、好適な受信機装置に送信するための情報を符号化するために生成される、人工的に生成された伝搬信号、たとえば、機械により生成された電気信号、光信号、または電磁信号上で符号化され得る。
【0160】
「データ処理装置」という用語は、データ処理ハードウェアを指し、例として、プログラマブルプロセッサ、コンピュータ、または複数のプロセッサもしくはコンピュータを含む、データを処理するためのすべての種類の装置、デバイス、および機械を包含する。装置はまた、専用論理回路、たとえば、FPGA(フィールドプログラマブルゲートアレイ)またはASIC(特定用途向け集積回路)であり得るか、またはそれをさらに含み得る。装置は、場合によっては、ハードウェアに加えて、コンピュータプログラムのための実行環境を作成するコード、たとえば、プロセッサファームウェア、プロトコルスタック、データベース管理システム、オペレーティングシステム、またはそれらのうちの1つもしくは複数の組合せを構成するコードを含み得る。
【0161】
プログラム、ソフトウェア、ソフトウェアアプリケーション、アプリ、モジュール、ソフトウェアモジュール、スクリプト、またはコードと呼ばれることもあるか、またはそのように説明されることもあるコンピュータプログラムは、コンパイラ型言語もしくはインタープリタ型言語、または宣言型言語もしくは手続き型言語を含む、任意の形式のプログラミング言語において記述され得、スタンドアロンプログラムとして、またはモジュール、構成要素、サブルーチン、もしくはコンピューティング環境において使用するのに好適な他のユニットとして含む、任意の形態において展開され得る。プログラムは、ファイルシステムにおけるファイルに対応し得るが、そうである必要はない。プログラムは、他のプログラムもしくはデータ、たとえば、マークアップ言語文書中に記憶された1つもしくは複数のスクリプトを保持するファイルの一部分において、問題のプログラム専用の単一のファイルにおいて、または、複数の協調されたファイル、たとえば、1つもしくは複数のモジュール、サブプログラム、もしくはコードの部分を記憶するファイルにおいて記憶され得る。コンピュータプログラムは、1つのコンピュータ上で、または1つのサイトに位置するか、もしくは複数のサイトにわたって分散され、データ通信ネットワークによって相互接続される、複数のコンピュータ上で実行されるように展開され得る。
【0162】
本明細書では、「エンジン」という用語は、1つまたは複数の特定の機能を実行するようにプログラムされるソフトウェアベースのシステム、サブシステム、またはプロセスを指すために広く使用される。一般に、エンジンは、1つまたは複数のロケーションにおける1つまたは複数のコンピュータ上にインストールされた、1つまたは複数のソフトウェアモジュールまたは構成要素として実装されることになる。場合によっては、1つまたは複数のコンピュータが特定のエンジン専用となり、他の場合には、複数のエンジンが同じ1つまたは複数のコンピュータ上でインストールされ、実行中であり得る。
【0163】
本明細書で説明されるプロセスおよび論理フローは、入力データにおいて動作すること、および出力を生成することによって、機能を実行するために、1つまたは複数のコンピュータプログラムを実行する1つまたは複数のプログラマブルコンピュータによって実行され得る。プロセスおよび論理フローは、専用論理回路、たとえば、FPGAもしくはASICによって、または専用論理回路と1つもしくは複数のプログラムされたコンピュータとの組合せによっても実行され得る。
【0164】
コンピュータプログラムの実行に好適なコンピュータは、汎用もしくは専用のマイクロプロセッサ、またはその両方、あるいは任意の他の種類の中央処理ユニットに基づき得る。一般に、中央処理ユニットは、読取り専用メモリもしくはランダムアクセスメモリ、またはその両方から、命令およびデータを受信することになる。コンピュータの本質的な要素は、命令を実施または実行するための中央処理ユニット、ならびに命令およびデータを記憶するための1つまたは複数のメモリデバイスである。中央処理ユニットおよびメモリは、専用論理回路によって補足されるか、または専用論理回路中に組み込まれ得る。一般に、コンピュータはまた、データを記憶するための1つまたは複数の大容量記憶デバイス、たとえば、磁気ディスク、光磁気ディスク、または光ディスクを含むか、あるいはそれからデータを受信するため、またはそれにデータを転送するため、またはその両方のために動作可能に結合されることになる。ただし、コンピュータは、そのようなデバイスを有する必要はない。その上、コンピュータは、別のデバイス、たとえば、ほんのいくつかの例を挙げれば、モバイル電話、携帯情報端末(PDA)、モバイルオーディオもしくはビデオプレーヤ、ゲームコンソール、全地球測位システム(GPS)受信機、またはポータブル記憶デバイス、たとえば、ユニバーサルシリアルバス(USB)フラッシュドライブ中に埋め込まれ得る。
【0165】
コンピュータプログラム命令およびデータを記憶するのに好適なコンピュータ可読媒体は、例として、半導体メモリデバイス、たとえば、EPROM、EEPROM、およびフラッシュメモリデバイス、磁気ディスク、たとえば、内蔵ハードディスクまたはリムーバブルディスク、光磁気ディスク、ならびにCD-ROMおよびDVD-ROMディスクを含む、すべての形態の不揮発性メモリ、媒体、およびメモリデバイスを含む。
【0166】
ユーザとの対話を提供するために、本明細書で説明される主題の実施形態は、情報をユーザに表示するためのディスプレイデバイス、たとえば、CRT(陰極線管)またはLCD(液晶ディスプレイ)モニタと、それによってユーザがコンピュータに入力を与えることができるキーボードおよびポインティングデバイス、たとえば、マウスまたはトラックボールとを有する、コンピュータ上で実装され得る。他の種類のデバイスが、ユーザとの対話を提供するために同様に使用されてもよく、たとえば、ユーザに与えられるフィードバックは、任意の形態の感覚フィードバック、たとえば、視覚フィードバック、聴覚フィードバック、または触覚フィードバックであってよく、ユーザからの入力は、音響入力、音声入力、または触覚入力を含む、任意の形態で受信され得る。追加として、コンピュータは、ユーザによって使用されるデバイスに文書を送り、そのデバイスから文書を受信することによって、たとえば、ユーザのデバイス上のウェブブラウザから受信された要求に応答して、ウェブブラウザにウェブページを送ることによって、ユーザと対話することができる。また、コンピュータは、テキストメッセージまたは他の形態のメッセージを、パーソナルデバイス、たとえば、メッセージングアプリケーションを実行しているスマートフォンに送り、引き換えにユーザから応答メッセージを受信することによって、ユーザと対話することができる。
【0167】
機械学習モデルを実装するためのデータ処理装置はまた、たとえば、機械学習のトレーニングまたは製作、すなわち、推論、ワークロードの共通部分および計算集約的部分を処理するための専用ハードウェアアクセラレータユニットを含み得る。
【0168】
機械学習モデルは、機械学習フレームワーク、たとえば、TensorFlowフレームワークを使用して実装および展開され得る。
【0169】
本明細書で説明される主題の実施形態は、バックエンド構成要素を、たとえば、データサーバとして含むか、あるいは、ミドルウェア構成要素、たとえば、アプリケーションサーバを含むか、あるいは、フロントエンド構成要素、たとえば、それを通してユーザが本明細書で説明される主題の実装形態と対話することができる、グラフィカルユーザインターフェース、ウェブブラウザ、もしくはアプリを有するクライアントコンピュータ、または、1つもしくは複数のそのようなバックエンド構成要素、ミドルウェア構成要素、もしくはフロントエンド構成要素の任意の組合せを含む、コンピューティングシステムにおいて実装され得る。システムの構成要素は、任意の形態または任意の媒体のデジタルデータ通信、たとえば、通信ネットワークによって相互接続され得る。通信ネットワークの例には、ローカルエリアネットワーク(LAN)、およびワイドエリアネットワーク(WAN)、たとえば、インターネットが含まれる。
【0170】
コンピューティングシステムは、クライアントおよびサーバを含み得る。クライアントおよびサーバは、一般に互いからリモートにあり、典型的には、通信ネットワークを通して対話する。クライアントおよびサーバの関係は、それぞれのコンピュータ上で実行しており、互いとクライアントサーバ関係を有する、コンピュータプログラムによって生じる。いくつかの実施形態では、サーバは、たとえば、クライアントとして作用するデバイスと対話するユーザにデータを表示し、ユーザからユーザ入力を受信するために、データ、たとえば、HTMLページをユーザデバイスに送信する。ユーザデバイスにおいて生成されたデータ、たとえば、ユーザ対話の結果は、デバイスからサーバにおいて受信され得る。
【0171】
本明細書は、多数の特定の実装詳細を含むが、これらは、いずれかの発明の範囲の限定、または請求され得るものの範囲の限定として解釈されるべきではなく、むしろ、特定の発明の特定の実施形態に固有であり得る特徴の説明として解釈されるべきである。別個の実施形態との関連で本明細書で説明されるいくつかの特徴はまた、単一の実施形態において組み合わせて実装され得る。逆に、単一の実施形態との関連で説明される様々な特徴もまた、複数の実施形態において別個に、または任意の好適な部分組合せにおいて実装され得る。その上、特徴は、いくつかの組合せにおいて作用するとして上記で説明される場合があり、最初にそのようなものとして請求される場合さえあるが、請求される組合せからの1つまたは複数の特徴は、場合によっては、その組合せから削除可能であり、請求される組合せは、部分組合せ、または部分組合せの変形形態を対象とする場合がある。
【0172】
同様に、動作は、特定の順序で図面において図示され、特許請求の範囲において記載されるが、これは、そのような動作が、図示された特定の順序で、もしくは順番に実行されること、または、望ましい結果を達成するために、すべての図示された動作が実行されることを必要とするものとして理解されるべきではない。いくつかの状況では、マルチタスキングおよび並列処理が有利であり得る。その上、上記で説明された実施形態における様々なシステムモジュールおよび構成要素の分離は、すべての実施形態においてそのような分離を必要とするものとして理解されるべきではなく、説明されたプログラム構成要素およびシステムは、一般に単一のソフトウェア製品にともに統合され得るか、または複数のソフトウェア製品にパッケージ化され得ることを理解されたい。
【0173】
主題の特定の実施形態が説明された。他の実施形態は、以下の特許請求の範囲内である。たとえば、特許請求の範囲に記載されているアクションは、異なる順序で実行され、なお、望ましい結果を達成することが可能である。一例として、添付の図面に図示されたプロセスは、望ましい結果を達成するために、必ずしも図示された特定の順序、または順番を必要とするとは限らない。場合によっては、マルチタスキングおよび並列処理が有利であり得る。
【符号の説明】
【0174】
100 アクション選択システム、システム
102 アクション、現在のアクション
104、312、320、322 アクションデータ要素
106 スコア分布
108 アクション選択ニューラルネットワーク
110、304、326、330 現在のタスク状態
112 トレーニングエンジン
114 トレーニングデータ
116 観測、現在の観測
118 環境
120 エージェント、ロボットエージェント
302 プロンプト
306、328 現在のタスク状態、更新されたタスク状態
310、318 観測データ要素
314 別のアクションデータ要素、アクションデータ要素
316、324 アクション
【手続補正書】
【提出日】2024-04-04
【手続補正1】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
アクション選択ニューラルネットワークを使用して、環境と対話するために、エージェントによって実行されることになるアクションを選択するための、1つまたは複数のコンピュータによって実行される方法であって、
時間ステップのシーケンス中の各時間ステップにおいて、
データ要素のシーケンスとしての、現在の時間ステップの時点の、前記環境内で前記エージェントによって実行されているタスクの状態の現在の表現を生成するステップと、
前記現在の時間ステップにおいて前記エージェントによって実行されることになる現在のアクションを表すデータ要素のシーケンスを、自己回帰的に生成するステップであって、
前記現在のアクションを表す前記データ要素のシーケンス中の最初の位置から開始して、各位置について、
前記アクション選択ニューラルネットワークを使用して、前記タスクの前記状態の前記現在の表現を処理して、可能なデータ要素のセットにわたるスコア分布を生成するステップと、
前記スコア分布に従って、前記現在のアクションを表す前記データ要素のシーケンス中の前記位置のためのデータ要素を選択するステップと、
前記位置のための前記選択されたデータ要素を、前記タスクの前記状態の前記現在の表現に連結することによって、前記タスクの前記状態の前記現在の表現を更新するステップと
を含む、ステップと、
前記現在のアクションを表す前記データ要素のシーケンスを自己回帰的に生成した後、前記エージェントに前記現在の時間ステップにおいて前記現在のアクションを実行させるステップと
を含む、方法。
【請求項2】
前記時間ステップのシーケンス中の各時間ステップについて、前記現在の時間ステップの時点の前記タスクの前記状態の前記現在の表現を生成するステップが、
前記現在の時間ステップにおける前記環境の状態を特徴づける現在の観測を受信するステップと、
データ要素のシーケンスとしての前記現在の観測の表現を生成するステップと、
前記現在の時間ステップの時点の前記タスクの前記状態の前記現在の表現中に、データ要素のシーケンスとしての前記現在の観測の前記表現を含めるステップと
を含む、請求項1に記載の方法。
【請求項3】
前記現在の観測が、数値の集まりによって定義され、
データ要素のシーケンスとしての前記現在の観測の前記表現を生成するステップが、
前記現在の観測を定義する前記数値の集まりにおける各数値を、あらかじめ定義された順序における数値のシーケンスに連結するステップを含む、請求項2に記載の方法。
【請求項4】
データ要素のシーケンスとしての前記現在の観測の前記表現を生成するステップが、
前記現在の観測を定義する前記数値の集まりにおける各数値を離散化するステップをさらに含む、請求項3に記載の方法。
【請求項5】
前記現在の時間ステップにおける前記環境の前記現在の状態を特徴づける前記現在の観測が、ピクセルのアレイによって定義された画像を備える、請求項
2に記載の方法。
【請求項6】
データ要素のシーケンスとしての前記現在の観測の前記表現を生成するステップが、
前記エージェントと前記環境との対話によって達成されることになるターゲットリターンを、データ要素のシーケンスとしての前記現在の観測の前記表現と結合するステップであって、前記ターゲットリターンが、前記エージェントと前記環境との前記対話の結果として達成されることになる報酬の累積測度を定義する、ステップを含む、請求項
2に記載の方法。
【請求項7】
前記時間ステップのシーケンス中の第1の時間ステップ後の各時間ステップについて、前記現在の時間ステップの時点の前記タスクの前記状態の前記現在の表現中に、データ要素のシーケンスとしての前記現在の観測の前記表現を含めるステップが、
データ要素のシーケンスとしての前の時間ステップの時点の前記タスクの前記状態の表現を受信するステップと、
データ要素のシーケンスとしての前記現在の観測の前記表現を、データ要素のシーケンスとしての前記前の時間ステップの時点の前記タスクの前記状態の前記表現に連結して、前記現在の時間ステップの時点の前記タスクの前記状態の前記現在の表現を生成するステップと
を含む、請求項
2に記載の方法。
【請求項8】
前記前の時間ステップの時点の前記タスクの前記状態の前記表現が、前記現在の時間ステップに先行する各時間ステップについて、(i)前記時間ステップにおける前記環境の状態を特徴づけるそれぞれの観測、および(ii)前記時間ステップにおいて前記エージェントによって実行されるそれぞれのアクションを表す、請求項7に記載の方法。
【請求項9】
前記時間ステップのシーケンス中の第1の時間ステップにおいて、前記現在の時間ステップの時点の前記タスクの前記状態の前記現在の表現中に、データ要素のシーケンスとしての前記現在の観測の前記表現を含めるステップが、
前記環境内で前記エージェントによって実行されることになる前記タスクを特徴づけるデータを備える、プロンプトを受信するステップと、
データ要素のシーケンスとしての前記プロンプトの表現を生成するステップと、
データ要素のシーケンスとしての前記現在の観測の前記表現を、データ要素のシーケンスとしての前記プロンプトの前記表現に連結して、前記現在の時間ステップの時点の前記タスクの前記状態の前記現在の表現を生成するステップと
を含む、請求項
2に記載の方法。
【請求項10】
前記プロンプトが、前記タスクのデモンストレーション、前記環境の目的状態を特徴づける目的観測、または前記タスクに関係する命令を与える自然言語におけるテキストのシーケンスのうちの1つまたは複数を備える、請求項9に記載の方法。
【請求項11】
前記アクション選択ニューラルネットワークが、トレーニング例のセットにおいてトレーニングされたものであり、
各トレーニング例について、
前記トレーニング例が、データ要素のシーケンスとして表され、
前記トレーニング例を表す前記データ要素のシーケンス中の前記データ要素のうちの少なくとも1つが、アクションデータ要素として指定され、
前記トレーニング例における前記アクション選択ニューラルネットワークのトレーニングが、前記トレーニング例中に含まれた前記アクションデータ要素を生成するように、前記アクション選択ニューラルネットワークをトレーニングするステップを含む、請求項
1に記載の方法。
【請求項12】
前記トレーニング例のセットが、複数の異なる制御ドメインからのそれぞれのトレーニング例を含み、
各制御ドメインが、(i)対応するエージェント、(ii)対応する環境、および(iii)対応するタスクに関連付けられ、
各制御ドメインからの各トレーニング例が、前記対応するタスクを遂行するためのアクションを実行することによって、前記対応するエージェントと前記対応する環境との対話を特徴づける、請求項11に記載の方法。
【請求項13】
前記複数の異なる制御ドメインが、前記対応する環境の観測が第1の次元数を有する、第1の制御ドメインと、前記対応する環境の観測が第2の異なる次元数を有する、第2の制御ドメインとを含む、請求項12に記載の方法。
【請求項14】
前記複数の異なる制御ドメインが、前記対応するエージェントによって実行されるアクションが第1の次元数を有する、第1の制御ドメインと、前記対応するエージェントによって実行されるアクションが第2の異なる次元数を有する、第2の制御ドメインとを含む、請求項
12に記載の方法。
【請求項15】
前記トレーニング例のセットが、複数の言語モデリングトレーニング例を含み、
各言語モデリングトレーニング例が、自然言語におけるテキストのシーケンスを表す、請求項
11に記載の方法。
【請求項16】
前記アクション選択ニューラルネットワークが、複数のセルフアテンションニューラルネットワーク層を備える、請求項
1に記載の方法。
【請求項17】
前記現在のアクションを表す前記データ要素のシーケンス中の前記最初の位置から開始して、各位置について、前記位置のための前記データ要素を選択するステップが、
前記スコア分布の下で最高スコアを有するデータ要素を選択するステップを含む、請求項
1に記載の方法。
【請求項18】
前記時間ステップのシーケンス中の各時間ステップについて、前記現在の時間ステップの時点の前記タスクの前記状態を表す前記データ要素のシーケンスが、数値のシーケンス、埋込みのシーケンス、またはいくつかの位置における数値と他の位置における埋込みとを含むシーケンスを備える、請求項
1に記載の方法。
【請求項19】
前記現在の観測が画像を備え、
データ要素のシーケンスとしての前記現在の観測の前記表現を生成するステップが、
前記画像中の複数のパッチの各々に対応するそれぞれの初期パッチ埋込みを生成するステップと、
エンコーダニューラルネットワークを使用して、前記初期パッチ埋込みを処理して、前記画像中の前記複数のパッチの各々のためのそれぞれの最後のパッチ埋込みを生成するステップと
を含み、
各最後のパッチ埋込みが、前記現在の観測を表す前記データ要素のシーケンス中のそれぞれのデータ要素として含まれる、請求項
2に記載の方法。
【請求項20】
前記画像中のパッチに対応するそれぞれの初期パッチ埋込みを生成するステップが、
前記画像中の前記パッチ中のピクセルを表すピクセル埋込みを生成するステップと、
前記画像中の前記パッチの位置を表すパッチ位置埋込みを生成するステップと、
前記パッチのための前記ピクセル埋込みおよび前記パッチ位置埋込みを結合することによって、前記パッチのための前記初期パッチ埋込みを生成するステップと
を含む、請求項19に記載の方法。
【請求項21】
前記エンコーダニューラルネットワークが、1つまたは複数のセルフアテンションニューラルネットワーク層を備える、請求項
19に記載の方法。
【請求項22】
前記エンコーダニューラルネットワークが、1つまたは複数の残差ブロックを備える、請求項
19に記載の方法。
【請求項23】
前記エージェントが、現実世界の環境と対話する機械的エージェントである、請求項
1に記載の方法。
【請求項24】
前記機械的エージェントによって実行されることになるアクションを選択するステップが、前記機械的エージェントに前記環境内で1つまたは複数のオブジェクトを物理的に操作させるためのアクションを選択するステップを含む、請求項23に記載の方法。
【請求項25】
システムであって、
1つまたは複数のコンピュータと、
前記1つまたは複数のコンピュータに通信可能に結合された、1つまたは複数の記憶デバイスと
を備え、前記1つまたは複数の記憶デバイスが命令を記憶し、前記命令が、前記1つまたは複数のコンピュータによって実行されると、前記1つまたは複数のコンピュータに、請求項1から24のいずれか一項に記載のそれぞれの方法の動作を実行させる、システム。
【請求項26】
命令を記憶した1つまたは複数の非一時的コンピュータ可読記録媒体であって、前記命令が、1つまたは複数のコンピュータによって実行されると、前記1つまたは複数のコンピュータに、請求項1から24のいずれか一項に記載のそれぞれの方法の動作を実行させる、1つまたは複数の非一時的コンピュータ可読記録媒体。
【国際調査報告】