(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2024-08-06
(54)【発明の名称】オープンエンドな学習を通してのエージェントニューラルネットワークのトレーニング
(51)【国際特許分類】
G06N 3/092 20230101AFI20240730BHJP
G06N 3/0985 20230101ALI20240730BHJP
【FI】
G06N3/092
G06N3/0985
【審査請求】有
【予備審査請求】未請求
(21)【出願番号】P 2024505148
(86)(22)【出願日】2022-07-27
(85)【翻訳文提出日】2024-03-13
(86)【国際出願番号】 EP2022071137
(87)【国際公開番号】W WO2023006848
(87)【国際公開日】2023-02-02
(32)【優先日】2021-07-27
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
(71)【出願人】
【識別番号】517030789
【氏名又は名称】ディープマインド テクノロジーズ リミテッド
(74)【代理人】
【識別番号】100108453
【氏名又は名称】村山 靖彦
(74)【代理人】
【識別番号】100110364
【氏名又は名称】実広 信哉
(74)【代理人】
【識別番号】100133400
【氏名又は名称】阿部 達彦
(72)【発明者】
【氏名】マックスウェル・エリオット・ジャダーバーグ
(72)【発明者】
【氏名】ヴォイチェフ・チャルネッキ
(57)【要約】
複数のタスクを実施するようにエージェントを制御する際に使用するために、エージェントニューラルネットワークをトレーニングするための、コンピュータ記憶媒体上で符号化されたコンピュータプログラムを含む、方法、システム、および装置。方法のうちの1つは、1つまたは複数の候補エージェントニューラルネットワークの集団を指定する集団データを維持するステップと、集団データの中の候補エージェントニューラルネットワークのパラメータのパラメータ値を更新するように、1つまたは複数のタスクのそれぞれのセットで、各候補エージェントニューラルネットワークをトレーニングするステップとを含み、トレーニングするステップは、各候補エージェントニューラルネットワークについて、候補タスクを識別するデータを取得するステップと、候補タスクのための制御方策を指定するデータを取得するステップと、候補エージェントニューラルネットワークを候補タスクでトレーニングするかどうかを判断するステップと、候補エージェントニューラルネットワークを候補タスクでトレーニングするとの判断に応答して、候補タスクで候補エージェントニューラルネットワークをトレーニングするステップとを含む。
【特許請求の範囲】
【請求項1】
複数のタスクを実施するようにエージェントを制御する際に使用するために、エージェントニューラルネットワークをトレーニングするためのコンピュータ実装方法であって、前記方法は、
1つまたは複数の候補エージェントニューラルネットワークの集団を指定する集団データを維持するステップであって、前記集団データは、前記集団の中の各候補エージェントニューラルネットワークについて、(i)前記候補エージェントニューラルネットワークのパラメータのそれぞれのパラメータ値、および(ii)前記候補エージェントニューラルネットワークをトレーニングするためのそれぞれのハイパーパラメータ値を指定する、ステップと、
前記集団データの中の前記候補エージェントニューラルネットワークの前記パラメータの前記パラメータ値を更新するように、1つまたは複数のタスクのそれぞれのセットで、各候補エージェントニューラルネットワークをトレーニングするステップとを含み、前記トレーニングするステップは、各候補エージェントニューラルネットワークについて、
前記候補エージェントニューラルネットワークをトレーニングするための候補タスクを識別するデータを取得するステップと、
前記候補タスクのための制御方策を指定するデータを取得するステップと、
(i)前記候補タスクにおける前記候補エージェントニューラルネットワークのパフォーマンス、(ii)前記候補タスクにおける、前記候補タスクのための前記制御方策のパフォーマンス、および(iii)前記候補エージェントニューラルネットワーク用の前記ハイパーパラメータ値のうちの1つまたは複数に基づいて、前記候補エージェントニューラルネットワークを前記候補タスクでトレーニングするかどうかを判断するステップと、
前記候補エージェントニューラルネットワークを前記候補タスクでトレーニングするとの判断に応答して、前記エージェントニューラルネットワークの前記パラメータの前記パラメータ値を更新するように、前記候補タスクで前記候補エージェントニューラルネットワークをトレーニングするステップとを含む、方法。
【請求項2】
前記候補タスクで前記候補エージェントニューラルネットワークをトレーニングするステップは、強化学習を通して、前記候補タスクで前記候補エージェントニューラルネットワークをトレーニングするステップを含む、請求項1に記載の方法。
【請求項3】
前記候補タスクのための前記制御方策は、前記候補タスクを実施するように前記エージェントを制御するとき、アクションのセットから一様にランダムに選択されたアクションを行う一様ランダムアクション方策である、請求項1または2に記載の方法。
【請求項4】
前記候補タスクのための前記制御方策は、前記候補タスクを実施するように前記エージェントを制御するとき、前記候補タスクのみでトレーニングされた単一候補エージェントニューラルネットワークを使用する単一タスク方策である、請求項1または2に記載の方法。
【請求項5】
前記候補タスクのための前記制御方策は、前記候補タスクを実施するように前記エージェントを制御するとき、前記候補エージェントニューラルネットワークのインスタンスを使用するが、前記候補エージェントニューラルネットワークの前記トレーニング中の早期の時点からの前記候補エージェントニューラルネットワークの前記パラメータについての履歴パラメータ値を用いる方策である、請求項1または2に記載の方法。
【請求項6】
(i)前記候補タスクにおける前記候補エージェントニューラルネットワークのパフォーマンス、(ii)前記候補タスクにおける、前記候補タスクのための前記制御方策のパフォーマンス、および(iii)前記候補エージェントニューラルネットワーク用の前記ハイパーパラメータ値のうちの1つまたは複数に基づいて、前記候補エージェントニューラルネットワークを前記候補タスクでトレーニングするかどうかを判断するステップは、
前記候補タスクの複数のタスクエピソードの各々について、前記候補エージェントニューラルネットワークを使用して、前記候補タスクの前記タスクエピソードを実施するように前記エージェントを制御することによって受信されたそれぞれの候補エージェントリターンを判断し、前記制御方策を使用して、前記候補タスクの前記タスクエピソードを実施するように前記エージェントを制御することによって受信されたそれぞれの制御方策リターンを判断するステップを含む、請求項1から5のいずれか一項に記載の方法。
【請求項7】
(i)前記候補タスクにおける前記候補エージェントニューラルネットワークのパフォーマンス、(ii)前記候補タスクにおける、前記候補タスクのための前記制御方策のパフォーマンス、および(iii)前記候補エージェントニューラルネットワーク用の前記ハイパーパラメータ値のうちの1つまたは複数に基づいて、前記候補エージェントニューラルネットワークを前記候補タスクでトレーニングするかどうかを判断するステップは、
前記それぞれの候補エージェントリターンによって測定される、前記候補エージェントニューラルネットワークのパフォーマンスが、前記候補エージェントニューラルネットワーク用の前記ハイパーパラメータ値によって定義される、パフォーマンスの閾値レベルを超えないときにのみ、前記候補エージェントニューラルネットワークを前記候補タスクでトレーニングすると判断するステップを含む、請求項6に記載の方法。
【請求項8】
前記それぞれの候補エージェントリターンによって測定される、前記候補エージェントニューラルネットワークのパフォーマンスが、前記候補エージェントニューラルネットワーク用の前記ハイパーパラメータ値によって定義される、パフォーマンスの閾値レベルを超えないときにのみ、前記候補エージェントニューラルネットワークを前記候補タスクでトレーニングすると判断するステップは、
前記それぞれの候補エージェントリターンが第1の指定値を超えるタスクエピソードの割合が第2の指定値未満であるときにのみ、前記候補エージェントニューラルネットワークを前記候補タスクでトレーニングすると判断するステップを含み、
(i)前記第1の指定値、(ii)前記第2の指定値、または(iii)両方が、前記候補エージェントニューラルネットワーク用のハイパーパラメータ値である、請求項7に記載の方法。
【請求項9】
(i)前記候補タスクにおける前記候補エージェントニューラルネットワークのパフォーマンス、(ii)前記候補タスクにおける、前記候補タスクのための前記制御方策のパフォーマンス、および(iii)前記候補エージェントニューラルネットワーク用の前記ハイパーパラメータ値のうちの1つまたは複数に基づいて、前記候補エージェントニューラルネットワークを前記候補タスクでトレーニングするかどうかを判断するステップは、
前記それぞれの候補エージェントリターンによって測定される、前記候補エージェントニューラルネットワークのパフォーマンスが、前記それぞれの制御方策リターンによって測定される前記制御方策のパフォーマンスを、前記候補エージェントニューラルネットワーク用の前記ハイパーパラメータ値によって定義される、パフォーマンスの閾値レベル超だけ超えるときにのみ、前記候補エージェントニューラルネットワークを前記候補タスクでトレーニングすると判断するステップを含む、請求項6から8のいずれか一項に記載の方法。
【請求項10】
前記それぞれの候補エージェントリターンによって測定される、前記候補エージェントニューラルネットワークのパフォーマンスが、前記それぞれの制御方策リターンによって測定される前記制御方策のパフォーマンスを、前記候補エージェントニューラルネットワーク用の前記ハイパーパラメータ値によって定義される、パフォーマンスの閾値レベル超だけ超えるときにのみ、前記候補エージェントニューラルネットワークを前記候補タスクでトレーニングすると判断するステップは、
前記それぞれの候補エージェントリターンが、前記それぞれの制御方策リターンを、少なくとも第3の指定値だけ超えるタスクエピソードの割合が第4の指定値よりも大きいときにのみ、前記候補エージェントニューラルネットワークを前記候補タスクでトレーニングすると判断するステップを含み、
(i)前記第3の指定値、(ii)前記第4の指定値、または(iii)両方が、前記候補エージェントニューラルネットワーク用のハイパーパラメータ値である、請求項9に記載の方法。
【請求項11】
(i)前記候補タスクにおける前記候補エージェントニューラルネットワークのパフォーマンス、(ii)前記候補タスクにおける、前記候補タスクのための前記制御方策のパフォーマンス、および(iii)前記候補エージェントニューラルネットワーク用の前記ハイパーパラメータ値のうちの1つまたは複数に基づいて、前記候補エージェントニューラルネットワークを前記候補タスクでトレーニングするかどうかを判断するステップは、
前記それぞれの制御方策リターンによって測定される前記制御方策のパフォーマンスが、前記候補エージェントニューラルネットワーク用の前記ハイパーパラメータ値によって定義される、パフォーマンスの閾値レベルよりも低いときにのみ、前記候補エージェントニューラルネットワークを前記候補タスクでトレーニングすると判断するステップを含む、請求項6から10のいずれか一項に記載の方法。
【請求項12】
前記それぞれの制御方策リターンによって測定される前記制御方策のパフォーマンスが、前記候補エージェントニューラルネットワーク用の前記ハイパーパラメータ値によって定義される、パフォーマンスの閾値レベルよりも低いときにのみ、前記候補エージェントニューラルネットワークを前記候補タスクでトレーニングすると判断するステップは、
前記それぞれの制御方策リターンの平均が第5の指定値未満であるときにのみ、前記候補エージェントニューラルネットワークを前記候補タスクでトレーニングすると判断するステップを含み、
前記第5の指定値は前記候補エージェントニューラルネットワーク用のハイパーパラメータ値である、請求項11に記載の方法。
【請求項13】
1つまたは複数のタスクのそれぞれのセットで、各候補エージェントニューラルネットワークをトレーニングした後、
前記集団の中の前記候補エージェントニューラルネットワークのうちの1つまたは複数用の前記ハイパーパラメータ値を調節するステップをさらに含む、請求項1から12のいずれか一項に記載の方法。
【請求項14】
1つまたは複数の候補エージェントニューラルネットワークの前記集団は、複数のニューラルネットワークを含み、前記集団の中の前記候補エージェントニューラルネットワークのうちの1つまたは複数用の前記ハイパーパラメータ値を調節するステップは、
複数の検証タスクにわたって、前記複数の候補エージェントニューラルネットワークの各々のそれぞれのパフォーマンスを測定する、前記複数の候補エージェントニューラルネットワークの各々のためのそれぞれの適応測度を計算するステップと、
前記それぞれの適応測度に集団ベーストレーニング技法を適用して、前記候補エージェントニューラルネットワークのうちの1つまたは複数用の前記ハイパーパラメータ値を調節するステップとを含む、請求項13に記載の方法。
【請求項15】
前記集団ベーストレーニング技法はまた、前記候補エージェントニューラルネットワークのうちの1つまたは複数の各々について、前記候補エージェントニューラルネットワーク用の前記それぞれのパラメータ値を、前記集団データの中の別の候補エージェントニューラルネットワーク用の前記それぞれのパラメータ値と等しくなるように設定する、請求項14に記載の方法。
【請求項16】
前記それぞれの適応測度を計算するステップは、前記複数の検証タスクの各々における、前記候補エージェントニューラルネットワーク用のそれぞれの正規化パーセンタイルメトリックを判断するステップを含む、請求項14または15に記載の方法。
【請求項17】
前記集団ベーストレーニング技法を適用するステップは、
第1の候補エージェントニューラルネットワークパレートのためのそれぞれの適応測度が、第2の候補エージェントニューラルネットワークのためのそれぞれの適応測度を支配すると判断するステップと、
それに応答して、前記第2の候補エージェントニューラルネットワーク用の前記ハイパーパラメータ値を、前記第1の候補エージェントニューラルネットワーク用の前記ハイパーパラメータ値の変異バージョンと等しくなるように調節するステップとを含む、請求項14から16のいずれか一項に記載の方法。
【請求項18】
1つまたは複数のタスクのそれぞれのセットでの、前記候補エージェントニューラルネットワークの各々の前記トレーニングは、前記エージェントニューラルネットワークの前記トレーニング中のトレーニング世代のシーケンスの現在のトレーニング世代中に行われ、前記エージェントニューラルネットワークの前記パラメータの前記パラメータ値を更新するように、前記候補タスクで前記候補エージェントニューラルネットワークをトレーニングするステップは、
前記シーケンス中の前記現在のトレーニング世代に直接先行する先行トレーニング世代の最後において、前記集団の中の最良パフォーマンス候補エージェントニューラルネットワークから蒸留される間、予想リターンを最適化するように、前記候補タスクで前記候補エージェントニューラルネットワークをトレーニングするステップを含む、請求項1から17のいずれか一項に記載の方法。
【請求項19】
前記先行トレーニング世代の間、前記集団の中の前記候補エージェントニューラルネットワークは、自己報酬プレイ目的でトレーニングされている、請求項1から18のいずれか一項に記載の方法。
【請求項20】
1つまたは複数のコンピュータによって実施され、環境と対話するエージェントを制御して、前記エージェントに、前記環境においてタスクを実施させるための方法であって、
前記環境の現在の状態を特徴づける観測記録を受信するステップと、
前記環境の中で前記タスクを実施するために、満足されるべきゴールを表すゴールデータを受信するステップであって、前記ゴールは、述語のそれぞれのセットに対するオプションのセットとして表される、ステップと、
エージェントニューラルネットワークを使用して、前記観測記録および前記ゴールデータを処理して、アクション選択出力を生成するステップであって、
状態エンコーダニューラルネットワークを使用して、前記観測記録を処理して、前記環境の前記現在の状態を表す現在の隠れ状態を生成するステップと、
前記ゴールのゴール埋込み、および前記オプションの各々のためのそれぞれのオプション埋込みを前記ゴールデータから生成するステップと、
注意ニューラルネットワークを使用して、前記現在の隠れ状態および前記ゴール埋込みを含む入力を処理して、ゴール注意隠れ状態を生成するステップと、
前記オプションの各々について、前記注意ニューラルネットワークを使用して、前記現在の隠れ状態、および前記オプション用の前記それぞれのオプション埋込みを含む入力を処理して、前記オプションのためのそれぞれのオプション注意隠れ状態を生成するステップと、
価値ニューラルネットワークヘッドを使用して、前記ゴール注意隠れ状態を処理して、前記エージェントが、前記現在の状態から始めて、前記ゴールを満足させることを試みた場合に達成されるであろう推定リターンを表す、前記ゴールについてのゴール値推定を生成するステップと、
前記オプションの各々について、前記価値ニューラルネットワークヘッドを使用して、前記オプションについての前記それぞれのオプション注意隠れ状態を処理して、前記エージェントが、前記現在の状態から始めて、前記オプションを満足させることを試みた場合に達成されるであろう推定リターンを表す、前記オプションについてのそれぞれのオプション値推定を生成するステップと、
前記ゴール値推定および前記オプションについての前記それぞれのオプション値推定から、前記ゴールについての、および前記オプションの各々についてのそれぞれの重みを生成するステップと、
前記それぞれの重みに従って前記ゴール注意隠れ状態と前記それぞれのオプション注意隠れ状態を組み合わせて、組合せ隠れ状態を生成するステップと、
方策ニューラルネットワークヘッドを使用して前記組合せ隠れ状態を処理して、前記アクション選択出力を生成するステップとを含む、ステップと、
前記アクション選択出力を使用して、前記エージェントによって実施されるべきアクションを選択するステップと、
前記エージェントに、前記選択されたアクションを実施させるステップとを含む方法。
【請求項21】
前記状態エンコーダニューラルネットワークは再帰ニューラルネットワークである、請求項20に記載の方法。
【請求項22】
エージェントニューラルネットワークを使用して、前記観測記録および前記ゴールデータを処理して、アクション選択出力を生成するステップは、
述語予測子ニューラルネットワークを使用して、前記ゴールデータおよび前記現在の隠れ状態を処理して、述語予測を生成するステップであって、前記現在の隠れ状態および前記ゴール埋込みを含む前記入力は、前記述語予測をさらに含み、各オプションについて、前記現在の隠れ状態および前記それぞれのオプション埋込みを含む前記入力は、前記述語予測をさらに含む、ステップをさらに含む、請求項20または21に記載の方法。
【請求項23】
前記ゴール値推定および前記オプションについての前記それぞれのオプション値推定から、前記ゴールについての、および前記オプションの各々についてのそれぞれの重みを生成するステップは、前記ゴール値推定および前記オプションについての前記それぞれのオプション値推定に対してソフトマックスを適用するステップを含む、請求項20から22のいずれか一項に記載の方法。
【請求項24】
前記ゴール値推定および前記オプションについての前記それぞれのオプション値推定から、前記ゴールについての、および前記オプションの各々についてのそれぞれの重みを生成するステップは、前記ゴール値推定および前記オプションについての前記それぞれのオプション値推定のうちの最も高い値推定に1の重みを、ならびにゴール値推定および前記オプションについての前記それぞれのオプション値推定の、すべての他の値推定にゼロの重みを割り当てるステップを含む、請求項20から22のいずれか一項に記載の方法。
【請求項25】
前記アクション選択出力は、前記エージェントが実施することができるアクションのセットにわたる確率分布を定義する、請求項20から24のいずれか一項に記載の方法。
【請求項26】
前記アクション選択出力は、前記エージェントが実施することができるアクションのセットの中の各アクションについてのそれぞれのQ値を含む、請求項20から24のいずれか一項に記載の方法。
【請求項27】
前記アクション選択出力は、連続アクション空間からのアクションである、請求項20から24のいずれか一項に記載の方法。
【請求項28】
1つまたは複数のコンピュータと、
前記1つまたは複数のコンピュータに通信可能に結合された1つまたは複数の記憶デバイスとを備えるシステムであって、前記1つまたは複数の記憶デバイスは、前記1つまたは複数のコンピュータによって実行されると、前記1つまたは複数のコンピュータに、請求項1から27のいずれか一項に記載のそれぞれの方法の動作を実施させる命令を記憶する、システム。
【請求項29】
1つまたは複数のコンピュータによって実行されると、前記1つまたは複数のコンピュータに、請求項1から27のいずれか一項に記載のそれぞれの方法の動作を実施させる命令を記憶する1つまたは複数の非一時的コンピュータ記憶媒体。
【請求項30】
前記エージェントニューラルネットワークは、現実世界環境の中で前記エージェントを制御する際に使用され、前記現実世界環境の状態に関する観測記録を処理して、前記現実世界環境の中で前記エージェントによって実施されるべきアクションに関するアクション選択出力を生成するように構成される、請求項1から29のいずれか一項に記載の方法、システム、またはコンピュータ記憶媒体。
【請求項31】
前記エージェントは機械エージェントであり、前記エージェントニューラルネットワークは、前記タスクまたは前記タスクのうちの1つを実施するように、前記現実世界環境の中で前記機械エージェントを制御する際に使用される、請求項30に記載の方法、システム、またはコンピュータ記憶媒体。
【発明の詳細な説明】
【技術分野】
【0001】
関連出願の相互参照
本出願は、2021年7月27日に出願された米国仮出願第63/226,124号に対する優先権を主張する。先行出願の開示は、本出願の開示の一部と見なされるとともに、参照によって組み込まれる。
【0002】
本明細書は、機械学習モデルを用いたデータの処理に関する。
【背景技術】
【0003】
機械学習モデルは、入力を受信し、受信された入力に基づいて、出力、たとえば、予測される出力を生成する。いくつかの機械学習モデルは、パラメータモデルであり、受信された入力に、およびモデルのパラメータの値に基づいて出力を生成する。
【0004】
いくつかの機械学習モデルは、受信された入力に対する出力を生成するために、複数のレイヤのモデルを利用する深層モデルである。たとえば、深層ニューラルネットワークとは、出力レイヤと、出力を生成するために、受信された入力に非線形変換を各々が適用する1つまたは複数の隠れレイヤとを含む深層機械学習モデルである。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】PCT特許出願第PCT/EP2018/082162号
【非特許文献】
【0006】
【非特許文献1】Shaker、Noorら、「Procedural content generation in games. Switzerland: Springer International Publishing」、2016年
【非特許文献2】Songら、「V-MPO: On-policy maximum a posteriori policy optimization for discrete and continuous control、International Conference on Learning Representations」、2019年
【発明の概要】
【課題を解決するための手段】
【0007】
本明細書は概して、環境と相互作用するエージェントによって実施されるべきアクションを選択するために使用されるエージェントニューラルネットワークをトレーニングする、1つまたは複数のロケーションにある1つまたは複数のコンピュータ上でコンピュータプログラムとして実装されるシステムについて記載する。特に、システムは、エージェントニューラルネットワークが、複数のタスクのうちのいずれかを実施するようにエージェントを制御するために使用することができるように、エージェントニューラルネットワークをトレーニングする。各タスクは、たとえば、環境の中の指定ロケーションまでナビゲートすること、環境の中の特定のオブジェクトを識別すること、特定のオブジェクトを指定されたやり方で操作すること、などのうちの1つまたは複数を含み得る。
【0008】
一態様では、複数のタスクを実施するようにエージェントを制御する際に使用するために、エージェントニューラルネットワークをトレーニングするためのコンピュータ実装方法が記載される。方法は、1つまたは複数の候補エージェントニューラルネットワークの集団を指定する集団データを維持するステップを含み、集団データは、集団の中の各候補エージェントニューラルネットワークについて、(i)候補エージェントニューラルネットワークのパラメータのそれぞれのパラメータ値、および(ii)候補エージェントニューラルネットワークをトレーニングするためのそれぞれのハイパーパラメータ値を指定する。方法は、集団データの中の候補エージェントニューラルネットワークのパラメータのパラメータ値を更新するように、複数の一般的なタスクの中の1つまたは複数のタスクのそれぞれのセットで、各候補エージェントニューラルネットワークをトレーニングするステップを伴う。実装形態では、トレーニングするステップは、各候補エージェントニューラルネットワークについて、候補エージェントニューラルネットワークをトレーニングするための候補タスク(たとえば、複数のタスクのうちの1つ)を識別するデータを取得するステップと、候補タスクのための制御方策を指定するデータを取得するステップと、(i)候補タスクにおける候補エージェントニューラルネットワークのパフォーマンス、(ii)候補タスクにおける、候補タスクのための制御方策のパフォーマンス、および(iii)候補エージェントニューラルネットワーク用のハイパーパラメータ値のうちの1つまたは複数に基づいて、候補エージェントニューラルネットワークを候補タスクでトレーニングすると(またはしないと)判断するステップとを含む。候補エージェントニューラルネットワークを候補タスクでトレーニングとの判断に応答して、方法は、たとえば強化学習を使用して、エージェントニューラルネットワークのパラメータのパラメータ値を更新するように、候補タスクで候補エージェントニューラルネットワークをトレーニングするステップを含む。トレーニングは、候補タスクを識別するデータを取得するたびに、すなわち複数のタスクのうちの1つを候補タスクとして使用するたびに、繰り返し実施されてよい。
【0009】
そのような方法の実装形態では、エージェントによって消費されるトレーニングタスクは、エージェントのパフォーマンスに応答して動的に生成される。効果は、タスク分配がトレーニング全体を通して変えられ、タスク分配自体が、エージェントのパフォーマンスを向上させるように最適化され得ることである。より具体的には、候補エージェントニューラルネットワークをトレーニングすること(またはしないこと)は、上に列挙したように、3つの要因の組合せに基づいて判断される。たとえば、概して、パフォーマンスが制御方策よりも(大幅に)良好である場合、エージェントは、タスクでのみトレーニングされるべきであり、そうすることによって、エージェントは、有意なアクション、すなわちリターンに影響するアクションを実施する。エージェントのパフォーマンスは概して、たとえばタスクからのリターンから判断され得る。制御方策は、(候補タスクを実施するようにエージェントを制御するための)任意のアクション選択方策、たとえば、一様ランダムアクション方策またはエージェントの過去の方策であってよい。
【0010】
トレーニングされたエージェントニューラルネットワークは、1つまたは複数の環境において、複数のタスクを実施するようにエージェントを制御する際に使用するために使用され得る。環境は現実世界環境であってよいが、トレーニングの一部または全部が、現実世界環境のシミュレーションの中であってよい。いくつかの実装形態では、特にトレーニングの一部または全部がシミュレーションの中である場合、候補エージェントニューラルネットワークをトレーニングするための「提案」タスクは、手続きによって、すなわちタスクパラメータに基づいて自動的に生成され、これらのタスクは次いで、候補エージェントニューラルネットワークをトレーニングするかどうかを判断するために使用され得る。
【0011】
上記の方法は、1つまたは複数の候補エージェントニューラルネットワークを含む集団を取得するために使用され得る。集団が、2つ以上の候補エージェントニューラルネットワークを含むとき、複数の候補エージェントニューラルネットワークの集団がトレーニングされる。次いで、1つまたは複数が、トレーニングされたエージェントニューラルネットワークとして選択され得る。複数の候補エージェントニューラルネットワークの集団の中で、これらは、互いに同じアーキテクチャを有し得るが、有する必要はなく、概して、それらは、異なるそれぞれのパラメータ値、たとえば重みを有し、異なるそれぞれのハイパーパラメータ値を有してよい。
【0012】
いくつかの実装形態では、候補エージェントニューラルネットワークの集団は、集団ベーストレーニングに使用される。つまり、候補エージェントニューラルネットワークの集団がトレーニングされ、適応測度がエージェントの各々に、たとえばエージェントのうちの2つ(またはそれ以上)を比較するために判断される。これは、たとえば、適応度関数を使用してエージェントの各々を評価することによって行われてよく、多くの適切な適応測度があり、概して、適応度は、タスクからのリターンから判断され得る。
【0013】
上述したように、各候補エージェントニューラルネットワークは、それぞれのハイパーパラメータ値によって制御される。適応測度は、集団のパフォーマンスを向上させることを目指して、特に、候補エージェントニューラルネットワークのうちの1つまたは複数用のハイパーパラメータ値を調節することによって、候補エージェントニューラルネットワークの集団を修正するために使用され得る。調節は、多くのやり方で実施されてよい。一例として、ハイパーパラメータ値はランダムに摂動されてもよい。
【0014】
別の例として、(複数のタスクにわたる)第1の候補エージェントニューラルネットワークパレート用の適応測度が、(複数のタスクにわたる)第2の候補エージェントニューラルネットワークの適応測度を支配すると判断される場合、第2の候補エージェントニューラルネットワーク用のハイパーパラメータ値は、第1の候補エージェントニューラルネットワーク用のハイパーパラメータ値の変異(修正)バージョンと等しくなるように調節されてよい。パレート支配は、適応測度が、少なくとも、複数のタスクにわたって良好であり、タスクのうちの少なくとも1つに対してより良好である場合、達成されたと見なされ得る。タスクは、候補タスク、または他の、たとえば検証タスクであってよい。
【0015】
いくつかの実装形態では、あまり好まれない候補エージェントニューラルネットワーク、すなわち、適応測度が(たとえば、2つのエージェントを比較したとき)より小さいものが、そのそれぞれのパラメータ値(たとえば、重み)、および任意選択でそのハイパーパラメータ値も、別の候補エージェントニューラルネットワーク、たとえば、適応測度が(たとえば、2つのエージェントを比較したとき)より大きいものについてのそれぞれのパラメータ値、および任意選択でハイパーパラメータ値に設定してよい。
【0016】
上述したように、エージェントの適応度またはパフォーマンスは概して、タスクからのリターンから判断され得る。ただし、多くの候補タスクがあるとき、リターンは広範囲にわたって変わり得る。したがって、いくつかの実装形態では、タスクについての適応(またはパフォーマンス)測度を計算することは、たとえば、タスクにおいてエージェントによって達成されるk番目の、たとえば50番目のパーセンタイルスコアを判断することによって、それぞれの正規化パーセンタイルメトリックを判断することを含み、ここで、スコアは、タスクにおいて最良スコアを達成する1つまたは複数のエージェント(候補エージェントニューラルネットワーク)の混合またはセットによって達成されるスコアである正規化定数を使用して正規化される(それによって除算される)。ここで、スコアは、タスクにおいてエージェントによって達成される報酬またはリターンに基づく。この手法は、最適方策などを判断することは簡単でない場合があるので、パフォーマンスを、たとえば、有用なタスク用の最適方策と比較する必要性を回避する。
【0017】
候補エージェントニューラルネットワークは、たとえば、シーケンス中で現在のトレーニング世代に直接先行する先行トレーニング世代の最後において判断されるように、集団の中で最良のパフォーマンスを行う候補エージェントニューラルネットワークから蒸留される間、タスクからの予想リターンを最適化するように、候補タスクでトレーニングされてよい。蒸留される間のそのようなトレーニングは、最良のパフォーマンスを行う候補エージェントニューラルネットワークのアクション選択出力に向けてトレーニングされる候補エージェントニューラルネットワークのアクション選択出力を奨励する蒸留損失、たとえば、これらの出力の間の差に基づく損失を使用するトレーニングを含み得る。
【0018】
トレーニングは、自己報酬プレイ目的、すなわち、候補エージェントニューラルネットワークが、ゴールgを達成するように、およびnot(g)を達成するように逐次的にトレーニングされる目的を伴い得る(not(g)はゴールの否定である)。これは、探索を奨励することができ、エージェントがそれ自体と競合しているように見える。ゴールは、述語のそれぞれのセットに対する、オプション(選言)のセットとして表すことができ、たとえば、オプションごとに1つまたは複数の必要条件を表す。ゴールは、自然言語として表され得るが、自然言語として表されなくてもよい。
【0019】
概して、エージェントニューラルネットワーク(および候補エージェントニューラルネットワークの各々)は、1つまたは複数の環境において、複数のタスクを実施するようにエージェントを制御する際に使用するために構成される。したがって、概して、エージェントニューラルネットワーク(および候補エージェントニューラルネットワークの各々)は、環境の現在の状態を特徴づける観測記録を受信し、処理するように構成され、いくつかの実装形態では、環境の中でタスクを実施するために、満足させるべきゴールを表すゴールデータなど、実施されるべき(特定の)タスクを識別するデータを受信し、処理するように構成されてもよい(代替として、たとえば、タスクは環境から推論されてよい)。
【0020】
概して、エージェントニューラルネットワーク(および候補エージェントニューラルネットワークの各々)は、タスクのうちの1つまたは複数を実施するために、観測に応答してエージェントによって実施されるべきアクションを特徴づけるアクション選択出力を生成するように構成される。実装形態では、トレーニングされたエージェントニューラルネットワークは、現実世界環境においてエージェントによって実施されるべきアクションを選択するために使用され、選択されたアクションは、現実世界環境においてエージェントによって実施されるべきアクションに関する(また、観測記録は、現実世界環境の観測記録に関する)。一例として、エージェントは、ロボットまたは自律もしくは半自律車両などの機械エージェントを含んでよく、エージェントの他の例は、後で挙げる。
【0021】
本明細書において説明される主題は、以下の利点のうちの1つまたは複数を実現するために特定の実装形態で実装され得る。
【0022】
記載する技法は、オープンエンドな強化学習トレーニングプロセスを実装することができ、その間、トレーニングタスク分配およびトレーニング目的は、トレーニングされたネットワークインスタンスのうちの1つまたは複数によって制御されているエージェントに、異なるタスクおよび環境の巨大空間にわたって、堅牢であり、概して、適格なパフォーマンスを達成させるように、ネットワークインスタンスを連続して、効果的にトレーニングするために、エージェントニューラルネットワークの複数のインスタンスがめったに学習を止めないように動的に適合される。エージェントニューラルネットワークをトレーニングするための記載する技法は、あらゆるタイプの技術的に困難なタスクを実施するためにエージェントが配備され得るあらゆるタイプの複合環境にも、普遍的に適用可能である。
【0023】
記載する技法を使用することで、したがって、広い範囲のエージェント制御タスクにおいて最先端なだけでなく、人間レベルのパフォーマンスもしのぐことができるとともに、さらに一般化可能であり、たとえば、ネットワークがトレーニングされた可能性がある既存のタスクとは当然ながら別種である新規性のあるタスクを含む新たなタスクに合わせて微調整することによって容易に適合可能な、概して有能なエージェントニューラルネットワークがもたらされる。エージェントのパフォーマンスの向上を達成することに加え、極めて多数のタスク、たとえば無限マルチタスクの連続体にわたってエージェントニューラルネットワークインスタンスの集団をトレーニングすることによって、トレーニングプロセスはまた、単一の新たなタスクまたは新たな環境ごとに1つのニューラルネットワークモデルを最初からトレーニングすることを要する従来の手法よりも、消費する計算リソース、たとえば、メモリおよび処理能力が少ない。
【0024】
本明細書の主題の1つまたは複数の実装形態の詳細は、添付の図面および以下の説明に記載される。本主題の他の特徴、態様および利点は、説明、図面および特許請求の範囲から明らかになるであろう。
【図面の簡単な説明】
【0025】
【
図1】例示的トレーニングシステムを示す図である。
【
図2】候補エージェントニューラルネットワークの集団をトレーニングするための例示的プロセスのフローチャートである。
【
図3】候補エージェントニューラルネットワークの集団をトレーニングする例証を示す図である。
【
図4A】例示的強化学習エージェント制御システムを示す図である。
【
図4B】エージェントニューラルネットワークの例示的実装形態を示す図である。
【
図5】環境と相互作用するエージェントを制御するための例示的プロセスのフローチャートである。
【
図6】アクション選択出力を生成するためにエージェントニューラルネットワークを使用するための例示的プロセスのフローチャートである。
【
図7】正規化パーセンタイルメトリックを判断する例証を示す図である。
【発明を実施するための形態】
【0026】
様々な図面における同様の参照番号および名称は、同様の要素を示す。
【0027】
図1は、例示的トレーニングシステム100を示す。トレーニングシステム100は、以下で説明するシステム、構成要素、および技法が実装され得る、1つまたは複数のロケーションにある1つまたは複数のコンピュータ上でコンピュータプログラムとして実装されるシステムの例である。
【0028】
トレーニングシステム100は、広い範囲の機械学習タスクを実施するようにエージェントを制御するために、環境104において、エージェント、たとえば、エージェント102Aによって実施されるべきアクションを選択するために各々が使用され得るエージェントニューラルネットワークの複数のインスタンスをトレーニングするための、オープンエンドな強化学習トレーニングプロセスを実装するシステムである。場合によっては、機械学習タスクは、エージェント自体が実施することができる単一のエージェントタスクであり、他の場合には、機械学習タスクは、エージェントが、環境104において、1つまたは複数の他の強化学習エージェント、たとえば、エージェント102B~Lと相互作用する、たとえば、競合または協調することを要するマルチエージェントタスクである。つまり、トレーニングシステム100は、観測記録を取得し(すなわち、生成または受信し)、各観測記録は、環境104のそれぞれの状態を特徴づけ、各観測に応答して、観測に応答して強化学習エージェント102Aによって実施されるべきアクションの所定のセットからアクションを選択する。エージェント102Aによって実施されるアクションの一部または全部に応答して、トレーニングシステム100は、報酬を取得する。各報酬は、エージェント102Aがアクションを実施した結果として環境104から受信される数値であり、特に、報酬は、エージェント102Aがアクションを実施した結果として、環境104が遷移する状態によって異なる。場合によっては、アクションの所定のセットは個別アクション空間を定義することができ、他の場合には、アクションの所定のセットは代替として、連続アクション空間を定義することができ、すなわち、個々のアクションにおけるアクション値のすべてが、可能な値の連続範囲から選択されるか、または、さらに代替として、ハイブリッドアクション空間を定義することができ、すなわち、個々のアクションにおけるアクション値のうちの1つまたは複数が、可能な値の連続範囲から選択される。
【0029】
特に、記載するオープンエンドな強化学習トレーニングプロセスを実装することによって、異なる環境において数千または数百万のタスクにわたって、最先端であるだけでなく人間レベルでもあるパフォーマンスを達成するか、または超えるようにエージェントを制御するために使用することができる、単一ではあるが概して、有能なエージェントニューラルネットワークをトレーニングすることが可能になる。
【0030】
いくつかの実装形態では、環境は現実世界環境であり、エージェントは、現実世界環境と相互作用する機械エージェント、たとえば、環境の中で動作するか、または環境の中をナビゲートするロボットまたは自律もしくは半自律の陸上、空中、もしくは海洋車両であり、アクションは、タスクを実施するために現実世界環境の中で機械エージェントがとるアクションである。たとえば、エージェントは、特定のタスクを遂行するために、たとえば、環境中の対象オブジェクトを位置特定するために、または対象オブジェクトを、環境中の指定されたロケーションに移動させるために、もしくは環境中の指定された目的地へナビゲートするために、環境と相互作用するロボットであってよい。
【0031】
これらの実装形態では、観測記録は、たとえば、エージェントが環境と相互作用するときの観測記録を取り込むための、画像、オブジェクト位置データ、およびセンサデータ、たとえば画像、距離、もしくは位置センサから、またはアクチュエータからのセンサデータのうちの1つまたは複数を含み得る。たとえば、ロボットの場合では、観測記録は、ロボットの現在の状態を特徴づけるデータ、たとえば、関節位置、関節速度、関節力、トルクまたは加速度、たとえば、重力補償トルクフィードバック、およびロボットが保持する部材の全体姿勢または相対姿勢のうちの1つまたは複数を含み得る。ロボットまたは他の機械エージェントまたは車両の場合では、観測記録は、同様に、位置、線測度もしくは角速度、力、トルクまたは加速度、およびエージェントの1つまたは複数の部分の全体姿勢または相対姿勢のうちの1つまたは複数を含み得る。観測記録は、1次元、2次元または3次元で定義されてよく、絶対的および/または相対的観測記録であってよい。観測記録は、たとえば、モータ電流もしくは温度信号など、検知された電子信号、および/または、たとえばカメラもしくはLIDARセンサからの画像もしくはビデオデータ、たとえば、エージェントのセンサからのデータもしくは環境中でエージェントとは別個に置かれたセンサからのデータも含み得る。
【0032】
これらの実装形態では、アクションは、ロボットまたは他の機械エージェントを、たとえば、ロボットの関節についてのトルクを制御するための制御信号もしくは高度制御コマンド、または自律もしくは半自律の陸上、空中、海洋車両、たとえば、車両の制御面または他の制御要素、たとえば、操縦制御要素、へのトルクもしくは高度制御コマンドであってよい。制御信号は、たとえば、ロボットの1つもしくは複数の関節または別の機械エージェントの部品についての位置、速度、または力/トルク/加速度データを含み得る。制御信号は、同じくまたはその代わりに、モータ制御データなどの電子制御データ、またはより全般的には、観測される環境の状態に対してその制御が影響を与える、環境内の1つもしくは複数の電子デバイスを制御するためのデータを含み得る。たとえば、自律または半自律の陸上または空中または海洋車両の場合では、制御信号は、ナビゲーション、たとえば操縦、ならびに動き、たとえば、車両の制動および/または加速を制御するためのアクションを定義し得る。
【0033】
いくつかの実装形態では、環境は、上述した現実世界環境のシミュレーションであり、エージェントは、シミュレートされた環境と相互作用する1つまたは複数のコンピュータとして実装される。たとえば、シミュレートされた環境は、ロボットまたは車両のシミュレーションであってよく、強化学習システムはそのシミュレーションでトレーニングされ、次いで、一度トレーニングされると、現実世界で使用され得る。
【0034】
いくつかの実装形態では、環境は、化学、生物学的、もしくは機械製品、または食品などの製品を製造するための現実世界製造環境である。本明細書で使用する場合、製品を「製造する」ことは、開始材料を精製して製品を作成すること、または、たとえば、汚染物質を取り除くように開始材料を加工して、洗浄されたまたは再生製品を生成することも含む。製造工場は、化学もしくは生物学的物質用の容器、または固体もしくは他の材料を処理するための機械、たとえばロボットなど、複数の製造ユニットを備え得る。製造ユニットは、製品の中間バージョンまたは構成要素が、製品の製造中に、たとえばパイプまたは機械的搬送を介して、製造ユニットの間で移動可能であるように構成される。本明細書で使用する場合、製品の製造は、キッチンロボットによる食品の製造も含む。
【0035】
エージェントは、製造ユニットを制御するように構成された電子エージェント、または製品を製造するように動作する、ロボットなどの機械を含み得る。つまり、エージェントは、化学、生物学的、または機械製品の製造を制御するように構成された制御システムを備え得る。たとえば、制御システムは、製造ユニットもしくは機械のうちの1つもしくは複数を制御するように、または製造ユニット間もしくは機械間での、製品の中間バージョンもしくは構成要素の移動を制御するように構成され得る。
【0036】
一例として、エージェントによって実施されるタスクは、製品またはその中間バージョンもしくは構成要素を製造するためのタスクを含み得る。別の例として、エージェントによって実施されるタスクは、電力消費、もしくは水消費、または製造プロセスにおいて使用される、いかなる材料もしくは消耗品の消費も制御するためのタスクなど、リソースの使用を制御する、たとえば最小限にするためのタスクを含み得る。
【0037】
アクションは、固体または液体材料を処理して、製品、またはその中間物もしくは構成要素を製造するように機械または製造ユニットの使用を制御するための、あるいは製造環境内での、たとえば製造ユニット間または機械間での製品の中間バージョンまたは構成要素の移動を制御するための制御アクションを含み得る。概して、アクションは、観測された環境の状態に対して効果のある、いかなるアクションであってもよく、たとえば、以下で説明する、検知されたパラメータのいずれかを調節するように構成されたアクションであってもよい。これらは、製造ユニットの物理的もしくは化学的条件を調節するためのアクション、または機械の機械部品もしくはロボットの関節の動きを制御するためのアクションを含み得る。アクションは、製造ユニットもしくは機械に動作条件を課すアクション、または製造ユニットもしくは機械の動作を調節し、制御し、もしくはオン、オフするための設定に変更をもたらすアクションを含み得る。
【0038】
報酬またはリターンは、タスクのパフォーマンスのメトリックに関連し得る。たとえば、製品を製造するというタスクの場合、メトリックは、製造される製品の量、製品の品質、製品の生産の速さのメトリック、または製造タスクを実施する物理的コストに対しては、たとえば、タスクを実施するために使用されるエネルギー、材料、もしくは他のリソースの量のメトリックを含み得る。リソースの使用を制御するというタスクの場合、メトリックは、リソースの使用の、どのメトリックも含み得る。
【0039】
概して、環境の状態の観測記録は、機器の電子および/または機械部材の機能性を表すいかなる電子信号も含み得る。たとえば、環境の状態の表現は、センサが製造環境の状態を検知したこと、たとえば、センサが製造ユニットもしくは機械の状態もしくは構成を検知したこと、またはセンサが製造ユニット間もしくは機械間での物質の移動を検知したことによって行われた観測から導出されてよい。いくつかの例として、そのようなセンサは、機械的動きもしくは力、圧力、温度、電流、電圧、周波数、インピーダンスなどの電気的条件、1つもしくは複数の材料の量、レベル、流量/動きレートまたは流路/移動経路、物理的もしくは化学的条件、たとえば物理的状態、形状もしくは構成またはpHなどの化学的状態、ユニットもしくは機械の機械構成など、ユニットもしくは機械の構成、またはバルブ構成を検知するように構成され、製造ユニットまたは機械または動きの画像またはビデオ観測記録を取り込むための画像またはビデオセンサ、あるいは任意の他の適切なタイプのセンサであってもよい。ロボットなどの機械の場合、センサからの観測記録は、機械の1つまたは複数の部品の位置、線測度もしくは角速度、力、トルクもしくは加速度、または姿勢の観測記録、たとえば、機械もしくはロボットの、または機械もしくはロボットによって保持もしくは処理される部材の現在の状態を特徴づけるデータを含み得る。観測記録は、たとえば、モータ電流もしくは温度信号などの検知された電子信号、またはたとえばカメラもしくはLIDARセンサからの画像もしくはビデオデータも含み得る。これらのようなセンサは、環境の中でエージェントの一部であってもよく、それとは別個に位置してもよい。
【0040】
いくつかの実装形態では、環境は、データを記憶もしくは処理するための、サーバファームもしくはデータセンタ、たとえば電気通信データセンタ、またはコンピュータデータセンタなど、電子機器の複数の部材を含むサービス施設、あるいは任意のサービス施設の現実世界環境である。サービス施設は、機器の部材の動作環境を制御する補助制御機器、たとえば、温度制御たとえば冷却機器、または気流制御もしくは空調機器などの環境制御機器も含み得る。タスクは、電力消費、または水消費を制御するためのタスクなど、リソースの使用を制御する、たとえば最小限にするためのタスクを含み得る。エージェントは、機器の部材の動作を制御するように、または補助的な、たとえば環境の、制御機器の動作を制御するように構成された電子エージェントを含み得る。
【0041】
概して、アクションは、観測された環境の状態に対して効果のある、どのアクションであってもよく、たとえば、以下で説明する、検知されたパラメータのいずれを調節するように構成されたアクションであってもよい。これらは、機器の部材もしくは補助制御機器を制御するための、または動作条件をそれらに課すためのアクション、たとえば、機器の部材もしくは補助制御機器の部材の動作を調節し、制御し、もしくはオン、オフするための設定に変更をもたらすアクションを含み得る。
【0042】
概して、環境の状態の観測記録は、施設の、または施設内の機器の機能性を表すどの電子信号も含み得る。たとえば、環境の状態の表現は、施設の物理的環境の状態を検知する任意のセンサによって行われた観測、あるいは機器の部材のうちの1つもしくは複数または補助制御機器の1つもしくは複数の部材の状態を検知する任意のセンサによって行われた観測から導出されてよい。これらは、電流、電圧、電力もしくはエネルギーなどの電気的条件、施設の温度、施設内もしくは施設の冷却システム内の流体流、温度もしくは圧力、または通気口が開いているかどうかなどの物理的施設構成を検知するように構成されたセンサを含む。
【0043】
報酬またはリターンは、タスクのパフォーマンスのメトリックに関連し得る。たとえば、電力または水の使用を制御するためのタスクなど、リソースの使用を制御する、たとえば最小限にするためのタスクの場合、メトリックは、リソースの使用のどのメトリックも含み得る。
【0044】
いくつかの実装形態では、環境は、発電施設、たとえば、太陽光発電所または風力発電所などの再生可能発電施設の現実世界環境である。タスクは、たとえば、需要を満たすように、もしくは配電網の要素の間の不一致の危険性を低下するように施設によって発生される電力を制御するための、たとえば、配電網への電力の供給を制御するための、または施設によって発生される電力を最大限にするための制御タスクを含み得る。エージェントは、施設による電力の発生または発生された電力の、配電網への結合を制御するように構成された電子エージェントを含み得る。アクションは、1つまたは複数の再生可能発電要素の電気的または機械的構成など、発電機の電気的または機械的構成を制御するための、たとえば、風力タービンの構成、または1つもしくは複数の太陽光パネルもしくは鏡の構成、あるいは回転発電機械の電気的もしくは機械的構成を制御するためのアクションを含み得る。機械制御アクションは、たとえば、エネルギー入力から電気エネルギー出力への転換、たとえば、転換の効率またはエネルギー入力と電気エネルギー出力の結合の程度を制御するアクションを含み得る。電気的制御アクションは、たとえば、発生される電力の電圧、電流、周波数または位相のうちの1つまたは複数を制御するアクションを含み得る。
【0045】
報酬またはリターンは、タスクのパフォーマンスのメトリックに関連し得る。たとえば、配電網への電力の供給を制御するためのタスクの場合、メトリックは、転送される電力の測度に、または電圧、電流、周波数もしくは位相不一致など、発電施設と配電網との間の電気的不一致の測度に、または発電施設における電力もしくはエネルギー損失の測度に関連し得る。配電網への電力の供給を最大限にするためのタスクの場合、メトリックは、配電網へ転送される電力もしくはエネルギーの測度に、または発電施設における電力もしくはエネルギー損失の測度に関連し得る。
【0046】
概して、環境の状態の観測記録は、発電施設の中の発電機器の電気的または機械的機能性を表すどの電子信号も含み得る。たとえば、環境の状態の表現は、電力を発生している発電施設の中の機器の物理的もしくは電気的状態、またはそのような機器の物理的環境、または発電機器をサポートする補助機器の条件を検知する任意のセンサによって行われた観測から導出されてよい。そのようなセンサは、たとえばローカルもしくはリモートセンサからの、電流、電圧、電力もしくはエネルギーなど、機器の電気的条件、物理的環境の温度もしくは冷却、流体流、または機器の物理的構成、および配電網の電気的条件の観測記録を検知するように構成されたセンサを含み得る。環境の状態の観測記録は、将来の風力レベルもしくは太陽放射照度の予測または配電網の将来の電気的条件の予測など、発電機器の動作の将来の条件に関する1つまたは複数の予測も含み得る。
【0047】
別の例として、環境は、化学合成またはタンパク質折畳み環境であってよく、そうであることによって、各状態は、タンパク鎖の、または1つもしくは複数の中間物もしくは化学的前駆体のそれぞれの状態であり、エージェントは、どのようにタンパク鎖を折り畳み、または化学物質を合成するかを判断するためのコンピュータシステムである。この例では、アクションは、タンパク鎖を折り畳むための、可能な折畳みアクションまたは化学的前駆体/中間物を集めるためのアクションであり、達成されるべき結果は、たとえば、タンパク質が安定するように、および特定の生物学的機能を達成するようにタンパク質を折り畳むこと、または化学物質のための有効な合成経路を提供することを含み得る。別の例として、エージェントは、人間相互作用なしで自動的にシステムによって選択されたタンパク質折畳みアクションまたは化学合成ステップを実施または制御する機械エージェントであってよい。観測記録は、タンパク質もしくは化学物質/中間物/前駆体の状態の直接もしくは間接的観測記録を含んでよく、かつ/またはシミュレーションから導出されてよい。
【0048】
同様に、環境は、各状態が潜在的な製薬化学薬品のそれぞれの状態であり、エージェントが、製薬化学薬品の要素および/または製薬化学薬品のための合成経路を判断するためのコンピュータシステムであるような薬物設計環境であってよい。薬物/合成は、たとえばシミュレーションにおいて、薬物の標的から導出される報酬に基づいて設計されてよい。別の例として、エージェントは、薬物の合成を実施または制御する機械エージェントであってよい。
【0049】
いくつかのさらなるアプリケーションでは、環境は現実世界環境であり、エージェントは、たとえば、モバイルデバイス上および/またはデータセンタ中の計算リソースにわたるタスクの分散を管理する。これらの実装形態では、アクションは、特定の計算リソースにタスクを割り当てることを含み得る。
【0050】
さらなる例として、アクションは、広告を提示することを含む場合があり、観測記録は、広告の印象またはクリックスルーカウントもしくはレートを含む場合があり、報酬は、1人または複数のユーザによって行われた、項目またはコンテンツの、以前の選択を特徴づけることができる。
【0051】
場合によっては、観測記録は、サードパーティ(たとえば、エージェントのオペレータ)によってエージェントに提供されるテキストまたは発話命令を含み得る。たとえば、エージェントは自律車両であってよく、自律車両のユーザは、テキストまたは発話命令をエージェントに(たとえば、特定のロケーションまでナビゲートするために)提供してよい。
【0052】
別の例として、環境は、電気、機械または電気機械設計環境、たとえば、電気、機械または電気機械エンティティの設計がシミュレートされる環境であってよい。シミュレートされた環境は、エンティティが作業することが意図される現実世界環境のシミュレーションであってよい。タスクは、エンティティを設計することであってよい。観測記録は、エンティティを特徴づける観測記録、すなわち、エンティティの機械的形状の、または電気、機械、もしくは電気機械構成の観測記録、あるいはエンティティのパラメータまたはプロパティの観測記録を含み得る。アクションは、エンティティを修正する、たとえば、観測記録のうちの1つまたは複数を修正するアクションを含み得る。報酬またはリターンは、エンティティの設計のパフォーマンスの1つまたは複数のメトリックを含み得る。たとえば、報酬またはリターンは、重量もしくは強度など、エンティティの1つもしくは複数の物理的特性に、またはエンティティがそのために設計される特定の機能を実施する際の効率の測度など、エンティティの1つもしくは複数の電気的特性に関連し得る。設計プロセスは、製造のための設計を、たとえば、エンティティを製造するためのコンピュータ実行可能命令の形で出力することを含み得る。プロセスは、設計に従ってエンティティを作ることを含み得る。したがって、エンティティの設計は、たとえば強化学習によって最適化されてよく、次いで、最適化された設計が、エンティティを製造するために、たとえばコンピュータ実行可能命令として出力され、最適化された設計を有するエンティティが次いで、製造され得る。
【0053】
前述したように、環境は、シミュレートされた環境であってよい。概して、シミュレートされた環境の場合では、観測記録は、前述の観測記録または観測記録タイプのうちの1つまたは複数の、シミュレートされたバージョンを含んでよく、アクションは、前述のアクションまたはアクションタイプのうちの1つまたは複数の、シミュレートされたバージョンを含み得る。たとえば、シミュレートされた環境は、運動シミュレーション環境、たとえば、運転シミュレーションまたはフライトシミュレーションであってよく、エージェントは、運動シミュレーションを通してナビゲートする、シミュレートされた車両であってよい。これらの実装形態では、アクションは、シミュレートされたユーザまたはシミュレートされた車両を制御するための制御入力であってよい。概して、エージェントは、シミュレートされた環境と相互作用する1つまたは複数のコンピュータとして実装されてよい。
【0054】
シミュレートされた環境は、特定の現実世界環境およびエージェントのシミュレーションであってよい。たとえば、システムは、システムのトレーニングまたは評価中に、シミュレートされた環境におけるアクションを選択するために使用されてよく、トレーニングもしくは評価または両方が完了した後、シミュレーションの対象だった特定の現実世界環境において現実世界エージェントを制御するために展開されてよい。これにより、現実世界環境または現実世界エージェントの不必要な摩滅および損傷を回避することができ、制御ニューラルネットワークを、現実世界環境においてめったに起こらないか、または再現するのが難しいか、もしくは安全でない状況に基づいてトレーニングおよび評価することを可能にし得る。たとえば、システムは、特定の現実世界環境のシミュレーションにおいて、機械エージェントのシミュレーションを使用して部分的にトレーニングされ、その後で、特定の現実世界環境の中で現実の機械エージェントを制御するために展開され得る。したがって、そのような場合では、シミュレートされた環境の観測記録は、現実世界環境に関連し、シミュレートされた環境の中での選択されたアクションは、現実世界環境の中で機械エージェントによって実施されるべきアクションに関連する。
【0055】
任意選択で、上記実装形態のいずれかにおいて、任意の所与の時間ステップにおける観測記録は、環境を特徴づける際に有益であり得る、前の時間ステップからのデータ、たとえば、前の時間ステップにおいて実施されたアクション、前の時間ステップにおいて受けた報酬または両方を含み得る。
【0056】
概して、エージェントニューラルネットワークは、その記載された機能、たとえば、実施されるべきタスクと、観測に応答してエージェントによって実施されるアクションを特徴づけるアクション選択出力を生成するための観測とを識別するデータを処理することを実施することを可能にする、任意の適切なニューラルネットワークアーキテクチャを有し得る。たとえば、エージェントニューラルネットワークは、任意の適切なタイプ(たとえば、完全接続レイヤ、畳込みレイヤ、注意レイヤ、トランスフォーマレイヤなど)であって、任意の適切な構成で(たとえば、残差接続ありまたはなしの、レイヤの線形シーケンスとして)接続された任意の適切な数のレイヤ(たとえば、5つのレイヤ、10個のレイヤ、または25個のレイヤ)を含み得る。
【0057】
一例では、アクション選択出力は、エージェントが実施することができる可能アクションのセットの中の各アクションについてのそれぞれの数値確率値を含み得る。システムは、たとえば、アクションの確率値に従ってアクションをサンプリングすることによって、または最高確率値を有するアクションを選択することによって、エージェントによって実施されるべきアクションを選択することができる。
【0058】
別の例では、アクション選択出力は、たとえば、ロボットエージェントの関節に印加されるべきであるトルクの値を定義することによって、エージェントによって実施されるべきアクションを直接定義し得る。
【0059】
別の例では、アクション選択出力は、エージェントが実施することができる可能アクションのセットの中の各アクションについてのそれぞれのQ値を含み得る。システムは、Q値を(たとえば、ソフトマックス関数を使用して)処理して、各可能アクションについてのそれぞれの確率値を生成することができ、この値は、エージェントによって実施されるべきアクション(以前記載した)を選択するために使用することができる。システムは、最も高いQ値を有するアクションを、エージェントによって実施されるべきアクションとして選択することもできる。
【0060】
アクションについてのQ値は、エージェントがアクションを実施し、その後、エージェントニューラルネットワークのパラメータの現在の値に従ってエージェント102が実施する将来のアクションを選択することから生じる、現在の観測記録への「リターン」の推定値である。
【0061】
リターンとは、エージェントが受け取る「報酬」の累積測度、たとえば、報酬の時間割引(time-discounted)合計を指す。エージェントは、各時間ステップにおいてそれぞれの報酬を受け取ることができ、報酬は、スカラー数値によって指定され、たとえば、エージェントが割り当てられたタスクを完了するまでの進捗状況を特徴づける。
【0062】
場合によっては、システムは、探索方策に従って、エージェントが実施するべきアクションを選択することができる。たとえば、探索方策は、∈貪欲探索方策であってよく、システムは、確率1-∈を有するアクション選択出力に従って、エージェントが実施するべきアクションを選択し、確率∈を有するアクションをランダムに選択する。この例では、∈は、0~1のスカラー値である。
【0063】
エージェントニューラルネットワーク用のアーキテクチャの1つの具体例が、
図4を参照してさらに記載される。
【0064】
トレーニングシステム100は、1つまたは複数の候補エージェントニューラルネットワーク142A~Mの集団を指定する集団データを記憶する集団リポジトリ140を維持する。集団リポジトリ140は、1つもしくは複数の物理的なロケーションにある1つもしくは複数の論理記憶デバイスとして、または1つもしくは複数の物理的なロケーションにある1つもしくは複数の記憶デバイスに割り振られた論理記憶空間として実装される。トレーニング中いつでも、集団リポジトリ140は、候補エージェントニューラルネットワーク142A~Mの現在の集団を指定するデータを記憶する。
【0065】
特に、集団リポジトリ140は、現在の集団の中の各候補エージェントニューラルネットワーク142A~Mについて、それぞれの候補エージェントニューラルネットワークを定義する維持値のセットを記憶する。維持値のセットは、ネットワークパラメータ、ハイパーパラメータを含み、実装形態では、異なるタスクにおける、各候補エージェントニューラルネットワーク142A~Mについてのパフォーマンス測度(または、略して「パフォーマンス」)を維持するためにも好都合である。たとえば、候補エージェントニューラルネットワークA 142Aの場合、維持値のセットは、ネットワークパラメータA 144A、ハイパーパラメータA 146A、およびパフォーマンスA 148A(これは、異なるタスクごとのそれぞれのパフォーマンスを含み得る)を含む。集団の中に複数の候補エージェントニューラルネットワークがある場合、各候補エージェントニューラルネットワークは概して、同じアーキテクチャ、ただし異なるそれぞれのパラメータ値、および場合によっては、集団の中の他の候補エージェントニューラルネットワークとは異なるそれぞれのハイパーパラメータ値を有することになる。
【0066】
候補エージェントニューラルネットワーク用のハイパーパラメータは、ネットワークパラメータの値、たとえば重みが、トレーニングによってどのように更新されるかに影響を与える値である。ハイパーパラメータは、目的関数の様々な項に割り当てられる、割引因子、学習レート、目的関数値、または重みなどを含み得る。さらに、ハイパーパラメータは、所与の候補タスクで候補エージェントニューラルネットワークをトレーニングするかどうかを判断する際に使用するための、1つまたは複数の指定値を含み得る。したがって、概して、記載されるシステムにおいて、ハイパーパラメータは、パラメータの学習を制御する(これは、たとえば、1つまたは複数の目的関数の勾配の逆伝播によって行われ得る)。
【0067】
エージェントニューラルネットワークをトレーニングするために、トレーニングシステム100は、候補エージェントニューラルネットワーク142A~Mをトレーニングするためのトレーニングデータを記憶するトレーニングデータリポジトリ130も維持する。トレーニングデータリポジトリ130は、1つもしくは複数の物理的なロケーションにある1つもしくは複数の論理記憶デバイスとして、または1つもしくは複数の物理的なロケーションにある1つもしくは複数の記憶デバイスに割り振られた論理記憶空間として実装される。トレーニングデータリポジトリ130は、候補エージェントニューラルネットワークがそれでトレーニングされ得る候補タスク132A~Nのセットを定義するデータを、および各候補タスク用の、候補タスクを実施するようにエージェントを制御するために使用することができる対応する制御方策133A~N、たとえば、タスクA 132A用の制御方策133Aを記憶する。トレーニングデータリポジトリ130は任意選択で、検証タスクにおける、候補エージェントニューラルネットワーク142A~Mのパフォーマンスを評価するための検証タスクのセットを定義するデータを記憶する。
【0068】
トレーニングシステム100は、データを、様々なやり方のいずれかで受信することができる。たとえば、システム100は、候補タスクのセットおよび/または検証タスクを定義するデータを、データ通信ネットワークを介して(たとえば、トレーニングシステム100によって利用可能にされたアプリケーションプログラミングインターフェース(API)を使用して)、システムのリモートユーザからのアップロードとして受信することができる。別の例として、トレーニングシステム100は、トレーニングシステム100によってすでに維持されているどのデータが、候補タスクのセットおよび/または検証タスクを定義するデータとして使用されるべきであるかを指定する入力を、ユーザから受信することができる。
【0069】
いくつかの実装形態では、トレーニングデータリポジトリ130は、トレーニングプロセスの過程にわたって固定されたままであるが、他の実装形態では、トレーニングデータリポジトリ130は、トレーニングプロセスの反復が実施されると、(たとえば、無限大まで)拡大するか、または縮小し、たとえば、新たな候補タスクをリポジトリに動的に追加することができ、所定の数の候補エージェントニューラルネットワークすべてが閾値パフォーマンスを達成した既存のタスクを破棄することができる。これらの他の実装形態では、トレーニングシステム100は、繰り返し、すなわち、トレーニングの過程にわたる複数のトレーニング反復の各々において、候補タスクの空間から新たなタスクを生成するために、たとえば、マルチタスクの連続体を生成するために、タスク生成エンジン124を使用することができる。候補タスクのこの空間は、1つまたは複数の値、たとえば、スコア、個別値、または連続値に各々が関連付けられたタスクパラメータのセットによってパラメータ化することができる。たとえば、タスク生成エンジン124は、タスクをランダムに、たとえば、タスクパラメータのセットから、異なるタスクパラメータ値をランダムに選択することによって生成することができる。次に、これらの選択されたタスクパラメータ値に従ってタスクを実際に生成するために、トレーニングシステム100は、他の知られているデジタルコンテンツ生成技法に加えて、またはその代わりに、Shaker、Noorら、「Procedural content generation in games. Switzerland: Springer International Publishing」、2016年に記載される例示的技法のいずれかを使用することができる。
【0070】
概して、タスクパラメータのセットは、候補タスクの空間をまとめて定義することができる様々な調整可能なパラメータのいずれをも含み得る。たとえば、タスクパラメータのセットは、エージェントが相互作用する環境の、異なるプロパティまたは特性を定義する第1の複数の環境パラメータを含み得る。より詳細には、環境パラメータは、環境の静的トポロジー(たとえば、環境のトポロジカルビルディングブロックのレイアウトおよび構造)、環境の照明、エージェントに提供することができる環境の状態を特徴づける観測記録のタイプもしくはフォーマット、環境に存在する動的オブジェクトのプロパティ(たとえば、標的オブジェクトもしくは障害物の位置および物理的プロパティ)、観測記録の受信に応答して、エージェントが実施することができるアクションの所定のセット、環境に存在する他のエージェントの数(競合もしくは協調タスクの場合)、またはそれらの組合せ、ならびに場合によってはそれ以上を定義するか、または別様に指定することができる。
【0071】
別の例として、タスクパラメータのセットは、1つまたは複数のエージェントの各々が、環境と相互作用するときに達成するための異なるゴールを定義するか、または別様に指定する第2の複数のゴールパラメータを含み得る。ゴールパラメータはたとえば、エージェントが、環境と相互作用するときに異なるアクションを実施したことに応答して、エージェントに発行されるべき報酬(数値として表される)を計算するために使用される報酬関数の様々な項を含み得る。報酬は概して、エージェントが実施するように構成されている候補タスクに指定されたゴールをエージェントが達成するまでの進捗状況を反映する。
【0072】
トレーニングシステム100は、参照によって本明細書に組み込まれるPCT特許出願第PCT/EP2018/082162号により詳しく記載されている集団ベーストレーニング技法を使用して、1つまたは複数の候補エージェントニューラルネットワーク142A~Mの集団をトレーニングするために、集団ベーストレーニング(PBT)エンジン120を使用することができる。トレーニングの一部として、PBTエンジン120は、集団リポジトリ140の中の、候補エージェントニューラルネットワークのパラメータのパラメータ値を更新するように、1つまたは複数のタスクのそれぞれのセットで、各候補エージェントニューラルネットワークをトレーニングする。ただし、従来の集団ベーストレーニングとは異なり、所与の候補エージェントニューラルネットワークを任意の所与の候補タスクでトレーニングする前に、PBTエンジン120は、候補エージェントニューラルネットワークをトレーニングするための候補タスクを識別するデータを取得し、候補タスクのための制御方策を指定するデータを取得する。
【0073】
特に、PBTエンジン120は、(i)候補タスクにおける候補エージェントニューラルネットワークのパフォーマンス(すなわち、候補エージェントニューラルネットワークについての集団データの中に現在記憶されているパラメータ値に従って使用されるとき)、(ii)候補タスクにおける、候補タスクのための制御方策のパフォーマンス、および(iii)候補エージェントニューラルネットワーク用のハイパーパラメータ値のうちの1つまたは複数に基づいて、候補エージェントニューラルネットワークを候補タスクでトレーニングするかどうかを判断する。概して、現在の学習段階が与えられると、すなわち、集団データの中に記憶された候補のパラメータの現在の値が与えられると、タスクが候補にとって「有用」であるとPBTエンジンが判断した場合、PBTエンジン120は、候補エージェントニューラルネットワークを所与のタスクでトレーニングするだけである。PBTエンジン120はこれを、候補のパフォーマンスに対する制御方策のパフォーマンスに部分的に基づいて判断することができる。
【0074】
候補エージェントニューラルネットワークを候補タスクでトレーニングするとの判断に応答して、PBTエンジン120は、エージェントニューラルネットワークのパラメータのパラメータ値を更新するように、候補タスクで候補エージェントニューラルネットワークをトレーニングする。候補エージェントニューラルネットワークを候補タスクでトレーニングしないとの判断に応答して、システムは、候補タスクで候補エージェントニューラルネットワークをトレーニングするのを控える。
【0075】
制御方策の使用により、このように、たとえば、PBTエンジン120に、候補エージェントニューラルネットワークのパフォーマンスが制御方策のパフォーマンスよりも大幅に良好な場合にのみ、候補エージェントニューラルネットワークを候補タスクでトレーニングさせることによって、トレーニングプロセスの有効性および効率が向上する。いくつかの実装形態では、各候補タスク、たとえば、タスクA 132Aに対して、対応する制御方策、たとえば、制御方策133Aは、固定方策、たとえば、アクションをランダムに選択するランダムアクション方策であってよく、他の実装形態では、対応する制御方策は、先行トレーニング世代からの候補によって、すなわち、トレーニング中の早期の時点からの候補の履歴ネットワークパラメータ値に従って制御される方策であってよい。これらの他の実装形態では、制御方策の使用により、PBTエンジン120はさらに、候補エージェントニューラルネットワークのパフォーマンスが最近、先行トレーニング反復に対して向上したか、それとも悪化したかを判断し、それに応じて、たとえば、ハイパーパラメータを調節するか、または単に現在の集団から削除するなど適切な措置をとることができるようになる。
【0076】
いくつかの実装形態では、PBTエンジン120は、候補のためのハイパーパラメータを、トレーニング中は固定させる。いくつかの他の実装形態では、PBTエンジン120は、上述した動的タスク選択が、トレーニングの過程にわたって候補のパラメータ値が変化するときに学習に有用であるタスクのみを確実に選択し続けるようにするために、候補のためのハイパーパラメータをトレーニング中に調節する。
【0077】
候補をトレーニングするためのタスクの一部または全部が、マルチエージェントタスク、すなわち、候補を使用して制御されているエージェントが、別の方策を使用して制御される1つまたは複数の他のエージェントと相互作用することを要するタスクであってよい。これらのタスク用に、システムは、1つまたは複数の他のエージェントを制御するために、様々な方策のいずれを使用してもよい。たとえば、システムは、固定方策、たとえば、アクションをランダムに選択するランダムアクション方策、他のエージェントがどのアクションも実施しない無動作アクション方策など、エキスパートエージェントの挙動を表すエキスパート方策、または先行トレーニング世代からの高パフォーマンス候補によって制御される方策を使用することができる。
【0078】
トレーニングの後、トレーニングシステム100は、エージェントニューラルネットワークとして使用するために、すなわち、新たなタスクを実施するようにエージェントを制御する際に使用するために、集団の中の候補のうちの1つを選択すればよい。たとえば、トレーニングシステム100は、トレーニングが完了した後、最高パフォーマンス候補を選択してよい。代替として、トレーニングシステム100は、集団の中の複数の候補のアンサンブルを、最終エージェントニューラルネットワークとして使用することができる。
【0079】
図2は、候補エージェントニューラルネットワークの集団をトレーニングするための例示的プロセス200のフローチャートである。便宜上、プロセス200は、1つまたは複数のロケーションにある1つまたは複数のコンピュータからなるシステムによって実施されるものとして記載される。たとえば、本明細書に従って適切にプログラムされた集団ベースのニューラルネットワークトレーニングシステム、たとえば、
図1のトレーニングシステム100が、プロセス200を実施することができる。
【0080】
上述したように、システムは、1つまたは複数の候補エージェントニューラルネットワークの集団を指定する集団データを維持する。集団データは、集団の中の各候補エージェントニューラルネットワークについて、(i)候補エージェントニューラルネットワークのパラメータのそれぞれのパラメータ値、(ii)候補エージェントニューラルネットワークをトレーニングするためのそれぞれのハイパーパラメータ値、および(iii)候補エージェントニューラルネットワークのためのパフォーマンス(異なるタスクごとのそれぞれのパフォーマンスを含み得る)を指定する。
【0081】
システムは、集団の中の各候補ニューラルネットワークにプロセス200を繰り返し実施する。いくつかの実装形態では、システムは、各候補ニューラルネットワークについては並列に、および集団の中の他の各候補ニューラルネットワークにプロセスを実施するのとは非同期に、プロセス200を繰り返し実施する。
【0082】
システムは、候補エージェントニューラルネットワークをトレーニングするための候補タスクを識別するデータを取得する(ステップ202)。システムは概して、異なる反復において異なる候補タスクを取得する。異なるタスクは、候補エージェントニューラルネットワークを使用して制御されるエージェントが相互作用する異なる環境、エージェントが環境と相互作用するときに達成するべき異なるゴール、環境の中に存在する異なる数の他のエージェント(競合または協調タスクの場合)などを伴い得る。
【0083】
いくつかの実装形態では、候補タスクは、候補タスクの空間からサンプリングされたタスクパラメータの異なるセットに従ってシステムによって自動的および動的に(すなわち、トレーニングの過程にわたって)生成される新たなタスクであってよい。他の実装形態では、候補タスクは、各反復において、トレーニングデータリポジトリの中に含まれる候補タスクのセットから、一定数の候補タスクをサンプリングすることによって取得され得る。これらの実装形態のいくつかでは、システムは、集団の中のすべての候補エージェントニューラルネットワークに同じタスクサンプリング戦略を使用することができ、これらの実装形態のうちの他のものにおいては、システムは、異なる候補固有タスクサンプリング戦略を集団に使用することができる。さらに、候補エージェントニューラルネットワークが以前トレーニングされた履歴候補タスクのリストを指定するデータをシステムが維持する実装形態では、システムは、取得された候補タスクを含むようにリストを更新することができる。
【0084】
システムは、候補タスクに制御方策を指定するデータを取得する(ステップ204)。概して、制御方策は、環境と相互作用するようにエージェント(可能性としては、環境中の他のエージェントを含む)を制御するために使用することができるどのアクション選択方策であってもよい。たとえば、候補タスクのための制御方策は、候補タスクを実施するようにエージェントを制御するとき、アクションの所定のセットから一様にランダムに選択されたアクションを行う一様ランダムアクション方策である。別の例として、候補タスクのための制御方策は、候補タスクを実施するようにエージェントを制御するとき、候補タスクのみでトレーニングされている単一の候補エージェントニューラルネットワークを使用する単一タスク方策である。別の例として、候補タスクのための制御方策は、候補タスクを実施するようにエージェントを制御するとき、候補エージェントニューラルネットワークのインスタンスを使用するが、候補エージェントニューラルネットワークのトレーニング中の早期の時点からの候補エージェントニューラルネットワークのネットワークパラメータについての履歴パラメータ値を用いる方策である。
【0085】
システムは、(i)候補タスクにおける候補エージェントニューラルネットワークのパフォーマンス、(ii)候補タスクにおける制御方策のパフォーマンス、および(iii)候補エージェントニューラルネットワーク用のハイパーパラメータ値のうちの1つまたは複数に基づいて、候補エージェントニューラルネットワークを候補タスクでトレーニングするかどうかを判断する(ステップ206)。
【0086】
具体的には、この判断を行うために、システムは、計画アルゴリズム、たとえば、モンテカルロツリー探索(MCTS)アルゴリズムまたは別の先読み計画アルゴリズムを使用して、所与の時間ステップにおいて、環境の初期状態の後の複数の将来の状態についての予測を行うことができる。これは、タスクエピソードと呼ばれる。タスクエピソードは、候補エージェントニューラルネットワークを使用することによって選択された特定のアクションをエージェントが実施すると想定して、所与の時間ステップの後の時間における環境のロールアウトを表す。システムは、候補タスクに対して、複数のタスクエピソード、たとえば、5つ、10個、20個、またはそれ以上のタスクエピソードを繰り返し生成するために、計画アルゴリズムを稼動することができる。
【0087】
タスクエピソードは、エージェントが環境と相互作用する時間ステップのシーケンスを指す。タスクエピソードは、たとえば、エージェントが、あらかじめ定義された数の時間ステップの間、環境と相互作用したとき、またはエージェントがタスクを完了したときに終了し得る。
【0088】
いくつかの実装形態では、各タスクエピソードは複数の軌跡のシーケンスを含むことができ、各軌跡は、環境のそれぞれの現在の状態を特徴づけるそれぞれの現在の観測と、現在の観測に応答してエージェントによって実施されるそれぞれの現在のアクションと、環境のそれぞれの次の状態を特徴づけるそれぞれの次の状態と、エージェントが現在のアクションを実施したことに応答して受け取った報酬とを含み得る。
【0089】
候補タスクの複数のタスクエピソードの各々について、システムは、候補エージェントニューラルネットワークを使用して、候補タスクのタスクエピソードを実施するようにエージェントを制御することによって受信されたそれぞれの候補エージェントリターンを判断する。システムは、制御方策を使用して、候補タスクのタスクエピソードを実施するようにエージェントを制御することによって受信されたそれぞれの制御方策リターンも判断する。候補エージェントリターンおよび制御方策リターンは両方とも、選択されたタスクパラメータによって、たとえば、環境と相互作用するときに1つまたは複数のアクションを実施したことに応答してエージェントが受け取る報酬の累積測度として定義される報酬関数に従って計算されるタスク固有リターンであってよい。
【0090】
いくつかの実装形態では、システムは、それぞれの候補エージェントリターンによって測定される、候補エージェントニューラルネットワークのパフォーマンスが、候補エージェントニューラルネットワーク用のハイパーパラメータ値によって定義される、パフォーマンスの閾値レベルを超えないときにのみ、候補エージェントニューラルネットワークを候補タスクでトレーニングすることへ進むと判断する。
【0091】
これらの実装形態では、システムは、それぞれの候補エージェントリターンが第1の指定値を超えるタスクエピソードの割合が第2の指定値未満であるときにのみ、候補エージェントニューラルネットワークを候補タスクでトレーニングすると判断し得る。たとえば、第1の指定値は、エージェントが受け取ることができる総報酬の可能範囲の間の整数または浮動小数点値であってよく、第2の指定値は、ゼロと1との間の10進値であってよく、ここで、第1の指定値、第2の指定値、または両方とも、候補エージェントニューラルネットワーク用のハイパーパラメータ値である。
【0092】
数学的表現での、この基準の例は、
Pr[Rπ(x)>ms]<msolved
であってよく、式中、Rπ(x)はそれぞれの候補エージェントリターンであり、msおよびmsolvedは、それぞれ、第1および第2の指定値である。
【0093】
いくつかの実装形態では、システムは、それぞれの候補エージェントリターンによって測定される、候補エージェントニューラルネットワークのパフォーマンスが、それぞれの制御方策リターンによって測定される制御方策のパフォーマンスを、候補エージェントニューラルネットワーク用のハイパーパラメータ値によって定義される、パフォーマンスの閾値レベル超だけ超えるときにのみ、候補エージェントニューラルネットワークを候補タスクでトレーニングすると判断する。
【0094】
これらの実装形態では、システムは、それぞれの候補エージェントリターンが、少なくとも第3の指定値だけそれぞれの制御方策リターンを超えるタスクエピソードの割合が、第4の指定値よりも大きいときにのみ、候補エージェントニューラルネットワークを候補タスクでトレーニングすると判断してよい。たとえば、第3の指定値は、エージェントが受け取ることができる総報酬の可能範囲の間の整数または浮動小数点値であってよく、第4の指定値は、ゼロと1との間の10進値であってよく、ここで、第3の指定値、第4の指定値、または両方とも、候補エージェントニューラルネットワーク用のハイパーパラメータ値である。第3および第4の指定値は、それぞれ、第1および第2の指定値と同じでも、異なってもよい。
【0095】
数学的表現での、この基準の例は、
【0096】
【0097】
であってよく、式中、Rπ(x)はそれぞれの候補エージェントリターンであり、Rπcont(x)はそれぞれの制御方策リターンであり、m>およびm>contは、それぞれ、第3および第4の指定値である。
【0098】
いくつかの実装形態では、システムは、それぞれの制御方策リターンによって測定される制御方策のパフォーマンスが、候補エージェントニューラルネットワーク用のハイパーパラメータ値によって定義されるパフォーマンスの閾値レベルよりも低いときにのみ、候補エージェントニューラルネットワークを候補タスクでトレーニングすると判断する。つまり、システムは、候補タスクの指定されたゴールを達成するために、たとえば、一様ランダムアクション方策よりも洗練された、または進歩した、制御方策を要する候補タスクで、候補エージェントニューラルネットワークをトレーニングすると判断する。
【0099】
これらの実装形態では、システムは、それぞれの制御方策リターンの平均(または中央値、もしくは他の代表値)が第5の指定値未満であるときにのみ、候補エージェントニューラルネットワークを候補タスクでトレーニングすると判断し得る。たとえば、第5の指定値は、エージェントが受け取ることができる総報酬の可能範囲の間の整数または浮動小数点値であってよく、ここで、第5の指定値は、候補エージェントニューラルネットワーク用のハイパーパラメータ値である。第5の指定値は、第1または第3の指定値と同じでも、異なってもよい。
【0100】
数学的表現での、この基準の例は、
【0101】
【0102】
であってよく、式中、Vπcont(x)はそれぞれの制御方策の予想リターンであり、mcontは第5の指定値である。
【0103】
上記実装形態のいずれにおいても、候補エージェントニューラルネットワークを候補タスクでトレーニングするとの判断に応答して、システムは、エージェントニューラルネットワークのネットワークパラメータの維持値を更新するために、任意の適切な強化学習技法を使用して、すなわち、候補エージェントニューラルネットワークを使用して制御されるエージェントが環境から受け取った報酬によって決まる目的関数を最適化することによって、候補タスクで候補エージェントニューラルネットワークをトレーニングする(ステップ208)。たとえば、強化学習技法は、オンポリシーRLトレーニング技法、たとえば、Songら、「V-MPO: On-policy maximum a posteriori policy optimization for discrete and continuous control、International Conference on Learning Representations」、2019年においてより詳しく記載されるRLアルゴリズムのうちの1つであってよく、システムは、一定数の反復または設定された時間期間だけ、候補エージェントニューラルネットワークを候補タスクでトレーニングすることができる。
【0104】
強化学習技法と並行して適用されるのが、集団ベーストレーニング技法である。具体的には、システムは、候補エージェントニューラルネットワークのハイパーパラメータおよびネットワークパラメータについての維持値を使用して、1つまたは複数の候補タスクのそれぞれのセットで、候補ニューラルネットワークをトレーニングして、PBT終了基準が満足されるまで、候補エージェントニューラルネットワーク用の更新されたネットワークパラメータを反復して生成する。PBT終了基準は、設定された1つまたは複数の条件であり、候補エージェントニューラルネットワークによって満たされると、システムに、候補エージェントニューラルネットワーク用のリポジトリを、新たなネットワークパラメータ、新たなハイパーパラメータ、および新たなパフォーマンス測度で更新させる。PBT終了基準が満たされる例は、候補エージェントニューラルネットワークが、1つまたは複数の候補タスクのそれぞれのセットで、反復トレーニングプロセスの一定数の反復(たとえば、1e4、1e6、1e8など)または設定された時間期間(たとえば、1時間、2時間、10時間など)だけトレーニングされたときである。PBT終了基準が満たされる別の例は、候補エージェントニューラルネットワークが一定のパフォーマンス閾値を下回るときである。
【0105】
PBT終了基準を満たすと、システムは、候補エージェントニューラルネットワーク用のネットワークパラメータの更新された値に従って、候補エージェントニューラルネットワーク用の更新されたパフォーマンスを判断することを含む集団リポジトリ更新プロセスを実行する。更新されたパフォーマンスは、更新されたネットワークパラメータの結果として、候補エージェントニューラルネットワークの潜在的パフォーマンス増大を反映する。
【0106】
システムは、候補ニューラルネットワーク用のハイパーパラメータおよびネットワークパラメータの新たな値も判断する。いくつかの実装形態では、システムは、集団リポジトリの中の、候補エージェントニューラルネットワークの集団についての維持されるパフォーマンスと、候補エージェントニューラルネットワークの更新されたパフォーマンスとに少なくとも基づいて、候補エージェントニューラルネットワーク用の、ハイパーパラメータ(すなわち、候補エージェントニューラルネットワーク用の維持されたハイパーパラメータ値を調節し)およびネットワークパラメータの新たな値を判断する。
【0107】
候補エージェントニューラルネットワーク用の、新たなネットワークパラメータ、新たなハイパーパラメータ、および新たなパフォーマンスを判断した後、反復トレーニングプロセスは続く。つまり、システムは、候補ニューラルネットワークの新たなハイパーパラメータおよび新たなネットワークパラメータを使用して、1つまたは複数の新たに取得された候補タスクのそれぞれのセットでの強化学習を通して、候補エージェントニューラルネットワークをトレーニングして、候補エージェントニューラルネットワーク用の更新されたネットワークパラメータを反復して生成する。システムは、次のPBT終了基準が満足されるまで、候補エージェントニューラルネットワーク用の反復トレーニングプロセスを続ける(また、システムは、候補エージェントニューラルネットワーク用の集団リポジトリ更新プロセスを繰り返す)。いくつかの実装形態では、システムは、たとえば、PBT終了基準が所定の回数だけ満足されたとき、またはトレーニングを止めるよう、システムに指示するようにパフォーマンス基準が満足されたとき、候補エージェントニューラルネットワーク用の反復トレーニングプロセスを終了してよく、他の実装形態では、システムは、反復トレーニングプロセスを無限に続けてよい。
【0108】
図3は、候補エージェントニューラルネットワークの集団をトレーニングする例証を示す。トレーニングシステム、たとえば、
図1のトレーニングシステム100が、集団(「集団1」)の中の候補エージェントニューラルネットワークA~G 142A~G用の反復トレーニングプロセスを、並行して、およびPBT終了基準が満足されるまで、実行する。トレーニングシステムが、候補エージェントニューラルネットワークA~G 142A~G用の反復トレーニングプロセスを実行するとき、候補エージェントニューラルネットワーク用のネットワークパラメータA~Gがそれに応じて更新される。
【0109】
システムは、複数の検証タスクの各々における、候補エージェントニューラルネットワークのパフォーマンスの評価に基づいて、各候補エージェントニューラルネットワークのパフォーマンスを更新する。複数の検証タスクは、検証タスクのセットからサンプリングすることによって取得することができる。検証セットの中のタスクの数は概して、候補タスクのセットの中のタスクの総数よりもはるかに小さい。たとえば、トレーニングデータリポジトリは、百万、5百万、またはそれ以上の候補タスクのセットを記憶し得るが、検証タスクの数は、数千程度である。いくつかの実装形態では、サンプリングはランダムサンプリングであり得るが、他の実装形態では、サンプリングは代替として、検証タスクのセットの均一カバレージを保証するように、傾斜サンプリングであってよい。各検証タスクについて更新されたパフォーマンスは、たとえば、環境と相互作用するとき、候補エージェントニューラルネットワークを使用して選択された1つまたは複数のアクションを実施したことに応答してエージェントが受け取る報酬の累積測度として、選択されたタスクパラメータによって定義される報酬関数に従って計算されるタスク固有リターンによって決まり得る。
【0110】
各候補エージェントニューラルネットワーク用のハイパーパラメータおよびネットワークパラメータを更新するためにパフォーマンスが直接使用される従来の集団ベーストレーニングとは異なり、評価タスクは、タスクの複雑さ、リターンのスケール、または両方によって変わり得るので、システムは、各候補エージェントニューラルネットワークについてのそれぞれのPBT適応測度(または、略して「適応測度」)310をさらに計算し、これは次いで、候補エージェントニューラルネットワーク用のハイパーパラメータおよびネットワークパラメータを更新するために使用される。適応測度310により、評価タスクのセットにわたって、ネットワークパフォーマンスおよび堅牢性のより良好な特徴づけが可能になる。
【0111】
特に、複数の検証タスクにわたる、各候補エージェントニューラルネットワークのパフォーマンスの多次元測度と見なすことができるそれぞれの適応測度は、複数の検証タスクの各々において、候補エージェントニューラルネットワーク用のそれぞれの正規化パーセンタイルメトリックを判断することによって計算される。
【0112】
図7は、正規化パーセンタイルメトリックを判断する例証を示す。図示されるように、各候補エージェントニューラルネットワークについて、検証タスク711、712、713、714、および715の各々のための、候補エージェントニューラルネットワークの集団に対する正規化パーセンタイルメトリックを判断するために、システムは、検証タスクにおける候補の最良パフォーマンス(たとえば、タスク711用の最良パフォーマンス701B)を正規化定数として使い、次いで、正規化定数を使用して、候補エージェントニューラルネットワークのパフォーマンス(たとえば、タスク711用の候補エージェントニューラルネットワークパフォーマンス701A)を正規化すればよい。各候補エージェントニューラルネットワークについて、複数の検証タスクにわたる候補の正規化パフォーマンス(たとえば、タスク714用の正規化候補エージェントニューラルネットワークパフォーマンス724C)が次いで、並べ替えられ、たとえば、単調昇順に並べられ(
図7に示す正規化パーセンタイル曲線によって示されるように)、そこから、各検証タスクにおける候補のためのそれぞれの正規化パーセンタイルメトリックを判断することができる。
【0113】
図7の例では、任意の所与の検証タスクにおける候補の最良パフォーマンスが、検証タスクにおける候補によって受信されたそれぞれの候補エージェントリターンによって測定される、候補エージェントニューラルネットワークが到達する最良パフォーマンスであってよく(単一エージェントタスクの場合)、または代替として、検証タスクにおける候補によって受信されたそれぞれの候補エージェントリターンによって測定される、複数の候補エージェントニューラルネットワークのグループの1つが到達する最良パフォーマンス(ナッシュ均衡)であってよい(複数エージェントタスクの場合)。
【0114】
システムは次いで、集団ベーストレーニング技法をそれぞれの適応測度に適用して、集団の中の1つまたは複数の候補エージェントニューラルネットワーク142A~Gの各々についてのそれぞれのハイパーパラメータ値を調節する。たとえば、候補エージェントニューラルネットワークのそれぞれの適応測度を互いと比較し、候補エージェントニューラルネットワーク142Dについての適応測度が、集団の中の別の候補エージェントニューラルネットワーク、たとえば、候補エージェントニューラルネットワーク142Eについてのそれぞれの適応測度よりも良好であるとの判断に応答して、システムは、候補エージェントニューラルネットワーク142Dを、現在の集団の中で、「より良好な」パフォーマンスを行う候補として識別する。たとえば、比較結果は、パレート支配に基づき得る。ここでの例として、複数のタスク、たとえば、複数の検証タスクのための候補の適応測度、たとえば、正規化パーセンタイルメトリックがすべて、少なくとも複数のタスク、たとえば、複数の検証タスクのための別の候補用のものと同じくらい良好であるが、厳密には、タスクのうちの少なくとも1つ、たとえば、検証タスクのための、適応測度、たとえば、正規化パーセンタイルメトリックにおいてより良好である場合、候補のパフォーマンスは、別の候補のパフォーマンスをパレート支配するものと見なされ得る。
【0115】
この例では、システムは次いで、候補エージェントニューラルネットワーク142D用のネットワークハイパーパラメータを「活用する」こと、すなわち、他の候補エージェントニューラルネットワーク用のハイパーパラメータ値を、候補エージェントニューラルネットワーク142D用のハイパーパラメータ値と等しくなるように調節することによって、他の候補エージェントニューラルネットワーク用のネットワークハイパーパラメータの新たな値を判断することができる。この例では、システムは、代替として、候補エージェントニューラルネットワーク142D用のネットワークハイパーパラメータを「探索する」こと、すなわち、他の候補エージェントニューラルネットワーク用のハイパーパラメータ値を、候補エージェントニューラルネットワーク142D用のハイパーパラメータ値の変異(たとえば、ランダムに摂動された)バージョンと等しくなるように調節することによって、他の候補エージェントニューラルネットワーク用のネットワークハイパーパラメータの新たな値を判断することができる。
【0116】
システムは同様に、集団の中の各候補エージェントニューラルネットワーク142A~G用のそれぞれのパラメータ値を調節するために、集団ベーストレーニング技法を、それぞれの適応測度に適用する。候補エージェントニューラルネットワーク142Dが、現在の集団の中で「より良好な」パフォーマンスを行う候補として識別された上記例を続けると、システムは、別の候補エージェントニューラルネットワーク、たとえば、候補エージェントニューラルネットワーク142E用のそれぞれのパラメータ値を、候補エージェントニューラルネットワーク142D用のそれぞれのパラメータ値(または、それぞれのパラメータ値の変異バージョン)に等しくなるように設定することができる。
【0117】
図3に示されるように、いくつかの実装形態では、システムは、集団ベーストレーニング技法に世代的トレーニング技法をさらに組み込んで、RLトレーニングの有効性および速さをさらに向上させる。これらの実装形態では、候補エージェントニューラルネットワークのトレーニングは、トレーニング世代のシーケンスにわたり、ここで、各トレーニング世代においてトレーニングされるそれぞれの候補エージェントニューラルネットワークはまとめて、1つの特定の集団と見なされ得る。たとえば、各トレーニング世代は、反復トレーニングプロセスの一定数の反復(たとえば、1e8、5e8、10e8など)または設定された時間期間(たとえば、12時間、24時間、48時間など)を含み得る。
【0118】
図3は、7つの候補エージェントニューラルネットワークからなるそれぞれの集団が、4つのトレーニング世代のシーケンス中の各トレーニング世代においてトレーニングされる例示的実装形態を示すが、より多いか、またはより少ないトレーニング世代のためにトレーニングされる、より多くの、およびときには数倍多い、候補エージェントニューラルネットワークがあってよい。
【0119】
世代的集団ベーストレーニングは、トレーニング中に方策蒸留技法を使用することを可能にし、これは概して、現在のトレーニング世代における候補エージェントニューラルネットワークが、その挙動を、直前のトレーニング世代における別の候補からブートストラップすることを可能にする。方策蒸留技法を実施することは、候補エージェントニューラルネットワークの集団のトレーニング中のトレーニング世代のシーケンスの現在のトレーニング世代中に、先行トレーニング世代からの「より良好な」パフォーマンスを行う候補エージェントニューラルネットワーク(たとえば、タスク固有パフォーマンスまたは適応測度に観点から)がすでにトレーニングされた同一または異なる候補タスクで、候補エージェントニューラルネットワークを、予想リターンを最適化するようにトレーニングしながら、最良パフォーマンス候補エージェントニューラルネットワークから蒸留すること、たとえば、シーケンスの中で現在のトレーニング世代に直接先行する先行トレーニング世代の最後に、最良パフォーマンス候補から蒸留することを伴う。
【0120】
具体的には、システムは、候補エージェントニューラルネットワークのRLトレーニングにおいて使用される目的関数に、予備方策蒸留損失項
【0121】
【0122】
を組み込むことができ、ここで
【0123】
【0124】
であり、式中、πteacherおよびπは、それぞれ、「より良好な」パフォーマンス候補エージェントニューラルネットワークおよび「学習」候補エージェントニューラルネットワークのアクション選択出力である。上の例示的式において、方策損失項は、環境状態の上にマスクされ、報酬が取得され、すなわち、(カルバック-ライブラー情報量での)予備損失は、報酬を受け取れない様々なトレーニングタスクエピソードの中の特定の時間ステップにおけるRLトレーニングに影響するだけである。
【0125】
さらに、これらの実装形態では、先行トレーニング世代からの「より良好な」パフォーマンスを行う候補エージェントニューラルネットワーク(たとえば、タスク固有パフォーマンスまたは適応測度の観点から)は、マルチエージェント候補タスクにおける他のエージェントを、RLトレーニングの多様性を増すように制御するために使用することができる。
【0126】
いくつかの実装形態では、シーケンスの中のトレーニング世代のうちの1つまたは複数の、各々に対応する集団の中の少なくともいくつかの候補エージェントニューラルネットワークは、自己報酬プレイ目的でトレーニングすることができる。これは、候補エージェントニューラルネットワークが、より少ない数のタスクにおいて対応するゴールだけを達成できないようにすることによって、RLトレーニングを助けるために使用することができる。具体的には、自己報酬プレイ目的は、候補エージェントニューラルネットワークがゴールgを満足させたことに報い、成功した後、候補は、同じ環境内でnot(g)を充足したことに対して報いられ、ゴール中のこのフリップが、各満足の後で繰り返される。たとえば、ゴールgが、オブジェクトを標的ロケーションの方へ移動させることであり、次いで、not(g)が、オブジェクトを標的ロケーションから遠ざけるように移動させることであると仮定する。これは、2つのエージェントが、それら自体と競合してプレイしていると見なすことができ、一方のエージェントは、gを満足させなければならず、他方のエージェントはnot(g)を満足させなければならないが、エージェントは、逐次的に作用し、同じ候補エージェントニューラルネットワークによって制御される。
【0127】
図4Aは、例示的強化学習エージェント制御システム400を示す。強化学習エージェント制御システム400は、以下で説明するシステム、構成要素、および技法が実装され得る、1つまたは複数のロケーションにある1つまたは複数のコンピュータ上でコンピュータプログラムとして実装されるシステムの例である。
【0128】
強化学習システム400は、本明細書に記載されるオープンエンドな強化学習トレーニングプロセスの結果として取得されるエージェントニューラルネットワーク420を含む。
【0129】
強化学習エージェント制御システム400は、エージェントニューラルネットワーク420を使用して、エージェント408によって実施されるべきアクション410を選択し、次いで、エージェント408に、選択されたアクション410を実施させることによって、環境402と相互作用するエージェント408を制御する。
【0130】
エージェント408による、選択されたアクション410の実施は概して、環境402を、新たな状態に遷移させる。繰り返し、エージェント408を環境402において作用させることによって、システム400は、エージェント408を制御して、複数の指定されたタスクの各々を完了させることができる。
【0131】
複数の時間ステップの各々において、エージェントニューラルネットワーク420は、(i)環境402の現在の状態を特徴づける現在の観測記録404と、(ii)環境の中でタスクを実施するために満足させるべきゴールを表すゴールデータ406とを含む入力を、ネットワークパラメータのトレーニングされた値に従って処理して、アクション選択出力を生成するように構成される。ゴールは、述語のそれぞれのセットに対するオプションのセットとして表されてよく、各述語は、環境の現在の状態を対応する報酬値にマップしてよく、各オプションは、たとえば、述語すべてが非ゼロ報酬を返す場合にのみ報酬が受け取られるように、1つまたは複数の述語の連結である。いくつかの実装形態では、ゴールデータ406は、たとえば、各述語がマルチホット符号化ベクトルとして表される、数値の1つまたは複数のテンソルとして表すことができる。
【0132】
具体的には、いくつかの実装形態では、環境402の現在の状態を特徴づける現在の観測記録404は、環境の中に存在する異なるエンティティ(たとえば、標的オブジェクト、障害物、および他のエージェント)の位置、配向、速度などを定義する情報を含み得る。これらの実装形態では、エンティティの一部または全部に関する物理的関係の形の、原子述語のセットφjが定義されてよく、ゴールは、原子述語のセットφjに対するブーリアン表現として定義され得る。これらの物理的関係は、たとえば、近くにあること、上、見ること、および保持すること、ならびにそれらの否定を含んでよく、エンティティは、標的オブジェクト、障害物、エージェント、または環境の地面などの静的トポロジカルビルディングブロックである。例示的述語はしたがって、「近く(紫色の球、対抗物)」であってよく、これは、環境の中の紫色の球に対抗エージェントのうちの1つを接近させるというゴールを表す。可能述語のセットが固定された状態で、エージェントのゴールは、このオプション(連言)のための関連(または必要な)述語のセットに対するオプション(選言)のセットによって表すことができる。言い換えると、ゴールは、マッピングφj:S→{0,1}dであってよく、これは、各現在の状態から始をd個の述語真値のバイナリベクトルに割り当て、0は、環境が、観測記録Sによって特徴づけられる状態にあるとき、ゴールに関連しない述語を示し、1は、環境が、観測記録Sによって特徴づけられる状態にあるとき、ゴールに関連する述語を示す。たとえば、ゴールデータ406によって表されるゴールは、
【0133】
【0134】
のようになり得、これは、いくつかの例示的述語について、「黄色の球(φj2)の近くにいる間、紫色の球(φj1)を保持するか、または黄色の球(φj4)を保持していない対抗エージェント(φj3)を見ている間、黄色の球(φj2)の近くにいる」を意味する場合がある。
【0135】
システム400は次いで、アクション選択出力を使用して、エージェントを制御する、すなわち、アクション選択出力に従って、現在の時間ステップにおいてエージェントによって実施されるべきアクション410を選択し、次いで、たとえば、エージェントに制御信号を直接送信することによって、またはエージェント用の制御システムにアクション410を識別するデータを送信することによって、エージェントに、アクション410を実施させる。例示的アクション選択出力、ならびにそれらが、アクションを選択するためにどのように使用され得るかについては、
図1を参照して上述されている。
【0136】
エージェントニューラルネットワーク420は、ネットワークが、その記述される機能を実施することを可能にするニューラルネットワークアーキテクチャを有して実装される。
図4Aに示されるように、エージェントニューラルネットワーク420は、状態エンコーダニューラルネットワーク430、埋込みニューラルネットワーク440、注意ニューラルネットワーク445、価値ニューラルネットワーク(価値ニューラルネットワーク「V」ヘッド)450、および方策ニューラルネットワーク(方策ニューラルネットワーク「π」ヘッド)460を含む。つまり、価値ニューラルネットワークは、価値ニューラルネットワークヘッドとも呼ばれてよく、同様に、方策ニューラルネットワークは、方策ニューラルネットワークヘッドと呼ばれてもよく、「ヘッド」という用語は、価値ニューラルネットワークと方策ニューラルネットワークが両方とも、注意ニューラルネットワーク445の1つまたは複数のレイヤによって生成された入力共有データを受信することを示し得るが、示す必要はない。ニューラルネットワーク420、430、440、445、および450の各々は、エージェントニューラルネットワーク420の中の複数のニューラルネットワークレイヤの異なるサブセットを含む。
【0137】
状態エンコーダニューラルネットワーク430は、複数の畳込みレイヤのスタック、それに続く1つまたは複数のプーリングレイヤ(たとえば、最大値プーリングレイヤ)、およびそれに続く1つまたは複数の再帰レイヤ(たとえば、長短期メモリ(LSTM)レイヤ)を含み得る。状態エンコーダニューラルネットワーク430は、すなわち、トレーニングを通して、観測記録404を受信して、受信された観測記録404を処理することによって、状態エンコーダニューラルネットワーク430の隠れ状態を更新し、すなわち、環境の現在の状態を表す現在の隠れ状態432を生成するように構成される。通常、埋込みとは、固定次元数を有する、数値または他の値の順序付けられた集合である。固定次元数は、状態エンコーダニューラルネットワーク430の各LSTMレイヤの中に含まれる、LSTMニューロンの実際の数、たとえば、128、256などに依存し得る。
【0138】
埋込みニューラルネットワーク440は、完全接続ニューラルネットワーク、すなわち、複数の完全接続レイヤを含むものであってよく、その後に、任意選択で活性化レイヤ(たとえば、ReLU活性化レイヤ)が続き、活性化レイヤは、ゴールデータ406および現在の隠れ状態432を処理して、(i)述語予測、(ii)ゴールのゴール埋込み、および(iii)ゴールデータによって表される、オプションの各々のためのそれぞれのオプション埋込みを生成するように構成される。埋込みニューラルネットワーク440は、次に、述語予測子ニューラルネットワーク、ゴール埋込みニューラルネットワーク、およびオプション埋込みニューラルネットワークを含んでよく、それらは各々、埋込みニューラルネットワーク440の複数の完全接続レイヤのそれぞれのサブセットを含む。
【0139】
述語予測子ニューラルネットワークは、ゴールデータ406および現在の隠れ状態432を処理して、述語予測を生成するように構成される。いくつかの実装形態では、述語予測は、環境が、現在の観測によって特徴づけられる状態にあるとすると、原子述語のセットφjからのどの述語が、ゴールデータ406の中で表されるゴールに関連する(たとえば、中に含まれる)かを指定するマルチラベルバイナリ分類予測であってよい。
【0140】
オプション埋込みニューラルネットワークは、ゴールデータ406および現在の隠れ状態432、ゴールデータ406および現在の隠れ状態432から導出されたデータ、または両方を処理して、オプションの各々のためのそれぞれのオプション埋込みを生成するように構成される。同様に、ゴール埋込みニューラルネットワークは、ゴールデータ406および現在の隠れ状態432、ゴールデータ406および現在の隠れ状態432から導出されたデータ、または両方を処理して、ゴールのゴール埋込みを生成するように構成される。通常、埋込みとは、固定次元数を有する、数値または他の値の順序付けられた集合である。固定次元数は、埋込みニューラルネットワーク440の各完全接続レイヤの中に含まれる隠れユニットの実際の数、たとえば、128、256などに依存し得る。
【0141】
注意ニューラルネットワーク445は、(i)現在の隠れ状態と、(ii)ゴール埋込みと、(iii)ゴール注意隠れ状態を生成するための述語予測とを含む入力を処理するように構成される。本明細書で使用する場合、注意ニューラルネットワークとは、1つまたは複数の注意レイヤを含むニューラルネットワークであり、各注意レイヤは、注意機構、たとえば、スケール化ドット積注意機構を含むニューラルネットワークレイヤである。ゴール注意隠れ状態を生成するために、注意機構は、クエリと、鍵と値のペアのセットとを出力(ゴール注意隠れ状態)にマップし、クエリは、ゴール埋込みからのものとする(または別様に導出する)ことができ、鍵と値のペアのセットは、現在の隠れ状態432(たとえば、現在の隠れ状態の線形投影および/または再成形バージョン)から導出することができる。
【0142】
さらに、注意ニューラルネットワーク445は、オプションの各々について、(i)現在の隠れ状態と、(ii)オプション用のそれぞれのオプション埋込みと、(iii)述語予測とを含む入力を処理して、オプションのためのそれぞれのオプション注意隠れ状態を生成するように構成される。各オプションについてのそれぞれのオプション注意隠れ状態を生成するために、注意機構は、クエリと、鍵と値のペアのセットとを出力(オプション注意隠れ状態)に同様にマップし、クエリはオプションについてのオプション埋込みとすることができ、鍵と値のペアのセットは、現在の隠れ状態432から導出することができる。
【0143】
価値ニューラルネットワーク450は、完全接続ニューラルネットワーク、すなわち、1つまたは複数の完全接続レイヤを含むものであってよく、任意選択で、その後に活性化レイヤ(たとえば、ReLU活性化レイヤ)が続き、活性化レイヤは、ゴール注意隠れ状態を処理して、達成される推定リターン、たとえば、現在の状態から始めてゴールをエージェントが満足させようと試みた場合、エージェントが受け取る報酬の累積測度を表す、ゴールについてのゴール値推定を生成するように構成される。価値ニューラルネットワーク450はまた、オプションの各々について、価値ニューラルネットワークヘッドを使用して、オプションについてのそれぞれのオプション注意隠れ状態を処理して、現在の状態から始めてオプションを満足させることをエージェントが試みた場合、達成される推定リターンを表す、オプションについてのそれぞれのオプション値推定を生成するように構成される。
【0144】
ゴール注意隠れ状態とそれぞれのオプション注意隠れ状態は次いで、方策ニューラルネットワーク460に提供されるべき組合せ隠れ状態を生成するように組み合わされ、ネットワーク460は、組合せ隠れ状態を処理して、アクション選択出力を生成するように構成される。いくつかの実装形態では、組合せ隠れ状態は重みなし組合せであってよいが、他の実装形態では、組合せ隠れ状態は、重み付き組合せ、すなわち、ゴール注意隠れ状態とそれぞれのオプション注意隠れ状態を、それぞれの重みに従って組み合わせるものであってよい。
【0145】
これらの実装形態のいくつかでは、ゴールについての、ならびにゴール値推定およびオプションについてのそれぞれのオプション値推定からのオプションの各々についてのそれぞれの重みが、ゴール値推定およびオプションについてのそれぞれのオプション値推定に対してソフトマックス関数を適用して、ゴールについての、およびオプションの各々についてのそれぞれのソフトマックススコアを生成することによって計算することができ、それらは次いで、重み付き組合せを計算するための重みとして使用される。概して、ソフトマックス関数とは、数値を確率にコンバートする関数である。これらの実装形態の他のものでは、それぞれの重みは、ゴール値推定およびオプションについてのそれぞれのオプション値推定のうちの最も高い値推定に1の重みを、ならびにゴール値推定およびオプションについてのそれぞれのオプション値推定の、すべての他の値推定にゼロの重みを割り当てることによって計算することができる。
【0146】
方策ニューラルネットワーク460は、1つまたは複数の完全接続レイヤと、それに続く1つまたは複数の出力レイヤを含み得る。いくつかの実装形態では、1つまたは複数の出力レイヤは、先行する完全接続レイヤの出力を処理して、エージェントが実施することができるアクションのセットに対する確率分布を生成するように構成される単一ソフトマックスレイヤを含み得る。いくつかの他の実装形態では、1つまたは複数の出力レイヤは、エージェントが実施することができるアクションのセットの異なるサブセットにそれぞれ対応する複数のソフトマックスレイヤを含むことができ、これらは各々、先行する完全接続レイヤの出力を処理して、サブセットに対するそれぞれの確率分布を生成するように構成される。さらに他の実装形態では、1つまたは複数の出力レイヤは、エージェントが実施することができるアクションのセットの中の各アクションについてのそれぞれのQ値を生成するように構成される1つまたは複数の追加の完全接続レイヤを含み得る。
【0147】
図4Bは、エージェントニューラルネットワーク420の1つの例示的実装形態の詳細を示す。
【0148】
図5は、環境と対話するエージェントを制御するための例示的プロセス500のフロー図である。便宜上、プロセス500は、1つまたは複数のロケーションにある1つまたは複数のコンピュータからなるシステムによって実施されるものとして記載される。たとえば、強化学習システム、たとえば、適切にプログラムされた
図4の強化学習エージェント制御システム400が、プロセス500を実施することができる。
【0149】
システムは、環境の現在の状態を特徴づける観測記録を受信する(ステップ502)。たとえば、観測記録は、オーディオデータセグメント、画像、または自然言語での文を含み得る。任意選択で、観測記録はまた、直前の時間ステップから導出された情報、たとえば、実施された直前のアクション、直前の時間ステップにおいて受け取られた報酬、または両方を含み得る。
【0150】
システムは、環境の中でタスクを実施するために、満足されるべきゴールを表すゴールデータを受信する(ステップ504)。受信されたゴールデータの中で、ゴールは、述語のそれぞれのセットに対するオプションのセットとして表される。
図4の例では、ゴールは、2つのオプションのセットとして表され、各々、単一述語「紫色の球を保持する」または「黄色の立方体を見る」を含むが、他の例では、ゴールは、各々がより多くの述語からなり、同一の述語が複数のオプションにわたって共有されることがある、より多くのオプションによって表されてよい。
【0151】
システムは、
図6を参照してさらに以下で記載されるように、アクション選択出力を生成するように、エージェントニューラルネットワークを使用して、観測記録およびゴールデータを含む入力を処理する(ステップ506)。いくつかの実装形態では、アクション選択出力は、エージェントが実施することができるアクションのセットにわたる確率分布を定義することができる。いくつかの実装形態では、アクション選択出力は、エージェントが実施することができるアクションのセットの中の各アクションについてのそれぞれのQ値を含み得る。いくつかの実装形態では、アクション選択出力は、連続アクション空間からのアクションであり、すなわち、個々のアクションの中のアクション値すべてが、連続範囲の可能な値から選択される。
【0152】
システムは、アクション選択出力を使用して、エージェントによって実施されるべきアクションを選択する(ステップ508)。アクション選択出力が確率分布を定義する実装形態では、システムは、アクションについての確率値に従ってアクションをサンプリングすることによって、または最高確率値を有するアクションを選択することによって、アクションを選択することができる。アクション選択出力がQ値を含む実装形態では、システムは、Q値を(たとえば、ソフトマックス関数を使用して)処理して、各可能アクションについてのそれぞれの確率値を生成することができ、これは、エージェントによって実施されるべきアクションを選択するために使用することができる。システムは、最も高いQ値を有するアクションを、エージェントによって実施されるべきアクションとして選択することもできる。
【0153】
システムは、たとえば、アクションを実施するよう、エージェントに命令すること、またはエージェント用の制御システムに制御信号を渡すことによって、エージェントに、選択されたアクションを実施させる(ステップ510)。
【0154】
図6は、アクション選択出力を生成するためにエージェントニューラルネットワークを使用する例示的プロセス600のフローチャートである。便宜上、プロセス600は、1つまたは複数のロケーションにある1つまたは複数のコンピュータからなるシステムによって実施されるものとして記載される。たとえば、強化学習システム、たとえば、適切にプログラムされた
図4の強化学習システム400が、プロセス600を実施することができる。
【0155】
システムは、エージェントニューラルネットワークの状態エンコーダニューラルネットワークを使用して観測記録を処理して、環境の現在の状態を表す現在の隠れ状態を生成する(ステップ602)。状態エンコーダニューラルネットワークは、1つまたは複数の再帰レイヤを含み、以前の観測記録を処理することによって生成された、状態エンコーダニューラルネットワークの隠れ状態を修正するように、受信された現在の観測記録を処理することによって、現在の隠れ状態を生成するように構成される。
【0156】
システムは、エージェントニューラルネットワークの埋込みニューラルネットワークを使用して、ゴールデータおよび現在の隠れ状態を処理して、(i)述語予測、(ii)ゴールのゴール埋込み、および(iii)ゴールデータによって表されるオプションの各々のためのそれぞれのオプション埋込みを生成する(ステップ604)。
【0157】
システムは、(i)現在の隠れ状態、(ii)ゴール埋込み、および(iii)述語予測を含む入力を、注意ニューラルネットワークを使用して処理して、ゴール注意隠れ状態を生成する(ステップ606)。ゴール注意隠れ状態は、少なくとも部分的には、(i)現在の隠れ状態、(ii)ゴール埋込み、および(iii)述語予測に対して注意機構を適用することによって生成される。
【0158】
オプションの各々について、システムは、(i)現在の隠れ状態、(ii)オプション用のそれぞれのオプション埋込み、および(iii)述語予測を含む入力を、注意ニューラルネットワークを使用して処理して、オプションのためのそれぞれのオプション注意隠れ状態を生成する(ステップ608)。オプション注意隠れ状態は、少なくとも部分的には、(i)現在の隠れ状態、(ii)オプション用のそれぞれのオプション埋込み、および(iii)述語予測に対して注意機構を適用することによって生成される。
【0159】
システムは、エージェントニューラルネットワークの価値ニューラルネットワークを使用して、ゴール注意隠れ状態を処理して、エージェントが、現在の状態から始めて、ゴールを満足させることを試みた場合に達成されるであろう推定リターンを表す、ゴールについてのゴール値推定を生成する(ステップ610)。
【0160】
オプションの各々について、システムは、価値ニューラルネットワークを使用して、オプションについてのそれぞれのオプション注意隠れ状態を処理して、エージェントが、現在の状態から始めて、オプションを満足させることを試みた場合に達成されるであろう推定リターンを表す、オプションについてのそれぞれのオプション値推定を生成する(ステップ612)。
【0161】
システムは、ゴール値推定およびオプションについてのそれぞれのオプション値推定から、ゴールについての、およびオプションの各々についてのそれぞれの重みを生成する(ステップ614)。いくつかの実装形態では、それぞれの重みを生成することは、ゴール値推定およびオプションについてのそれぞれのオプション値推定に対してソフトマックスを適用することを含み得る。いくつかの他の実装形態では、それぞれの重みを生成することは、ゴール値推定およびオプションについてのそれぞれのオプション値推定のうちの最も高い値推定に1の重みを、ならびにゴール値推定およびオプションについてのそれぞれのオプション値推定の、すべての他の値推定にゼロの重みを割り当てることを含み得る。
【0162】
システムは、それぞれの重みに従って、ゴール注意隠れ状態とそれぞれのオプション注意隠れ状態を組み合わせて、組合せ隠れ状態を生成する(ステップ616)。
【0163】
システムは、エージェントニューラルネットワークの方策ニューラルネットワークを使用して、組合せ隠れ状態を処理して、アクション選択出力を生成する(ステップ618)。
【0164】
本明細書は、「構成される」という用語を、システムおよびコンピュータプログラム構成要素との関連で使用している。1つまたは複数のコンピュータからなるシステムが特定の動作またはアクションを実施するように構成されることは、システムが、動作の際にシステムに動作またはアクションを実施させるソフトウェア、ファームウェア、ハードウェア、またはそれらの組合せをインストールしたことを意味する。1つまたは複数のコンピュータプログラムが、特定の動作またはアクションを実施するように構成されることは、1つまたは複数のプログラムが、データ処理装置によって実行されると、装置に動作またはアクションを実施させる命令を含むことを意味する。
【0165】
本明細書に記載する主題および機能的動作の実施形態は、デジタル電子回路機構で、または有形に具現化されるコンピュータソフトウェアもしくはファームウェアで、本明細書において開示した構造およびそれらの構造的等価物を含むコンピュータハードウェアで、またはそれらのうちの1つもしくは複数の組合せで実装することができる。本明細書に記載する主題の実施形態は、1つまたは複数のコンピュータプログラムとして、すなわち、データ処理装置によって実行するか、またはデータ処理装置の動作を制御するための、有形の非一時的記憶媒体上に符号化されたコンピュータプログラム命令の1つまたは複数のモジュールとして、実装することができる。コンピュータ記憶媒体は、機械可読記憶デバイス、機械可読記憶基板、ランダムもしくはシリアルアクセスメモリデバイス、またはそれらのうちの1つもしくは複数の組合せであってよい。代替または追加として、プログラム命令は、データ処理装置による実行のために、適切な受信機装置への送信用の情報を符号化するように生成される、人工的に生成された伝搬信号、たとえば、機械生成された電気、光学、または電磁信号上で符号化されてよい。
【0166】
「データ処理装置」という用語は、データ処理ハードウェアを指し、例として、プログラム可能プロセッサ、コンピュータ、または複数のプロセッサもしくはコンピュータを含む、データを処理するための、あらゆる種類の装置、デバイス、および機械を包含する。装置は、特殊目的論理回路機構、たとえば、FPGA(フィールドプログラム可能ゲートアレイ)またはASIC(特定用途向け集積回路)であるか、またはそれらをさらに含んでもよい。装置は、任意選択で、ハードウェアに加え、コンピュータプログラムのための実行環境を作成するコード、たとえば、プロセッサファームウェア、プロトコルスタック、データベース管理システム、オペレーティングシステム、またはそれらのうちの1つもしくは複数の組合せを構成するコードを含むことができる。
【0167】
コンピュータプログラムは、プログラム、ソフトウェア、ソフトウェアアプリケーション、アプリ、モジュール、ソフトウェアモジュール、スクリプト、またはコードと呼ばれるか、またはそれらとして説明される場合もあり、コンパイル型もしくはインタープリタ型言語、または宣言型もしくは手続き型言語を含む、どの形のプログラミング言語で書かれてよく、スタンドアロンプログラムとして、またはモジュール、構成要素、サブルーチン、もしくはコンピューティング環境における使用に適した他のユニットとして、を含む、どの形でも展開することができる。プログラムは、ファイルシステム内のファイルに対応してよいが、そうである必要はない。プログラムは、他のプログラムもしくはデータ、たとえば、マークアップ言語ドキュメントに記憶された1つもしくは複数のスクリプトを保持するファイルの部分に、当該プログラムに専用の単一のファイルに、または複数の協調ファイル、たとえば、1つもしくは複数のモジュール、サブプログラム、もしくはコードの部分を記憶するファイルに記憶することができる。コンピュータプログラムは、1つの場所に位置する1つのコンピュータ上または複数のコンピュータ上で実行されるように展開されてもよく、複数の場所に分散され、データ通信ネットワークによって相互接続されてもよい。
【0168】
本明細書では、「エンジン」という用語は、1つまたは複数の特定の機能を実施するようにプログラムされる、ソフトウェアベースのシステム、サブシステム、またはプロセスを指すように広く使用される。概して、エンジンは、1つまたは複数のソフトウェアモジュールまたは構成要素として実装され、1つまたは複数のロケーションにある1つまたは複数のコンピュータ上にインストールされることになる。場合によっては、1つまたは複数のコンピュータは、特定のエンジンに専用となり、他の場合では、複数のエンジンが、同じコンピュータまたは複数のコンピュータ上でインストールされ、稼動することが可能である。
【0169】
本明細書に記載したプロセスおよび論理フローは、入力データに対して動作し、出力を生成することによって機能を実施するための1つまたは複数のコンピュータプログラムを実行する1つまたは複数のプログラム可能コンピュータによって実施され得る。プロセスおよび論理フローはまた、特殊目的論理回路機構、たとえば、FPGA、もしくはASICによって、または特殊目的論理回路機構と1つもしくは複数のプログラムされたコンピュータの組合せによって実施されてもよい。
【0170】
コンピュータプログラムの実行に適したコンピュータは、汎用もしくは特殊目的マイクロプロセッサもしくは両方、または任意の他の種類の中央処理ユニットに基づいてもよい。概して、中央処理ユニットは、読取り専用メモリもしくはランダムアクセスメモリまたは両方から、命令およびデータを受信することになる。コンピュータの本質的要素は、命令を実施または実行するための中央処理ユニット、ならびに命令およびデータを記憶するための1つまたは複数のメモリデバイスである。中央処理ユニットおよびメモリは、特殊目的論理回路機構によって補完することも、その中に組み込むこともできる。概して、コンピュータは、データを記憶するための1つまたは複数の大容量記憶デバイス、たとえば、磁気、光磁気ディスク、または光ディスクも含み、あるいは大容量記憶デバイスからデータを受信し、もしくはデータを転送し、または両方を行うように大容量記憶デバイスに動作可能に結合される。ただし、コンピュータは、そのようなデバイスを有する必要はない。その上、コンピュータは、別のデバイス、たとえば、ほんのいくつかの例を挙げると、モバイル電話、携帯情報端末(PDA)、モバイルオーディオまたはビデオプレーヤ、ゲームコンソール、全地球測位システム(GPS)受信機、またはポータブル記憶デバイス、たとえば、ユニバーサルシリアルバス(USB)フラッシュドライブに組み込むことができる。
【0171】
コンピュータプログラム命令およびデータを記憶するのに適したコンピュータ可読媒体は、例として、半導体メモリデバイス、たとえば、EPROM、EEPROM、およびフラッシュメモリデバイスと、磁気ディスク、たとえば、内部ハードディスクまたは取外し可能ディスクと、光磁気ディスクと、CD-ROMおよびDVD-ROMディスクとを含む、あらゆる形の不揮発性メモリ、媒体およびメモリデバイスを含む。
【0172】
ユーザとの対話を可能にするために、本明細書に記載する主題の実施形態は、ユーザに情報を表示するためのディスプレイデバイス、たとえば、CRT(陰極線管)やLCD(液晶ディスプレイ)モニタと、ユーザがコンピュータに入力を提供することができるキーボードおよびポインティングデバイス、たとえば、マウスやトラックボールとを有するコンピュータ上で実装することができる。他の種類のデバイスを使用して、ユーザとの対話を提供することもでき、たとえば、ユーザに提供されるフィードバックは、たとえば、視覚フィードバック、聴覚フィードバック、または触覚フィードバックなど、任意の形の感覚フィードバックとすることができ、ユーザからの入力は、音響、音声、または触覚入力を含む任意の形で受信することができる。さらに、コンピュータは、ユーザによって使用されるデバイスへドキュメントを送信し、デバイスからドキュメントを受信することによって、たとえば、ウェブブラウザから受信された要求に応答して、ユーザのデバイス上のウェブブラウザへウェブページを送信することによってユーザと対話することができる。また、コンピュータは、パーソナルデバイス、たとえば、メッセージングアプリケーションを稼動しているスマートフォンへテキストメッセージまたは他の形のメッセージを送信し、ユーザから引き換えに応答メッセージを受信することによって、ユーザと対話することができる。
【0173】
機械学習モデルを実装するためのデータ処理装置は、たとえば、機械学習トレーニングまたは生成の共通および計算集中部分、すなわち、推論、作業負荷を処理するための特殊目的ハードウェアアクセラレータユニットも含むことができる。
【0174】
機械学習モデルは、機械学習フレームワーク、たとえば、TensorFlowフレームワークを使用して実装し、展開することができる。
【0175】
本明細書に記載する主題の実施形態は、バックエンド構成要素を、たとえば、データサーバとして含む、もしくはミドルウェア構成要素、たとえば、アプリケーションサーバを含む、もしくはフロントエンド構成要素、たとえば、本明細書に記載する主題の実装形態とユーザがそれらを通して対話することができる、グラフィカルユーザインターフェース、ウェブブラウザ、またはアプリを有するクライアントコンピュータ、または1つもしくは複数のそのようなバックエンド、ミドルウェア、もしくはフロントエンド構成要素の任意の組合せを含むコンピューティングシステムで実装することができる。システムの構成要素は、任意の形または媒体のデジタルデータ通信(たとえば、通信ネットワーク)によって相互接続することができる。通信ネットワークの例には、ローカルエリアネットワーク(LAN)およびワイドエリアネットワーク(WAN)、たとえば、インターネットが含まれる。
【0176】
コンピューティングシステムは、クライアントおよびサーバを含み得る。クライアントとサーバは概して、互いから離れており、通常、通信ネットワークを通して対話する。クライアントとサーバの関係は、それぞれのコンピュータ上で稼動するとともに、互いとのクライアントサーバ関係を有するコンピュータプログラムにより生じる。いくつかの実施形態では、サーバは、データ、たとえば、HTMLページを、たとえば、クライアントとして機能するデバイスと対話するユーザにデータを表示し、ユーザからユーザ入力を受信する目的のためにユーザデバイスへ送信する。ユーザデバイスにおいて生成されたデータ、たとえば、ユーザ対話の結果が、デバイスからサーバにおいて受信され得る。
【0177】
本明細書は、多くの具体的な実装形態詳細を含むが、これらは、任意の発明の範囲において、または特許請求され得るものの範囲において、限定と解釈されるべきではなく、特定の発明の特定の実施形態に特有であり得る特徴の記述として解釈されるべきである。また、別個の実施形態の文脈において本明細書に記載したいくつかの特徴は、単一の実施形態において組み合わせて実装することができる。逆に、単一の実施形態の文脈において記載される様々な特徴はまた、複数の実施形態において別々に、または任意の適切な部分組合せで実装することができる。さらに、特徴は、特定の組合せで機能するものとして上で記載され、初めにそのように請求される場合さえあるが、請求される組合せからの1つまたは複数の特徴は、場合によってはその組合せから削除することができ、請求される組合せは、部分組合せ、または部分組合せの変形形態を対象とすることができる。
【0178】
同様に、動作は、特定の順序で図面に示され、請求項に列挙されているが、これは、そのような動作が図示された特定の順序で、もしくは順次に実施されることを必要とするか、または、所望の結果を達成するためにすべての示された動作が実施されることを必要とするものと理解されるべきではない。特定の状況では、マルチタスキングおよび並列処理が有利であり得る。その上、上述した実施形態における様々なシステムモジュールおよび構成要素の分離は、すべての実施形態においてそのような分離を必要とするものとして理解されるべきではなく、記載したプログラム構成要素およびシステムは概して、単一のソフトウェア製品に一緒に統合されるか、または複数のソフトウェア製品にパッケージングされることが可能であることを理解されたい。
【0179】
本主題の特定の実施形態について記載した。他の実施形態は、以下の特許請求の範囲内にある。たとえば、請求項に列挙されるアクションは、異なる順序で実施されても、依然として望ましい結果を達成することができる。一例として、添付の図に示されるプロセスは、望ましい結果を達成するために、図示される特定の順序、または順番を必ずしも必要としない。場合によっては、マルチタスキングおよび並列処理が有利な場合がある。
【符号の説明】
【0180】
100 トレーニングシステム、システム
102 エージェント、強化学習エージェント
120 集団ベーストレーニング(PBT)エンジン
124 タスク生成エンジン
130 トレーニングデータリポジトリ
140 集団リポジトリ
142 候補エージェントニューラルネットワーク
400 強化学習エージェント制御システム、強化学習システム、システム
408 エージェント
420 エージェントニューラルネットワーク、ニューラルネットワーク
430 状態エンコーダニューラルネットワーク、ニューラルネットワーク
440 埋込みニューラルネットワーク、ニューラルネットワーク
445 注意ニューラルネットワーク、ニューラルネットワーク
450 価値ニューラルネットワーク、価値ニューラルネットワーク「V」ヘッド、ニューラルネットワーク
460 方策ニューラルネットワーク、方策ニューラルネットワーク「π」ヘッド
【手続補正書】
【提出日】2024-03-13
【手続補正1】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
複数のタスクを実施するようにエージェントを制御する際に使用するために、エージェントニューラルネットワークをトレーニングするためのコンピュータ実装方法であって、前記方法は、
1つまたは複数の候補エージェントニューラルネットワークの集団を指定する集団データを維持するステップであって、前記集団データは、前記集団の中の各候補エージェントニューラルネットワークについて、(i)前記候補エージェントニューラルネットワークのパラメータのそれぞれのパラメータ値、および(ii)前記候補エージェントニューラルネットワークをトレーニングするためのそれぞれのハイパーパラメータ値を指定する、ステップと、
前記集団データの中の前記候補エージェントニューラルネットワークの前記パラメータの前記パラメータ値を更新するように、1つまたは複数のタスクのそれぞれのセットで、各候補エージェントニューラルネットワークをトレーニングするステップとを含み、前記トレーニングするステップは、各候補エージェントニューラルネットワークについて、
前記候補エージェントニューラルネットワークをトレーニングするための候補タスクを識別するデータを取得するステップと、
前記候補タスクのための制御方策を指定するデータを取得するステップと、
(i)前記候補タスクにおける前記候補エージェントニューラルネットワークのパフォーマンス、(ii)前記候補タスクにおける、前記候補タスクのための前記制御方策のパフォーマンス、および(iii)前記候補エージェントニューラルネットワーク用の前記ハイパーパラメータ値のうちの1つまたは複数に基づいて、前記候補エージェントニューラルネットワークを前記候補タスクでトレーニングするかどうかを判断するステップと、
前記候補エージェントニューラルネットワークを前記候補タスクでトレーニングするとの判断に応答して、前記エージェントニューラルネットワークの前記パラメータの前記パラメータ値を更新するように、前記候補タスクで前記候補エージェントニューラルネットワークをトレーニングするステップとを含む、方法。
【請求項2】
前記候補タスクで前記候補エージェントニューラルネットワークをトレーニングするステップは、強化学習を通して、前記候補タスクで前記候補エージェントニューラルネットワークをトレーニングするステップを含む、請求項1に記載の方法。
【請求項3】
前記候補タスクのための前記制御方策は、前記候補タスクを実施するように前記エージェントを制御するとき、アクションのセットから一様にランダムに選択されたアクションを行う一様ランダムアクション方策である、
請求項1に記載の方法。
【請求項4】
前記候補タスクのための前記制御方策は、前記候補タスクを実施するように前記エージェントを制御するとき、前記候補タスクのみでトレーニングされた単一候補エージェントニューラルネットワークを使用する単一タスク方策である、
請求項1に記載の方法。
【請求項5】
前記候補タスクのための前記制御方策は、前記候補タスクを実施するように前記エージェントを制御するとき、前記候補エージェントニューラルネットワークのインスタンスを使用するが、前記候補エージェントニューラルネットワークの前記トレーニング中の早期の時点からの前記候補エージェントニューラルネットワークの前記パラメータについての履歴パラメータ値を用いる方策である、
請求項1に記載の方法。
【請求項6】
(i)前記候補タスクにおける前記候補エージェントニューラルネットワークのパフォーマンス、(ii)前記候補タスクにおける、前記候補タスクのための前記制御方策のパフォーマンス、および(iii)前記候補エージェントニューラルネットワーク用の前記ハイパーパラメータ値のうちの1つまたは複数に基づいて、前記候補エージェントニューラルネットワークを前記候補タスクでトレーニングするかどうかを判断するステップは、
前記候補タスクの複数のタスクエピソードの各々について、前記候補エージェントニューラルネットワークを使用して、前記候補タスクの前記タスクエピソードを実施するように前記エージェントを制御することによって受信されたそれぞれの候補エージェントリターンを判断し、前記制御方策を使用して、前記候補タスクの前記タスクエピソードを実施するように前記エージェントを制御することによって受信されたそれぞれの制御方策リターンを判断するステップを含む、
請求項1に記載の方法。
【請求項7】
(i)前記候補タスクにおける前記候補エージェントニューラルネットワークのパフォーマンス、(ii)前記候補タスクにおける、前記候補タスクのための前記制御方策のパフォーマンス、および(iii)前記候補エージェントニューラルネットワーク用の前記ハイパーパラメータ値のうちの1つまたは複数に基づいて、前記候補エージェントニューラルネットワークを前記候補タスクでトレーニングするかどうかを判断するステップは、
前記それぞれの候補エージェントリターンによって測定される、前記候補エージェントニューラルネットワークのパフォーマンスが、前記候補エージェントニューラルネットワーク用の前記ハイパーパラメータ値によって定義される、パフォーマンスの閾値レベルを超えないときにのみ、前記候補エージェントニューラルネットワークを前記候補タスクでトレーニングすると判断するステップを含む、請求項6に記載の方法。
【請求項8】
前記それぞれの候補エージェントリターンによって測定される、前記候補エージェントニューラルネットワークのパフォーマンスが、前記候補エージェントニューラルネットワーク用の前記ハイパーパラメータ値によって定義される、パフォーマンスの閾値レベルを超えないときにのみ、前記候補エージェントニューラルネットワークを前記候補タスクでトレーニングすると判断するステップは、
前記それぞれの候補エージェントリターンが第1の指定値を超えるタスクエピソードの割合が第2の指定値未満であるときにのみ、前記候補エージェントニューラルネットワークを前記候補タスクでトレーニングすると判断するステップを含み、
(i)前記第1の指定値、(ii)前記第2の指定値、または(iii)両方が、前記候補エージェントニューラルネットワーク用のハイパーパラメータ値である、請求項7に記載の方法。
【請求項9】
(i)前記候補タスクにおける前記候補エージェントニューラルネットワークのパフォーマンス、(ii)前記候補タスクにおける、前記候補タスクのための前記制御方策のパフォーマンス、および(iii)前記候補エージェントニューラルネットワーク用の前記ハイパーパラメータ値のうちの1つまたは複数に基づいて、前記候補エージェントニューラルネットワークを前記候補タスクでトレーニングするかどうかを判断するステップは、
前記それぞれの候補エージェントリターンによって測定される、前記候補エージェントニューラルネットワークのパフォーマンスが、前記それぞれの制御方策リターンによって測定される前記制御方策のパフォーマンスを、前記候補エージェントニューラルネットワーク用の前記ハイパーパラメータ値によって定義される、パフォーマンスの閾値レベル超だけ超えるときにのみ、前記候補エージェントニューラルネットワークを前記候補タスクでトレーニングすると判断するステップを含む、
請求項6に記載の方法。
【請求項10】
前記それぞれの候補エージェントリターンによって測定される、前記候補エージェントニューラルネットワークのパフォーマンスが、前記それぞれの制御方策リターンによって測定される前記制御方策のパフォーマンスを、前記候補エージェントニューラルネットワーク用の前記ハイパーパラメータ値によって定義される、パフォーマンスの閾値レベル超だけ超えるときにのみ、前記候補エージェントニューラルネットワークを前記候補タスクでトレーニングすると判断するステップは、
前記それぞれの候補エージェントリターンが、前記それぞれの制御方策リターンを、少なくとも第3の指定値だけ超えるタスクエピソードの割合が第4の指定値よりも大きいときにのみ、前記候補エージェントニューラルネットワークを前記候補タスクでトレーニングすると判断するステップを含み、
(i)前記第3の指定値、(ii)前記第4の指定値、または(iii)両方が、前記候補エージェントニューラルネットワーク用のハイパーパラメータ値である、請求項9に記載の方法。
【請求項11】
(i)前記候補タスクにおける前記候補エージェントニューラルネットワークのパフォーマンス、(ii)前記候補タスクにおける、前記候補タスクのための前記制御方策のパフォーマンス、および(iii)前記候補エージェントニューラルネットワーク用の前記ハイパーパラメータ値のうちの1つまたは複数に基づいて、前記候補エージェントニューラルネットワークを前記候補タスクでトレーニングするかどうかを判断するステップは、
前記それぞれの制御方策リターンによって測定される前記制御方策のパフォーマンスが、前記候補エージェントニューラルネットワーク用の前記ハイパーパラメータ値によって定義される、パフォーマンスの閾値レベルよりも低いときにのみ、前記候補エージェントニューラルネットワークを前記候補タスクでトレーニングすると判断するステップを含む、
請求項6に記載の方法。
【請求項12】
前記それぞれの制御方策リターンによって測定される前記制御方策のパフォーマンスが、前記候補エージェントニューラルネットワーク用の前記ハイパーパラメータ値によって定義される、パフォーマンスの閾値レベルよりも低いときにのみ、前記候補エージェントニューラルネットワークを前記候補タスクでトレーニングすると判断するステップは、
前記それぞれの制御方策リターンの平均が第5の指定値未満であるときにのみ、前記候補エージェントニューラルネットワークを前記候補タスクでトレーニングすると判断するステップを含み、
前記第5の指定値は前記候補エージェントニューラルネットワーク用のハイパーパラメータ値である、請求項11に記載の方法。
【請求項13】
1つまたは複数のタスクのそれぞれのセットで、各候補エージェントニューラルネットワークをトレーニングした後、
前記集団の中の前記候補エージェントニューラルネットワークのうちの1つまたは複数用の前記ハイパーパラメータ値を調節するステップをさらに含む、
請求項1に記載の方法。
【請求項14】
1つまたは複数の候補エージェントニューラルネットワークの前記集団は、複数のニューラルネットワークを含み、前記集団の中の前記候補エージェントニューラルネットワークのうちの1つまたは複数用の前記ハイパーパラメータ値を調節するステップは、
複数の検証タスクにわたって、前記複数の候補エージェントニューラルネットワークの各々のそれぞれのパフォーマンスを測定する、前記複数の候補エージェントニューラルネットワークの各々のためのそれぞれの適応測度を計算するステップと、
前記それぞれの適応測度に集団ベーストレーニング技法を適用して、前記候補エージェントニューラルネットワークのうちの1つまたは複数用の前記ハイパーパラメータ値を調節するステップとを含む、請求項13に記載の方法。
【請求項15】
前記集団ベーストレーニング技法はまた、前記候補エージェントニューラルネットワークのうちの1つまたは複数の各々について、前記候補エージェントニューラルネットワーク用の前記それぞれのパラメータ値を、前記集団データの中の別の候補エージェントニューラルネットワーク用の前記それぞれのパラメータ値と等しくなるように設定する、請求項14に記載の方法。
【請求項16】
前記それぞれの適応測度を計算するステップは、前記複数の検証タスクの各々における、前記候補エージェントニューラルネットワーク用のそれぞれの正規化パーセンタイルメトリックを判断するステップを含む、
請求項14に記載の方法。
【請求項17】
前記集団ベーストレーニング技法を適用するステップは、
第1の候補エージェントニューラルネットワークパレートのためのそれぞれの適応測度が、第2の候補エージェントニューラルネットワークのためのそれぞれの適応測度を支配すると判断するステップと、
それに応答して、前記第2の候補エージェントニューラルネットワーク用の前記ハイパーパラメータ値を
、第1の候補エージェントニューラルネットワーク用の前記ハイパーパラメータ値の変異バージョンと等しくなるように調節するステップとを含む、
請求項14に記載の方法。
【請求項18】
1つまたは複数のタスクのそれぞれのセットでの、前記候補エージェントニューラルネットワークの各々の前記トレーニングは、前記エージェントニューラルネットワークの前記トレーニング中のトレーニング世代のシーケンスの現在のトレーニング世代中に行われ、前記エージェントニューラルネットワークの前記パラメータの前記パラメータ値を更新するように、前記候補タスクで前記候補エージェントニューラルネットワークをトレーニングするステップは、
前記シーケンス中の前記現在のトレーニング世代に直接先行する先行トレーニング世代の最後において、前記集団の中の最良パフォーマンス候補エージェントニューラルネットワークから蒸留される間、予想リターンを最適化するように、前記候補タスクで前記候補エージェントニューラルネットワークをトレーニングするステップを含む、
請求項1に記載の方法。
【請求項19】
前記先行トレーニング世代の間、前記集団の中の前記候補エージェントニューラルネットワークは、自己報酬プレイ目的でトレーニングされている、
請求項18に記載の方法。
【請求項20】
1つまたは複数のコンピュータによって実施され、環境と対話するエージェントを制御して、前記エージェントに、前記環境においてタスクを実施させるための方法であって、
前記環境の現在の状態を特徴づける観測記録を受信するステップと、
前記環境の中で前記タスクを実施するために、満足されるべきゴールを表すゴールデータを受信するステップであって、前記ゴールは、述語のそれぞれのセットに対するオプションのセットとして表される、ステップと、
エージェントニューラルネットワークを使用して、前記観測記録および前記ゴールデータを処理して、アクション選択出力を生成するステップであって、
状態エンコーダニューラルネットワークを使用して、前記観測記録を処理して、前記環境の前記現在の状態を表す現在の隠れ状態を生成するステップと、
前記ゴールのゴール埋込み、および前記オプションの各々のためのそれぞれのオプション埋込みを前記ゴールデータから生成するステップと、
注意ニューラルネットワークを使用して、前記現在の隠れ状態および前記ゴール埋込みを含む入力を処理して、ゴール注意隠れ状態を生成するステップと、
前記オプションの各々について、前記注意ニューラルネットワークを使用して、前記現在の隠れ状態、および前記オプション用の前記それぞれのオプション埋込みを含む入力を処理して、前記オプションのためのそれぞれのオプション注意隠れ状態を生成するステップと、
価値ニューラルネットワークヘッドを使用して、前記ゴール注意隠れ状態を処理して、前記エージェントが、前記現在の状態から始めて、前記ゴールを満足させることを試みた場合に達成されるであろう推定リターンを表す、前記ゴールについてのゴール値推定を生成するステップと、
前記オプションの各々について、前記価値ニューラルネットワークヘッドを使用して、前記オプションについての前記それぞれのオプション注意隠れ状態を処理して、前記エージェントが、前記現在の状態から始めて、前記オプションを満足させることを試みた場合に達成されるであろう推定リターンを表す、前記オプションについてのそれぞれのオプション値推定を生成するステップと、
前記ゴール値推定および前記オプションについての前記それぞれのオプション値推定から、前記ゴールについての、および前記オプションの各々についてのそれぞれの重みを生成するステップと、
前記それぞれの重みに従って前記ゴール注意隠れ状態と前記それぞれのオプション注意隠れ状態を組み合わせて、組合せ隠れ状態を生成するステップと、
方策ニューラルネットワークヘッドを使用して前記組合せ隠れ状態を処理して、前記アクション選択出力を生成するステップとを含む、ステップと、
前記アクション選択出力を使用して、前記エージェントによって実施されるべきアクションを選択するステップと、
前記エージェントに、前記選択されたアクションを実施させるステップとを含む方法。
【請求項21】
前記状態エンコーダニューラルネットワークは再帰ニューラルネットワークである、請求項20に記載の方法。
【請求項22】
エージェントニューラルネットワークを使用して、前記観測記録および前記ゴールデータを処理して、アクション選択出力を生成するステップは、
述語予測子ニューラルネットワークを使用して、前記ゴールデータおよび前記現在の隠れ状態を処理して、述語予測を生成するステップであって、前記現在の隠れ状態および前記ゴール埋込みを含む前記入力は、前記述語予測をさらに含み、各オプションについて、前記現在の隠れ状態および前記それぞれのオプション埋込みを含む前記入力は、前記述語予測をさらに含む、ステップをさらに含む、
請求項20に記載の方法。
【請求項23】
前記ゴール値推定および前記オプションについての前記それぞれのオプション値推定から、前記ゴールについての、および前記オプションの各々についてのそれぞれの重みを生成するステップは、前記ゴール値推定および前記オプションについての前記それぞれのオプション値推定に対してソフトマックスを適用するステップを含む、
請求項20に記載の方法。
【請求項24】
前記ゴール値推定および前記オプションについての前記それぞれのオプション値推定から、前記ゴールについての、および前記オプションの各々についてのそれぞれの重みを生成するステップは、前記ゴール値推定および前記オプションについての前記それぞれのオプション値推定のうちの最も高い値推定に1の重みを、ならびにゴール値推定および前記オプションについての前記それぞれのオプション値推定の、すべての他の値推定にゼロの重みを割り当てるステップを含む、
請求項20に記載の方法。
【請求項25】
前記アクション選択出力は、前記エージェントが実施することができるアクションのセットにわたる確率分布を定義する、
請求項20に記載の方法。
【請求項26】
前記アクション選択出力は、前記エージェントが実施することができるアクションのセットの中の各アクションについてのそれぞれのQ値を含む、
請求項20に記載の方法。
【請求項27】
前記アクション選択出力は、連続アクション空間からのアクションである、
請求項20に記載の方法。
【請求項28】
1つまたは複数のコンピュータと、
前記1つまたは複数のコンピュータに通信可能に結合された1つまたは複数の記憶デバイスとを備えるシステムであって、前記1つまたは複数の記憶デバイスは、前記1つまたは複数のコンピュータによって実行されると、前記1つまたは複数のコンピュータに、請求項1から27のいずれか一項に記載のそれぞれの方法の動作を実施させる命令を記憶する、システム。
【請求項29】
1つまたは複数のコンピュータによって実行されると、前記1つまたは複数のコンピュータに、請求項1から27のいずれか一項に記載のそれぞれの方法の動作を実施させる命令を記憶する1つまたは複数の非一時的コンピュータ記憶媒体。
【請求項30】
前記エージェントニューラルネットワークは、現実世界環境の中で前記エージェントを制御する際に使用され、前記現実世界環境の状態に関する観測記録を処理して、前記現実世界環境の中で前記エージェントによって実施されるべきアクションに関するアクション選択出力を生成するように構成される、請求項1から
27のいずれか一項に記載の方
法。
【請求項31】
前記エージェントは機械エージェントであり、前記エージェントニューラルネットワークは、前記タスクまたは前記タスクのうちの1つを実施するように、前記現実世界環境の中で前記機械エージェントを制御する際に使用される、請求項30に記載の方
法。
【請求項32】
前記エージェントニューラルネットワークは、現実世界環境の中で前記エージェントを制御する際に使用され、前記現実世界環境の状態に関する観測記録を処理して、前記現実世界環境の中で前記エージェントによって実施されるべきアクションに関するアクション選択出力を生成するように構成される、請求項28に記載のシステム。
【請求項33】
前記エージェントは機械エージェントであり、前記エージェントニューラルネットワークは、前記タスクまたは前記タスクのうちの1つを実施するように、前記現実世界環境の中で前記機械エージェントを制御する際に使用される、請求項32に記載のシステム。
【請求項34】
前記エージェントニューラルネットワークは、現実世界環境の中で前記エージェントを制御する際に使用され、前記現実世界環境の状態に関する観測記録を処理して、前記現実世界環境の中で前記エージェントによって実施されるべきアクションに関するアクション選択出力を生成するように構成される、請求項29に記載の1つまたは複数の非一時的コンピュータ記憶媒体。
【請求項35】
前記エージェントは機械エージェントであり、前記エージェントニューラルネットワークは、前記タスクまたは前記タスクのうちの1つを実施するように、前記現実世界環境の中で前記機械エージェントを制御する際に使用される、請求項34に記載の1つまたは複数の非一時的コンピュータ記憶媒体。
【国際調査報告】