(57)【要約】ゲームアプリケーションのための人工知能（ＡＩ）モデルを処理する方法。本方法は、シナリオの複数のゲームプレイから収集された訓練状態データと、複数のゲームプレイのそれぞれの関連する成功基準とを使用して、ゲームアプリケーションのシナリオの複数のゲームプレイからＡＩモデルを訓練することを含む。本方法は、シナリオの第１のゲームプレイ中に、第１の入力状態データを受信することを含む。本方法は、第１の入力状態データをＡＩモデルに適用して、第１のゲームプレイのシナリオの成功度を示す出力を生成することを含む。本方法は、予め定義された目的に基づいて、出力の分析を実行することを含む。本方法は、分析された出力に基づいて、予め定義された目的を達成するためのアクションを実行することを含む。【選択図】図１Ａ
2021534931.tif 000002
【特許請求の範囲】
【請求項１】
ゲームアプリケーション用の人工知能（ＡＩ）モデルを処理する方法であって、
シナリオの複数のゲームプレイから収集された訓練状態データと、前記複数のゲームプレイのそれぞれの関連する成功基準とを使用して、前記ゲームアプリケーションの前記シナリオの前記複数のゲームプレイから前記ＡＩモデルを訓練し、
前記シナリオの第１のゲームプレイ中に、第１の入力状態データを受信し、
前記第１の入力状態データを前記ＡＩモデルに適用して、前記第１のゲームプレイの前記シナリオの成功度を示す出力を生成し、
予め定義された目的に基づいて、前記出力の分析を実行し、
分析された前記出力に基づいて、前記予め定義された目的を達成するためのアクションを実行する、方法。
【請求項２】
前記ＡＩモデルの訓練には、
複数のサーバで、前記複数のゲームプレイをサポートする前記ゲームアプリケーションの複数のインスタンスを実行し、
前記シナリオの対応するゲームプレイに関連する前記訓練状態データを前記複数のサーバで収集し、
前記成功基準を定義し、
前記訓練状態データと前記成功基準とを深層学習エンジンに提供することが含まれる、請求項１に記載の方法。
【請求項３】
前記複数のゲームプレイが、複数のクライアントデバイスを介して、複数のプレーヤによって操作される、請求項２に記載の方法。
【請求項４】
前記予め定義された目的は、ゲームサポートの提供であり、
前記第１の入力状態データが、分析された前記出力に基づく前記成功基準を満たしていないと判定し、
分析された前記出力と前記第１の入力状態データとに基づいて、前記第１のゲームプレイを操作する第１のプレーヤの第１のユーザプロファイルを判定し、
前記第１のプレーヤのクライアントデバイスに、前記シナリオをプレイする方法に関するレコメンデーションをアクションとして提供し、前記レコメンデーションは、前記第１のユーザプロファイルに基づいて前記第１のプレーヤのスキルを反映しているものである、請求項１に記載の方法。
【請求項５】
前記出力の分析の実行では、
前記予め定義された目的は指導の提供であり、
前記第１の入力状態データの成功度が平均よりも低いと判定することにより、前記第１のゲームプレイを操作する第１のプレーヤの弱点を特定し、
前記弱点に対応する訓練セッションを前記アクションとして実行して、前記第１のプレーヤのクライアントデバイスへ配信する、請求項１に記載の方法。
【請求項６】
前記予め定義された目的は、ゲームプレイに同等性を提供することであり、
前記ＡＩモデルを訓練した後に行われる前記シナリオの第２の複数のゲームプレイ中に複数の入力状態データを受信し、前記第２の複数のゲームプレイは複数のプレーヤによって操作され、前記複数の入力状態データは前記複数のプレーヤの複数のプレーヤ特性メトリクスを含むものであり、
前記複数の入力状態データを前記ＡＩモデルに適用して、前記シナリオの前記第２の複数のゲームプレイの複数の成功度を示す複数の出力を生成し、
前記複数の出力を分析して、前記複数のプレーヤ特性メトリクスに基づいて複数のプレーヤプロファイルを判定し、
前記予め定義された目的を達成するために、前記複数のプレーヤから、対応するプレーヤプロファイルに基づいて、バランスの取れたプレーヤのチームを構築することと
をさらに含む、請求項１に記載の方法。
【請求項７】
プレーヤ特性メトリクスには、
対応するプレーヤの正確さ、または、
前記対応するプレーヤによるコントローラ入力シーケンスを生成する速度、または、
前記シナリオ内のイベントを受けたときの前記対応するプレーヤの反応時間、または、
前記対応するプレーヤの一貫性、または、
前記対応するプレーヤの第１のターゲットと第２のターゲットとの間の遷移時間が含まれる、請求項６に記載の方法。
【請求項８】
前記アクションの実行では、
前記予め定義された目的は、前記ＡＩモデルを自動的に訓練することであり、
前記複数のゲームプレイは、訓練中に前記ＡＩモデルによって操作され、
前記第１の入力状態データが、訓練中に採用された以前のアクションとして、前記ＡＩモデルによって生成され、
前記第１の入力状態データに続いて前記第１のゲームプレイがプレイされるための複数のコントローラ入力のセットを前記分析として判定し、
前記成功基準を満たすと予測され、前記複数のコントローラ入力のセットの中で最も成功度が高いと予測される第１のコントローラ入力のセットを選択し、
前記第１のコントローラ入力のセットを前記ゲームアプリケーションの対応するインスタンスに前記アクションとして配信して実行する、請求項２に記載の方法。
【請求項９】
前記アクションの実行では、
前記予め定義された目的が、前記ゲームアプリケーションを自動的にテストすることであり、
前記第１の入力状態データが、訓練中に以前のアクションとして、前記ＡＩモデルによって生成され、
前記第１の入力状態データに応答するために、異なる順列を前記分析として判定し、各順列は、取得すべきコントローラ入力の一意のセットを含むものであり、
前記アクションとして前記異なる順列を実行して、前記ゲームアプリケーションのプレイにおける異常を発見する、請求項２に記載の方法。
【請求項１０】
前記ゲームアプリケーションの前記複数のゲームプレイが、１つ以上のクライアントデバイスを介して第１のプレーヤによって操作され、
前記訓練されたＡＩモデルは前記第１のプレーヤをシミュレートするバーチャルプレーヤである、請求項２に記載の方法。
【請求項１１】
人工知能（ＡＩ）訓練用のコンピュータプログラムを格納するコンピュータ可読媒体であって、
シナリオの複数のゲームプレイから収集された訓練状態データと、前記複数のゲームプレイのそれぞれの関連する成功基準とを使用して、前記ゲームアプリケーションの前記シナリオの前記複数のゲームプレイから前記ＡＩモデルを訓練するためのプログラム命令と、
前記シナリオの第１のゲームプレイ中に、第１の入力状態データを受信するためのプログラム命令と、
前記第１の入力状態データを前記ＡＩモデルに適用して、前記第１のゲームプレイの前記シナリオの成功度を示す出力を生成するためのプログラム命令と、
予め定義された目的に基づいて、前記出力の分析を実行するためのプログラム命令と、
分析された前記出力に基づいて、前記予め定義された目的を達成するためのアクションを実行するためのプログラム命令とが記録された、コンピュータ可読媒体。
【請求項１２】
ＡＩモデルを訓練するための前記プログラム命令には、
複数のサーバで、前記複数のゲームプレイをサポートする前記ゲームアプリケーションの複数のインスタンスを実行するためのプログラム命令と、
前記シナリオの対応するゲームプレイに関連する前記訓練状態データを前記複数のサーバで収集するためのプログラム命令と、
前記成功基準を定義するためのプログラム命令と、
前記訓練状態データと前記成功基準とを深層学習エンジンに提供するためのプログラム命令とが含まれる、請求項１１に記載のコンピュータ可読媒体。
【請求項１３】
前記複数のゲームプレイが、複数のクライアントデバイスを介して、複数のプレーヤによって操作される、請求項１２に記載のコンピュータ可読媒体。
【請求項１４】
前記予め定義された目的は、ゲームサポートを提供することであり、
前記第１の入力状態データが、分析された前記出力に基づく前記成功基準を満たしていないと判定するためのプログラム命令と、
分析された前記出力と前記第１の入力状態データとに基づいて、前記第１のゲームプレイを操作する第１のプレーヤの第１のユーザプロファイルを判定するためのプログラム命令と、
前記第１のプレーヤのクライアントデバイスに、前記シナリオをプレイする方法に関するレコメンデーションをアクションとして提供することであって、前記レコメンデーションが、前記第１のユーザプロファイルに基づいて前記第１のプレーヤのスキルを反映している、前記提供するためのプログラム命令と、をさらに含む、請求項１１に記載のコンピュータ可読媒体。
【請求項１５】
前記出力の分析を実行するためのプログラム命令は、
前記予め定義された目的が、指導を提供することであり、
前記第１の入力状態データの成功度が平均よりも低いと判定することにより、前記第１のゲームプレイを操作する第１のプレーヤの弱点を特定するためのプログラム命令と、
前記弱点に対応する訓練セッションを前記アクションとして実行して、前記第１のプレーヤのクライアントデバイスへ配信するためのプログラム命令とを含む、請求項１１に記載のコンピュータ可読媒体。
【請求項１６】
コンピュータシステムであって、
プロセッサと、
前記プロセッサに結合されたメモリであって、前記コンピュータシステムによって実行されると、人工知能（ＡＩ）訓練の方法を前記コンピュータシステムに実行させる命令を前記メモリに格納した、前記メモリと、
を備え、前記方法は、
シナリオの複数のゲームプレイから収集された訓練状態データと、前記複数のゲームプレイのそれぞれの関連する成功基準とを使用して、ゲームアプリケーションの前記シナリオの前記複数のゲームプレイからＡＩモデルを訓練し、
前記シナリオの第１のゲームプレイ中に、第１の入力状態データを受信し、
前記第１の入力状態データを前記ＡＩモデルに適用して、前記第１のゲームプレイの前記シナリオの成功度を示す出力を生成し、
予め定義された目的に基づいて、前記出力の分析を実行し、
分析された前記出力に基づいて、前記予め定義された目的を達成するためのアクションを実行するものである、コンピュータシステム。
【請求項１７】
前記方法では、前記ＡＩモデルの訓練には、
複数のサーバで、前記複数のゲームプレイをサポートする前記ゲームアプリケーションの複数のインスタンスを実行し、
前記シナリオの対応するゲームプレイに関連する前記訓練状態データを前記複数のサーバで収集し、
前記成功基準を定義し、
前記訓練状態データと前記成功基準とを深層学習エンジンに提供することが含まれる、請求項１６に記載のコンピュータシステム。
【請求項１８】
前記方法では、
前記複数のゲームプレイが、複数のクライアントデバイスを介して、複数のプレーヤによって操作される、請求項１７に記載のコンピュータシステム。
【請求項１９】
前記方法では、
前記予め定義された目的は、ゲームサポートの提供であり、
前記第１の入力状態データが、分析された前記出力に基づく前記成功基準を満たしていないと判定し、
分析された前記出力と前記第１の入力状態データとに基づいて、前記第１のゲームプレイを操作する第１のプレーヤの第１のユーザプロファイルを判定し、
前記第１のプレーヤのクライアントデバイスに、前記シナリオをプレイする方法に関するレコメンデーションをアクションとして提供することであって、前記レコメンデーションが、前記第１のユーザプロファイルに基づいて前記第１のプレーヤのスキルを反映しているものである、請求項１６に記載のコンピュータシステム。
【請求項２０】
前記方法で、前記出力の分析の実行では、
前記予め定義された目的は指導の提供であり、
前記第１の入力状態データの成功度が平均よりも低いと判定することにより、前記第１のゲームプレイを操作する第１のプレーヤの弱点を特定し、
前記弱点に対応する訓練セッションを前記アクションとして実行して、前記第１のプレーヤのクライアントデバイスへ配信する、請求項１６に記載のコンピュータシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、人工知能（ＡＩ）モデルの訓練あるいはトレーニングに関し、より詳細には、ゲームクラウドシステムのサーバコンソールのネットワークを使用して、リモートプレーヤに関連する訓練データを集めることに関しており、訓練データはＡＩモデルの訓練に使用される。
【背景技術】
【０００２】
人工知能アルゴリズムは、データから学習するように設計されている。ＡＩモデルは、学習されたデータに基づいて構築することができ、ＡＩモデルに与えられる入力に応じて複数の機能を実行するのに十分な柔軟性を有する。
【０００３】
しかし、ＡＩモデルを訓練するためのデータの提供は複雑である。簡単ではない例では、物体を認識するために構成されるＡＩモデルは、膨大な数の物体画像を使用して訓練される。例えば、膨大な数の物体画像がＡＩモデルの訓練に使用される。これらの画像の生成と収集は難しく、非常に時間がかかる。基本的に、ＡＩモデルは、存在するあらゆる種類の物体を認識するように訓練される。物体ごとに、違う視点から撮られた、その物体の複数の画像を収集しようとすることを想像されたい。そのようにして、ＡＩモデルに物体の新しい画像が提示されると、ＡＩモデルは様々な識別特性（例えば、輪郭、色、特徴、サイズなど）を抽出して、それらの特性が学習した物体の特性と一致するかどうかを判断することができる。物体の数は無限であり、それらの物体の様々な見方も無限である。そのため、物体を認識するためのＡＩモデルの訓練は、継続的なプロセスとなり得る。
【０００４】
本開示の実施形態は、このような背景の下になされたものである。
【発明の概要】
【０００５】
本開示の実施形態は、ゲームアプリケーションのゲームプレイに関連するＡＩモデルを訓練するためのシステム及び方法に関する。ＡＩモデルは、深層学習エンジンを介して構築され、ＡＩモデルは、ゲームアプリケーション、及び／またはゲームアプリケーションのゲームプレイに関連する様々な機能性を提供すること（例えば、レコメンデーションの提供、プレーヤの弱点の発見、ゲームアプリケーションの欠陥の発見、プレーヤの訓練、プレーヤへの対戦相手の提供など）を行うように構成される。ＡＩモデルは、複数のゲームプレイをサポートするゲームアプリケーションのインスタンスを実行するように構成されたサーバ（例えば、サーバコンソール、ゲームサーバなど）の広大なネットワークを使用して訓練することが可能である。
例えば、サーバのネットワークは、リモートユーザのゲームプレイをサポートしている場合があり、リモートユーザの各々は、対応するクライアントデバイスを介してゲームアプリケーションをプレイしている。リモートユーザのゲームプレイをサポートする標準的な過程では、訓練データをサーバのネットワークから収集し、ゲームアプリケーションに関連するＡＩモデルの訓練に使用することがある。リモートユーザのゲームプレイをサポートするように構成されたサーバの既存のネットワークから訓練データを集めることにより、訓練データの収集に要する時間と労力とが一元化され、削減される。
つまり、サーバのネットワーク全体にわたって記録することにより、訓練データの入力セットを構築するのに必要な時間が大幅に短縮される。部分的に、ＡＩモデルは、ゲームアプリケーションの複雑な細部とゲームアプリケーションのプレイ方法とを学習する。そのようにして、ゲームアプリケーションのゲームプレイの状況（例えば、特定のゲームプレイのゲーム状態）が入力として与えられると、ＡＩモデルはその状況を分析し、その状況への適切な応答を提供することができる。応答は、予め定義された目的に依存し得る。ＡＩモデルは、様々な目的が与えられてゲームアプリケーションをプレイする方法（例えば、探索的なもの、結末まで単刀直入なもの、最も簡単なプレイ、最も難しいプレイなど）を理解しているので、ＡＩモデルは、どのようにゲームプレイを指示したらいいかを判断する（例えば、該当する目的を達成するために必要な次の入力シーケンスが何かを判断する）ことができる。
具体的にいえば、ＡＩモデルは、ゲームアプリケーション及び／またはゲームアプリケーションのゲームプレイに関連する様々な機能性を実行するために使用することができ、その機能性は、対応する予め定義された目的に依存している。例えば、ＡＩモデルは、練習生ゲーマを究極の対戦相手と対戦させることにより、または練習生ゲーマの弱点を改善するように、様々な課題を通じて練習生ゲーマを指導することにより、全ゲーマのうちで一番となるようプロゲーマを訓練するのに使用することができる。さらに、ＡＩモデルは、訓練データを継続的に収集し、成功基準に基づいて新しい訓練データを既存の訓練データと比較することにより、継続的に改良することが可能である。
【０００６】
一実施形態では、ＡＩ訓練及びＡＩアプリケーションのための方法、より具体的には、ゲームアプリケーション用のＡＩモデルを処理するための方法が開示される。本方法は、シナリオの複数のゲームプレイから収集された訓練状態データと、複数のゲームプレイのそれぞれの関連する成功基準とを使用して、ゲームアプリケーションのシナリオの複数のゲームプレイからＡＩモデルを訓練することを含む。本方法は、シナリオの第１のゲームプレイ中に、第１の入力状態データを受信することを含む。本方法は、第１の入力状態データをＡＩモデルに適用して、第１のゲームプレイのシナリオの成功度を示す出力を生成することを含む。本方法は、予め定義された目的に基づいて、出力の分析を行うことを含む。本方法は、分析された出力に基づいて、予め定義された目的を達成するためにアクションを実行することを含む。
【０００７】
別の実施形態では、ＡＩ訓練及びアプリケーションのためのコンピュータプログラムを格納する非一時的なコンピュータ可読媒体が開示される。本コンピュータ可読媒体には、ゲームアプリケーションのＡＩモデルを処理するためのプログラム命令が含まれている。本コンピュータ可読媒体は、シナリオの複数のゲームプレイから収集された訓練状態データと、複数のゲームプレイのそれぞれの関連する成功基準とを使用して、ゲームアプリケーションのシナリオの複数のゲームプレイからＡＩモデルを訓練するためのプログラム命令を含む。本コンピュータ可読媒体は、シナリオの第１のゲームプレイ中に、第１の入力状態データを受信するためのプログラム命令を含む。本コンピュータ可読媒体は、第１の入力状態データをＡＩモデルに適用して、第１のゲームプレイのシナリオの成功度を示す出力を生成するためのプログラム命令を含む。本コンピュータ可読媒体は、予め定義された目的に基づいて、出力の分析を実行するためのプログラム命令を含む。本コンピュータ可読媒体は、分析された出力に基づいて、予め定義された目的を達成するためのアクションを実行するためのプログラム命令を含む。
【０００８】
さらに別の実施形態では、コンピュータシステムが開示され、本コンピュータシステムは、プロセッサと、プロセッサに結合され、コンピュータシステムによって実行されると、コンピュータシステムに、ゲームアプリケーション用のＡＩモデルを処理する方法を実行させる命令をその中に格納したメモリとを含む。本コンピュータシステムによって実行される方法は、シナリオの複数のゲームプレイから収集された訓練状態データと、複数のゲームプレイのそれぞれの関連する成功基準とを使用して、ゲームアプリケーションのシナリオの複数のゲームプレイからＡＩモデルを訓練することを含む。本方法は、シナリオの第１のゲームプレイ中に、第１の入力状態データを受信することを含む。本方法は、第１の入力状態データをＡＩモデルに適用して、第１のゲームプレイのシナリオの成功度を示す出力を生成することを含む。本方法は、予め定義された目的に基づいて、出力の分析を行うことを含む。本方法は、分析された出力に基づいて、予め定義された目的を達成するためにアクションを実行することを含む。
【０００９】
別の実施形態では、ＡＩ訓練のための方法が開示されている。本方法は、複数のサーバでゲームアプリケーションの複数のインスタンスを実行することを含み、この複数のインスタンスが、ゲームアプリケーションの複数のゲームプレイをサポートする。本方法は、ゲームアプリケーションのシナリオの対応するゲームプレイに関連する訓練状態データを複数のサーバで収集することを含む。本方法は、訓練状態データの成功基準を定義することを含む。本方法は、訓練状態データ及び成功基準を深層学習エンジンに提供することにより、シナリオに対してＡＩモデルを訓練することを含み、訓練されたＡＩモデルは、複数の入力に複数の出力を提供する。
【００１０】
本開示の他の態様は、本開示の原理を一例として示す添付の図面と併せて、以下の発明を実施するための形態から明らかになるであろう。
【００１１】
本開示は、添付の図面と併せて、以下の記述を参照することにより、最も良く理解することができる。
【図面の簡単な説明】
【００１２】
【図１Ａ】本開示の一実施形態による、ゲームアプリケーションのインスタンスを実行するバックエンドサーバのネットワークを介して人工知能（ＡＩ）モデルを訓練するためのシステムであって、このＡＩモデルがゲームアプリケーションに関連する様々な機能性の提供に用いられるシステムである。
【図１Ｂ】本開示の一実施形態による、ＡＩモデルを構築するのに使用される例示的なニューラルネットワークを示す。
【図２Ａ】本開示の一実施形態による、クラウドゲームネットワークを介してゲーミングを提供するためのシステム図２００を示す。
【図２Ｂ】本開示の一実施形態による、クラウドゲームネットワークを介して実行されるゲームアプリケーションの複数のプレーヤにゲーミングを提供し、それらのプレーヤのゲームプレイからＡＩモデルの訓練に使用するための訓練データを収集するシステムであって、このＡＩモデルが、ゲームアプリケーション及び／またはゲームアプリケーションのゲームプレイに関連する様々な機能性を提供するように構成されているシステムを示す。
【図３Ａ】本開示の一実施形態による、ゲームアプリケーションのインスタンスを実行するバックエンドサーバのネットワークを介してＡＩモデルを訓練するための方法であって、このＡＩモデルが、ゲームアプリケーション及び／またはゲームアプリケーションのゲームプレイに関連する様々な機能性を提供するために使用される方法を示す流れ図である。
【図３Ｂ−１】本開示の一実施形態による、ゲームアプリケーションのインスタンスを実行するバックエンドサーバのネットワークを介してＡＩモデルを訓練するためのプロセスであって、このＡＩモデルが、ゲームアプリケーション及び／またはゲームアプリケーションのゲームプレイに関連する様々な機能性を提供するために使用されるプロセスを示すデータ流れ図を示す。
【図３Ｂ−２】本開示の一実施形態による、ゲームアプリケーションのインスタンスを実行するバックエンドサーバのネットワークを介してＡＩモデルを訓練するためのプロセスであって、このＡＩモデルが、ゲームアプリケーション及び／またはゲームアプリケーションのゲームプレイに関連する様々な機能性を提供するために使用されるプロセスを示すデータ流れ図を示す。
【図３Ｃ−１】本開示の一実施形態による、ゲームアプリケーションのゲームプレイのスクリーンショットであり、ゲームアプリケーションのプレイ方法を理解するＡＩモデルを訓練するために使用され得る成功基準の一種を示す。
【図３Ｃ−２】本開示の一実施形態による、複数のゲームプレイからの訓練状態データの収集を説明する図であり、そのゲームプレイをサポートする複数のサーバ上で複数のインスタンスが実行されている。
【図４Ａ】本開示の一実施形態による、ゲームアプリケーションのプレイ方法を理解するように構成されたＡＩモデルを適用するための方法であって、このＡＩモデルが、ゲームアプリケーション及び／またはゲームアプリケーションのゲームプレイに関連する様々な機能性を提供するために使用される方法を示す流れ図である。
【図４Ｂ】本開示の一実施形態による、ゲームアプリケーションのプレイ方法を理解するように構成されたＡＩモデルを適用するために構成されたＡＩプロセッサエンジンであって、このＡＩモデルが、ゲームアプリケーション及び／またはゲームアプリケーションのゲームプレイに関連する様々な機能性を提供するために使用されるＡＩプロセッサエンジンのブロック図である。
【図５Ａ】本開示の一実施形態による、ゲームアプリケーションをプレイするプレーヤにレコメンデーションを提供するためのプロセスであって、このレコメンデーションが、ゲームアプリケーションのインスタンスを実行するバックエンドサーバのネットワークを介して訓練されたＡＩモデルによって提供されるプロセスを示すデータ流れ図を示す。
【図５Ｂ】本開示の一実施形態による、ゲームアプリケーションのインスタンスを実行するバックエンドサーバのネットワークを介して訓練されたＡＩモデルによって判断されたプレーヤプロファイルを使用して、ゲームアプリケーションをプレイするプレーヤのチームのバランスをとるプロセスを示すデータ流れ図を示す。
【図５Ｃ】本開示の一実施形態による、ＡＩモデルによって指示されたオートプレイを介してＡＩモデルを訓練するためのプロセスであって、このＡＩモデルが、ゲームアプリケーションのインスタンスを実行するバックエンドサーバのネットワークを介して訓練されるプロセスを示すデータ流れ図を示す。
【図５Ｄ】本開示の一実施形態による、ゲームアプリケーションのインスタンスを実行するバックエンドサーバのネットワークを介して訓練されたＡＩモデルによって指示されたオートプレーヤを使用して、ゲームアプリケーション内を自動的に回るプロセスを示すデータ流れ図を示す。
【図５Ｅ】本開示の一実施形態による、対戦相手をプレーヤに提供するためのプロセスであって、この対戦相手は、ゲームアプリケーションのインスタンスを実行するバックエンドサーバのネットワークを介して訓練されるＡＩモデルによって指示されるプロセスを示すデータ流れ図を示す。
【図５Ｆ】本開示の一実施形態による、プレーヤの弱点を特定し、それらの弱点を克服するようにプレーヤを訓練するための様々なサービスを提供するプロセスを示すデータ流れ図を示す。
【図６】本開示の様々な実施形態の態様を実行するために使用することができる例示的なデバイスの構成要素を示す。
【発明を実施するための形態】
【００１３】
以下の詳細な説明は、例示を目的として多くの特定の詳細を包含するが、当業者は、以下の詳細への多くの変形及び変更が本開示の範囲内にあることを認識するであろう。したがって、以下に説明する本開示の態様は、この説明に続く特許請求の範囲に対する一般性を全く失わずに、かつその請求項に限定を課さずに示される。
【００１４】
概略的に、本開示の様々な実施形態は、ゲームアプリケーション、及び／またはゲームアプリケーションのゲームプレイに関連するＡＩモデルを構築するために深層学習（機械学習とも呼ばれる）技法を実施するシステム及び方法を説明する。具体的には、ＡＩモデルは、ゲームアプリケーション及び／またはゲームアプリケーションのゲームプレイに関連して、ゲームアプリケーションの所与の状況（例えば、ゲーム状態）に応答して取るべきアクションを予測すること、及び／または判断することを含む、様々な機能性を提供するように構成される。例えば、ＡＩモデルは、全ゲーマのうちで一番となるようプロゲーマを訓練するのに使用することができる。ＡＩモデルは、１つ以上のゲームプレイをサポートするゲームアプリケーションのインスタンスを実行するサーバのネットワークを使用して（例えば、クラウドゲームシステムを介して）訓練（あるいはトレーニング:Training）され及び／または構築される。ＡＩモデルは、成功基準の観点からより成功しているＡＩモデルを介して、ある経路を別の類似した経路によってたどるなど、成功基準に基づいて訓練されてもよい。つまり、ＡＩモデルはより成功した経路を進むことを学習する。さらに、ＡＩモデルは、訓練データを継続的に収集し、新しい訓練データを既存の訓練データと比較し、成功基準に基づいて最良の訓練データを選択することにより、継続的に改良することが可能である。
【００１５】
上記のような様々な実施形態を概略的に理解したうえで、様々な図面を参照して実施形態の詳細例を説明する。
【００１６】
図１Ａは、本開示の一実施形態による、ゲームアプリケーションのインスタンスを実行するバックエンドサーバ（例えば、ゲームクラウドシステム）のネットワークを介して人工知能（ＡＩ）モデル１６０を訓練するためのシステム１００Ａである。ＡＩモデルは、本開示の一実施形態による、ゲームアプリケーション及び／またはゲームアプリケーションのゲームプレイに関連する様々な機能性を提供するために使用される。具体的には、訓練されたＡＩモデル１６０は、ネットワーク１５０（例えば、インターネット）を介して、バックエンドサーバによって実装され得、及び／またはサポートされ得、このバックエンドサーバは、世界中の１つ以上の場所にいる１人以上のプレーヤのゲームアプリケーション及び／またはゲームアプリケーションのゲームプレイに関連する訓練されたＡＩモデル１６０を構築して適用するための人工知能及び／または深層学習、機械学習を（例えば、深層、機械、学習エンジン１９０を介して）提供する。
訓練されたＡＩモデル１６０は、ゲームアプリケーションの複雑な細部、及び／または（例えば、対応するゲームプレイを通して）ゲームアプリケーションのプレイの複雑な細部を学習するように訓練されている。そのようにして、ゲームアプリケーションのゲームプレイの状況（例えば、特定のゲームプレイのゲーム状態）が入力として与えられると、ＡＩモデルはその状況を分析し、その状況への適切な応答を提供することができる。応答は、予め定義された目的（例えば、支援を実施するなど）に依存し得る。例えば、訓練されたＡＩモデル１６０は、ゲームアプリケーションがどのように応答すべきか、または対応するゲームプレイ中にプレーヤがどのように応答すべきかを判断することができる。
【００１７】
図示するように、複数のクライアントデバイス２３０（例えば、デバイス２３０ａ〜２３０ｎ）が、ネットワーク１５０（例えば、インターネット）を介してバックエンドのゲームクラウドシステム（ＧＣＳ）２０１に接続されて、特定のゲームアプリケーションの複数のゲームプレイをサポートする。例えば、複数のリモートプレーヤが、それぞれのクライアントデバイス２３０を介してゲームアプリケーションをプレイしている。クライアントデバイスは、ネットワーク１５０を介してバックエンドサーバシステム（例えば、ＧＣＳ２０１）に接続することができる、少なくともメモリとプロセッサモジュールとを有する任意のタイプのコンピューティングデバイスであり得る。該当するクライアントデバイスは、対応するプレーヤのゲームプレイを実施するために、ゲームプレイを駆動するのに用いられる入力コマンドなどを介して、ローカルまたはリモートで実行されている対応するゲームアプリケーションのインスタンスとインタラクトするように構成されている。
【００１８】
ＧＣＳ２０１は、ゲームアプリケーション１１０の複数のインスタンス（例えば、インスタンス１１０ａ〜１１０ｎ）を実行する複数のサーバ２０５（例えば、サーバ２０５ａ〜２０５ｎ）を含む。例えば、サーバ２０５ａは、対応するクライアントデバイスを介した対応するプレーヤの対応するゲームプレイをサポートするゲームアプリケーションのインスタンス１１０ａを実行するように構成される。サーバ２０５のそれぞれは、対応するゲームプレイをサポートする、ゲームアプリケーションの対応するインスタンスなどを介してゲームアプリケーションを実行することができる、少なくともメモリとプロセッサモジュールとを有するものとして構成され得る。
例えば、各サーバ２０５は、サーバコンソール、ゲーム機、コンピュータなどであってもよい。各サーバ２０５は、ネットワーク１５０を介して、データ１０５（例えば、対応するゲームプレイのレンダリングされた画像及び／またはフレーム）を対応するクライアントデバイスにストリーミングバックするように構成される。そのようにして、対応するクライアントデバイスによって受信されて転送されたコントローラの入力に応答して、計算の複雑なゲームアプリケーションが、バックエンドサーバで実行し続けることができる。各サーバは、画像及び／またはフレームをレンダリングし、次いでそれらをエンコード（例えば、圧縮）して、対応するクライアントデバイスにストリーミングして表示することが可能である。
【００１９】
一実施形態では、ＧＣＳ２０１は、分散型ゲームエンジンシステム及び／またはアーキテクチャを含む。具体的には、ゲームロジックを実行する分散型ゲームエンジンが、対応するゲームアプリケーションのインスタンスとして構成されている。一般に、分散型ゲームエンジンは、ゲームエンジンの各機能を取り込み、それらの機能を分散させて多数の処理エンティティによって実行する。個々の機能は、さらに１つ以上の処理エンティティにわたって分散させることができる。処理エンティティは、金属または物理ハードウェアとして、及び／または仮想コンポーネントまたは仮想マシンとして、及び／または仮想コンテナとしてなど、様々な構成で構成され得る。コンテナは、仮想化されたオペレーティングシステム上で動作するゲームアプリケーションのインスタンスを仮想化するものであるため、仮想マシンとは異なる。処理エンティティは、ＧＣＳ２０１の１つ以上のサーバ（計算ノード）上のサーバ及びその基礎となるハードウェアを利用し、及び／またはそれらに依拠してもよく、サーバは１つ以上のラック上に配置され得る。
種々の処理エンティティに対するそれらの機能の実行の協調、割り当て、及び管理は、分散同期層によって行われる。そのようにして、それらの機能の実行が分散同期層によって制御されて、プレーヤによるコントローラ入力に応答して、ゲームアプリケーション用のメディア（例えば、ビデオフレーム、オーディオなど）を生成することが可能になる。分散同期層は、重要なゲームエンジンコンポーネント／機能が、より効率的な処理のために分散されて再構築されるように、分散処理エンティティ全体で（例えば、負荷バランシングを介して）それらの機能を効率的に実行することが可能である。
【００２０】
ゲームエンジンによって果たされるこれらの様々な機能には、ゲームアプリケーションと、ゲームアプリケーションに関連するサービスとを実行するための基本的なプロセッサベースの機能が含まれる。例えば、プロセッサベースの機能には、２Ｄまたは３Ｄレンダリング、物理学、物理シミュレーション、スクリプト、オーディオ、アニメーション、グラフィックス処理、ライティング、シェーディング、ラスタ化、レイトレーシング、シャドーイング、カリング、変換、人工知能などが含まれる。さらに、ゲームアプリケーションのサービスには、ストリーミング、エンコーディング、メモリ管理、マルチスレッド管理、サービス品質（ＱｏＳ）、帯域幅テスト、ソーシャルネットワーキング、ソーシャルフレンドの管理、ソーシャルネットワークのフレンドとの通信、通信チャネル、テキスティング、インスタントメッセージ、チャットサポートなどが含まれる。
【００２１】
さらに、分散同期層は、処理要求の増加または処理の複雑さに対処するために、より多くの処理エンティティを追加することにより、（個々の分散されたゲームエンジン上で）容易に拡張することができる。つまり、要望に基づいて、処理能力を弾力的に増加または減少させることが可能である。また、この分散型ゲームエンジンシステムは、多くのユーザにわたって拡張することができ、ユーザの各々は、ゲームアプリケーションのマルチプレーヤゲームセッションなどにおいて、対応する分散型ゲームエンジンによってサポートされる。したがって、このマルチプレーヤゲームセッションは、パフォーマンスの問題（例えば、待ち時間）のためにセッション内のプレーヤの最大数を制限するハードウェアの制限によって制約されることがない。その代わりに、このスケーラブルな分散型ゲームエンジンシステムは、ハードウェアの制約を一切受けることなく、マルチプレーヤゲームセッションに参加するプレーヤの数に応じて、分散型ゲームエンジンの数をスケールアップまたはスケールダウンすることができる。そのため、単一のマルチプレーヤゲームセッションに何千人ものプレーヤが参加する可能性がある。
【００２２】
システム１００Ａでは、複数のゲームプレイをサポートするゲームアプリケーションのインスタンスを実行するように構成されたサーバのネットワークを使用して、ＡＩモデル１６０を構築（例えば、訓練）することができる。具体的には、訓練データ３４５は、複数のサーバ２０５におけるゲームアプリケーションのインスタンスの実行から収集される。具体的には、訓練データとして使用するための収集は、ゲームアプリケーションの様々なゲームプレイに関連付けられているリモートプレーヤの誰にも知られることなく行われる。
訓練データ３４５には、対応するゲームプレイを指示するのに使用されるコントローラ入力２３６、ゲームプレイ中に生ずるゲームアプリケーションのインスタンスのゲーム状態１３３、応答メトリクス、成功基準１３５、成功メトリクス、ゲームプレイに対して実行される追加分析などが含まれる。場合によっては、訓練データ３４５を、ゲームアプリケーションのインスタンス（例えば、ゲーム状態メタデータなど）によって生成してもよい。訓練データ３４５は、深層学習及び／または機械学習エンジン１９０への入力として提供される。深層学習エンジン１９０は、図１Ｂ、ならびに図３Ａ、図３Ｂ−１及び図３Ｂ−２に関連して以下にさらに説明するように、訓練データ３４５を使用してＡＩモデル１６０を構築及び／または訓練するように構成されたモデラ１２０を含む。
【００２３】
ＡＩモデル１６０は、ゲームアプリケーションの（例えば、プレーヤによる、自動プレーヤによるなどの）後続のゲームプレイ中（例えば、ＡＩモデルの訓練後）に実装されてもよい。例えば、ＡＩモデルは、ゲームプレイをサポートするバックエンドサーバで実装及び／または実行されてもよく、ゲームプレイは、（プレーヤにとっての）ローカルデバイスで、またはバックエンドサーバで実行されてもよい。例えば、訓練されたＡＩモデルが、深層学習エンジン１９０によって実装されて、ゲームアプリケーションのゲームプレイに様々な機能性を提供する。
【００２４】
図示するように、分析器１４０は、ゲームアプリケーションのゲームプレイに関連して様々な機能性を提供するように訓練されたＡＩモデル１６０を利用するように構成されている。具体的には、入力データストリーム４０５が、訓練されたＡＩモデル１６０を実装するように構成された深層学習エンジン１９０への入力として提供される。訓練されたＡＩモデル１６０は、入力に応答して出力を提供し、その出力は、訓練されたＡＩモデル１６０の予め定義された機能性及び／または予め定義された目的に依存する。
例えば、訓練されたＡＩモデル１６０は、分析器１４０によって使用されて、ゲームプレイ中に、プレーヤによって、またはゲームアプリケーションの対応する実行インスタンスによって、どのようなアクションを取られる必要があるのか判断することができる。分析器１４０は、入力状態データ４０５に応答して、かつ訓練されたＡＩモデル１６０の予め定義された目的を考慮して、アクションを実行するように構成されたアクション生成器１７０を含む。そのようにして、ＡＩモデル１６０を使用して分析器は、ゲームアプリケーションをプレイするプレーヤにサービス（例えば、レコメンデーションの提供、プレーヤの弱点の発見、プレーヤの訓練、プレーヤへの対戦相手の提供、ゲームアプリケーションの欠陥の発見など）を提供することを含む、様々な機能性を提供することができる。
【００２５】
より具体的には、分析器１４０は、ゲームアプリケーション及び／またはゲームアプリケーションのゲームプレイに関連して、様々な機能性を実行するように構成されている。分析器１４０は、所与の入力（例えば、コントローラ入力２３６、ゲーム状態データ１３３、成功基準１３５）に対する訓練されたＡＩモデル１６０からの出力を分析し、応答（例えば、アクション）を提供するように構成されている。
例えば、分析器１４０は、ゲームアプリケーションをプレイしているプレーヤのプロファイルを提供する、プレーヤによるゲームアプリケーションのゲームプレイ中に、プレーヤにレコメンデーション（このレコメンデーションは、ユーザプロファイルを考慮して構造化されたものであり得る）を提供する、ゲームプレイを引き継ぐ、プレーヤプロファイルを用いて、公平にバランスの取れたチーム（例えば、ゲームアプリケーションにおいて互いに競争するチーム）を構築する、ＡＩモデルを自動的に訓練するなどの目的で、ゲームアプリケーションをオートプレイする、ボットの対戦相手を提供する、ゲームアプリケーションを探索する、対応するプレーヤの弱点を判断し、プレーヤが弱点を克服するのに役立つサービスを実行する、などを行い得る。
【００２６】
図１Ｂは、ゲームアプリケーションの複雑な細部と、対応するゲームアプリケーションのプレイ方法とを部分的に学習する訓練されたＡＩモデルを構築するために使用される例示的なニューラルネットワーク１９０（例えば、深層学習エンジン）を示す。そのようにして、ゲームアプリケーションのゲームプレイの状況（例えば、特定のゲームプレイのゲーム状態）が入力として与えられると、ＡＩモデルはその状況を分析し、その状況への適切な応答を提供することができる。例えば、ＡＩモデルは、ゲームアプリケーション及び／またはゲームアプリケーションのゲームプレイに関連して、ゲームアプリケーションの所与の状況（例えば、ゲーム状態）に応答して取るべきアクションを予測すること、及び／または判断することを含む、様々な機能性を提供するために使用されてもよい。
【００２７】
より具体的には、ＡＩモデルは、１つ以上のゲームプレイをサポートするゲームアプリケーションのインスタンスを実行するサーバのネットワークを使用して（例えば、クラウドゲームシステムを介して）訓練され及び／または構築される。この訓練は、本開示の一実施形態に従って、深層学習エンジン１９０によって実施される。一実施形態では、ニューラルネットワーク１９０を、バックエンドサーバのＡＩプロセッサまたはエンジン２１０内に実装し得る。具体的には、図１Ａのシステム１００Ａの深層学習エンジン１９０のモデラ１２０が、任意のプレーヤ（例えば、現実または仮想）による、ゲームアプリケーションの後続のゲームプレイで用いるゲームアプリケーションに関する全てを学習するように構成されている。
【００２８】
具体的にいえば、モデラ１２０と連携する深層学習または機械学習エンジン１９０は、ゲームアプリケーションの複数のインスタンスを実行するように構成された複数のバックエンドサーバで収集される訓練データ３４５を分析するように構成される。深層学習エンジン１９０は、深層学習アルゴリズム、強化学習、または他の人工知能ベースのアルゴリズムを含む人工知能を利用して、ゲームアプリケーション及び／またはゲームアプリケーションのゲームプレイに関連する訓練されたＡＩモデルを構築する。そのようにして、膨大な訓練データの集まりを効率的に収集して、ゲームアプリケーション、及び／またはゲームアプリケーションのゲームプレイの定義を部分的に支援し、それによってゲームアプリケーションが（例えば、訓練されたＡＩモデル内で定義される、種々のシナリオと、それらのシナリオ内の部分とを）提示する可能性のあるコンテキストを含めることができる。
さらに、ＡＩモデルを（例えば、訓練中または訓練後に、ＡＩプロセッサエンジン２１０の分析器１４０などによって）使用して、ゲームアプリケーションの任意の後続のゲームプレイにおいて、ゲームアプリケーション及び／またはゲームアプリケーションのゲームプレイと関連して、様々な機能性を提供することができる。したがって、訓練されたＡＩモデルを用いて、ゲームアプリケーションの後続のゲームプレイに最適なサービスをプレーヤなどに提供することができるように、深層学習エンジン１９０は、ゲームアプリケーション及び／またはゲームアプリケーションのゲームプレイに関する全てを学習することが可能である。
例えば、訓練されたＡＩモデルは、世界一のゲーマとなるようプロゲーマを訓練すること、またはプレーヤの弱点に対処するように設計された様々なチュートリアルセッション（例えば、ビデオ指導、ゲームプレイの課題など）を提供することのために用いることができる。深層学習エンジン１９０は、任意の更新された訓練データが与えられると、訓練されたＡＩモデルを継続的に改良するように構成されてもよい。この改良は、訓練に使用できる訓練データのセットを、それらのセットが、対応する成功基準に基づいて、ゲームアプリケーション内でどのように機能するかに基づいて、決定することに基づいている。
【００２９】
より具体的には、学習及び／またはモデリング段階の間中に、訓練データ３４５が深層学習エンジン１９０によって使用されて、入力データのセットが与えられると、ゲームアプリケーションの特定のゲームプレイがどの程度成功することになるかが予測され、及び／または判断される。結果として得られるゲームアプリケーションのＡＩモデルは、入力データのセットが与えられたゲームアプリケーションの所与のゲームプレイに対して、実行すべきアクションを決定するのに用い得る。すなわち、訓練されたＡＩモデルは、ゲームアプリケーション及び／またはゲームアプリケーションのゲームプレイに関連する様々な機能性を提供するために（例えば、分析器１４０が）使用することができる。例えば、入力データは、（例えば、コントローラ入力などを含む）ゲーム状態データであり得、訓練されたＡＩモデル１６０は、入力データへの応答を生成するのに使用され得る。応答は、ユーザによる要求または知識の有無にかかわらず提供され得る。
【００３０】
例えば、訓練されたＡＩモデル１６０は、ゲームアプリケーションをプレイするプレーヤにレコメンデーションを提供するために、分析器１４０によって使用されることがある。ＡＩモデル１６０は、ゲームアプリケーションに特有の、またはゲームアプリケーションのシナリオに特有の、プレーヤのユーザプロファイルを作成するために、分析器１４０によって使用されることがある。
ＡＩモデル１６０は、例えば、訓練データを介して作成された世界最高の対戦相手を相手にしてプレーヤを訓練する場合、ユーザがセルフプレイを通じて段階的に上達できるように（そして、そのセルフプレイを通じて継続的に改良されるように）、仮想的な自己の対戦相手を相手にしてプレーヤを訓練する（例えば、彼自身または彼女自身の仮想バージョンと対戦する）場合など、ゲームアプリケーション内のボットの対戦相手を制御するために、分析器１４０によって使用されることがある。
ＡＩモデル１６０は、プレーヤの弱点を発見し、その弱点に対処するためのチュートリアルセッションを提供するために、分析器１４０によって使用されることがある。ＡＩモデル１６０は、ゲームアプリケーション内の問題（例えば、グリッチにつながるコードの穴など）を発見するために、分析器１４０によって使用されることがある。必ずしも記述されているわけではないが、さらに他の機能性もサポートされている。
【００３１】
ニューラルネットワーク１９０は、ゲームアプリケーションのプレイの複雑な細部を判断するためにデータセットを分析して、ゲームアプリケーションのゲームプレイ中に判断し得る、及び／または実行し得る、応答及び／またはアクションを含む自動分析ツールの例を構成する。様々なタイプのニューラルネットワーク１９０が可能である。一例では、ニューラルネットワーク１９０は、深層学習エンジン１９０によって実装され得る深層学習をサポートする。よって、教師ありまたは教師なしの訓練を用いたディープニューラルネットワーク、畳み込みディープニューラルネットワーク、及び／またはリカレントニューラルネットワークを実装することができる。別の例では、ニューラルネットワーク１９０は、（例えば、成功基準、成功メトリクスなどの使用による）強化学習、または報酬ベースの学習をサポートする深層学習ネットワークを含む。例えば、ニューラルネットワーク１９０は、強化学習アルゴリズムをサポートするマルコフ決定過程（ＭＤＰ）としてセットアップされる。
【００３２】
一般に、ニューラルネットワーク１９０は、人工ニューラルネットワークなどの相互接続されたノードのネットワークを表す。各ノードは、データからある情報を学習する。相互接続を介して、ノード間で知識を交換することができる。ニューラルネットワーク１９０への入力により、ノードのセットがアクティブ化される。次に、このノードのセットは、他のノードをアクティブ化し、それにより入力に関する知識が伝播される。このアクティブ化プロセスは、出力が提供されるまで、他のノードにわたって繰り返される。
【００３３】
図示されるように、ニューラルネットワーク１９０は、ノードの階層を含む。最下位階層に、入力層１９１が存在する。入力層１９１は、入力ノードのセットを含む。例えば、これらの入力ノードのそれぞれは、ゲームアプリケーションのゲームプレイのインスタンスにマッピングされ、インスタンスは、そのインスタンスを定義する１つ以上の特徴（例えば、コントローラ入力、ゲーム状態、結果データなど）を含む。モデルの中間予測は、ラベル（例えば、出力、特徴、ノード、分類など）を作成する分類器を介して決定される。
【００３４】
最上位階層には、出力層１９３が存在する。出力層１９３は、出力ノードのセットを含む。出力ノードは、例えば、訓練されたＡＩモデル１６０の１つ以上のコンポーネントに関連する判断（例えば、アクション、予測、所与の入力データのセットに対するゲームプレイの成功の予測など）を表す。上記のとおり、出力ノードは、所与の入力のセットに対して、予測されるもしくは予想されるアクション、または学習されたアクションを特定することができ、入力はゲームアプリケーションの様々なシナリオまたはシナリオの一部を定義することができる。これらの結果は、深層学習エンジン１９０によって使用されるパラメータを改良及び／または修正して、所与の入力のセットに対する適切な予測されるまたは予想される応答及び／またはアクションを反復的に判断するために、訓練データの収集に使用されるゲームプレイから得られる、所定の及び真の結果と、または学習されたアクション及び結果と比較することができる。つまり、ニューラルネットワーク１９０内のノードは、パラメータに改良を加える際に、そのような判断を行うために使用することができる訓練されたＡＩモデル１６０のパラメータを学習する。
【００３５】
具体的には、入力層１９１と出力層１９３との間には、隠れ層１９２が存在する。隠れ層１９２は、「Ｎ」個の隠れ層を含み、「Ｎ」は、１以上の整数である。次に、隠れ層のそれぞれはまた、隠れノードのセットも含む。入力ノードは、隠れノードと相互接続されている。同様に、隠れノードは、出力ノードと相互接続されているため、入力ノードは、出力ノードと直接相互接続されていない。複数の隠れ層が存在する場合、入力ノードは、最下位の隠れ層の隠れノードと相互接続される。次に、これらの隠れノードは、次の隠れ層の隠れノードと相互接続され、以下同様に続く。次の最上位の隠れ層の隠れノードは、出力ノードと相互接続される。相互接続は、２つのノードを接続する。相互接続は、学習することができる数値の重みを有し、ニューラルネットワーク１９０を入力に適応させて、学習可能にする。
【００３６】
一般に、隠れ層１９２により、入力ノードに関する知識が、出力ノードに対応する全てのタスク間で共有されることが可能となる。そのようにするため、一実装例では、隠れ層１９２を介して入力ノードに変換ｆが適用される。一例では、変換ｆは非線形である。例えば、整流関数ｆ（ｘ）＝ｍａｘ（０，ｘ）を含む様々な非線形変換ｆが利用可能である。
【００３７】
ニューラルネットワーク１９０はまた、最適解を見つけるためにコスト関数ｃを使用する。コスト関数は、所与の入力ｘに関してｆ（ｘ）と定義されたニューラルネットワーク１９０によって出力される予測と、グラウンドトゥルースまたはターゲット値ｙ（例えば見込まれる結果）との偏差を測定する。最適解は、最適解のコストよりコストの低い解がない状況を表す。コスト関数の例として、グラウンドトゥルースラベルが利用可能なデータの場合、予測とグラウンドトゥルースとの平均二乗誤差が挙げられる。学習プロセス中に、ニューラルネットワーク１９０は、誤差逆伝播アルゴリズムを使用して、様々な最適化方法を採用し、コスト関数を最小化するモデルパラメータ（例えば隠れ層１９２内のノード間の相互接続の重み）を学習し得る。このような最適化方法の一例として、確率的勾配降下法が挙げられる。
【００３８】
一例では、ニューラルネットワーク１９０用の訓練データセットは、同じデータ領域からのものであり得る。例えば、ニューラルネットワーク１９０は、所与の入力のセットまたは入力データに対して実行すべき予測されるまたは予想される応答及び／またはアクションを学習するように訓練される。本例では、データ領域には、ベースライン入力データを定義するために、複数のユーザの複数回のゲームプレイを通じて収集されたゲームプレイデータが含まれている。別の例では、訓練データセットは、ベースライン以外の入力データを含むように、様々なデータ領域からのものである。
【００３９】
したがって、ニューラルネットワーク１９０は、所与の入力のセット（ゲーム状態などのゲームアプリケーションの状況）に対して実行すべき予測されるまたは予想される応答及び／またはアクションを、部分的に予測または決定することができる。これらの予測結果に基づいて、ニューラルネットワーク１９０はまた、入力のセットが与えられたときに実行すべきそれらの結果及び／またはアクション（例えば、ゲームアプリケーション及び／またはゲームアプリケーションのゲームプレイに関する様々な機能性）の決定を提供するために使用される、訓練されたＡＩモデル１６０を定義し得る。
【００４０】
図２Ａは、本開示の一実施形態による、ゲームアプリケーション及び／またはゲームアプリケーションのゲームプレイに関するＡＩモデルを構築及び／または訓練するために使用される訓練データの収集をサポートするシステム２００Ａを示す。具体的には、システム図２００Ａは、ゲームクラウドシステム（ＧＣＳ）２０１に格納されたビデオゲームへのアクセスとそのプレイとを可能にする。一般的に言えば、ゲームクラウドシステムＧＣＳ２０１は、ネットワーク２２０を介して動作して、ゲームアプリケーションをプレイする複数のプレーヤを、対応するゲームプレイを通じてサポートするクラウドコンピューティングシステムであり得る。それらのゲームプレイに関連しているデータは、ゲームアプリケーション及び／またはゲームアプリケーションのゲームプレイに関するＡＩモデルを構築及び／または訓練に使用される訓練データとして提供され得る。具体的には、システム２００Ａは、ＧＣＳ２０１、１つ以上のソーシャルメディアプロバイダ２４０、及びクライアントデバイス２３０を含み、これらは全て、ネットワーク１５０（例えば、インターネット）を介して接続されている。１つ以上のユーザデバイスが、ＧＣＳ２０１及びソーシャルメディアプロバイダ２４０によって提供されるサービスにアクセスするために、ネットワーク１５０に接続され得る。
【００４１】
一実施形態では、ゲームクラウドシステム２０１は、ゲームサーバ２０５と、ビデオレコーダ２７１と、タグプロセッサ２７３と、ユーザプロファイルマネージャを含むアカウントマネージャ２７４と、ゲーム選択エンジン２７５と、ゲームセッションマネージャ２８５と、ユーザアクセスロジック２８０と、ネットワークインタフェース２９０と、ソーシャルメディアマネージャ２９５とを含む。ＧＣＳ２０１は、ゲーム状態ストア、ランダムシードストア、ユーザセーブデータストア、スナップショットストアなどの複数のゲームストレージシステムをさらに含んでもよく、これらは一般にデータストア２６０に格納されてもよい。
他のゲームストレージシステムとしては、ゲームコードストア２６１、記録ゲームストア２６２、タグデータストア２６３、ビデオゲームデータストア２６４、及びゲームネットワークユーザストア２６５があり得る。一実施形態では、ＧＣＳ２０１は、ゲームアプリケーション、サービス、ゲーム関連のデジタルコンテンツ、及びシステム、アプリケーション、ユーザ、及びソーシャルネットワーク間の相互接続性を提供することができるシステムである。ＧＣＳ２０１は、ネットワークインタフェース２９０経由でソーシャルメディアマネージャ２９５を介して、ユーザデバイス２３０及びソーシャルメディアプロバイダ２４０と通信し得る。ソーシャルメディアマネージャ２９５は、１人以上の友人を関連付けるように構成され得る。一実施形態では、各ソーシャルメディアプロバイダ２４０は、ユーザのソーシャルネットワーク接続を示す少なくとも１つのソーシャルグラフ２４５を含む。
【００４２】
プレーヤ／ユーザ５は、ゲームセッションマネージャ２８５を介して、ＧＣＳ２０１によって提供されるサービスにアクセスすることができる。例えば、アカウントマネージャ２７４は、プレーヤ５によるＧＣＳ２０１への認証及びアクセスを可能にする。アカウントマネージャ２７４は、会員ユーザ／プレーヤに関する情報を記憶する。例えば、各会員ユーザのユーザプロファイルが、アカウントマネージャ２７４によって管理されてもよい。そのようにして、会員情報が、認証の目的でアカウントマネージャ２７４によって使用され得る。例えば、アカウントマネージャ２７４は、会員ユーザに関連するユーザ情報を更新し、管理するために使用され得る。さらに、会員ユーザに所有されているゲームタイトルが、アカウントマネージャ２７４によって管理されてもよい。そのようにして、データストア２６４に保存されているビデオゲームは、それらのビデオゲームを所有する全ての会員ユーザが利用できるようになっている。
【００４３】
一実施形態では、ユーザ、例えば、プレーヤ５は、ネットワーク１５０を介した接続により、クライアントデバイス２３０を手段として、ＧＣＳ２０１及びソーシャルメディアプロバイダ２４０が提供するサービスにアクセスすることができる。クライアントデバイス２３０は、プロセッサ及びメモリを有する、有線または無線の、携帯型または非携帯型の任意のタイプのデバイスを含むことが可能である。一実施形態では、クライアントデバイス２３０は、スマートフォン、タブレットコンピュータ、または携帯型のフォームファクタにタッチスクリーン機能を提供するハイブリッドの形態であり得る。１つの例示的なデバイスとしては、オペレーティングシステムを実行し、ネットワーク１５０を介して取得され、ローカルの携帯型デバイス（例えば、スマートフォン、タブレット、ラップトップ、デスクトップなど）上で実行され得る様々なアプリケーション（アプリ）へのアクセスを提供される携帯型電話デバイスがあり得る。
【００４４】
クライアントデバイス２３０は、プレーヤ５が入力コマンド２３６を送信し、ＧＣＳ２０１及びソーシャルメディアプロバイダ２４０から受信したデータ及び／または情報２３５を表示するためのインタフェースとして機能するディスプレイ２３２を含む。ディスプレイ２３２は、タッチスクリーンとして、または典型的にはフラットパネルディスプレイ、陰極線管（ＣＲＴ）、もしくはディスプレイをレンダリングする機能がある他のデバイスによって提供されるディスプレイとして構成し得る。あるいは、クライアントデバイス２３０は、デスクトップコンピュータまたはラップトップコンピュータと同様に、そのディスプレイ２３２をデバイスとは別に持つことができる。
【００４５】
一実施形態では、クライアントデバイス２３０は、プレーヤ５がビデオゲームをプレイできるように、ＧＣＳ２０１と通信するように構成される。例えば、プレーヤ５は、ゲーム選択エンジン２７５を介して、ビデオゲームデータストア２６４で利用可能なビデオゲームを（例えば、ゲームタイトルなどによって）選択することができる。そのようにして、選択されたビデオゲームが、有効化され、ロードされてＧＣＳ２０１に搭載のゲームサーバ２０５によって実行される。一実施形態では、ゲームプレイは、クライアントデバイス２３０がＧＣＳ２０１からゲームビデオフレーム２３５のストリームを受信するように、主としてＧＣＳ２０１で実行され、ゲームプレイを駆動するためのユーザ入力コマンド２３６がＧＣＳ２０１に返信される。ストリーミングのゲームプレイから受信したビデオフレーム２３５は、クライアントデバイス２３０のディスプレイ２３２に表示される。
【００４６】
一実施形態では、プレーヤ５がプレイするために利用可能なゲームタイトルを選択した後、選択したゲームタイトルのゲームセッションが、ゲームセッションマネージャ２８５を介してプレーヤ５によって開始され得る。ゲームセッションマネージャ２８５は、最初に、データストア１４０内のゲーム状態ストアにアクセスして、（選択されたゲームを対象にして）プレーヤ５が最後にプレイしたセッションの保存されたゲーム状態を検索し、もしあれば、プレーヤ５が前回のゲームプレイ停止ポイントからゲームプレイを再開できるようにする。再開点または開始ポイントが特定されると、ゲームセッションマネージャ２８５は、ゲームプロセッサ２１０内のゲーム実行エンジンに、選択されたゲームタイトルのゲームコードをゲームコードストア２６１から実行するように通知し得る。ゲームセッションが開始された後、ゲームセッションマネージャ２８５は、ゲームビデオフレーム２３５（すなわち、ストリーミングビデオデータ）を、ネットワークインタフェース２９０を介して、クライアントデバイス、例えば、クライアントデバイス２３０に渡し得る。
【００４７】
ゲームプレイ中、ゲームセッションマネージャ２８５は、ゲームプロセッサ２１０、記録エンジン２７１、及びタグプロセッサ２７３と通信して、ゲームプレイまたはゲームプレイセッションの記録（例えば、ビデオ）を生成し、または保存してもよい。一実施形態では、ゲームプレイのビデオ録画には、ゲームプレイ中に入力され、または提供されたタグコンテンツ、及びその他のゲーム関連メタデータを含めることができる。タグコンテンツは、スナップショット経由で保存することもできる。ゲームプレイのビデオ録画は、そのゲームプレイに対応する任意のゲームメトリクスと共に、記録ゲームストア２６２に保存してもよい。任意のタグコンテンツをタグデータストア２６３に保存することができる。
【００４８】
ゲームプレイ中、ゲームセッションマネージャ２８５は、ゲームプロセッサ２０４と通信して、ビデオゲームの対応するゲームプレイの結果に影響を与えるために使用されるユーザ入力コマンド２３６を配信し、取得し得る。プレーヤ５が入力した入力コマンド２３６は、クライアントデバイス２３０からＧＣＳ２０１のゲームセッションマネージャ２８５に送信され得る。ゲームプレイを駆動するために使用される入力コマンドを含む入力コマンド（例えば、コントローラ入力）２３６は、タグコンテンツ（例えば、テキスト、画像、ビデオ録画クリップなど）などを含む、ユーザのインタラクティブな入力を含んでもよい。ゲーム入力コマンドと同様に任意のユーザプレイメトリクス（ユーザがゲームをプレイした時間など）も、ゲームネットワークのユーザーストアに保存され得る。ビデオゲームのゲームプレイに関連する選択情報を使用して、ユーザが利用可能な複数の特徴を有効にすることができる。
【００４９】
図２Ｂは、本開示の一実施形態による、ゲームアプリケーション及び／またはゲームアプリケーションのゲームプレイに関するＡＩモデル１６０を構築及び／または訓練するために使用される訓練データの収集を提供するシステム２００Ｂであって、ゲームプレイをサポートするゲームアプリケーションのインスタンス及び／またはインスタンス化が、クラウドゲームネットワーク上で実行されるシステム２００Ｂを示す。さらに、システム２００Ａは、ゲームアプリケーション及び／またはゲームアプリケーションのゲームプレイに関連する様々な機能性を提供する（例えば、レコメンデーションを提供する、プレーヤを訓練する、プレーヤの弱点を発見する、ボットの対戦相手を提供するなど）ように訓練されたＡＩモデル１６０の実装をサポートするように構成されている。
【００５０】
図示するように、システム２００Ｂは、本開示の一実施形態に従って、クラウドゲームネットワークを介して実行されるゲームアプリケーションをプレイする複数のプレーヤ２１５（例えば、プレーヤ５Ｌ、５Ｍ・・・５Ｚ）にゲーム制御を提供する。いくつかの実施形態では、クラウドゲームネットワークは、ホストマシンのハイパーバイザ上で動作する複数の仮想マシン（ＶＭ）を含むゲームクラウドシステム２１０であってもよく、１つ以上の仮想マシンが、ホストのハイパーバイザで利用可能なハードウェアリソースを利用して、ゲームプロセッサモジュールを実行するように構成されている。
他の実施形態では、ＧＣＳ２０１は、ゲームアプリケーションの対応するインスタンスとして構成された、ゲームロジックを実行している分散型ゲームエンジンシステム及び／またはアーキテクチャを含む。一般に、分散型ゲームエンジンは、ゲームエンジンの各機能を取り込み、それらの機能を分散させて、ＧＣＳ２０１の１つ以上のサーバにまたがる多数の処理エンティティによって実行する。個々の機能は、さらに１つ以上の処理エンティティにわたって分散させることができる。ここで図面を参照すると、同様の参照番号は、同一の部分または対応する部分を示す。
【００５１】
図示されるように、ゲームクラウドシステム２１０は、複数のインタラクティブビデオゲームまたはゲームアプリケーションへのアクセスを提供するゲームサーバ２０５を含む。ゲームサーバ２０５は、クラウド内で利用可能な任意の種類のサーバコンピューティングデバイスであり得、１つ以上のホスト上で実行される１つ以上の仮想マシンとして構成され得る。例えば、ゲームサーバ２０５は、ユーザのゲームアプリケーションのインスタンスをインスタンス化するゲームプロセッサをサポートする仮想マシンを管理し得る。
よって、複数の仮想マシンに対応付けられたゲームサーバ２０５の複数のゲームプロセッサは、複数のユーザ２１５のゲームプレイに対応付けられたゲームアプリケーションの複数のインスタンスを実行するように構成される。そのようにして、バックエンドサーバサポートは、複数のゲームアプリケーションのゲームプレイのメディア（例えば、ビデオ、オーディオなど）のストリーミングを、対応する複数のユーザに提供する。後述するように、ゲームアプリケーションのインスタンスを実行する複数のゲームプロセッサから収集された訓練データは、ゲームアプリケーション及び／またはゲームアプリケーションのゲームプレイに関連するＡＩモデルを構築及び／または訓練するために使用される。
【００５２】
複数のプレーヤ２１５は、ネットワーク１５０を介してゲームクラウドシステム２１０にアクセスし、プレーヤ（例えば、プレーヤ５Ｌ、５Ｍ・・・５Ｚ）は、対応するクライアントデバイス２３０’を介してネットワーク１５０にアクセスする。クライアントデバイス２３０’は、図１Ａのクライアントデバイス２３０と同様に構成されてもよく、または計算機能を提供するバックエンドサーバとのインタフェースを提供するシンクライアントとして構成されてもよい。具体的には、対応するプレーヤ５Ｌのクライアントデバイス２３０’は、インターネットなどのネットワーク１５０を介してゲームアプリケーションへのアクセスを要求し、ゲームサーバ２０５によって実行され、対応するプレーヤ５Ｌに関連付けられたディスプレイデバイスに配信されるゲームアプリケーション（例えば、ビデオゲーム）のインスタンスをレンダリングするように構成されている。
例えば、プレーヤ５Ｌは、クライアントデバイス２３０’を介して、ゲームサーバ２０５のゲームプロセッサ上で実行されるゲームアプリケーションのインスタンスとインタラクトし続け得る。より具体的には、ゲームアプリケーションのインスタンスは、ゲームアプリケーションに対応するゲームロジック１７７を実行しているゲームタイトル実行エンジン２１１（例えば、ゲームエンジン）によって実行される。ゲームアプリケーションを実施するゲームロジック（例えば、実行可能コード）１７７は、先に説明したデータストア２６０、またはゲームコードストア２６１、またはビデオゲームストア２６４などを介して格納され、アクセス可能であり、ゲームアプリケーションを実行するのに使用される。ゲームタイトル処理エンジン２１１は、図示のように、複数のゲームロジック１７７を用いて、複数のゲームアプリケーションをサポートすることができる。
【００５３】
上記のとおり、クライアントデバイス２３０’は、例えば、ゲームコントローラ、タブレットコンピュータ、キーボード、ビデオカメラによって取り込まれるジェスチャ、マウス、タッチパッドなど、様々な種類の入力デバイス１１から入力を受け取り得る。クライアントデバイス２３０’は、ネットワーク１５０を介してゲームサーバ２０５に接続することができる、少なくともメモリとプロセッサモジュールとを有する任意のタイプのコンピューティングデバイスであり得る。また、対応するプレーヤのクライアントデバイス２３０’は、リモートで動作するゲームタイトル実行エンジン２１１によって実行されるレンダリング画像を生成し、そのレンダリング画像を、ヘッドマウントディスプレイ（ＨＭＤ）１０２を含むディスプレイに表示するように構成されている。例えば、対応するクライアントデバイス２３０’は、ゲームプレイを駆動するために使用される入力コマンドなどを介して、対応するプレーヤのゲームプレイを実施するためにリモートで実行される対応するゲームアプリケーションのインスタンスとインタラクトするように構成される。
【００５４】
別の実施形態では、先に説明したマルチプレーヤ処理エンジン１１９は、ゲームアプリケーションのマルチプレーヤゲームセッションを制御することを提供する。具体的には、マルチプレーヤ処理エンジン１１９がマルチプレーヤゲームセッションを管理している時、マルチプレーヤセッションコントローラ１１６は、マルチプレーヤセッション内のユーザ及び／またはプレーヤのそれぞれと通信セッションを確立し維持するように構成される。このように、マルチプレーヤセッションコントローラ１１６に制御されることにより、セッション内のプレーヤは相互に通信することができる。
【００５５】
さらに、マルチプレーヤ処理エンジン１１９は、各プレーヤの該当ゲーム環境内でプレーヤ間のインタラクションを可能にするために、マルチプレーヤロジック１１８と通信する。具体的には、状態共有モジュール１１７は、マルチプレーヤゲームセッションにおけるプレーヤの各々の状態を管理するように構成されている。例えば、状態データは、上記のとおり、特定のポイントでの対応するプレーヤ（例えば、プレーヤ５Ｌ）の（ゲームアプリケーションの）ゲームプレイの状態を定義するゲーム状態データを含み得る。さらに、状態データは、上記のとおり、対応するプレーヤのためにビデオゲームをパーソナライズする情報を含む、ユーザ／プレーヤのセーブデータを含んでもよい。例えば、状態データは、ユーザのキャラクタに対応付けられた情報を含むため、ビデオゲームは、そのユーザに特有であり得るキャラクタ（例えば形状、外観、衣服、兵器類など）でレンダリングされる。このようにして、状態共有データ１１７及びマルチプレーヤロジック１１８を用いるマルチプレーヤ処理エンジン１１９は、マルチプレーヤゲームセッションに参加するユーザのゲーム環境のそれぞれに、オブジェクト及びキャラクタをオーバーレイ／挿入することができる。これにより、マルチプレーヤゲームセッション内のユーザ同士が、それぞれの（例えば、スクリーン上に表示されている）ゲーム環境を介して交流することが可能になる。
【００５６】
さらに、ＧＣＳ２０１内に統合され得るか、またはＧＣＳ２０１から遠隔に配置され得るＡＩプロセッサ２１０を介したバックエンドサーバのサポートは、ゲームアプリケーション及び／またはゲームアプリケーションのゲームプレイに関連するＡＩモデル１６０の構築及び／または訓練を提供し、ＡＩモデル１６０の実装及び／または適用をも提供し得る。具体的には、バックエンドのＡＩプロセッサ２１０は、ゲームアプリケーション及び／またはゲームアプリケーションの後続のゲームプレイに関連して、訓練されたＡＩモデルを（例えば、モデラ１２０を介して）構築して（例えば、分析器１４０を介して）適用するために、任意の所与の入力のセット（例えば、ゲーム状態などを含む、ゲームアプリケーションのゲームプレイの状況を定義するもの）に対して実行されることになる応答及び／またはアクション（例えば、コントローラ入力など）を部分的に学習及び／またはモデル化するように構成された上記の深層学習エンジン１９０を含む。
例えば、深層学習エンジン１９０内のモデラ１２０は、訓練されたＡＩモデル１６０を深層学習エンジン１９０内で適用する目的のために、入力層１９１、隠れ層１９２、及び出力層１９３の様々なノードを定義する深層学習エンジン１９０内で定義されたパラメータを設定するように動作し得る。モデラ１２０は、上記のとおり、訓練中に使用される１つ以上の成功基準に基づいて、ＡＩモデル１６０のパラメータを設定することができる。そのようにして、ＡＩモデル１６０は、ゲームアプリケーション及び／またはゲームアプリケーションのゲームプレイに関連して様々な機能性を提供するためにＡＩモデル１６０を使用することができるように、ゲームアプリケーションの複雑な細部及び／またはゲームアプリケーションのプレイの複雑な細部を学習するように訓練される。（例えば、ゲーム状態などの所与の状況に応答して、コントローラ入力を含む、どのようなアクションを取るべきかを予測及び／または決定する）。したがって、分析器１４０は、状況への適切な応答を提供するために、ゲームプレイの状況を定義する入力を受けて、ＡＩモデル１６０からの出力、及び任意選択で入力（例えば、入力状態データ）を分析することができる。ここで応答は、予め定義された目的（例えば、支援の提供、指導の提供など）に依存し得る。
【００５７】
システム１００Ａ及びシステム２００Ｂの様々なモジュールの詳細な説明と共に、流れ図３００Ａは、本開示の一実施形態による、ゲームアプリケーションのインスタンスを実行するバックエンドサーバのネットワークを介してＡＩモデルを訓練するための方法を開示しており、このＡＩモデルは、ゲームアプリケーション及び／またはゲームアプリケーションのゲームプレイに関連する様々な機能性を提供するために使用される。流れ図３００Ａは、上記のバックエンドサーバ内（例えば、深層学習エンジン１９０と組み合わせたゲームクラウドシステム２０１内）で実施されてもよい。
【００５８】
具体的には、３０２において、本方法は、複数のサーバでゲームアプリケーションの複数のインスタンスを実行することを含み、この複数のインスタンスが、ゲームアプリケーションの複数のゲームプレイをサポートする。例えば、複数のサーバは、先に説明したゲームクラウドシステム（例えば、ＧＣＳ２０１）内で動作していてもよく、ゲームアプリケーションが、対応するプレーヤからリモートで実行され、メディア（例えば、ビデオフレーム、オーディオなど）が、ネットワークを介してプレーヤのクライアントデバイスにストリーミングされる。
その場合、ゲームアプリケーションの複数のゲームプレイは、複数のプレーヤにより、対応するクライアントデバイスを介して制御され、クライアントデバイスはサーバから遠隔にある。他の実施態様では、ゲームアプリケーションはユーザ／プレーヤに対してローカルで実行され、実行中のゲームアプリケーションからのメタデータは、分析の目的で（例えば、ＡＩモデルを訓練する目的で）、またはマルチプレーヤゲームセッションをサポートするために、ネットワークを介してバックエンドサーバに配信される。さらに他の実施形態では、複数のゲームプレイは、（例えば、ＡＩモデルを自己訓練する目的で）自動的に（例えば、ＡＩを介して）制御されてもよい。
【００５９】
３０４において、本方法は、ゲームアプリケーションのシナリオの対応するゲームプレイに関連する訓練状態データを複数のサーバで収集することを含む。訓練状態データには、ゲームプレイに関連付けられたメタデータが含まれていて、コントローラの入力、ゲームの状態、ゲームプレイの進捗、シナリオの結果（例えば、成功または失敗）、ユーザプロファイル情報などが含まれ得る。つまり、訓練状態データには、ゲームアプリケーション及び／またはゲームアプリケーションのゲームプレイの理解に関連する可能性のある何らかのデータが含まれる。ゲームアプリケーションのインスタンスはバックエンドサーバで実行されているので、訓練状態データへのアクセスは、それらのゲームプレイの関連プレーヤが積極的に参加しなくても直ちに利用可能である。つまり、プレーヤは、訓練状態データが収集されていることさえ知らない場合がある。
【００６０】
訓練状態データは、特定のポイント（例えばゲームプレイ中）でのゲームアプリケーションの状態及び／または状況を定義するゲーム状態データを含み得る。例えば、ゲーム状態データには、ゲームキャラクタ、ゲームオブジェクト、ゲームオブジェクトの属性、ゲーム属性、ゲームオブジェクトの状態、グラフィックオーバーレイなどがあり得る。そのようにして、ゲーム状態データにより、ビデオゲームの対応するポイントで存在していたゲーム環境を生成することが可能になる。ゲーム状態データには、ＣＰＵ、ＧＰＵ、メモリの状態、レジスタ値、プログラムカウンタ値、プログラマブルＤＭＡ状態、ＤＭＡ用のバッファデータ、オーディオチップ状態、ＣＤ−ＲＯＭ状態など、ゲームプレイのレンダリングに使用されるあらゆるデバイスの状態が含まれることもある。ゲーム状態データは、そのポイントからビデオゲームを実行するために、実行コードのどの部分をロードする必要があるかを特定することもできる。全てのゲーム状態データを取り込んで保存する必要はなく、スナップショットに対応するポイントで実行可能コードがゲームを開始するのに十分なデータだけでよい。
【００６１】
また、訓練状態データには、ゲームアプリケーションを対応するユーザ向けにパーソナライズするユーザセーブデータが含まれ得る。これには、ユーザのキャラクタに関連付けられた情報が含まれるため、ビデオゲームは、そのユーザ特有のものであり得るキャラクタ（例えば、形状、外観、衣服、武器など）でレンダリングされる。このようにして、ユーザセーブデータは、対応するユーザのゲームプレイ用のキャラクタの生成を可能にし、そのキャラクタは、スナップショットに関連付けられたビデオゲームのポイントに対応する状態を有する。例えば、ユーザセーブデータには、ゲームアプリケーションをプレイする際に対応するプレーヤによって選択されたゲームの難易度、ゲームレベル、キャラクタの属性、キャラクタの位置、残りのライフ数、使用可能なライフの総数、アーマー、トロフィー、タイムカウンタの値などが含まれる。ユーザセーブデータには、対応するプレーヤを識別するユーザプロファイルデータが含まれることもある。
【００６２】
さらに、訓練状態データには、ＡＩを介して生成されたランダムシードデータが含まれることもある。ランダムシードデータは、元のゲームコードの一部ではない場合がありますが、オーバーレイに追加して、ゲーム環境をより現実的に見せ、及び／またはユーザにとって魅力のあるものにすることができる。つまり、ランダムシードデータは、プレーヤのゲームプレイにおける対応するポイントに存在するゲーム環境に、追加の特徴を提供するものである。例えば、ＡＩキャラクタがランダムに生成され、オーバーレイで提供される場合がある。ＡＩキャラクタは、ユーザエクスペリエンスを向上させるためにゲーム環境に配置され、ゲームプレイに影響を与える場合もあれば、与えない場合もある。例として、都市のシーンでは、このようなＡＩキャラクタがランダムに通りを歩くことがある。また、他のオブジェクトを生成し、オーバーレイで提示することもある。例えば、背景の雲と空間を飛ぶ鳥とを生成し、オーバーレイで提示することができる。
【００６３】
ゲームアプリケーションは、１つ以上のシナリオを含み得る。シナリオとは、例えば、レベルの最後にいるボスと戦う、あるいは目的地への唯一の道を塞いでいるオブジェクトまたは障害物を飛び越える、あるいは障害物を通過する（例えば、山を登る、攻撃的なワニがいる湖または川を渡る、など）など、ゲームアプリケーションの重要なポイント（例えば、ゲームアプリケーションを進めるために必要なポイント）のことであり得る。シナリオは、ゲームアプリケーションの中間タスクを完了する場合など、それほど重要ではないことの場合もある。これらの場合、シナリオには、報酬（例えば、お金、重要な剣など）を手に入れるためのタスクの完了が含まれ得る。ＡＩモデルを訓練を目的としたデータの収集は、対象となる１つ以上のシナリオでのゲームプレイに関連するデータに限定される場合がある。そのようにして、訓練されたＡＩモデルは、シナリオに関連するデータを使用して、そのシナリオのプレイに関連しない可能性のあるデータから汚染されることなく、そのシナリオを通じてゲームアプリケーションをプレイすることの複雑な細部を理解する。
【００６４】
シナリオは、ゲームアプリケーションの開発者などによって予め定義され得る。例えば、シナリオは、多くのプレーヤがシナリオを進めることができないことが予想されるような高度な難易度を有するように設計されている場合がある。その他の場合、シナリオは、収集された訓練状態データの分析を通じて見いだされる場合がある。つまり、ゲームアプリケーションの特定の部分は、プレーヤにとって、その対応するゲームプレイ中に進行するのが難しいことが明らかになる可能性がある。その場合、ゲームアプリケーションのその部分をシナリオとして特定し、その結果、その特定されたシナリオのゲームプレイ中に訓練状態データを収集することができる。
【００６５】
３０６で、本方法は、訓練状態データの成功基準を定義することを含む。例えば、成功基準は、ＡＩモデルを訓練する目的で、深層学習エンジンによって使用され得る。具体的にいえば、ＡＩモデルを訓練する際に、層のノード間の相互関係を定義する（例えば、異なる層の２つのノード間の相互関係を定義する重みを絞り込むなど）ために成功基準を適用してもよい。例えば、成功基準を使用して、類似している訓練状態データを区別し、シナリオを通じてゲームアプリケーションをプレイする方法またはプレイする方法を選択する方法についてのいくらかの洞察を得ることができる。
単純化した例では、シナリオはタスク（例えば、ボスを倒す、障害物を回避するなど）の達成を伴うことがあり、２つの訓練データのセットがそれぞれ、シナリオを通じてプレイする方法（例えば、コントローラの入力、戦略など）のプロセスを説明または概説する。成功基準は、どの訓練状態データのセットが、タスクの達成をより成功させるかを判断するのに利用され得る。ゲームアプリケーションのシナリオ、及び／またはゲームアプリケーションのシナリオのゲームプレイに関連するＡＩモデルを訓練する目的で、より成功した訓練状態データのセットは、それほど成功しなかった他の訓練状態データのセットよりも（例えば、ＡＩモデルのノード間の相互関係を定義する際に）重く重み付けされ得る。
【００６６】
３０８において、本方法は、訓練状態データ及び成功基準を深層学習エンジンに提供することにより、シナリオに対してＡＩモデルを訓練することを含み、訓練されたＡＩモデルは、複数の入力に複数の出力を提供する。訓練状態データはシナリオに関連しているので、ＡＩモデルは、１つ以上の成功基準に基づいて、ゲームアプリケーションのシナリオ、及び／またはシナリオのゲームプレイに関する全てを学習するように訓練される。そのようにして、ＡＩモデルにシナリオの後続のゲームプレイに関連する入力のセット（例えば、ゲームの状態、コントローラ入力など）が与えられると、ＡＩモデルは、そのゲームプレイに有益となり得る出力を提供することができる。
一実施形態では、出力は、そのゲームプレイの成功度を示し得る。つまり、ゲームプレイの現在の状況（例えば、ゲーム状態）が与えられると、ＡＩモデルは、そのゲームプレイがどこに向かっているのかを予測し、対応するシナリオの進行においてそのゲームプレイがどの程度成功するかを予測することができる。出力の（例えば、分析器１４０による）さらなる分析と同様に、入力のセット（例えば、現在及び過去の入力のセット）の分析も、入力のセットへの応答を提供し得る。具体的には、出力として、かつ入力のセットに応答して、アクションが行われ得る。例えば、入力のセットが、ゲームプレイがシナリオの進行において失敗する方向に導いていることを（例えば、ＡＩモデルの出力を介して）示す場合、ＡＩモデルからの出力は、ゲームアプリケーションのシナリオのゲームプレイ中に遭遇した状況を、どのように進行させるかに関するレコメンデーションまたはアドバイスを提供するために（例えば、分析器１４０によって）使用されてもよい。
ゲームプレイがリモートプレーヤに関連付けられている場合、ゲームプレイ中に入力のセットが訓練済みＡＩモデルに自動的に提供されるように、リモートプレーヤから何ら促すことなく、レコメンデーションが提供されてもよい。レコメンデーションは、プレーヤが、シナリオをうまく進めること、シナリオを効率的に進めること、シナリオをプレイして最多の資産を獲得すること、ゲームアプリケーションの後半のステージまたはシナリオを進めるための最良のチャンスをプレーヤに与えるシナリオのタスクを達成することなどに役立ち得る。他の実施形態では、レコメンデーションはリモートプレーヤの要求を受けて提供され、したがって要求に応答して、入力のセットがＡＩモデルに提供される。
【００６７】
図３Ｂ−１及び図３Ｂ−２は、本開示の一実施形態による、ゲームアプリケーションのインスタンスを実行するバックエンドサーバのネットワークを介してＡＩモデルを訓練するためのプロセスを示すデータ流れ図を示す。上記のとおり、ＡＩモデルは、入力（例えば、ゲームアプリケーションの状況、つまりゲーム状態などに関連するもの）が与えられたときに、ＡＩモデルを使用して、ゲームアプリケーション及び／またはゲームアプリケーションのゲームプレイに関連する様々な機能性を提供する（例えば、支援を提供するなど）ことができるように、ゲームアプリケーション及び／またはゲームアプリケーションのゲームプレイに関する知識を多く有している。図３Ｂ−２のプロセスは、下記のように、図３Ｂ−１のモデラ１２０によって実行される機能と比較した場合、モデラ１２０’によって実行される異なった機能を提供する。
【００６８】
図３Ｂ−１及び図３Ｂ−２に示すように、ゲームアプリケーションの複数のゲームプレイ３１０（例えば、３１０ａ〜３１０ｎ）が示されている。ゲームプレイをサポートするために、ゲームアプリケーションのインスタンスが実行されている場合があり、インスタンスは、上記のとおり、ゲームクラウドシステムなどのバックエンドサーバ上で実行される。ゲームアプリケーションは、興味深い１つ以上のシナリオを含み得る。図に示すように、ゲームアプリケーションは、第１のシナリオ（Ｓ−１）、第２のシナリオ（Ｓ−２）、及び第３のシナリオ（Ｓ−３）を含む。例えば、シナリオは、開発者によって難しいと評価され、またはゲームアプリケーションのゲームプレイを通じて見いだされる場合がある。他の例では、シナリオは、プレーヤに人気のあるゲームアプリケーションの興味をかき立てる部分であってもよく、したがってプレーヤは、そのシナリオについて全てを知りたがることになる。
【００６９】
一実施形態では、複数のゲームプレイ３１０は、複数のプレーヤＰ−１〜Ｐ−ｎによって、それぞれのクライアントデバイスを介して操作される。別の実施形態では、複数のバックエンドサーバを使用してＡＩモデルを自己訓練する目的などのために、複数のゲームプレイ３１０を自動的に制御することができる。図示するように、ゲームプレイは、様々なゲームプレイデータ３２０ａ〜３２０ｎをもたらす。ゲームプレイデータは、上記のとおり、ゲーム状態データを含むメタデータを含み得る。例えば、ゲーム状態データは、特定のポイントでのゲームの状態を記述するものであり、コントローラ入力データを含むこともある。さらに、ゲームプレイデータ３２０ａ〜３２０ｎには、メタデータ及び／または訓練状態データを抽出する目的で、ゲームプレイ３１０ａ〜３１０ｎの記録が含まれてもよい。
【００７０】
図３Ｂ−１及び図３Ｂ−２に示すように、キャプチャエンジン３４０は、ゲームプレイデータ３２０ａ〜３２０ｎのほか、成功基準３３０など、提供され得る他のデータも取り込む。上記のとおり、成功基準は、ＡＩモデルを訓練する目的で、類似した訓練状態データを区別するために使用されてもよい。具体的には、成功基準は、ＡＩモデル内の層のノード間の相互関係を定義することを含むように、ＡＩモデルを訓練するために使用され、ノードは、ゲームアプリケーション及び／またはゲームアプリケーションのゲームプレイに関連する特徴（例えば、コントローラ入力、ゲーム状態など）を定義し得る。
一例として、成功基準は、ＡＩモデルを通る１つ以上の経路（１つ以上の層のノード間）の重みを定義するなど、どの訓練状態データのセットがより成功するかを判断するのに利用されてもよい。そのようにして、ＡＩモデルは、シナリオを通じてゲームアプリケーションを、どのようにプレイするか、またはプレイする方法をどのように選択するかについての洞察（例えば、戦略）を与えるのに使用することができる。取り込まれたデータは、訓練状態データ３４５として深層学習エンジン１９０に提供される。
【００７１】
図３Ｂ−１及び図３Ｂ−２に示すように、深層学習エンジン１９０は、１つ以上の成功基準に基づいた訓練状態データ３４５を使用してＡＩモデルを訓練及び／または構築するように構成されたモデラ１２０を含む。モデラ１２０は、様々なニューラルネットワーク（例えば、畳み込み型、リカレント型など）を介して人工知能を実装し得る。モデラ１２０は、説明のための例として、深層学習、強化学習、教師あり学習、教師なし学習、（例えば、成功基準、成功メトリクスなどの使用による）報酬ベースの学習、増分学習などを含む、様々なアルゴリズムによってＡＩを実装し得る。
深層学習エンジン１９０は、前に図１Ｂで紹介した。具体的には、モデラ１２０は、ＡＩモデルを構築する際に、入力のセット（例えば、ゲームアプリケーションのコンテキストまたは状況（ゲーム状態）を定義し得る特徴）を与えられて予測を行う特徴依存ルールのセットを識別する。予測には、シナリオをプレイする際に、所与の入力のセットがどの程度成功するかが含まれ得る。そのようにして、ＡＩモデルは、入力のセットが与えられたときに取るべきアクションを決定するために使用することができる。
【００７２】
図３Ｂ−１及び図３Ｂ−２に示すように、深層学習エンジン１９０のモデラ１２０は、訓練状態データの複数の特徴を識別するように構成された特徴識別エンジン３５０を含む。対応するシナリオのゲームプレイごとに、訓練状態データには特徴が含まれている。例えば、ゲームプレイの特定のポイントで、訓練状態データのインスタンスが収集されることがあり、訓練インスタンスは、１つ以上の特徴（例えば、訓練インスタンスの特徴のセット）を含み、特徴は、変数、パラメータ、コントローラ入力、ゲーム状態メタデータなどを含み得る。
【００７３】
したがって、特徴識別エンジン３５０は、データから特徴を識別及び／または抽出する目的で、訓練状態データを解析するように構成される。特徴識別エンジン３５０はまた、特徴を学習するように構成され得る。深層学習エンジン１９０を介した各訓練サイクルでは、訓練インスタンス（例えば、特徴のセット）が入力として提供され、訓練インスタンスは、シナリオのゲームプレイにおける特定のポイントに関連付けられ得る。そのようにして、深層学習エンジン１９０は、ゲームアプリケーション、ゲームアプリケーションのシナリオ、及び／またはゲームアプリケーションのシナリオのゲームプレイについて、段階的に学習するように構成される。
【００７４】
図３Ｂ−１に示すように、モデラ１２０は、特徴と出力（例えば、予測、アクションなど）との間の関係を定義するルールを学習するように構成されており、特徴は、訓練されているＡＩモデル１６０の１つ以上の階層レベルに位置する１つ以上のノード内で定義されてもよい。モデラ１２０は、所与のデータの入力セットがＡＩモデルの特定の出力につながるように、層間の特徴を結び付けることにより、ＡＩモデル１６０を構築する。したがって、モデラ１２０は、様々な層における特徴を結び付けるルールによって定義されるように、ＡＩモデル１６０の特徴及び／またはノードを生成するように構成されてもよい。例えば、ルールは、入力と出力との間で、ＡＩモデルを介して１つ以上の特徴またはノードを（例えば、重みを含む関係パラメータを使用して）結び付けることができる。つまり、１つ以上の結び付けられた特徴がルールを作る。ＡＩモデル１６０は、訓練され、それぞれがラベル付けされたまたは分類された出力に対応するルールのセットを含む。モデラ１２０の機能のより詳細な記述が、以下の図３Ｂ−２に提供される。
【００７５】
具体的には、図３Ｂ−２に示すように、モデラ１２０では、特徴識別エンジン１３０によって入力データから識別及び／または抽出された識別された特徴は、特徴と出力（例えば、予測、アクションなど）との間の関係を定義するルールを学習するように構成された分類器３６０に配信されてもよい。特徴は、訓練中のＡＩモデルの１つ以上の階層レベルに位置する１つ以上のノード内で定義され得る。各特徴は、他の層の１つ以上の特徴と結び付けられていてもよく、１つ以上の関係パラメータが、第１の特徴とＡＩモデルの他の層の他の特徴（例えば、第２の特徴、第３の特徴など）との間の相互接続を定義する。
【００７６】
例えば、図３Ｂ−２に示すように、分類器３６０は、特徴のセット（ルールを作るセット）が属するラベルまたは出力がどれであるかを判定するように構成されている。つまり、ルールは、ＡＩモデル内のノード（すなわち、ゲームアプリケーションのシナリオのゲームプレイの訓練インスタンスまたはポイントを記述するノード）として定義され得る所与の特徴のセットを、分類器３６０によってラベル付けされる特定の出力に結び付ける。例えば、ルールは、入力と出力との間で、ＡＩモデルを介して１つ以上の特徴またはノード（１つ以上の関係パラメータを介して定義された特徴間のリンクまたは相互関係）を結び付けることができる。分類器は、ＡＩモデル１６０の特徴及び／またはノードを生成するように構成され得、特徴及び／またはノードは、上記のように、ルールを定義するために使用される。出力は、分類器３６０によって生成され、割り当てられ、及び／または決定されたラベルに関連付けられてもよい。
【００７７】
より具体的には、学習されたルールは、ゲームアプリケーションのシナリオのゲームプレイに関連する所与の入力及び／または入力データのセットに対する（例えば、出力ノードにつながるＡＩモデルのノードまたは特徴を介した）学習された経路及び／または学習されたパターンであり得る。例えば、１つ以上の結び付けられた特徴及び／またはノードがルールを作る。訓練されたＡＩモデルは、ルール及びラベル（すなわち、出力）のセットになっている。
教師あり学習環境では、出力が所与の特徴のセットに対して予め決められており、深層学習エンジンは、特徴のセットを（例えば、ラベルを介して）出力に結び付けるルールを学習する。教師なし学習環境では、所与の特徴のセットが自動的に出力に結び付けられることはなく、ルールは、他の類似した特徴のセットに関連する類似性、またはデータポイントのクラスタを探すことによって学習され得る。訓練用に定義された成功基準によっては、クラスタが他のクラスタよりも優先されることがある。いずれにしても、入力された特徴のセットに対して既存のルールが適合されることもあれば、あるいは入力された特徴のセットに対して（既存の１つまたは複数のルールに類似しているか、あるいは既存の１つまたは複数のルールを発展させたものである可能性が高い）新しいルールが生成されることもある。
ＡＩモデルの学習されたルールに従って結果として得られる出力は、ゲームアプリケーションのシナリオをプレイするために使用される際に、対応する入力された特徴のセットが、どの程度成功し得るかを予測し得る。さらに、ＡＩモデルからの出力（及び任意選択で、入力された特徴のセット）は、（入力されたデータのセットによって示されるゲームアプリケーションの状況またはゲーム状態によって決定される）シナリオのゲームプレイにおけるその特定のポイントに対して取るべき一連のアクションを決定するために（例えば、分析器を介して）使用されてもよい。
例えば、アクションには、レコメンデーションとして提案されることになるコントローラ入力のセットや、入力に応答するためのゲームアプリケーション用の制御コマンドなどが含まれ得る。所与の特徴のセット、または類似の特徴のセットに対して、１つ以上のルールが生成されることがある。対応する成功基準または報酬基準に応じて、所与の特徴のセットまたは類似の特徴のセットに対して１つのルールが優先される場合がある。所与の特徴のセットについては、最も成功した出力を、その所与の特徴のセットに対して選択してもよい。つまり、所与の特徴のセット（例えば、入力）では、最も成功したルール（及び出力）が選択されて、訓練されたＡＩモデル１６０内で使用されることになり、このことが増分学習の根拠となる。
【００７８】
簡単な例では、成功基準は獲得したポイントによって定義することができ、最も多くのポイントを生成する経路（例えば、結び付けられたラベル）がより成功したことになる。別の例では、成功基準は、図３Ｃ−１でさらに記述されるように、プレーヤキャラクタまたは対戦相手のライフバーのレベルに関連し得る。他の成功基準を、プレーヤに基づいて定義してもよい。例えば、１つ以上の成功基準によってエキスパートを特定することにより、そのエキスパートの対応するゲームプレイを訓練状態データとして使用するターゲットにすることができ、一般に、ゲームアプリケーションのシナリオのゲームプレイの所与の状態または状況に対して取るべき最善のアクションを学習するために使用することができる。そのようにして、プレーヤのスキルレベルを決定するために成功基準を定義することができる。これには、プレーヤの応答時間の速さ、プレーヤが１つ以上のターゲットを狙う際の正確さ（例えば、一般に、熟練したプレーヤはトリガが速く、１つのターゲットから別のターゲットに素早く、決定的かつ正確に移動する）、コントローラ入力間の周期の速さなどを含めることができる。
【００７９】
図３Ｂ−１及び図３Ｂ−２に示すように、モデラ１２０は、学習された経路及び／または学習されたパターン（例えば、ＡＩモデルの結合ラベル）を、ゲームアプリケーションのシナリオのゲームプレイに関連する入力及び／または入力データの所与のセットに結び付ける、訓練されたＡＩモデル１６０を構築及び／または出力する。ＡＩモデル１６０は、ゲームアプリケーション及び／またはゲームアプリケーションのゲームプレイに関連する１つ以上の機能性を提供するために後で使用することができる。
つまり、プレーヤによる後続のゲームプレイの状況を示し得る入力のセットが与えられると、訓練されたＡＩモデル１６０の結果として得られる出力を（例えば、分析器を介して）使用して、対応する入力データのセットによって定義されるシナリオのゲームプレイにおけるその特定のポイントに対して取るべき最善の一連のアクションを、予測し、及び／または決定することができる。
例えば、ＡＩモデル１６０が訓練された後に、プレーヤが、ゲームアプリケーションのシナリオをプレイしている可能性がある。プレーヤはまた、シナリオを進めることに困難を感じており、そのことがＡＩモデルの出力に反映されている可能性がある。新規及び後続の入力状態データ（例えば、ゲーム状態）は、そのプレーヤのゲームプレイにおける（困難が経験される）その特定のポイントに関連する任意のデータに関連し得る。そのシナリオの入力状態データは、受信され、深層学習エンジン１９０を介してＡＩモデルに提供され、ＡＩモデルが、ゲームアプリケーションの所与の状況を与えられてシナリオをプレイする際に、ゲームプレイがどの程度成功するようになるかを出力として予測してもよい。
ＡＩモデルからの出力を、分析し、ゲームアプリケーション及び／またはゲームアプリケーションのゲームプレイに関連する様々な機能性を実行するために使用することができる。例えば、シナリオのゲームプレイにおける特定のポイントに対して取るべき最善の一連のアクションを決定するために、出力を分析してもよい。出力に基づいてアクションを実行することができる。例えば、訓練されたＡＩモデル１６０は、プレーヤに、彼または彼女のゲームプレイを進めるためのレコメンデーションを提供することができる。
【００８０】
所与の入力されたデータのセットに対するＡＩモデル１６０の出力に基づいて、他の機能性もまた決定され、生成されることもあり、その機能性は出力またはアクションの形で顕在化される。つまり、シナリオの最初のゲームプレイ中に入力状態データを受け取り、深層学習エンジンへの入力として提供する。深層学習エンジンは、入力状態データにＡＩモデルを適用する。ＡＩモデルの出力の分析に基づいてアクションが実行され、アクションは、入力状態データに応答して実行される。図４Ａ〜図４Ｂは、ゲームアプリケーションの所与のゲームプレイに対するＡＩモデルの適用を示す。図５Ａ〜図５Ｆは、予め定義された目的に応じて実行し得る種々のアクションまたは応答の様々な説明図を提供する。
具体的には、深層学習エンジン１９０を介して実装されたＡＩモデルは、所与の入力状態データを、訓練されたＡＩモデル内で定義された１つ以上のルール（各ルールは、結び付けられた、または相互接続されたノード及び／または特徴を提供する）と照合する。各ルールは出力に関連付けられている。ルールを生成するために成功基準を適用することができる。さらに、分析器１４０は、出力を受け取り、追加の分析を実行して、対応する入力データに関連して適切なアクションを決定する。例えば、ルールが、所与の入力状態データのセットの成功基準に関して満たされた場合、対応するアクションが特定され、及び／または実行され得る。
【００８１】
図３Ｃ−１は、本開示の一実施形態による、ゲームアプリケーションのゲームプレイのスクリーンショット３００Ｃであり、ゲームアプリケーションのプレイ方法を理解するＡＩモデルを訓練するために使用され得る成功基準の一種を示す。具体的には、プレーヤＰ−１がゲームプレイを制御する。図示するように、スクリーンショット３００Ｃは、クラトス３９１と敵３９６との戦闘の正面像を示す。「ゴッドオブウォー」ゲームアプリケーションでは、クラトスはギリシャ神話のスパルタ戦士であり、戦争の神アレスを殺害する任務を負う。
ゲームプレイでは、プレーヤはクラトス３９１を操作することができる。スクリーンショット３００Ｃに関連するゲームプレイからの訓練状態データ３２０ａが、先に説明したＡＩモデルを訓練する目的で、深層及び／または機械学習エンジン１９０に供給される。さらに、深層及び／または機械学習エンジン１９０には成功基準３３０が供給され、成功基準は、ＡＩモデルを訓練するために深層学習エンジン１９０によって使用される。例えば、成功基準は、（経路がＡＩモデルのノードをトラバースする）ＡＩモデルを通る経路を区別するために使用することができる。実施形態では、ＡＩモデルの訓練に使用するために、１つ以上の成功基準を定義してもよい。例えば、成功基準には、最も多くのポイントを獲得すること、最も多くの資産または最も強力な資産もしくは重要な資産を獲得することなどが含まれ得る。
【００８２】
一例では、成功基準３３０は、ゲームプレイ中に敵３９６のライフバー３９７が低くなるかどうかによって定義されてもよく、そのライフバーは、対応するキャラクタの健康状態を示している。また、ライフバー３９２は、ゲームプレイ中のクラトス３９１の健康状態を示している。図示するように、敵のライフバー３９７は極端に低くなっており、ゲームプレイが成功しているか、または成功度が高いことを示し得る。別の例では、成功基準は、より洗練されたものであってもよく、敵３９６のライフバー３９７がどれだけ早く使い尽くされるかによって定義される。
ライフバー３９７がすぐに使い尽くされる場合、これは、ゲームプレイが高度なスキルを持つプレーヤによって操作されていることを示す。例えば、高度に熟練したプレーヤは、敵３９７との戦い方を理解しており、敵３９６を倒すために使用されるコントローラ入力のシーケンスを知っており、それらのシーケンスを迅速かつ正確に（例えば、逸脱することなく）実施するスキル及び／または能力を有している。ＡＩモデルの訓練時には、ライフバーがどれだけ早く使い尽くされるかを重視した成功基準を用いることで、成功した入力とそうでない入力とを区別し、別のプレーヤによって実施された場合に成功するであろうゲームプレイの特定の状況またはゲーム状態の間中に使用すべきコントローラの入力シーケンスを特定するのに役立ち得る。
【００８３】
図３Ｃ−２は、本開示の一実施形態による、複数のゲームプレイからの訓練状態データの収集を説明する図であり、そのゲームプレイをサポートする複数のサーバ上で複数のインスタンスが実行されている。ゲームアプリケーションの複数のゲームプレイ３１０（例えば、３１０ａ〜３１０ｎ）を示す。複数のゲームプレイ３１０は、複数のプレーヤＰ−１〜Ｐ−ｎによって、それぞれのクライアントデバイスを介して操作される。図示するように、ゲームプレイは、様々なゲームプレイデータ３２０ａ〜３２０ｎをもたらし、その中から抽出されたデータを、訓練状態データ３４５として使用し得る。
ゲームプレイデータは、上記のとおり、ゲーム状態データを含むメタデータを含み得る。ゲームプレイのそれぞれは、ゲームアプリケーションのシナリオ１（Ｓ−１）をプレイしていて、各ゲームプレイはユニークであり、ユニークな結果をもたらす。つまり、各ゲームプレイは、シナリオＳ−１の進行の成功度を測定することに関連付けられ得る。その成功度は、成功基準３３０を用いて部分的に測定されてもよく、その成功基準３３０は、上記のとおり、ＡＩモデル１６０を訓練するために、深層及び／または機械学習エンジン１９０のモデラ１２０によって使用され得る。例えば、成功基準は、ＡＩモデルを訓練する目的で、類似した訓練状態データを区別するために使用されてもよい。
【００８４】
システム１００Ａ及びシステム２００Ｂの様々なモジュールの詳細な説明と共に、流れ図４００Ａは、本開示の一実施形態による、１つ以上の成功基準に基づいて、ゲームアプリケーション及び／またはゲームアプリケーションのゲームプレイについて全てを知っている（例えば、ゲームアプリケーションのプレイ方法を理解している）ＡＩモデルを適用するための方法を開示しており、このＡＩモデルは、ゲームアプリケーション及び／またはゲームアプリケーションのゲームプレイに関連する様々な機能性を提供するために使用される。流れ図４００Ａは、上記のバックエンドサーバ内（例えば、深層学習エンジン１９０と組み合わせたゲームクラウドシステム２０１内）で実施されてもよい。
【００８５】
具体的には、４１０において、本方法は、ゲームアプリケーションのシナリオの複数のゲームプレイからＡＩモデルを訓練することを含む。例えば、ＡＩモデルは、ゲームアプリケーションのシナリオをプレイするために、シナリオの複数のゲームプレイから収集された訓練状態データと、ゲームプレイのそれぞれの関連した成功基準とを用いて訓練される。つまり、ＡＩモデルは、ゲームアプリケーションの複雑な細部、及び／またはゲームアプリケーションのプレイの複雑な細部、またはゲームアプリケーションのシナリオを学習するように訓練される。
【００８６】
一実施形態では、ＡＩモデルは、ゲームアプリケーションの複数のゲームプレイにわたって収集された訓練状態データを用いて訓練され、この複数のゲームプレイは、複数のクライアントデバイスを介して複数のプレーヤによって操作されている。例えば、複数のサーバが、ゲームアプリケーションの複数のインスタンスを実行している場合があり、これらのインスタンスが複数のゲームプレイをサポートしている。訓練状態データは、複数のサーバで収集され、訓練状態データは、シナリオの、対応するゲームプレイに関連付けられている。例えば、訓練状態データには、上記のとおり、ゲームプレイに関連付けられたメタデータが含まれていて、コントローラの入力、ゲームプレイ中の特定のポイントでのゲームアプリケーションの状態及び／または状況を定義するゲーム状態、ゲームプレイの進捗、シナリオの結果（例えば、成功または失敗）、ユーザプロファイル情報などが含まれ得る。つまり、訓練状態データには、ゲームアプリケーション及び／またはゲームアプリケーションのゲームプレイの理解に関連する可能性のある何らかのデータが含まれる。
【００８７】
さらに、訓練状態データに対して、１つ以上の成功基準が定義されている。例えば、成功基準は、ゲームアプリケーションのプレイ方法を理解するＡＩモデルを訓練するために使用される。例えば、成功基準は、ＡＩモデルのノード間の有利なリンクを定義するために、または所与の入力データのセットに対して、ＡＩモデルのノードを通る有利な経路を定義するために使用されてもよい。成功基準と訓練状態データとを深層学習エンジンに提供して、ＡＩモデルを訓練する。
【００８８】
４２０において、本方法は、シナリオの第１のゲームプレイ中に、第１の入力状態データを受信することを含む。一実施形態では、第１のゲームプレイは、ＡＩモデルを訓練した後に行われる。つまり、第１のゲームプレイは、ＡＩモデルの訓練には使用されない。別の実施形態では、第１のゲームプレイがＡＩモデルの訓練（例えば、自己訓練モード）に使用されるように、訓練中に第１のゲームプレイが発生してもよい。さらに別の実施形態では、第１のゲームプレイは、最初はＡＩモデルの訓練に使用することができず、主に第１の入力状態データを与えられて取るべき適切なアクションを決定するために使用される。その後、第１のゲームプレイ（例えば、第１の入力状態データ）を使用して、追加の訓練によってＡＩモデルを改良することができる。
【００８９】
４３０において、本方法は、第１の入力状態データをＡＩモデルに適用して、出力を生成することを含む。一実施形態では、出力は、第１のゲームプレイに対するシナリオの成功度を示してもよい。つまり、出力により、第１のゲームプレイが、シナリオの進行においてどの程度成功することになるかが予測され得る。
【００９０】
４４０において、本方法は、予め定義された目的に基づいて、出力の分析を行うことを含む。さらに、入力のセット（例えば、現在及び過去の入力のセット）を分析することもできる。予め定義された目的に応じて、分析により、（入力されたデータのセットによって示されるゲームアプリケーションの状況またはゲーム状態によって決定される）シナリオの対応するゲームプレイにおける特定のポイントに対して行うべきアクションを生成することができる。
例えば、予め定義された目的が支援を提供することである場合、分析により、ゲームアプリケーションのシナリオのゲームプレイ中に遭遇した状況を、どのように進行させるかに関するレコメンデーションまたはアドバイスが生成され得る。予め定義された目的が指導を提供することである場合、分析により、プレーヤの弱点を判定し、その弱点に対処するためのチュートリアルセッションをプレーヤに提供してもよい。他にも、ゲームサポートの提供、ゲームプレイの同等性の提供、ＡＩモデルの自動訓練、ゲームアプリケーションの欠陥の発見、ゲームアプリケーションの自動テストなど、予め定義された目的がサポートされている。
【００９１】
したがって、４５０において、本方法は、分析された出力に基づいて、予め定義された目的を達成するためにアクションを実行することを含む。図５Ａ〜図５Ｆは、予め定義された目的に応じて実行し得る種々のアクションまたは応答の様々な説明図及び例を提供する。
【００９２】
図４Ｂは、本開示の一実施形態による、ゲームアプリケーションのプレイ方法を理解するように構成されたＡＩモデルを適用するために構成された、図２ＢのＡＩプロセッサエンジン２１０であって、このＡＩモデルが、ゲームアプリケーション及び／またはゲームアプリケーションのゲームプレイに関連する様々な機能性を提供するために使用される、図２ＢのＡＩプロセッサエンジン２１０のブロック図である。図示するように、ＡＩプロセッサエンジン２１０は、ＡＩモデル１６０を訓練する、及び／または適用するように構成されている深層学習エンジンまたは機械学習エンジン１９０を含み、ＡＩモデル１６０は、所与の入力に対して出力を提供するように構成されている。ＡＩプロセッサエンジン２１０はまた、ＡＩモデル１６０からの出力を使用して、入力に対する応答を決定するための分析器を含む。
【００９３】
具体的には、入力状態データ４０５が、ＡＩモデル１６０を実装するように構成された深層学習エンジン１９０への入力として提供される。入力状態データには、ゲームアプリケーションのゲームプレイに関連付けられていて、上記のとおり、コントローラ入力、ゲーム状態データ、ユーザデータ、成功基準などが含まれ得る。入力状態データ４０５は、いくつかの実施形態では、ＡＩモデル１６０が訓練された後に提供されてもよい。他の実施形態では、入力状態データ４０５は、ＡＩモデル１６０の訓練（例えば、ＡＩモデルの自己訓練）中に提供されてもよい。上記のとおり、ＡＩモデル１６０は、所与の入力状態データ４０５に対して出力１７３を生成する。例えば、ゲームアプリケーションのシナリオを進めていく上で、ゲームプレイがどの程度成功し得るかを出力することができる。
出力は、ゲームアプリケーションのゲームプレイに関連する様々な機能性を提供するために、分析器１４０によって分析され得る。分析器１４０により、上記のとおり、予め定義された目的（例えば、指導、支援の提供など）に応じて、適切なアクションまたは応答が決定される。つまり、ＡＩモデル１６０は、シナリオ中にゲームプレイを成功裏に導くのに必要なものを判定するために、分析器１４０によって使用され得る。したがって、分析器１４０は、所与の入力状態データに対する予め定義された目的に応じて、アクションを決定し、実行し得る。そのようにして、分析器は、ＡＩモデル１６０を利用して、ゲームアプリケーション及び／またはゲームアプリケーションのゲームプレイに関連する様々な機能性を提供することができる。
【００９４】
図示するように、分析の一部として、分析器１４０は、１つ以上の機能を実行してもよい。例えば、分析器１４０のプレーヤプロファイラ１４４ａは、ゲームアプリケーションをプレイするプレーヤのプロファイリングを行う（例えば、プレーヤのスキルレベルを判定する）ように構成される。分析器１４０の弱点特定器１４１ａは、プレーヤのゲーム能力の弱点を特定するように構成される。分析器１４０の入力制御シーケンス構文解析器１４７ａは、ゲームプレイを制御するためにプレーヤによって使用されるコントローラ入力のシーケンスを決定するように構成される。
分析器１４０のシーケンスマップ及び／またはルート追跡器１４８ａは、ゲームプレイの進行を追跡して、ゲーム環境中の進行を追跡することを含むように構成される。例えば、追跡器１４８ａは、ゲーム環境で採用されたルートを追跡する、またはゲーム環境のマップを構築する、またはゲームアプリケーション中の進捗を示すゲームプレイのノードマップを構築するように構成される。所与の入力状態データ４０５に対するＡＩモデルの出力の分析を提供する、さらに他のモジュールがサポートされている。
【００９５】
分析器１４０は、所与の入力状態データ４０５に応答して決定された出力の分析に応答して、アクション生成器１７０によるアクションを決定して実行するように、さらに構成される。アクションは、予め定義された目的に応じて決定され、実行される。例えば、アクションは、ゲームアプリケーションをプレイするプレーヤにサービスを提供し得る（例えば、ゲームアプリケーションをプレイするプレーヤのプロファイルを提供する、プレーヤによるゲームアプリケーションのゲームプレイ中に、プレーヤにレコメンデーションを提供する（レコメンデーションは、ユーザプロファイルを考慮して構造化されていてもよい）、プレーヤの弱点を見つける、それらの弱点に対処するサービスを提供する、プレーヤを訓練する、プレーヤにボットの対戦相手を提供する、プレーヤのゲームプレイを引き継ぐ、など）。
アクションはまた、ゲームアプリケーションの欠陥の発見、マルチプレーヤオンラインゲームなどのゲームアプリケーションで互いに競争するプレーヤプロファイルを用いた対等なチームの構築、オートプレイによるＡＩモデルの自動学習、ゲームアプリケーションのゲーム環境を探索して欠陥を発見するなどのサービスを、ゲーム開発者または他のエンティティに提供してもよい。図５Ａ〜図５Ｆは、予め定義された目的に応じて実行し得る種々のアクションまたは応答の様々な説明図を提供する。
【００９６】
具体的には、図５Ａは、本開示の一実施形態による、ゲームアプリケーションをプレイするプレーヤにレコメンデーションを提供するためのプロセスであって、このレコメンデーションが、ゲームアプリケーションのインスタンスを実行するバックエンドサーバのネットワークを介して訓練されたＡＩモデル１６０によって提供されるプロセスを示すデータ流れ図を示す。ゲームアプリケーションのゲームプレイ５０１ｘを示す。ゲームプレイは、対応するクライアントデバイスを介してプレーヤＰ−ｘによって制御され得、上記のとおり、ストリーミングゲームサービス（例えば、クラウドゲームシステム）のバックエンドサーバで、ゲームアプリケーションのインスタンスが実行されている。他の実施形態では、ゲームアプリケーションはクライアントデバイス上でローカルに実行されてもよく、メタデータは、ＡＩモデルサポートのためにバックエンドサーバに配信される。ゲームプレイ５０１ｘは、シナリオＳ−１中に発生している。
【００９７】
ゲームプレイ５０１ｘからの入力状態データ５０５ｘが、訓練されたＡＩモデル１６０の出力を分析するように構成された分析器１４０に提供され、ＡＩモデル１６０は、深層学習エンジン１９０を介して（学習フェーズではなく、適用フェーズにおいて）実装される。入力状態データ５０５ｘは、ＡＩモデル１６０が訓練された後に受信され、そのため、上記のＡＩモデルの訓練に使用された訓練状態データの一部ではないことがある。ＡＩモデル１６０は、出力１７３を提供するように構成されていて、分析器１４０は、出力１７３の分析に基づいて、実行すべきアクションを実行する、または提供するように構成されている。
【００９８】
具体的には、分析器１４０のアクション生成器１７０は、プレーヤによるゲームアプリケーションのゲームプレイ中に、プレーヤにレコメンデーションを提供するように構成されたレコメンデーションエンジン１４５ａを含む。例えば、予め定義された目的が、分析器１４０を介して実施されるゲームサポートをプレーヤＰ−ｘに提供することであってもよい。レコメンデーションは、プレーヤがゲームアプリケーションの特定のシナリオをうまく通過するのが困難な場合など、ゲームプレイの状況（例えば、ゲーム状態）に応答して提供されてもよい。一実施形態では、分析器１４０は、第１の入力状態データ、または第１の入力状態データ内の特徴が、対応する成功基準を満たさないと判定することにより、プレーヤが苦戦していると判定することができる。
成功基準は、ゲームプレイがどの程度成功する結果になるのか、特にゲームプレイのその部分が、どの程度成功する結果になるのかについての指標を提供するものであり得る。例えば、成功基準は、シナリオ中に、どれだけポイントが蓄積されたかを示すことであり得る。分析器１４０が、ＡＩモデル１６０の出力から、第１の入力状態データが成功基準を満たさないと判定した場合には、プレーヤＰ−ｘのクライアントデバイスに対して、アクションとして、レコメンデーション５１５を提供してもよい。
【００９９】
一実施形態では、レコメンデーションは、プレーヤＰ−ｘのユーザ／プレーヤプロファイル５１０ｘを考慮する（例えば、プレーヤのスキルレベルを考慮する）場合があり、プレーヤプロファイラ１４４ａが、訓練されたＡＩモデル１６０からの出力データ及び／または入力状態データを分析して、シナリオに対するユーザプロファイル５１０ｘ（例えば、シナリオ中にプレーヤがゲームアプリケーションに対してどのように反応するか、スキルレベル、などのプレーヤ特性メトリクス）を決定してもよい。
つまり、レコメンデーションは、プレーヤＰ−ｘのスキルを反映している。他の実施形態では、ユーザプロファイル５１０ｘは、対象のゲームアプリケーションだけでなく、他のゲームアプリケーションの過去のゲームプレイを通じて決定されてもよい。例えば、ユーザプロファイル５１０ｘが、プレーヤがゲームのエキスパートであることを示す場合、プレーヤＰ−ｘ向けのレコメンデーション５１５では、あまり詳細な説明をせずに、小さなヒントを提供するようにしてもよい。その一方で、ユーザプロファイル５１０ｘが、プレーヤＰ−ｘがゲームの初心者であることを示す場合、レコメンデーション５１５では、プレーヤが従うための詳細な指示を提供してもよい。
【０１００】
一実施形態では、レコメンデーション５１５は、プレーヤＰ−ｘがオートプレイ機能を利用したいかどうかを尋ねるクエリを含んでもよい。イエスの場合、タスクオートプレイエンジン１４５ｂは、プレーヤＰ−ｘのゲームプレイを引き継ぐように構成される。そのようにして、タスクオートプレイエンジン１４５ｂは、ゲームアプリケーションにおけるシナリオまたはシナリオ内のタスクを自動的に（かつ成功裏に）実行する。
【０１０１】
図５Ｂは、本開示の一実施形態による、ゲームアプリケーションのインスタンスを実行するバックエンドサーバのネットワークを介して訓練されたＡＩモデルによって判断されたプレーヤプロファイルを使用して、ゲームアプリケーションをプレイするプレーヤのチームのバランスをとるプロセスを示すデータ流れ図を示す。ゲームアプリケーションの複数のゲームプレイ５０１（例えば、５０１ａ〜５０１ｎ）を示す。
ゲームプレイは、複数のプレーヤＰ−１〜Ｐ−ｎによって、対応するクライアントデバイスを介して操作され得る。上記のとおり、ゲームアプリケーションのインスタンスは、ストリーミングゲームサービス（例えば、クラウドゲームシステム）のバックエンドサーバ上で実行されている。他の実施形態では、ゲームアプリケーションはクライアントデバイス上でローカルに実行されてもよく、メタデータは、ＡＩモデルサポートのためにバックエンドサーバに配信される。ゲームプレイ５０１ａ〜５０１ｎは、例えば、１つ以上のシナリオＳ−１、Ｓ−２、及びＳ−３を通じて発生していることがある。
【０１０２】
ゲームプレイ５０１ａ〜５０１ｎからの入力状態データ５０５ａ〜５０５ｎが、訓練されたＡＩモデル１６０の出力を分析するように構成された分析器１４０に提供され、ＡＩモデル１６０は、深層学習エンジン１９０を介して（学習フェーズではなく、適用フェーズにおいて）実装される。一実施形態では、複数の入力状態データ５０５ａ〜５０５ｎは、ゲームアプリケーションのシナリオの第２の複数のゲームプレイ中に受信され、ゲームプレイは、ＡＩモデルを訓練した後に実施され得る。
第２の複数のゲームプレイは、複数のプレーヤによって操作され、複数の入力状態データは、複数のプレーヤの複数のプレーヤ特性メトリクスを含む。複数の入力状態データがＡＩモデルに適用されて、シナリオの第２の複数のゲームプレイに対する複数の成功度を示す複数の出力が生成される。さらに、複数の出力が分析されて、複数のプレーヤ特性メトリクスに基づいて複数のプレーヤプロファイルが決定される。ＡＩモデル１６０は、出力を提供するように構成されていて、分析器１４０は、出力のその分析に基づいて、実行すべきアクションを実行する、または提供するように構成されている。具体的には、分析器１４０は、予め定義された目的を達成するために、複数のプレーヤから、対応するプレーヤプロファイルに基づいて、バランスの取れたプレーヤのチームを構築するように構成される。
【０１０３】
分析中、分析器１４０は、プレーヤプロファイラ１４４ａなどによるユーザプロファイリングを行ってもよい。具体的には、訓練されたＡＩモデル１６０からの出力は、ゲームアプリケーションをプレイしているプレーヤＰ−１〜Ｐ−ｎのプロファイルを提供するように構成されたプレーヤプロファイラ１４４ａに提供される。プレーヤプロファイル５１０ａ〜５１０ｎは、ゲームアプリケーションの特定のシナリオのゲームプレイに限定されてもよい（例えば、プロファイルは、対応するプレーヤが、シナリオ中にゲームアプリケーションに対して、どのように反応するか、対応するプレーヤのスキルレベルなどが決定または予測される）。
例えば、プレーヤプロファイルは、複数のプレーヤ特性メトリクスに基づいて定義されてもよく、各プレーヤプロファイルは、１つ以上の対応するプレーヤ特性メトリクスを含む。入力状態データは、プレーヤによるゲームアプリケーションのゲームプレイ中に受け取ることができる。入力状態データは、複数のプレーヤの複数のプレーヤ特性メトリクスを含む。入力状態データはまた、上記のとおり、ＡＩモデル１６０に適用されて出力が決定される。プレーヤプロファイラ１４４ａは、出力１７３及び／または入力状態データ５０５ａ〜５０５ｎを分析して、対応するプレーヤの対応するプレーヤプロファイルを決定する。
例えば、対応するプレーヤプロファイルは、訓練されたＡＩモデルへの入力として提供された対応するプレーヤ特性メトリクスに基づいている。例えば、プレーヤ特性メトリクスには、プレーヤの正確さ、または対応するプレーヤによる入力制御データシーケンスの生成速度、またはシナリオ内のイベントを受けたときの対応プレーヤの反応時間、または対応プレーヤの一貫性、または第１のターゲットと第２のターゲットとの間の対応プレーヤの遷移時間などが含まれ得る。他の実施形態では、対応するプレーヤプロファイルは、上記のとおり、対象のゲームアプリケーションだけでなく、他のゲームアプリケーションの過去のゲームプレイを通じて決定されてもよい。
【０１０４】
また、分析器１４０のアクション生成器１７０は、予め定義された目的に応じて、プレーヤプロファイルを用いて、公平にバランスの取れたチーム（例えば、ゲームアプリケーションにおいて互いに競争するチーム）を構築するように構成されたチームバランサモジュール１４４ｂを含む。例えば、予め定義された目的が、（例えば、多人数同時参加型オンラインゲームアプリケーション（ＭＭＯ）において）分析器１４０を介して実施されるゲームプレイの同等性を提供することであってもよい。
例えば、プレーヤプロファイル５１０ａ〜５１０ｎに基づいて、チームバランサ１４４ｂは、公平にバランスの取れたチーム（例えば、ゲームアプリケーションにおいて互いに競争するチーム）を構築するように構成されている。そのようにして、２つのチーム間のゲームアプリケーションのゲームプレイが、それぞれのチームのプレーヤにとって、公平で魅力的で価値のあるものになる。例えば、バランスの取れたチームであれば、一方的なゲームを回避するのに役立つようになる。１つ以上のカテゴリのスキルレベルに基づいて、さらに２つのグループ（Ｇ１とＧ２）に区分されたプレーヤプロファイルを考慮されたい。
各グループのプレーヤ、及び／またはプレーヤのスキルは、全てのチーム（例えば、チーム−１〜チーム−ｎ）に均等に分散させることが望ましい。戦闘に重点を置くゲームアプリケーションの各チームには、リーダー、スナイパー、訓練（例えば、近接格闘術）を受けた殺人者など、１つ以上のポジションが含まれる。１つの説明図では、全てのスキルポジションをグループ化し、それをチーム間で均等に分散させている。この図では、リーダーは除外されており、簡単のために、全てのチームが等しく有能なリーダーを持つように、全てのリーダーが単一のグループＧ−２から選択されている。他の全ての熟練したポジションは等しく評価されると想定されている。つまり、各チームは、各グループＧ１及びＧ２から同数の選手を採用して、いくつかの熟練したポジションで構成されるべきである。
例えば、各チームには、グループＧ１のプレーヤが１人、グループＧ２のプレーヤが１人含まれている（リーダーを除く）。図示するように、チーム−１とチーム−２とはそれぞれ、グループＧ１からの１人のプレーヤ（スナイパー）と、Ｇ２からの１人のプレーヤ（例えば、キラー）とを含む。また、チーム３には、グループＧ１からの１人のプレーヤ（キラー）と、Ｇ２からの１人のプレーヤ（例えば、スナイパー）とが含まれる。したがって、各チームは、ユーザプロファイル（例えば、スキルレベル）に従ってバランスが取れている。
【０１０５】
図５Ｃは、本開示の一実施形態による、ＡＩモデル１６０によって指示されたオートプレイを介してＡＩモデルを訓練するためのプロセスを示すデータ流れ図を示す。上記のとおり、ＡＩモデル１６０は、ゲームアプリケーションのインスタンスを実行するバックエンドサーバのネットワークを介して訓練される。ゲームアプリケーションの複数のゲームプレイ３１０ａ〜３１０ｎを示す。上記のとおり、ゲームプレイデータ３２０ａ〜３２０ｎは、ゲームプレイ３１０ａ〜３１０ｎから生成される。一実施形態では、複数のゲームプレイは、訓練中にＡＩモデル１６０によって操作される。そのようにして、入力状態データは、ＡＩモデル１６０からのデータを使用して分析器１４０によって生成され、入力状態データは、訓練中に分析器１４０によって以前のアクションとして提供される。
ゲームプレイデータには、特定のポイントでのゲームの状態を記述したゲーム状態データを含むメタデータが含まれてもよく、コントローラ入力データが含まれてもよく、メタデータ及び／または訓練状態データを抽出する目的で、ゲームプレイ３１０ａ〜３１０ｎの記録が含まれてもよい。キャプチャエンジン３４０は、上記のとおり、ゲームプレイデータ３２０ａ〜３２０ｎのほか、成功基準３３０など、提供され得る他のデータも取り込む。成功基準は、訓練の目的で、類似している訓練状態データを区別するために使用することができる。
つまり、成功基準は、ＡＩモデル１６０を訓練するために、深層学習エンジン１９０によって使用されてもよい。訓練状態データ３４５は、深層学習エンジン１９０に提供される。深層学習エンジン１９０の機能については、図３Ｂ−１及び図３Ｂ−２に関連して説明したが、図５Ｃに示す深層学習エンジン１９０にも同様に適用できる。簡単にするために、深層学習エンジン１９０の全ての構成要素を図５Ｃに示しているわけではない。
一般に、深層学習エンジン１９０は、訓練状態データ３４５及び成功基準３３０を使用して、ＡＩモデル１６０を訓練及び／または構築するように構成されたモデラ１２０を含む。モデラ１２０は、様々なニューラルネットワーク（例えば、畳み込み型、リカレント型など）を介して人工知能を実装し得る。具体的には、モデラ１２０は、入力のセット（例えば、ゲームアプリケーションのコンテキストまたは状況（ゲーム状態）を定義し得る特徴）を与えられて、予測を行い、及び／または取るべきアクションを決定する、特徴依存ルールのセットを識別する。例えば、ＡＩモデル１６０の出力は、ゲームアプリケーションのシナリオを進めていく上で、（例えば、ゲームアプリケーションのゲームプレイの状況を定義する）所与の入力データのセットの成功を予測し得る。特徴及び／またはノードを接続するルールのセットが、ＡＩモデル１６０を構成する。
【０１０６】
図示するように、深層学習エンジンは、学習フェーズと適用フェーズの両方で機能する。具体的には、ゲームプレイ３１０は、ＡＩモデル１６０などによって自動的に実行される。そのようにして、ＡＩモデル１６０は自己訓練される。具体的にいえば、分析器１４０は、入力制御シーケンス構文解析器５７１、プレーヤプロファイラ１４４ａ、及びマップ／ルート追跡器５７２を含み、これらはそれぞれ先に紹介したとおりである。例えば、入力制御シーケンス構文解析器１４７ａは、ゲームプレイを制御するためにプレーヤによって使用されるコントローラ入力のシーケンスを決定するように構成される。分析器１４０のシーケンスマップ及び／またはルート追跡器１４８ａは、ゲームプレイの進行を追跡して、ゲーム環境中の進行を追跡することを含むように構成される。分析器１４０のプレーヤプロファイラ１４４ａは、ゲームアプリケーションをプレイするプレーヤのプロファイリングを行う（例えば、プレーヤのスキルレベルを判定する）ように構成される。
【０１０７】
さらに、分析器１４０のアクション生成器１７０は、予め定義された目的に応じて、ＡＩモデルトレーナ１４３ｂによって指示されて、ＡＩモデルを自動的に訓練する目的などで、ゲームアプリケーションをオートプレイするように構成されているオートプレーヤ１４３ａを含む。例えば、予め定義された目的は、ＡＩモデル１６０を自動的に訓練することであってもよい。具体的にいえば、分析器１４０は、ＡＩモデルトレーナ１４３ｂによって指示されて、ゲームアプリケーションをオートプレイするように構成されたオートプレーヤ１４３ａを含む。例えば、訓練インスタンスなどの所与の訓練状態データのセットについて、ＡＩモデル１６０の学習済み出力が、対応するゲームプレイを制御するためのコントローラ入力の次のセットを決定するために、分析器１４０によって分析されてもよい。具体的には、ＡＩモデルトレーナ１４３ｂのボットセレクタと入力制御選択／予測エンジン５３７とを組み合わせたものが、目的に応じて次のコントローラ入力のセットを決定するように構成されている。例えば、最高の成功及び効率をもってゲームをやり遂げるために最適化されたボットを選択したり、あるいはゲームアプリケーションの様々な順列を探索したりすることができる。目的に応じて、入力制御選択／予測エンジン５３７は、目的と選択されたボットとが与えられた場合に、コントローラ入力の次のセットが何であるかを予測するように構成される。コントローラ入力は、オートプレーヤ１４３ａに返信され、次いでオートプレーヤ１４３ａは、コントローラ入力を、対応するゲームプレイをサポートするゲームアプリケーションの対応するインスタンスに送信する。そのようにして、対応するゲームプレイ３１０ａ〜３１０ｎのために、ゲームアプリケーションのインスタンスを実行するためのバックエンドサーバのバンクを利用することにより、訓練状態データ３４５を迅速かつ効率的に自動生成することができる。
【０１０８】
一実施形態では、第１の入力状態データに対して、複数の入力制御またはコントローラ入力のセットが、第１の入力状態データに続いてプレイされるように決定され得る。成功基準を満たすと予測され、複数の入力制御のセットの中で最も成功度が高いと予測される第１の入力制御のセットが選択される。このようにして、第１の入力制御のセットは、実行のためゲームアプリケーションの対応するインスタンスにアクションとして配信することができる。
【０１０９】
図５Ｄは、本開示の一実施形態による、ゲームアプリケーションのインスタンスを実行するバックエンドサーバのネットワークを介して訓練されたＡＩモデル１６０によって指示されたオートスイーパ／プレーヤ１４６ａを使用して、ゲームアプリケーション内を自動的に回るプロセスを示すデータ流れ図を示す。ゲームアプリケーションの複数のゲームプレイ５０１（例えば、５０１ａ〜５０１ｎ）を示す。ゲームプレイは、ＡＩモデル１６０を介してなど、自動的に制御することができる。その場合、ＡＩモデル１６０は、次の入力状態データ（例えば、ゲーム状態などの入力状態データを生成するために使用されるコントローラ入力）を提供するように構成されてもよい。
ゲームアプリケーションのインスタンスは、ストリーミングゲームサービス（例えば、クラウドゲームシステム）のバックエンドサーバ上で実行されている場合がある。ゲームプレイ５０１ａ〜５０１ｎは、例えば、１つ以上のシナリオＳ−１、Ｓ−２、及びＳ−３を通じて発生していることがある。ゲームプレイ５０１ａ〜５０１ｎからの入力状態データ５０５ａ〜５０５ｎは、ＡＩモデル１６０の出力を分析するように構成された分析器１４０に提供される。深層学習エンジン１９０は、ＡＩモデル１６０を（学習フェーズではなく適用フェーズで）実装する。ＡＩモデル１６０は、出力を提供するように構成されていて、分析器１４０は、出力のその分析に基づいて、実行すべきアクションを実行する、または提供するように構成されている。
【０１１０】
具体的には、ゲームプレイ３１０は、ＡＩモデル１６０などによって自動的に実行される。例えば、予め定義された目的は、ＡＩモデルが訓練された後に、ゲームアプリケーションを自動的にテストすることであってもよい。例えば、ＡＩモデルは以前に自動的に自己訓練されていた可能性があり、次にそのＡＩモデルを使って、ゲームアプリケーションをテストすることができる。別の実施形態では、訓練中に、オートスイープ機能が実行される。具体的にいえば、分析器１４０は、入力制御シーケンス構文解析器５７１とマップ／ルート追跡器５７２とを含み、これらはそれぞれ先に紹介したとおりである。例えば、入力制御シーケンス構文解析器１４７ａは、以前にテストされたコントローラ入力のシーケンスを決定するように構成される。分析器１４０のシーケンスマップ及び／またはルート追跡器１４８ａは、テスト中のゲームプレイの進行を追跡して、ゲーム環境中の進行を追跡することを含むように構成される。
【０１１１】
一実施形態では、第１の入力状態データが、訓練中に採用された以前のアクションとして、ＡＩモデルによって生成される。ＡＩモデルの出力を分析中に、第１の入力状態データに応答するための様々な順列が、そのとき決定される。例えば、各順列には、取得すべきコントローラ入力の一意のセットが含まれている。その後、異なる順列の実行など、１つ以上のアクションが起こされる。そのようにして、本システムは、ゲームアプリケーションをプレイする際の異常を発見するように構成され得る。
【０１１２】
具体的には、分析器１４０のアクション生成器１７０は、ゲームアプリケーションが実行し得る様々な順列を決定するために、順列エンジン１４６ｂなどを使用することにより、ゲームアプリケーションを探索するように構成されたオートスイーパエンジン／プレーヤ１４６ａを含む。例えば、入力制御順列エンジン１４６ｂは、所与の状況（例えば、特定のゲーム状態）などに応答して、ゲームアプリケーションが実行可能な様々な順列を決定するように構成される。つまり、入力制御順列エンジン１４６ｂは、所与の入力状態データ４０５ａ〜４０５ｎ（例えば、ゲーム状態）に対して、次のコントローラ入力のセットが何であるべきかを決定することができる。この場合、順列エンジン１４６ｂは、入力状態データに応答するための異なる順列を発見し、各順列が、起こすべき異なるアクションのセットを含む。そして、オートスイーパエンジン１４６ａは、ゲームプレイ４０１ａ〜４０１ｎを制御することにより（例えば、ゲームアプリケーションの実行インスタンスに適切なコントローラ入力を渡すことにより）、様々な順列を経るように構成される。
【０１１３】
さらに、分析器１４０は、ゲームアプリケーションのウィークポイント（例えば、過度に長くて退屈なシーケンス、難しいセクションなど）、または欠陥（例えば、グリッチ、ループなど）を発見する目的などで、ゲームアプリケーションの品質分析を行うように構成される。例えば、マップ／ルート分析器４４１は、ゲームアプリケーションの異なる順列の出力（例えば、ゲームの状態）を分析して、ゲームアプリケーションのウィークポイントを発見するように構成される。一実施形態では、ゲームコード識別器４４３が、ゲームアプリケーションのコーディングにおける問題を発見するように構成され、コード位置４４７が出力として提供される。
【０１１４】
図５Ｅは、本開示の一実施形態による、対戦相手をプレーヤに提供するためのプロセスであって、この対戦相手は、ゲームアプリケーションのインスタンスを実行するバックエンドサーバのネットワークを介して訓練されるＡＩモデルによって指示されるプロセスを示すデータ流れ図を示す。ゲームアプリケーションのゲームプレイ５０１ｘを示す。ゲームプレイは、対応するクライアントデバイスを介してプレーヤＰ−ｘによって制御され得、上記のとおり、ストリーミングゲームサービス（例えば、クラウドゲームシステム）のバックエンドサーバで、ゲームアプリケーションのインスタンスが実行されている。他の実施形態では、ゲームアプリケーションはクライアントデバイス上でローカルに実行されてもよく、メタデータは、ＡＩモデルサポートのためにバックエンドサーバに配信される。ゲームプレイ５０１ｘは、シナリオＳ−１中に発生しており、プレーヤの入力操作５０３ｘによって制御されている。
【０１１５】
ゲームプレイ５０１ｘからの入力状態データ５０５ｘが、訓練されたＡＩモデル１６０の出力を分析するように構成された分析器１４０に提供され、訓練されたＡＩモデル１６０は、深層学習エンジン１９０を介して（学習フェーズではなく、適用フェーズにおいて）実装される。入力状態データ５０５ｘは、ＡＩモデル１６０が訓練された後に受信され、そのため、上記のＡＩモデルの訓練に使用された訓練状態データの一部ではないことがある。ＡＩモデル１６０は、出力を提供するように構成されていて、分析器１４０は、出力のその分析に基づいて、実行すべきアクションを実行する、または提供するように構成されている。
【０１１６】
具体的にいえば、分析器１４０は、入力制御シーケンス構文解析器５７１とプレーヤプロファイラ１４４ａとを含み、これらはそれぞれ先に紹介したとおりである。例えば、入力制御シーケンス構文解析器１４７ａは、ゲームプレイを制御するためにプレーヤによって使用されるコントローラ入力のシーケンスを決定するように構成される。分析器１４０のプレーヤプロファイラ１４４ａは、ゲームアプリケーションをプレイするプレーヤのプロファイリングを行う（例えば、プレーヤのスキルレベルを判定する）ように構成される。
【０１１７】
さらに、分析器１４０は、１つ以上のボット（ゲームプレイに使用される、またはゲームプレイ中のキャラクタを制御するための自動プレーヤロボットまたは対戦相手）を構築するように構成されたボットビルダ５７５を含む。例えば、ボットビルダ５７５は、成功基準の適用によりＡＩモデル１６０によって学習されたアルティメットボット１４２ｄを構築するように構成され得る。上記のとおり、所与の入力のセット（例えば、入力訓練データ）に対して、より成功したパターン（例えば、結び付けられた特徴及び／またはラベルを含むルール）が学習され、成功していないパターンよりも選ばれる。そのようにして、ゲームアプリケーションのプレイにおいて最も成功する最高または究極のボット１４２ｄが訓練される。別の例では、ボットビルダ５７５は、第１のプレーヤをシミュレートするバーチャルプレーヤまたはバーチャルミーボット（ｖｉｒｔｕａｌ  ｍｅ  ｂｏｔ）１４２ｃを構築するように構成される。一実施形態では、訓練状態データは、１つ以上のクライアントデバイスでの第１のプレーヤによるゲームプレイから得られる。つまり、他のプレーヤのゲームプレイからのデータは、バーチャルミーボット１４２ｃの訓練には使用されない。そのようにして、ＡＩモデルは、最初のプレーヤのゲームプレイによって作成されたメタデータを覚え込ませられるので、ＡＩモデルは、最初のプレーヤをそのまま反映したものになる。
【０１１８】
さらに別の例では、ボットビルダ５７５は、様々なスキルレベルの１つ以上のボットを構築するように構成される。例えば、様々なスキルのボットには、エキスパートボット５７６、中級ボット５７７、及びビギナーボット５７８が含まれ得る。一実施態様では、ＡＩモデルが、対応するスキルレベルのデータを使用して訓練されるように、訓練状態データが、対応するスキルレベルを反映するように解析されることがある。例えば、ボットビルダ５７５がエキスパートボット５７６を構築できるように、エキスパートプレーヤのゲームプレイのみをＡＩモデルの訓練に使用するように、成功基準を定義してもよい。別の例では、ボットビルダ５７５が中級ボット５７７を構築できるように、中級スキルのプレーヤのゲームプレイのみをＡＩモデルの訓練に使用するように、成功基準を定義してもよい。
さらに別の例では、ボットビルダ５７５がビギナーボット５７８を構築できるように、ビギナーのスキルを持つプレーヤのゲームプレイのみをＡＩモデルの訓練に使用するように、成功基準を定義してもよい。さらに別の実施形態では、特定のスキルレベルのボットは、バーチャルアルティメットボット１４２ｄを使用し、アルティメットボットのパフォーマンスに１つ以上の状況を適用することによって実装することができて、ランダム性及び／または待ち時間を導入することを含む。例えば、アルティメットボットのパフォーマンスは、シーケンス内のコントローラ入力の実行間に遅延を導入することによって、またはタスクの実行に極めて成功しやすいことが知られているコントローラ入力の特定のシーケンスにランダムなコントローラ入力を導入することによって、損なわれ得る。
【０１１９】
さらに、分析器１４０のアクション生成器１７０は、予め定義された目的に応じて、ＡＩモデルトレーナ１４３ｂによって指示されて、ＡＩモデルを自動的に訓練する目的などで、ゲームアプリケーションをオートプレイするように構成されているオートプレーヤ１４３ａを含む。例えば、予め定義された目的は、ＡＩモデル１６０を自動的に訓練することであってもよい。具体的にいえば、分析器１４０は、ＡＩモデルトレーナ１４３ｂによって指示されて、ゲームアプリケーションをオートプレイするように構成されたオートプレーヤ１４３ａを含む。
【０１２０】
分析器１４０は、ボット対戦相手（例えば、自動的に反応するロボット対戦相手）を提供する目的でゲームアプリケーションをオートプレイするように構成されたオートプレーヤ１４３ａを含む。ボット対戦相手セレクタ１４２ａは、以前に紹介したボット（例えば、アルティメットボット１４２ｄ、バーチャルミーボット１４２ｃ、及びエキスパートボット５７６、中級ボット５７７、またはビギナーボット５７８を含む様々なスキルのボット）など、適切なボットを選択するように構成される。ゲームプレイを操作するプレーヤは、ボットの対戦相手に立ち向かうキャラクタを操作することができる。具体的には、オートプレーヤ１４３ａは、選択された自動ロボット（ボット）を実装するように構成されている。所与の入力状態データ５０５ｘのセットについて、出力がオートプレーヤ１４３ａによって分析器１４０によって分析されて、ゲームアプリケーションで見つけたボットを制御するための次の命令のセットを決定することができる。
【０１２１】
さらに、ボットスロットラ１４２ｂが、対応するボットに反映される難易度設定を（例えば、ボットの操作に）適用するように構成される。ボットスロットラは、アルティメットボット１４２ｄ、または他のいずれかの学習済みボットから始めることができる。難易度の設定は、プレーヤが積極的に適用してもよく、またはユーザプロファイルに応じて適用してもよい。例えば、プロファイルに示されているプレーヤがエキスパートであれば、難易度は高く設定される（対戦相手ボットを倒すのは難しい）。逆に、プレーヤが初心者であれば、難易度は低めに設定される（対戦相手ボットを簡単に倒せる）。
図示するように、ボットスロットラ１４２ｂは、ランダム命令を導入するように構成されたランダマイザ５５１を含み得る。難易度の高い対応するボットは、アルティメットボット１４２ｄを制御するために通常使用される命令のストリームに、低レベルのランダムな命令が挿入されている。そのため、結果として得られるボットは、アルティメットボット１４２ｄに似ている。その一方で、結果的に難易度の低いボットは、アルティメットボット１４２ｄを正常に制御するために用いられる命令のストリームに、高レベルのランダムな命令が挿入されることになる。ランダムな指示があるために、結果として得られるボットの動作は不安定になり、アルティメットボット１４２ｄほどの性能を発揮できない。
さらに、難易度設定を適用するために、待ち時間エンジン５５３を実装してもよい。結果として得られる高度な難易度のボットの場合、通常はアルティメットボット１４２ｄに適用される、命令のストリームに導入される待ち時間は制限されるか、まったくない。一方、結果的に難易度の低いボット（例えば、初心者向け）の場合、アルティメットボット１４２ｄに対して通常適用される命令のストリームに、より大きな待ち時間が導入されることになる。そのようにして、結果として得られる難易度の低いボットは、攻撃時、または防御操作時などでは非常にゆっくりとした動きをすることになり、そのような者は簡単に倒されてしまうことになる。
【０１２２】
図５Ｆは、本開示の一実施形態による、プレーヤの弱点を特定し、それらの弱点を克服するようにプレーヤを訓練するための様々なサービスを提供するプロセスを示すデータ流れ図を示す。ゲームアプリケーションのゲームプレイ５０１ｘを示す。ゲームプレイは、対応するクライアントデバイスを介してプレーヤＰ−ｘによって制御され得、上記のとおり、ストリーミングゲームサービス（例えば、クラウドゲームシステム）のバックエンドサーバで、ゲームアプリケーションのインスタンスが実行されている。他の実施形態では、ゲームアプリケーションはクライアントデバイス上でローカルに実行されてもよく、メタデータは、ＡＩモデルサポートのためにバックエンドサーバに配信される。ゲームプレイ５０１ｘは、シナリオＳ−１中に発生しており、プレーヤの入力操作５０３ｘによって制御されている。
【０１２３】
ゲームプレイ５０１ｘからの入力状態データ５０５ｘが、訓練されたＡＩモデル１６０の出力を分析するように構成された分析器１４０に提供され、訓練されたＡＩモデル１６０は、深層学習エンジン１９０を介して（学習フェーズではなく、適用フェーズにおいて）実装される。入力状態データ５０５ｘは、ＡＩモデル１６０が訓練された後に受信され、そのため、上記のＡＩモデルの訓練に使用された訓練状態データの一部ではないことがある。ＡＩモデル１６０は、出力を提供するように構成されていて、分析器１４０は、出力のその分析に基づいて、実行すべきアクションを実行する、または提供するように構成されている。
【０１２４】
さらに、分析器１４０のアクション生成器１７０は、予め定義された目的に応じて、ＡＩモデルトレーナ１４３ｂによって指示されて、ＡＩモデルを自動的に訓練する目的などで、ゲームアプリケーションをオートプレイするように構成されているオートプレーヤ１４３ａを含む。例えば、予め定義された目的は、ＡＩモデル１６０を自動的に訓練することであってもよい。
【０１２５】
具体的には、分析器１４０は、予め定義された目的に従って対応するゲームプレイを制御している対応するプレーヤの弱点を判定して、指導を提供するように構成された、弱点特定器１４１ａを含む。弱点は、プレーヤのゲームプレイの分析によって判定される。
【０１２６】
例えば、分析には、成功基準との比較が含まれ得る。具体的には、第１の入力状態データが、ＡＩモデルからの出力を、比較可能な入力状態データから得られる他の出力と比較して分析することによって判定されて、平均の成功度よりも低いと判定することにより、弱点を特定することができる。例として、所与の入力状態データ（例えば、第１の入力状態データ）について、第１の入力状態データに応答して出力を生成する相互接続されたノードの第１のセットは、対応する成功基準を満たす際の値が、比較可能な入力状態データを有する類似のゲームプレイに対して決定された平均値よりも低い値を有する場合がある。つまり、同じかまたは類似の入力状態データを有するゲームプレイに対して比較が行われる。したがってそのように、弱点特定器１４１ａは、プレーヤの弱点を判定することができる。
【０１２７】
さらに、弱点訓練器１４１ｂが、プレーヤが弱点を克服するのに有用なサービスを行うように構成されている。例えば、弱点訓練器１４１ｂは、プレーヤの弱点に関連してプレーヤのスキルを向上させることを目的とした１つ以上のチュートリアル５６１（例えば、映像、ゲームセッションなど）を提供してもよい。チュートリアルには、弱点に関連したプレーヤのスキルを強化する方法を説明するビデオチュートリアル、または弱点に関連したスキルを強化することを目的としたゲームセッションなどがあり得る。さらに、特定された弱点に対処する訓練セッションが、対応するクライアントデバイスを介してプレーヤに提示されてもよい。また、弱点訓練器１４１ｂは、一実施形態では、プレーヤの弱点を露呈するようなゲームプレイを指示することに特化したボットを提供するように構成してもよい。ボットは、プレーヤが対戦するための仮想の究極の対戦相手５６５であってもよい。仮想の究極の対戦相手５６５は、上記のとおり、アルティメットボット１４２ｄであってもよい。
【０１２８】
図６は、本開示の様々な実施形態の態様を実行するために使用することができる例示的なデバイス６００の構成要素を示す。例えば、図６は、本開示の一実施形態による、ゲームアプリケーション及び／またはゲームアプリケーションのゲームプレイに関連する様々な機能性を実行することができるＡＩモデルを訓練するのに適した、例示的なハードウェアシステムを示している。このブロック図は、パーソナルコンピュータ、サーバコンピュータ、ゲーム機、モバイルデバイス、または他のデジタルデバイスを組み込むことができる、またはそれらの各々が本発明の実施形態を実践するのに適しているデバイス６００を示している。デバイス６００は、ソフトウェアアプリケーション及び任意選択でオペレーティングシステムを実行するための中央処理装置（ＣＰＵ）６０２を含む。ＣＰＵ６０２は、１つまたは複数の同種または異種の処理コアで構成されてもよい。
【０１２９】
様々な実施形態によれば、ＣＰＵ６０２は、１つ以上の処理コアを有する１つ以上の汎用マイクロプロセッサである。さらなる実施形態は、深層学習、コンテンツ分類、及びユーザ分類のために構成されたアプリケーションのうち、メディア及びインタラクティブエンターテインメントアプリケーションなどの高度に並列かつ計算集約的なアプリケーションに特別に適合したマイクロプロセッサアーキテクチャを有する１つ以上のＣＰＵを使用して実施することができる。例えば、ＣＰＵ６０２は、ゲームアプリケーション及び／またはゲームアプリケーションのゲームプレイに関連して様々な機能性（例えば、予測）を提供することに関して、学習動作をサポート及び／または実行するように構成されたＡＩエンジン（例えば、深層学習）１９０を含むように構成されてもよい。
深層学習エンジンは、ゲームアプリケーション及び／またはゲームアプリケーションのゲームプレイに関連する様々な機能性を提供するように構成されたＡＩモデルを構築及び／または訓練するように構成されたモデラ１２０を含み得る。さらに、ＣＰＵ６０２は、訓練されたＡＩモデルを実装するように構成された分析器１４０を含む。訓練されたＡＩモデルは、入力に応答して出力を提供し、出力は、訓練されたＡＩモデルの予め定義された機能性に依存する。訓練されたＡＩモデルは、ゲームプレイ中にどのようなアクションを取ることができるかを判断するのに使用され得る。分析器１４０は、どれが取るべき適切なアクションであるかを判断する。つまり、分析器１４０は、ゲームアプリケーション及び／またはゲームアプリケーションのゲームプレイに関連して、様々な機能性を実行するように構成されている。分析器１４０は、所与の入力（例えば、コントローラ入力、ゲーム状態データ、成功基準）に対する訓練されたＡＩモデル１６０からの出力を分析し、応答を提供するように構成されている。
【０１３０】
メモリ６０４は、ＣＰＵ６０２が使用するアプリケーション及びデータを記憶する。ストレージ６０６は、アプリケーション及びデータのための不揮発性ストレージ及びその他のコンピュータ可読媒体を提供し、固定ディスクドライブ、リムーバブルディスクドライブ、フラッシュメモリデバイス、及びＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ、Ｂｌｕ−ｒａｙ（登録商標）、ＨＤ−ＤＶＤ、またはその他の光学ストレージデバイス、ならびに信号伝送及びストレージメディアを含んでもよい。ユーザ入力デバイス６０８は、１人以上のユーザからのユーザ入力をデバイス６００に伝達するものであり、その例としては、キーボード、マウス、ジョイスティック、タッチパッド、タッチスクリーン、スチルまたはビデオレコーダ／カメラ、及び／またはマイクロフォンがあり得る。
ネットワークインタフェース６１４は、電子通信ネットワークを介してデバイス６００が他のコンピュータシステムと通信することを可能にするものであり、ローカルエリアネットワークやインターネットなどのワイドエリアネットワークを介した有線または無線の通信を含み得る。オーディオプロセッサ６１２は、ＣＰＵ６０２、メモリ６０４、及び／またはストレージ６０６によって提供される命令及び／またはデータから、アナログまたはデジタルのオーディオ出力を生成するように適合されている。ＣＰＵ６０２、メモリ６０４、データストレージ６０６、ユーザ入力デバイス６０８、ネットワークインタフェース６１０、及びオーディオプロセッサ６１２を含むデバイス６００の構成要素は、１つ以上のデータバス６２２を介して接続されている。
【０１３１】
グラフィックスサブシステム６１４が、データバス６２２及びデバイス６００の構成要素とさらに接続されている。グラフィックスサブシステム６１４は、グラフィックスプロセシングユニット（ＧＰＵ）６１６とグラフィックスメモリ６１８とを含む。グラフィックスメモリ６１８は、出力画像の各画素の画素データを格納するために使用される表示メモリ（例えば、フレームバッファ）を含む。グラフィックスメモリ６１８は、ＧＰＵ６１６と同じデバイスに統合されてもよく、ＧＰＵ６１６と別個のデバイスとして接続されてもよく、及び／またはメモリ６０４内に組み込まれてもよい。画素データは、ＣＰＵ６０２から直接グラフィックスメモリ６１８に提供することができる。
あるいは、ＣＰＵ６０２は、所望の出力画像を定義するデータ及び／または命令をＧＰＵ６１６に提供し、そこからＧＰＵ６１６が１つ以上の出力画像の画素データを生成する。所望の出力画像を定義するデータ及び／または命令は、メモリ６０４及び／またはグラフィックスメモリ６１８に格納することができる。実施形態では、ＧＰＵ６１６は、シーンのジオメトリ、ライティング、シェーディング、テクスチャリング、モーション、及び／またはカメラパラメータを定義する命令及びデータから、出力画像用の画素データを生成するための３Ｄレンダリング機能を含む。ＧＰＵ６１６は、シェーダプログラムを実行することができる１つ以上のプログラマブル実行ユニットをさらに含むことができる。一実施形態では、ＧＰＵ６１６は、ＡＩまたは深層学習機能のためなど、追加の処理能力を提供するために、ＡＩエンジン１９０内に実装されてもよい。
【０１３２】
グラフィックスサブシステム６１４は、ディスプレイデバイス６１０に表示すべき画像、または投影システム６４０で投影すべき画像の画素データを、グラフィックスメモリ６１８から定期的に出力する。ディスプレイデバイス６１０は、ＣＲＴ、ＬＣＤ、プラズマ、及びＯＬＥＤディスプレイを含む、デバイス６００からの信号に応答して視覚情報を表示することができる任意のデバイスであり得る。デバイス６００は、例えば、アナログ信号またはデジタル信号をディスプレイデバイス６１０に提供することができる。
【０１３３】
よって、本開示では、様々な実施形態において、１つ以上のゲームプレイをサポートするゲーミングアプリケーションのインスタンスを実行するサーバのネットワークから収集した訓練データを使用してＡＩモデルを構築するために、ならびに訓練されたＡＩモデルを使用して、ゲームアプリケーション及び／またはゲームアプリケーションのゲームプレイに関連する様々な機能性を提供するために、深層学習（機械学習とも呼ばれる）技法を実施するシステム及び方法について説明した。
【０１３４】
本明細書で定義される様々な実施形態は、本明細書で開示される様々な特徴を使用する特定の実施態様に組み合わされ得る、または組み立てられ得ることを、理解されたい。従って、提供される実施例は、いくつかの可能な実施例にすぎず、様々な要素を組み合わせることでより多くの実施態様を定義することが可能な様々な実施態様に限定されない。いくつかの実施例では、いくつかの実施態様は、開示されたまたは同等の実施態様の趣旨から逸脱することなく、より少ない要素を含んでもよい。
【０１３５】
本開示の実施形態は、ハンドヘルドデバイス、マイクロプロセッサシステム、マイクロプロセッサベースまたはプログラム可能な一般消費者向け電気製品、小型コンピュータ、及びメインフレームコンピュータなどを含む様々なコンピュータシステム構成で実施され得る。本開示の実施形態はまた、有線ベースまたは無線のネットワークを介してリンクされるリモート処理デバイスによりタスクが行われる分散型コンピューティング環境においても、実施することができる。
【０１３６】
前述の実施形態を念頭に置いて、本開示の実施形態は、コンピュータシステムに記憶されたデータを伴う様々なコンピュータ実施動作を用い得ることを、理解されたい。これらの動作は、物理量の物理的操作を要する動作である。本開示の実施形態の一部を形成する、本明細書で説明される動作のうちのいずれも、有用な機械動作である。開示の実施形態はまた、これら動作を実行するためのデバイスまたは装置に関する。装置は、必要な目的のために特別に構築されてもよい、または装置は、コンピュータに記憶されたコンピュータプログラムにより選択的に起動または構成される汎用コンピュータであってもよい。具体的には、様々な汎用機械を、本明細書の教示に従って書かれたコンピュータプログラムと共に使用することができる、あるいは、必要な動作を実行するためにより専門的な装置を構築するほうがより好都合である場合もある。
【０１３７】
開示は、コンピュータ可読媒体上のコンピュータ可読コードとして具体化することもできる。コンピュータ可読媒体は、データを記憶することができ、その後コンピュータシステムによって読み取ることができる任意のデータ記憶デバイスである。コンピュータ可読媒体の例には、ハードドライブ、ネットクワーク接続ストレージ（ＮＡＳ）、読み出し専用メモリ、ランダムアクセスメモリ、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＣＤ−ＲＷ、磁気テープ、並びに他の光学及び非光学データストレージデバイスが挙げられる。コンピュータ可読媒体には、コンピュータ可読コードが分散方式で記憶及び実行されるように、ネットワーク接続されたコンピュータシステム上に分散されたコンピュータ可読有形媒体が含まれてもよい。
【０１３８】
方法動作は特定の順序で説明されたが、オーバーレイ動作の処理が所望の方法で実行される限り、動作間に他の維持管理動作が実行されてもよく、または動作がわずかに異なる時間に起こるように調整されてもよく、またはシステム内に動作を分散することで、様々な処理関連間隔で処理動作が起こることを可能にしてもよいことを、理解すべきである。
【０１３９】
前述の開示は、理解を明確にするためにある程度詳細に説明されたが、添付の特許請求の範囲内で特定の変更及び修正を実施できることは明らかであろう。したがって、本実施形態は、限定ではなく例示としてみなされるべきであり、本開示の実施形態は、本明細書に提供される詳細に限定されるものではなく、添付の特許請求の範囲内及び均等物内で変更されてもよい。
【図１Ａ】
2021534931.tif 000003
【図１Ｂ】
2021534931.tif 000004
【図２Ａ】
2021534931.tif 000005
【図２Ｂ】
2021534931.tif 000006
【図３Ａ】
2021534931.tif 000007
【図３Ｂ−１】
2021534931.tif 000008
【図３Ｂ−２】
2021534931.tif 000009
【図３Ｃ−１】
2021534931.tif 000010
【図３Ｃ−２】
2021534931.tif 000011
【図４Ａ】
2021534931.tif 000012
【図４Ｂ】
2021534931.tif 000013
【図５Ａ】
2021534931.tif 000014
【図５Ｂ】
2021534931.tif 000015
【図５Ｃ】
2021534931.tif 000016
【図５Ｄ】
2021534931.tif 000017
【図５Ｅ】
2021534931.tif 000018
【図５Ｆ】
2021534931.tif 000019
【図６】
2021534931.tif 000020
【国際調査報告】
2021534931.tif 000021
2021534931.tif 000022
2021534931.tif 000023
2021534931.tif 000024
2021534931.tif 000025