様々な図面における同様の参照番号および名称は同様の要素を示す。
本明細書では、オンラインの多目的学習、教師アクション選択ポリシーの微調整、およびエージェントが環境とのさらなる対話なしに実証データのデータセットから学習するオフラインの強化学習に使用できる強化学習システムについて説明する。
図1は、アクション選択ポリシーニューラルネットワーク120をトレーニングするための、1つまたは複数の場所にある1つまたは複数のコンピュータ上の1つまたは複数のコンピュータプログラムとして実装され得るシステム100の一例を示す。アクション選択ポリシーニューラルネットワーク120は、トレーニング中またはトレーニング後に、タスクを実行するためにエージェントによって実行されるアクション112を選択するように、環境104と対話するエージェント102を制御するために使用される。アクション選択ポリシーニューラルネットワーク120は、選択されたアクションの後に受け取られた報酬に基づいて、環境104の状態を特徴付ける観測106を使用してトレーニングされる。
システム100には多くの用途があり、いくつかの応用例については後述する。単なる一例として、環境は現実世界の環境であってもよく、エージェントはロボットまたは自律型もしくは半自律型の車両のような機械的エージェントであってもよい。次いで、アクション選択ポリシーニューラルネットワーク120は、現実世界の環境と対話しながらタスクを実行するようにエージェントを制御するために、現実世界の環境を感知する1つまたは複数のセンサから取得された観測に応答して、機械的エージェントによって実行されるアクションを選択するようにトレーニングされ得る。アクション選択ポリシーニューラルネットワーク120は、環境の観測を取得し、タスクを実行するようにエージェントを制御するためのアクションを選択するために使用されるアクション選択ポリシー出力を生成することによって、エージェントを制御する。
いくつかの実装形態では、アクション選択ポリシーニューラルネットワーク120は、観測、アクション、および報酬のデータセットのみに基づいて、環境104と対話することなく、オフラインでトレーニングされる。データセットは、人間または機械の専門家によるタスクの実行の1つまたは複数のデモンストレーションから取得されたものであり得る。いくつかの実装形態では、アクション選択ポリシーニューラルネットワーク120は、オンラインで、すなわち、環境104と対話することによってトレーニングされる。これらの実装形態において、トレーニングは、教師、たとえば別の機械からのモデルアクション選択ポリシー、すなわちアクション選択モデルからのモデルポリシー出力によって導かれ得る、またはアクション選択ポリシーニューラルネットワーク120は、外部ガイダンスなしでトレーニングされ得る。
図1において、記憶されたトレーニングデータ110は、教師データセット114から受信された可能性のあるデータ、または環境104で実行されるアクションを選択するためにアクション選択ポリシーニューラルネットワーク120を使用することによって生成された可能性のあるデータを表す。トレーニングデータを生成することは、環境の状態の観測106を取得することと、アクション選択ポリシー出力122を生成するために、アクション選択ポリシーニューラルネットワーク120の現在のパラメータセットに従って、アクション選択ポリシーニューラルネットワーク120を使用して観測を処理することと、ポリシー出力122を使用して、観測に応答してエージェント102によって実行されるアクション112を選択することと、エージェントに、選択されたアクションを実行させ、それに応答して、タスクに対して行われた進捗を特徴付ける報酬108を受け取ることとを伴い得る。報酬は、タスクの完了、または完了に向けた進捗を表し得る。
実装形態では、記憶されたトレーニングデータ110は、遷移のセットを定義する。各遷移は、あるタイムステップにおける環境の状態を特徴付ける観測と、タイムステップで実行されたアクションと、アクションを実行した後に受け取った報酬と、いくつかの実装形態では、アクションを実行した後の後続の環境の状態を特徴付ける後続の観測とを含み得る。アクション選択ポリシーニューラルネットワーク120は、後述するように、これらの観測を使用し、選択されたアクションの後に受け取った報酬に基づいてトレーニングされる。
アクション選択ポリシーニューラルネットワーク120は、任意の適切なアーキテクチャを有し得、たとえば、1つまたは複数のフィードフォワードニューラルネットワーク層、1つまたは複数の畳み込みニューラルネットワーク層、1つまたは複数のリカレントニューラルネットワーク層、1つまたは複数のアテンションニューラルネットワーク層、あるいは1つまたは複数の正規化層を含み得る。ポリシー出力122は、たとえば、トルクまたは速度などのアクションの連続値を定義するために使用される値を含むなど、アクションを直接定義してもよく、あるいは、アクションを定義する値が選択され得る連続分布またはカテゴリ分布をパラメータ化してもよく、あるいは、アクションの選択に使用するために、可能なアクションのセットのアクションごとに1つのスコアのセットを定義してもよい。単なる一例として、ポリシー出力122は、対角共分散行列を有する多変量ガウス分布を定義し得る。
システム100は、アクション選択ポリシーニューラルネットワーク120によって実装された現在のアクション選択ポリシーを評価および更新、すなわち改善するように構成される。一般に、これは、選択されたアクションの後に受け取る報酬に基づく強化学習技法を使用することを伴う。特定の実装形態では、これは、Q-学習を使用して、より詳細には、1つまたは複数のそれぞれのQ値132を生成するために、Q値ニューラルネットワーク130のパラメータの現在のセットに従って、エージェントの状態およびアクションの観測を処理するように構成された、1つまたは複数のQ値ニューラルネットワーク130を維持することによって行われる。Q値ニューラルネットワーク130は、任意の適切なアーキテクチャを有し得、たとえば、1つまたは複数のフィードフォワードニューラルネットワーク層、1つまたは複数の畳み込みニューラルネットワーク層、1つまたは複数のリカレントニューラルネットワーク層、1つまたは複数のアテンションニューラルネットワーク層、あるいは1つまたは複数の正規化層を含み得る。
一般に、Q値は、観測によって特徴付けられる状態においてアクションを行い、その後、アクション選択ポリシーニューラルネットワークパラメータの現在の値によって定義されるアクション選択ポリシーに従って行動するための状態-アクション値、または期待リターンである。一般に、リターンは、たとえば、時間割引された報酬の合計など、エージェントが複数のタイムステップにわたって環境と対話する際に受け取る報酬の累積的な尺度である。
タスクは、1つまたは複数のタスク関連のターゲットとする目的を有し得、各ターゲットとする目的は、それぞれのQ値によって表され得る。一般に、システムの実装は、複数の目的を最適化しながら、アクション選択ポリシーニューラルネットワーク120をトレーニングすることができる。システムのいくつかの実装形態では、目的のうちの1つは、タスクのQ値を最適化、たとえば最大化することであり、目的のもう1つは、教師データセット114またはモデルアクション選択ポリシーによって表されるアクション選択ポリシーに近い状態にアクション選択ポリシーを維持することである。いくつかの実装形態では、システムは、エージェントがタスクを実行しようとするとき、たとえば、報酬を最大化するため、またはコストを最小限に抑えるためなど、各々が異なる報酬、またはコスト(すなわち、負の報酬)などの異なるターゲットとする目的を表す、タスクの複数の異なるQ値を最適化しながら、アクション選択ポリシーニューラルネットワーク120をオンラインでトレーニングするように構成される。現実世界の環境における例示的なコストには、たとえば電力またはエネルギーの使用、あるいは機械的な消耗に対するペナルティがあり得る。
実装形態では、システム100は、第1のタスク関連の目的関数を最適化するために、受け取った報酬に基づく強化学習技法を使用することによって、Q値ニューラルネットワーク130をトレーニングするように構成される。第2のQ値ニューラルネットワーク130は、存在する場合、同様に、強化学習技法を使用して、受け取った報酬に基づいて、第2のタスク関連の目的関数を最適化するようにトレーニングされ得る。任意の強化学習(評価学習)技法は、たとえば、1ステップまたはnステップリターン、Retraceターゲット(arXiv:1606.02647)などを使用して、Q値ニューラルネットワーク130をトレーニングするために使用され得る。いくつかの実装形態では、たとえば、Bellemare et al., "A distributional perspective on reinforcement learning", arXiv:1707.06887に記載されているようなC51アルゴリズムなど、分散Q学習が使用される。一般に、Q値ニューラルネットワークのトレーニングは、タスク関連の目的関数、たとえばQ値ターゲットに基づく時間差の勾配を逆伝搬することによって、Q値ニューラルネットワークのパラメータの値を調整することを伴う。
トレーニングエンジン140は、以下にさらに説明するように、アクション選択ポリシーニューラルネットワーク120のトレーニングを制御する。大まかに言えば、これは、異なる目的ごとにアクション選択ポリシーに近い状態を維持しながら、アクション選択ポリシーニューラルネットワーク120の現在のアクション選択ポリシーを改善することを伴う。より具体的には、これは、たとえば第1のタスク関連の目的関数を最適化するために、アクション選択ポリシーニューラルネットワーク120の現在のアクション選択ポリシーを改善するアクション選択ポリシーを見つけること、および環境の状態の観測に応答してエージェントのアクションを選択するための第2のアクション選択ポリシーを定義するデータを使用することも伴う。第2のアクション選択ポリシーは、モデルアクション選択ポリシーとすることができ、または教師データセット114によって表すことができ、または第2のタスク関連の目的関数を最適化するためにアクション選択ポリシーニューラルネットワーク120の現在のアクション選択ポリシーを改善するアクション選択ポリシーを見つけることによって決定することもできる。
アクション選択ポリシーニューラルネットワーク120をトレーニングするために、これらのアクション選択ポリシーの効果は、アクション選択ポリシーニューラルネットワークパラメータ、θに依存する結合された目的関数、J(θ)を取得するために合計される前に、明示的に重み付けされる。結合された目的関数は、アクション選択ポリシーニューラルネットワーク120をトレーニングするために使用される。トレードオフを結合された目的関数に明示的に組み込むことによって、他のアプローチでは困難である、結合された目的関数に対する教師データセット114の効果を計算できるので、システムをオフラインの強化学習に使用することができる。また、異なる目的ごとのアクション選択ポリシー間のトレードオフの学習も容易になる。より具体的には、アクション選択ポリシーニューラルネットワーク120のトレーニングは、結合された目的関数を使用して、異なる目的ごとのアクション選択ポリシーを、アクション選択ポリシーニューラルネットワークの現在のパラメータ値によって定義される空間に逆投影することを伴う。
図2は、システム100を使用してアクション選択ポリシーニューラルネットワークをトレーニングするための例示的なプロセスのフロー図である。図2のプロセスは、1つまたは複数の場所にある1つまたは複数のコンピュータによって実施され得る。
図2を参照すると、環境の状態の観測に応答してエージェントのアクションを選択するためのアクション選択ポリシーの更新された、特に改善されたバージョンを定義するデータを取得することを伴う(ステップ202)。より詳細には、アクション選択ポリシーの改善されたバージョンは、強化学習を使用し、観測を使用し、選択されたアクションの後に受け取った報酬に基づいて取得される。これは、Q値ニューラルネットワーク130を使用してトレーニングデータ110を評価し、次いで、Q値ニューラルネットワーク130を使用してアクション選択ポリシーの更新バージョンを決定することによって行うことができる。アクションは、ポリシー出力122を使用して選択された可能性があり、または教師データセット114からである可能性がある。
次いで、方法は、アクション選択ポリシーの更新バージョンとアクション選択ポリシーニューラルネットワーク120の(現在の)アクション選択ポリシーとの間の差の尺度に依存する第1のポリシー投影値を決定する(ステップ204)。方法はまた、第2のアクション選択ポリシーとアクション選択ポリシーニューラルネットワーク120の(現在の)アクション選択ポリシーとの間の差の尺度に依存する第2のポリシー投影値を決定する(ステップ206)。実装形態では、第1のポリシー投影値および第2のポリシー投影値は各々、それぞれのアクション選択ポリシー間、すなわち、アクション選択ポリシーの更新バージョンと(現在の)アクション選択との間、および第2のアクション選択ポリシーと(現在の)アクション選択ポリシーとの間のKLダイバージェンスの尺度を含む。
次いで、この方法は、第1のポリシー投影値と第2のポリシー投影値との重み付けされた結合から、結合された目的値を決定する(ステップ208)。第1のポリシー投影値と第2のポリシー投影値との重み付けされた結合は、第1のポリシー投影値および第2のポリシー投影値にそれぞれ第1の重みおよび第2の重みを乗算した合計を含み得る。重み付けされた結合の重みは、合計は1になり得る。
第1および第2のポリシー投影値を決定すること、および結合された目的値を決定することは、明瞭のために、ma図2では別々のステップとして示されているが、実際には、後述するように、これらを単一のステップに結合して、結合された目的値を決定することができる。
アクション選択ポリシーニューラルネットワーク120は、たとえば、アクション選択ポリシーニューラルネットワーク120に結合された目的関数の勾配を逆伝搬することによって、結合された目的値を最適化するようにアクション選択ポリシーニューラルネットワークのパラメータを調整することによってトレーニングされる(ステップ210)。
実装形態では、プロセスのステップ202~210は繰り返し実行される(ステップ214)。いくつかの実装形態では、これは、環境においてアクションを選択するためにアクション選択ポリシーニューラルネットワークを使用することによって生成されたさらなるトレーニングデータを取得することを伴う(ステップ212)。
さらなるトレーニングデータを取得することは、1つまたは複数のタイムステップの各々において、環境の状態の観測を取得することと、ポリシー出力122を生成するために、アクション選択ポリシーニューラルネットワークを使用して観測を処理することと、ポリシー出力122を使用して、観測に応答してエージェントによって実行されるアクションを選択することとを含み得る。次いで、たとえば、アクションを実行するようにエージェントを制御することによって、およびタスクに対して行われた進捗を特徴付ける報酬(ゼロの場合もある)が受信されたことに応答して、エージェントに、選択されたアクションを実行させ得る。タイムステップの状態、アクション、報酬、および任意選択で次の状態遷移(s、a、r、s')がリプレイバッファに記憶され得る。
オフライン設定では、新しいトレーニングデータは取得されないが、それにもかかわらず、トレーニングされたアクション選択ポリシーニューラルネットワーク120は、Q学習に影響を与え、したがって、次の反復のためのアクション選択ポリシーの改善されたバージョンを取得する。たとえば、状態、アクション、報酬、次の状態遷移(s、a、r、s')を含む遷移のデータセットの場合、Q値ニューラルネットワークをトレーニングすることは、ブートストラップのために、アクション選択ポリシーニューラルネットワークを使用して、s'からアクションを決定することを伴い得る。
システムのいくつかの実装形態では、プロセスは、たとえば、環境からの報酬またはリターンを最適化するために、目的にわたるトレードオフを最適化するために、重み付けされた結合の重みを調整することも伴い得る(ステップ214)。これは手動または自動で実行され得、これについては後述する。いくつかの実装形態では、重みの合計は、1などの定義された値になる。その場合、第1のポリシー投影値と第2のポリシー投影値との重み付けされた結合は、単一の重みによって定義され得る。
次に、アクション選択ポリシーの更新バージョンを定義するデータを取得する1つの特定の例について説明する。環境が状態sにあるとき、アクションaを選択するための、アクション選択ポリシーニューラルネットワーク120のアクション選択ポリシーを定義するポリシー出力122は、π(a|s)と表すことができる。次いで、アクション選択ポリシーの更新バージョン、すなわち改善されたアクション分布、q(a|s)は、π(a|s)にポリシー改善係数、exp(Q(s,a)/η)を乗算することによって決定され得、式中、Q(s,a)はアクションaおよび状態sでのQ値ニューラルネットワーク130からのQ値であり、ηは温度パラメータである。たとえば、q(a|s)は、
のように決定され得、式中、Zは、たとえば各状態のアクションをサンプリングすることによって推定され得る正規化定数である。
ポリシー改善係数は、アクション確率に対する重みとして作用する。これは、たとえば、更新された(改善された)アクション分布に従って選択されたアクションとペアにされたとき、トレーニングデータ内の状態(観測)にわたるQ値の平均を最大化することを目的とし得る。一般に、q(a|s)を取得するために、任意の改善演算子を使用することができ、記載する技法は、特定のポリシー改善係数、exp(Q(s,a)/η)に限定されない。たとえば、原理的には、ニューラルネットワークを維持して、q(a|s)を近似することができる。
温度パラメータηは、改善されたポリシー、q(a|s)がQ(s,a)に対してどの程度貪欲であるか、すなわちQ(s,a)に置かれる重要度を制御する。温度パラメータは、システムの固定されたハイパーパラメータであってもよく、または学習されたパラメータ、たとえば、
を最適化することによって学習されたパラメータであってもよく、式中、εは、オプションの制約値であり、期待値μは、トレーニングデータ内の状態に対するものであり、期待値πは、π(a|s)によって選択されたアクションに対するものである。
本明細書に記載するように、温度パラメータは重み付けされた結合における重みに依存せず、改善演算子を重み付けされた結合における重みの選択から切り離す。これによって、記載する技法をオフライン設定および行動の微調整に適用することが容易になり、また、特定の重みの組合せによって指定された目的の組合せを直感的に解釈することも容易になる。単に説明のための例として、ある特定の実装形態では、η≒10である。
各々がそれぞれのQ値、Qk(s,a)を生成する複数のQ値ニューラルネットワーク130が存在する場合、複数の目的を最適化するためにアクション選択ポリシーニューラルネットワーク120をトレーニングするために、タスク関連の目的関数ごとに、複数の改善されたポリシーqk(a|s)が決定され得る。
前述したように、改善されたアクション選択ポリシーおよび第2のアクション選択ポリシーは、ポリシー投影値を決定するために使用され、その投影値は、アクション選択ポリシーニューラルネットワークをトレーニングすることによって最適化される、結合された目的値を決定するために使用される。これによって、改善されたアクション選択ポリシーおよび第2のアクション選択ポリシーが、アクション選択ポリシーニューラルネットワークのパラメータによって定義されるパラメトリックポリシーの空間に投影される。
より具体的には、この投影は、以下に従って結合された目的関数、J(θ)を決定するものとして表すことができる。
式中、kは、q1(a|s)が更新された(改善された)アクション選択ポリシー、q2(a|s)が第2のアクション選択ポリシー、というように、第1および第2の、一般にはK個のポリシー投影値にラベル付けする。π(・|s)は(現在の)アクション選択ポリシーであり、akは第kのポリシー投影値の重みである。重みは、たとえば[0,1]のような重み範囲であってもよい。DKLは、たとえばカルバックライブラー情報量など、q(・|s)およびπ(・|s)によって定義される分布間の差の尺度である。期待値は、たとえばリプレイバッファまたは遷移のデータセットからサンプリングされたトレーニングデータ内の状態にわたる期待値、たとえば平均値を含む。
このアプローチに従ってJ(θ)を評価するためのいくつかの技法を、第2のアクション選択ポリシーがモデルアクション選択ポリシーであるか、または教師データセット114によって表される場合について以下に説明する。
アクション選択ポリシーニューラルネットワーク120が第1と第2の両方のタスク関連の目的関数を最適化する場合、すなわち、多目的強化学習の場合、J(θ)は、改善されたポリシー、qk(a|s)を使用して評価され得る。たとえば、第2のアクション選択ポリシー、q2(a|s)を定義するデータは、第2のQ値、Q2(s,a)を生成するために、エージェントの状態およびアクションの観測を処理するように構成された第2のQ値ニューラルネットワークから導出され得る。第2のQ値ニューラルネットワークは、第2のタスク関連の目的関数を最適化するために、トレーニングデータを使用して、強化学習によってトレーニングされ得る。たとえば、第1のタスク関連の目的は、タスクの完了に近づいた、または完了したことに対する報酬に基づくなど、タスクの成功した実行に関連し得る。第2のタスク関連の目的は、たとえば、タスク中のエネルギー消費に依存する負の報酬(ペナルティ)に基づいて、タスクの実行中のエネルギー消費を最小限に抑える目的であってもよい。
同様の方法で、さらなるQ値、Q3(s,a)を生成するために、エージェントの状態およびアクションの観測を処理するように構成されたさらなるQ値ニューラルネットワークが維持され得る。さらなるQ値ニューラルネットワークは、さらなるタスク関連の目的関数を最適化するために、トレーニングデータを使用して、強化学習によってトレーニングされ得る。次いで、さらなるQ値ニューラルネットワークは、たとえば、q3(a|s)∝π(a|s)exp(Q3(s,a)/η3)として、アクション選択ポリシーの第2の更新バージョン、q3(a|s)を定義するデータを取得するために使用され得る。次いで、アクション選択ポリシーの第2の更新バージョンとアクション選択ポリシーとの差の尺度、ならびに第1、第2および第3のポリシー投影値の重み付けされた結合から決定された結合された目的値に依存して、第3のポリシー投影値が決定され得る。
一般に、多目的の実装形態では、結合された目的
の値は、リプレイバッファから状態sをモンテカルロサンプリングし、次いで、(現在の)アクション選択ポリシーπ(・|s)を使用して各状態のアクションをサンプリングすることによって決定され得る。次いで、サンプルは、exp(Qk(s,a)/ηk)と状態にわたる正規化定数Zk(s)を掛けた重みakを計算するために使用される。
いくつかの実装形態では、第2のアクション選択ポリシーは、モデルアクション選択ポリシー、すなわちアクション選択モデルの行動ポリシー、πbであり、第2のアクション選択ポリシーを定義するデータは、アクション選択モデルのモデルポリシー出力からのデータを含む。アクション選択モデルは、環境の状態を表す観測からの入力を処理し、エージェントのアクションを選択するためのモデルポリシー出力を生成するように構成される。これらの実装形態では、アクション選択モデルはアクション選択ポリシーの教師として機能し、たとえばトレーニング済みニューラルネットワークを含み得る。一般に、アクション選択モデルは、アクション選択ポリシーについての行動の事前情報(behavioral prior)を定義する。アクション選択モデルの内部パラメータ、たとえばトレーニング済みニューラルネットワークの重みにアクセスする必要はない。
行動ポリシーπb(a|s)とアクション選択ポリシーπ(a|s)との間の差は、比率
として表され得る。第2のポリシー投影値を決定することは、この比率を評価することを含み得る。たとえば、第2のポリシー投影値を決定することは、トレーニングデータから環境の状態の1つまたは複数の観測をサンプリングし、アクション選択ポリシーニューラルネットワーク、π(a|s)によって定義されたアクション選択ポリシーに従って、サンプリングされた観測に対応する1つまたは複数のアクションを決定することを含み得る。次いで、サンプリングされた状態とアクションのペアごとに、比率の対数が決定され得る。特に、比率の対数は、i)サンプリングされた状態およびアクションについてのアクション選択モデルからのモデルポリシー出力と、ii)サンプリングされた状態およびアクションについてのアクション選択ポリシーニューラルネットワークからのポリシー出力との比率の対数として決定され得る。特定の実装形態では、第2のポリシー投影値は、決定された状態およびアクションにわたって、サンプリングされた状態およびアクションについてのポリシー出力ネットワークの対数と、比率の対数の指数関数との積を平均することによって決定され得る。
そのようなアプローチは、別のシステム、たとえば別のニューラルネットワークベースのアクション選択システムの行動ポリシーπb(a|s)を改善したり、「微調整」したりするために使用することができる。比率の値
は、サンプリングされた状態およびアクションについて点ごとに評価することができる。
いくつかの実装形態では、結合された目的値、J(θ)は、第1のポリシー投影値と第2のポリシー投影値との重み付けされた結合から、次のように決定され得る。
式中、重み付けされた結合における2つの項の相対的な重みは、重みα(たとえば、α1+α2=1の場合)によって決定される。Q(s,a)は、前述のように、タスク関連の目的についての状態-アクション値であり、Z1(s)およびZ2(s)は、前述のように、logπ(a|s)と対応する指数項(exp(・))の積を状態にわたって正規化する正規化定数であり、η1およびη2は、前述のように、温度パラメータであり、期待値(平均値)は、リプレイバッファからサンプリングされた状態およびアクション選択ポリシーlogπ(a|s)からサンプリングされたアクションにわたって取られる。
いくつかの実装形態では、たとえばオフライン学習では、第2のアクション選択ポリシーは、教師データセット114によって表される。これらの実装形態では、行動ポリシー、πbを直接問い合わせることは不可能であり、代わりに行動ポリシー、πbは、教師データセット114によって表される。
実装形態では、第2のアクション選択ポリシーを定義する教師データセット114は、各々が、あるタイムステップにおける環境の状態を特徴付ける観測、タイムステップで実行されたアクション、およびアクションを実行した後に受け取った報酬を含む遷移のデータセットを含む。遷移はまた、次のタイムステップにおける環境の状態を特徴付ける観測も含み得る。
アクション選択ポリシーの更新バージョンq(a|s)を定義するデータは、教師データセット114に表現された状態、アクション、および報酬に基づいて、Q学習などの強化学習技法を使用して、前述のように取得され得る。より詳細には、Q値ニューラルネットワーク130は、教師データセット114、およびπ(a|s)に前述のポリシー改善係数exp(Q(s,a)/η)を乗算することによって決定されるアクション選択ポリシーの更新された、改善されたバージョンq(a|s)を使用してトレーニングされ得る。
実装形態では、教師データセット114は、行動ポリシーπbからサンプリングされた遷移のセット、(s,a,r,s')を含み、比率
は直接評価することができない。代わりに、第2のポリシー投影値を決定することは、データセットから環境の状態の1つまたは複数の観測をサンプリングすることと、データセットからサンプリングされた観測に対応する1つまたは複数のアクションをサンプリングすることと、サンプリングされた状態とアクションのペアごとに、アクション選択ポリシーニューラルネットワークからのポリシー出力の対数を平均することとを含み得る。変形例では、平均された対数は、サンプリングされた状態とアクションのペアの状態-アクションアドバンテージ値、すなわち、状態のQ値と状態のベースライン値を定義する状態値との差によって重み付けされる。
1つの特定の例として、結合された目的値、J(θ)は、第1のポリシー投影値と第2のポリシー投影値との重み付けされた結合から、次のように決定され得る。
式中、変数は以前に定義した通りである。第1項の期待値を決定することは、教師データセット114からサンプリングされた状態(観測)と、アクション選択ポリシーlogπ(a|s)を使用して選択された対応するアクションにわたって平均することを伴う。第2項の期待値を決定することは、両方とも教師データセット114からサンプリングされた状態(観測)および対応するアクションにわたって平均することを伴う。このアプローチの実装形態によって、システムは、教師データセット114によって定義される「専門家」によって取られたアクション以外のアクションに対して、Q値推定値を利用することができる。
第2項は、(指数化された)アドバンテージ関数A(s,a)=Q(s,a)-V(s)によって重み付けされ得、式中、V(s)は、状態値関数である。たとえば、第2項は、以下のように定義され得る。
一般に、状態値は、指定されたタスクを正常に実行するために、環境が現在の状態にあることの基準値を表す。より具体的には、アクション選択ポリシーニューラルネットワークパラメータの現在の値によって定義されるアクション選択ポリシーに従って行動したときの状態からの期待リターンを表し得る。状態値は、Q値ニューラルネットワークと同様にトレーニングされた値ニューラルネットワーク、たとえばQ値ニューラルネットワークの別のヘッドによって、たとえば1ステップまたはnステップのリターンに回帰することによって生成されてもよい。これは、行動ポリシー、πbに近いことを測定/保証する別の方法を提供する。このように重み付けされると、記載する技法は、DiME(AWBC)、すなわち、専門家の混合物の蒸留、利点重み付き行動クローニングと呼ばれ得、この重み付けがなければ、技法は、DiME BC(行動クローニング)と呼ばれ得る。
任意選択で、上述した実装形態では、J(θ)の評価は、たとえば、q(a|s)またはポリシー出力122の平均または共分散に対する信頼領域またはソフトKL制約など、追加の制約に従い得る。
いくつかの実装形態では、重みαまたは重みαkは、たとえば平均して高い報酬またはリターンを達成する最適な選択を識別するために、ランダムサンプリングによって選択されることがある。たとえば、重みは、[0,1]の範囲にわたって均一もしくは他の分布からランダムにサンプリングされてもよく、または、たとえば、範囲にわたって段階的になど、系統的にサンプリングされてもよい。
いくつかの実装形態では、アクション選択ポリシーニューラルネットワークは、重みによって定義される、投影値と対応する目的との間のトレードオフを条件とする。第1のポリシー投影値と第2のポリシー投影値との重み付けされた結合は、1つまたは複数の重みに対応する1つまたは複数の要素を有する重みベクトル、
によって定義され得る。次いで、アクション選択ポリシーニューラルネットワークは、ポリシー出力122を生成するために、観測および重みベクトルを処理するように構成され得る。そのような重み条件付きアクション選択ポリシーは、以下のように表され得る。
同様に、1つまたは複数のQ値ニューラルネットワーク130は、状態の観測、エージェントのアクション、および重みベクトル
を処理して、1つまたは複数のそれぞれのQ値132、
を生成するように構成され得る。アクション選択ポリシーの更新された(改善された)バージョンは、以下のように決定され得る。
重みベクトル、
は、たとえば、アクション選択ポリシーニューラルネットワークのトレーニング中に重みベクトルの値をランダムにもしくは系統的にサンプリングすることによって、または、たとえば強化学習などによって報酬を最適化するように重みベクトルを自動的に調整することによって、環境からの報酬またはリターンを最適化するように調整され得る。目的間の最適なトレードオフ、すなわち最適な重みベクトル
を検索することによって、たとえばオフライン設定において、不正確な学習済みQ値を補正するのに役立ち得る。
一例の実装形態では、重みベクトルは、以下のように、損失に基づいて
を更新することによって学習され得る。
式中、cは、行動ポリシー、πbに近い状態、または教師データセット114によって定義された行動ポリシーに近い状態を維持するためのしきい値を定義するハイパーパラメータである。すなわち、システムは、期待されるリターンがしきい値c未満である間、行動ポリシーに近い状態を維持し、そうでない場合、ブートストラップされたQ関数を最適化する。cの値は、行動ポリシーを完全に模倣することで期待されるリターンに基づいて選択され得る。シグモイド関数は、
の値を[0,1]に制約するために適用され得る。
パレートフロントは、パレート最適ポリシーのセットによって定義され、パレート最適ポリシーは、アクション選択ポリシーの1つのターゲットとする目的からのリターンを、別のターゲットとする目的からのリターンを減少させることなく、改善させることができないアクション選択ポリシーである。制約のない多目的強化学習では、一般に、単一の最適ポリシーは存在せず、パレートフロントを定義するセットが存在する。オンラインの多目的設定では、アクション選択ポリシーが重みを条件とするシステムの実装は、パレートフロントが凹型であっても、パレートフロント全体に沿った最適解を見つけることができる。したがって、システムは、複数のタスク関連の報酬(またはペナルティ)について同時に最適化され、次いで、たとえば他の所望の特性に従って、または1つもしくは複数の所望の制約を満たすように、可能な最適解の範囲から最適解を選択することができる。
前述のように、本明細書に記載する技法は、任意の特定のシステムまたはニューラルネットワークアーキテクチャに依存しない。しかしながら、単に一例として、この技法は、たとえば複数のアクターによる非同期構成など、アクター-学習器構成のコンテキストで実装され得る。そのような配置では、各アクターは、学習器からアクション選択ポリシーニューラルネットワーク120のパラメータをフェッチし、環境内で行動し、遷移をリプレイバッファに記憶する。学習器は、リプレイバッファから遷移のバッチをサンプリングし、これらを使用して、アクション選択ポリシーニューラルネットワークおよびQ値ニューラルネットワーク130を更新する。オフライン設定では、通常、遷移のデータセットが与えられ、固定されており(すなわち、アクターは存在しない)、学習器はそのデータセットから遷移のバッチをサンプリングする。
任意選択で、学習を安定させるために、ターゲットニューラルネットワークは、トレーニング済みニューラルネットワークごとに維持され得る。ターゲットネットワークは、たとえばAdamのような最適化アルゴリズムを使用して、任意選択で、重み減衰を伴う勾配を計算するために使用される。たとえば固定ステップ数ごとなどの一定間隔で、ターゲットニューラルネットワークのパラメータは、オンラインニューラルネットワークのパラメータと一致するように更新される。
実装形態では、アクション選択ポリシーニューラルネットワーク120がトレードオフを条件とする。トレードオフは、エピソードごとに固定され得る。たとえば、各エピソードの開始時に、アクターは1つまたは複数の重み
を含むトレードオフを、たとえば
のような分布からサンプリングし、次いで、エピソードの間、
に基づいて行動し得る。次のエピソードの開始時に、アクターは別のトレードオフをサンプリングし、そのプロセスを繰り返し得る。
いくつかの実装形態では、アクション選択ポリシーニューラルネットワーク120およびQ値ニューラルネットワーク130は、ELU(指数線形単位)活性化を有するフィードフォワードニューラルネットワークであり、任意選択でレイヤ正規化を行う。実装形態では、アクション選択ポリシーニューラルネットワークからのポリシー出力は、対角共分散行列を有するガウス分布としてパラメータ化される。
以下のTable(表1)は、オフライン学習のために実装された本明細書に記載のシステムの一例の性能を示す。このシステムは、RL Unpluggedの様々な異なるオフライン学習タスクについて他のアルゴリズムと比較される(Gulcehre et al., "RL unplugged: A suite of benchmark for offline reinforcement learning", Advances in Neural Information Processing Systems 33 - NeurIPS 2020)。Table(表1)は、DiME(BC)およびDiME(AWBC)、ならびにこれらの「マルチ」バージョン(異なるランダムシードを使用した10個のポリシーのトレーニングを伴う)の性能を、行動クローニング(BC)ベースライン(
を最適化する、Gulchere et al.同上)、BCQ(Gulchere et al.同上)、BRAC(Gulchere et al.同上)、MZU(MuZero Unplugged, Schrittwieser et al., "Online and offline reinforcement learning by planning with a learned model", arXiv:2104.06294)、およびLS(CRR)(Wang et al. 2020, "Critic regularized regression", NeurIPS 2020, referred to there as "CRR exp")と比較して示している。
図3Aは、教師のアクション選択ポリシーを微調整するために実装された本明細書に記載されるシステムの一例の性能を示す(X軸はアクターステップ×106)。グラフは、DiMEの「ヒューマノイドの立上り」学習タスク(左)と、投影ステップではなくポリシー改善においてトレードオフが考慮されるアプローチ(右)の結果を比較している。以前の行動ポリシーとして、準最適なヒューマノイドの立上りポリシーが使用される。
グラフは、ゼロからの学習に対応する、α=0の曲線300から、α=0.25の曲線302、およびα=0.5の曲線304を経て、以前の行動ポリシーを完全に模倣することに対応するα=1の曲線306まで、αの異なる値の効果を示す。上記のように学習されたαの値については、曲線308が含まれる。重み付けされた結合によって、ゼロから学習したり、単に以前の行動ポリシーを模倣したりするよりも、より速く学習し、より高い最終報酬を達成するトレードオフを選択できることがわかる。また、記載する技法(「DiME」)は、ポリシー改善ステップでトレードオフが考慮されるアプローチよりも、より速く学習し、より高い最終報酬を達成する。
図3Bは、多目的学習のために実装された本明細書に記載のシステムの一例の性能を示す。図3Bは、凹状のパレートフロントを有するフォンセカフレミング関数に基づくおもちゃのタスクに関する。x軸およびy軸は、2つの異なる報酬に対する平均タスク報酬を示し、丸はDiMEの場合、三角は上述の代替アプローチの場合であり、ポリシー改善ステップにおいてトレードオフが考慮されている。図3Bは、DiMEがパレートフロント全体に沿って解を見つけることができるのに対し、代替アプローチは関数の極端な部分でのみ解を見つけることができることを示している。
図3Cも、多目的学習のために実装された本明細書に記載のシステムの一例の性能を示す。図3Cはヒューマノイドの走行タスクに関し、X軸は平均的な負のアクション規範コストを示しており、これは、-||α||2のアクションに対するエネルギーペナルティに相当する。Y軸は、平均タスク報酬を示す。丸と三角形は図3Bのものと同じである。本明細書に記載されるDiME技法は、より良い解、すなわち、より高い報酬(y軸の上方)およびより低いコスト(x軸に沿ってさらに右側)を有する解を見つけることがわかる。DiME解のハイパーボリュームは、2.58×106であるが、代替アプローチでは1.75×106であり、MO-MPOに基づくアプローチでは2.15×106(Abdolmaleki et al. "A distributional view on multi-objective policy optimization", Proc. 37th Int. Conf. in Learning Representations, ICLR, 2018)であり、図3Cには図示されていない。
この方法のいくつかの実装形態では、環境は現実世界の環境である。エージェントは、タスクを達成するために環境と対話するロボットのような機械的エージェント、あるいは環境内をナビゲートする自律型または半自律型の陸上または空中または水上の車両であり得る。いくつかの実装形態では、アクション選択ニューラルネットワークは、現実世界環境のシミュレーションにおける機械的エージェントのシミュレーションを使用してトレーニングされ得、次いで、現実世界環境で機械的エージェントを制御するために、アクション選択ニューラルネットワークが使用される。ひいては、観測は、現実世界環境のシミュレーションの観測であるという意味で、現実世界環境に関連し得る。アクションは、後に現実世界環境で実行されるアクションのシミュレーションという意味で、タスクを実行するために現実世界環境で行動する機械的エージェントによって実行されるアクションに関連し得る。シミュレーションにおいて部分的にトレーニングされたか、完全にトレーニングされたかにかかわらず、トレーニング後、アクション選択ニューラルネットワークは、現実世界環境を感知する1つまたは複数のセンサから観測を取得し、タスクを実行するように機械的エージェントを制御するためのアクションを選択するためにポリシー出力を使用することによって、現実世界環境と対話しながらタスクを実行するように機械的エージェントを制御するために使用され得る。
一般に、観測は、たとえば、エージェントが環境と対話する際の観測をキャプチャするための画像、オブジェクト位置データ、およびセンサデータのうちの1つまたは複数、たとえば、画像、距離、または位置センサから、またはアクチュエータからのセンサデータを含み得る。ロボットもしくは他の機械的エージェントまたは車両の場合、観測は同様に、エージェントの1つまたは複数の部分の位置、線形速度または角速度、力、トルクまたは加速度、グローバルまたは相対的な姿勢のうちの1つまたは複数を含み得る。観測は、1次元、2次元または3次元で定義され、絶対的観測および/または相対的観測であり得る。たとえばロボットの場合、観測は、ロボットの現在の状態を特徴付けるデータ、たとえば関節位置、関節速度、関節の力、トルクまたは加速度、およびアームなどのロボットの一部および/またはロボットが保持するアイテムの全体的または相対的な姿勢のうちの1つまたは複数を含み得る。観測はまた、たとえば、モーター電流や温度信号などの感知された電子信号、および/または、たとえばカメラもしくはLIDARセンサからの画像もしくはビデオデータ、たとえばエージェントのセンサからのデータ、または環境内のエージェントとは別に配置されたセンサからのデータも含み得る。本明細書で使用する画像は、たとえばLIDARセンサからの点群画像を含む。
アクションは、機械的エージェント、たとえばロボットの物理的行動を制御するための制御信号、たとえばロボットの関節に対するトルクまたはより高レベルの制御コマンド、あるいは自律型もしくは半自律型の陸上もしくは空中もしくは海上の車両を制御するための制御信号、たとえば車両の制御面または他の制御要素に対するトルクまたはより高レベルの制御コマンドを含み得る。言い換えれば、アクションは、たとえば、ロボットの1つまたは複数の関節または別の機械的エージェントの部品の位置、速度、または力/トルク/加速度データを含み得る。制御信号は、さらに、またはその代わりに、モーター制御データなどの電子制御データ、またはより一般的には、その制御が環境の観測された状態に影響を与える環境内の1つまたは複数の電子デバイスを制御するためのデータも含む。たとえば、自律型または半自律型の陸上または海上または空中の車両の場合、信号は、ステアリングなどのナビゲーション、ならびに車両のブレーキおよび/または加速など、移動を制御するためのアクションを定義し得る。
そのような用途では、タスク関連報酬は、1つまたは複数のターゲット位置、1つまたは複数のターゲット姿勢、あるいは1つまたは複数の他のターゲット構成に接近または達成したことに対する報酬を含み得、たとえば、位置または姿勢に到達したこと、および/またはロボットアームの動きを制約したことに対してロボットアームに報酬を与えるためのものである。コストは、機械的エージェントの一部が物体または壁または障壁などのエンティティと衝突することに関連付けられ得る。一般に、報酬またはコストは、前述の観測のいずれか、たとえばロボットまたは車両の位置または姿勢に依存する可能性がある。たとえば、ロボットの場合、報酬またはコストは、たとえば、運動速度、エンドエフェクタの位置、重心の位置、または身体部分のグループの位置および/または向きを制限するため、関節の向き(角度)または速度(speed)/速度(velocity)に依存する可能性があり、あるいは、たとえば、物体と対話するときに加えられる力のしきい値または最大値に依存するなど、アクチュエータまたはエンドエフェクタによって加えられる力、あるいは、機械的エージェントの一部によって加えられるトルクに関連付けられる可能性がある。別の例では、報酬またはコストは、エネルギーまたは電力の使用量、動作速度、あるいはロボット、ロボットの部品、または車両などの位置に依存し得る。
ロボットによって実行されるタスクは、たとえば、物体を組み立てる、処理する、または包装すること、および/あるいはロボットが移動することを伴うタスクなど、1つまたは複数の物体を拾い上げ、移動させ、または操作することに伴う任意のタスクであり得る。車両によって実行されるタスクは、車両が環境内を移動することを伴うタスクであり得る。
上述した観測、アクション、報酬、およびコストは、現実世界環境のシミュレーションにおけるエージェントのシミュレーションに適用され得る。たとえばシステム/方法のニューラルネットワークがトレーニングされるなど、ひとたびシミュレーションでシステムがトレーニングされると、システム/方法は、現実世界の環境で現実世界のエージェントを制御するために使用され得る。すなわち、システム/方法によって生成された制御信号は、現実世界環境からの観測に応答して、現実世界環境においてタスクを実行するように現実世界エージェントを制御するために使用され得る。任意選択で、システム/方法は、現実世界環境でのトレーニングを継続し得る。
いくつかの用途では、環境は、ネットワーク化されたシステムであり、エージェントは電子エージェントであり、アクションはネットワーク化されたシステムのエネルギー効率または性能に影響を与えるネットワーク化されたシステムの設定を構成することを含む。対応するタスクは、ネットワーク化されたシステムのエネルギー効率または性能を最適化することを伴い得る。ネットワーク化されたシステムとは、たとえば電力網またはデータセンターなどであり得る。たとえば、記載したシステム/方法は、電力網のバランスを取るタスク、または再生可能発電(たとえば、ソーラーパネルを動かす、風力タービンブレードを制御するなど)、またはバッテリなどへの電力エネルギー貯蔵を最適化するタスクを有する可能性があり、対応する報酬またはコストを伴い、観測は電力網、発電、または貯蔵の運用に関連する可能性があり、アクションは電力網、発電、またはエネルギー貯蔵の動作を制御するための制御アクションを含む可能性がある。
いくつかの用途では、エージェントは、スタティックまたはモバイルのソフトウェアエージェント、すなわち、タスクを実行するために、自律的に、および/または他のソフトウェアエージェントもしくは人とともに動作するように構成されたコンピュータプログラムを含む。たとえば、環境は、回路または集積回路の設計またはルーティング環境であり得、エージェントは、たとえばASICなど、回路または集積回路の相互接続線をルーティングするための設計または配線タスクを実行するように構成され得る。報酬および/またはコストは、相互接続の長さ、抵抗、キャパシタンス、インピーダンス、損失、速度、または伝搬遅延などの1つもしくは複数の設計もしくはルーティングメトリクス、および/または幅、厚さ、または形状などの物理的なラインパラメータ、および設計ルールに依存し得るか、または動作速度、消費電力、材料使用量、冷却要件、または電磁放射レベルなどのグローバルな特性に関連し得る。観測は、たとえば、コンポーネントの位置および相互接続の観測であり得、アクションは、たとえば、コンポーネントの位置または向きを定義するためのコンポーネント配置アクション、ならびに/あるいは、たとえば、相互接続の選択および/または配置アクションなどの相互接続ルーティングアクションを含み得る。このプロセスは、たとえば回路または集積回路を製造するためのコンピュータ実行可能命令の形態で、製造のための設計またはルーティング情報を出力することを含み得る。プロセスは、決定された設計またはルーティング情報に従って回路または集積回路を作成することを含み得る。
いくつかの用途では、エージェントは電子エージェントであり得、観測は、電流、電圧、電力、温度、他のセンサ、および/またはコンピュータや産業用制御機器などの電子的および/または機械的アイテムの機能を表す電子信号など、プラント、建物、サービス施設、または関連機器の一部を監視する1つまたは複数のセンサからのデータを含み得る。エージェントは、たとえば、データセンター、サーバファーム、送電網、配水システムなどの施設、または製造プラント、建物、サービス施設など、機器アイテムを含む現実世界環境でのアクションを制御し得る。次いで、観測は、プラント、建物、または施設の運転に関連する場合があり、たとえば、機器による電力または水の使用量、機器の運転効率の観測、あるいは発電または配電制御の観測、あるいはリソースの使用量または廃棄物生成の観測、あるいは気温など環境の観測などを含み得る。アクションには、プラント/建物/施設の機器のアイテムにおける動作条件を制御するか課すアクション、および/または、たとえばプラント/建物/施設のコンポーネントを調整またはオン/オフにするためなど、プラント/建物/施設の動作における設定の変更をもたらすアクションを含み得る。機器は、単なる例として、産業用制御機器、コンピュータ、または加熱、冷却、もしくは照明機器を含み得る。報酬および/またはコストは、効率の尺度、たとえばリソース使用量、環境における事業の環境の影響の尺度、たとえば廃棄物排出量、電気または他の電力またはエネルギー消費量、加熱/冷却要件、施設におけるリソース使用量、たとえば水使用量、あるいは施設または施設内の機器のアイテムの温度のうちの1つまたは複数を含み得る。対応するタスクは、エネルギーまたはリソースの使用量を最小限に抑えたり、効率を最適化したりするために、対応する報酬またはコストを最適化することを伴い得る。
より具体的には、いくつかの実装形態では、環境は、化学的、生物学的、もしくは機械的製品、または食品などの製品を製造するための現実世界の製造環境である。本明細書で使用される製品の「製造」には、出発原料を精製して製品を作ること、または出発原料を処理してたとえば汚染物質を除去し、洗浄またはリサイクルされた製品を生成することも含まれる。製造プラントは、化学物質もしくは生物学的物質用の容器、または固体物質や他の物質を処理するための機械、たとえばロボットなど複数の製造ユニットを含み得る。製造ユニットは、たとえばパイプや機械的な搬送手段を介して、製品の製造中に、製品の中間バージョンまたはコンポーネントが、製造ユニット間を移動できるように構成されている。本明細書で使用する製品の製造には、厨房ロボットによる食品の製造も含まれる。
エージェントは、製品を製造するために動作する製造ユニット、またはロボットなどの機械を制御するように構成された電子エージェントを含み得る。すなわち、エージェントは、化学的、生物学的、または機械的製品の製造を制御するように構成された制御システムを含み得る。たとえば、制御システムは、製造ユニットまたは機械の1つまたは複数を制御するように、あるいは製造ユニットまたは機械間の製品の中間バージョンまたはコンポーネントの移動を制御するように構成され得る。
一例として、エージェントによって実行されるタスクは、製品またはその中間バージョンもしくはコンポーネントを製造するためのタスクを含み得る。別の例として、エージェントによって実行されるタスクは、電力消費、水の消費、または製造プロセスで使用される任意の材料または消耗品の消費を制御するためのタスクなど、リソースの使用量を制御する、たとえば最小限に抑えるタスクを含み得る。
アクションは、製品、またはその中間体もしくはコンポーネントを製造するために固体もしくは液体材料を処理するための機械もしくは製造ユニットの使用を制御するための制御アクション、または製造ユニットもしくは機械間などの製造環境内における製品の中間バージョンもしくはコンポーネントの移動を制御するための制御アクションを含み得る。一般に、アクションは、観測された環境の状態に影響を与える任意のアクションであり、たとえば、後述する感知されたパラメータのいずれかを調整するように構成されたアクションであってもよい。これには、製造ユニットの物理的または化学的状態を調整するためのアクション、または機械の機械部品もしくはロボットの関節の動きを制御するためのアクションが含まれ得る。アクションには、製造ユニットもしくは機械に動作条件を課すアクション、または製造ユニットもしくは機械の動作を調整、制御、もしくはオン/オフするための設定の変更をもたらすアクションが含まれ得る。
報酬またはリターンは、タスクの性能のメトリックに関連し得る。たとえば、製品を製造するタスクの場合、メトリックは、製造される製品の量、製品の品質、製品の製造速度、または製造タスクを実行するための物理的なコスト、たとえばタスクを実行するために使用されるエネルギー、材料、またはその他のリソースの量のメトリックを含み得る。リソースの使用を制御するタスクの場合、マトリックスはリソースの使用量の任意のメトリックを含み得る。
一般に、環境状態の観測は、電子的および/または機械的な機器のアイテムの機能を表す任意の電子信号を含み得る。たとえば、環境の状態の表現は、製造環境の状態を感知するセンサ、たとえば製造ユニットもしくは機械の状態または構成を感知するセンサ、または製造ユニットもしくは機械間の材料の移動を感知するセンサによって行われた観測から導出され得る。いくつかの例として、そのようなセンサは、機械的な動きもしくは力、圧力、温度、電流、電圧、周波数、インピーダンスなどの電気的な状態、1つもしくは複数の材料の量、レベル、流量/移動速度、または流量/移動経路、物理的もしくは化学的な状態、たとえば物理的な状態、形状、構成、もしくはpHなどの化学的な状態、ユニットもしくは機械の機械的な構成、またはバルブの構成などのユニットもしくは機械の構成、製造ユニットもしくは機械、または動きの画像もしくはビデオ観測をキャプチャするための画像もしくはビデオセンサ、あるいは任意の他の適切なタイプのセンサを感知するように構成され得る。ロボットなどの機械の場合、センサからの観測は、たとえば、機械またはロボットの現在の状態、あるいは機械またはロボットが保持または処理するアイテムの現在の状態を特徴付けるデータなど、機械の1つまたは複数の部品の位置、線形または角速度、力、トルクもしくは加速度、または姿勢の観測を含み得る。観測は、たとえば、モーター電流もしくは温度信号のような感知された電子信号、またはたとえばカメラもしくはLIDARセンサからの画像もしくはビデオデータなども含み得る。このようなセンサは、環境内のエージェントの一部である場合もあれば、エージェントとは別に配置されている場合もある。
いくつかの実装形態では、環境は、サーバファームまたはデータセンター、たとえば電気通信データセンター、またはデータを記憶または処理するためのコンピュータデータセンター、または任意のサービス施設などの、複数の電子機器のアイテムを含むサービス施設の現実世界環境である。サービス施設はまた、機器のアイテムの動作環境を制御する補助的な制御機器、たとえば、冷却機器などの温度制御、空気流量制御または空調機器などの環境制御機器も含み得る。タスクは、電力消費量または水消費量を制御するタスクなど、リソースの使用を制御する、たとえば最小限に抑えるタスクを含み得る。エージェントは、機器のアイテムの動作を制御するように構成された電子エージェントを含んでもよく、または、補助的な、たとえば環境制御機器の動作を制御するように構成された電子エージェントを含んでもよい。
一般に、アクションは、観測された環境の状態に影響を与える任意のアクションであり、たとえば、後述する感知されたパラメータのいずれかを調整するように構成されたアクションであってもよい。これらには、機器のアイテムまたは補助制御機器を制御する、またはそれに動作条件を課すためのアクション、たとえば、機器のアイテムまたは補助制御機器のアイテムの動作を調整、制御、またはオン/オフするための設定の変更をもたらすアクションを含み得る。
一般に、環境状態の観測は、施設または施設内の機器の機能を表す任意の電子信号を含み得る。たとえば、環境の状態の表現は、施設の物理的環境の状態を感知する任意のセンサによって行われた観測、または1つもしくは複数の機器のアイテムまたは1つもしくは複数の補助制御機器のアイテムの状態を感知する任意のセンサによって行われた観測から導出することができる。これらは、電流、電圧、電力、またはエネルギーなどの電気的状態、施設の温度、施設内または施設の冷却システム内の流体の流れ、温度、または圧力、あるいは通気口が開いているかどうかなどの物理的な施設構成を感知するように構成されたセンサを含む。
報酬またはリターンは、タスクの性能のメトリックに関連し得る。たとえば、電力またはや水の使用を制御するタスクなど、リソースの使用を制御、たとえば最小限に抑えるタスクの場合、メトリックは、リソースの使用の任意のメトリックを含み得る。
いくつかの用途では、環境はデータパケット通信ネットワーク環境である場合があり、エージェントは通信ネットワーク上でデータのパケットをルーティングするためのルータを含み得る。タスクは、データルーティングタスクを含み得る。アクションは、データパケットルーティングアクションを含み得、観測は、たとえば、ルーティングパスの長さ、帯域幅、負荷、ホップ数、パスコスト、遅延、最大伝送単位(MTU)、信頼性のメトリックなど、ルーティングメトリクスを含むルーティングテーブルの観測を含み得る。報酬またはコストは、1つまたは複数のルーティングメトリックに関連して、すなわち、ルーティングメトリックの1つまたは複数を最大化もしくは制限するために定義され得る。
いくつかの他の用途では、エージェントは、たとえばモバイルデバイス上および/またはデータセンター内など、コンピューティングリソースにわたるタスクの分散を管理するタスクを有するソフトウェアエージェントである。これらの実装形態では、観測は、計算および/もしくはメモリ容量、またはインターネットアクセス可能なリソースなどのコンピューティングリソースの観測を含み得、アクションは、特定のコンピューティングリソースにタスクを割り当てることを含み得る。報酬またはコストは、コンピューティングリソース、電力、帯域幅、および計算速度の利用率のうちの1つまたは複数を最大化または制限することになり得る。
いくつかの他の用途では、環境はインシリコ薬物設計環境、たとえば分子ドッキング環境であり得、エージェントは、薬物の要素または化学構造を決定するためのタスクを有するコンピュータシステムであり得る。薬物は低分子薬物でも生物学的薬物でもよい。観測は、薬物と薬物の標的とのシミュレートされた組合せの観測であり得る。アクションは、薬物と薬物標的の相対的な位置、姿勢、または配座を変更するためのアクション(またはこれは自動的に実行され場合がある)、および/または薬物の化学組成を変更するためのアクション、および/または候補のライブラリから候補薬物を選択するためのアクションであり得る。1つまたは複数の報酬またはコストは、薬物と薬物標的との間の相互作用、たとえば、薬物と薬物標的との間の適合または結合の尺度、薬物の推定効力、薬物の推定選択性、薬物の推定毒性、薬物の推定薬物動態学的特性、薬物の推定バイオアベイラビリティ、薬物の推定合成容易性、および薬物の1つまたは複数の基本的化学的特性のうちの1つまたは複数に基づいて定義され得る。薬物と薬物標的間の相互作用の尺度は、たとえばタンパク質-リガンド結合、ファンデルワールス相互作用、静電相互作用、および/または接触表面領域またはエネルギーに依存し得、それはたとえばドッキングスコアを含み得る。
他のいくつかの用途では、環境はインターネットまたはモバイル通信環境であり、エージェントはユーザのためのパーソナライズされた推薦を管理するソフトウェアエージェントである。タスクは、ユーザへの推薦を生成することであり得る。観測は、ユーザによって取られた以前のアクション、たとえばこれらを特徴付ける特徴などを含み得、アクションは、コンテンツアイテムなどのアイテムをユーザに推奨するアクションを含み得る。報酬またはコストは、ユーザが(コンテンツ)アイテムを推奨されることに好意的な反応を示す推定可能性、1つまたは複数の推奨アイテムの適否、推奨アイテムのコスト、および任意選択で、時間スパン内にユーザによって受信された推奨の数のうちの1つまたは複数を最大化または制約するものであってもよい。別の例では、推奨は、ユーザがエネルギー使用または環境への影響を削減するための方法であり得る。
いくつかの他の用途では、環境は医療環境であり、エージェントは患者に治療を提案するためのコンピュータシステムである。次いで、観測は、患者の状態の観測、たとえば、患者の健康を特徴付けるデータ、たとえば、画像センサまたはバイオマーカーセンサなどの1つもしくは複数のセンサからのデータ、バイタルサインデータ、臨床検査データ、および/または、たとえば、医療記録からの処理されたテキストを含み得る。アクションは、たとえば、投薬または介入を提供することなど、患者に対する可能な医療処置を含み得る。タスクは、たとえばバイタルサインを安定させる、または医療環境もしくは医療環境の一部、たとえば集中治療部から退院するために患者の健康を十分に改善したりするなど、患者の健康を安定または改善することであってもよく、あるいは、退院後の患者の生存の可能性を改善する、または患者への長期的なダメージを軽減することであってもよい。それに応じて、報酬またはコストは、タスクに応じて定義することができ、たとえば、報酬は、タスクの進捗、たとえば、患者の健康状態もしくは予後の改善を示し得、または、コストは、患者の健康状態もしくは予後の悪化を示し得る。
ひとたびトレーニングされると、システムは、トレーニングされたタスクを実行するために使用され得、任意選択で、そのような使用中にトレーニングが継続される。タスクは、たとえば、上述のタスクのいずれかであり得る。一般に、トレーニングされたシステムは、上記のように報酬を達成するか、コストを最小限に抑えるためにエージェントを制御するために使用される。単なる例として、ひとたびトレーニングされると、システムは、1つもしくは複数の物体の操作、組み立て、処理、または移動などのタスクを実行するようにロボットまたは車両を制御する、たとえば、エネルギー使用を最小限に抑えるように機器を制御する、あるいは、ヘルスケアにおいて、医療行為を提案するために使用され得る。
任意選択で、上記の実装のいずれかにおいて、任意の所与のタイムステップにおける観測は、環境を特徴付けるのに有益であり得る前のタイムステップからのデータ、たとえば、前のタイムステップで実行されたアクション、前のタイムステップで受け取った報酬、またはその両方を含み得る。
本明細書は、システムおよびコンピュータプログラム構成要素に関して「構成される」という用語を使用する。1つまたは複数のコンピュータのシステムが特定の動作またはアクションを実行するように構成されるとは、システムが、動作中、システムに動作またはアクションを実行させるソフトウェア、ファームウェア、ハードウェア、またはそれらの組合せをインストールしていることを意味する。1つまたは複数のコンピュータプログラムが特定の動作またはアクションを実行するように構成されるとは、1つまたは複数のプログラムが、データ処理装置によって実行されると、装置に動作またはアクションを実行させる命令を含むことを意味する。
本明細書に記載された主題および機能的動作の実施形態は、デジタル電子回路、有形に実施されたコンピュータソフトウェアまたはファームウェア、コンピュータハードウェア、本明細書に開示される構造およびそれらの構造的均等物、またはそれらの1つもしくは複数の組合せに実装することができる。本明細書に記載される主題の実施形態は、1つまたは複数のコンピュータプログラム、すなわち、データ処理装置によって実行される、またはデータ処理装置の動作を制御するための有形の非一時的記憶媒体上に符号化されたコンピュータプログラム命令の1つまたは複数のモジュールとして実装することができる。コンピュータ記憶媒体は、機械可読記憶デバイス、機械可読記憶基板、ランダムまたはシリアルアクセスメモリデバイス、またはそれらの1つもしくは複数の組合せとすることができる。代替的に、または追加として、プログラム命令は、人工的に生成された伝搬信号、たとえば、データ処理装置によって実行するための適切な受信機装置への送信のために情報を符号化するために生成された機械生成電気、光学、または電磁信号上で符号化することができる。
「データ処理装置」という用語は、データ処理ハードウェアを指し、たとえば、プログラム可能プロセッサ、コンピュータ、または複数のプロセッサもしくはコンピュータを含む、データを処理するためのあらゆる種類の装置、デバイスおよび機械を包含する。装置は、たとえば、FPGA(フィールドプログラマブルゲートアレイ)またはASIC(特定用途向け集積回路)などの専用論理回路でもよく、またはそれをさらに含むこともできる。装置は、任意選択で、ハードウェアに加えて、コンピュータプログラムの実行環境を作成するコード、たとえば、プロセッサファームウェア、プロトコルスタック、データベース管理システム、オペレーティングシステム、またはそれらの1つまたは複数の組合せを構成するコードを含むことができる。
プログラム、ソフトウェア、ソフトウェアアプリケーション、アプリ、モジュール、ソフトウェアモジュール、スクリプト、またはコードとも呼ばれる、または記述されることもあるコンピュータプログラムは、コンパイルもしくはインタープリタ型言語、宣言型言語もしくは手続き型言語を含む、任意の形式のプログラミング言語で記述することができ、それは、スタンドアロンプログラムとして、またはモジュール、コンポーネント、サブルーチン、もしくはコンピューティング環境での使用に適した他のユニットとしてなど、あらゆる形式で展開できる。プログラムは、必ずしも必要はないが、ファイルシステム内のファイルに対応し得る。プログラムは、当該プログラム専用の単一のファイル、またはたとえば、1つまたは複数のモジュール、サブプログラム、もしくはコードの一部を記憶するファイルなど、複数のコーディネートされたファイルに、たとえば、マークアップ言語ドキュメントに記憶された1つまたは複数のスクリプトなど、他のプログラムまたはデータを保持するファイルの一部に記憶することができる。コンピュータプログラムは、1つのコンピュータ上で、または1つのサイトに位置するか、もしくは複数のサイトに分散され、データ通信ネットワークによって相互接続された複数のコンピュータ上で実行されるように配備することができる。
本明細書では、「データベース」という用語は、任意のデータの集まりを指すために広く使用されており、データは、任意の特定の方法で構造化する必要はなく、またはまったく構造化する必要はなく、1つまたは複数の場所にある記憶デバイスに記憶することができる。したがって、たとえば、インデックスデータベースは、複数のデータの集まりを含むことができ、それらの各々は、異なって編成されアクセスされてもよい。
同様に、本明細書では、「エンジン」という用語は、1つまたは複数の特定の機能を実行するようにプログラムされているソフトウェアベースのシステム、サブシステム、またはプロセスを指すために広く使用されている。一般に、エンジンは、1つまたは複数の場所にある1つまたは複数のコンピュータにインストールされた1つまたは複数のソフトウェアモジュールまたはコンポーネントとして実装される。いくつかの場合には、1つまたは複数のコンピュータが特定のエンジンに専用であり、他の場合には、複数のエンジンを、同じ1つまたは複数のコンピュータにインストールし、そこにおいて実行することができる。
本明細書で記述されたプロセスおよび論理フローは、入力データ上で動作し、出力を生成することによって機能を実行するために、1つまたは複数のコンピュータプログラムを実行する1つまたは複数のプログラム可能コンピュータによって実行することができる。プロセスおよび論理フローは、たとえばFPGAまたはASICなどの専用論理回路によって、または専用論理回路と1つまたは複数のプログラムされたコンピュータとの組合せによっても実行することができる。
コンピュータプログラムの実行に適したコンピュータは、汎用マイクロプロセッサもしくは専用マイクロプロセッサ、またはその両方、あるいは任意の他の種類の中央処理装置に基づき得る。一般に、中央処理ユニットは、読取り専用メモリまたはランダムアクセスメモリまたはその両方から命令およびデータを受信する。コンピュータの要素は、命令を実行または実施するための中央処理ユニット、ならびに命令およびデータを記憶するための1つまたは複数のメモリデバイスである。中央処理ユニットおよびメモリは、専用論理回路によって補うまたはそこに組み込むことができる。一般に、コンピュータは、たとえば磁気、光磁気ディスク、または光ディスクなど、データを記憶するための1つまたは複数の大容量記憶デバイスも含み、あるいは、1つまたは複数の大容量記憶デバイスからデータを受信する、それにデータを転送する、またはその両方のために動作可能に結合される。しかしながら、コンピュータはそのようなデバイスを有する必要はない。さらに、コンピュータは、別のデバイス、たとえば、ほんのいくつかの例を挙げれば、携帯電話、携帯情報端末(PDA)、モバイルオーディオもしくはビデオプレーヤ、ゲームコンソール、全地球測位システム(GPS)受信機、またはユニバーサルシリアルバス(USB)フラッシュドライブなどのポータブル記憶デバイス中に組み込むことができる。
コンピュータプログラム命令およびデータを記憶するのに適したコンピュータ可読媒体は、一例として、たとえば、EPROM、EEPROM、およびフラッシュメモリデバイスなどの半導体メモリデバイス、たとえば内部ハードディスクまたはリムーバブルディスクなどの磁気ディスク、光磁気ディスク、およびCD-ROMおよびDVD-ROMディスクを含むすべての形態の不揮発性メモリ、メディアおよびメモリデバイスを含む。
ユーザとの対話を提供するために、本明細書に記載される主題の実施形態は、ユーザに情報を表示するための、CRT(陰極線管)またはLCD(液晶ディスプレイ)モニタなどのディスプレイデバイス、ならびにキーボードおよび、ユーザがコンピュータに入力を提供することができる、たとえば、マウスまたはトラックボールなどのポインティングデバイスを有するコンピュータ上に実装することができる。他の種類のデバイスを使用して、ユーザとの対話を提供することもでき、たとえば、ユーザに提供されるフィードバックは、たとえば、視覚フィードバック、聴覚フィードバック、または触覚フィードバックなど、任意の形態の感覚フィードバックとすることができ、ユーザからの入力は、音響、音声、または触覚入力を含む任意の形態で受信することができる。さらに、コンピュータは、たとえば、ウェブブラウザから受信された要求に応答して、ユーザのデバイス上のウェブブラウザにウェブページを送信することによってなど、ユーザによって使用されるデバイスとの間でドキュメントを送受信することによって、ユーザと対話することができる。また、コンピュータは、テキストメッセージまたは他の形態のメッセージをパーソナルデバイス、たとえば、メッセージングアプリケーションを実行しているスマートフォンに送信し、代わりに、ユーザから応答メッセージを受信することによって、ユーザと対話することができる。
機械学習モデルを実装するためのデータ処理装置は、たとえば、機械学習のトレーニングまたは製作、すなわち推論、作業負荷の共通部分および計算集約的部分を処理するための専用ハードウェアアクセラレータユニットも含むことができる。
機械学習モデルは、機械学習フレームワーク、たとえば、TensorFlowフレームワーク、Microsoft Cognitive Toolkitフレームワーク、Apache Singaフレームワーク、またはApache MXNetフレームワークを使用して実装および展開することができる。
本明細書に記載される主題の実施形態は、たとえばデータサーバとしてのバックエンドコンポーネントを含む、またはアプリケーションサーバなどのミドルウェアコンポーネントを含む、またはたとえば、ユーザが本明細書に記載される主題の実装と対話することができる、グラフィカルユーザインタフェース、ウェブブラウザ、またはアプリを有するクライアントコンピュータなどのフロントエンドコンポーネントを含む、または1つもしくは複数のそのようなバックエンド、ミドルウェア、またはフロントエンドコンポーネントの任意の組合せを含むコンピューティングシステムにおいて実装することができる。システムのコンポーネントは、たとえば、通信ネットワークなど、任意の形式または媒体のデジタルデータ通信によって相互接続することができる。通信ネットワークの例には、ローカルエリアネットワーク(LAN)およびワイドエリアネットワーク(WAN)、たとえばインターネットがある。
コンピューティングシステムは、クライアントおよびサーバを含むことができる。クライアントとサーバとは、一般に、互いに遠隔であり、典型的には、通信ネットワークを介して対話する。クライアントとサーバとの関係は、それぞれのコンピュータ上で実行され、互いにクライアントサーバ関係を有するコンピュータプログラムによって生じる。いくつかの実施形態では、サーバは、たとえば、クライアントとして動作するデバイスと対話しているユーザにデータを表示し、ユーザからユーザ入力を受信するために、データ、たとえば、HTMLページをユーザデバイスに送信する。たとえば、ユーザ対話の結果など、ユーザデバイスにおいて生成されたデータは、デバイスからサーバにおいて受信することができる。
本明細書は、多くの具体的な実施の詳細を含むが、これらは、任意の発明の範囲または特許請求される可能性のある範囲に対する限定ではなく、むしろ特定の発明の特定の実施形態に固有であり得る特徴の説明として解釈されるものとする。別個の実施形態の文脈において本明細書で説明されるいくつかの特徴は、単一の実施形態において組み合わせて実装することもできる。逆に、単一の実施形態の文脈で記載されている様々な特徴は、複数の実施形態で別々にまたは任意の適切な部分組合せで実装することもできる。さらに、特徴は、いくつかの組合せで作用するものとして上述されており、当初はそのように請求されているが、いくつかの場合、請求された組合せからの1つまたは複数の特徴を、組合せから削除することができ、請求された組合せは、部分組合せ、または部分組合せの変形を対象とし得る。
同様に、動作が図面に示され、特許請求の範囲に特定の順序で記載されているが、これは、そのような動作が、示された特定の順序で、または逐次的な順序で実行されること、あるいは望ましい結果を達成するために、図示されたすべての動作が実行されることを必要とするものとして理解されないものとする。いくつかの状況では、マルチタスキングおよび並列処理が有利であり得る。さらに、上述した実施形態における様々なシステムモジュールおよびコンポーネントの分離は、すべての実施形態においてそのような分離を必要とするものと理解されないものとし、記述されたプログラムコンポーネントおよびシステムを、一般に、単一のソフトウェア製品に一緒に組み入れることができ、または複数のソフトウェア製品にパッケージ化することができることを理解されたい。
主題の特定の実施形態が記載されている。他の実施形態は、以下の特許請求の範囲内にある。たとえば、特許請求の範囲に列挙されたアクションは、異なる順序で実行され、依然として望ましい結果を達成することができる。一例として、添付の図面に示されるプロセスは、望ましい結果を達成するために、示された特定の順序または逐次的な順序を必ずしも必要としない。いくつかの場合には、マルチタスキングおよび並列処理が有利であり得る。