(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2022189799
(43)【公開日】2022-12-22
(54)【発明の名称】Few-shot模倣のためのデモンストレーション条件付き強化学習
(51)【国際特許分類】
G06N 20/00 20190101AFI20221215BHJP
G06N 3/08 20060101ALI20221215BHJP
G06N 3/04 20060101ALI20221215BHJP
【FI】
G06N20/00
G06N3/08
G06N3/04
【審査請求】有
【請求項の数】30
【出願形態】OL
(21)【出願番号】P 2022093953
(22)【出願日】2022-06-09
(31)【優先権主張番号】21305799
(32)【優先日】2021-06-10
(33)【優先権主張国・地域又は機関】EP
(31)【優先権主張番号】17/716520
(32)【優先日】2022-04-08
(33)【優先権主張国・地域又は機関】US
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.SWIFT
2.SMALLTALK
3.MATLAB
4.SIMULINK
5.ERLANG
(71)【出願人】
【識別番号】505205812
【氏名又は名称】ネイバー コーポレーション
【氏名又は名称原語表記】NAVER Corporation
(71)【出願人】
【識別番号】319012978
【氏名又は名称】ネイバーラボス コーポレーション
(74)【代理人】
【識別番号】100107766
【弁理士】
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【弁理士】
【氏名又は名称】伊東 忠彦
(74)【代理人】
【識別番号】100135079
【弁理士】
【氏名又は名称】宮崎 修
(72)【発明者】
【氏名】テオ カシェ
(72)【発明者】
【氏名】クリストファー ダンス
(72)【発明者】
【氏名】ジュリエン パレス
(57)【要約】 (修正有)
【課題】Few-shot模倣を実行するための新規の方法及びシステムを提供する。
【解決手段】訓練データの各セットが、タスクと関連して、報酬関数及び報酬のサンプルのうちの1つ、遷移分布および状態遷移のサンプルのうちの1つ及び第1デモンストレーションのセットを含む訓練データのセットを取得し、第1デモンストレーションのセットをポリシーネットワークに入力し、報酬機能又は報酬のそれぞれのサンプルに基づいて第1デモンストレーションのセットの危険尺度または平均収益を最大化することによって強化学習を使用してエージェントのポリシーネットワークを訓練することと、新規タスクと関連する第2デモンストレーションのセットを取得することと、新規タスクを実行するために第2デモンストレーションのセットおよび状態の観察値を訓練済みのポリシーネットワークに入力することと、を含む。
【選択図】
図1
【特許請求の範囲】
【請求項1】
プロセッサおよびメモリによって実行されて、少なくとも1つのタスクを実行するための訓練済みのポリシーネットワークを含むエージェントとして具体化される方法であって、
前記エージェントを使用して実行される前記方法は、
前記プロセッサが、
前記訓練済みのポリシーネットワークに対する入力として第1デモンストレーション(demonstration)のセットと観察値を取得する段階、
前記第1デモンストレーションと関連するタスクを実行するために、前記第1デモンストレーションのセットと前記観察値を前記訓練済みのポリシーネットワークに入力する段階、および
前記訓練済みのポリシーネットワークにより、前記入力された第1デモンストレーションのセットと前記入力された観察値に基づいて実行される少なくとも1つのアクションを決定する段階を含み、
前記訓練済みのポリシーネットワークは、強化学習(reinforcement learning)を使用して訓練される、方法。
【請求項2】
ロボットまたは前記ロボットの部品を制御すること、マシンを制御すること、車両を制御すること、および環境の状態を操作することのうちの少なくとも1つを含む少なくとも1つのアクションを決定する段階をさらに含む、
請求項1に記載の方法。
【請求項3】
前記訓練済みのポリシーネットワークは、アキシャルアテンション(axial attention)を有するトランスフォーマアーキテクチャ(transformer architecture)を備える、
請求項1に記載の方法。
【請求項4】
前記訓練済みのポリシーネットワークは、前記第1デモンストレーションのセットを処理するための第1セルフアテンションモジュール(self-attention module)、前記観察値を処理するための第2セルフアテンションモジュール、および前記第1デモンストレーションのセットおよび前記観察値を処理するためのクロスアテンションモジュール(cross-attention module)のうちの少なくとも1つを含む、
請求項1に記載の方法。
【請求項5】
前記第1デモンストレーションのセットのうちのデモンストレーションは、観察値のシーケンスを含み、前記観察値それぞれは、状態-アクションペア(state-action pair)、状態、位置、イメージ、およびセンサ測定値のうちの少なくとも1つを含む、
請求項1に記載の方法。
【請求項6】
前記タスクは、ロボットによってオブジェクトを操作するための操作タスクを含み、
前記観察値は、前記ロボットの1つ以上の部品に関する情報を含み、
前記第1デモンストレーションのセットは、前記ロボットの前記1つ以上の部品の位置および方向のうちの少なくとも1つを含むシーケンスを含み、
前記方法は、実行される前記決定されたアクションに基づいて前記ロボットの少なくとも1つのアクチュエータを制御する段階をさらに含む、
請求項1に記載の方法。
【請求項7】
前記タスクは、ロボットをナビゲーティングするためのナビゲーションタスクを含み、
前記観察値は、前記ロボットの1つ以上の部品に関する情報を含み、
前記第1デモンストレーションのセットは、前記ロボットの位置のシーケンスを含み、
前記方法は、実行される前記決定されたアクションに基づいて前記ロボットの少なくとも1つのアクチュエータを制御する段階をさらに含む、
請求項1に記載の方法。
【請求項8】
Few-shot模倣(few-shot imitation)を実行するためのコンピュータ実現方法であって、
訓練データの少なくとも1つのセット(訓練データの各セットは、タスクと関連して(i)報酬関数および報酬のサンプルのうちの少なくとも1つ、(ii)遷移分布および状態遷移のサンプルのうちの少なくとも1つ、および(iii)第1デモンストレーションのセットを含む)を取得する段階、
前記訓練データの少なくとも1つのセットの第1デモンストレーションの少なくとも1つのセットを前記ポリシーネットワークに入力することと、危険尺度またはそれぞれの1つ以上の報酬関数または報酬のそれぞれのサンプルに基づいて前記訓練データの少なくとも1つのセットの前記第1デモンストレーションの少なくとも1つのセットの平均収益(average return)を最大化することにより、強化学習を使用してエージェントで具体化されるポリシーネットワークを訓練させる段階、
前記訓練データに含まれない新規タスクと関連する第2デモンストレーションのセットを取得する段階、および
前記新規タスクを実行するために、前記第2デモンストレーションのセットおよび状態の観察値を前記訓練済みのポリシーネットワークに入力する段階を含む、
Few-shot模倣を実行するためのコンピュータ実現方法。
【請求項9】
前記ポリシーネットワークは、
アキシャルアテンションを有する前記トランスフォーマアーキテクチャ、および
前記第2デモンストレーションのセットを処理するように構成される第1セルフアテンションモジュール、前記状態の前記観察値を処理するように構成される第2セルフアテンションモジュール、および前記第2デモンストレーションのセットおよび前記状態の前記観察値を処理するように構成されるクロスアテンションモジュールのうちの少なくとも1つ
のうちの1つを含む、請求項8に記載のFew-shot模倣を実行するためのコンピュータ実現方法。
【請求項10】
前記ポリシーネットワークは、アキシャルアテンションを有する前記トランスフォーマアーキテクチャを含み、
前記コンピュータ実現方法は、
前記入力された第1デモンストレーションの少なくとも1つのセットを第1多次元テンソルとしてエンコードし、前記第1多次元テンソルの単一の軸に沿って前記ポリシーネットワークの第1トランスフォーマによってアテンションを適用する段階、および
前記入力された第2デモンストレーションのセットを第2多次元テンソルとしてエンコードし、前記第2多次元テンソルの単一の軸に沿って前記ポリシーネットワークの第2トランスフォーマのアテンションを適用する段階
のうちの少なくとも1つをさらに含む、請求項8に記載のFew-shot模倣を実行するためのコンピュータ実現方法。
【請求項11】
前記新規タスクと関連する第2デモンストレーションのセットを取得する段階、および前記新規タスクを実行するために前記第2デモンストレーションのセットと状態の観察値を前記訓練済みのポリシーネットワークに入力する段階は、推論時間に実行され、
前記訓練データの少なくとも1つのセットを取得する段階、および強化学習を使用してポリシーネットワークを訓練する段階は、訓練時間中に実行される、
請求項8に記載のFew-shot模倣を実行するためのコンピュータ実現方法。
【請求項12】
前記ポリシーネットワークを訓練するために、前記訓練データの少なくとも1つのセットの前記第1デモンストレーションの少なくとも1つのセットを前記ポリシーネットワークに入力する段階は、
ポリシーネットワークを訓練するために、前記エージェントの状態、状態-アクションペア、および観察-アクション履歴のうちの少なくとも1つを前記ポリシーネットワークに入力する段階を含む、
請求項8に記載のFew-shot模倣を実行するためのコンピュータ実現方法。
【請求項13】
前記訓練データの少なくとも1つのセットの前記第1デモンストレーションの少なくとも1つのセットは、少なくとも2つのタスクのデモンストレーションを含み、
前記訓練データの少なくとも1つのセットの前記第1デモンストレーションの少なくとも1つのセットの前記平均収益を最大化することは、前記少なくとも2つのタスクの平均累積報酬を最大化することを含む、
請求項8に記載のFew-shot模倣を実行するためのコンピュータ実現方法。
【請求項14】
システムであって、
訓練タスクのセットに基づいて訓練され、トランスフォーマアーキテクチャによって生成される多次元テンソルの単一の軸上でアキシャルアテンションを有する前記トランスフォーマアーキテクチャを含むポリシーネットワークを含む制御モジュール、および
前記訓練タスクとは異なるタスクに対するデモンストレーションのセットを前記ポリシーネットワークに入力し、前記入力されたデモンストレーションのセットに基づいて生成される前記多次元テンソルの前記単一の軸に基づいて前記トランスフォーマアーキテクチャのエンコーダモジュールの加重値パラメータを訓練するように構成される訓練モジュールを含む、システム。
【請求項15】
前記訓練モジュールは、前記ポリシーネットワークの平均収益を最大化することに基づいて前記エンコーダモジュールの前記加重値パラメータを訓練するように構成される、請求項14に記載のシステム。
【請求項16】
前記制御モジュールは、前記ポリシーネットワークの出力に基づいてアクチュエータを選択的に作動させるように構成される、請求項14に記載のシステム。
【請求項17】
前記トランスフォーマアーキテクチャは、前記デモンストレーションのセットに基づいて前記多次元テンソルを生成するように構成されるエンコードモジュールを含む、請求項14に記載のシステム。
【請求項18】
前記デモンストレーションのセットの各デモンストレーションは、時系列の観察値を含む、請求項14に記載のシステム。
【請求項19】
前記時系列の観察値は、ランダムな長さを有する、請求項18に記載のシステム。
【請求項20】
それぞれの観察値は、
状態-アクションペア、状態、位置、イメージ、および測定値のうちの少なくとも1つを含む、請求項18に記載のシステム。
【請求項21】
前記タスクはオブジェクトを操作するものであり、前記デモンストレーションのセットはロボットの位置および方向のシーケンスを含む、請求項14に記載のシステム。
【請求項22】
前記タスクは、目標位置に向かってナビゲーティングすることを含み、
前記デモンストレーションのセットは、ナビゲーティングロボットの位置のシーケンスを含む、請求項14に記載のシステム。
【請求項23】
前記ポリシーネットワークは、直列接続するL個のエンコーダ層を含み、Lは1よりも大きい整数である、請求項14に記載のシステム。
【請求項24】
前記ポリシーネットワークは、前記L個のエンコーダ層の出力に基づいてアクションを決定するように構成されるL個のデコーダ層をさらに含む、請求項23に記載のシステム。
【請求項25】
メモリに記録される命令語を実行するプロセッサをさらに含み、前記メモリに記録される前記命令語は、前記ポリシーネットワークを含み、前記制御モジュールおよび前記訓練モジュールに対する命令語をさらに含む、請求項14に記載のシステム。
【請求項26】
前記命令語は、強化学習を使用し、前記訓練タスクを利用して前記ポリシーネットワークを訓練するための命令語をさらに含む、請求項25に記載のシステム。
【請求項27】
前記命令語は、前記訓練タスクとは異なる前記タスクに対する前記デモンストレーションのセットに基づいて実行される少なくとも1つのアクションを決定するように構成される、前記ポリシーネットワークを含む、エージェントに対する命令語をさらに含む、請求項26に記載のシステム。
【請求項28】
前記少なくとも1つのアクションは、ナビゲーションアクションである、請求項27に記載のシステム。
【請求項29】
前記エージェントは、ロボットに対する前記ナビゲーションアクションを決定する、請求項28に記載のシステム。
【請求項30】
強化学習を使用する前記命令語は、プロキシマルポリシー最適化(proximal policy optimization)を使用する、請求項26に記載のシステム。
【発明の詳細な説明】
【技術分野】
【0001】
本出願は、2021年6月10日に出願された欧州出願番号EP21305799の利益を主張する。ここで言及される出願のすべての開示は、本願に参照援用される。
【0002】
本開示は、Few-shot模倣(Few-shot imitation)に関し、より詳細には、Few-shot模倣エージェントのためのポリシー(policy)ネットワークに関する。
【背景技術】
【0003】
人間は、他人から学ぶという独自に開発された能力のおかげで成功に繋がることがあるが、その核心要素は模倣する能力である。人間は多くの場合、タスクの実行を学ぶために数量のデモンストレーション(demonstration)だけを必要とするが、コンピュータデバイスによる模倣学習は、簡単なタスクを学ぶためにも極めて多くのデモンストレーションを必要とすることがある。これは、エージェントが、訓練されておらず、以前には経験したことのないタスク(そのタスクに対し、エージェントはタスクのデモンストレーションを数回見ただけで訓練されていない)を完了しなければならないエージェントの予想性能を最大化することを目標とするFew-shot模倣研究の動機付けとなった。例えば、ロボットが窓を閉めるという訓練が今まで一度も経験したことがなく、さらに窓の初期状態がデモンストレーションの窓と同じでなかったとしても、人間は窓を閉める方法をデモンストレーションし、ロボットが窓を閉めることを期待するようになる。
【0004】
Few-shot模倣は、人工エージェント(例えば、コンピュータデバイスの制御モジュールで実現される)で多様な範囲のタスクを実行したいという希望、およびタスクの代表的なセットで訓練された単一のFew-shotの模倣エージェントで許容可能な制限範囲内のデモンストレーションによって多数の新規タスクを一般化するための表現を構築したいという希望を動機としている。
【0005】
Few-shot模倣システムは、挙動複製(behavior cloning:BC)を使用したりもする。この場合、エージェントは、デモンストレーションから報酬関数を推論した後、その報酬関数に対するポリシーを訓練させるために、アクション予測損失(action-prediction loss)または逆強化学習(inverse reinforcement learning:IRL)を最小限に抑える。しかし、このようなシステムは、次の制限事項のうちの1つ以上を経験する。先ず、アクションがデモンストレーションの一部であるということ、異なるタスクが共通の遷移分布(common transition distribution)を共有するということを前提とする。さらに、エージェントとデモンストレーション者(demonstrator)の間のドメインシフトを無視したり、次善のデモンストレーション者が改善されなかったり、新規タスクのデモンストレーションが提示されるたびにポリシーを訓練したりもする。例えば、人間のデモンストレーションからポリシーを推論するロボットの場合は、このような制限事項すべてを解決することが実質的に重要となる。
【0006】
非効率的で低性能のFew-shot模倣エージェントと、これを訓練する問題を解決する必要がある。
【発明の概要】
【発明が解決しようとする課題】
【0007】
最新技術の課題を解決するために、Few-shot模倣を実行するための新規の方法およびシステム(例えば、エージェントを含む)を開示する。
【課題を解決するための手段】
【0008】
一実施形態において、コンピュータ実現方法は、訓練データの少なくとも1つのセットを取得することを含む。訓練データの各セットは、タスク、例えば、ポリシーネットワークを訓練するための既知のタスクと関連し、報酬関数および報酬のサンプルのうちの少なくとも1つ、および遷移分布および状態遷移のサンプルのうちの少なくとも1つを含む。コンピュータ実現方法は、訓練データの少なくとも1つのセットの第1デモンストレーションの少なくとも1つのセットをポリシーネットワークに入力することにより、危険尺度、例えば、分布RLを使用した条件付きリスク値(conditional value-at-risk:CVaR)、またはそれぞれの1つ以上の報酬関数または報酬のそれぞれのサンプルに基づく訓練データの少なくとも1つのセットの第1デモンストレーションの少なくとも1つのセットの平均収益(average return)を最大化することによって強化学習を使用して(例えば、コンピュータ制御モジュールで具体化される)エージェントのポリシーネットワークを訓練すること、新規タスクと関連する第2デモンストレーションのセットを取得すること、および新規タスクを実行するためにエージェントの状態の観察値および第2デモンストレーションのセットを訓練済みのポリシーネットワークに入力することを含む。報酬のサンプルおよび/または状態遷移のサンプルはシミュレーションまたはオフラインデータから取得してよく、オフラインデータは訓練以前に実際のシステムから収集してよい。
【0009】
エージェントのポリシーネットワークを訓練することと、新規タスクを実行するために訓練されたポリシーネットワークに第2デモンストレーションのセットと状態の観察値を入力することにより、Few-shot模倣を効率的に実行するための改善された方法を提供する。
【0010】
多様な特徴において、ポリシーネットワークは、第2デモンストレーションのセットを処理するための第1セルフアテンションメカニズム(self-attention mechanism)、状態の観察値を処理するための第2セルフアテンションメカニズム、および第2デモンストレーションのセットおよび状態の観察値を処理するためのクロスアテンションメカニズム(cross-attention mechanism)のうちの少なくとも1つを含む。例えば、ポリシーネットワークは、トランスフォーマ基盤のポリシーネットワーク(transformer-based policy network)を含む。トランスフォーマ基盤のポリシーネットワークは、アキシャルアテンション(axial attention)を有する少なくとも1つのトランスフォーマ(トランスフォーマアーキテクチャ)を含んでよい。入力された第1デモンストレーションの少なくとも1つのセットは、第1多次元テンソルとしてエンコードされてよく、少なくとも1つのトランスフォーマのうちの第1トランスフォーマのアテンションは、例えば、多次元テンソルを平坦化しなくても、第1多次元テンソルの単一の軸に沿って適用されてよい。代案的または追加的に、入力された第2デモンストレーションのセットは、第2多次元テンソルとしてエンコードされてよく、少なくとも1つのトランスフォーマのうちの第2トランスフォーマのアテンションは、第2多次元テンソルの単一の軸に沿って適用されてよい。アキシャルアテンションを有するトランスフォーマを使用することにより、ポリシーネットワークを訓練するための効率的な方法を提供する。具体的に、アキシャルアテンションを有するトランスフォーマは、多数の入力デモンストレーション、単一のデモンストレーションのビデオ、または任意の他の多次元入力を効率的に処理する。
【0011】
多様な特徴において、同じ目的のために、トランスフォーマまたはトランスフォーマネットワークの代わりに、セルフアテンションおよびクロスアテンションメカニズムが使用されてよい。実施形態において、トランスフォーマの代わりに、トランスフォーマ以外のセルフアテンションおよびクロスアテンションメカニズムが使用されるが、例えば、観察値および/またはデモンストレーションのセットを処理するためにセルフアテンションメカニズムが使用されてよく、観察値およびデモンストレーションのセットを処理するためにクロスアテンションメカニズムが使用されてよい。多様な実施形態では、アテンションメカニズムを使用しなくてもよい。例えば、1つ以上のアテンションメカニズムの代わりにS4シーケンスモデルが実現されてもよい。S4シーケンスモデルについての詳細事項は、インターネット上のopenreview.net/forum?id=uYLFoz1vlACで確認できるが、このすべては本明細書に統合される。
【0012】
特徴として、新規タスクと関連する第2デモンストレーションのセットを取得することと、第2デモンストレーションのセットを入力することと、新規タスクを実行するために第2デモンストレーションのセットおよび状態の観察値を訓練済みのポリシーネットワークに入力することは、推論時間またはエージェントのランタイム時に実行される。訓練データの少なくとも1つのセットを取得することと、強化学習を使用してポリシーネットワークを訓練することは、訓練時間中に実行されてよい。
【0013】
一側において、ポリシーネットワークを訓練するために訓練データの少なくとも1つのセットの第1デモンストレーションの少なくとも1つのセットをポリシーネットワークに入力することは、ポリシーネットワークを訓練するために、エージェントの状態、状態-アクションペア(state-action pair)、観察履歴および観察-アクション履歴(observation-action history)のうちの少なくとも1つをポリシーネットワークに入力することを含む。訓練データの少なくとも1つのセットの第1デモンストレーションの少なくとも1つのセットは、少なくとも2つのタスクのデモンストレーションを含んでよく、平均収益は、少なくとも2つのタスクの平均累積報酬を最大化することによって訓練データの少なくとも1つのセットの第1デモンストレーションの少なくとも1つのセットに最大化されてよい。複数のタスクと関連する訓練データを使用することにより、ポリシーネットワークは、ポリシーネットワークのさらなる一般化に起因して、新規タスクを実行するための改善された結果を提供する。
【0014】
方法は、訓練済みのポリシーネットワークにより、状態の観察値および第2デモンストレーションのセットに基づいて1つ以上のアクションの分布を取得あるいは決定することを含んでよい。訓練データの少なくとも1つのセットと関連する少なくとも1つのタスクおよび新規タスクは関連してよく、例えば、新規タスクに対する最適なポリシーは、少なくとも1つのタスクに対する最適なポリシーと類似してよい。訓練データの少なくとも1つのセットと関連する少なくとも1つのタスクおよび新規タスクは異なってよく、訓練データの少なくとも1つのセットと関連するすべてのタスクおよび新規タスクは異なってよい。
【0015】
一実施形態において、エージェントは、少なくとも1つのタスクを実行するために事前訓練されたポリシーネットワークを含む。エージェントは、事前訓練されたポリシーネットワークに対する入力として第1デモンストレーションのセットおよび観察値を取得するように、第1デモンストレーションと関連するタスクを実行するために第1デモンストレーションのセットおよび観察値を事前訓練されたポリシーネットワークに入力するように、さらに事前訓練されたポリシーネットワークに入力された第1デモンストレーションのセットおよび入力された観察値に基づいて実行される少なくとも1つのアクションを決定するように構成される。事前訓練されたポリシーネットワークは、強化学習を使用して訓練されてよい。例えば、事前訓練されたポリシーネットワークは、訓練タスクのセットの各訓練タスクに対する訓練デモンストレーションのセットを使用した訓練タスクのセットに対する強化学習を使用して訓練されるデモンストレーション条件付きポリシーネットワーク(demonstration-conditioned policy network)を含んでよい。
【0016】
事前訓練されたポリシーネットワークは、第1デモンストレーションのセットを処理するための第1セルフアテンションメカニズム、観察値に対する第2セルフアテンションメカニズム、および第1デモンストレーションのセットと観察値を処理するためのクロスアテンションメカニズムのうちの少なくとも1つを含んでよい。例えば、事前訓練されたポリシーネットワークは、事前訓練されたトランスフォーマ基盤のポリシーネットワークを含んでよい。事前訓練されたトランスフォーマ基盤のポリシーネットワークは、アキシャルアテンションを有する少なくとも1つのトランスフォーマを含んでよい。第1デモンストレーションのセットうちのデモンストレーションは、ランダムな長さの観察値のシーケンスであってよい。観察値は、状態-アクションペア、状態、位置、イメージ、およびセンサ測定値のうちの少なくとも1つを含んでよい。第1デモンストレーションのセットはデモンストレーション者から受信してよい。
【0017】
特徴として、ロボットは、少なくとも1つのタスクを実行するための事前訓練されたポリシーネットワークを含むエージェントを含むが、ここで、タスクは、オブジェクトを操作するための操作タスクを含み、観察値は、ロボットまたはロボットの1つ以上の部品に関する情報を含み、第1デモンストレーションのセットは、ロボットまたはロボットの1つ以上の部品の位置および/または方向のシーケンスを含み、ロボットの少なくとも1つのアクチュエータまたはモータは、環境の状態を修正するために実行される決定されたアクションに基づいて制御される。操作タスクは、ロボットを使用することにより、環境に関連する制約およびロボットの機械的属性を考慮しながら、オブジェクトを含む環境の状態を意図的な方式で修正するタスクとして定義されてよい。
【0018】
特徴として、ロボットは、少なくとも1つのタスクを実行するための事前訓練されたポリシーネットワークを含むエージェントを含む。タスクは、ロボットまたはロボットの部品をナビゲーティング(navigating)のためのナビゲーションタスク(navigation task)を含んでよい。観察値は、ロボットまたはロボットの部品の位置を含んでよい。第1デモンストレーションのセットは、ロボットまたはロボットの部品の位置のシーケンスを含んでよい。ロボットの少なくとも1つのアクチュエータまたはモータは、実行される決定されたアクションに基づいて制御されてよい。ナビゲーションタスクを実行するための事前訓練されたポリシーネットワークを含むエージェントを含むロボットを提供することにより、位置または視覚的観察値に基づくマップレス(map less)または軌跡基盤のナビゲーションを許容する改善されたロボットを達成する。
【0019】
さらなる特徴において、コンピュータで実行可能な命令語が記録されたコンピュータ読み取り可能な記録媒体が提供される。1つ以上のプロセッサによって実行されるとき、コンピュータで実行可能な命令語は、本明細書で説明するFew-shot模倣を実行するための方法を実行する。
【0020】
さらなる特徴において、処理回路部(circuitry)を含む装置が提供される。処理回路部は、上述したエージェントを実行するように構成される。
【0021】
特徴において、少なくとも1つのタスクを実行するための訓練済みのポリシーネットワークを含むエージェントで具体化される、プロセッサおよびメモリによって実行される方法を説明する。方法は、訓練済みのポリシーネットワークに対する入力として第1デモンストレーションのセットと観察値を取得すること、および第1デモンストレーションと関連するタスクを実行するために第1デモンストレーションのセットおよび観察値を訓練済みのポリシーネットワークに入力することと、訓練済みのポリシーネットワーク(訓練済みのポリシーネットワークは、強化学習を使用して訓練される)に入力された第1デモンストレーションのセットと入力された観察値に基づいて実行される少なくとも1つのアクションを決定することを含む。
【0022】
さらなる特徴において、方法は、ロボットまたはロボットの部品を制御すること、マシンを制御すること、車両を制御すること、および環境の状態を操作することのうちの少なくとも1つを含む少なくとも1つのアクションを決定する段階をさらに含む。
【0023】
さらなる特徴において、訓練済みのポリシーネットワークは、アキシャルアテンションを有するトランスフォーマアーキテクチャを含む。
【0024】
さらなる特徴において、訓練済みのポリシーネットワークは、第1デモンストレーションのセットを処理するための第1セルフアテンションモジュール、観察値を処理するための第2セルフアテンションモジュール、および第1デモンストレーションのセットと観察値を処理するためのクロスアテンションモジュールのうちの少なくとも1つを含む。
【0025】
さらなる特徴において、第1デモンストレーションのセットのうちのデモンストレーションは観察値のシーケンスを含むが、ここで、各観察値は、状態-アクションペア、状態、位置、イメージ、およびセンサ測定値のうちの少なくとも1つを含む。
【0026】
さらなる特徴において、タスクは、ロボットによってオブジェクトを操作するための操作タスクを含み、観察値は、ロボットの1つ以上の部品に関する情報を含み、第1デモンストレーションのセットは、ロボットの1つ以上の部品の位置および方向のうちの少なくとも1つを含むシーケンスを含み、方法は、実行される決定されたアクションに基づいてロボットの少なくとも1つのアクチュエータを制御することをさらに含む。
【0027】
さらなる特徴において、タスクは、ロボットをナビゲーティングするためのナビゲーションタスクを含み、観察値は、ロボットの1つ以上の部品に関する情報を含み、第1デモンストレーションのセットは、ロボットの位置のシーケンスを含み、方法は、実行される決定されたアクションに基づいてロボットの少なくとも1つのアクチュエータを制御することをさらに含む。
【0028】
特徴において、Few-shot模倣を実行するためのコンピュータ実現方法は、訓練データ(訓練データのそれぞれのセットは、タスクと関連して、(i)報酬関数および報酬のサンプルのうちの少なくとも1つ、(ii)遷移分布および状態遷移のサンプルのうちの少なくとも1つ、および(iii)第1デモンストレーションのセットを含む)の少なくとも1つのセットを取得すること、訓練データの少なくとも1つのセットの第1デモンストレーションの少なくとも1つのセットをポリシーネットワークに入力すること、危険尺度またはそれぞれの1つ以上の報酬関数または報酬のそれぞれのサンプルに基づいて訓練データの少なくとも1つのセットの第1デモンストレーションの少なくとも1つのセットの平均収益を最大化することによって強化学習を使用してエージェントで具体化されるポリシーネットワーク訓練を訓練すること、訓練データには含まれない新規タスクと関連する第2デモンストレーションのセットを取得すること、および新規タスクを実行するために第2デモンストレーションのセットおよび状態の観察値を訓練済みのポリシーネットワークに入力することを含む。
【0029】
さらなる特徴において、ポリシーネットワークは、アキシャルアテンションを有するトランスフォーマアーキテクチャおよび第2デモンストレーションのセットを処理するように構成される第1セルフアテンションモジュール、状態の観察値を処理するように構成される第2セルフアテンションモジュール、および第2デモンストレーションのセットおよび状態の観察値を処理するように構成されるクロスアテンションモジュールのうちの少なくとも1つを含む。
【0030】
さらなる特徴において、ポリシーネットワークは、アキシャルアテンションを有するトランスフォーマアーキテクチャを含み、コンピュータ実現方法は、入力された第1デモンストレーションの少なくとも1つのセットを第1多次元テンソルとしてエンコードし、第1多次元テンソルの単一の軸に沿ってポリシーネットワークの第1トランスフォーマによってアテンションを適用すること、および入力された第2デモンストレーションのセットを第2多次元テンソルとしてエンコードし、第2多次元テンソルの単一の軸に沿ってポリシーネットワークの第2トランスフォーマのアテンションを適用することのうちの少なくとも1つをさらに含む。
【0031】
さらなる特徴において、新規タスクと関連する第2デモンストレーションのセットを取得することと新規タスクを実行するために第2デモンストレーションのセットおよび状態の観察値を訓練済みのポリシーネットワークに入力することは、推論時間に実行され、訓練データの少なくとも1つのセットを取得することと強化学習を使用してポリシーネットワークを訓練することは、訓練時間内に実行される。
【0032】
さらなる特徴において、ポリシーネットワークを訓練するために訓練データの少なくとも1つのセットの第1デモンストレーションの少なくとも1つのセットをポリシーネットワークに入力することは、ポリシーネットワークを訓練するために、エージェントの状態、状態-アクションペア、および観察-アクション履歴のうちの少なくとも1つをポリシーネットワークに入力することを含む。
【0033】
さらなる特徴において、訓練データの少なくとも1つのセットの第1デモンストレーションの少なくとも1つのセットは、少なくとも2つのタスクのデモンストレーションを含み、訓練データの少なくとも1つのセットの第1デモンストレーションの少なくとも1つのセットの平均収益を最大化することは、少なくとも2つのタスクの平均累積報酬を最大化することを含む。
【0034】
特徴において、システムは、訓練タスクのセットに基づいて訓練され、トランスフォーマアーキテクチャによって生成される多次元テンソルの単一の軸上でアキシャルアテンションを有するトランスフォーマアーキテクチャを含むポリシーネットワークを含む制御モジュール、および訓練タスクとは異なるタスクに対するデモンストレーションのセットをポリシーネットワークに入力し、入力されたデモンストレーションのセットに基づいて生成される多次元テンソルの単一の軸に基づいてトランスフォーマアーキテクチャのエンコーダモジュールの加重値パラメータを訓練するように構成される訓練モジュールを含む。
【0035】
さらなる特徴において、訓練モジュールは、ポリシーネットワークの平均収益を最大化することに基づいてエンコーダモジュールの加重値パラメータを訓練するように構成される。
【0036】
さらなる特徴において、制御モジュールは、ポリシーネットワークの出力に基づいてアクチュエータを選択的に作動するように構成される。
【0037】
さらなる特徴において、トランスフォーマアーキテクチャは、デモンストレーションのセットに基づいて多次元テンソルを生成するように構成されるエンコードモジュールを含む。
【0038】
さらなる特徴において、デモンストレーションのセットの約デモンストレーションは、時系列の観察値を含む。
【0039】
さらなる特徴において、時系列の観察値は、ランダムな長さを有する。
【0040】
さらなる特徴において、各観察値は、状態-アクションペア、状態、位置、イメージ、および測定値のうちの少なくとも1つを含む。
【0041】
さらなる特徴において、タスクは、オブジェクトを操作するものであり、デモンストレーションのセットは、ロボットの位置および方向のシーケンスを含む。
【0042】
さらなる特徴において、タスクは、目標位置に向かってナビゲーティングすることを含み、デモンストレーションのセットは、ナビゲーティングロボットの位置のシーケンスを含む。
【0043】
さらなる特徴において、ポリシーネットワークは、直列に繋がっているL個のエンコーダ層を含むが、ここで、Lは1よりも大きい整数である。
【0044】
さらなる特徴において、ポリシーネットワークは、L個のエンコーダ層の出力に基づいてアクションを決定するように構成されるL個のデコーダ層をさらに含む。
【0045】
さらなる特徴において、メモリに記録される命令語を実行するプロセッサを説明するが、ここで、メモリに記録される命令語は、ポリシーネットワークを含む制御モジュールおよび訓練モジュールのための命令語をさらに含む。
【0046】
さらなる特徴において、命令語は、強化学習を使用して訓練タスクによってポリシーネットワークを訓練するための命令語をさらに含む。
【0047】
さらなる特徴において、命令語は、訓練タスクとは異なるタスクに対するデモンストレーションのセットに基づいて実行される少なくとも1つのアクションを決定するように構成されるポリシーネットワークを含むエージェントのための命令語をさらに含む。
【0048】
さらなる特徴において、少なくとも1つのアクションは、ナビゲーションアクションである。
【0049】
さらなる特徴において、エージェントは、ロボットのナビゲーションアクションを決定する。
【0050】
さらなる特徴において、強化学習を使用する命令語は、PPO(proximal policy optimization)を使用する。
【0051】
以下の詳細な説明および添付の図面は、本発明の本質および利点をさらに詳細に理解するために提供する。
【図面の簡単な説明】
【0052】
添付の図面は、実施形態の原理を説明する目的で本明細書に組み込まれ、本明細書の一部を形成する。図面は、実施形態を、それらがどのように作成されて使用されるかを例示しており、実施形態だけに制限されるように解釈されてはならない。以下の実施形態の説明に基づき、特徴や利点がより明らかに具体化されるであろう。
【
図1】Few-shot模倣を実行するための方法を例示的に示したフローチャートである。
【
図2】ポリシーネットワークを訓練するための方法を例示的に示したフローチャートである。
【
図3a】ポリシーネットワークを訓練するための方法を例示的に示したフローチャートである。
【
図3b】ポリシーネットワークの例示的なアーキテクチャを含んだ機能ブロック図である。
【
図4】エージェントが実行するナビゲーションタスクの3つの例を示した図である。
【
図5】開示するシステム方法を活用した例示的なアーキテクチャを含んだ機能ブロック図である。
【発明を実施するための形態】
【0053】
本明細書は、Few-shot模倣のためのシステムおよび方法について説明する。説明の目的のために、説明する実施形態の徹底した理解を提供するために多数の例示および特定の詳細事項を記述する。特許請求の範囲で定義する実施形態は、例示の特徴のうちの一部またはすべてを単独または他の特徴と組み合わせて含んでよく、本明細書で説明する特徴および概念の修正および等価物をさらに含んでもよい。例示的な例は、要素および構造物が参照番号で示されている図面を参照しながら説明する。また、実施形態が方法である場合、その方法の機能および要素は、並列または順次の実行、または異なる順序での実行に組み合わされてもよい。これらが矛盾しない限り、以下で説明する各実施形態の部分は互いに結合されてよい。
【0054】
模倣学習は、Few-shot模倣の必須要素ではない。本明細書では、BCまたはIRLFew-shot学習を含まないFew-shot学習のためのシステムおよび方法について説明する。単一タスク模倣学習が使用されてもよい。開示する接近法は、デモンストレーション条件付き強化学習(demonstration-conditioned reinforcement learning:DCRL)とも呼ばれる。
【0055】
DCRLにおいて、訓練セットは、例えば、
図3aに示すように、多数のタスクに対するデモンストレーション、報酬関数、および報酬のサンプルのうちの1つ、および遷移分布および状態遷移のサンプルのうちの1つを含んでよい。
図3aの例では、タスクが積み重ねられて示されている。
【0056】
エージェント(例えば、コンピュータデバイスの制御モジュール)のポリシーまたはポリシーネットワークは、エージェントの状態または観察-アクション履歴に追加して入力としてデモンストレーションを受信してもよい。ポリシーまたはポリシーネットワークを訓練するために、訓練タスクのセットの平均累積報酬が最大化されてよい。推論時間に、新規タスクのデモンストレーションは、状態の観察値とともに、訓練されたポリシーまたはポリシーネットワークに入力されてよく、アクションは、訓練済みのポリシーまたはポリシーネットワークから出力されてよい。デモンストレーションはエージェントにタスクの目標を通知するように機能するが、これらは、タスクを実行する方法の例として機能するし、遷移分布がタスクごとに異なる場合には遷移分布に関する情報を提供する。しかし、DCRLは、例えば、回避学習(avoidance learning)の場合、デモンストレーションとタスクの関係が異なる状況でも直接適用されてもよい。
【0057】
DCRLは、Few-shot模倣学習に対する他の接近法に比べて多様な利点がある。特別な修正なく、DCRLは、状態専用観察を含むデモンストレーションを許容することができ、デモンストレーション者とエージェントの間のドメインシフトのある状況を解決することができ、次善のデモンストレーションを改善し、および/または新規タスクが提示されたときに追加の訓練を必要としない。
【0058】
単一のデモンストレーションが新規タスクの目的を伝達するのに十分でない場合、多数の入力デモンストレーションにわたる交差デモンストレーションアテンションが使用されてよい。トランスフォーマアーキテクチャを活用するポリシーを含むFew-shot模倣の計算コストは、それぞれが多変量時系列である複数のデモンストレーションを含む入力に対して驚くほど高価になることがある。アキシャルアテンションをもつトランスフォーマは、このような入力に対して効率的な代案的アーキテクチャを提供することができ、これらが入力の時間およびデモンストレーション次元を独立的に処理するときに使用することができる。トランスフォーマアーキテクチャは、米国特許第10,452,978号で説明されているが、この特許のすべては本明細書に統合される。また、トランスフォーマアーキテクチャは、『Ashish Vaswani,Noam Shazeer,Niki Parmar,Jakob Uszkoreit,Llion Jones,Aidan NGomez、tukasz Kaiser,and Illia Polosukhin,“Attention is all you need”,InI.Guyon,U.V.Luxburg,S.Bengio,H.Wallach,R.Fergus,S.Vishwanathan,and R.Garnett,editors,Advances in Neural Information Processing Systems 30,pages5998-6008,Curran Associates,Inc.,2017』で説明されているが、この文献のすべては本明細書に統合される。
【0059】
DCRLの場合、ポリシーアーキテクチャに対するアキシャルアテンションをもつトランスフォーマアーキテクチャによってイネーブルされる交差デモンストレーションアテンションが使用されてよい。他の代案と比べると、ロボット操作とナビゲーションのベンチマークの結果は、DCRLの優れた性能はもちろん、次善デモンストレーションの改善、ドメインシフトに対処する能力を提供する。
【0060】
図1は、Few-shot模倣学習を実行するための方法100を例示的に示したフローチャートである。段階110で、方法100は、訓練データの少なくとも1つのセットを取得する訓練モジュールを含み、訓練データの各セットは、タスク、例えば、訓練タスクと関連する。訓練データの各セットは、報酬関数および報酬のサンプルのうちの少なくとも1つ、遷移分布および状態遷移のサンプルのうちの少なくとも1つ、および第1デモンストレーションのセットを含む。第1デモンストレーションのセットのうちのデモンストレーションは、ランダムな長さの観察値のシーケンスであってよい。観察値は、状態-アクションペア、状態、位置、イメージ、およびセンサ測定値のうちの少なくとも1つを含む。
【0061】
段階120で、方法100は、訓練データの少なくとも1つのセットに基づき、例えば、訓練データの複数のセットに基づき、強化学習を使用してエージェント(例えば、コンピュータデバイスの制御モジュール)のポリシーネットワークを訓練する訓練モジュールを含む。訓練は、
図2の方法によって実行されてよく、段階210~240を含む。
【0062】
段階130で、訓練モジュールは、エージェントによる実行のための新規タスクと関連する第2デモンストレーションのセットを取得する。第2デモンストレーションのセットは、デモンストレーション者によって提供されてよい。デモンストレーション者は人間であってよく、第2デモンストレーションのセットは1つ以上のユーザ入力デバイス、例えば、1つ以上のジョイスティックまたは他のタイプのユーザ入力デバイスから受信されてよい。新規タスクは、訓練データの少なくとも1つのセットと関連するタスクと関連してよい。例えば、新規タスクおよび訓練データの少なくとも1つのセットと関連するタスクは、類似の最適なポリシーを有してよい。多様な実施形態において、新規タスクおよび訓練データの少なくとも1つのセットと関連する少なくとも1つのタスクは、相異してよい。代案的に、新規タスクおよび訓練データの少なくとも1つのセットと関連するすべてのタスクは、相異してよい。第2デモンストレーションのセットは、5つ、または他の適切な数のような事前に定められた数未満のデモンストレーションを含んでよい。これにより、制限された数(事前に定められた数未満)のデモンストレーションだけを使用してFew-shot模倣学習が許容されてよい。
【0063】
段階140で、訓練モジュールは、新規タスクを実行するために、訓練済みのポリシーネットワークにエージェントの状態の観察値および第2デモンストレーションのセットを入力する。
【0064】
段階150で、訓練モジュールは、状態の観察値および第2デモンストレーションのセットに基づいて、訓練済みのポリシーネットワークによって採択される1つ以上のアクションの分布を取得する。訓練モジュールは、例えば、分布に基づいてポリシーネットワークの1つ以上の加重値パラメータを調整することにより、分布に基づいてポリシーネットワークを訓練してよい。
【0065】
段階110と段階120は、訓練中に実行される。段階130~150は、例えば、エージェントのランタイムなどの推論時間に実行されてよい。
【0066】
図2は、エージェントのポリシーネットワークを訓練するための方法200を例示的に示したフローチャートである。
【0067】
段階210で、訓練モジュールは、訓練データの少なくとも1つのセットの第1デモンストレーションの少なくとも1つのセット、例えば、第1デモンストレーションの複数のセットをポリシーネットワークに入力する。また、訓練モジュールは、ポリシーネットワークを訓練するために、エージェントの状態、状態-アクションペア、および観察-アクション履歴のうちの少なくとも1つをポリシーネットワークに入力する。
【0068】
段階220で、ポリシーネットワークは、第1デモンストレーションの少なくとも1つのセットを第1多次元テンソルとしてエンコードするか埋め込む。
【0069】
段階230で、採択するアクションを決定するために、少なくとも1つのトランスフォーマのうちの第1トランスフォーマのアテンションが第1多次元テンソルの単一の軸に沿って適用されてよい。
【0070】
段階240で、訓練モジュールは、報酬のサンプルまたは訓練データの報酬関数に基づいて訓練データの少なくとも1つのセットの第1デモンストレーションの少なくとも1つのセットの平均収益を最大化することに基づいて、ポリシーネットワークを訓練する。代案的に、訓練モジュールは、報酬の各サンプルまたは1つ以上の報酬関数に基づいて訓練データの少なくとも1つのセットの第1デモンストレーションの少なくとも1つのセットの危険尺度を最大化することに基づいて、ポリシーネットワークを訓練してよい。
【0071】
図3aは、エージェント(例えば、コンピュータデバイスの制御モジュールで具体化される)のポリシーネットワークを訓練するためにデモンストレーションと環境相互作用の両方を使用する、本出願に係るDCRLアルゴリズムを示した例示図である。
【0072】
タスクは、タスクの分布ηからサンプリングされてよい。各タスクμ~ηは、Markov(マルコフ)決定プロセスMμおよびデモンストレーションのコレクションにわたって分布Dμと関連する。Δ(X)は、セットXに対する確率分布のセットを示す。マルコフ決定過程Mμ:=(S、A、ρμ、Pμ、Rμ、γ)は、状態Sセット、アクションAセット、初期状態分布ρμ∈Δ(S)、遷移分布Pμ:S×A->Δ(S)、S×Aから実数値のランダム変数の空間へのマッピングであるランダム報酬Rμ、ディスカウント因子γ∈[0、1]を有する。S:=∪μSμまたはA:=∪μAμは、これらのセットがμに依存する場合に定義される。無限水平線の設定はγ<1とともに考慮されるが、これだけでなく、エピソードの設定はγ≦1とともに考慮されるが、これらは一部の状態が吸収され、報酬がゼロであると仮定してモデリングされる。
【0073】
【0074】
【数2】
をこのような履歴をアクションにわたる分布にマッピングされるポリシーの空間とする。タスクμに対するポリシー
【0075】
【0076】
【0077】
【数5】
は、ρ
μ、P
μ、およびπからサンプリングされる状態-アクションシーケンス(s0、a0、s1、a1、・・・)の期待値となる。各タスクμに対し、マルコフ決定過程M
μは、J
μ(・)がポリシーに対して存在するようにし、J
μ(・)を最大化する最適な(訓練済みの)ポリシーが存在するようなものであると想定されてよい。
【0078】
【0079】
デモンストレーションは、ランダムな長さ
【0080】
【0081】
【0082】
【0083】
【数10】
となるようにする状態-アクションペアであってよく、観察値は、
【0084】
【数11】
となるようにする状態であってよく、または観察値は、状態に対する部分情報だけを提供するイメージまたは他のセンサ測定値および/または推定値であってよい。このような観察値は、デモンストレーションモジュールから由来してもよい。観察値は、マルコフ決定過程M
μと関連する必要がない。ゼロでない有限な長さのすべての観察値シーケンスのセットは、例えば、Kleeneプラス演算を使用し、Ω
+によって示されてよい。
【0085】
タスクμのデモンストレーションのコレクションは、分布Dμからサンプリングされる。デモンストレーションのコレクション
【0086】
【0087】
【数13】
個のそれぞれのデモンストレーション、例えば、ランダム個数のそれぞれのデモンストレーションを含む。デモンストレーションのコレクションのセットは、D:=(Ω
+)
+によって示されてよい。
【0088】
Few-shot模倣は、上述したように、タスクの分布η、およびそれぞれのタスクμに対する、マルコフ決定過程Mμおよびデモンストレーションのコレクションの分布Dμによって説明されてよい。目標は、タスクの平均収益を最大化するために、タスクμ~ηのデモンストレーションのコレクションd~Dμをポリシーにマッピングするエージェント
【0089】
【0090】
【数15】
ポリシーは、アクションAの確率質量(probability mass)または密度関数によって与えられると仮定されてよい。このような仮定により、上記の目標は、履歴hとデモンストレーションdが与えられれば、次の関数を最大化する、アクションaの確率
【0091】
【数16】
を決定または割り当てるデモンストレーション条件付きポリシー(π)を見つけ出すことと同等であってよい。
【0092】
【数17】
本明細書では、Few-shot模倣に対する簡単かつ直接的な接近法を採択するDCRLについて説明する。入力は、次の式によって説明される訓練セットである。
【0093】
【数18】
ここで、それぞれのd
i∈Dはタスクμ
iのデモンストレーションのコレクションであり、
【0094】
【数19】
はそのタスクに対するマルコフ決定過程である。デモンストレーション条件付きポリシーπまたはポリシーネットワークは、以下で説明する経験的平均累積報酬を最大化するために訓練モジュールによって訓練される。
【0095】
【数20】
この目標を大略的に最大化するために、訓練モジュールは、追加されるデモンストレーション(ら)が、例えば、アルゴリズム1(ライン11)に示される再生バッファ(replay buffer)のタプルに使用される強化学習(reinforcement learning:RL)アルゴリズムを使用してよい。
【0096】
アルゴリズム1:デモンストレーション条件付き強化学習
【0097】
【数21】
ライン1では、モデルパラメータに対する訓練セットと初期値が入力として与えられる。訓練セットはN個のペアを含み、各ペアは、デモンストレーションのコレクションと対応するマルコフ決定過程(Markov decision process:MDP)を含む。
【0098】
ライン2では、再生バッファのコンテンツは空になっている。
【0099】
ライン3~14のループでは、訓練モジュールは、複数の収斂基準が満たされるまで訓練アップデートを実行する。モデルが有効性確認タスク(validation task)のセットに対して過適合であると見なされる場合、訓練タスクに対する性能が停滞した(plateaued)ものと見なされる場合、すべての訓練タスクに対する成功率が閾値を超過する場合、または利用可能な計算予算が満了した場合には、基準の1つの例示的なセットは停止されてよい。基準の他のセットが使用されてもよい。このループのそれぞれの繰り返しは、訓練モジュールによって実行される2つの段階(再生バッファを満たす段階(ライン4~10)と、モデルパラメータをアップデートする段階(ライン11~13))を有する。
【0100】
ライン4および5では、訓練モジュールは、訓練セットのデモンストレーション-MDPペアのうちの1つのインデックスをサンプリングした後、訓練モジュールは、そのMDPに対応する環境を初期化し、初期状態または観察値およびエピソード(すなわち、タスク実行の試み)が完了するという(すなわち、既に完了したという)指示子を返還する。
【0101】
ライン6~10のルーフでは、訓練モジュールは、この初期状態から、この環境の1つのエピソードによって再生バッファを満たす。このために、訓練モジュールは、完了指示子が設定されるまで、次の段階(アクションが現在状態-アクション履歴に対するデモンストレーション条件付きポリシーからサンプリングされる(ライン7)、訓練モジュールは、環境から報酬を受け、次の状態に移動し、エピソードが完了するという指示子をアップデートし(ライン8)、訓練モジュールは、この情報を、デモンストレーションの現在コレクションを含むタプルとして再生バッファに追加する(ライン9))を繰り返す。
【0102】
ライン11~13では、訓練モジュールは、モデルパラメータをアップデートすることを価値あるように生成するために十分なデータが収集されたかを決定する。例えば、訓練モジュールは、新規エピソードが収集されるたびに、または少なくとも100個の新規遷移が再生バッファに追加されるたびに、アップデートを行う。ライン12では、モデルパラメータは、再生バッファのデータを使用する強化学習アルゴリズムを使用して、訓練モジュールによってアップデートされる。強化学習アルゴリズムは、PPO(proximal policy optimization)アルゴリズム(参照によって本明細書に統合される、arxiv.org/abs/1707.06347のarXivに掲示される、Schulmanなどによる「Proximal Policy Optimization Algorithms」で説明される)であってよいが、多様な代案的アルゴリズムが使用されてもよい。使用可能な強化学習アルゴリズムの他の例としては、SAC(soft actor critic)、IQN(implicit quantile network)、DDQN(double deep Q-network)、およびPPG(phasic policy gradients)を含む。最後に、ライン15では、訓練モジュールは、学習済みのデモンストレーション条件付きポリシーを返還する。
【0103】
DCRLを実現する訓練モジュールは、訓練セットに存在しない新規タスクμに一般化されるポリシーを生成してよい。Few-shot模倣の目的のための高い価値を達成するポリシーが存在するため、デモンストレーションは、当面したタスクの本質に対する十分な情報を含んでいる。例えば、目標に対する上限
【0104】
【0105】
【数23】
が存在するという意味において、分離可能なFew-shot模倣問題が考慮されてよい。
【0106】
デモンストレーション条件付きポリシーは、特定の構造
【0107】
【0108】
【数25】
は、デモンストレーションのコレクションを埋め込み空間εにマッピングし、Fは、履歴と埋め込み(embedding)をアクション確率にマッピングする。
【0109】
埋め込み関数Φは、デモンストレーションをタスクアイデンティティにマッピングする分類器であると見なされてよく、Fは、それぞれの識別されたタスクに対するポリシーであると見なされてよい。しかし、異なるタスクは、同等の最適なポリシーを有してもよく、デモンストレーションに基づいて常に区別が可能ではない。このような状況において、デモンストレーションをタスクアイデンティティにマッピングする分類器が存在しなくても、目的(1)に対して次の上限
【0110】
【数26】
を達成することは依然として可能である。デモンストレーションの2つのコレクションは、これらが類似する最適なポリシーをもっている場合、Φの下で近いと見なされてよく、この埋め込み空間で補間することによって新規タスクに対する一般化が達成されてよい。
【0111】
実施形態において、入力として多様な数のデモンストレーションを受け、デモンストレーションを同時に処理し、平均化によって可能なものよりもさらに豊かな情報の統合を可能にする交差デモンストレーションアテンションをもつポリシーを開示する。この利点は、ナビゲーションに対する実験においてより明らかになるであろう。
【0112】
トランスフォーマ基盤のポリシーの結果が印象的であるが、これらの入力のサイズにより、計算およびメモリの複雑度は2次的に(quadratically)増加する。そのそれぞれが多変量時系列である多数のデモンストレーションを入力が含む場合、おド六ほどに大きくなる。この費用を克服するために、アキシャルアテンションをもつトランスフォーマアーキテクチャを含むポリシーが使用されてよい。アキシャルアテンションは、トランスフォーマアーキテクチャ基盤のポリシーの効率性を改善する技術/メカニズムである。
【0113】
テンソル要素の平坦化されたストリングにアテンションを適用する代わりに、訓練モジュールは、平坦化をせずに、テンソルの単一の軸に沿ってアテンションを適用してよく、これはアキシャルアテンションとも呼ばれる。アキシャルアテンションをもつトランスフォーマアーキテクチャを含むポリシーは、高/多次元テンソルとして編成された画像およびその他のデータに対するセルフアテンション基盤の自己回帰(autoregressive)モデルを示してもよい。アキシャルアテンションをもつトランスフォーマアーキテクチャを含むポリシーは、多次元データテンソルの本来の形状は変更せず、テンソルの単一の軸にわたってマスキングされたか(masked)マスキングされていない(unmasked)アテンションを一度に実行するように構成される。この動作は、アテンションk(x)によって示されるアキシャルアテンションとも呼ばれる。アキシャルアテンションは、テンソルxの軸kにわたってアテンションを実行し、他の軸に沿って情報を独立的に維持しながらk軸に沿って情報を混合する。
【0114】
図3bは、DCRLポリシーアーキテクチャを例示的に示した機能ブロック図である。モデルは、エージェントの履歴(h)およびデモンストレーション(d)のコレクションを入力として受け取り、入力に基づいてアクション(ポリシーヘッド、a)および推定価値関数(バリューヘッド、V)を出力する。
【0115】
ポリシーネットワークは、トランスフォーマアーキテクチャを含み、エンコーダモジュールとデコーダモジュールを含む。エンコーダモジュールは、デモンストレーションのコレクションを埋め込みにマッピングする。エンコーダモジュールは、時間エンコーダ層、交差デモンストレーションエンコーダ層、および平均プーリング層を含む。デコーダモジュールは、埋め込みをコンテキストとして扱い、埋め込みおよびエージェントの履歴に基づいてアクションおよび値を決定する。言い換えれば、デコーダモジュールは、埋め込みをコンテキストとして扱い、埋め込みに基づいてエージェントの履歴をアクションと価値関数にマッピングする。
【0116】
より詳細には、デモンストレーションdのセットは、サイズT×n×d
obsのアレイとして表現されてよく、ここで、Tはデモンストレーションの最大の長さ、nはデモンストレーションの数、d
obsはデモンストレーションの観察値の次元である。Tよりも短いデモンストレーションは、マスキングまたはパディングされてよく、各観察値は、例えば、入力埋め込みモジュールにより、次元Hの潜在空間(latent space)にマッピングされてよい。マルチヘッドセルフアテンションメカニズム(例えば、本明細書で提供するトランスフォーマアーキテクチャ)は、その入力の順列と同じであるため、
図3bの合算器(summer)によって示されるように2D位置エンコードがデモンストレーションに追加されてよい。その結果、L個のエンコーダ層(モジュール)のシーケンスを通じて伝達され、各エンコーダ層は個別の訓練可能なパラメータをもつが、同じアーキテクチャをもつ(すなわち、訓練可能なパラメータ以外は同じ)。各エンコーダ層の出力はサイズT×n×Hである。この出力は、サイズT×Hの埋め込みeを得るために、そのデモンストレーション次元にわたって平均されてよい。L個のエンコーダ層のうちの各層の出力は、L個のエンコーダ層のうちの次の層に入力される。L個のエンコーダ層のうちの最後の層(エンコーダ層のうちのL番目の層)の出力は、示される平均プーリングに対する出力である。
【0117】
エージェントの履歴h
tと関連して、エージェント履歴h
tの各要素は、入力埋め込みモジュールによって次元(H)の潜在空間にマッピングされてよく、
図3bに示す合算器(加算器)によって1D位置エンコードが追加されてよい。サイズT’×Hの結果的として現れるアレイは、L個のデコーダ層(モジュール)のシーケンスを通じて供給されるが、ここで、T’は履歴の長さである。L個のデコーダ層それぞれは、マルチヘッドセルフアテンションモジュール、埋め込み(e)を使用するマルチヘッドクロスアテンションモジュール、およびフィードフォワードネットワークモジュールを含むアーキテクチャを有するが、それぞれは残差接続(residual connection)によって囲まれて層の正規化が続く。L個のデコーダ層の各層の出力は、L個のデコーダ層のうちの次の層に入力される。L個のデコーダ層のうちの最後の層の出力は多層パーセプトロン(multi-layer perceptron:MLP)モジュールに供給されるが、MLPモジュール(MLPポリシーヘッド)は、その出力に基づいて分布(これからアクションa
tがサンプリングされる)を決定する。オプション事項として、RLアルゴリズムにより、L個のデコーダ層のうちの最後の層の出力も第2MLPモジュール(MLP値ヘッド)に供給されるが、第2MLPモジュールは、その出力に基づいて状態-価値関数(state-value function:V
t)の推定値を決定する。
【0118】
L個のエンコーダ層の各層は時間層を含んでよく、続いて交差デモンストレーション層、そして情報の流れにおけるポイント単位フィードフォワードネットワーク(pointwise feedforward network)が後続されてよい。Lは1よりも大きい整数である。L個のエンコーダ層それぞれは、残差接続によって囲まれて層の正規化が続く。入力
【0119】
【0120】
【0121】
【0122】
【0123】
【数31】
をもつマトリックスである。交差デモンストレーション層は、次の要素
【0124】
【0125】
【0126】
【0127】
【0128】
【数36】
での入力に対し、エンコーダの計算および(逆転派(backpropagation))メモリの複雑度は、Hだけでなく、固定するヘッドおよび層の数を考慮した上で、2つすべてO(T
2n
2)であってよいが、アキシャルアテンションによってこれらの複雑度は
【0129】
【数37】
に減少する。これは、訓練中の計算メモリを節約する。
【0130】
図3bでは、本明細書に記載する訓練を実行するように構成される訓練モジュール300の一例を示している。
【0131】
以下では、DCRLは、DCRLと類似のモデルアーキテクチャを使用することもあるが、BC損失を最小化するように訓練される2つのデモンストレーション条件付き挙動複製(demonstration-conditioned behavioral cloning:DCBC)方法と比較される。連続動作の場合、BC損失は、ポリシーMLPモジュールの平均アクション出力での二乗された誤差であり、離散アクションの場合、ポリシーMLPモジュールのアクション出力での交差エントロピー損失(cross-entropy loss)である。
【0132】
DCBC+マルチタスク(Multi-Task:MT)は、訓練デモンストレーションでアクションを予測するためのBC損失を最小化する。DCBC+REPTILEは、モデルをメタ訓練するためにBC損失とカップルリングされるReptileアルゴリズム/アーキテクチャを使用する。Reptilは、計算にかかる費用がより低く、MAMLメタ訓練アルゴリズムと類似の性能を算出するメタ学習アルゴリズムである。
【0133】
訓練のために、各タスクに対する5000個のデモンストレーションがサンプリングされる。このために、各ポリシーがタスク固有の成功基準によって少なくとも99%の成功率となるまでタスクごとに1つのポリシーをPPO法によって訓練する。これらのポリシーからの成功的な軌跡がサンプリングされる。上述したDCRLおよび2つのDCBCの例は、このコレクションから均一にサンプリングされるデモンストレーションを使用して訓練され、このようなデモンストレーションの個数は{1、・・・、4}から均一にサンプリングされる。
【0134】
DCRLの例は、ライン12のPPOを使用してアルゴリズム1に示すように訓練される。PPO(RLの一タイプ)は、相対的に簡単であり、相対的に短い訓練時間を提供し、結果的にポリシーの品質が高い。PPOの例を提供したが、本出願は他のタイプのRLの使用にも適用可能である。訓練は、2億5千万個の環境フレームまたは他の適切な個数であってよく、DCRLモデルは約5.5×105個の学習可能なパラメータをもつ。
【0135】
DCRLおよび2つのDCBC接近法は、訓練データセットには存在しない(したがって、訓練に使用されない)タスクに対して評価される。単一のタスクに対するポリシーを評価するために、ポリシーは、それぞれのエピソードに対してランダムにサンプリングされるデモンストレーションおよび初期条件をもち、300個のエピソードに対して適用される。
【0136】
性能は、メタ学習アルゴリズムの性能を評価するように本来設計された、ロボット操作ベンチマークであるMeta-World(メタワールド)(参照によって本明細書に統合される、arxiv.org/abs/1910.10897のarXiv上に掲示される、Yuなどによる「Meta-World:A Benchmark and Evaluation for Multi-Task and Meta Reinforcement Learning」で説明)を使用することによって評価される。メタワールドで明示される報酬関数は、エージェントがタスクを成功的に完了することよりも高い報酬の領域に留まることが好ましい。しかし、本明細書で説明するDCRL接近法の場合、報酬の時間導関数のように作動する修正された報酬が使用されてよい。
【0137】
【表1】
表1は、1つまたは5つの入力デモンストレーションに対して、すべてのメタワールドタスクで平均されたDCRLおよびDCBC+MTの返還と成功率を示しており、微調整のないFew-shot模倣のタスクに対する、DCRLのディスカウントされた返還および成功率をDCBC+MTと比較している。本明細書に記載するDCRLは、DCBC+MTに比べて相当な改善を提供する。
【0138】
DCRLは、デモンストレーションでのデモンストレーション者のアクションを使用して、新規タスクに対して効果的に微調整される。挙動複製を使用してDCRLを微調整することは、各タスクに対して最小の時間(例えば、何秒)しか必要としない。
【0139】
DCRLは、4つのデモンストレーションに対する微調整の後、すべてのメタワールドタスクで90%の成功率を達成することができた。これは、他の成功率に比べて高い改善となった。
【0140】
DCBC+REPTILEは、DCBC+MTよりも優れた初期化ポイントを提供するが、このような利点は、デモンストレーションの数によって減少することもある。しかし、DCRLは、すべてのDCBC接近法よりも優れた初期化ポイントを提供する。DCRLは、訓練中の環境と相互作用することができ、これによってBC基盤の方法の複合的なエラーを克服することができる。
【0141】
デモンストレーション者とエージェントの間のドメインシフトに対するDCRLの堅固性を評価するために、デモンストレーションは、LIMS2-AMBIDEXロボットに対するPPOポリシーを使用して収集されてよい。本来のメタワールドベンチマークではSawyerロボットを使用した。AMBIDEXロボットは、Sawyerロボットと同様に7自由度(degrees of freedom:DoF)を備えるが、その観察値は、それらがグリッパー方向に関する情報を含むため
【0142】
【0143】
表2は、Sawyer(上段)またはAMBIDEX(下段)からのデモンストレーションを入力として使用し、43個のメタワールドタスクで平均されたDCRLの返還および成功率を示しており(SawyerデモンストレーションおよびSawyer環境で訓練およびテスト済み)、ドメインシフトのないDCRLに対する(AMBIDEXデモンストレーションおよびSawyer環境で訓練およびテスト済みの)ドメインシフトをもつDCRLの平均返還および成功率を示している。2つの設定に対する結果は類似しており、DCRLがドメインシフトに対処できることを示している。
【0144】
【表2】
新規タスクが提示されるときに、DCRLが次善のデモンストレーションを上回ることができるかどうかを調査するために、タスク固有の専門家PPOポリシーによって実行されるアクションにノイズを追加することによってデモンストレーションがサンプリングされる。共分散
【0145】
【数39】
をもつゼロ平均ガウスノイズが追加されるが、ここで、標準偏差σは、調整可能なパラメータである。本明細書で使用するFew-shotは、10回以下のデモンストレーションを意味してよい。
【0146】
実験は、σ>2の場合には、以前にタスクを経験したことがまったくなくても、DCRLがタスク固有のデモンストレーションよりも成功的であることを示した。
【0147】
第2テストには60個のタスクが含まれるが、それぞれが迷路レイアウトに対応する。
図4に示すように、エージェントは、与えられたペアの位置の間を(開始位置から終了位置まで)ナビゲーティングしなければならない。これは、デモンストレーション全般にわたる情報の統合をエージェントの能力に求める。エージェント観察値のいかなる情報も現在のレイアウトを明示しないため、エージェントは、壁に衝突せずに終了ポイントまで効率的に到達するためにはデモンストレーションを利用してレイアウトを学習しなければならない。
図4は、ナビゲーションタスクの3つの例を示している。×表示は目標であり、暗い点はデモンストレーションであり、明るい点はDCRLエージェントの履歴である。
【0148】
各タスクにおいて、観察値は
【0149】
【数40】
(エージェントと目標の位置、エージェント速度、および方向)にあり、4つのアクション(前進、後退、左折、右折)があり、報酬は目標到達に対するボーナスと壁衝突に対するペナルティを伴い、エージェントと目標の間のユークリッド距離(Euclidean distance)を引くことにより、遷移関数はViZDoom(参照によって本明細書に統合される、IEEE Conference on Computational Intelligence and Games,CIG,pp.1-8,2016に掲示される、Kempkaなどによる“ViZDoom:A Doom-based AI research platform for visual reinforcement learning”で説明される)を使用して計算され、目標およびエージェントの初期位置は均一にサンプリングされる。DCRLは、50個の迷路の固定セットで訓練され、残りの10個の迷路でテストされる。
【0150】
表3は、1つまたは5つのデモンストレーションを入力として使用し、10個のテスト迷路で平均される返還と成功率を示しており、微調整のないFew-shot模倣に対するDCRLの性能をDCBC+MTと比較する。メタワールドに対する結果(表1)と同様に、DCRLはDCBC+MTに比べて相当に改善され、DCRLの性能はより多くのデモンストレーション提供によって増加する。この増加についての1つ説明は、様々なデモンストレーションが迷路の様々な部分をカバーすることが多いため、初期および目標位置のペアの中には、様々なデモンストレーションからの情報を統合することによってのみ対処できる場合がある。
【0151】
【表3】
微調整は、より小さな性能改善を提供する。
【0152】
交差デモンストレーションアテンションの利点を理解するために、入力として5つのデモンストレーションを使用するDCRLは、DCRLに対する5つのデモンストレーションそれぞれが一度に1つずつ提供され、結果として現れるアクション確率が平均されるアルゴリズムと比較される。交差デモンストレーションアテンションは、1つのデモンストレーションが目標の曖昧さを完全に解決できない場合に複数のデモンストレーションを処理することに役立つであろうという期待に沿って、10個のテスト迷路すべてに一貫した利点がある。
【0153】
上述した実施形態は、方法段階の文脈として説明したが、これらも、対応する装置またはシステムの対応する要素、モジュール、または特徴の説明を示す。
【0154】
本明細書で説明する方法および例示的な実施形態は、
図5で示すようなアーキテクチャ内で実現されてよく、そのアーキテクチャは、サーバ500およびデータ交換のためにインターネットのようなネットワーク504(無線および/または有線)を介して通信する1つ以上のコンピュータデバイス502を含む。サーバ500およびコンピュータデバイス502は、プロセッサ512およびメモリ513を含む。コンピュータデバイス502は、自律車両502b、ロボット502c、コンピュータ502d、またはセルフォン502eを含むが、これらに制限されてはならず、サーバ500と通信する任意のタイプのコンピュータデバイスであってもよい。コンピュータデバイスの制御モジュールは、アクチュエータを作動させてよい。例えば、自律車両502bの制御モジュールは、モータ、ブレーキ、ステアリング、または自律車両502bの他の適切なアクチュエータを作動させてよい。ロボット502cの例において、制御モジュールは、モータ、ブレーキ、グリッパ、線形アクチュエータ、またはロボット502cの他の適切なアクチュエータを作動させてよい。
【0155】
より詳細には、一実施形態において、
図1および/または
図2の例に係る方法は、サーバ500、自律車両502b、および/またはロボット502cによって実行されてよい(例えば、ここで、コンピュータデバイス502のメモリ513に記録されるプロセッサ512によって実行される命令語は、ポリシーネットワークを含む制御モジュール、自律車両502b、および/またはロボット502cをナビゲーティングするためのトランスフォーマアーキテクチャを含む訓練モジュールを使用することで、開示の方法を具体化する)。他の実施形態において、
図1および/または
図2の実施形態に係る方法は、クライアントデバイス502によって部分的または完全に実行されてよい。他の実施形態において、方法は、分散方式によって異なるサーバまたは複数のサーバ上で実行されてもよい。
【0156】
Few-shot模倣学習は、新規タスクを実行するためにエージェント(例えば、ロボット)が学習するのに必要となるデモンストレーションの数を減少させる。デモンストレーション条件付き強化学習(DCRL)は、本明細書において、Few-shot模倣を実行するために使用される。DCRLが訓練のための報酬関数の追加の費用を伴うこともあるが、他のFew-shot模倣方法に比べると、推論時間でのデモンストレーション数の減少および新規タスクに対する改善された成功率は圧倒的である。ロボット操作およびナビゲーションテストに対する結果は、エージェントとデモンストレーションの間にドメインシフトがある場合にも、DCRLが最適でないデモンストレーションを改善し、成功するということを示した。
【0157】
上述した説明は本質的に例示的なものに過ぎず、本開示、その応用、または用途を制限することを意図としない。本開示の広範囲な教示は、多様な形態で実現されてよい。したがって、本開示は特定の例を含むが、本開示の真正な範囲は、図面、明細書、および添付の特許請求の範囲の研究によれば他の修正が明白であるため、そのように制限されてはならない。方法内の1つ以上の段階は、本開示の原理を変更しながら異なる順序(または、同時に)で実行されてもよいことが理解されなければならない。また、各実施形態が所定の特徴をもつものと説明したが、本開示の任意の実施形態と関連して説明したこれらの特徴のうちの任意の1つ以上は、他の実施形態のうちの任意のものと特徴において、および/または組み合わせが明確に説明されていなくても、他の実施形態のうちの任意の特徴と組み合わせて実現されてよい。言い換えれば、上述した実施形態は、相互排他的ではなく、1つ以上の実施形態との相互置換(permutation)は、本開示の範囲内に含まれる。
【0158】
要素間の(例えば、モジュール、回路要素、半導体層などの間の)空間的および機能的関係は、「連結する(connected)」、「結合する(engaged)」、「カップルリングする(coupled)」、「隣接する(adjacent)」、「横の(next to)」、「~上の(ontop of)」、「上の(above)」、「下の(below)」、および「配置される(disposed)」を含んだ多様な用語を使用して説明される。「直接的な(direct)」ものと明らかに説明していない限り、第1要素と第2要素の関係を前記開示で説明するときに、その関係は、第1要素と第2要素の間に何の要素も介在しない直接的な関係でもあるが、第1要素と第2要素の間に1つ以上(空間的にまたは機能的に)の要素が介在する間接的な関係であってもよい。本明細書で使用する語句「A、B、およびCのうちの少なくとも1つ」は、非排他的な論理的ORを使用して論理(A OR B OR C)を意味するとして解釈されなければならず、「Aのうちの少なくとも1つ、Bのうちの少なくとも1つ、およびCのうちの少なくとも1つ」を意味するように解釈されてはならない。
【0159】
図面において、矢印(arrowhead)で示す方向は、一般的に、例示に重要となる情報(例えば、データまたは命令語)の流れを示す。例えば、要素Aおよび要素Bが多様な情報を交換し、要素Aから要素Bに送信される情報が例示に関連する場合、矢印は要素Aから要素Bを示す。この単方向の矢印は、要素Bから要素Aには他のいかなる情報も送信されないということを暗示するものではない。要素Aから要素Bに送信される情報の場合、要素Bは、要素Aからの情報に対する要請またはその情報の受信確認の応答(receipt acknowledgement)を送信することもある。
【0160】
本出願において、以下の定義を含み、用語「モジュール」または用語「コントローラ」は、用語「回路」に置換されてよい。用語「モジュール」は、ASIC(Application Specific Integrated Circuit)、デジタル、アナログ、または混合したアナログ/デジタル離散回路、デジタル、アナログ、または混合アナログ/デジタル集積回路、組合論理回路、FPGA(field programmable gate array)、コードを実行するプロセッサ回路(共有、専用、またはグループ)、プロセッサ回路によって実行されるコードを記録するメモリ回路(共有、専用、またはグループ)、説明した機能性(functionality)を提供する他の適切なハードウェア要素、または、例えば、システムオンチップでの上述した一部またはすべての組み合わせを含んでもよく、これらの一部であってもよく、これらを含むものであってもよい。
【0161】
モジュールは、1つ以上のインタフェース回路を含んでもよい。多様な例において、インタフェース回路は、LAN(local area network)、インターネット、WAN(wide area network)、またはこれらの組み合わせによって接続される有線または無線インタフェースを含んでよい。本開示の任意の与えられたモジュールの機能性は、インタフェース回路を介して接続される多数のモジュールの間に分散されてもよい。例えば、多数のモジュールが負荷分散を許容してもよい。また他の例において、サーバ(遠隔、またはクラウド、または既知の)モジュールは、クライアントモジュールの代わりに多数の機能性を実行してよい。
【0162】
上記で使用した用語コードは、ソフトウェア、ファームウェア、および/またはマイクロコードを含んでよく、プログラム、ルーチン、関数、クラス、データ構造、および/またはオブジェクトを指称してもよい。用語共有されたプロセッサ回路は、多数のモジュールからの複数またはすべてのコードを実行する単一のプロセッサ回路を包括する。用語グループプロセッサ回路は、追加のプロセッサ回路と結合して、1つ以上のモジュールからのコードのうちの一部またはすべての実行プロセッサ回路を包括する。多数のプロセッサ回路に関する言及は、個別のダイ上の多数のプロセッサ回路、単一のダイ上の多数のプロセッサ回路、単一のプロセッサ回路の多数のコア、単一のプロセッサ回路の多数のスレッド、またはこれらの組み合わせを包括する。用語共有されたメモリ回路は、多数のモジュールからの複数またはすべてのコードを記録する単一のメモリ回路を包括する。用語グループメモリ回路は、追加のメモリと結合して、1つ以上のモジュールからの複数またはすべてのコードを記録するメモリ回路を包括する。
【0163】
用語メモリ回路は、用語コンピュータ読み取り可能な媒体のサブセットである。用語コンピュータ読み取り可能な媒体は、本明細書で使用されるとき、媒体を介して(例えば、搬送波(carrier wave)上で)伝播される一時的な電気または電磁気信号を含まず、したがって、用語コンピュータ読み取り可能な媒体は、類型であって非一時的なものとして見なさる。非一時的な類型のコンピュータ読み取り可能な媒体の非制限的な例としては、不揮発性メモリ回路(例えば、フラッシュメモリ回路、消去可能なプログラミング可能な読み取り専用メモリ回路、またはマスク読み取り専用メモリ回路)、揮発性メモリ回路(例えば、静的RAM回路または動的RAM回路)、磁気記録媒体(例えば、アナログまたはデジタル磁気テープまたはハードディスクドライブ)、および光学記録媒体(例えば、CD、DVD、またはブルーレイディスク)が挙げられる。
【0164】
本出願で説明する装置および方法は、コンピュータプログラムで具体化される1つ以上の特定の機能を実行するように汎用コンピュータを構成することによって生成される特殊目的コンピュータによって部分的または完全に実現されてよい。上述した機能ブロック、フローチャート要素、および他の要素は、熟練した技術者またはプログラマーの日常業務によってコンピュータプログラムに変換することのできるソフトウェアとしての役割を担う。
【0165】
コンピュータプログラムは、少なくとも1つの非一時的な類型のコンピュータ読み取り可能な媒体上に記録されるプロセッサ実行可能な命令語を含む。コンピュータプログラムも、記録されたデータを含むかこれに依存してよい。コンピュータプログラムは、特殊目的コンピュータのハードウェアと相互作用する基本入力/出力システム(basic input/output system:BIOS)、特殊目的コンピュータの特定のデバイスと相互作用するデバイスドライバ、1つ以上のオペレーティングシステム、ユーザアプリケーション、バックグラウンドサービス、バックグラウンドアプリケーションなどを含んでよい。
【0166】
コンピュータプログラムは、(i)HTML(hypertext markup language)、XML(extensible markup language)、またはJSON(JavaScript Object Notation)のような、パーシングされる技術テキスト(descriptive text)、(ii)アセンブリコード、(iii)コンパイラによってソースコードから生成されるオブジェクトコード、(iv)インタプリタによる実行のためのソースコード、(v)適時の(just-in-time)コンパイラによるコンパイルおよび実行のためのソースコードなどを含んでよい。一例として、ソースコードは、C、C++、C#、ObjectiveC、Swift、Haskell、Go、SQL、R、Lisp、JavaR、Fortran、Perl、Pascal、Curl、OCaml、JavaScriptR、HTML5、Ada、ASP(Active Server Pages)、PHP(Hypertext Preprocessor)、Scala、Eiffel、Smalltalk、Erlang、Ruby、FlashR、Visual BasicR、Lua、MATLAB、SIMULINK、およびPythonRを含む言語からの構文を使用して作成されてよい。