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

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

▶ ソニー株式会社の特許一覧 ▶ ソニー コーポレイション オブ アメリカの特許一覧

特表2025-505391カリキュラム及びスキルを用いて人工知能エージェントを訓練するための方法
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2025-02-26
(54)【発明の名称】カリキュラム及びスキルを用いて人工知能エージェントを訓練するための方法
(51)【国際特許分類】
   G06N 3/092 20230101AFI20250218BHJP
   A63F 13/803 20140101ALI20250218BHJP
【FI】
G06N3/092
A63F13/803
【審査請求】有
【予備審査請求】未請求
(21)【出願番号】P 2024543925
(86)(22)【出願日】2022-07-13
(85)【翻訳文提出日】2024-07-24
(86)【国際出願番号】 US2022073687
(87)【国際公開番号】W WO2023146682
(87)【国際公開日】2023-08-03
(31)【優先権主張番号】63/267,136
(32)【優先日】2022-01-25
(33)【優先権主張国・地域又は機関】US
(31)【優先権主張番号】17/650,295
(32)【優先日】2022-02-08
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.BLUETOOTH
(71)【出願人】
【識別番号】000002185
【氏名又は名称】ソニーグループ株式会社
(71)【出願人】
【識別番号】504257564
【氏名又は名称】ソニー コーポレイション オブ アメリカ
(74)【代理人】
【識別番号】100092093
【弁理士】
【氏名又は名称】辻居 幸一
(74)【代理人】
【識別番号】100109070
【弁理士】
【氏名又は名称】須田 洋之
(74)【代理人】
【識別番号】100067013
【弁理士】
【氏名又は名称】大塚 文昭
(74)【代理人】
【識別番号】100141553
【弁理士】
【氏名又は名称】鈴木 信彦
(72)【発明者】
【氏名】ウォルシュ トーマス ジェイ
(72)【発明者】
【氏名】コンペラ ヴァルン
(72)【発明者】
【氏名】バレット サミュエル
(72)【発明者】
【氏名】トミュア マイケル ディー
(72)【発明者】
【氏名】マカパイン パトリック
(72)【発明者】
【氏名】ワーマン ピーター
(57)【要約】
エージェントを訓練するための方法は、一般的なレースと非常に特殊な戦術的レースのシナリオを混合するなど、より大きい領域で役立つ特定のスキルを教えるために設計されるシナリオの混合を使用する。方法の態様は、(1)トラック上に1又は2以上の車を分散させてエージェントがタイムトライアルに非常に優れているように訓練すること、(2)トラックの周囲で異なる構成でスタートする可変数の対戦相手を含む様々なレースシナリオでエージェントを実行すること、(3)ゲームで提供されるエージェント、本発明の態様に従って訓練されるエージェント又は特定の走行ラインをたどるように制御されるエージェントを使用して対戦相手を変えること、(4)特定の成功基準を含む様々なレース状況で対戦相手を含む特定の短いシナリオを設定すること、(5)様々な評価シナリオでエージェントがどのようにパフォーマンスするかに基づいて動的カリキュラムを有することのうちの1又は2以上を含むことができる。
【選択図】図2
【特許請求の範囲】
【請求項1】
混合シナリオトレーニングで強化学習エージェントを訓練する方法であって、
1又は2以上の所定のシナリオ特性を有する環境にロールアウトワーカーを提供するステップと、
1又は2以上の特定のスキルに焦点を当てながら、前記環境内で前記ロールアウトワーカーを動作させるステップと、
前記1又は2以上の特定のスキルを正常に達成した場合に報酬を提供するステップと、
前記ロールアウトワーカーが前記報酬を最適化するための方策を作成するステップと、
を含むことを特徴とする方法。
【請求項2】
前記ロールアウトワーカーから経験応答バッファにデータをストリーミングするステップを更に含み、前記経験応答バッファ内の前記データは、1又は2以上のテーブルに分割されることを特徴とする、請求項1に記載の方法。
【請求項3】
テーブル比率に基づいて前記経験応答バッファ内のデータを再重み付けして、到達困難な状況からのデータが無視されないようにするステップを更に含むことを特徴とする、請求項2に記載の方法。
【請求項4】
前記シナリオ特性は、起動条件、対戦相手分布オプション、レプリケーション数、停止条件、経験テーブルマッピング、及びシナリオ重み付け、のうちの1又は2以上を含むことを特徴とする、請求項1に記載の方法。
【請求項5】
所定のシナリオ特性セットを有する追加の環境で追加のロールアウトワーカーを起動するステップを更に含むことを特徴とする、請求項1に記載の方法。
【請求項6】
前記所定のシナリオ特性セットは、ランダムに選択されることを特徴とする、請求項5に記載の方法。
【請求項7】
前記所定のシナリオ特性セットは、シナリオ重み付けに基づいて選択されることを特徴とする、請求項5に記載の方法。
【請求項8】
前記所定のシナリオ特性セットは、以前の環境の以前のロールアウトワーカーから発生したイベントから自動的に作成されることを特徴とする、請求項5に記載の方法。
【請求項9】
前記環境内で行儀のよい(well-behaved)対戦相手分布のシナリオ特性を提供するステップを更に含むことを特徴とする、請求項1に記載の方法。
【請求項10】
前記シナリオ特性は、前記環境内で動作すべき並列ロールアウトワーカーの数を定義するレプリケーション数を含むことを特徴とする、請求項1に記載の方法。
【請求項11】
前記シナリオ特性は停止条件を含むことを特徴とする、請求項1に記載の方法。
【請求項12】
前記停止条件は、特定のスキル達成に焦点を当てた環境を生成するように決定されることを特徴とする、請求項11に記載の方法。
【請求項13】
前記停止条件はオープンエンドであり、前記ロールアウトワーカーが一般的な技術を達成することに焦点を当てることを特徴とする、請求項11に記載の方法。
【請求項14】
混合シナリオトレーニングを使用する深層強化学習アーキテクチャであって、
ロールアウトワーカーのセットと、
トレーナと、
シナリオ特性のセットと、
を含み、
前記トレーナは、環境内でのロールアウトワーカーの行動を決定するために使用されるモデル及び方策を改良し、
前記ロールアウトワーカーは、前記シナリオ特性から取り出される所定の起動条件に基づいて、前記環境内で動作し、
前記所定の起動条件を含む前記環境内で動作する前記ロールアウトワーカーからのデータが収集され、前記トレーナの経験再生バッファに格納される、
ことを特徴とする深層強化学習アーキテクチャ。
【請求項15】
前記トレーナは、様々な起動条件を含む前記環境における前記ロールアウトワーカーのセットの動作からのデータでポピュレート(populated)された前記経験再生バッファからデータのバッチをサンプリングすることによって、方策の改良を実行することを特徴とする、請求項14に記載の深層強化学習アーキテクチャ。
【請求項16】
前記経験再生バッファは、前記データを分割するためのテーブルを含むことを特徴とする、請求項15に記載の深層強化学習アーキテクチャ。
【請求項17】
前記データのバッチは、前記テーブルのうちの複数のテーブルからのデータを含み、各テーブルには、所定のテーブル重みが提供されることを特徴とする、請求項16に記載の深層強化学習アーキテクチャ。
【請求項18】
前記トレーナは、前記ロールアウトワーカーのセットのうちアイドル状態のロールアウトワーカーがどのシナリオ特性を使用すべきかを決定するためのタスクマネージャモジュールを含むことを特徴とする、請求項14に記載の深層強化学習アーキテクチャ。
【請求項19】
前記経験再生バッファ内の前記データは、各ロールアウトワーカーの状態、行動、及び報酬を含むことを特徴とする、請求項14に記載の深層強化学習アーキテクチャ。
【請求項20】
レーシングビデオゲームで対話するために深層強化学習を用いてエージェントを訓練する方法であって、
前記エージェントによる観察に基づいて、かつ各可能な行動に対する将来の報酬を推定する価値関数に基づいて、行動を選択する方策を学習するステップと、
前記エージェントのコアアクション(core actions)を、変化する速度の次元(changing velocity dimension)及びステアリングの次元(steering dimension)のいずれかにマッピングするステップであって、前記変化する速度の次元及び前記ステアリングの次元は、両方とも連続値の次元(continuous-valued dimensions)である、ステップと、
所定のシナリオ特性を含む環境で前記エージェントを訓練するステップであって、前記所定のシナリオ特性は、起動条件、対戦相手分布オプション、レプリケーション数、停止条件、経験テーブルマッピング、及びシナリオ重み付けを含む、ステップと、
を含むことを特徴とする方法。
【発明の詳細な説明】
【技術分野】
【0001】
[0001] 本発明の実施形態は、一般に、人工知能エージェントの訓練に関する。より具体的には、本発明は、一般的なゲームプレイ及びエージェントを特定のシナリオに配置することの両方でゲームエージェントを訓練するための方法に関する。更に具体的には、本発明の態様は、レーシングゲームエージェントなどの構成可能な環境での強化学習のために混合シナリオトレーニングを使用することができる。
【背景技術】
【0002】
[0002] 以下の背景情報は、先行技術の特定の態様(例えば、限定ではなく、手法、事実又は通念)の例を提示することができ、これらの例は先行技術の更なる態様を読者に更に伝えるのに役立つと期待されるが、本発明又はそのいずれかの実施形態をこれらの中で言及又は暗示される、或いはそれについて推測されるいずれかの事項に限定するものとして解釈すべきではない。
【0003】
[0003] 図1を参照すると、強化学習(RL)エージェント100は、環境102との対話を通じて訓練(「学習」とも呼ばれる)される人工知能の一形態である。エージェントの訓練の時間ステップ毎に、エージェントには、その現在の状態の観察104が提供される。次に、エージェント100は行動106を実行し、これにより、エージェントを新しい状態に遷移させて報酬条件を生成する。様々な既存のRLアルゴリズム及びモデル108は、報酬条件の何らかの関数(期待される合計など)を最大化する最適な方策110(状態から行動へのマッピング)を最終的に見つけるためのルーチンを提供する。
【0004】
[0004] 単純な領域では、RLエージェントは、自身の行動に基づいて全ての可能な状態を経験できることが期待される。しかしながら、運転の学習又は交通の中での自律走行車のレースなどの複雑な問題では、2台の車の間を運転するなどの有益な学習シナリオからのデータを必要とする学習エージェントは、多くの課題に直面することになる。例えば、環境が十分に大きい場合、学習エージェントによるランダム探索又はターゲット探索では、探索する領域が多すぎて、重要なシナリオを見逃す可能性が高くなる。
【0005】
[0005] 更に、強化学習エージェントは、計画においてほぼ常に有限の地平線(又は有効な有限の地平線)を有するので、訪問したいシナリオを特定したとしても、そこに到達するための計画を実行することが現実的でない場合がある。エージェントが2台の車の間のデータを必要としているが、車が遠く離れている場合、エージェントは車に到達するための信頼できる方法を有していない場合がある。
【0006】
[0006] また、他のエージェントが環境を共有する時に、それらは、学習エージェントが必要とする経験につながる行動を実行しない場合がある。例えば、自動運転システムがレーシングシミュレータである場合、2台の車は、学習エージェントが間に入れるように減速しない。学習エージェントが2台の車の間を運転するようなシナリオをなんとか経験できたとしても、そのシナリオに到達するために必要な経験の量は、シナリオでの経験よりもはるかに大きい可能性があり、訓練への影響は最小限に抑えられる。
【0007】
[0007] 更に、複雑な環境では、どのようなシナリオが学習に役立つかについて、人間の経験から得た強力な事前知識が伴うことが多い。例えば、運転教官は、エージェントの学習に役立つ多くのシナリオを規定できる可能性がある。しかし、基本的な強化学習の定式化では、これらの既知の学習シナリオのエンコードは利用できない。
【発明の概要】
【発明が解決しようとする課題】
【0008】
[0008] エージェントを膨大な数のステップにわたって単純に実行することなく、このような複雑な領域で効果的に学習するには、これらの問題を解決する必要がある。
【0009】
エージェントが成功するために複数のスキルを必要とする複雑な環境の例として、シミュレーション自動車レースが挙げられる。レースカーを巧みにコントロールするために、ドライバーは車両のダイナミクス及びレースを行うトラックの特性(idiosyncrasies)について詳細に理解する必要がある。ドライバーは、この基礎の上に、対戦相手を追い越したり、対戦相手を防御したりするために必要な戦術的スキルを身につけ、ほとんどミスを許さずに高速で正確な操作を実行する。
【課題を解決するための手段】
【0010】
[0009] 本発明の実施形態は、混合シナリオトレーニングで強化学習エージェントを訓練する方法であって、1又は2以上の所定のシナリオ特性を有する環境にロールアウトワーカーを提供するステップと、1又は2以上の特定のスキルに焦点を当てながら、前記環境内で前記ロールアウトワーカーを動作させるステップと、前記1又は2以上の特定のスキルを正常に達成した場合に報酬を提供するステップと、前記ロールアウトワーカーが前記報酬を最適化するための方策を作成するステップと、を含む方法を提供する。
【0011】
[0010] 本発明の実施形態は、混合シナリオトレーニングを使用する深層強化学習アーキテクチャであって、ロールアウトワーカーのセットと、トレーナと、シナリオ特性のセットと、を含み、前記トレーナは、環境内でのロールアウトワーカーの行動を決定するために使用されるモデル及び方策を改良し、前記ロールアウトワーカーは、前記シナリオ特性から取り出される所定の起動条件に基づいて、前記環境内で動作し、前記所定の起動条件を含む前記環境内で動作する前記ロールアウトワーカーからのデータが収集され、前記トレーナの経験再生バッファに格納される、深層強化学習アーキテクチャを更に提供する。
【0012】
[0011] 本発明の実施形態は、また、レーシングビデオゲームで対話するために深層強化学習を用いてエージェントを訓練する方法であって、前記エージェントによる観察に基づいて、かつ各可能な行動に対する将来の報酬を推定する価値関数に基づいて、行動を選択する方策を学習するステップと、前記エージェントのコアアクション(core actions)を、変化する速度の次元(changing velocity dimension)及びステアリングの次元(steering dimension)のいずれかにマッピングするステップであって、前記変化する速度の次元及び前記ステアリングの次元は、両方とも連続値の次元(continuous-valued dimensions)である、ステップと、所定のシナリオ特性を含む環境で前記エージェントを訓練するステップであって、前記所定のシナリオ特性は、起動条件、対戦相手分布オプション、レプリケーション数、停止条件、経験テーブルマッピング、及びシナリオ重み付けを含む、ステップと、を含む方法を提供する。
【0013】
[0012] いくつかの実施形態では、この方法は、エージェントに、エージェント自身及び各対戦相手についての位置、速度、及び加速度の状態情報を提供するステップと、エージェントに、左端と右端、及び中心線を定義するポイントのリストとして、トラックのマップを提供するステップと、を更に含む。
【0014】
[0013] いくつかの実施形態では、この方法は、トラックの周囲で異なる構成でスタートする可変数の対戦相手を含むレースシナリオでエージェントを訓練するステップと、ゲームで提供される人工エージェント、様々な報酬関数で訓練される他のエージェント、及び特定の走行ラインをたどるコントローラによって制御されるエージェントから選択される対戦相手に対してエージェントを訓練するステップと、を更に含む。
【0015】
[0014] 本発明のこれらの及びその他の特徴、態様及び利点は、以下の図面、説明及び特許請求の範囲を参照することでより良く理解されるであろう。
【0016】
[0015] 同じ参照記号が同様の要素を示すことができる添付図面の図によって、本発明のいくつかの実施形態を限定ではなく一例として示す。
【図面の簡単な説明】
【0017】
図1】強化学習エージェントがその環境と対話する概略図を示す図である。
図2】本発明の例示的な実施形態による、混合シナリオトレーニングのための単一の環境のシナリオコンポーネント及びそのコンシューマーを示す図である。
図3】本発明の例示的な実施形態による、完全な混合シナリオトレーニングの概略図を示す図である。
図4】トレーナがロールアウトワーカーにトレーニングシナリオを配布し、各ロールアウトワーカーがレーシングゲームのインスタンスを実行する1つのゲームコンソールを制御する例示的なシステム構成を示す図である。
図5a】混合シナリオトレーニングを使用してエージェントを訓練するために使用される3つの異なるレーシングトラック上のシナリオ構成を示す図である。
図5b】混合シナリオトレーニングを使用してエージェントを訓練するために使用される3つの異なるレーシングトラック上のシナリオ構成を示す図である。
図5c】混合シナリオトレーニングを使用してエージェントを訓練するために使用される3つの異なるレーシングトラック上のシナリオ構成を示す図である。
図5d】混合シナリオトレーニングを使用してエージェントを訓練するために使用される3つの異なるレーシングトラック上のシナリオ構成を示す図である。
図5e】混合シナリオトレーニングを使用してエージェントを訓練するために使用される3つの異なるレーシングトラック上のシナリオ構成を示す図である。
図5f】混合シナリオトレーニングを使用してエージェントを訓練するために使用される3つの異なるレーシングトラック上のシナリオ構成を示す図である。
図6a】レーシングエージェントを訓練するために使用されるシナリオの様々な態様のアブレーション研究を示す図である。シナリオが変更又は削除されると、エージェントが重要なスキルを習得して維持する能力が低下する。
図6b】レーシングエージェントを訓練するために使用されるシナリオの様々な態様のアブレーション研究を示す図である。シナリオが変更又は削除されると、エージェントが重要なスキルを習得して維持する能力が低下する。
図7】複数のテーブルを使用して異なるシナリオからのデータを整理する経験再生バッファの内容を示す図である。
図8a】シミュレートされたレーシングゲームにおいて、混合シナリオで訓練されたエージェントが4人の最優秀ドライバーと対戦したレース結果を示す図である。
図8b】シミュレートされたレーシングゲームにおいて、混合シナリオで訓練されたエージェントが4人の最優秀ドライバーと対戦したレース結果を示す図である。
図8c】シミュレートされたレーシングゲームにおいて、混合シナリオで訓練されたエージェントが4人の最優秀ドライバーと対戦したレース結果を示す図である。
【発明を実施するための形態】
【0018】
[0024] 別段の指示がない限り、図中の図は必ずしも縮尺通りに描かれているわけではない。
【0019】
[0025] 図示の実施形態について説明する以下の詳細な説明を参照することによって、本発明及びその様々な実施形態をより良く理解することができる。図示の実施形態は一例として示すものであり、最終的に特許請求の範囲に定める本発明を限定するものではないと明確に理解されたい。
【0020】
[0026] 本明細書で使用する用語は、特定の実施形態を説明するためのものにすぎず、本発明を限定するように意図するものではない。本明細書で使用する「及び/又は」という用語は、関連する記載項目のうちの1つ又は2つ以上のありとあらゆる組み合わせを含む。本明細書で使用する単数形の「a、an(英文不定冠詞)」及び「the(英文定冠詞)」は、その文脈で別途明確に示していない限り、単数形に加えて複数形も含むように意図される。更に、「含む、備える(comprises及び/又はcomprising)」という用語は、本明細書で使用する場合、言及する特徴、ステップ、動作、要素及び/又はコンポーネントの存在を示すものであるが、1又は2以上の他の特徴、ステップ、動作、要素、コンポーネント、及び/又はこれらの群の存在又は追加を除外するものではないと理解されたい。
【0021】
[0027] 特に定めがない限り、本明細書で使用する(技術用語及び科学用語を含む)全ての用語は、本発明が属する技術の当業者が一般に理解している意味と同じ意味を有する。更に、一般に使用される辞書に定義されているような用語については、関連技術及び本開示の文脈におけるこれらの意味に従う意味を有すると解釈すべきであり、本明細書で明確に定義していない限り、理想的な又は過度に形式的な意味で解釈されるものではないと理解されるであろう。
【0022】
[0028] 本発明の説明では、複数の技術及びステップが開示されていると理解されるであろう。これらはそれぞれ個々の利益を有し、それぞれ開示する他の技術の1つ又は2つ以上、又は場合によっては全てと共に使用することもできる。したがって、明確にするために、本説明では個々のステップの全ての可能な組み合わせを不必要に繰り返さないようにする。しかしながら、本明細書及び特許請求の範囲については、このような組み合わせも本発明の範囲及び特許請求の範囲に完全に含まれるという理解の下で読むべきである。
【0023】
[0029] 以下の説明では、説明の目的で、本発明の完全な理解をもたらすために数多くの具体的な詳細を示す。しかしながら、当業者には、これらの具体的な詳細を伴わずとも本発明を実施できることが明らかであろう。
【0024】
[0030] 本開示は本発明の例示として見なすべきであり、以下の図又は説明によって示す具体的な実施形態に本発明を限定するように意図するものではない。
【0025】
[0031] 少なくとも互いに一般通信を行う装置又はシステムモジュールは、別途明示していない限り、互いに連続的に通信する必要はない。また、少なくとも互いに一般通信を行う装置又はシステムモジュールは、直接的に、或いは1又は2以上の仲介装置を通じて間接的に通信することができる。
【0026】
[0032] 互いに通信する複数のコンポーネントを含む実施形態の説明は、このようなコンポーネントが全て必要であることを意味するものではない。むしろ、本発明の幅広い可能な実施形態を示すために様々な任意のコンポーネントについて説明する。
【0027】
[0033] 「コンピュータ」又は「コンピュータ装置」は、構造化された入力を受け入れ、構造化された入力を規定のルールに従って処理し、処理の結果を出力として生成することができる1又は2以上の装置及び/又は1又は2以上のシステムを意味することができる。コンピュータ又はコンピュータ装置の例としては、コンピュータ、固定及び/又はポータブルコンピュータ、単一のプロセッサ、複数のプロセッサ、又は並行して及び/又は並行しないで動作できるマルチコアプロセッサを有するコンピュータ、スーパーコンピュータ、メインフレーム、スーパーミニコンピュータ、ミニコンピュータ、ワークステーション、マイクロコンピュータ、サーバ、クライアント、双方向テレビ、ウェブアプライアンス、インターネットアクセスを有する通信装置、コンピュータと双方向テレビとのハイブリッド結合、ポータブルコンピュータ、タブレットパーソナルコンピュータ(PC)、携帯情報端末(PDA)、携帯電話機、例えばデジタルシグナルプロセッサ(DSP)、フィールドプログラマブルゲートアレイ(FPGA)、特定用途向け集積回路(ASIC)、特定用途向け命令セットプロセッサ(ASIP)、チップ、複数のチップ、システムオンチップ又はチップセットなどの、コンピュータ及び/又はソフトウェアをエミュレートする特定用途向けハードウェア、データ収集装置、光コンピュータ、量子コンピュータ、バイオコンピュータ、及び一般にデータを受け入れ、1又は2以上の記憶されたソフトウェアプログラムに従ってデータを処理し、結果を生成し、典型的には入力装置、出力装置、記憶装置、算術演算装置、論理装置及び制御装置を含むことができる装置を挙げることができる。
【0028】
[0034] 「ソフトウェア」又は「アプリケーション」は、コンピュータを動作させるための規定のルールを意味することができる。ソフトウェア又はアプリケーションの例としては、1又は2以上のコンピュータ可読言語でのコードセグメント、グラフィック及び/又はテキスト命令、アプレット、プリコンパイル済みコード、解釈済みコード、コンパイル済みコード及びコンピュータプログラムを挙げることができる。
【0029】
[0035] また、コンピュータ、他のプログラマブルデータ処理装置又はその他の装置に特定の形で機能するように指示することができるこれらのコンピュータプログラム命令をコンピュータ可読媒体に記憶することにより、コンピュータ可読媒体に記憶された命令が、フローチャート及び/又はブロック図の1又は複数のブロック内に指定される機能/動作を実行する命令を含む製造の物品を生み出すようにすることもできる。
【0030】
[0036] 更に、プロセスステップ、方法ステップ又はアルゴリズムなどは一定の順序で説明することができるが、このようなプロセス、方法及びアルゴリズムは別の順序で機能するように構成することもできる。換言すれば、説明できるステップのいずれかの順番又は順序は、これらのステップを必ずしもこの順序で実行する必要があることを示すものではない。本明細書で説明するプロセスのステップは、いずれかの実用的な順序で実行することができる。更に、いくつかのステップを同時に実行することもできる。
【0031】
[0037] 本明細書で説明する様々な方法及びアルゴリズムは、例えば適切にプログラムされた汎用コンピュータ及びコンピュータ装置によって実装できることが容易に明らかになるであろう。通常、プロセッサ(例えば、マイクロプロセッサ)は、メモリ又は同様の装置から命令を受け取ってこれらの命令を実行することにより、これらの命令によって定められたプロセスを実行する。更に、このような方法及びアルゴリズムを実装するプログラムは、様々な既知の媒体を使用して記憶及び送信することができる。
【0032】
[0038] 本明細書で使用する「コンピュータ可読媒体」という用語は、コンピュータ、プロセッサ又は同様の装置が読み取ることができるデータ(例えば、命令)を提供することに関与するいずれかの媒体を意味する。このような媒体は、以下に限定するわけではないが、不揮発性媒体、揮発性媒体及び送信媒体を含む多くの形態を取ることができる。不揮発性媒体は、例えば光又は磁気ディスク及びその他の永続的メモリを含む。揮発性媒体は、典型的にはメインメモリを構成するダイナミックランダムアクセスメモリ(DRAM)を含む。送信媒体は、プロセッサに結合されたシステムバスを含むワイヤを含む、同軸ケーブル、銅線及び光ファイバを含む。送信媒体は、無線周波数(RF)及び赤外線(IR)データ通信中に生成されるものなどの音波、光波及び電磁放射線を含み、又はこれらを伝えることができる。一般的な形態のコンピュータ可読媒体としては、例えば、フロッピーディスク、フレキシブルディスク、ハードディスク、磁気テープ、他のいずれかの磁気媒体、CD-ROM、DVD、他のいずれかの光媒体、パンチカード、紙テープ、穴パターンを有する他のいずれかの物理的媒体、RAM、PROM、EPROM、FLASHEEPROM、他のいずれかのメモリーチップ又はカートリッジ、後述するような搬送波、又はコンピュータが読み取ることができる他のいずれかの媒体を挙げることができる。
【0033】
[0039] 一連の命令をプロセッサに搬送することには、様々な形態のコンピュータ可読媒体が関与することができる。例えば、一連の命令は、(i)RAMからプロセッサに供給することができ、(ii)無線送信媒体を介して搬送することができ、及び/又は(iii)Bluetooth、TDMA、CDMA、3G、4G、5Gなどの数多くのフォーマット、標準又はプロトコルに従ってフォーマットすることができる。
【0034】
[0040] 本発明の実施形態は、本明細書に開示する動作を実行する装置を含むことができる。装置は、所望の目的で特別に構成することも、又は内部に記憶されたプログラムによって選択的に作動又は再構成される汎用装置を含むこともできる。
【0035】
[0041] 特に別途述べていない限り、また以下の説明及び特許請求の範囲から明らかになり得るように、本明細書全体を通じて、「処理する」、「計算する」、「算出する」又は「決定する」などの用語を利用した説明は、コンピュータシステムのレジスタ及び/又はメモリ内の電子量などの物理量として表されるデータを操作し、及び/又はコンピュータシステムのメモリ、レジスタ又は他のこのような情報記憶、送信又は表示装置内の物理量として同様に表される他のデータに変形させるコンピュータ、コンピュータシステム又は同様の電子コンピュータ装置の動作及び/又はプロセスを意味すると理解されたい。
【0036】
[0042] 同様に、「プロセッサ」という用語は、レジスタ及び/又はメモリからの電子データを処理し、外部装置の物理的変化又は作動を引き起こすようにこの電子データをレジスタ及び/又はメモリへの記憶又は外部装置への伝達が可能な他の電子データに変換するいずれかの装置又は装置の一部を意味することができる。
【0037】
[0043] 「エージェント」又は「知的エージェント」又は「人工エージェント」又は「人工知能エージェント」という用語は、観察に応答して行動を選択するいずれかの人為的エンティティを意味するように意図される。「エージェント」は、ロボット、模擬ロボット、ソフトウェアエージェント又は「ボット」、適応エージェント、インターネット又はウェブボットを制限なく意味することができる。
【0038】
[0044] 「ロボット」という用語は、感知又は観察に応答して行動又はコマンドを発行するコンピュータ又はコンピュータシステムによって直接的又は間接的に制御されるいずれかのシステムを意味することができる。この用語は、カメラ、タッチセンサ及び距離センサなどの物理的センサを有する従来の物理的ロボット、又は仮想シミュレーション内に存在する模擬ロボット、或いはネットワーク内のソフトウェアとして存在するゲームボットなどの「ボット」を制限なく意味することができる。
【0039】
[0045] 「観察」という用語は、エージェントがいずれかの手段によって受け取る、エージェントの環境又はエージェント自体に関するいずれかの情報を意味する。いくつかの実施形態では、この情報を、限定ではないが、カメラ、タッチセンサ、距離センサ、温度センサ、波長センサ、音響又は音声センサ、ポジションセンサ、圧力又は力センサ、速度又は加速度又はその他の動きセンサ、位置センサ(例えば、GPS)などの知覚装置を通じて受け取られる知覚情報又は信号とすることができる。他の実施形態では、この情報が、限定ではないが、一群の知覚装置と記憶された情報とを組み合わせたものから作成された、編集された、抽象的な又は状況的な情報を含むこともできる。非限定的な例では、エージェントが、エージェント自体又は他の物体の位置又は特性に関する抽象情報を観察として受け取ることができる。
【0040】
[0046] 「行動」という用語は、エージェントの環境、エージェントの物理的又は模擬的自己(physical or simulated self)、或いはエージェントの内部機能を制御し、これらに影響し、又はこれらを左右するための、最終的にはエージェントの将来の行動、行動選択、又は行動の好みを制御し、又はこれらに影響を与えることができるエージェントのいずれかの手段を意味する。多くの実施形態では、これらの行動が、物理的又は模擬サーボ又はアクチュエータを直接制御することができる。いくつかの実施形態では、これらの行動を、エージェントの選択に影響するように最終的に意図された好み又は一連の好みの表現とすることができる。いくつかの実施形態では、エージェントの(単複の)行動に関する情報が、限定ではないが、エージェントの(単複の)行動にわたる確率分布、及び/又はエージェントの最終的な行動選択に影響するように意図された発信情報を含むことができる。
【0041】
[0047] 「状態」又は「状態情報」という用語は、限定ではないが、エージェントの現在及び/又は過去の観察に関する情報を含むことができる、環境又はエージェントの状態に関するいずれかの一群の情報を意味する。
【0042】
[0048] 「方策」という用語は、いずれかの完全な又は部分的な状態情報からいずれかの行動情報へのいずれかの関数又はマッピングを意味する。方策は、ハードコーディングすることも、或いは限定ではないが、いずれかの強化学習法又は制御最適化法を含むいずれかの適切な学習法又は教育法を使用して修正、適合又は訓練することもできる。方策は、限定ではないが、特定の尺度、値又は関数を最適化することによって生じ得るものなどの明示的マッピング又は非明示的マッピングとすることができる。方策は、限定ではないが、どのような条件下で方策が開始又は継続できるかを反映する開始条件(又は確率)、どのような条件下で方策が終了できるかを反映する終了条件(又は確率)などの関連する更なる情報、特徴又は特性を含むことができる。
【0043】
[0049] 概して、本発明の実施形態は、一般的なレースと非常に特殊なレースのシナリオを混合してエージェントを訓練するための方法を提供する。方法の態様は、(1)トラック上に1又は2以上の車を分散させて、エージェントがタイムトライアルに非常に優れているように訓練すること、(2)トラックの周囲で異なる構成でスタートする可変数の対戦相手を含む様々なレースシナリオでエージェントを実行すること、(3)ゲームで提供されるエージェント、本発明の態様に従って訓練されるエージェントの以前のバージョン、異なる挙動のために訓練されるエージェント、又は特定の走行ラインをたどるコントローラによって制御されるエージェントを使用して対戦相手を変えること、(4)特定の成功基準を含む様々なレース状況で対戦相手を含む特定の短いシナリオを設定すること、(5)様々な評価シナリオでエージェントがどのようにパフォーマンスするかに基づいて動的カリキュラムを有すること、のうちの1又は2以上を含むことができる。トレーニング方法は、例えば、分位回帰ソフトアクタークリティック・モデルフリー・オフポリシー深層強化学習技術を使用することができる。
【0044】
[0050] 本発明の実施形態は、上述の問題に対する解決策として、図2及び図3に示す「混合シナリオトレーニング」と呼ばれる技術を提供する。混合シナリオトレーニングは、自動運転などのより複雑な領域のために設計されるが、シナリオを起動するために環境200を構成する能力(例えばシミュレータを介して)を必要とする。環境200がエージェントの初期状態を抽出できるようにする代わりに、重要なトレーニング状況は、図2に示す情報から構成されるシナリオ構成202にエンコードされる。
【0045】
[0051] 通常、シナリオ構成202は、以下のものを含むことができる。(1)シナリオの開始を指定する起動条件204。これらの条件自体はランダム化することができる。例えば、自動運転タスクでは、「1対1」のシナリオは、学習エージェント及び他の1台の車の可能な位置及び速度の分布を規定することができる。(2)シナリオ内の他のエージェントの形態及び確率を指定する対戦相手分布206。例えば、自動運転のシナリオでは、潜在的な対戦相手は、ラインフォロワー(line followers)、事前に構築されたAIコントローラ、更には事前に訓練されたRL方策を含むことができる。(3)環境で実行する並列エージェントシナリオの数を示すレプリケーション数208。シナリオは、特定の環境で何度も複製することができる。例えば、20台の車を収容できる環境では、十分な間隔が保たれている限り、10の異なる1対1シナリオを起動することができる。(4)このシナリオが終了する時の停止条件210。時間、距離、又は条件に基づくことができる。(5)全体的なタスクサンプリングにおけるこのシナリオの割合を決定するシナリオ重み付け214。例えば、「1対1」シナリオの重み付けが0.1の場合、サンプリングされた全てのタスクの10%が1対1シナリオからのものであることを示すことができる。(6)経験テーブルマッピング212は、特定のシナリオからのデータを「テーブル」と呼ばれる特定のパーティションに格納して、トレーニングバッチでの表現を保証し、同じトレーニングセット内のより長いシナリオ又はより短いシナリオでのデータの不均衡を防ぐことができる。
【0046】
[0052] 図3に、並列ロールアウトワーカーを使用した深層強化学習エージェントの混合シナリオトレーニングプロセスの実施形態を示す。このバージョンでは、N個のワーカーが考えられ、シナリオを並列に実行できるN個の潜在的な環境を表す。これらのワーカーからのデータは、深層強化学習アーキテクチャの標準であるように、学習エージェントの方策及びその他のモデルを更新するための計算を実行できる集中トレーナ上の経験再生バッファにストリームバックすることができる。ワーカーがロールアウトタスクを完了すると、候補シナリオのセットから新しいシナリオを抽出し、起動条件や対戦相手のタイプなどのパラメータを更にサンプリングすることができる。シナリオの複数のインスタンス(レプリケーション数に対応)を、単一のワーカー環境で実行することができ、シナリオによって指定される再生バッファ内の経験テーブルに、データをストリームバックすることができる。トレーニングは定期的に続行され、様々なテーブルを事前に設定された割合でカバーするデータのバッチを用いて方策を更新することができる。
【0047】
[0053] いくつかの実施形態では、候補シナリオのセットは、学習又は方策評価中に発生したイベントに基づいて、動的に拡張することができる。例えば、2台の車が衝突した場合、衝突直前のシナリオがセットに追加されて、エージェントが差し迫った衝突を回避する方法を学習できるようにすることができる。このイベント検出機能は、図3の破線ボックスで示されている。
【0048】
[0054] いくつかの実施形態では、カリキュラムを使用して、何らかの進捗状況の尺度に基づいてシナリオの割合を調整することができる。これらの進捗状況の尺度の例としては、トレーニングの反復回数、又は現在の方策のパフォーマンスを測定するメトリックを挙げることができる。例えば、自動運転のカリキュラムは、学習エージェントが単独で存在するシナリオのサンプリングのみを開始し、後でエージェントが運転能力を発揮した時に「1対1」シナリオを導入することができる。このカリキュラムモニタ機能は、図3の破線ボックスで示されている。
【0049】
[0055] 混合シナリオトレーニング手順は、上記のように、従来の方法のいくつかの問題に対処する。例えば、シナリオ起動条件により、エージェントは、重要なシナリオに到達したり、到達を計画したりする負担から解放される。また、起動構成を明示的に設定し、対戦相手の集団をサンプリングすることによって、「協力的な」対戦相手の必要性が軽減される。更に、シナリオとテーブルのマッピングと、各学習バッチにおけるテーブル比率に基づくデータの再重み付けを使用することで、より短い状況又は到達困難な状況からの重要なデータがトレーニングで無視されないようにする。最後に、起動、対戦相手の挙動、及び停止条件の潜在的に豊富なエンコードにより、混合シナリオトレーニングは、領域の専門家による事前知識のエンコードのための車両を提供することができる。
【0050】
[0056] 図3に、混合シナリオトレーニングを利用する深層強化学習アーキテクチャ300の一実施形態を示す。アーキテクチャの2つの主なモジュールは、トレーナ302、及びロールアウトワーカーのセット304である。トレーナ302は、環境内での行動を決定するために使用されるモデル306及び方策308を改良することができる。これらのモデル306及び方策308の様々な表現が可能であり、ディープニューラルネットワークを含む。方策の改良は、過去に実行された様々なシナリオからのデータでポピュレート(populated)された経験再生バッファ312からデータの「バッチ」310をサンプリングすることによって実行することができる。この再生バッファ312は、例えば、単独運転経験からのデータを交通量の多い運転に関するデータから分離するなど、データを分割する様々なテーブル314を含むことができる。方策の改良のためにバッチが構築されるたびに、事前に指定されたテーブル重みのセット316を使用して、バッチで使用される各テーブルからのデータの割合を指定することができる。システムは特定のシナリオをテーブルにリンクするので(必ずしも一対一(bijective)の関係にあるとは限らないが)、このテーブルサンプリングにより、各シナリオのデータの一定の割合がバッチ構築で使用されることが保証される。
【0051】
[0057] トレーナ302は「タスクマネージャ」318としても機能し、アイドル状態のワーカーでどのシナリオを開始すべきかを決定する。ワーカーが前のシナリオを完了したことを示すたびに、トレーナ318は、シナリオの重みに基づいて、潜在的なシナリオのセットからのランダム抽出を実行することができる。他の実施形態では、このランダム化は、循環キュー又は他の決定論的サンプリングプロセスに置き換えることができる。いずれの場合も、選択されたシナリオは、その起動パラメータ(車の配置など)と、このシナリオに関連付けられる対戦相手の集団とに基づいて、ランダム抽出を実行することによって、インスタンス化される。この場合も、インスタンス化されたタスクのバランスを確保するために、重み付けされたランダム抽出又はより複雑な履歴ベースのサンプリングを行うことができる。
【0052】
[0058] インスタンス化されたシナリオは、現在の制御方策とともにロールアウトワーカー304に送信することができる。ロールアウトワーカー304は、この仕様を読み取り、構成可能な環境320においてシナリオの要求された数のレプリカ(シナリオパラメータから)をインスタンス化することができる。例えば、このプロセスは、間隔をあけた複数の「1対1」シナリオを含む運転シミュレータの設定を含むことができる。次に、ロールアウトワーカー304は、伝達された方策を使用してシナリオを実行し、各ステップで全ての学習エージェントの行動を選択することができる。環境320からのデータ(具体的には、全てのエージェントの状態、行動、及び報酬)が記録(322)され、シナリオによって指定される経験再生バッファ312内のテーブル314に送信される。このプロセスは、シナリオの終了条件に達するまで続行される。この終了条件は、代替的に、時間ベース(シナリオをX秒間実行)、距離ベース(自律走行車をXマイル運転)、又は他のイベントを条件とする(1時間実行するか、何かに衝突するまで実行する)こともできる。
【0053】
[0059] アーキテクチャの様々な拡張が可能であり、以下に説明する2つの変形例を含む。まず、ロールアウトタスクの実行中に発生したイベントに基づいて、潜在的なシナリオのセットを動的に増加させることができる変形例が可能である。インスタンス化の例では、車両間の衝突などのイベントを指定することができる。ロールアウト収集又は方策評価中にこのようなイベントが発生すると、イベント発生前の状態(例えば、衝突の10秒前)がトレーナに返送され、新しいシナリオが動的に構築されて、可能性のあるシナリオのセットに追加されることができる。このシナリオは、エージェントに望ましくないイベント(この場合は衝突)を回避するように教えるのに役立つ。このような「再生」シナリオは、実行される回数に制限を設けて指定することもでき、これにより、潜在的なシナリオのセット内で期限切れになり、潜在的に他の再生シナリオのための余地ができる。
【0054】
[0060] カリキュラムを使用して潜在的なシナリオのセット又はその比例重みを変更する時に、別の潜在的な変形例が発生する。この変形例では、カリキュラムフェーズに基づいて潜在的なシナリオのセット又はその重みが更新されるカリキュラムを指定することができる。カリキュラムフェーズは、学習イベントによってトリガされる。学習イベントは、実行された方策更新の数だけの場合もあれば、様々なシナリオでロールアウトワーカーによって記録されるメトリック(方策の運転適性など)を含むより複雑な基準である場合もある。例えば、自動運転のカリキュラムは、学習エージェントが単独で存在するシナリオのサンプリングのみを開始し、後でエージェントが運転能力を発揮した時に「1対1」シナリオを導入することができる。
【0055】
[0061] 強化学習の文献にあるいくつかの技術は、混合シナリオトレーニングと用語を共有しているが、上記のアーキテクチャ、データ構造、及び手順との間には重大なギャップがある。例えば、ターゲット探索アルゴリズムは、エージェントがより多くの経験が必要であると感じる特定の状態を探し出すことができる。しかしながら、これらのアルゴリズムは、上述の問題に対処する方法がないため、複雑な領域では不十分である。特に、トリガ探索アルゴリズムは、対戦相手の挙動を制御又はサンプリングすることさえできないため、探索したい状態に到達できない場合がある。対照的に、本発明の態様による混合シナリオトレーニングは、適切な起動条件で環境を直接構成し、必要に応じて対戦相手の方策を設定又はサンプリングすることができる。
【0056】
[0062] 強化学習におけるカリキュラム学習は、新しい環境を「生成」するモジュールを含むことがあり、これはシナリオ生成の一形態と見なすことができる。しかしながら、この生成は、エージェントが順次習得した以前の環境を置き換えるために使用される。対照的に、本発明の態様による混合シナリオトレーニングは、異なるスキルを維持するために複数のソースタスクが必要となる複雑な領域で、一度に多くの異なるシナリオのバランスをとるという問題に対処することができる。
【0057】
[0063] 一般化を促進するために複数の環境で訓練されるRLアプリケーションは多数あるが、そのようなエージェントの目標は、多くの異なる小さな環境で実行できるようにすることである。対照的に、本発明の態様による混合シナリオトレーニングは、自動運転などの非常に大きくモノリシックな環境であるが、特定のシナリオでのトレーニングによって完全な複雑なシナリオで良好な挙動を促進するスキルが構築される領域に焦点を当てることができる。
【0058】
[0064] 強化学習オプションフレームワークは、大きい領域内の異なる領域に対して多くの異なる小さな方策をエンコードする。しかしながら、この手法は、本発明の態様による混合シナリオトレーニングとは根本的に異なる。混合シナリオトレーニングは、ターゲットシナリオの経験を用いて、大きい領域のための単一の一般化された方策を学習しようとすることができる。
【0059】
[0065] 要約すると、強化学習エージェントの混合シナリオトレーニングは、複雑な領域で使用することができる。ここでは、特定のスキルにそれぞれ焦点を当てたシナリオをサンプリングして、トレーニングデータに分割し、全ての望ましい挙動に優れた方策を作成することができる。シナリオは、それ自体がランダム化され得る起動構成を用いて設計することができるが、学習エージェントが特定のスキルを学習するのに役立つ状況で「スポーン(spawn)」できるようにする。シナリオは、設定された対戦相手のタイプ又は分布のいずれかから抽出することができる。これらの対戦相手は通常、シナリオ内で行儀のよい(well-behaved)ものであるため(例えば、ラインをたどる車両)、他の方法では不可能なシナリオの学習及び探索が可能になる。停止条件は、時間、距離、又はその他の基準に基づくことができるため、シナリオを短くして特定のスキルに焦点を合わせることも、長く、潜在的にオープンエンドにして、より一般的な技術に焦点を合わせることもできる。各シナリオを経験再生バッファ内の「テーブル」パーティションにマッピングすると、継続時間又はサンプリングレートの違いにかかわらず、各シナリオから十分なデータを学習エージェントに提供することができる。本発明の態様は、例えば、運転環境で十分に間隔をあけて配置された多くの「単独」エージェントからデータを収集するなど、大きい環境で一度に多数のシナリオのレプリカを実行する能力を提供する。本発明の態様は、トレーニングモジュールのタスクマネージャによって管理される多くのロールアウトワーカー間で多くの異なるシナリオを並行して実行する能力を更に提供する。本発明の態様は、ロールアウトアクティビティ中に遭遇した新しいシナリオを、イベントトリガによって潜在的なシナリオのセットに追加することを提供する。最後に、カリキュラムロジックを使用して、サンプルされたシナリオの分布を時間の経過とともに、又はロールアウト又はその他の方策評価から収集されるパフォーマンスメトリックに基づいて変更することができる。
【0060】
[0066] 本発明の実施形態による方法は、モデルフリーの深層強化学習を使用して、シミュレートされたレースの課題を初めて解決することができる。本発明の態様は、新しい強化学習アルゴリズムを提供し、混合シナリオトレーニングで学習プロセスを強化して、エージェントがレース戦術を統合制御方策に組み込むように促す。更に、本発明の方法は、エージェントがスポーツのレースエチケットルールを遵守できるようにする報酬関数を構築した。以下で説明する特定の例は、世界最高のレーシングゲームドライバー4人に対して3回中3回勝利することで、人工エージェントの能力を実証している。これは、本発明の態様によるエージェント訓練方法が、チャンピオンシップレベルの自動レースカードライバーの訓練にうまく使用できることを示し、そのような方法は、他の複雑な動的システム及び現実世界のアプリケーションに更に適用することができる。
【0061】
[0067] ゲームエージェントは、分位回帰ソフトアクタークリティック(QR-SAC)を含むがこれに限定されない、深層強化学習アルゴリズムを使用して訓練することができる。この手法は、エージェントの観察に基づいて行動を選択する方策(アクター)と、各可能な行動の将来の報酬を推定する価値関数(クリティック)を学習する。QR-SACは、将来の報酬の期待値をそれらの報酬の確率分布の表現に置き換え、Nステップのリターンを処理するように変更することによって、ソフトアクタークリティック手法を拡張する。アクター及びクリティックの両方は、それぞれ2048ノードの4つの層を含むニューラルネットワークで表すことができる。QR-SACは、ニューラルネットワークを非同期的に訓練することができる。つまり、QR-SACは、経験再生バッファ(ERB)からデータをサンプリングし、同時にアクターが最新の方策を使用して運転を練習し、バッファを新しい経験で継続的に埋めていく。
【0062】
[0068] 図4に、システムを示す。トレーナ10は、ロールアウトワーカー26にトレーニングシナリオを配布する。各ロールアウトワーカー26は、ゲームのインスタンスを実行する1つのゲームコンソールを制御する。ロールアウトワーカー26内のエージェント28は、最新の方策22(π)の1つのコピーを実行して、トラック30上の最大20台の車を制御する。エージェント28は、制御する車ごとに行動(a)をゲームに送信する。非同期的に、ゲームは次のフレームを計算し、各新しい状態(s)をエージェント28に送信する。ゲームが行動が登録されたことを報告すると、エージェント28は状態、行動、報酬のタプル24<s、a、r>をトレーナ10に報告し、トレーナ10はそれをERB 14に格納する。トレーナ10は ERB 14をサンプリングして、QR-SAC 16を介して方策20(π)及びQ関数(18)ネットワークを更新する。図4は、1対0、1対1、1対3、及び1対7のシナリオを実行するタスク12を現在割り当てられる4つのロールアウトワーカー26を含むシステムを示す。
【0063】
[0069] エージェントのコアアクションは、2つの連続値の次元、すなわち、変化する速度(加速又はブレーキ)及びステアリング(左又は右)にマッピングすることができる。行動の効果は、環境の物理特性と一致するようにゲームによって強制することができる。例えば、エージェントが人間よりも強くブレーキをかけるのを防ぐことができるが、エージェントはいつブレーキをかけるかをより正確に学習することができる。エージェントは 10Hzでゲームと対話することができる。これは、プロのプレイヤーがビデオゲームと対話する範囲内である。
【0064】
[0070] エージェントは、自分自身及び全ての対戦相手についての位置、速度、加速度、及びその他の関連する状態情報にアクセスすることができる。エージェントは、左端と右端、及び中心線を定義するポイントのリストとして、トラックのマップを有することもできる。エージェントは、縁石のサイズや形状、トラック端の外側の路面のタイプなど、視覚画像で入手できるその他の情報を有していない場合がある。
【0065】
レース戦術
[0071] 深層強化学習(RL)でレース戦術を学習するには、エージェントは他の車の観察をニューラルネットワークで解釈できる方法で表現する必要がある。エージェントは、対戦相手の状態特徴のリストを2つ保持することができる。1つはエージェントの前方の車に対し、もう1つはエージェントの後方の車に対するものである。両方のリストは、最も近いものから最も遠いものの順に並べることができ、最大範囲で制限することができる。
【0066】
[0072] いくつかの実施形態では、進捗報酬だけでは、エージェントがレースに勝つための動機付けに十分でない場合がある。対戦相手が十分に速ければ、エージェントは対戦相手を追い越すことを学習し、潜在的に壊滅的な衝突のリスクを冒すことなく、大きな報酬を蓄積する。追い越しに対して特に報酬を追加すると、エージェントが他の車を追い越すことを学習するのに役立つことができる。追い越し報酬は、エージェントがローカル領域内の各対戦相手に対する位置を改善した距離に比例して使用することができる。報酬は対称的とすることができるため、対戦相手がエージェントに追いついた場合、エージェントは比例して負の報酬を受け取る。
【0067】
[0073] 戦術を学習する時に生じる別の複雑な問題は、挙動が対戦相手によって大きく左右される可能性があることである。対戦相手が過度に攻撃的であったり、過度に従順であったりすると、エージェントは不道徳な(degenerate)追い越し挙動を学習したり、攻撃的な操作をしたりする場合がある。このような不安定さを回避するために、エージェントは、自身のコピーに対して練習するのではなく、スポーツマンらしくない挙動を示さないために選択された以前の実験からキュレーションされた方策に対して練習することができる。混合シナリオトレーニングは、対戦相手分布構築を通じてこのような集団の使用をサポートして、各シナリオが、対戦相手のタイプの独自の混合、及びこれらのトレーニングシナリオでの使用の分布を潜在的に有することができるようにする。
【0068】
[0074] 最後に、エージェントが特定のスキルを学習する機会はまれである可能性がある。これは露出問題と呼ばれるもので、世界の特定の状態は、対戦相手の協力なしにはエージェントがアクセスできない。例えば、「スリングショットパス(slingshot pass)」を実行するには、長い直線で車が対戦相手のスリップストリーム内にいる必要があるが、この状態はレース全体で数回自然に発生するか、まったく発生しない可能性がある。対戦相手が常に右側のみを走行する場合、エージェントは左側のみから追い越すことを学習する場合があり、左側を走行することを選択する人間によって容易に阻止される。混合シナリオトレーニングは、この問題に対処する。各トラックで極めて重要になる可能性のある少数のレース状況を特定することができる。次に、エージェントにそれらの重要な状況のノイズの多い変形例を提示するシナリオを構成することができる。いくつかのシナリオでは、単純なPIDコントローラを使用して、対戦相手が左側走行などの特定の軌道をたどるようにすることができる。これは、エージェントが遭遇する準備ができていることが望ましいものである。この技術により、エージェントはより堅牢なスキルを学習するようになった。
【0069】
トレーニングシナリオ
[0075] レースを学習するには、混雑したスタートを切り抜けること、オープンロードで戦術的に追い越すこと、トラックを単独で正確に走ることなど、様々なスキルを習得する必要がある。基本的なレーススキルを奨励するために、エージェントは、近くに0、1、3、又は7の対戦相手が起動されたシナリオに配置された(それぞれ、1対0、1対1、1対2、1対3、及び1対7)。多様性を生み出すために、トラックの位置、スタート速度、車間の間隔、対戦相手の方策をランダム化することができる。ゲームが一度に20台の車をサポートしているという事実を利用して、トラックに複数のグループを起動することによって、ゲームコンソールの使用率を最大化することができる。全ての基本シナリオは、150秒間実行された。更に、エージェントがエキスパートアドバイザーによって強調されるスキルを学習できるような状況にさらされるように、特定のコースセクションで時間又は距離が制限されたシナリオを利用することができる。例示的なスキルシナリオとしては、8台のグリッドスタート、1対1のスリップストリームパス(slipstream passing)、考えられる交通状況のそれぞれで混雑した狭いシケインを走行、複数のレースライン及び追い越しの機会を提供する特定のターンシーケンスでの追い越し機会の練習、前方でレースしながら同じコーナーで防御的な操作を練習、及び他の車の間にいる時の攻撃的運転と防御的運転の組み合わせを挙げることができる。図5a~図5fに、3つのレーストラック上でのこれらのシナリオの図を示す。特に高速トラックで壊滅的な結果を回避する方法を学習するために、前述の拡張機能からの再生タスクを組み込むことができる。
【0070】
[0076] 初期のスキルが後のスキルに置き換えられたり、スキルが階層的に積み重なって構築されたりするカリキュラムトレーニングとは異なり、本発明の態様で使用されるトレーニングシナリオは補完的であり、交通状況でのレースのための単一の制御方策に訓練されている。トレーニング中、トレーナは、十分なスキルカバレッジを提供するように設計される手動で調整された比率に基づいて、そのトラックのために構成されるセットから選択することによって、各ロールアウトワーカーに新しいシナリオを割り当てた。しかしながら、この相対的な実行バランスがあっても、バッファからのランダムサンプリングの変動により、連続するトレーニングエポック間でスキルが忘れられる可能性がある。したがって、前述のテーブルサンプリング重みに基づくマルチテーブル層別サンプリングを実装して、各トレーニングミニバッチにおいて各シナリオの割合を明示的に強制し、スキル保持を大幅に安定化することができる。図7に、データが複数のテーブルに分割された経験再生バッファの例を示す。
【0071】
[0077] 混合シナリオトレーニングの様々な態様の重要性は、いくつかのコンポーネントのアブレーション研究を示す図6a及び図6bに示されている。4対4レースで共通の対戦相手に対する各エージェントのスコアを示す結果は、シナリオの集団を制御すること(「PID対戦相手なし」)、スキルを訓練するために特定のシナリオを使用すること(「スリップストリームなし」)、及び経験再生バッファにおいてスキル固有のデータを整理するために複数のテーブルを使用することの重要性を示している。折れ線グラフは、「スリップストリーム」評価シナリオで様々なエージェントが別のエージェントを追い抜く能力を示している。実線は各条件での1つのシードのパフォーマンスを表し、点線は全てのエポックでの全てのシードの平均を表す。ベースラインスキルは変動することがあるが、その影響は他の条件でより一般的である。
【0072】
実験
ゲーム環境
[0078] 1997年のデビュー以来、グランツーリスモ(登録商標)シリーズは8,000万本以上を売り上げている。最新リリースのGTスポーツは、精密な車両ダイナミクスシミュレーションとレースのリアリズムで知られ、FIAの認可を受け、最初のバーチャルオリンピックのプラットフォームに選ばれるという栄誉を獲得した。GTはプレイステーション(商標)4でのみ実行され、ダイナミクスシミュレーションサイクルは60Hzである。レースには最大20台の車が参加することができる。
【0073】
[0079] エージェントは別個のコンピュータで非同期的に実行され、有線イーサネット上のHTTPを介してゲームと通信する。
【0074】
[0080] エージェントは 60Hzで最新の観察を要求するが、100ms(10Hz)ごとに決定を行って行動を発する。5Hzから60Hzまでの行動周波数がテストされたが、10Hzよりも頻繁に行動してもパフォーマンスが大幅に向上することはなかった。エージェントは、まれではあるが実際に発生するネットワーク遅延に対して堅牢でなければない。エージェントの行動は、人間のゲームコントローラ入力と同じように扱われるが、GT APIでは、現在、行動機能のサブセットのみがサポートされている。例えば、APIでは、エージェントがギアシフト、トラクションコントロールシステム、又はブレーキバランスを制御することはできないが、これらは全てゲーム内でプレイヤーが調整することができる。
【0075】
コンピューティング環境
[0081] 各実験では、近似的に8つのvCPU及び55GBのメモリと結合される1つのNVIDIA V100又はNVIDIA A100の半分のいずれかを含むコンピューティングノード上の単一のトレーナを使用した。これらのトレーナのうちのいくつかはデータセンターで実行され、いくつかはp3.2xlargeインスタンスを使用してAWS EC2で実行された。
【0076】
[0082] 各実験では、いくつかのロールアウトワーカーも使用した。各ロールアウトワーカーは、ゲームコンソール及びコンピューティングノードから構成されていた(図4を参照)。この設定では、ゲームコンソールがゲームを実行し、コンピューティングノードは、行動の計算、ゲームへの行動の送信、トレーナへの経験ストリームの送信、及びトレーナからの更新された方策の取得などのタスクを実行することによって、ロールアウトを管理した(図4を参照)。コンピューティングノードは、近似的に2つのvCPU及び3.3GBのメモリを使用した。通常、1つのワーカーは、新しいトレーニングデータを生成するのではなく、主に中間方策を評価していた。レース方策を訓練するために、近似的に14日間、21のロールアウトワーカーが使用された。
【0077】
行動
[0083] GT APIでは、3つの独立した連続行動、すなわち、スロットル、ブレーキ、及びステアリングを制御することができる。実際にはスロットル及びブレーキが同時に作動することはほとんどないため、エージェントには、スロットル及びブレーキの制御が1つの連続行動次元として提示された。スロットル/ブレーキ及びステアリングは両方とも、[-1,1]の範囲にスケーリングされた。方策ネットワークは、これら2つの次元にわたって学習された平均及び対角共分散行列を含む圧縮正規分布(squashed normal distribution)を出力することによって、行動を選択する。
【0078】
特徴
[0084] ニューラルネットワークに入力される状態特徴は、ゲーム状態から直接取得されるか、より便利な形式に処理されて連結された後、トレーニングのためのモデルに入力される。特徴は、次のものを含むが、これらに限定されない。「タイムトライアル」特徴のセットは、車の3D速度、3D角速度、3D g力、各タイヤの負荷、タイヤのスリップ角、正弦及び余弦成分、ローカルコース表面の傾斜、コース中心線に対する車の向き、及び今後のトラックのセクションを示すコースポイントのセットをキャプチャした。エージェントは、固定バリアに接触した場合、ゲームによってコース外と見なされた場合、及び車の最新のステアリング角度、スロットル強度、及びブレーキ強度のゲームビューの実数値を受信した場合も、インジケータを受け取った。
【0079】
[0085] エージェントを他の車とレースするように訓練する時に、特徴のリストは、また、衝突を検出するための車接触フラグと、車が前方の車からスリップストリーム効果を受けているかどうかを示すスリップストリームスカラーとを含んだ。近くの車を表すために、エージェントは、固定された前方及び後方の距離境界を使用して、どの車をエンコードすべきかを決定した。車は、エージェントとの相対距離によって順序付けられ、相対位置、速度、及びg力を使用して表された。
【0080】
[0086] ニューラルネットワークを訓練する時に、ここで説明した特徴を適切な数値範囲に保つために、各特徴スカラーの範囲に関する知識に基づいて、入力を標準化することができる。サンプルは、範囲が与えられた均一分布から抽出され、予想される平均及び標準偏差が計算されたと想定することができる。これらは、モデルに入力される前に各スカラーのZスコアを計算するために使用された。
【0081】
報酬
[0087] エージェントを訓練するために使用された報酬関数は、複数の個別のコンポーネントを手動で調整した線形結合であった。コンポーネントには、コースの中心線に沿ったエージェントの動きに応じた進捗に対する報酬、コースを外れたり、壁にぶつかったり、ホイールが滑ったりした場合のペナルティ、他の車を追い越した場合のボーナス、他の車にぶつかった場合の様々なペナルティなどがあり、後ろから別の車にぶつかるなど、エージェントが明らかに引き起こした特にひどい衝突には、より大きなペナルティが与えられた。特定のトラック及び車では、これらのコンポーネントの重み付けが異なり、一部は削除された。これにより、レースのエチケットの範囲内で、エージェントがトラック及び車を物理的限界まで利用できるようにした。
【0082】
結果
[0088] エージェントを評価するために、エージェントは、2つのイベントでトップの人間のドライバーと対戦した。第1のイベントでは、世界のトップドライバー3名が、3つのトラックでエージェントのラップタイムを破るよう求められた。人間のドライバーは、エージェントのラップタイムを破ろうとする時に、エージェントの「ゴースト」を見ることを許可された。これらのレースでは、エージェントが3つの試合全てで勝利した。注目すべきことに、少なくとも1人のドライバーが、エージェントから学んだか、エージェントに触発され、イベント以降、自身のタイムトライアルパフォーマンスが向上したという証拠がある。この人間のドライバーは、図7で最速の人間のタイムを記録している(丸で囲まれた数字1で示されている)。
【0083】
[0089] 第2のイベントには、世界最高のゲームドライバーが参加した。このイベントは、各トラックで1レースから構成された。トップのゲームドライバー4名がチームを組み、エージェントの4つのインスタンスと対戦した。各ドライバーに対して図8a~図8cの括弧内に示すように、最終順位に基づいて(1位は10ポイント、2位は8ポイント、3位は6ポイント、残りの順位は5、4、3、2、1)、最長で最も難しいレースは2倍のポイントが加算されて、チームにポイントが付与された。エージェントは、レース前のシーディングラップで最速のタイムを記録したため、エージェントは、3つのレース全てで奇数の位置からスタートした。人間は偶数の位置からスタートし、チーム内での順位を選択した。
【0084】
[0090] エージェントは、3つのレース全てで1位になり、3つのレース全てで最速のラップタイムを記録した。エージェントは、3つのレース全てで1位になり、最初の2つのレースの両方で1、2、4、5位でフィニッシュし、最も複雑な3番目のレースでは1、2、5、6位でフィニッシュした。図8a~図8cは、各レースでのエージェント及び人間の車の配置を示している。これらの結果から、エージェントは、人間に対して104対52の総合スコアを獲得した。結果は、エージェントが世界最高の人間のドライバーを凌駕したことを明確に示している。エージェントは、驚異的なスピードと本物のレーシングスキルを組み合わせ、直線とカーブでトップドライバーを追い抜くことに成功した。
【0085】
[0091] 当業者であれば、本発明の趣旨及び範囲から逸脱することなく多くの変更及び修正を行うことができる。したがって、図示の実施形態はほんの一例として示したものであり、以下の特許請求の範囲によって定められる本発明を限定するものとして解釈すべきではないと理解されたい。例えば、以下では請求項の要素を特定の組み合わせで示しているが、本発明は、開示する要素よりも少ない、多い、又はこれらと異なる要素の他の組み合わせを含むと明確に理解されたい。
【0086】
[0092] 本明細書において本発明及びその様々な実施形態を説明するために使用される単語は、その一般に定義される意味合いだけでなく、本明細書における特別な定義によって、これらが単一種を表す包括的構造、材料又は行為も含むと理解されたい。
【0087】
[0093] したがって、本明細書では、以下の特許請求の範囲の単語又は要素の定義が、文言として明記された要素の組み合わせしか含まないわけではないように定められる。したがって、この意味では、以下の特許請求の範囲内の要素のうちのいずれか1つに代えて2又は3以上の要素の同等の代用物を使用し、或いは請求項の2又は3以上の要素に代えて単一の要素を使用することもできると考えられる。上記では、要素を特定の組み合わせで機能するように説明し、当初はこのように特許請求することもあるが、場合によっては、特許請求する組み合わせから生じる1又は2以上の要素をこれらの組み合わせから削除することもでき、特許請求する組み合わせを下位の組み合わせ又は下位の組み合わせの変形例に向けることもできると明確に理解されたい。
【0088】
[0094] 現在知られている又は後から考案される、当業者から見た本主題からのわずかな変化も、同等に特許請求の範囲に含まれることが明確に想定される。したがって、現在当業者に知られている、及び将来的に当業者に知られる明らかな置換も、規定の要素の範囲に含まれるものとして定められる。
【0089】
[0095] したがって、特許請求の範囲は、上記で具体的に図示し説明したもの、概念的に同等のもの、明らかに代用できるもの、及び本発明の基本的発想を組み込んだものを含むと理解されたい。
【符号の説明】
【0090】
10 トレーナ
12 タスク
14 ERB
16 QR-SAC
18 Q関数
20 方策(π)
22 最新の方策(π)
24 状態、行動、報酬のタプル<s、a、r>
26 ロールアウトワーカー
28 エージェント
100 強化学習(RL)エージェント
102 環境
104 観察
106 行動
108 モデル
110 方策
200 環境
202 シナリオ構成
204 起動条件
206 対戦相手分布
208 レプリケーション数
210 停止条件
212 経験テーブルマッピング
214 シナリオ重み付け
300 深層強化学習アーキテクチャ
302 トレーナ
304 ロールアウトワーカー
306 モデル
308 方策
310 バッチサンプル
312 経験再生バッファ
314 テーブル
316 テーブル重み
318 タスクマネージャ
320 環境
322 データ収集
図1
図2
図3
図4
図5a
図5b
図5c
図5d
図5e
図5f
図6a
図6b
図7
図8a
図8b
図8c
【国際調査報告】