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

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

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

特許7523665観測埋込みを制御する補助タスクを使用する、アクション選択ニューラルネットワークのトレーニング
<>
  • 特許-観測埋込みを制御する補助タスクを使用する、アクション選択ニューラルネットワークのトレーニング 図1
  • 特許-観測埋込みを制御する補助タスクを使用する、アクション選択ニューラルネットワークのトレーニング 図2
  • 特許-観測埋込みを制御する補助タスクを使用する、アクション選択ニューラルネットワークのトレーニング 図3
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-07-18
(45)【発行日】2024-07-26
(54)【発明の名称】観測埋込みを制御する補助タスクを使用する、アクション選択ニューラルネットワークのトレーニング
(51)【国際特許分類】
   G06N 3/092 20230101AFI20240719BHJP
   G06F 18/213 20230101ALI20240719BHJP
【FI】
G06N3/092
G06F18/213
【請求項の数】 21
(21)【出願番号】P 2023506026
(86)(22)【出願日】2021-07-27
(65)【公表番号】
(43)【公表日】2023-08-23
(86)【国際出願番号】 EP2021071078
(87)【国際公開番号】W WO2022023385
(87)【国際公開日】2022-02-03
【審査請求日】2023-02-06
(31)【優先権主張番号】63/057,795
(32)【優先日】2020-07-28
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】517030789
【氏名又は名称】ディープマインド テクノロジーズ リミテッド
(74)【代理人】
【識別番号】100108453
【弁理士】
【氏名又は名称】村山 靖彦
(74)【代理人】
【識別番号】100110364
【弁理士】
【氏名又は名称】実広 信哉
(74)【代理人】
【識別番号】100133400
【弁理士】
【氏名又は名称】阿部 達彦
(72)【発明者】
【氏名】マルクス・ヴルフマイヤー
(72)【発明者】
【氏名】ティム・ハートウィック
(72)【発明者】
【氏名】マルティン・リードミラー
【審査官】渡辺 一帆
(56)【参考文献】
【文献】国際公開第2018/224471(WO,A1)
【文献】特表2019-534517(JP,A)
【文献】特表2018-537880(JP,A)
【文献】HERTWECK, T et al.,"Simple Sensor Intentions for Exploration",arXiv.org [online],2020年,pp. 1-13,[retrieved on 2023.12.21], Retrieved from the Internet: <URL: https://arxiv.org/abs/2005.07541v1>,<DOI: 10.48550/arXiv.2005.07541>
【文献】RIEDMILLER, M et al.,"Learning by Playing - Solving Sparse Reward Tasks from Scratch",arXiv.org [online],2018年,pp. 1-18,[retrieved on 2023.12.21], Retrieved from the Internet: <URL: https://arxiv.org/abs/1802.10567v1>,<DOI: 10.48550/arXiv.1802.10567>
(58)【調査した分野】(Int.Cl.,DB名)
G06N 3/02-3/10
G06F 18/213-18/2137
(57)【特許請求の範囲】
【請求項1】
環境と対話するエージェントによって実行されるアクションを選択するために使用される複数のパラメータを有するアクション選択ニューラルネットワークをトレーニングするための方法であって、前記アクション選択ニューラルネットワークが、前記エージェントによって実行することができる可能なアクションのセットにおけるアクションごとのそれぞれのアクションスコアを備えるアクション選択出力を生成するために、前記環境の状態を特徴付ける観測を備える入力を処理することと、前記アクションスコアに基づいて可能なアクションの前記セットから前記エージェントによって実行される前記アクションを選択することとを行うように構成され、
アクション選択システムが、時間ステップにおける前記環境の状態を特徴付ける観測を取得するステップと、
前記アクション選択システムが、前記観測の低次元埋込みを生成するために埋込みモデルを使用して前記観測を処理するステップであって、前記観測の前記低次元埋込みが複数の次元を有する、ステップと、
前記アクション選択システムが、前記埋込みの特定の次元の値に基づいて前記時間ステップの補助タスク報酬を決定するステップであって、前記補助タスク報酬が、タスク選択ポリシに従って可能な補助タスクのセットから選択された、前記埋込みの前記特定の次元の前記値を制御する補助タスクに対応する、ステップと、
前記アクション選択システムが、前記時間ステップの前記補助タスク報酬に少なくとも部分的に基づいて、前記時間ステップの全体的な報酬を決定するステップと、
前記アクション選択システムが、強化学習技法を使用して、前記時間ステップの前記全体的な報酬に基づいて、前記アクション選択ニューラルネットワークの前記複数のパラメータの値の更新を決定するステップと
を備える、方法。
【請求項2】
前記埋込みの前記特定の次元の前記値を制御する前記補助タスクが、前記埋込みの前記特定の次元の前記値を最大化または最小化するステップを備える、請求項1に記載の方法。
【請求項3】
前記時間ステップの前記補助タスク報酬を決定するステップが、
複数の時間ステップの各々における前記環境の前記状態を特徴付けるそれぞれの観測の埋込みの前記特定の次元の最大値を決定するステップと、
前記複数の時間ステップの各々における前記環境の前記状態を特徴付けるそれぞれの観測の埋込みの前記特定の次元の最小値を決定するステップと、
(i)前記時間ステップにおける前記埋込みの前記特定の次元の前記値、(ii)前記埋込みの前記特定の次元に対応する前記最大値、および(iii)前記埋込みの前記特定の次元に対応する前記最小値に基づいて、前記時間ステップの前記補助タスク報酬を決定するステップと
を備える、請求項2に記載の方法。
【請求項4】
前記時間ステップの前記補助タスク報酬を決定するステップが、
(i)前記埋込みの前記特定の次元に対応する前記最大値と、前記時間ステップにおける前記埋込みの前記特定の次元の前記値との差、および(ii)前記埋込みの前記特定の次元に対応する前記最大値と前記最小値との差の比率を決定するステップを備える、請求項3に記載の方法。
【請求項5】
前記時間ステップの前記補助タスク報酬を決定するステップが、
(i)前記時間ステップにおける前記埋込みの前記特定の次元の前記値と前記埋込みの前記特定の次元に対応する前記最小値との差、および(ii)前記埋込みの前記特定の次元に対応する前記最大値と前記最小値との差の比率を決定するステップを備える、請求項3に記載の方法。
【請求項6】
前記アクション選択システムが、タスク選択ポリシに従って、可能な補助タスクのセットから前記埋込みの前記特定の次元の前記値を制御する前記補助タスクを選択するステップをさらに備え、それぞれの可能な補助タスクが、前記埋込みのそれぞれの次元の値を制御することに対応する、請求項1から5のいずれか一項に記載の方法。
【請求項7】
前記強化学習技法がオフポリシ強化学習技法である、請求項1から6のいずれか一項に記載の方法。
【請求項8】
前記埋込みモデルがランダム行列を備え、前記埋込みモデルを使用して前記観測を処理するステップが、
前記観測の投影を生成するために、前記ランダム行列を前記観測のベクトル表現に適用するステップと、
前記観測の前記投影に非線形アクティブ化関数を適用するステップと
を備える、請求項1から7のいずれか一項に記載の方法。
【請求項9】
前記アクション選択システムが、前記観測をベクトルに平坦化することによって、前記観測の前記ベクトル表現を生成するステップをさらに備える、請求項8に記載の方法。
【請求項10】
前記埋込みモデルが、埋込みニューラルネットワークを備える、請求項1から7のいずれか一項に記載の方法。
【請求項11】
前記埋込みニューラルネットワークが、自動エンコーダニューラルネットワークのエンコーダニューラルネットワークを備える、請求項10に記載の方法。
【請求項12】
前記自動エンコーダニューラルネットワークが、変分自動エンコーダ(VAE)ニューラルネットワークである、請求項11に記載の方法。
【請求項13】
前記変分自動エンコーダニューラルネットワークが、β-変分自動エンコーダ(β-VAE)ニューラルネットワークである、請求項12に記載の方法。
【請求項14】
前記観測の前記低次元埋込みを生成するために前記埋込みモデルを使用して前記観測を処理するステップが、
潜在空間上の確率分布を定義するパラメータを生成するために、前記エンコーダニューラルネットワークを使用して前記観測を処理するステップと、
前記潜在空間上の前記確率分布の平均に基づいて、前記観測の前記低次元埋込みを決定するステップと
を備える、請求項12または13のいずれか一項に記載の方法。
【請求項15】
前記観測が画像を備え、前記観測の前記低次元埋込みが、前記画像内の複数のキーポイントの各々に対するそれぞれの座標を備える、請求項1から7のいずれか一項に記載の方法。
【請求項16】
前記観測が画像を備え、前記観測の前記低次元埋込みが、前記画像内の空間色分布を特徴付ける統計のセットを備える、請求項1から7のいずれか一項に記載の方法。
【請求項17】
前記アクション選択システムが、前記環境内で前記エージェントによって実行されている主なタスクに対応する前記時間ステップの主なタスク報酬を決定するステップと、
前記アクション選択システムが、前記時間ステップの前記補助タスク報酬と前記時間ステップの前記主なタスク報酬に基づいて、前記時間ステップの前記全体的な報酬を決定するステップと
をさらに備える、請求項1から16のいずれか一項に記載の方法。
【請求項18】
前記エージェントが、現実世界の環境と対話する機械的エージェントであり、前記エージェントによって実行されている前記主なタスクが、前記環境内のオブジェクトを物理的に操作するステップを備える、請求項17に記載の方法。
【請求項19】
前記観測が画像を備え、前記観測の前記低次元埋込みを生成するために前記埋込みモデルを使用して前記観測を処理するステップが、
複数のアテンションマスクのセットを生成するために前記画像を処理するステップであって、各アテンションマスクが、前記画像のそれぞれの領域を定義し、前記アテンションマスクが前記画像のパーティションを共同で定義する、ステップと、
前記自動エンコーダニューラルネットワークの前記エンコーダニューラルネットワークを使用して、(i)前記アテンションマスク、および(ii)前記画像を処理することによって、アテンションマスクごとにそれぞれの埋込みを生成するステップと、
アテンションマスクごとの前記それぞれの埋込みの組合せに基づいて、前記観測の前記低次元埋込みを決定するステップと
を備える、請求項11に記載の方法。
【請求項20】
1つまたは複数のコンピュータと、
前記1つまたは複数のコンピュータに通信可能に結合された1つまたは複数のストレージデバイスと
を備え、前記1つまたは複数のストレージデバイスが、前記1つまたは複数のコンピュータによって実行されると、前記1つまたは複数のコンピュータに、請求項1から19のいずれか一項に記載のそれぞれの方法の動作を実行させる命令を記憶する、システム。
【請求項21】
1つまたは複数のコンピュータによって実行されると、前記1つまたは複数のコンピュータに、請求項1から19のいずれか一項に記載のそれぞれの方法の動作を実行させる命令を記憶する1つまたは複数の非一時的コンピュータストレージ媒体。
【発明の詳細な説明】
【技術分野】
【0001】
関連出願の相互参照
本出願は、2020年7月28日に出願された米国仮特許出願第63/057,795号「TRAINING ACTION SELECTION NEURAL NETWORKS USING AUXILIARY TASKS OF CONTROLLING OBSERVATION EMBEDDINGS」の出願日の利益を主張するものであり、その全体が参照により本明細書に組み込まれる。
【背景技術】
【0002】
本明細書は、機械学習モデルを使用するデータ処理に関する。
【0003】
機械学習モデルは、入力を受信し、受信した入力に基づいて、たとえば予測出力などの出力を生成する。一部の機械学習モデルはパラメトリックモデルであり、受信した入力とモデルのパラメータの値に基づいて出力を生成する。
【0004】
一部の機械学習モデルは、受信した入力の出力を生成するために複数のモデル層を使用するディープモデルである。たとえば、ディープニューラルネットワークは、出力層と1つまたは複数の隠れ層を含み、出力を生成するために、それぞれが受信した入力に非線形変換を適用するディープ機械学習モデルである。
【先行技術文献】
【非特許文献】
【0005】
【文献】Abdolmaleki, Abbasらによる「Relative entropy regularized policy iteration」arXiv preprint arXiv:1812.02256(2018年)
【文献】Bingham,E.およびMannila,H.による「Random projection in dimensionality reduction: applications to image and text data」、知識発見とデータマイニングに関する第7回ACM SIGKDD国際会議の議事録、pp.245~250、2001年
【文献】T. D. Kulkarni、A. Gupta、C. Ionescu、S. Borgeaud、M. Reynolds、A. Zisserman、およびV. Mnihによる「Unsupervised learning of object keypoints for perception and control」、NeurIPS、2019年、pp.10 723~10 733
【文献】Higgins,、Irina,らによる「beta-VAE: Learning basic visual concepts with a constrained variational framework」(2016年)
【文献】Burgess、Christopher P.らによる「Monet: Unsupervised scene decomposition and representation」、arXiv preprint arXiv:1901.11390(2019年)
【文献】Hertweck, Timらによる「Simple Sensor Intentions for Exploration」、arXiv preprint arXiv:2005.07541(2020年)
【発明の概要】
【課題を解決するための手段】
【0006】
本明細書は、一般に、環境と対話するエージェントを制御するために使用される複数のパラメータを有するアクション選択ニューラルネットワークをトレーニングするために、1つまたは複数の場所にある1つまたは複数のコンピュータ上でコンピュータプログラムとして実装されるシステムについて説明する。アクション選択ニューラルネットワークは、エージェントによって実行することができる可能なアクションのセットにおけるアクションごとのそれぞれのアクションスコアを備えるアクション選択出力を生成するために、環境の状態を特徴付ける観測の埋込みを備える入力を処理するように構成することができる。
【0007】
本明細書を通して、エンティティ(たとえば、環境の観測)の「埋込み(embedding)」は、数値の順序付けられた集合、たとえば、数値のベクトルまたは行列としてのエンティティの表現を指すことができる。エンティティの埋込みは、たとえば、エンティティを特徴付けるデータを処理するニューラルネットワークの出力として生成することができる。
【0008】
第1の態様によれば、環境と対話するエージェントによって実行されるアクションを選択するために使用される複数のパラメータを有するアクション選択ニューラルネットワークをトレーニングするための方法が提供され、アクション選択ニューラルネットワークは、エージェントによって実行することができる可能なアクションのセットにおけるアクションごとのそれぞれのアクションスコアを備えるアクション選択出力を生成するために、環境の状態を特徴付ける観測を備える入力を処理することと、アクションスコアに基づいて可能なアクションのセットからエージェントによって実行されるアクションを選択することとを行うように構成される。本方法は、時間ステップにおける環境の状態を特徴付ける観測を取得するステップと、観測の低次元埋込みを生成するために埋込みモデルを使用して観測を処理するステップであって、観測の低次元埋込みが複数の次元を有する、ステップと、埋込みの特定の次元の値に基づいて時間ステップの補助タスク報酬を決定するステップであって、補助タスク報酬が、埋込みの特定の次元の値を制御する補助タスクに対応する、ステップと、時間ステップの補助タスク報酬に少なくとも部分的に基づいて、時間ステップの全体的な報酬を決定するステップと、強化学習技法を使用して、時間ステップの全体的な報酬に基づいて、アクション選択ニューラルネットワークの複数のパラメータの値の更新を決定するステップとを含む。
【0009】
いくつかの実装形態では、埋込みの特定の次元の値を制御する補助タスクは、埋込みの特定の次元の値を最大化または最小化するステップを備える。
【0010】
いくつかの実装形態では、時間ステップの補助タスク報酬を決定するステップは、複数の時間ステップの各々における環境の状態を特徴付けるそれぞれの観測の埋込みの特定の次元の最大値を決定するステップと、複数の時間ステップの各々における環境の状態を特徴付けるそれぞれの観測の埋込みの特定の次元の最小値を決定するステップと、(i)時間ステップにおける埋込みの特定の次元の値、(ii)埋込みの特定の次元に対応する最大値、および(iii)埋込みの特定の次元に対応する最小値に基づいて、時間ステップの補助タスク報酬を決定するステップとを備える。
【0011】
いくつかの実装形態では、時間ステップの補助タスク報酬を決定するステップは、(i)埋込みの特定の次元に対応する最大値と、時間ステップにおける埋込みの特定の次元の値との差、および(ii)埋込みの特定の次元に対応する最大値と最小値との差の比率を決定するステップを備える。
【0012】
いくつかの実装形態では、時間ステップの補助タスク報酬を決定するステップは、(i)時間ステップにおける埋込みの特定の次元の値と埋込みの特定の次元に対応する最小値との差、および(ii)埋込みの特定の次元に対応する最大値と最小値との差の比率を決定するステップを備える。
【0013】
いくつかの実装形態では、本方法は、タスク選択ポリシに従って、可能な補助タスクのセットから埋込みの特定の次元の値を制御する補助タスクを選択するステップをさらに含み、それぞれの可能な補助タスクは、埋込みのそれぞれの次元の値を制御することに対応する。
【0014】
いくつかの実装形態では、強化学習技法はオフポリシ強化学習技法である。
【0015】
いくつかの実装形態では、埋込みモデルはランダム行列を備え、埋込みモデルを使用して観測を処理するステップは、観測の投影を生成するために、ランダム行列を観測のベクトル表現に適用するステップと、観測の投影に非線形アクティブ化関数を適用するステップとを備える。
【0016】
いくつかの実装形態では、本方法は、観測をベクトルに平坦化することによって、観測のベクトル表現を生成するステップをさらに含む。
【0017】
いくつかの実装形態では、埋込みモデルは、埋込みニューラルネットワークを備える。
【0018】
いくつかの実装形態では、埋込みニューラルネットワークは、自動エンコーダニューラルネットワークのエンコーダニューラルネットワークを備える。
【0019】
いくつかの実装形態では、自動エンコーダニューラルネットワークは、変分自動エンコーダ(VAE)ニューラルネットワークである。
【0020】
いくつかの実装形態では、変分自動エンコーダニューラルネットワークは、β-変分自動エンコーダ(β-VAE)ニューラルネットワークである。
【0021】
いくつかの実装形態では、観測の低次元埋込みを生成するために埋込みモデルを使用して観測を処理するステップは、潜在空間上の確率分布を定義するパラメータを生成するために、エンコーダニューラルネットワークを使用して観測を処理するステップと、潜在空間上の確率分布の平均に基づいて、観測の低次元埋込みを決定するステップとを備える。
【0022】
いくつかの実装形態では、観測は画像を備え、観測の低次元埋込みは、画像内の複数のキーポイントの各々に対するそれぞれの座標を備える。
【0023】
いくつかの実装形態では、観測は画像を備え、観測の低次元埋込みは、画像内の空間色分布を特徴付ける統計のセットを備える。
【0024】
いくつかの実装形態では、本方法は、環境内でエージェントによって実行されている主なタスクに対応する時間ステップの主なタスク報酬を決定するステップと、時間ステップの補助タスク報酬と時間ステップの主なタスク報酬に基づいて、時間ステップの全体的な報酬を決定するステップとをさらに含む。
【0025】
いくつかの実装形態では、エージェントは、現実世界の環境と対話する機械的エージェントであり、エージェントによって実行されている主なタスクは、環境内のオブジェクトを物理的に操作するステップを備える。
【0026】
いくつかの実装形態では、観測は画像を備え、観測の低次元埋込みを生成するために埋込みモデルを使用して観測を処理するステップは、複数のアテンションマスクのセットを生成するために画像を処理するステップであって、各アテンションマスクが、画像のそれぞれの領域を定義し、アテンションマスクが画像のパーティションを共同で定義する、ステップと、自動エンコーダニューラルネットワークのエンコーダニューラルネットワークを使用して、(i)アテンションマスク、および(ii)画像を処理することによって、アテンションマスクごとにそれぞれの埋込みを生成するステップと、アテンションマスクごとのそれぞれの埋込みの組合せに基づいて、観測の低次元埋込みを決定するステップとを備える。
【0027】
第2の態様によれば、1つまたは複数のコンピュータと、1つまたは複数のコンピュータに通信可能に結合された1つまたは複数のストレージデバイスとを含み、1つまたは複数のストレージデバイスが、1つまたは複数のコンピュータによって実行されると、1つまたは複数のコンピュータに、任意の前述の態様のそれぞれの方法の動作を実行させる命令を記憶する、システムが提供される。
【0028】
第3の態様によれば、1つまたは複数のコンピュータによって実行されると、1つまたは複数のコンピュータに、任意の前述の態様のそれぞれの方法の動作を実行させる命令を記憶する1つまたは複数の非一時的コンピュータストレージ媒体が提供される。
【0029】
本明細書で説明されている主題の特定の実施形態は、以下の利点のうちの1つまたは複数を実現するように実装することができる。
【0030】
本明細書で説明されているシステムは、1つまたは複数の補助タスクからの補助タスク報酬を使用して、環境と対話するエージェントを制御するために使用されるアクション選択ニューラルネットワークをトレーニングすることができる。各補助タスクは、埋込みモデルを使用して生成された環境の観測の埋込みのそれぞれの次元の値を制御する(たとえば、最大化または最小化する)ことに対応することができる。補助タスク報酬を使用してアクション選択ニューラルネットワークをトレーニングすると、エージェントが環境を効率的に探索するように促すことができ、それによって、たとえば環境内のオブジェクトを物理的に操作するなどの「主な(main)」(たとえば、プライマリ)タスクを実行するためのエージェントのトレーニングを加速することができる。特に、補助タスク報酬を使用すると、エージェントは、通常必要とされるよりも少ないトレーニングの反復と少ないトレーニングデータを用いて主なタスクで許容レベルのパフォーマンスを達成できるようになり、したがって、トレーニング中の計算リソースの消費を抑えることができる。計算リソースは、たとえばメモリおよび計算能力を含むことができる。
【0031】
本明細書で説明されているシステムは、ロボット、または他の機械的エージェントを制御するために使用されるアクション選択ニューラルネットワークのトレーニングを加速するために使用することができる。たとえば、本システムは、シミュレートされたデータでアクション選択ニューラルネットワークをトレーニングすることができ、たとえば、シミュレートされたロボットとシミュレートされた環境との対話を特徴付けることができる。本システムは、シミュレートされた観測の埋込みの次元を制御するなどの補助タスクを実行することを学習することにより、ロボットがシミュレートされた環境を効率的に探索するように促すことによって、シミュレートされたデータに対するアクション選択ニューラルネットワークのトレーニングを加速することができる。シミュレートされたデータでトレーニングした後、現実世界のロボットを制御し、現実世界の環境においてタスクを効率的に実行するために、トレーニングされたアクション選択ニューラルネットワークを展開することができる。したがって、現実世界の環境と対話するエージェントによって実行されるアクションを選択するための方法であって、シミュレートされた(または、現実世界の)環境の観測に基づいて、複数のパラメータを有するアクション選択ニューラルネットワークをトレーニングするための方法を実行する第1の段階を備え、続いて、現実世界の環境の観測に基づいて現実環境と対話する際にエージェントが実行するアクションを選択するために、トレーニングされたアクション選択ネットワークを使用する1つまたは複数のステップの第2の段階を備える、方法が提供される。各段階において、現実世界の環境を検知するセンサ(たとえば、カメラ)によって、現実世界の環境の観測が取得される。
【0032】
本明細書で説明されているシステムは、手作業による設計作業を最小限に抑えることができる補助タスクを使用して、アクション選択ニューラルネットワークをトレーニングすることができる。特に、専門家によって補助タスクを手動で設計する必要がなく(これは困難で時間がかかる可能性がある)、システムのユーザは、観測埋込みを生成するために使用される埋込みモデルを指定するだけで済む。変分自動エンコーダなどの多数の従来の埋込みモデルは、手動で設計する手間をかけずにすぐに利用することができる。
【0033】
本明細書の主題の1つまたは複数の実施形態の詳細は、添付の図面および以下の説明に記載されている。主題の他の特徴、態様、および利点は、説明、図面、および特許請求の範囲から明らかになるであろう。
【図面の簡単な説明】
【0034】
図1】アクション選択ニューラルネットワークを含む例示的なアクション選択システムのブロック図である。
図2】例示的な埋込みモデルのブロック図である。
図3】アクション選択ニューラルネットワークをトレーニングするための例示的なプロセスの流れ図である。
【発明を実施するための形態】
【0035】
様々な図面における同様の参照番号および名称は、同様の要素を示す。
【0036】
図1は、環境106と対話するエージェント104を制御することができる例示的なアクション選択システム100を示している。アクション選択システム100は、以下に説明するシステム、コンポーネント、および技法が実装される1つまたは複数の場所にある1つまたは複数のコンピュータ上でコンピュータプログラムとして実装されるシステムの例である。
【0037】
システム100は、目標(「主な」タスクとも呼ばれる)を達成するために、複数の時間ステップの各々において環境106と対話するエージェント104によって実行されるアクション102を選択する。各時間ステップにおいて、システム100は、環境106の現在の状態を特徴付けるデータを受信し、受信したデータに応答してエージェント104によって実行されるアクション102を選択する。環境106の状態を特徴付けるデータは、本明細書では観測110と呼ばれ、たとえば、画像または任意の他の適切なデータを含むことができる。場合によっては、エージェント104は、たとえばロボットとすることができ、観測110は、たとえば、ジョイント位置、速度およびトルク、または以下でより詳細に説明する任意の他の適切なデータを含むことができる。各時間ステップにおいて、その時間ステップにおける環境106の状態(観測110によって特徴付けられる)は、前の時間ステップにおける環境106の状態と、前の時間ステップにおいてエージェント104によって実行されたアクション102に依存する。
【0038】
各時間ステップにおいて、システム100は、環境106の現在の状態および時間ステップにおけるエージェント104のアクション102に基づいて、主なタスク報酬108を受信することができる。一般に、主なタスク報酬108は数値として表すことができる。主なタスク報酬108は、環境106内の任意のイベントまたは環境の態様に基づくことができる。たとえば、主なタスク報酬108は、エージェント104が主なタスク(たとえば、環境内のオブジェクトを所望の方法で物理的に操作すること)を達成したかどうか、または主なタスクの達成に向けたエージェント104の進捗を示すことができる。システム100が、時間ステップにおいてエージェント104によって実行されるアクション102を選択した後、エージェント104は、アクション102を実行することによって環境106と対話し、システム100は、対話に基づいて主なタスク報酬108を受信することができる。
【0039】
場合によっては、アクション選択システム100は、エージェント104が主なタスクを正常に達成した場合に限り、非ゼロの主なタスク報酬108を受信することができ、さもなければ、トレーニング中にエージェント104によって実行されるアクション102の数と比較すると、非ゼロの主なタスク報酬108を受信するインスタンスは比較的まれである可能性がある。言い換えれば、エージェント104は、環境106から主なタスクに対するパフォーマンスに関するフィードバックを、たとえば非ゼロの主なタスク報酬の形で受信することができるようになる前に、複数のアクション102を実行する必要がある場合がある。たとえば、エージェント104が物理的なロボットアームであり、主なタスクが物理的なオブジェクトを持ち上げることである場合、ロボットアームは、オブジェクトを正常に持ち上げる(たとえば、主なタスクを正常に実行する)ことができる前に、オブジェクトに到達してつかむなどの中間タスクを最初に正常に実行する必要がある場合がある。環境106からの中間フィードバックがない場合(たとえば、非ゼロの主なタスク報酬の形で)、主なタスクを実行するようにエージェント104をトレーニングするにはかなりの時間がかかる可能性がある。
【0040】
したがって、各時間ステップにおいて、エージェント104と環境106との対話に基づいて主なタスク報酬108を受信することに加えて、システム100は、1つまたは複数の補助(たとえば、固有または中間)タスクを実行する際のエージェント104のパフォーマンスを特徴付けることができる1つまたは複数の補助タスク報酬119を受信する(たとえば、生成する)ことができる。適切に定義された補助タスクは、探索を容易にし、主なタスクにおけるエージェント104のパフォーマンスを向上させることができる。補助タスクは人間の専門家によって決定することができ、特にロボットシステムの領域において、かなりの量の設計作業が必要になる可能性がある。しかしながら、アクション選択システム100の一部として埋込みモデル150を利用することによって、適切な補助タスクおよび関連付けられる補助タスク報酬119を自動的に決定することができ、これについては次により詳細に説明する。
【0041】
補助タスクは、環境106の現在の状態を特徴付ける観測110に基づいて決定することができる。具体的には、各時間ステップにおいて、特定の次元数(たとえば、2、16、32、または100次元)を有する低次元埋込み118を生成するために、観測110を埋込みモデル150によって処理することができ、補助タスクは、埋込みの少なくとも1つの特定の次元の値を制御することに対応することができる。一般に、「埋込み(embedding)」は、数値のベクトルまたは行列など、数値の順序付けられた集合を指し、「低次元(lower-dimensional)」は、埋込み118が観測110よりも小さい数の次元を有することを示す。
【0042】
埋込みモデル150は、アクション選択ニューラルネットワーク120によってより効率的に処理することができる観測110の「圧縮された(compressed)」構造化表現を生成することができる。いくつかの実装形態では、システム100は、複数の埋込みモデル150を使用し、埋込みモデル150の各々によって生成されたそれぞれの低次元埋込み118をアクション選択ニューラルネットワーク120に提供することができる。システム100は、低次元埋込み118を生成するために、同じタイプの埋込みモデル150、または異なるタイプの埋込みモデル150を使用することができる。
【0043】
例として、各時間ステップにおいて、埋込みモデル150は、たとえば、画像内の複数のキーポイントの各々の(たとえば、画像の基準フレームにおける)xおよびy座標のそれぞれの値を表す埋込み118を生成するために、高次元観測110(たとえば、64×64ピクセルのサイズの画像)を処理することができる。一般に、「キーポイント(key point)」は、所望の特性を有すると予測される画像内の位置(たとえば、空間2次元座標によって表される)を指し、たとえば、画像内のキーポイントは、環境内の1つまたは複数のオブジェクト、オブジェクトの一部、および/または独立して移動するエンティティに配置することができる。
【0044】
この例では、キーポイントのセット内のキーポイントの各々について、第1の補助タスクは、たとえば、埋込みのx座標の値を制御することであり、第2の補助タスクは、たとえば、埋込みのy座標の値を制御することである。したがって、各時間ステップにおいて、主なタスクを解決する方向に進むことに加えて(システムが時間ステップにおいて主なタスク報酬108を受信することにつながる場合もあれば、そうでない場合もある)、エージェント104は、補助タスクの一方または両方を解決する方向に進むことができ、システム100は、補助タスクにおけるエージェント104のパフォーマンスを特徴付けるそれぞれの補助タスク報酬119を受信することができる。上記の例は、説明のみを目的として提供されており、埋込みの次元数、および対応する補助タスク数と補助タスク報酬119は、埋込みモデル150の特定のタイプに依存する可能性があり、これについては、図2を参照して後でより詳細に説明する。
【0045】
埋込みの特定の次元の値を制御する各補助タスクは、たとえば、埋込みの特定の次元の値を最大化または最小化することを含むことができる。たとえば、xが時間ステップにおいて受信した観測110であり、zi(x)が、埋込みモデル150によって生成された埋込みzの特定の次元iの値を表す場合、補助タスクは、埋込みの次元iごとに、埋込みの値を最大化maxx(zi(x))するか、埋込みの値を最小化minx(zi(x))することができる。
【0046】
各時間ステップにおいて、システム100は、(i)時間ステップにおける埋込みzi(x)の特定の次元の値、(ii)埋込みの特定の次元の最大値maxx(zi(x))、および(iii)埋込みの特定の次元の最小値minx(zi(x))に基づいて、各補助タスクに関連付けられる補助タスク報酬119を決定することができる。たとえば、時間ステップにおいて受信した観測xと、時間ステップにおいてエージェントによって実行されたアクションaが与えられた場合、最大(max)補助タスクと最小(min)補助タスクの各々に関連付けられる埋込みzの次元iの補助タスク報酬riは、それぞれ次のいずれかになる。
【0047】
【数1】
【0048】
上式で、range(zi)は、埋込みzi(x)の特定の次元iの最大値maxx(zi(x))と、埋込みzi(x)の特定の次元iの最小値minx(zi(x))との差を示す正規化係数である。
【0049】
一例では、埋込みの特定の次元の最大値および最小値は、アクション選択システム100のトレーニング中に前の時間ステップにわたって受信された観測の特定のウィンドウ(たとえば、数または範囲)にわたって決定することができる。別の例では、埋込みの特定の次元の最大値および最小値は、埋込みモデル150の事前トレーニングの結果として、たとえば、アクション選択システム100をトレーニングする前に、かつそれとは独立して埋込みモデル150をトレーニングした結果として、生成された観測および埋込みのトレーニングデータセットにわたって決定することができる。
【0050】
いくつかの実装形態では、埋込みの特定の次元の値を制御する補助タスクは、埋込みの特定の次元の値を目標値に向けることを含むことができる。目標値は、たとえばランダムに選択することもでき、システムのユーザによって指定することもでき、たとえば経時的に変化することもできる。
【0051】
上述のように、各時間ステップにおいて、システム100は、主な目標の達成に向けたエージェント104の進捗を特徴付ける主なタスク報酬108を受信することができ、さらに、1つまたは複数の補助タスクにおいてエージェント104のパフォーマンスを特徴付ける1つまたは複数の補助タスク報酬119を受信することができる。各時間ステップにおいて、アクション選択システム100は、1つまたは複数の補助タスク報酬119に少なくとも部分的に基づいて全体的な報酬をさらに決定することができる。時間ステップの全体的な報酬は、たとえば、主なタスク報酬と1つまたは複数の補助タスク報酬119の線形結合とすることができる。
【0052】
いくつかの実装形態では、アクション選択ニューラルネットワーク120は、1つまたは複数の「共有(shared)」ニューラルネットワーク層を含むことができ、その後に(i)主なタスクに対応する「ヘッド(head)」、および(ii)各補助タスクに対応するそれぞれの「ヘッド」が続く。(「ヘッド」は、1つまたは複数のニューラルネットワーク層のセット、たとえば、完全に接続されたニューラルネットワーク層のシーケンス、または任意の他の適切なニューラルネットワーク層を指す)。共有ニューラルネットワーク層は、アクション選択ニューラルネットワーク入力の共有表現を生成するために、アクション選択ニューラルネットワーク入力を処理するように構成されており、すなわち、すべてのヘッド間で共有される。主なタスクに対応するヘッドは、主なタスクを実行するためのアクションを選択するために使用されるアクション選択出力を生成するために、共有表現を処理するように構成されている。各補助タスクに対応するそれぞれのヘッドは、補助タスクを実行するアクションを選択するために使用されるアクション選択出力を生成するために、共有表現を処理するように構成されている。
【0053】
本システムは、主なタスク報酬を使用して、すなわち、主なタスクヘッドを通じた、および共有ニューラルネットワーク層への主なタスク報酬に基づいて、強化学習目標の勾配を逆伝播することによって、主なタスクに対応するアクション選択ニューラルネットワークの「主なタスクヘッド(main task head)」をトレーニングすることができる。本システムは、対応する補助タスク報酬を使用して、すなわち、補助タスクヘッドを通じた、および共有ニューラルネットワーク層への補助タスク報酬に基づいて強化学習目的関数の勾配を逆伝播することによって、各補助タスクに対応するアクション選択ニューラルネットワークの各「補助タスクヘッド(auxiliary task head)」を同様にトレーニングすることができる。したがって、本システムは、主なタスク報酬と補助タスク報酬の両方を使用してアクション選択のための効果的で有益な表現を生成するために、アクション選択ニューラルネットワークの共有ニューラルネットワーク層をトレーニングすることができる。
【0054】
いくつかの実装形態では、システム100は、タスク選択ポリシに従って、可能な補助タスクのセットから特定の補助タスクを選択することができる。タスク選択ポリシは、エージェント104の主なタスクにおけるパフォーマンスを最大化するために、補助タスクの選択を最適化することができる。タスク選択ポリシは、たとえば、エージェントがあらかじめ定められた時間ステップ数にわたって環境と対話するたびに、またはエージェントが目標(たとえば、主なタスク)を達成するたびに、新しい補助タスクを選択するために使用することができる。特定の補助タスクを「選択(selecting)」した後、その補助タスクに関連付けられる補助タスク報酬119においてアクション選択ニューラルネットワーク120をトレーニングするために、特定の補助タスクが使用される。
【0055】
タスク選択ポリシには2つの段階がある。第1の段階において、たとえば、非ゼロの主なタスク報酬が受信される前に、システム100は、可能な補助タスクのセットから補助タスクをサンプリングして、「代替の(replacement)」主なタスクとすることができる。システム100は、特定の補助タスクを代替の主なタスクとして考慮から除外することができ、たとえば、システムは、以前にゼロ値の報酬のみを受信した補助タスク、または環境の初期状態において高い報酬(たとえば、あらかじめ定義されたしきい値を超える)がすでに達成されている補助タスクを除外することができる。システムは、補助タスクの残りの候補セット(すなわち、代替の主なタスクとしての考慮から除外されていないもの)にわたる確率分布(たとえば、一様分布)に従って、代替の主なタスクをサンプリングする。代替の主なタスクが選択された後、システムは、可能なタスクのセット(すなわち、主なタスクと各補助タスクを含む)にわたる確率分布に従ってタスクを選択することができる。本システムは、タスクに対応するアクション選択ニューラルネットワークヘッドを使用してアクションを選択する際に、代替の主なタスクに対して受信した平均報酬(たとえば、再生メモリに記憶された軌跡に沿って計算される)として、可能なタスクのセット内のタスクごとのそれぞれのスコアを決定することができる。次いで、本システムは、スコアを使用して、たとえばソフトマックス関数を使用してスコアを処理することによって、可能なタスクのセットにわたる確率分布を決定することができる。したがって、いくつかの実装形態では、第1の段階において、システム100は、代替の主なタスクの学習を加速するようにタスクを選択することができる。
【0056】
第2の段階において、たとえば非ゼロの主なタスク報酬が1つまたは複数の時間ステップにおいて受信された後、システム100は、主なタスクの学習を加速するように(たとえば、代替の主なタスクの学習を加速する代わりに)タスクを選択することができる。たとえば、本システムは、補助タスクごとのスコアを、補助タスクに対応するアクション選択ニューラルネットワークヘッドを使用してアクションを選択する際に主なタスクに対して受信した平均報酬(たとえば、再生メモリ内の軌跡に沿って計算される)として決定することができる。次いで、本システムは、スコアを使用して、たとえばソフトマックス関数を使用してスコアを処理することによって、補助タスクの確率分布を決定することができる。したがって、いくつかの実装形態では、第2の段階において、システム100は、主なタスクの学習を加速するようにタスクを選択することができる。
【0057】
各時間ステップにおいて、アクション選択ニューラルネットワーク120は、エージェント104によって実行することができる可能なアクションのセットにおけるアクションごとにそれぞれのスコアを含むことができるアクション選択出力122を生成するために、埋込み118を処理することができる。システム100は、時間ステップにおいてアクション選択ニューラルネットワーク120によって生成されたアクション選択出力122を使用して、時間ステップにおいてエージェント104によって実行されるアクション102を選択する。たとえば、システム100は、アクション選択出力122に従って、最高スコアを有するアクションを、時間ステップにおいてエージェントによって実行されるアクション102として選択することができる。
【0058】
いくつかの実装形態では、システム100は、探索戦略に従って、エージェントによって実行されるアクション102を選択する。たとえば、システム100は、ε貪欲探索戦略を使用することができる。この例において、システム100は、確率1-εで(アクション選択出力122に従って)最高スコアを有するアクションを選択し、確率εでランダムにアクションを選択することができ、ここで、εは0と1との間の数である。
【0059】
アクション選択ニューラルネットワーク120は、説明された機能を実行することを可能にする任意の適切なニューラルネットワークアーキテクチャを有することができる。たとえば、アクション選択ニューラルネットワークは、任意の適切な構成において(たとえば、層の線形シーケンスとして)接続された任意の適切なニューラルネットワーク層(たとえば、畳み込み層、全結合層、再帰層、アテンション層など)を含むことができる。
【0060】
トレーニングエンジン112は、強化学習技法を使用してアクション選択システム100をトレーニングするために、観測110および対応する全体的な報酬を使用することができる。トレーニングエンジン112は、アクション選択ニューラルネットワーク120のパラメータ、および任意で、埋込みモデル150のパラメータを繰り返し調整することによって、アクション選択システム100をトレーニングする。トレーニングエンジン112は、アクション選択システム100を通じて強化学習目的関数(たとえば、Q学習目的関数、ポリシ勾配目的関数、または任意の他の適切な強化学習目的関数)の勾配を繰り返し逆伝播することによって、アクション選択システム100のパラメータを調整することができる。アクション選択システム100をトレーニングすることによって、トレーニングエンジン112は、アクション選択システム100によって受信される全体的な報酬(たとえば、長期の時間割引の、累積的な全体的な報酬)の累積的尺度を増加させ、エージェント104にその主な目標をより効果的に達成させる(たとえば、より少ない時間ステップにわたって)アクションをアクション選択システム100に選択させることができる。
【0061】
アクション選択システム100は、たとえば、論理データストレージ領域または物理データストレージデバイスとして実装される再生メモリ114をさらに含むことができる。メモリ114は、複数の前の時間ステップの各々に対応するそれぞれの「経験タプル(experience tuple)」を記憶することができる(たとえば、メモリ114は、現在の時間ステップの前の時間ステップごとにそれぞれの経験タプルを記憶することができる)。時間ステップの経験タプルは、前の時間ステップにおけるエージェント104と環境106との対話を特徴付けるデータを指す。たとえば、前の時間ステップの経験タプルは、(i)前の時間ステップにおける観測110、(ii)前の時間ステップにおいてエージェント104によって実行されたアクション102、(iii)前の時間ステップにおいてエージェントによって実行されたアクションの結果として得られた後続の観測、および(iv)前の時間ステップにおける全体的な報酬(たとえば、主なタスク報酬108および1つまたは複数の補助タスク報酬119を含むことができる)のそれぞれの埋込み(表現)を含むことができる。
【0062】
いくつかの実装形態では、トレーニングエンジン112は、オフポリシ強化学習技法を使用して、再生メモリ114に記憶された経験タプルにおいてアクション選択ニューラルネットワーク120をトレーニングすることができる。すなわち、アクション選択ニューラルネットワーク120は、アクション選択ニューラルネットワーク120のパラメータが現在の時間ステップにおけるそれらの値と異なっていた場合、対応する時間ステップに関連する複数の経験タプルに基づいて任意の現在の時間ステップにおいてトレーニングされる。これらの対応する時間ステップは、環境の現在の状態につながった時間ステップのシーケンスにおける前の時間ステップを備えてもよく、および/または、たとえば、環境の様々な初期状態から始まる、環境との対話の前のセッション(時間ステップのシーケンス)中の時間ステップを備えてもよい。例示的なオフポリシ強化学習技法は、Abdolmaleki, Abbasらによる「Relative entropy regularized policy iteration」arXiv preprint arXiv:1812.02256(2018年)を参照して説明されている。
【0063】
可能なエージェント、環境、および主なタスクの例については、次により詳細に説明する。
【0064】
いくつかの実装形態では、環境106は現実世界の環境であり、エージェントは現実世界の環境と対話する機械的エージェントであり、たとえば、(環境内での平行移動および/または回転、ならびに/あるいはその構成の変更によって)現実世界の環境内で移動しているかおよび/または現実世界の環境を修正している。たとえば、エージェントは、たとえば、環境内の関心対象オブジェクトの位置を特定する、関心対象オブジェクトを環境内の指定された場所に移動する、環境内の関心対象オブジェクトを指定された方法で物理的に操作する、または環境内の指定された目的地にナビゲートするなどの主なタスクを実行するために環境と対話するロボットである場合があってもよく、あるいは、エージェントは、環境内の指定された目的地まで環境を通してナビゲートするという主なタスクを実行する、自律型または半自律型の陸、空、または海の乗り物であってもよい。
【0065】
これらの実装形態では、観測110は、たとえば、画像センサ、距離センサ、位置センサ、またはアクチュエータからのセンサデータなど、エージェントが環境106と対話するときに観測をキャプチャするための、画像、オブジェクト位置データ、およびセンサデータのうちの1つまたは複数を含むことができる。
【0066】
たとえば、ロボットの場合、観測110は、ロボットの現在の状態を特徴付けるデータ、たとえば、ジョイント位置、ジョイント速度、ジョイント力、トルクまたは加速度、たとえば重力補償トルクフィードバック、およびロボットによって保持されるアイテムのグローバルまたは相対ポーズのうちの1つまたは複数を含むことができる。
【0067】
ロボットまたは他の機械的エージェントあるいは車両の場合、観測110は、エージェントの1つまたは複数の部分の位置、直線速度または角速度、力、トルクまたは加速度、およびグローバルまたは相対ポーズのうちの1つまたは複数を同様に含むことができる。観測110は、1次元、2次元、または3次元において定義することができ、絶対観測および/または相対観測とすることができる。
【0068】
観測110はまた、たとえば、現実世界の環境を検知する1つまたは複数のセンサデバイスによって取得されたデータ、たとえば、モータ電流または温度信号などの検知された電子信号、および/あるいはたとえばカメラまたはLIDARセンサからの画像またはビデオデータ、たとえば、エージェントのセンサからのデータ、または環境106内のエージェントから離れて配置されたセンサからのデータを含むことができる。
【0069】
電子エージェントの場合、観測110は、電流、電圧、電力、温度および他のセンサ、ならびに/または機器の電子的および/または機械的アイテムの機能を表す電子信号などの、プラントまたはサービス施設の一部を監視する1つまたは複数のセンサからのデータを含み得る。
【0070】
アクション102は、ロボットまたは他の機械的エージェントを制御するための制御入力、たとえば、ロボットのジョイントまたはより高レベルの制御コマンドのトルク、あるいは自律的または半自律的な陸または空または海の乗り物に対するトルク、たとえば、制御面または車両の他の制御要素あるいはより高いレベルの制御コマンドへのトルクであり得る。したがって、観測は現実世界の環境に関連し得、選択されたアクションは機械的エージェントによって実行されるアクションに関連し得る。アクション選択ニューラルネットワーク120は、たとえば主なタスクを実行するために、現実世界の環境を検知する1つまたは複数のセンサから観測を取得することと、機械的エージェントを制御するアクションを選択するためにポリシ出力を使用することとを行うことによって、現実世界の環境と対話しながらタスクを実行するように機械的エージェントを制御するために使用される。
【0071】
言い換えれば、アクションは、たとえば、ロボット1つまたは複数のジョイントまたは別の機械エージェントの部分の位置、速度、または力/トルク/加速度のデータを含むことができる。アクションは、追加的または代替的に、モータ制御データなどの電子制御データ、あるいはより一般的には、その制御が環境106の観測された状態に影響を与える環境106内の1つまたは複数の電子デバイスを制御するためのデータを含むことができる。たとえば、自律型または半自律型の陸、空、または海の乗り物の場合、アクションはナビゲーションを制御するアクション、たとえば、ステアリング、ならびに車両のブレーキおよび/または加速などの動きを含むことができる。
【0072】
いくつかの実装形態では、環境106は、シミュレートされた環境106であり、エージェントは、シミュレートされた環境106と対話する1つまたは複数のコンピュータとして実装される。
【0073】
たとえば、シミュレートされた環境106は、ロボットまたは車両のシミュレーションとすることができ、アクション選択ネットワークは、シミュレーションにおいてトレーニングすることができる。たとえば、シミュレートされた環境106は、運動シミュレーション環境106、たとえば、運転シミュレーションまたは飛行シミュレーションとすることができ、エージェントは、運動シミュレーションを通じてナビゲートする主なタスクを実行するシミュレートされた車両とすることができる。これらの実装形態では、アクションは、シミュレートされたユーザまたはシミュレートされた車両を制御するための制御入力にすることができる。
【0074】
別の例では、シミュレートされた環境106はビデオゲームとすることができ、エージェントはビデオゲームをプレイするシミュレートされたユーザとすることができる。
【0075】
さらなる例において、シミュレートされた環境106は、各状態がタンパク質鎖のそれぞれの状態であり、エージェントがタンパク質鎖を折り畳む方法を決定するためのコンピュータシステムであるようなタンパク質折畳み環境106であってもよい。この例では、アクションは、タンパク質鎖を折り畳むための可能な折畳みアクションであり、達成される目標は、たとえば、タンパク質が安定し、特定の生物学的機能を達成するようにタンパク質を折り畳むことを含み得る。
【0076】
一般に、シミュレートされた環境106の場合、観測は、前述の観測または観測のタイプのうちの1つまたは複数のシミュレートされたバージョンを含むことができ、アクションは、前述のアクションまたはアクションのタイプのうちの1つまたは複数のシミュレートされたバージョンを含むことができる。
【0077】
場合によっては、エージェント104とシミュレートされた環境106との対話を制御するために、アクション選択システム100を使用することができ、トレーニングエンジンは、エージェント104とシミュレートされた環境106との対話に基づいて、アクション選択システムのパラメータをトレーニングすることができる(たとえば、強化学習技法を使用して)。アクション選択システム100が、エージェント104とシミュレートされた環境106との対話に基づいてトレーニングされた後、エージェント104は、現実世界の環境において展開することができ、トレーニングされたアクション選択システムは、エージェント104と現実世界の環境との対話を制御するために使用することができる。エージェント104とシミュレートされた環境106(すなわち、現実世界の環境ではなく)との対話に基づいてアクション選択システムをトレーニングすることにより、エージェント104の損耗を回避することができ、不適切に選択されたアクションを実行することによって、エージェント104がそれ自体またはその環境106の態様に損傷を与える可能性を減らすことができる。
【0078】
いくつかの他のアプリケーションでは、エージェント104は、機器のアイテムを含む現実世界の環境、たとえば、データセンタまたはグリッド幹線電力または配水システム、あるいは製造工場またはサービス施設におけるアクションを制御し得る。観測は、プラントまたは施設の運転に関連する場合がある。たとえば、観測は、機器による電力または水の使用の観測、または発電または配電制御の観測、あるいはリソースの使用または廃棄物生成の観測を含み得る。エージェント104は、たとえばリソース使用量を削減することによって効率を高めるという目標を達成し、および/またはたとえば廃棄物を削減することによって環境106における運転の環境への影響を削減するために、環境106内のアクションを制御し得る。アクションは、プラント/施設のコンポーネントを調整またはオン/オフするために、プラント/施設の機器のアイテムに動作条件を制御または課すアクション、および/またはプラント/施設の運転における設定の変更をもたらすアクションを含み得る。
【0079】
いくつかのさらなるアプリケーションでは、環境106は現実世界の環境であり、エージェント104は、コンピュータリソース全体にわたる、たとえばモバイルデバイスにおける、および/またはデータセンタにおけるタスクの分散を管理する。これらの実装形態では、アクションは特定のコンピューティングリソースへのタスクの割当てを含み得、達成される目標は、指定されたコンピューティングリソースを使用してタスクのセットを完了するために必要な時間を最小限に抑えることを含むことができる。
【0080】
さらなる例として、アクションは広告を提示することを含み得、観測は広告のインプレッションあるいはクリックスルーのカウントまたはレートを含み得、報酬は1人または複数のユーザによって取得されたアイテムまたはコンテンツの前の選択を特徴付けることができる。この例では、達成すべき目標は、1人または複数のユーザによるアイテムまたはコンテンツの選択を最大化することを含むことができる。
【0081】
任意で、上記の実装形態のいずれかにおいて、任意の時間ステップにおける観測は、環境を特徴付ける際に有益であり得る前の時間ステップからのデータ、たとえば、前の時間ステップにおいて実行されたアクション、前の時間ステップにおいて受信された報酬などを含むことができる。
【0082】
観測110を処理し、低次元埋込み118を生成するためにアクション選択システム100の一部として使用することができる埋込みモデル150の例について、次により詳細に説明する。
【0083】
図2は、図1を参照して説明される、アクション選択システム100に含めることができる例示的な埋込みモデル200のブロック図である。埋込みモデルは、以下に説明するシステム、コンポーネント、および技法が実装される1つまたは複数の場所にある1つまたは複数のコンピュータ上でコンピュータプログラムとして実装されるシステムの例である。
【0084】
各埋込みモデルは、観測210の低次元埋込み270を生成するために、環境(たとえば、図1の環境106)の現在の状態を特徴付ける観測210(たとえば、図1の観測110)を処理するように構成される。上記のように、各時間ステップにおいて、アクション選択システムは、例示的な埋込みモデル200のうちの1つまたは複数によって生成された低次元埋込み270の特定の次元の値を制御することにそれぞれ対応する1つまたは複数の補助タスク報酬を受信することができる。例示的な埋込みモデル200は、ランダム投影モデル220、キーポイントモデル230、変分自動エンコーダモデル240、および色セグメンテーションモデル260を含むことができ、これらの各々は以下でより詳細に説明する。埋込みモデル200は、例示のみを目的として提供されており、観測210の低次元埋込み270を生成するために、他のタイプの埋込みモデル200を使用することができる。図1のシステムのいくつかの形態では、埋込みモデル220、230、240、260のうちの1つのみが埋込みモデル150として提供される。図1のシステムの他の形態では、埋込みモデル220、230、240、260のうちの複数のものは、アクション選択システム100において提供され、異なる時点において、複数の埋込みモデル220、230、240、260のうちの対応する異なるモデルが、以下に説明するように図1の埋込みモデル150として使用される。
【0085】
ランダム投影モデル220は、高次元入力を低次元部分空間に投影し、それによって低次元埋込み270を生成するように構成することができる。具体的には、モデル220は、画像の投影を生成するために、ランダム行列を画像のベクトル表現(たとえば、画像をベクトルに平坦化することによって取得される)に適用することによって観測(たとえば、画像)を処理することができる。ランダム行列は、複数のエントリを含むことができ、各エントリは、たとえば標準正規分布などの確率分布からサンプリングされる。一般に、画像は、たとえば「ピクセル(pixel)」のアレイとして表すことができ、各ピクセルは画像内のそれぞれの空間位置に関連付けられ、空間位置における画像データを表す1つまたは複数の数値のそれぞれのベクトルに対応する。たとえば、2D RGB画像は、ピクセルの2D配列によって表すことができ、ここで、各ピクセルは、画像内のピクセルに対応する空間位置における赤、緑、および青の色の強度を表す値のそれぞれの3Dベクトルに関連付けられている。
【0086】
ランダム投影モデル220によって使用されるランダム行列Mは、(d、h×w×3)の次元を有することができ、ここで、hは画像の高さ、wは画像の幅、dは埋込みサイズであり、係数3は、画像の各ピクセルが対応する数の色強度値(すなわち、RGB)を有している場合にのみ存在する。ランダム行列Mを画像のベクトル表現に適用した後、ランダム投影モデル220は、非線形アクティブ化関数、たとえば双曲線正接関数tanhを投影に適用することができる。結果として得られる埋込みzは次のように表すことができる。
z=tanh(M×flatten(I)) (3)
上式で、Mはランダム行列、Iは画像、およびflatten(I)は画像のベクトル表現である。例示的なランダム射影モデルは、Bingham,E.およびMannila,H.による「Random projection in dimensionality reduction: applications to image and text data」、知識発見とデータマイニングに関する第7回ACM SIGKDD国際会議の議事録、pp.245~250、2001年を参照して説明されている。
【0087】
キーポイントモデル230は、画像内の複数のキーポイント235の各々の座標を含む低次元埋込み270を生成するために、画像を含む観測210を処理するように構成することができる。上述のように、「キーポイント(key point)」は、一般に、特定の所望の特性を有すると予測される画像内の位置(たとえば、空間2次元座標)を指す。たとえば、画像内のキーポイントは、たとえば、環境内の1つまたは複数のオブジェクト、オブジェクトの一部、および/または独立して移動するエンティティに配置することができる。たとえば、キーポイントモデル230は、画像を処理し、次元K×2を有する低次元埋込みを生成することができ、ここで、Kは、画像内のオブジェクトの数を表し、たとえばシステムのユーザによって手動で指定することができる。
【0088】
キーポイントモデル230は、説明した機能を実行できるようにするニューラルネットワークアーキテクチャを有するニューラルネットワークとして実装することができ、たとえば、教師あり学習または強化学習技法を使用してトレーニングすることができる。いくつかの実装形態では、キーポイントモデル230は、アクション選択ニューラルネットワークとは独立してトレーニングすることができる。キーポイントモデルの例については、T. D. Kulkarni、A. Gupta、C. Ionescu、S. Borgeaud、M. Reynolds、A. Zisserman、およびV. Mnihによる「Unsupervised learning of object keypoints for perception and control」、NeurIPS、2019年、pp.10 723~10 733を参照して説明されている。
【0089】
変分自動エンコーダモデル240は、潜在空間上の確率分布を定義するパラメータを生成するために観測210(たとえば、画像)を処理することと、潜在空間上の確率分布の平均245に基づいて低次元埋込み270を決定することとを行うように構成することができる。一般に、変分自動エンコーダは、エンコーダニューラルネットワークとデコーダニューラルネットワークを含むニューラルネットワークアーキテクチャとして実装することができる。エンコーダニューラルネットワークは、潜在変数の空間にわたる分布を定義する、たとえば、d次元ユークリッド空間にわたる多変量ガウス分布の平均と分散を定義するパラメータのセットを生成するために、観測210を処理することができる。デコーダニューラルネットワークは、観測210を再構築するために、潜在空間上の確率分布から潜在をサンプリングすることと、サンプリングされた潜在を処理することとを行うことができる。
【0090】
変分自動エンコーダモデル240によって生成される低次元埋込みは、たとえば、観測を処理することによってエンコーダニューラルネットワークによって生成される分布の平均であり得る。いくつかの実装形態では、変分自動エンコーダモデル240は、アクション選択ニューラルネットワークとは独立してトレーニングすることができる。例示的な変分自動エンコーダアーキテクチャについては、Higgins,、Irina,らによる「beta-VAE: Learning basic visual concepts with a constrained variational framework」(2016年)、およびBurgess、Christopher P.らによる「Monet: Unsupervised scene decomposition and representation」、arXiv preprint arXiv:1901.11390(2019年)を参照して説明されている。
【0091】
いくつかの実装形態では、変分自動エンコーダモデル240を使用して画像として表される観測の埋込みを生成することの一部として、本システムは、複数のアテンションマスクのセットを生成するために、画像を処理することができる。各アテンションマスクは画像のそれぞれの領域を定義し、アテンションマスクは画像のパーティションを共同で定義し、すなわち、画像内の各ピクセルが正確に1つのアテンションマスクによって定義される対応する領域に含まれるようにする。各アテンションマスクは、画像の意味論的に意味のある領域、たとえば、それぞれのオブジェクトに対応する画像の領域、または背景に対応する画像の領域を定義すると予測される。これらの実装形態では、変分自動エンコーダモデルは、(i)アテンションマスクと(ii)画像の両方を含む入力を処理することによって、各アテンションマスクに対応するそれぞれの埋込み(上記のように)を生成するように構成することができる。次いで、本システムは、画像の全体的な埋込みを、アテンションマスクごとに生成されたそれぞれの埋込みの組合せ(たとえば、連結)として定義することができる。セグメンテーションニューラルネットワークと変分自動エンコーダを共同でトレーニングするための技法の例については、Burgess、Christopher P.らによる、「Monet: Unsupervised Scene Decomposition and Representation」、arXiv preprint arXiv:1901.11390 (2019年)を参照して、より詳細に説明されている。
【0092】
色セグメンテーションモデル260は、画像内の空間色分布265を特徴付ける統計のセットを含む低次元埋込み270を生成するために、観測210(たとえば、画像)を処理するように構成される。空間色分布265は、たとえば、画像内の関心対象オブジェクトに関連付けることができる。
【0093】
一般に、関心対象オブジェクトは、画像内のピクセルのセットによって表すことができ、各ピクセルは、赤、緑、および青の色の特定の強度(または、強度の範囲)に関連付けられている。色セグメンテーションモデル260は、関心対象オブジェクトを表すピクセルのみを含むように画像をセグメント化することができる。言い換えれば、モデル260は、特定のしきい値を超える赤、緑、および青の色の強度(または、強度の範囲)を有するピクセルのみを含むバイナリマスクを生成することができる。
【0094】
画像のバイナリマスクを生成した後、色セグメンテーションモデル260は、画像内のx軸とy軸に沿ったバイナリマスクの空間分布を決定し、画像内の関心対象オブジェクトの表現として、軸の各々に沿った空間分布の平均を選択することができる。画像内の各オブジェクト(たとえば、それぞれの色または色の範囲に対応する)は、2次元の埋込みとして表すことができ、第1の次元は画像のx軸に沿ったバイナリマスクの空間分布の平均であり、第2の次元は画像のy軸に沿ったバイナリマスクの空間分布の平均である。画像内の関心対象オブジェクトを表す特定の色(または、色範囲)は、手動で推定および指定することができる。例示的な色セグメンテーションモデルについては、Hertweck, Timらによる「Simple Sensor Intentions for Exploration」、arXiv preprint arXiv:2005.07541(2020年)を参照して説明されている。
【0095】
図3は、アクション選択ニューラルネットワークをトレーニングするための例示的なプロセス300の流れ図である。便宜上、プロセス300は、1つまたは複数の場所に配置された1つまたは複数のコンピュータのシステムによって実行されているものとして説明される。たとえば、本明細書に従って適切にプログラムされたアクション選択システム、たとえば、図1のアクション選択システム100は、プロセス300を実行することができる。
【0096】
本システムは、時間ステップ(302)において、環境の状態を特徴付ける観測を取得する。観測は、たとえば画像とすることができる。
【0097】
本システムは、観測の低次元埋込みを生成するために、埋込みモデルを使用して観測を処理する(304)。観測の低次元埋込みは、複数の次元を含むことができる。たとえば、観測が画像である場合、観測の低次元埋込みは、たとえば、画像内の複数のキーポイントの各々のそれぞれの座標、または画像内の空間色分布を特徴付ける統計のセットを含むことができる。埋込みモデルはランダム行列を含むことができ、埋込みモデルを使用して観測を処理するステップは、観測の投影を生成するために、ランダム行列を観測のベクトル表現に適用するステップと(たとえば、観測をベクトルに平坦化することによって)、観測の投影に非線形アクティブ化関数を適用するステップとを含むことができる。
【0098】
いくつかの実装形態では、埋込みモデルは、自動エンコーダニューラルネットワークのエンコーダニューラルネットワーク(たとえば、β-VAEニューラルネットワークなどの変分自動エンコーダニューラルネットワーク)を含む埋込みニューラルネットワークを含む。そのような実装形態では、観測の低次元埋込みを生成するために埋込みモデルを使用して観測を処理するステップは、潜在空間上の確率分布を定義するパラメータを生成するために、エンコーダニューラルネットワークを使用して観測を処理するステップと、潜在空間上の確率分布の平均に基づいて、観測の低次元埋込みを決定するステップとを含むことができる。
【0099】
本システムは、埋込みの特定の次元の値に基づいて、時間ステップの補助タスク報酬を決定する(306)。補助タスク報酬は、埋込みの特定の次元の値を制御する補助タスクに対応することができ、埋込みの特定の次元の値を最大化または最小化することを含むことができる。時間ステップの補助タスク報酬を決定することは、複数の時間ステップの各々において、埋込みの特定の次元の最大値を決定することと、埋込みの特定の次元の最小値を決定することと、(i)時間ステップにおける埋込みの特定の次元の値、(ii)最大値、および(iii)最小値に基づいて、時間ステップの補助タスク報酬を決定することとを含むことができる。
【0100】
いくつかの実装形態では、時間ステップの補助タスク報酬を決定するステップは、たとえば、式(1)を参照して上述したように、(i)埋込みの特定の次元に対応する最大値と、時間ステップにおける埋込みの特定の次元の値との差、および(ii)埋込みの特定の次元に対応する最大値と最小値との差の比率を決定するステップを含むことができる。
【0101】
いくつかの実装形態では、時間ステップの補助タスク報酬を決定するステップは、たとえば、式(2)を参照して上述したように、(i)時間ステップにおける埋込みの特定の次元の値と埋込みの特定の次元に対応する最小値との差、および(ii)埋込みの特定の次元に対応する最大値と最小値との差の比率を決定するステップを備える。
【0102】
本システムは、時間ステップの補助タスク報酬に少なくとも部分的に基づいて、時間ステップの全体的な報酬を決定する(308)。いくつかの実装形態では、本システムは、環境内でエージェントによって実行されている主なタスクに対応する時間ステップの主なタスク報酬を決定することと、時間ステップの補助タスク報酬と時間ステップの主なタスク報酬に基づいて、時間ステップの全体的な報酬を決定することとを行うことができる。
【0103】
本システムは、強化学習技法を使用して、時間ステップの全体的な報酬に基づいて、アクション選択ニューラルネットワークの複数のパラメータの値の更新を決定する(310)。強化学習技法は、オフポリシ強化学習技法を含むことができる。
【0104】
いくつかの実装形態では、本方法は、タスク選択ポリシに従って、可能な補助タスクのセットから埋込みの特定の次元の値を制御する補助タスクを選択するステップをさらに含むことができ、それぞれの可能な補助タスクは、埋込みのそれぞれの次元の値を制御することに対応する。説明したように、補助タスクは、たとえば、各時間ステップにおいてランダムに、またはより洗練されたタスク選択ポリシに従って、可能な補助タスクのあらかじめ定められたセットから選択することができる。
【0105】
本明細書では、システムおよびコンピュータプログラムコンポーネントに関連して「構成された(configured)」という用語を使用する。特定の動作またはアクションを実行するように構成された1つまたは複数のコンピュータのシステムとは、システムに、動作中にシステムに動作またはアクションを実行させるソフトウェア、ファームウェア、ハードウェア、またはそれらの組合せがインストールされていることを意味する。特定の動作またはアクションを実行するように構成された1つまたは複数のコンピュータプログラムは、1つまたは複数のプログラムが、データ処理装置によって実行されると、装置に動作またはアクションを実行させる命令を含むことを意味する。
【0106】
本明細書で説明されている主題および機能動作の実施形態は、デジタル電子回路、具体的に具現化されたコンピュータソフトウェアまたはファームウェア、本明細書で開示される構造およびそれらの構造的等価物を含むコンピュータハードウェア、あるいはそれらの1つまたは複数の組合せにおいて実装することができる。本明細書で説明されている主題の実施形態は、1つまたは複数のコンピュータプログラム、すなわち、データ処理装置による実行またはデータ処理装置の動作を制御するために、有形の非一時的ストレージ媒体上に符号化されたコンピュータプログラム命令の1つまたは複数のモジュールとして実装することができる。コンピュータストレージ媒体は、機械可読ストレージデバイス、機械可読ストレージ基板、ランダムまたはシリアルアクセスメモリデバイス、あるいはそれらのうちの1つまたは複数の組合せとすることができる。代替的または追加的に、プログラム命令は、人工的に生成された伝搬信号、たとえば、データ処理装置による実行のために適切な受信装置に送信するための情報を符号化するために生成される機械生成の電気、光、または電磁信号上で符号化することができる。
【0107】
「データ処理装置(data processing apparatus)」という用語は、データ処理ハードウェアを指し、例としてプログラム可能なプロセッサ、コンピュータ、あるいは複数のプロセッサまたはコンピュータを含む、データを処理するためのあらゆる種類の装置、デバイス、および機械を包含する。装置は、たとえばFPGA(フィールドプログラマブルゲートアレイ)またはASIC(特定用途向け集積回路)などの専用論理回路であってもよく、またはさらにそれを含んでもよい。装置は、ハードウェアに加えて、コンピュータプログラムの実行環境を作成するコード、たとえば、プロセッサファームウェア、プロトコルスタック、データベース管理システム、オペレーティングシステム、またはそれらのうちの1つまたは複数の組合せを構成するコードを任意に含むことができる。
【0108】
プログラム、ソフトウェア、ソフトウェアアプリケーション、アプリ、モジュール、ソフトウェアモジュール、スクリプト、またはコードとして参照または説明することもできるコンピュータプログラムは、コンパイラ型またはインタープリタ型言語、あるいは宣言型または手続き型言語を含む任意の形式のプログラミング言語において記述することができ、スタンドアロンプログラムとして、あるいはモジュール、コンポーネント、サブルーチン、またはコンピューティング環境における使用に適した他のユニットとしてなど、任意の形式で展開することができる。プログラムは、ファイルシステム内のファイルに対応することができるが、必須ではない。プログラムは、他のプログラムまたはデータ、たとえば、マークアップ言語ドキュメントに記憶されている1つまたは複数のスクリプトを保持するファイルの一部において、問題のプログラム専用の単一のファイルにおいて、あるいは複数の調整されたファイル、たとえば、1つまたは複数のモジュール、サブプログラム、またはコードの一部を記憶するファイルにおいて記憶することができる。コンピュータプログラムは、1つのコンピュータ、または1つのサイトに配置されているか、複数のサイトに分散され、データ通信ネットワークによって相互接続されている複数のコンピュータにおいて実行されるように展開することができる。
【0109】
本明細書では、「エンジン(engine)」という用語は、1つまたは複数の特定の機能を実行するようにプログラムされたソフトウェアベースのシステム、サブシステム、またはプロセスを指すために広く使用されている。通常、エンジンは1つまたは複数のソフトウェアモジュールまたはコンポーネントとして実装され、1つまたは複数の場所にある1つまたは複数のコンピュータにインストールされている。場合によっては、1つまたは複数のコンピュータが特定のエンジン専用になり、他の場合では、複数のエンジンを1つまたは複数の同じコンピュータにインストールして実行することもできる。
【0110】
本明細書で説明されているプロセスおよび論理フローは、入力データを動作して出力を生成することによって機能を実行するために、1つまたは複数のコンピュータプログラムを実行する1つまたは複数のプログラマブルコンピュータによって実行することができる。プロセスおよび論理フローは、たとえばFPGAまたはASICなどの専用論理回路によって、あるいは専用論理回路と1つまたは複数のプログラムされたコンピュータとの組合せによって実行することもできる。
【0111】
コンピュータプログラムの実行に適したコンピュータは、汎用マイクロプロセッサまたは専用マイクロプロセッサまたはその両方、あるいは他の種類の中央処理装置に基づくことができる。一般に、中央処理装置は、読取り専用メモリまたはランダムアクセスメモリ、あるいはその両方から命令およびデータを受信する。コンピュータの必須要素は、命令を実行または実行するための中央処理装置と、命令およびデータを記憶するための1つまたは複数のメモリデバイスである。中央処理装置およびメモリは、専用論理回路によって補足することもでき、そこに組み込むこともできる。一般に、コンピュータは、データを記憶するための1つもしくは複数の大容量ストレージデバイス、たとえば、磁気、光磁気ディスク、もしくは光ディスクを含むか、またはそれらからデータを受信する、もしくはそれらにデータを転送する、もしくはその両方を行うように動作可能に結合される。しかしながら、コンピュータはそのようなデバイスを備えている必要はない。さらに、コンピュータは、ほんの数例を挙げると、モバイル電話、携帯情報端末(PDA)、モバイルオーディオまたはビデオプレーヤ、ゲームコンソール、全地球測位システム(GPS)受信機、または、たとえばユニバーサルシリアルバス(USB)フラッシュドライブなどのポータブルストレージデバイスなどの別のデバイスに埋め込むことができる。
【0112】
コンピュータプログラム命令およびデータを記憶するために適したコンピュータ可読媒体は、例として、EPROM、EEPROM、およびフラッシュメモリデバイスなどの半導体メモリデバイス、磁気ディスク、たとえば内蔵ハードディスクまたはリムーバブルディスク、光磁気ディスク、ならびにCD-ROMおよびDVD-ROMディスクを含む、すべての形態の不揮発性メモリ、媒体、およびメモリデバイスを含む。
【0113】
ユーザとの対話を提供するために、本明細書で説明されている主題の実施形態は、ユーザへの情報を表示するためのディスプレイデバイス、たとえばCRT(陰極線管)またはLCD(液晶ディスプレイ)モニタと、ユーザがコンピュータに入力を提供できるキーボードおよびポインティングデバイス、たとえばマウスまたはトラックボールなどを有するコンピュータ上で実装することができる。ユーザとの対話を提供するために他の種類のデバイスを使用することもでき、たとえば、ユーザに提供されるフィードバックは、視覚的フィードバック、聴覚的フィードバック、または触覚的フィードバックなど、任意の形態の感覚的フィードバックであってよく、また、ユーザからの入力は、音響、音声、または触覚入力を含む任意の形式で受信することができる。さらに、コンピュータは、ユーザによって使用されるデバイスとの間でドキュメントを送受信することによって、たとえば、ウェブブラウザから受信した要求に応じてユーザのデバイス上のウェブブラウザにウェブページを送信することによって、ユーザと対話することができる。また、コンピュータは、テキストメッセージまたは他の形式のメッセージをパーソナルデバイス、たとえば、メッセージングアプリケーションを実行しているスマートフォンに送信し、ユーザからの応答メッセージを受信することによって、ユーザと対話することができる。
【0114】
機械学習モデルを実装するためのデータ処理装置はまた、たとえば、機械学習トレーニングまたは生産の一般的で計算集約的な部分、すなわち推論、ワークロードを処理するための専用ハードウェアアクセラレータユニットを含むことができる。
【0115】
機械学習モデルは、TensorFlowフレームワークなどの機械学習フレームワークを使用して実装および展開することができる。
【0116】
本明細書で説明されている主題の実施形態は、バックエンドコンポーネントを含むコンピューティングシステム、たとえばデータサーバとして、またはアプリケーションサーバなどのミドルウェアコンポーネントを含むコンピューティングシステムにおいて、あるいはグラフィカルユーザインターフェース、ウェブブラウザ、または、ユーザが本明細書で説明されている主題の実装形態と対話することができるアプリを備えたクライアントコンピュータなどのフロントエンドコンポーネントを含むコンピューティングシステムにおいて、あるいは1つまたは複数のそのようなバックエンド、ミドルウェア、またはフロントエンドコンポーネントの任意の組合せを含むコンピューティングシステムにおいて実装することができる。システムのコンポーネントは、デジタルデータ通信の任意の形式または媒体、たとえば通信ネットワークによって相互接続することができる。通信ネットワークの例は、ローカルエリアネットワーク(LAN)およびワイドエリアネットワーク(WAN)、たとえばインターネットを含む。
【0117】
コンピューティングシステムは、クライアントとサーバを含むことができる。通常、クライアントとサーバは互いに離れており、通常は通信ネットワークを通じて対話する。クライアントとサーバの関係は、それぞれのコンピュータで実行され、互いにクライアントとサーバの関係を有するコンピュータプログラムによって発生する。いくつかの実施形態では、サーバは、クライアントとして機能するデバイスと対話するユーザにデータを表示し、ユーザからのユーザ入力を受信する目的で、HTMLページなどのデータをユーザデバイスに送信する。ユーザデバイスにおいて生成されたデータ、たとえばユーザ対話の結果は、デバイスからサーバにおいて受信することができる。
【0118】
本明細書には多くの特定の実装形態の詳細が含まれているが、これらは、発明の範囲または特許請求の範囲の限定として解釈されるべきではなく、特定の発明の特定の実施形態に固有であり得る特徴の説明として解釈されるべきである。別個の実施形態の文脈において本明細書で説明されている特定の特徴はまた、単一の実施形態において組み合わせて実装することができる。逆に、単一の実施形態の文脈において説明されている様々な特徴は、複数の実施形態において個別に、または任意の適切なサブコンビネーションで実装することもできる。さらに、特徴は特定の組合せにおいて作用するものとして上で説明され、最初はそのように主張されることさえあるが、場合によっては、主張された組合せからの1つまたは複数の特徴が組合せから削除される可能性があり、主張された組合せはサブコンビネーションまたはサブコンビネーションのバリエーションを対象とすることができる。
【0119】
同様に、動作は特定の順序で図面に示され、特許請求の範囲に記載されているが、これは、望ましい結果を達成するために、そのような動作が示されている特定の順序または連続した順序で実行されること、または示されているすべての動作が実行されることを必要とするものとして理解されるべきではない。特定の状況では、マルチタスクと並列処理が有利な場合がある。さらに、上述の実施形態における様々なシステムモジュールおよびコンポーネントの分離は、すべての実施形態においてそのような分離を必要とするものとして理解されるべきではなく、説明したプログラムコンポーネントおよびシステムは、一般に、単一のソフトウェア製品に統合するか、または複数のソフトウェア製品にパッケージ化できることを理解されたい。
【0120】
主題の特定の実施形態が説明された。他の実施形態は、以下の特許請求の範囲内にある。たとえば、特許請求の範囲に記載されているアクションは、異なる順序で実行されても、依然として望ましい結果を達成することができる。一例として、添付の図面に示されるプロセスは、望ましい結果を達成するために、示された特定の順序または連続した順序を必ずしも必要としない。場合によっては、マルチタスクと並列処理が有利な場合がある。
【符号の説明】
【0121】
100 アクション選択システム
102 アクション
104 エージェント
106 環境
108 主なタスク報酬
110 観測
112 トレーニングエンジン
114 再生メモリ
118 低次元埋込み
119 補助タスク報酬
120 アクション選択ニューラルネットワーク
122 アクション選択出力
150 埋込みモデル
200 埋込みモデル
210 観測
220 ランダム投影モデル
230 キーポイントモデル
235 キーポイント
240 変分自動エンコーダモデル
245 確率分布の平均
260 色セグメンテーションモデル
265 空間色分布
270 低次元埋込み
300 プロセス
図1
図2
図3