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

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

▶ バランスド メディア テクノロジー エルエルシーの特許一覧

特許7413628機械学習アルゴリズムのゲーミフィケーションのための抽象化インターフェイス
<>
  • 特許-機械学習アルゴリズムのゲーミフィケーションのための抽象化インターフェイス 図1
  • 特許-機械学習アルゴリズムのゲーミフィケーションのための抽象化インターフェイス 図2
  • 特許-機械学習アルゴリズムのゲーミフィケーションのための抽象化インターフェイス 図3
  • 特許-機械学習アルゴリズムのゲーミフィケーションのための抽象化インターフェイス 図4
  • 特許-機械学習アルゴリズムのゲーミフィケーションのための抽象化インターフェイス 図5
  • 特許-機械学習アルゴリズムのゲーミフィケーションのための抽象化インターフェイス 図6
  • 特許-機械学習アルゴリズムのゲーミフィケーションのための抽象化インターフェイス 図7
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-01-05
(45)【発行日】2024-01-16
(54)【発明の名称】機械学習アルゴリズムのゲーミフィケーションのための抽象化インターフェイス
(51)【国際特許分類】
   G06N 20/00 20190101AFI20240109BHJP
【FI】
G06N20/00
【請求項の数】 13
(21)【出願番号】P 2020552388
(86)(22)【出願日】2019-03-26
(65)【公表番号】
(43)【公表日】2021-08-12
(86)【国際出願番号】 US2019024157
(87)【国際公開番号】W WO2019191153
(87)【国際公開日】2019-10-03
【審査請求日】2022-03-25
(31)【優先権主張番号】62/648,198
(32)【優先日】2018-03-26
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】519434477
【氏名又は名称】バランスド メディア テクノロジー エルエルシー
(74)【代理人】
【識別番号】100084995
【弁理士】
【氏名又は名称】加藤 和詳
(72)【発明者】
【氏名】クラーク、コーリー
【審査官】渡辺 順哉
(56)【参考文献】
【文献】特開2007-312848(JP,A)
【文献】特開2013-084175(JP,A)
【文献】米国特許出願公開第2015/0126286(US,A1)
【文献】特開2014-157605(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06N 3/00-99/00
(57)【特許請求の範囲】
【請求項1】
プロセッサが、
所与の問題に対するソリューションを識別するステップと、
識別された前記ソリューションが所与の前記問題に対する可能なソリューションであると判定することに基づいて、可能な前記ソリューションを使用する機械学習アプリケーションを実行することによって、可能な前記ソリューションを処理するステップと、
処理されるソリューションを選択するステップと、
終了条件に基づいて、所与の前記問題について選択された前記ソリューションによるプロセスを終了するかどうかを判定するステップと、
含むプロセスを反復的に実行し、
前記プロセッサが、
各反復で処理された処理されるソリューションに対するメトリックを生成するステップと、
生成された前記メトリックのうちの1つまたは複数に基づいて、処理される前記ソリューションを使用して前記機械学習アプリケーションの性能を特徴付けるステップと、
を、前記プロセスがさらに含み、
前記プロセスを実行することは、対話型アプリケーションのためのユーザインターフェイスを介して、前記ステップのうちの1つの少なくとも部分を実行する際に使用するための入力を前記対話型アプリケーションに受信することを含
処理される前記ソリューションを選択するステップは、選択された前記ソリューションを使用する前記機械学習アプリケーションの性能に基づいて、複数の処理されるソリューションから処理される前記ソリューションを選択することを含む、
対話型機械学習方法。
【請求項2】
前記ステップのうちの1つの少なくとも部分を実行する際に使用するための入力を受信することは、
受信された前記入力に基づいて、前記機械学習アプリケーションのパラメータに対する修正を識別する、
ことを含み、
所与の前記問題に対するソリューションを識別することは、
前記プロセスの反復について、識別された前記ソリューションの少なくとも部分として、パラメータ修正を識別する、
ことを含み、
可能な前記ソリューションを処理することは、
前記パラメータ修正に基づいて前記機械学習アプリケーションを修正し、
修正された前記機械学習アプリケーションを1つまたは複数の反復で実行する、
ことを含む、
請求項1に記載の対話型機械学習方法。
【請求項3】
受信された前記入力に基づいて識別された前記パラメータ修正は、前記プロセスの以前の反復において、前記機械学習アプリケーションによって生成されたパラメータ修正のセットから選択され、
前記以前の反復は、当該反復より時間的に前の反復である、
請求項に記載の対話型機械学習方法。
【請求項4】
前記ステップのうちの1つの少なくとも部分を実行する際に使用するための入力を受信することは、
前記ユーザインターフェイスを介して、前記対話型アプリケーションで提示される対話のためのパラメータ入力として前記入力を受け取る、
ことを含み、
所与の前記問題に対するソリューションを識別することは、
識別された前記ソリューションの少なくとも部分として前記パラメータ入力を識別する、
ことを含み、
可能な前記ソリューションを使用して前記機械学習アプリケーションを実行することによって可能な前記ソリューションを処理することは、
前記対話型アプリケーションで提示された前記対話からの前記パラメータ入力を、前記機械学習アプリケーションのためのパラメータの少なくとも1つの修正として使用する、
ことを含む、
請求項1に記載の対話型機械学習方法。
【請求項5】
前記ステップのうちの1つの少なくとも部分を実行する際に使用するための入力を受信することは、
前記ユーザインターフェイスを介して、前記対話型アプリケーションで提示された対話に関する所与の問題の少なくとも部分に対して試みられるソリューションとしての入力を受信する、
ことを含み、
複数の試みられるソリューションは、プロセスの複数の反復にわたって受信され、
処理される前記ソリューションを選択することは、
複数の試みられる前記ソリューションを評価し、
試みられる前記ソリューションの評価に基づいて処理されるソリューションを選択する、
請求項1に記載の対話型機械学習方法。
【請求項6】
前記ステップのうちの1つの少なくとも部分を実行する際に使用するための入力を受信することは、
前記ユーザインターフェイスを介して、可能な前記ソリューションを使用して前記機械学習アプリケーションを実行することからの出力が正しいかどうかの指標としての入力を受信する、
ことを含み、
可能な前記ソリューションを処理することは、
受信した前記指標に基づいて、可能な前記ソリューションを評価する、
ことを含む、
請求項1に記載の対話型機械学習方法。
【請求項7】
所与の問題に対するソリューションを識別するステップと、
識別された前記ソリューションが所与の前記問題に対する可能なソリューションであると判定することに基づいて、可能な前記ソリューションを使用する機械学習アプリケーションを実行することによって、可能な前記ソリューションを処理するステップと、
処理されるソリューションを選択するステップと、
終了条件に基づいて、所与の前記問題について選択された前記ソリューションによるプロセスを終了するかどうかを判定するステップと、
含むプロセスを反復的に実行するように構成されているプロセッサ(210)と、
前記プロセッサに動作可能に接続されている通信インターフェイス(220)と、
を含み、
前記プロセッサが、
各反復で処理された処理されるソリューションに対するメトリックを生成するステップと、
生成された前記メトリックのうちの1つまたは複数に基づいて、処理される前記ソリューションを使用して前記機械学習アプリケーションの性能を特徴付けるステップと、
をさらに含む、前記プロセスをさらに実行するように構成され、
前記通信インターフェイスは、対話型アプリケーションのためのユーザインターフェイスを介して、前記ステップのうちの1つの少なくとも部分を実行する際に使用するための入力を前記対話型アプリケーションに受信するように構成され、
処理される前記ソリューションを選択するために、前記プロセッサが、選択された前記ソリューションを使用する前記機械学習アプリケーションの性能に基づいて、複数の処理されるソリューションから処理される前記ソリューションを選択するように構成されている、
対話型機械学習システム(200)。
【請求項8】
前記プロセッサが、
受信された前記入力に基づいて、前記機械学習アプリケーションのパラメータに対する修正を識別する、
ように構成され、
所与の前記問題に対するソリューションを識別するために、前記プロセッサは、
前記プロセスの反復について、識別された前記ソリューションの少なくとも部分として、パラメータ修正を識別する、
ように構成され、
可能な前記ソリューションを処理するために、前記プロセッサは、
前記パラメータ修正に基づいて前記機械学習アプリケーションを修正し、
修正された前記機械学習アプリケーションを1つまたは複数の反復で実行する、
ように構成されている、
請求項に記載の対話型機械学習システム。
【請求項9】
受信された前記入力に基づいて識別された前記パラメータ修正は、前記プロセスの以前の反復において、前記機械学習アプリケーションによって生成されたパラメータ修正のセットから選択され、
前記以前の反復は、当該反復より時間的に前の反復である、
請求項に記載の対話型機械学習システム。
【請求項10】
前記ステップのうちの1つの少なくとも部分を実行する際に使用するための入力を受信するために、前記通信インターフェイスは、さらに、
前記ユーザインターフェイスを介して、前記対話型アプリケーションで提示される対話のためのパラメータ入力として前記入力を受け取る、
ように構成され、
所与の前記問題に対するソリューションを識別するために、前記プロセッサは、さらに、
識別された前記ソリューションの少なくとも部分として前記パラメータ入力を識別する、
ように構成され、
可能な前記ソリューションを使用して前記機械学習アプリケーションを実行することによって可能な前記ソリューションを処理するために、前記プロセッサは、さらに、
前記対話型アプリケーションで提示された前記対話からの前記パラメータ入力を、前記機械学習アプリケーションのためのパラメータの少なくとも1つの修正として使用する、
ように構成されている、
請求項に記載の対話型機械学習システム。
【請求項11】
前記ステップのうちの1つの少なくとも部分を実行する際に使用するための入力を受信するために、前記通信インターフェイスは、さらに、
前記ユーザインターフェイスを介して、前記対話型アプリケーションで提示された対話に関する所与の問題の少なくとも部分に対して試みられるソリューションとしての入力を受信する、
ように構成され、
複数の試みられるソリューションは、プロセスの複数の反復にわたって受信され、
処理される前記ソリューションを選択するために、前記プロセッサは、さらに、
複数の試みられる前記ソリューションを評価し、
試みられる前記ソリューションの評価に基づいて処理されるソリューションを選択する、
ように構成されている、
請求項に記載の対話型機械学習システム。
【請求項12】
前記ステップのうちの1つの少なくとも部分を実行する際に使用するための入力を受信するために、前記通信インターフェイスは、さらに、
前記ユーザインターフェイスを介して、可能な前記ソリューションを使用して前記機械学習アプリケーションを実行することからの出力が正しいかどうかの指標としての入力を受信する、
ように構成され、
可能な前記ソリューションを処理するために、前記プロセッサは、さらに、
受信した前記指標に基づいて、可能な前記ソリューションを評価する、
ように構成されている、
請求項に記載の対話型機械学習システム。
【請求項13】
所与の問題に対するソリューションを識別するステップと、
識別された前記ソリューションが所与の前記問題に対する可能なソリューションであると判定することに基づいて、可能な前記ソリューションを使用する機械学習アプリケーションを実行することによって、可能な前記ソリューションを処理するステップと、
処理されるソリューションを選択するステップと、
終了条件に基づいて、所与の前記問題について選択された前記ソリューションによるプロセスを終了するかどうかを判定するステップと、
含むプロセスを反復的に実行し、
前記プロセスが、
各反復で処理された処理されるソリューションに対するメトリックを生成するステップと、
生成された前記メトリックのうちの1つまたは複数に基づいて、処理される前記ソリューションを使用して前記機械学習アプリケーションの性能を特徴付けるステップと、
を、さらに含み、
対話型アプリケーションのためのユーザインターフェイスを介して、前記ステップのうちの1つの少なくとも部分を実行する際に使用するための入力を前記対話型アプリケーションに受信
処理される前記ソリューションを選択するステップは、選択された前記ソリューションを使用する前記機械学習アプリケーションの性能に基づいて、複数の処理されるソリューションから処理される前記ソリューションを選択する、
ことを、システム(200)のプロセッサ(210)によって実行されると、前記システムに実行させるプログラムコードを含む対話型機械学習のための非一時的コンピュータ可読媒体(215)。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、一般に、ユーザ対話を伴う機械学習(ML)アルゴリズムの処理に関する。より具体的には、本開示は、機械学習アルゴリズムのゲーミフィケーションのための抽象化インターフェイスに関する。
【背景技術】
【0002】
多くの研究者がゲーム及びゲーム的な活動に目を向け、クラウドソーシング型の研究または市民科学(CS)(ヒューマンコンピューティング(HC)とも呼ばれる)を通じて研究にアプローチしている。CS研究技術は、研究者が、科学的研究を支援することに関心のあるボランティア市民科学者の膨大な潜在的ネットワークにアクセスすることを可能にする。Foldit(登録商標)などのCSゲームは、科学的な課題をゲームに変える。多くのCSゲームは、興味をうまく生み出し、貴重なデータ分析を提供し、科学的問題に対する創造的なソリューションを生み出すことが証明されている。これらのCSゲームの可能性にも拘わらず、CSゲームは、商用ビデオゲームのレベルでの成功及びエンゲージメントを見出していない。
【発明の概要】
【課題を解決するための手段】
【0003】
本開示の実施形態は、対話型機械学習、機械学習アルゴリズムのゲーミフィケーションのための抽象化インターフェイス、及び/または構築主義拡張機械学習を提供する。
【0004】
一実施形態では、対話型機械学習の方法が提供される。この方法は、所与の問題に対するソリューションを識別するステップと、識別されたソリューションが所与の問題に対する可能なソリューションであると判定することに基づいて、可能なソリューションを使用して機械学習アプリケーションを実行することによって可能なソリューションを処理するステップと、少なくとも部分がプロセスの異なる反復からのものである複数の処理されるソリューションに基づいて処理されるソリューションを選択するステップと、終了条件に基づいて所与の問題に対する選択されたソリューションを用いてプロセスを終了するかどうかを判定するステップと、を含むプロセスを反復的に実行することを含む。プロセスを実行することは、対話型アプリケーションのためのユーザインターフェイスを介して、ステップの少なくとも部分を実行する際に使用する対話型アプリケーションへの入力を受信することを含む。
【0005】
別の実施形態では、対話型機械学習のシステムが提供される。システムは、プロセッサと、プロセッサに動作可能に接続された通信インターフェイスと、を含む。プロセッサは、所与の問題に対するソリューションを識別するステップと、識別されたソリューションが所与の問題に対する可能なソリューションであると判定することに基づいて、可能なソリューションを使用して機械学習アプリケーションを実行することによって可能なソリューションを処理するステップと、少なくとも部分がプロセスの異なる反復からのものである複数の処理されるソリューションに基づいて処理されたソリューションを選択するステップと、終了条件に基づいて所与の問題に対する選択されたソリューションを用いてプロセスを終了するかどうかを判定するステップと、を含むプロセスを反復的に実行するように構成される。通信インターフェイスは、対話型アプリケーションのためのユーザインターフェイスを介して、ステップの少なくとも部分の実行で使用するために、対話型アプリケーションへの入力を受信するように構成される。
【0006】
別の実施形態では、対話型機械学習のための非一時的コンピュータ可読媒体が提供される。コンピュータ可読媒体は、システムのプロセッサによって実行されるとき、システムに、所与の問題に対するソリューションを識別するステップと、識別されたソリューションが所与の問題に対する可能なソリューションであると判定することに基づいて、可能なソリューションを使用して機械学習アプリケーションを実行することによって、可能なソリューションを処理するステップと、プロセスの異なる反復からの少なくとも部分の処理されるソリューションに基づいて処理されるソリューションを選択するステップと、終了条件に基づいて、所与の問題に対して選択されたソリューションを使用するプロセスを終了するかどうかを判定するステップと、を含むプロセスを反復的に実行させるプログラムコードを含む。コンピュータ可読媒体は、システムのプロセッサによって実行されると、システムに、対話型アプリケーションのためのユーザインターフェイスを介して、ステップの少なくとも部分の実行で使用するために対話型アプリケーションに入力を受信させるプログラムコードをさらに含む。
【図面の簡単な説明】
【0007】
図1】本開示の様々な実施形態を実施することができるネットワーク化されたシステムの一例を示す。
図2】本開示の様々な実施形態を実施することができるサーバの一例を示す。
図3】本開示の様々な実施形態が実装され得るクライアント装置の例を示す。
図4】本開示の様々な実施形態による、機械学習アルゴリズムのゲーミフィケーションを可能にする抽象化アルゴリズムインターフェイスを実装するためのプロセスを示す。
図5】本開示の様々な実施形態によるゲームプレイループのモデル内の機械学習アルゴリズムの例示的な実装を示す。
図6】本開示の様々な実施形態による、ゲームプレイを動的にスケーリングし、ゲームレベルを調整するためにアルゴリズム性能を使用するためのプロセスを示す。
図7】本開示の1つまたは複数の実施形態による、ゲームプレイを動的にスケーリングし、ゲームレベルを調整するために使用される、経時的な機械学習アルゴリズム性能の例示的なグラフを示す。
【発明を実施するための形態】
【0008】
本開示及びその利点をより完全に理解するために、以下の説明を添付の図面と併せて参照し、添付の図面では、同様の参照符号は同様の部分を表す。
【0009】
他の技術的特徴は、以下の図面、説明、及び特許請求の範囲から当業者には容易に明らかであろう。
【0010】
以下で論じる図1図7、及び本特許文献における本開示の原理を説明するために使用される様々な実施形態は、例示のためだけのものであり、本開示の範囲を限定するものと決して解釈されるべきではない。当業者は、本開示の原理が、任意の適切に配置されたシステムまたはデバイスにおいて実装され得ることを理解するであろう。
【0011】
本開示の様々な実施形態は、研究者に、ビデオゲームの設計及び開発の専門家になろうと試みさせること、又は科学的問題毎にカスタマイズされたゲームを作成させることは、費用がかかる可能性があることを認識する。本開示の様々な実施形態はまた、科学的問題を解決するいくつかのCSゲームの能力にもかかわらず、これらのゲームは、主流のビデオゲームのエンゲージメントを欠いていることを認識する。低いエンゲージメントでは、カスタム生成CSゲームの有用性は、完全な可能性に達しない。
【0012】
本開示の様々な実施形態は、科学的研究を既存の及び/又は成功した商用ビデオゲームに接続するためのソリューションを提供する。本開示の実施形態は、研究者がより一般的な形式で主流ビデオゲームを利用するためのメカニズムを提供する。特に、本開示の様々な実施形態は、ビデオゲーム(又はより一般的には対話型エンターテイメント)、機械学習、及び問題(例えば、機械学習問題、研究及び開発に関連する科学的問題)の間のインターフェイスのためのフレームワークを提供する。
【0013】
本開示の実施形態はまた、クラウドソーシングまたはCS技術を利用して機械学習を改善し、機械学習と対話するためのインターフェイスを提供する。現在の開示の具体例は、ゲームコミュニティのような巨大なオンラインコミュニティに、より良い世界を創造するのに役立つ重要な問題を処理するのを助けるために、彼らがすでにゲームで遊んでいる時間を利用する動機づけと力を与えることを提供する。
【0014】
本明細書で使用されるように、用語「ビデオゲーム」または「ゲーム」の使用は、一例として意図され、本開示の実施形態は、任意のタイプの対話型アプリケーションで実施することができる。また、本明細書で使用されるように、問題は、機械学習モデル自体の改善または修正、ならびに研究及び開発に関連する科学的問題を含む、機械学習またはコンピュータ処理を使用して処理または解決することができる任意のタイプの問題を指す。
【0015】
図1は、本開示の様々な実施形態が実装され得る例示的なネットワーク化されたシステム100を示す。図1に示されるネットワーク化されたシステム100の実施形態は、単に例示のためのものである。本開示の範囲から逸脱することなく、ネットワーク化されたシステム100の他の実施形態を使用することができる。
【0016】
図1に示すように、システム100は、システム100内の種々の構成要素間の通信を容易にするネットワーク101を含む。例えば、ネットワーク101は、ネットワークアドレス間でインターネット・プロトコル(IP)パケットまたは他の情報を通信することができる。ネットワーク101は、1つ以上のローカルエリアネットワーク、メトロポリタンエリアネットワーク、ワイドエリアネットワーク、バーチャルプライベートネットワーク、インターネットのようなグローバル・ネットワークの全部または一部、または1つ以上の場所にある他の通信システムまたはシステムを含むことができる。
【0017】
ネットワーク101は、様々なサーバ102~104及び様々なクライアント装置106~114の間の通信を容易にする。サーバ102~104の各々は、1つ以上のクライアント装置106~114のためのソフトウェアを含むコンピューティングサービスを提供することができる任意の適切な電子コンピューティング装置または処理装置とすることができる。サーバ102~104の各々は、例えば、1つ以上の処理装置、命令及びデータを記憶する1つ以上のメモリ、及びネットワーク101を介した通信を容易にする1つ以上のネットワークインターフェイスを含むことができる。例えば、以下でより詳細に議論されるように、サーバ102は、1つ以上のクライアント装置106~114を使用して実装される機械学習アルゴリズムのゲーミングのための抽象化インターフェイスを提供する。サーバ103は、以下でより詳細に論じるように、機械学習アルゴリズムを改善するためにクラウドソーシング技術を利用するために抽象化インターフェイスを統合する、ソフトウェアまたはゲーム開発に分類されたサーバであってもよい。サーバ104は、解く必要がある問題、及び/または抽象化インターフェイスを用いて処理される必要があるプロジェクトまたはタスクを有する、研究者、開発者、または他のグリッドコンピューティングコンシューマに関連するサーバであってもよい。さらに、いくつかの実施形態では、サーバ102~104の何れかは、アルゴリズム性能を評価するために、機械学習アルゴリズム性能に関するメトリックを受信し、記憶し、かつ/または分析することができ、かつ/または、以下でより詳細に説明するように、機械学習アルゴリズムソリューションの結果を研究者に提供することができる。
【0018】
各クライアント装置106~114は、ネットワーク101を介して少なくとも1つのサーバまたは他のコンピューティング装置と対話する任意の適切な電子コンピューティングまたは処理装置を表す。この例では、クライアント装置106~114は、デスクトップコンピュータ106、携帯電話又はスマートフォン108、タブレットコンピュータ110、ラップトップコンピュータ112、ビデオゲームコンソール114、セットトップボックス及び/又はテレビ等を含む。しかしながら、ネットワーク化されたシステム100では、任意の他のまたは追加のクライアント装置を使用することができる。例えば、システム100のクライアント装置106~114のうちの1つに、任意のインターネットまたはネットワーク接続可能な装置またはIoT(Internet of Things)装置(例えば、Smart TV、冷蔵庫、Raspberry PIなど)を使用することができる。以下で論じるように、様々な実施形態では、クライアント装置106~114は、サーバ102の調整の下で、ボランティアコンピューティンググリッドを(おそらく他のコンピューティング装置と共に)形成するために参加し、機械学習アルゴリズムのゲーミフィケーションのための抽象化インターフェイスを実装する。例えば、本明細書で説明するように、クライアント装置106~114は、抽象的な事柄で1つ以上の機械学習アルゴリズムを実行する能力を含む様々なビデオゲーム又は対話型アプリケーションを実行することができる。さらに、様々な実施形態では、クライアント装置106~114の何れかは、アルゴリズム性能を評価するために機械学習アルゴリズム性能に関するメトリックを生成し、送信し、及び/または分析することができ、かつ/または、以下でより詳細に説明するように、機械学習アルゴリズムソリューションの結果を研究者に提供することができる。いくつかの実施形態では、個々のクライアント装置106~1144は、例えば、集中型サーバとの間で直接的または間接的に、例えば、ピアツーピア、アドホック、及び/またはメッシュベースのネットワークを使用して、抽象化インターフェイスを実装するために、互いにまたはサーバと通信することができる。コンピューティングタスクの協調処理のためのコンピューティンググリッドのためのプラットフォームのさらなる例は、参照によりその全体が本明細書に組み込まれる、2018年6月5日に出願された「Platform for Collaborative Processing of Computing Tasks」という名称の米国特許出願第16/000,589号に記載されている。
【0019】
図1は、ネットワーク化されたシステム100の一例を示しているが、図1には様々な変更を加えることができる。例えば、システム100は、任意の適切な構成で任意の数の各構成要素を含むことができ、サーバ102~104及びクライアント装置106~114のそれぞれは、システム100の一部である任意の数のサーバ及び/またはクライアント装置を表すことができる。一般に、コンピューティング及び通信システムは、多種多様な構成になり、図1は、本開示の範囲を任意の特定の構成に限定しない。図1は、ここに開示されている様々な特徴を使用することができる1つの動作環境を示しているが、これらの特徴は、任意の他の適切なシステムで使用することができる。
【0020】
図2及び図3は、本開示の様々な実施形態による、ネットワーク化されたシステムにおける例示的なコンピューティング装置を示す。具体的には、図2は、例示的なサーバ200を示し、図3は、例示的なクライアント装置300を示す。この例示的な例では、サーバ200は、図1のサーバ102~104のうちの任意の1つを表し、クライアント装置300は、図1のクライアント装置106~114のうちの1つまたは複数を表すことができる。
【0021】
図2に示すように、サーバ200は、プロセッサ210、記憶装置215、通信インターフェイス220、及び入出力(I/O)ユニット225の間の通信をサポートするバスシステム205を含む。プロセッサ210は、メモリ230にロード可能な命令を実行する。プロセッサ210は、任意の適切な数及びタイプのプロセッサまたは他のデバイスを任意の適切な構成で含むことができる。プロセッサ210のタイプの例には、マイクロプロセッサ、マイクロコントローラ、デジタル信号プロセッサ、フィールドプログラマブルゲートアレイ、特定用途向け集積回路、及びディスクリート回路が含まれる。
【0022】
メモリ230及び永続記憶装置235は、情報(データ、プログラムコード、及び/または他の適切な情報など)を一時的または永続的に記憶し、検索を容易にすることができる任意の構造(1つまたは複数)を表す記憶装置215の例である。メモリ230は、ランダムアクセスメモリ、または任意の他の適切な揮発性または不揮発性記憶装置を表すことができる。永続記憶装置235は、読み取り専用メモリ、ハードドライブ、フラッシュメモリ、または光ディスクのような、データの長期記憶をサポートする1つ以上の構成要素または装置を含んでもよい。例えば、永続記憶装置235は、データの1つ以上のデータベース、クライアントアプリケーション、ボランティアコンピューティンググリッド内のセルへの発送を待つタスク、及び/またはボランティアコンピューティンググリッドからの結果の処理などを記憶することができる。様々な実施形態では、永続記憶装置235は、ネットワーク101を介して配信するためにゲーム内に機械学習アルゴリズムを統合するための、インターフェイスされた機械学習アルゴリズム又はビデオゲームのコンポーネントを有するビデオゲームを記憶することができる。
【0023】
通信インターフェイス220は、他のシステムまたは装置との通信をサポートする。例えば、通信インターフェイス220は、ネットワークインターフェイスカードまたはネットワーク101を介した通信を容易にする無線トランシーバを含むことができる。通信インターフェイス220は、任意の適切な物理的または無線通信リンクを介した通信をサポートしてもよい。I/Oユニット225は、データの入出力を可能にする。例えば、I/Oユニット225は、キーボード、マウス、キーパッド、タッチスクリーン、または他の適切な入力デバイスを介したユーザ入力のための接続を提供し得る。I/Oユニット225は、ディスプレイ、プリンタ、または他の適切な出力装置に出力を送ることもできる。
【0024】
図2はサーバ200の一例を示しているが、図2には様々な変更を加えることができる。例えば、図2の様々な構成要素は、組み合わせるか、さらに細分するか、または省略することができ、特定の必要に応じて追加の構成要素を追加することができる。特定の例として、1つのシステムとして描かれているが、サーバ200は、遠隔に配置されていてもよい複数のサーバシステムを含んでもよい。別の例では、異なるサーバシステムは、本開示の様々な実施形態による機械学習アルゴリズムのゲーミフィケーションのための抽象化インターフェイスを提供するために、処理、記憶、及び/または通信リソースのいくつかまたはすべてを提供することができる。
【0025】
図3は、本開示の実施形態による例示的なクライアント装置300を示す。図3に示すクライアント装置300の実施形態は、例示のためだけのものであり、図1のクライアント装置106~114は、同じまたは同様の構成を有することができる。しかしながら、クライアント装置は、多種多様な構成で提供され、図3は、本開示の範囲を、電子デバイスの任意の特定の実装に限定しない。図3に示すように、クライアント装置300は、通信インターフェイス305と、プロセッサ310と、入出力(I/O)インターフェイス315と、入力325と、ディスプレイ320と、メモリ330とを含む。メモリ330は、オペレーティングシステム332と、1つ以上のクライアントアプリケーション334とを含む。
【0026】
通信インターフェイスまたは回路305は、他のシステムまたはデバイスとの通信をサポートする。例えば、通信インターフェイス305は、ネットワークインターフェイスカードまたはネットワーク101を介した通信を容易にする無線トランシーバを含むことができる。通信インターフェイス305は、任意の適切な物理的または無線通信リンクを介した通信をサポートしてもよい。無線通信を利用する実施形態の場合、通信インターフェイス305は、様々な無線通信プロトコル(例えば、Bluetooth(登録商標)、Wi-Fi、セルラー、LTE通信プロトコルなど)を使用して、1つ以上のアンテナを介して着信RF信号を受信することができる。
【0027】
プロセッサ310は、クライアント装置300の全体的な動作を制御するために、1つ以上のプロセッサまたは他の処理装置を含み、メモリ330に記憶されたOS332を実行することができる。プロセッサ310は、ボランティアコンピューティング・グリッドの一部として、タスクの処理及びストレージのための1つまたは複数のクライアントアプリケーションなど、メモリ330に常駐するクライアントアプリケーション334を実行することもできる。様々な実施形態では、プロセッサ310は、メモリ330に常駐するクライアントアプリケーション334、例えば、以下でより詳細に説明するように、問題に対するソリューションを提供するための抽象化された機械学習アルゴリズムを含む1つ以上のビデオゲームを実行する。プロセッサ310は、任意の適切な数及びタイプのプロセッサまたは他のデバイスを任意の適切な構成で含むことができる。プロセッサ310のタイプの例には、マイクロプロセッサ、マイクロコントローラ、グラフィック処理ユニット(GPU)、デジタル信号プロセッサ、フィールドプログラマブルゲートアレイ、特定用途向け集積回路、及びディスクリート回路が含まれる。
【0028】
プロセッサ310は、実行プロセスによって要求されるように、メモリ330の中または外にデータを移動することができる。プロセッサ310はまた、I/Oインターフェイス315に結合され、これは、ラップトップコンピュータやハンドヘルドコンピュータなどの他の装置に接続する能力をクライアント装置300に提供する。I/Oインターフェイス315は、アクセサリとプロセッサ310との間の通信経路を提供する。
【0029】
プロセッサ310は、入力325及びディスプレイ320にも結合される。クライアント装置300のオペレータは、入力325を使用してデータを入力し、クライアント装置300に入力することができる。例えば、入力325は、タッチスクリーン、ボタン、キーボード、トラックボール、マウス、スタイラス、電子ペン、ビデオゲームコントローラ等であってもよい。ディスプレイ320は、液晶ディスプレイ、発光ダイオードディスプレイ、またはウェブサイトなどからテキスト及び/または少なくとも限定されたグラフィックスをレンダリングすることができる他のディスプレイであってもよい。メモリ330は、プロセッサ310に結合される。メモリ330の一部は、ランダムアクセスメモリを含むことができ、メモリ330の別の部分は、フラッシュメモリまたは他のリードオンリーメモリを含むことができる。
【0030】
図3はクライアント装置300の一例を示しているが、図3には様々な変更を加えることができる。例えば、図3の様々な構成要素を組み合わせるか、さらに細分するか、または省略することができ、特定の必要に応じて追加の構成要素を追加することができる。特定の例として、プロセッサ310は、1つ以上の中央処理装置及び1つ以上のグラフィック処理装置(GPU)のような複数のプロセッサに分割することができる。別の例では、ディスプレイ320は、例えば、ビデオゲームコンソール又はデスクトップコンピュータ等のクライアント装置300の一部に外部装置として接続されてもよく、その一部でなくてもよい。
【0031】
本明細書で論じるように、本発明の様々な実施形態は、システム100の構成要素を利用して、ビデオゲーム、機械学習、及び問題に対するソリューションの間のインターフェイスのためのフレームワークを提供する。様々な実施形態による抽象化インターフェイスは、ゲーム内で実行される機械学習アルゴリズムを接続し、プレーヤがそのアルゴリズムと対話することを可能にし、アルゴリズム接続が特定のアルゴリズムまたは技法に依存しないようにする。例えば、機械学習アルゴリズムは、ゲーム内で抽象化され、機械学習アルゴリズムは、ゲームインターフェイスを介して入力されるアルゴリズムの別のピース、または全く新しいアルゴリズム(例えば、異なる研究者のための異なる科学的問題を解決するため)と置き換えることができるが、依然として同じゲーム内に収まる。
【0032】
様々な実施形態は、従来のゲーム開発者が、ゲームをプログラミングするときに、自分のビデオゲームに対するソリューションが何であるかを既に知っていることを認識する。しかしながら、機械学習では、様々な実施形態は、研究者が、自分の問題に対する正しいソリューションが何であるか、または正しいソリューションが存在する場合であっても、何であるかについての考えを持たないことが多いことを認識している。したがって、本開示の様々な実施形態は、ユーザが、既に人気のあるおよび/または魅力的なゲームをプレイすることを可能にする。最終目標への到達が既知であるこれらのゲームは、楽しさを維持し、また、最終的なソリューションまたは良好なソリューションの保証を持っていないかもしれない機械学習アルゴリズムを統合する問題を解決する。したがって、本開示の様々な実施形態は、ゲームの楽しさを保ち、エンゲージメントしながら、アルゴリズムによる侵襲性をほとんどまたは全く伴わずに、ユーザがエンゲージメントするゲームをプレイするための抽象化インターフェイスを提供する。
【0033】
本開示の様々な実施形態は、アルゴリズムがどのように実行されるかを特徴付けることができることを必要とするだけで、ソリューションに対する肯定的な結果が生じ得るという理解をさらに認識し、利用する。統合された機械学習アルゴリズムによって提供されるソリューションは、ゲーム中の処理の後でも依然として不十分であり得る。しかしながら、アルゴリズムソリューションを特徴付けることができる場合、本開示の様々な実施形態は、アルゴリズムによって提供されるソリューションが改善しているかどうかを判定するために、アルゴリズムキャラクタリゼーションを比較することができる。少なくとも少量の改善がある限り、非常に人気のあるゲーム内で実行するための抽象化インターフェイスの能力は、機械学習アルゴリズムと研究されている問題に対する最終的なソリューションの全体的な改善量を大幅に増大させる。
【0034】
いくつかの実施形態では、市民科学または群衆起源の研究が、機械学習アルゴリズムの1つまたは複数の態様に従って利用されて、機械学習アルゴリズムによって提供されるソリューションに対するさらなる改善を提供する。例えば、CSプロジェクト、CSゲーム、及びゲーム設計技術を分析することにより、本開示の実施形態は、研究者が問題をビデオゲーム内に含めることができる一貫したフォーマットに分解するための構造を提供する。付随するアプリケーションプログラミングインターフェイス(API)は、ゲーム開発者及び改造コミュニティ(例えば、開発者)がCSデータ及び付随するサポート機能にアクセスできるようにする一般的なインターフェイスを提供する。この構造により、開発者は、自分の設計専門知識を適用して、自分のゲームにより自然にCSを統合することができ、これにより、より多くのエンゲージメントが提供され、ユーザベースが拡張される。様々な実施形態の抽象化インターフェイスは、科学者が自分のドメイン知識及び専門知識に焦点を当てることを可能にし、一方で、ゲーム開発者のスキルを活用して新たなインターフェイスを生成し、ゲームプレイへの統合に取り組むための手段を提供し、両方とも、改造コミュニティをサポートするゲームのためのクラウドソースコミュニティソリューションの付加された創造性を活用することができる。さらに、統合ソリューションは、新しいデータ及びパラメータがアップロードされているときにゲーム及び/またはインターフェイスがリリースされた後に、CS研究者がCS研究を利用することを可能にする。
【0035】
図4は、本開示の様々な実施形態による、機械学習アルゴリズムのゲーミフィケーションを可能にする抽象化アルゴリズムインターフェイスを実装するためのプロセス400を示す。例えば、図4に示すプロセスは、図3のクライアント装置300、図2のサーバ200、及び/または図1のクライアント装置106~114の何れか(集合的にまたは個別に「システム」と呼ばれる)によって実施することができる。
【0036】
本明細書で論じるように、本開示の実施形態は、機械学習アルゴリズムを以下で論じる5つのステップに分割し、問題が同じフォーマットに従うことができる場合、問題に対するソリューションをビデオゲーム内で処理することができ、したがって、ビデオゲーム、機械学習、及び問題の間のインターフェイスを提供する。図示のように、プロセス400は、機械学習アルゴリズムが様々なサイクルで複数の提案されたソリューションを処理する反復プロセスである。プロセスは、システムが可能なソリューションを示唆することから始まる(ステップ405)。例えば、ステップ405において、システムはビデオゲームを実行している。ビデオゲーム内では、システムはまた、機械学習アルゴリズムを処理して、ゲーム内の機械学習アルゴリズムによって適切に処理されるためのフォーマットに分解された科学的問題に対するソリューションを提供する。ステップ405において、システムは、可能であろうとなかろうと、問題に対する何らかの潜在的なソリューションを提案または生成する。CSを組み込んだ実施形態では、システムは、研究問題に対する潜在的なソリューションの基準が何であるかを提示し、潜在的なソリューションのユーザからの入力を要求することができる。例えば、以下でより詳細に議論されるように、ソリューションは、ユーザによって提案されてもよいし、ユーザ入力に基づいてシステムによって識別されてもよい。様々な実施形態では、複数のソリューションをステップ405で提案し、プロセス400の各反復で評価することができる。
【0037】
その後、システムは、提案されたソリューションが可能であるかどうかを検証する(ステップ410)。例えば、ステップ410において、システムは、提案されたソリューションが問題に対する有効なソリューションである可能性があるかどうかを判定する。例えば、出力の構造を決定するのに役立つ確立された測定値、アルゴリズム、または方程式に制限がある場合、またはソリューションが特定のフォーマット(例えば、非循環である必要があるベイズネットワーク)であることが要求される場合、提案されたソリューションは可能でないことがある。提案されたソリューション(またはステップ405で提案されたソリューションのすべて)が不可能または無効である場合、システムはステップ405に戻り、他のソリューションを提案する。
【0038】
提案されたソリューションが可能であることを検証した後、システムは、検証されたソリューションを処理し、メトリックを生成する(ステップ415)。例えば、ステップ415において、システムは、現在提案されているソリューションを使用して機械学習アルゴリズムを実行することによって、ソリューションをテストまたは評価する。この処理はまた、1つまたは複数のメトリックを使用して、アルゴリズムがどの程度良好に実行されたかを判定することによって、機械学習アルゴリズムの性能を特徴付けることを含む。例えば、限定はしないが、これらのアルゴリズム特徴付けメトリックは、実行時間、グローバル/ローカルスコア、探索されたトータルソリューション、有効なソリューションのパーセント、及び学習曲線上の傾向を含むことができる。これらは、アルゴリズムが改善するかどうかを見るためにシステムが使用する機械学習アルゴリズムの特徴である。以下でより詳細に論じるように、ソリューションの試験または評価は、ユーザによって提案または選択され得る(たとえば、ユーザ入力に基づいてシステムによって識別される)、またはシステムによって選択または提案され得る、ソリューションのパラメータ値の修正、ならびにそれらの組合せを含むことができる。
【0039】
上述したように、改善が有意であるか、ソリューションが最終的に有用な結果であるかにかかわらず、ソリューションを特徴付けることができる限り、機械学習アルゴリズムをゲーム内で実行することができる。キャラクタリゼーションメトリックの比較に基づいて決定されるように、何らかの改善がある場合、ゲームにおける機械学習アルゴリズムの処理は有用である。本開示の抽象化インターフェイスによって、機械学習アルゴリズムを人気のある、かつ、関心のあるビデオゲーム内で実行することが可能になり、その結果、ビデオゲームの大規模なスケールによって、いかなる軽微な改善も大幅に拡大されることになる。
【0040】
実行時間は、機械学習アルゴリズムがソリューションを処理するために使用した合計時間(またはサイクルなどの計算資源の他のメトリック)である。例えば、たとえアルゴリズムがサイクルごとにわずかな改善しか提供せず、実行時間が短い場合であっても、このアルゴリズムは、サイクルごとにソリューションのより大きな改善を提供するが、実行時間がはるかに長いアルゴリズムよりも好ましい場合がある。グローバルスコアは、現在のソリューションが、特定の科学的問題について処理された全ての以前のソリューションに対してどのようにランク付けされるかを特徴付ける。例えば、処理される特定の科学的問題のための機械学習アルゴリズムも実行しているシステム100内の他のクライアント装置と同様に、システムによって処理されるソリューションである。ローカルスコアは、現在のソリューションが、特定のクライアント装置300によって処理されたすべての以前のソリューションに対してどのようにランク付けされるかを特徴付ける。
【0041】
探索されるソリューションは、機械学習アルゴリズムによって使用される技法が探索することができる、全ソリューション空間の可能なソリューションの数についてのメトリックである。
【0042】
例えば、機械学習アルゴリズムによって使用される技法を使用して、探索されたソリューションは、ソリューション空間内のソリューションの可能な総数のうち、いくつのソリューション、またはどのパーセンテージのソリューション(例えば、ステップ405における提案可能なソリューションの数など)が機械学習アルゴリズムによって探索されるかを定量化する。例えば、本開示によって提供されるエンゲージメントの増加を利用すると、トータルソリューションのより大きなパーセンテージを探索する機械学習アルゴリズムは、他の場所ではより低い性能にもかかわらず、より良好であり得る。さらに、このメトリックは、プロセスの追加の反復において追加のソリューションが示唆されるので、時間とともに更新することができる。
【0043】
有効なソリューションのパーセントは、機械学習アルゴリズムのための提案されたまたは提案されたソリューションのうちのどれだけのパーセンテージが有効であるかについてのメトリックであり、例えば、合計ソリューションの3分の2のみが有効である場合、より多くのトータルソリューションを有するアルゴリズムは、より少ないソリューションを有するが、より高い有効パーセントを有する別のアルゴリズムよりも悪くなり得る。さらに、これは、追加のソリューションがプロセスの追加の反復で検証されるときに、時間の経過とともに更新されるメトリックである。学習曲線上の傾向は、アルゴリズムが経時的にどのように実行されるかについてのメトリックである。学習曲線は、例えば、グローバルスコアメトリックまたはローカルスコアメトリックを使用して、アルゴリズムが経時的にどのように実行されるかを示す図である。アルゴリズムの性能は、開始時にはあまり良くないかもしれないが、学習曲線上でより迅速に上昇するかもしれず、したがって、より良いソリューションで始まるが、サイクルごとにほとんど改善を示さないアルゴリズムよりも好ましいかもしれない。
【0044】
本明細書で論じられるように、科学的問題に対するソリューションを処理するアルゴリズムが、例えば、上述の例示的なメトリックのうちの1つ以上を使用して特徴付けられ得る限り、アルゴリズムの性能は、測定され得、この測定された性能が改善する場合、改善の程度に拘わらず、アルゴリズムは、科学的問題を解決するために最終的に有用であるように、ゲームプレイにうまく抽象化されている。
【0045】
その後、システムは処理されたソリューションを選択する(ステップ420)。例えば、ステップ420において、システムは、n個の処理されたソリューションの結果を、例えば、処理されたソリューションに関して生成されたメトリックを使用してレビューし、さらなるテストのためにどのソリューションを使用するかを決定または選択する。例えば、多くの場合、ステップ405において提案されるソリューションは、ステップ420からの以前に選択されたソリューションからシードされる初期状態に基づく。したがって、ステップ405は、選択されたソリューションを出発点として使用して、新しいソリューションを提案または提案するシステムをさらに含むことができる。例えば、ステップ420の一部として、システムは、ソリューションがさらに探索される価値があるかどうか、最高のスコア(ローカルまたはグローバル)を有するかどうかなどの基準に基づいてソリューションを選択することができる。
【0046】
その後、システムは終了条件に基づいてプロセスを終了する(ステップ425)。例えば、ステップ425で、システムは、機械学習アルゴリズムの処理が1つまたは複数の終了条件を満たすかどうかを判定することができる。終了条件を満たさない場合、システムはステップ405に戻り、プロセス400の別の繰り返しに戻る。終了条件を満たす場合、システムは機械学習アルゴリズムの処理を停止する。例えば、終了条件(複数可)は、ある量の時間の間機械学習アルゴリズムを処理すること、ある回数の反復について実行すること、メトリックの何れかについてのあるスコアを処理すること、機械学習アルゴリズムについてのソリューションが、ある回数の試行について、またはある期間(例えば、アルゴリズムが収束した)について改善しないことなどを含むことができる。
【0047】
さらに、様々な実施形態では、本開示は、ユーザがビデオゲームを介して機械学習アルゴリズムと対話することを可能にするフレームワークを提供する。ゲームプレイをアルゴリズムに抽象化し、ゲーム内で実行するアルゴリズムを抽象化することによって、本開示の様々な実施形態は、機械学習及びユーザ対話の要素を混合し、マッチングさせて、アルゴリズムの1つまたは複数のステップを置き換えるか、または増強するか、または1つまたは複数のステップを増強することができる。例えば、ユーザは、可能なソリューションを選択し、ソリューションを評価し、ランク付けし、及び/または、どのソリューションが最良であるか、または次に使用されるソリューションであるかを選択または決定することができる。
【0048】
本開示は、ユーザ対話を使用して、アルゴリズムの1つまたは複数のステップを置換または増強するか、または1つまたは複数のステップを増強するための、少なくとも4つの例示的なシナリオを提供する。最初の例として、ユーザは、処理されたソリューションを評価するために使用される訓練データを生成することができる。例えば、写真から顔を識別するための機械学習アルゴリズムの場合、ユーザは、顔の写真を選択して、アルゴリズム性能を評価するために使用される訓練データを生成することができる。第2の例は、教師付き学習である。例えば、写真内の特定のオブジェクトを選択するための機械学習アルゴリズムの場合、ユーザは、機械学習アルゴリズムが正しく実行されたかどうかを示すことができる。
【0049】
第3の例は突然変異である。機械学習アルゴリズムが局所探索空間または「ローカルミニマム」(ここで、ソリューションは、経時的に、あったとしてもあまり改善しない)に留まる場合、アルゴリズムは、突然変異技術を適用して、パラメータ及び変数をランダムに変化させることによって局所探索空間から脱出する。1つまたは複数の実施形態では、システムは、ユーザが突然変異または異なるソリューションを提案するための入力を要求して、アルゴリズムをローカルミニマムから移動させようと試みることができる。例えば、クライアント装置は、機械学習を使用して1000個のソリューションを評価し、ユーザがソリューションの一部をより良いものに操作するために1つまたは複数をユーザに提供することができる。次に、ユーザ操作ソリューションは、システムがローカル探索空間から脱出しようとする処理を続けるために、機械学習アルゴリズムにフィードバックされる。これにより、システムは、ヒューリスティックまたは機械学習を使用して生成された突然変異だけでなく、ユーザが選択した突然変異を機械学習アルゴリズムに適用する。1つの特定の例として、小惑星場を通って宇宙飛行体を飛行させるようにプログラムしようとする問題に対して、宇宙飛行体の各センサは、機械学習アルゴリズムへの入力と考えられ、各センサは、例えば、ニューラルネットワークのための行列の形の重み値を有する。機械学習アルゴリズムは、種々のセンサ入力に基づいて宇宙飛行体が取るべき応答のタイプ及び厳しさを含む、センサ重み付け値を、種々のセンサ間でプログラムの相対的重要度(例えば、種々のセンサ入力に基づいて、応答のタイプ及び応答の厳しさを含む)に調整する。ユーザが選択した突然変異は、どのセンサが多かれ少なかれ重要であるか(例えば、長距離または短距離センサ間の相対的重要性)の重みセンサに関する入力を提供することができる。したがって、ユーザが選択した突然変異を用いてアルゴリズムを再実行すると、ソリューションを局所探索空間またはローカルミニマムの外に移動させることができる。
【0050】
第4の例は、ヒューマンサーチヒューリスティックである。機械学習アルゴリズム処理に加えて、実際のモニタユーザゲームプレイからのデータを記録し、機械学習アルゴリズムに提供して、ユーザが機械学習アルゴリズムをより迅速に訓練しようと試みたものからソリューション(またはその一部)を「学習」または選択することができる。言い換えれば、機械学習アルゴリズムは、蓄積されたユーザデータを評価し、ユーザ決定が行われる理由を学習しようとする決定パターンを識別することができる。例えば、システムは、ユーザの検索及びデータの最適化を評価し、次いで、ユーザが行ったのと同じまたは同様の方法でデータを検索するようにニューラルネットワークを訓練して、ユーザの検索及び最適化から生成されたデータを調べることなくニューラルネットワークがプロセスを実行した場合よりも、結果がより良好であるか、またはより良好なソリューションを導くかどうかを決定するための、検索ヒューリスティックのためのプログラミングを含む。
【0051】
その結果、本開示の実施形態は、人工知能(AI)とユーザが協調環境で協働して問題を解決するためのメカニズムをさらに提供する。機械学習アルゴリズムが、アイドルCPUリソースを単に使用して、バックグラウンドで特定のコンポーネントを処理する能力に加えて、本開示の実施形態は、ユーザフィードバック及びゲームプレイからの入力を組み込むことによって、機械学習アルゴリズムの処理にさらなる改善を提供し、上述のユーザ寄与技法を使用して機械学習アルゴリズムの有効性をさらに改善する。例えば、ユーザがソリューションを選択している場合、機械学習アルゴリズムは、ゲームに、ユーザがそのソリューションを次のサイクルに使用すべきかどうかを決定するためのソリューションを視覚的にユーザに表示させることができる。したがって、本開示の実施形態は、ユーザがビデオゲームを介して機械学習アルゴリズムと対話することを可能にするフレームワークを提供する。
【0052】
したがって、最適ソリューションを識別するのではなく改善に焦点を当て、ゲーム対話部分をアルゴリズムに基づいて必ずしも最良ソリューションではないより良いソリューションを見つけることによって、本開示の実施形態は、機械学習アルゴリズムを抽象化して、機械学習アルゴリズムを、そうでなければ適用可能であるよりも多くのゲームに適用することができるようにする。ここに開示された抽象化技術に焦点を当て、利用することによって、本開示の実施形態は、例えば、ゲーム内でアルゴリズムが使用されていないかのように、又は通常のゲームプレイからの逸脱をほとんど伴わずに、ゲームへのエンゲージメントを高く維持することを可能にする。このようにして、機械学習アルゴリズムの要素を抽象化することによって、本開示の実施形態は、ゲームの構成要素内に機械学習アルゴリズムを含めることを可能にする。これにより、研究者及び開発者は、本明細書に開示される機械学習アルゴリズムのための抽象化インターフェイスを用いて、大量に魅力的な、はるかに広く受け入れられているビデオゲーム内で、機械学習を介して自分の問題を処理することができる。さらに、本開示の抽象化インターフェイスでは、任意のタイプの機械学習アルゴリズムまたは技法を使用することができ(すなわち、特定のタイプのアルゴリズムに依存せず)、たとえば、機械学習アルゴリズムは、遺伝的アルゴリズム、粒子群最適化、ニューラルネットワーク技法などを使用することができる。
【0053】
様々な実施形態では、システムは、ゲーム開発者が様々なCSプロジェクトを統合すること、ならびに分散ボランティアグリッドコンピューティングネットワークにアクセスする能力を可能にする汎用インターフェイスを提供する。研究者がこの資源を利用するためには、研究者は、プロジェクトを分析し、インターフェイスによってサポートされるフォーマットに分解するだけでよい。ゲーム開発者は、APIを自分のゲームに統合し、所与の問題タイプをサポートするエンゲージングシステムを設計し、結果データにアクセスする。このシステムは、サポートされているフォーマットに変換されると、他の同様の問題に適用するために再利用可能である。基本的には、プロジェクトを以下の一般的な分析構造に分解することができるのであれば、あらゆる種類のCSプロジェクトを分析することができる。
【0054】
第1に、システムは、分析または解くべき問題を識別する。プロジェクトを分析する場合、第1段階は、データを処理するのに必要な作業のタイプを識別することである。例えば、データ生成の問題(例えば、ユーザが何らかの目的のために新しいデータを作成している)か。問題は、ユーザ分析問題(例えば、ユーザは、マイクロタスクを分類しているか、さもなければ実行しているか)であるか。問題は、ユーザ計算問題(例えば、ユーザのプレーヤが、より複雑な問題解決スキルを適用している)であるか。この問題は、より伝統的には機械学習アルゴリズムまたはアプローチを使用して行われるであろうが、潜在的な対話型要素(ハイブリッドプロジェクト)を有する問題であろうか。
【0055】
第2に、システムは、データを捕捉し、変換する。たとえば、システムは、データがどの形式であるか、データにアクセスしやすいようにデータをより小さな管理しやすいデータのマイクロチャンクに分割するか、データが均一であるか、データの一部に固有のものがあるかを判定する。例えば、システムは、データの一部が既に処理されており、基礎サンプルとして(例えば、訓練データとして、またはゲームチュートリアルの基礎として)役立つことができることを決定することができる。データは、従来のカンマ区切り値(CSV)ファイルなどの解析可能な形式に配置するか、CSVファイルを使用してイメージデータへのインデックスを作成する必要がある場合がある。
【0056】
第三に、このシステムは、支援ヒューリスティクス、シミュレーション研究、または適応度基準を特定する。例えば、システムは、この研究または類似の研究の過去の分析において成功したことが証明された確立されたヒューリスティックがあるかどうかを判定する。これらのヒューリスティックは、開発コミュニティがプロセスを理解するのを助けるためのガイドラインを提供することができ、開発者がヒューリスティックアプローチのいくつかを模倣する活動を作成することができるゲームプレイループに関連する設計選択のいくつかを通知することができる。開発者は、正規化されたヒューリスティック出力を様々なゲームプレイ要素(例えば、オブジェクトの色、統計乗数)にマッピングし、ユーザが問題/データを視覚化し、対話するための固有の方法を提供することもできる。同様に、システムは、シミュレーションをより正確にすることができる確立された方程式、アルゴリズム、ツール、または他の方程式があるかどうかを判定する。この種の情報の例には、Rosetta構造予測方法が含まれる。ユーザの計算が要因となる状況では、この種の情報はデータに値を持たせるのに役立つ。これらのシミュレーションツールはまた、検証ステップまたは選択ステップの何れかにおいて、検証のために使用されてもよく、また、プロセスステップの一部としてフィットネススコアまたはメトリックを作成する際に有用であってもよい。グループスコアリングまたはコンセンサスはまた、数値ガイダンスを提供するために統計分析技術を使用する検証ツールとして役立ち得る。プロセスステップが、ユーザにフィードバックを提供するか、またはユーザ作業の品質の相対的な感覚を得るために、所与のユーザ生成結果の相対的な品質を表す値またはメトリックを出力する何らかの種類のフィットネス関数が存在する。このフィットネス関数は、解決される問題のタイプ(例えば、クラスタリング問題)または研究分野に特有の何かから得ることができる。ゲームでうまく機能するためには、これらのフィットネス関数は、フレームレートと同じくらい高速かつ効率的であり、一貫性がある必要があり、リアルタイムフィードバックは、成功するエンゲージメントにとって重要であり得る。
【0057】
科学的な研究をゲームプレイや美学/テーマに簡単に統合するために考慮すべき要素はいくつかある。ゲームプレイと科学的研究価値との間のバランスを提供するためにゲームを統合するためのいくつかの原理を以下に説明する。第1に、ゲームは、より広いアプリケーションのために設計される。同じタイプの他の問題にも対処することができるように問題を抽象化することができる場合(例えば、クラスタリングアルゴリズムを使用する任意の問題が同じゲーム機構を使用することができる)、ゲームプレイに多様性を追加するためのデータのミックスの機会が提供される。科学的理解が出力の成功にとって基本的でない限り、ゲーム設計要素は、特に科学に言及することなく所望の結果を達成するように設計される。
【0058】
第2に、ゲーム統合は、所望の出力を識別し、強化する。アウトプットの研究価値を強化するために、フィットネス関数や他の成功の尺度は、プレーヤに与えられるフィードバックに影響を与える。フィットネス関数は数値を提供するが、ゲームの美観及びテーマと一致するようにフィードバックも修正される。最良の結果は研究のニーズによって変わることがあるので、出力は、記載された成功の尺度と比較される。精度(品質)、全体的寄与(量)、及び効率(速度)などの他の所望の挙動は、それらをゲーム報酬及び/またはフィードバックに考慮に入れる。成功のための処方は、必ずしも出力に関連するものではなく、最も重要な因子が十分な重みを有するようにバランスがとられている。不適切な重み付けは、望ましくない行動を強化するか、またはシステムを「ゲーム」するユーザをもたらし、その両方が結果の品質を低下させる可能性がある。
【0059】
第3に、研究活動はゲームループに統合される。ゲームプレイループは、プレーヤを動機づける中心的な活動を表すので、研究活動をループに接続することによってシームレスな統合が容易になる。プレーヤのアクションと結果として得られる出力の両方が、活動を統合する際の要因である。研究活動は、出力を完了するために使用されるコンポーネントアクションに分解される。これらのアクションは、しばしば、特定のゲームプレイ要素、機構、又はシステムを示唆する。研究活動から生じる出力の形成を所望の結果と比較することは、統合技術、例えば、科学的活動を模倣する任意の既存のゲーム機構を示唆することができる。機構をゲームプレイに統合することで、科学的要素がより自然に組み込まれるようになる。同様に、他のゲームで証明されたゲーム機構を活用することは、バランスを必要とする変数の数を減らすのに役立ち、機構自体をエンゲージメントさせるよりも統合に焦点を当てることができる。
【0060】
第4に、ゲームは、異常な結果のためのデザインである。ゲームのニーズに合わせることができるゲームシステムとは異なり、研究出力は、時には、極端で予想外の結果を提供することがある。データに応じて、プレーヤに完全な成功、失敗、または決して達成させないことを体験させることが可能である。従って、ゲームは、これらの結果に対するエンゲージメントを維持する必要があり、これらの結果は、ゲームフィードバック又は他のゲームプレイ要素に考慮される。
【0061】
第5に、ゲームは、複雑さと正確さとのバランスをとる。プレーヤは、多数の要素のバランスをとることができるが、ゲームプレイの複雑さ、人間の計算の複雑さ、及び期待される速度及び精度が、平均的なプレーヤの認知閾値を超えて広がる課題を作り出す可能性があるポイントがある。これをバランスさせるために、1つの要素における複雑さの増加は、他の要素における複雑さの減少によってバランスされ得る。問題が高精度の必要性を有するか、または複雑な人間の計算を必要とする場合、高速ペーシングされたリアルタイムの高スキルゲームは、大多数のプレーヤで所望の結果を生み出す可能性が低い。スローペースの機構またはターンベースの機構は、プレーヤが時間をかけて問題を考慮することを可能にし、これは、ニーズによりよく適合し得る。その結果、より単純な問題は、典型的には、所望のゲームプレイにより良く適合した場合に、より複雑な機構及びタイミングを維持することができる。
【0062】
第6に、ゲーム統合は、ゲームの美学及び/又はテーマの統合を考慮する。非視覚データを含む研究活動は、多くの場合、任意のテーマで機能する。分類タイプの問題に見られる要素などの視覚データを含むものは、要素をゲーム全体に適合させるために、何らかの創造的な考慮を必要とすることがある。
【0063】
本開示の実施形態の利点を説明する目的で、薬物研究に関する以下の実施例を論じる。この実装は、例示的な例として意図されており、本開示の原理及び教示に従って実装され得る様々な実施形態に対する限定ではない。多剤耐性癌のための化学療法共投薬特性を探すにあたり、解決のために同定された問題は数量の1つであった。併用薬とは、既存の薬剤耐性がん細胞の効果を高める薬である。併用薬研究は比較的新しいので、研究者が既存薬から良い候補を同定できるデータはほとんどない。いくらかの除去/減少があっても、500万を超える可能性のある併用薬を何らかの方法で評価する必要がある。初期の研究では、科学者は71種類の医薬品を購入し、それらを潜在的な共投薬として試験した。23種類はある程度の成功を示し、残りの48種類はそうではなかった。各薬物は、30個の識別変数を有する。最も単純な状況では、研究者らは、成功した23種類の薬剤の共通性を決定する方法を望み、試験用の新薬を同定するシステムを作るのに役立ち、逆に残りの薬剤のどのような側面がそれらを不成功にしたのかを明らかにした。
【0064】
CSモデルに続いて、最初の質問は、問題を識別することに焦点を当てた。問題、データセット、及び所望の情報を調べた後、クラスタリング問題として提示されたグループ間の共通性を探す。問題パラメータを決定した後、データを分析して、情報をどのように提示するかを決定した。各薬剤は、30の変数を記録した表に既に存在した。クラスタリング問題においてデータを使用するために、データは、全てが一貫したスケール、この場合は0~1で表されることができるように正規化された。各薬剤の相対的な成功または失敗を併用薬として記録するデータポイントを追加し、そのデータをCSVファイルに変換した。
【0065】
ヒューリスティック、シミュレーション研究、及び適合性基準を探すとき、クラスタリング問題の必要性が識別された。基本アルゴリズムを形成することができる多くのクラスタリングアルゴリズムがある。この場合、K平均のような重心ベースのアルゴリズムが出発点として選択された。基本的に、重心ベースのアルゴリズムは、最良のスコアを探して重心を移動させ、ヒューリスティックな手法を開始する。重心運動はまた、プレーヤがインターフェイスするための対話領域を示唆し、アルゴリズムのその態様を機能的に置き換える。
【0066】
クラスタリングアルゴリズムにおける他の駆動要因は、フィットネススコアを決定することであり、フィットネススコアは、重心の移動をガイドし、改善されたスコアに向かって移動しているか、または改善されたスコアから離れて移動しているかを識別するのに役立つ。この機能は、プレーヤが自分の成功を評価することができるためにも重要である。この状況では、目標は、2つのグループが何を分離したかを見ようと試みることであり、その結果、フィットネススコアの基礎となり、加重平均は、1つのグループに作業中の共投薬の数がいくつであったか、他のグループにいくつあったかを示す。2つの基本群があるので、2つの重心で開始されたが、適応度スコアは、将来の反復において任意の数の重心が追加され得るように設計される。
【0067】
任意の精度ガイドラインを分析すると、ユーザは、ユーザがスコアを改善しているかどうかを知ることができる十分に正確なデータを必要とするが、プレーヤによって提供されたデータが、訓練セット以外の他の潜在的な併用薬を分析し、識別するように設計された別個のニューラルネットのための訓練データを提供することが期待されるので、精度はそれほど重要ではなかった。より精緻化が必要であることが証明された場合、研究者は、得点を精緻化するために、プレーヤの結果に基づいて、別個の従来の重心ベースのアルゴリズムを実行することを計画した。
【0068】
ゲーム開発者がインターフェイスを作成できるようにするために、ゲーム開発において問題、データ、及びフィットネススコアを実施する際に、ゲーム開発のために知るべき重要な情報は、クラスタリングアルゴリズムがどのように機能したか、及びデータセットで何が達成されようと試みられたかを理解することであった。最後に、ゲームへのインターフェイスを設計するために必要なデータが識別されたかどうかをチェックするために、分析構造の質問が分析された。新しいソリューションを提案するために、ユーザまたはアルゴリズムは、新しい重心位置を提供することができる必要がある。我々のパラメータに有効なソリューションを提供するために、重心位置は、我々がデータをフォーマットしたときに決定された正規化空間内にある必要があった。この状況における処理段階は、適応度関数を適用し、群がどの程度良好に分離されているかを表す相対スコアを得ることであった。ニューラルネットワークのための訓練情報としてのプレーヤ生成データの適用において、結果として得られるソリューションは有効であり、したがって、その段階ではフィルタリングは必要ではなかった。さらなる改良が必要であることが判明した場合、別個のK平均アルゴリズムを、得られた重心上で実行した。最後に、出口パラメータをオープン(open)として定義した。
【0069】
上述のアルゴリズムのゲーミフィケーションの2つの例が提供される。最初の例は、ラジオダイヤルを操作して重心位置に影響を与えるプレ-ヤを表し、得られたスコアは、ターゲット波のマッチングにより波形をより近くまたはより遠くにシフトさせた。第2は、データ位置が身体の一部を表し、プレーヤが様々な機能を改善するために重心位置を調整することができる医療用ミニゲームである。これらのミニゲームの何れかまたは両方は、人気があり魅力的なビデオゲームの様々な側面に統合することができる。
【0070】
さまざまな実施形態は、構築的に拡張された機械学習を提供する。構築主義学習とは、一般に、教師が学生の経験的学習プロセスを導くために、学生との協力的パートナーシップに過去の知識を持ち込むことができるシナリオを指す。これらの実施形態では、システムは、ユーザ知識をネットワークに直接導入し、これは、構築主義学習理論に見られるインストラクタ対生徒協調関係を模倣する。本明細書で論じるように、本開示のこれらの実施形態は、ユーザによって生成された入力を受信することによって機械学習を増強する。例えば、上述した各例では、機械学習アルゴリズムは、突然変異、訓練データ、探索ヒューリスティック、教師付き学習などのためのものであるかどうかにかかわらず、対話に基づいて拡張される。例えば、いくつかの実施形態では、システムは、問題空間を縮小し、キー畳み込みカーネルを識別するために、畳み込みカーネル上でクラスタリング技法を使用する。次に、システムはカーネルをユーザが構築したカーネルに置き換える。例えば、システムは、入力を増強することによって、並びに訓練プロセス全体を通して隠れ層、重み、及び接続部を直接修正することによって、アルゴリズムガイダンスを可能にする。システムはまた、訓練中にユーザが識別したパターン及び最適化の機会を利用し、その後、ユーザの直感を利用するために機械学習モデルを修正することができる。これらの実施形態では、システムは、モデル精度を向上させることができ、モデルサイズを圧縮することができ、または大きなデータセットがない場合にモデルの改良を可能にすることができる。
【0071】
構築的に拡張された機械学習の一例では、機械学習は、機械学習を加速するために人間の識別されたパターンを使用することによって拡張される。例えば、提案されたソリューションのための(例えば、画像内のオブジェクト識別のための)ユーザゲーム入力の多数のセットを受信することによって、システムは、確率分布を計算するためにゲーム入力を平均化することができる。次に、システムは、機械学習アルゴリズムの探索空間を狭めることができる。このようにして、システムは、ソリューションを識別するために問題を処理する際に機械学習アルゴリズムによって適用される多くのフィルタのうちの1つとして適用されるアルファフィルタとしてユーザ入力を使用する。
【0072】
構築的拡張機械学習の別の例では、ゲームまたは他の対話型アプリケーション中のユーザ入力を追跡し、モデル化することができる。システムは、ユーザ入力のモデルを使用して、性能に基づいて機械学習アルゴリズムの値を修正することができる。
【0073】
構築的拡張機械学習の別の例では、ユーザ入力を機械学習アルゴリズムの圧縮に使用することができる。例えば、システムは、クラスタリングを使用して、圧縮のための平均フィルタを見つけることができる。しかしながら、そのような圧縮は、例えば、ソリューションに存在する雑音のために、異なると仮定されるいくつかのソリューションを過度に表し、一方で、圧縮されたデータセット内の離散ソリューションを過小に表し得る。本開示のこれらの実施形態の抽象化インターフェイスを使用して、システムは、ユーザによる分類及び圧縮のために(例えば、対話型環境において)クラスタを送信することができる。例えば、ユーザは、ノイズのために、機械学習アルゴリズムが関連付けられない場合がある、類似のソリューションを相関させるために、ノイズ(例えば、イメージ内の)を認識する(及び無視する)方が良い場合がある。他方、ユーザは、十分に類似していないソリューションを関連付ける際に、機械学習アルゴリズムに存在する圧縮を達成する必要性の基礎を有さない場合がある。これらの実施形態では、システムは、機械学習入力と共にユーザ圧縮入力を使用し、関連付けられた分類器がより良好であるものに基づいてそれぞれの入力に重み付けし、入力の一方または両方を使用して、データセットのサイズを圧縮または縮小して、さらなる計算の高速化及び記憶要件の低減を支援することができる。
【0074】
構築的拡張機械学習の別の例では、ユーザ入力を使用して、機械学習モデル自体を改善または修正することができ、機械学習モデルの改善は、所与の問題と見なされる。例えば、機械学習モデルは、平均重心を決定するために、畳み込みに対してクラスタリングアルゴリズムを実行することができる。これらの重心は、ユーザが機械学習モデルを改善するためのソリューションを選択または提案するために、例えば、対話型アプリケーションにおいて、ユーザに、例えば、画像または画像のセットとして提示されてもよい。ユーザが選択または提案したソリューションは、機械学習モデルを修正または更新するために、パラメータまたは決定された重心の1つまたは複数の形成であってもよい。その後、システムは、修正されたまたは更新されたモデルに基づいて(例えば、複数の反復で)機械学習アルゴリズムを実行し、改善が生じたかどうかを判定するためにモデルの性能を評価することができる。後の反復は、システムが、以前のユーザソリューション提案に対する反復の後に、機械学習モデルの改善のためのソリューションの追加の提案を受信することを含むことができる。このようにして、機械学習モデルを改善するためにユーザが提案したソリューションを使用することにより、ニューラルネットワークを十分に訓練するために必要とされる、または使用されるデータの量を低減することが可能になり得る。さらに、機械学習モデルを改善するためにユーザが提案したソリューションを使用することは、ユーザが提案した修正のために、ニューラルネットワークの計算または訓練のための時間量の削減を可能にすることができる。
【0075】
図5は、本開示の様々な実施形態によるゲームプレイループ500のモデル内の機械学習アルゴリズムの例示的な実装を示す。例えば、図5に示すゲームプレイループ500は、図3のクライアント装置300又は図1のクライアント装置106~114の何れか(集合的に又は個別に「システム」と呼ばれる)によって実行されるゲーム内で実施することができる。ゲームプレイループ500の例示は、一例として意図されており、本開示に従って実施することができる様々な実施形態に対する限定ではない。
【0076】
ゲームプレイループ500は、ゲームプレイ中に発生し得る共通の活動のモデル又は表現であり、機械学習アルゴリズムを組み込むために関連するか又は使用可能である。例えば、ロード(収集)セクション510の間に、システムは、ゲーム中にユーザがリソースを収集している間に、データセット及びロードされた問題を取得することができる。分析セクション515(ゲームプレイループ500の構築、アップグレード、修正セクション)中に、システムは、ユーザが構築、アップグレード、及び/または修正しているゲーム中に、ソリューションの処理または評価を実行している。例えば、プロセス400の部分は、新しいソリューションが提案され、妥当性が確認され、処理される分析セクション515内のサブループとすることができる。一例では、分析セクション515は、例えば、上記で論じたような構築主義拡張機械学習に関して、提案されたソリューションまたは決定されたソリューションを修正することを含むことができる。したがって、システムは、ユーザ対話によって修正される機械学習モデルのためのディープラーニングネットワークの修正カーネルを利用することができる。クラスタリングは、可能なソリューションを提供することができる。次いで、システムは、ユーザ対話を使用してクラスタを修正し、次いで、機械学習モデルの修正を進めることができる。
【0077】
次に、処理されたソリューションが処理されると、システムは、そのソリューションをテストして(テストセクション520)、選択されたソリューションがどれだけ良好であったかを判定し、次いで、そのソリューションを以前のソリューションと比較して(セクション525)、そのソリューションが以前のソリューションよりも良好であったかどうかを判定し、その後、そのソリューションを選択して(選択セクション505)、ループ500を再び開始する。テストセクション520の一部として、システムは、ゲーム中にユーザがエンゲージメントまたは戦闘を行っている間にメトリックを生成することができる。比較セクション525の一部として、システムは、例えば、継続ゲームプレイ、仮想アイテム、ランキングなどを含むゲーム内報酬を用いて、ユーザ参加及び/または改善された結果を奨励することもできる。
【0078】
図6は、本開示の様々な実施形態による、ゲームプレイを動的にスケーリングし、ゲームレベルを調整するためにアルゴリズム性能を使用するためのプロセスを示す。例えば、図6に示すプロセスは、図3のクライアント装置300、図2のサーバ200、及び/または図1のクライアント装置106~114の何れか(集合的にまたは個別に「システム」と呼ばれる)によって実施することができる。
【0079】
これらの実施形態では、システムは、ゲームレベルを調整し、ゲームプレイを動的にスケーリングするために、アルゴリズム性能のための学習曲線を監視し、使用する(ステップ605)。例えば、ステップ605において、システムは、アルゴリズム学習曲線を生成し、監視するために、グローバルスコアなどの性能メトリックを経時的にプロットすることができる。アルゴリズムの性能または学習曲線のスコアリングメトリックの一例を、図7に例示として示す。示されるように、アルゴリズム性能の大きなランプは、最初は705で発生し、その後、アルゴリズム性能は、しばらくしてプラトー710でフラットになる。ランプアップの期間は、典型的には、レベルの開始である。得点がプラトーに達するとすぐに、ゲームはレベルの端部に達する。システムは、このプラトーの発生を検出する(ステップ610)。例えば、ステップ610において、システムは、アルゴリズム性能が以前のランプアップに対していつプラトーになったかを決定するためのパラメータとして、1つ以上の閾値または連続したスコアの平均を使用してもよい。このプラトーは、極小と考えることができる。
【0080】
次に、システムは、アルゴリズム性能がプラトーを超える時を監視する(ステップ615)。例えば、ステップ615において、システムは、ユーザのために、プラトー710のローカルミニマムからの突然変異を探しており、より良いソリューションを見つけ、715において、アルゴリズム性能を再び増加させ、学習処理を再び開始する。ステップ615の一部として、システムは、アルゴリズム性能がプラトー710を超えたことを判定する際に、プラトー710内のスコア変動に対して相対的であり得る1つ以上の閾値を使用してもよい。プラトーを超えるアルゴリズム性能を検出すると、システムはゲームレベルをインクリメントし(ステップ620)、ゲームの各レベルに対してプロセスが繰り返される。例えば、プラトー後の増加アルゴリズム性能は、ゲームのレベル2(又は次のレベル)と考えられる。
【0081】
レベルが変化すると、ゲームプレイキャラクタは、以前のローカルミニマムから脱出し、アルゴリズム性能を改善するインセンティブとして能力が向上する。各レベルに到達することはより困難であり、これは、次のプラトー720に到達し、725でブレイクアウトするために、追加の計算時間及び/またはアルゴリズム対話が必要であることを意味する。例えば、ユーザは、次のレベルに到達するための追加のリソース(例えば、ゲームにおいて、収集ステップを実行する)及び追加のインセンティブを寄付するために、コンピュータをより長く動作させたままにするようにインセンティブが与えられる。
【0082】
これらの実施形態では、ゲームの難易度は、必ずしもアルゴリズムの性能ではなく、キャラクタのレベルに応じてスケーリングされる。ゲームの難易度は、学習曲線を監視した結果得られるレベルに基づくキャラクタ能力に基づいてスケーリングされる。例えば、一人称視点シューティングゲーム(FPS)では、難易度はあるレベルの敵の数である。その数は、ゲームプレイにチャレンジし、エンゲージメントし続けるキャラクタの能力に基づいて増加させることができる。キャラクタの強さ、またはキャラクタの能力は、学習曲線に結び付けられる達成されたレベルの値に依存する。このようにして、ゲームプレイは、アルゴリズム性能を反映し、ユーザは、アルゴリズム性能をさらに改善するためのインセンティブ及びエンゲージメントを提供される。
【0083】
図4及び図6は、マシン学習アルゴリズムのゲーミフィケーションを可能にし、ゲームプレイを動的にスケーリングし、ゲームレベルを調整するためにアルゴリズムを使用する抽象化アルゴリズムインターフェイスを実装するためのプロセスの例を示すが、図4及び図6には様々な変更を行うことができる。例えば、一連のステップとして示されているが、各図の様々なステップは、オーバーラップするか、並列に起こるか、異なる順序で起こるか、または複数回起こることができる。別の例では、ステップは、省略されるか、または他のステップに置き換えられてもよい。
【0084】
本特許文書全体を通して使用される特定の単語及び語句の定義を記載することが有利であり得る。「結合」及び類似する用語は、それらの要素が互いに物理的に接触しているか否かにかかわらず、2つ以上の要素間の任意の直接的または間接的な通信を指す。「送信」、「受信」、及び「通信」という用語は、任意の直接的または間接的な通信の両方を包含するとともに、類似する通信を包含する。用語「を含む」は、限定せず、包含することを意味する。用語「または」は、及び/または含む。用語「関連する」は、類似する用語を含み、含む、やりとりする、結合する、通信する、協働する、近接する、接する、差し挟む、並置する、など、何らかの関係を有することを意味する。用語「少なくとも1つの」は、アイテムのリストと共に使用される場合、リストに含まれるアイテムの1つまたは複数の異なる組合せが使用されてもよく、1つのアイテムだけが必要とされてもよいことを示す。例えば、「A、B、Cのうち少なくとも1つ」は、A、B、C、AとB、AとC、BとC、及びAとBとCの組み合わせの何れかを含む。
【0085】
さらに、以下に説明する様々な機能は、1つ以上のコンピュータプログラムによって実現またはサポートすることができ、その各々は、コンピュータ可読プログラムコードから形成され、コンピュータ可読媒体で具体化される。用語「アプリケーション」及び「プログラム」は、1つまたは複数のコンピュータプログラム、ソフトウェアコンポーネント、命令のセット、手順、機能、オブジェクト、クラス、インスタンス、関連データ、または適切なコンピュータ可読プログラムコードでの実装に適合されたそれらの部分を指す。語句「コンピュータ可読プログラムコード」は、ソースコード、オブジェクトコード、及び実行可能コードを含む任意のタイプのコンピュータコードを含む。語句「コンピュータ可読媒体」は、読取り専用メモリ(ROM)、ランダムアクセスメモリ(RAM)、ハードディスクドライブ、コンパクトディスク(CD)、デジタルビデオディスク(DVD)、または任意の他のタイプのメモリなど、コンピュータによってアクセスされることが可能な任意のタイプの媒体を含む。非一時的コンピュータ可読媒体は、データを永久的に記憶することができる媒体と、書き換え可能な光ディスクまたは消去可能なメモリ装置のように、データを記憶し後で上書きすることができる媒体とを含む。
【0086】
他の特定の語句の定義は、本特許文書全体を通して提供される。当業者は、ほとんどではないにしても多くの場合、そのような定義は、そのような定義された単語及び句の以前の使用ならびに将来の使用に適用されることを理解すべきである。
【0087】
本開示は、例示的な実施形態を用いて説明されてきたが、当業者には、様々な変更及び修正が示唆され得る。本開示は、添付の特許請求の範囲内にあるような変更及び修正を包含することが意図される。
【0088】
一実施形態は、対話型機械学習のための方法を提供する。この方法は、所与の問題に対するソリューションを識別するステップと、識別されたソリューションが所与の問題に対する可能なソリューションであると判定することに基づいて、可能なソリューションを使用して機械学習アプリケーションを実行することによって可能なソリューションを処理するステップと、少なくとも部分がプロセスの異なる反復からのものである複数の処理されるソリューションに基づいて処理されるソリューションを選択するステップと、終了条件に基づいて所与の問題に対する選択されたソリューションを用いてプロセスを終了するかどうかを判定するステップと、を含むプロセスを反復的に実行することを含む。プロセスを実行することは、対話型アプリケーションのためのユーザインターフェイスを介して、ステップの少なくとも部分を実行する際に使用する対話型アプリケーションへの入力を受信することを含む。
【0089】
別の実施形態は、対話型機械学習のためのシステムを提供する。システムは、プロセッサと、プロセッサに動作可能に接続された通信インターフェイスとを含む。プロセッサは、所与の問題に対するソリューションを識別するステップと、識別されたソリューションが所与の問題に対する可能なソリューションであると判定することに基づいて、可能なソリューションを使用して機械学習アプリケーションを実行することによって可能なソリューションを処理するステップと、少なくとも部分がプロセスの異なる反復からのものである複数の処理されたソリューションに基づいて処理されたソリューションを選択するステップと、終了条件に基づいて所与の問題に対する選択されたソリューションを用いてプロセスを終了するかどうかを判定するステップと、を含むプロセスを反復的に実行するように構成される。通信インターフェイスは、対話型アプリケーションのためのユーザインターフェイスを介して、ステップの少なくとも部分の実行で使用するために、対話型アプリケーションへの入力を受信するように構成される。
【0090】
別の実施形態は、対話型機械学習のための非一時的コンピュータ可読媒体を提供する。コンピュータ可読媒体は、システムのプロセッサによって実行されるとき、システムに、所与の問題に対するソリューションを識別するステップと、識別されるソリューションが所与の問題に対する可能なソリューションであると判定することに基づいて、可能なソリューションを使用して機械学習アプリケーションを実行することによって、可能なソリューションを処理するステップと、少なくとも部分がプロセスの異なる反復からのものである複数の処理されるソリューションに基づいて処理されるソリューションを選択するステップと、終了条件に基づいて、所与の問題に対して選択されたソリューションを使用してプロセスを終了するかどうかを判定するステップと、を含むプロセスを反復的に実行させるプログラムコードを含む。コンピュータ可読媒体は、システムのプロセッサによって実行されると、システムに、対話型アプリケーションのためのユーザインターフェイスを介して、ステップの少なくとも部分の実行で使用するために対話型アプリケーションに入力を受信するプログラムコードをさらに含む。
【0091】
上記の例及び実施形態の何れにおいても、プロセスは、各反復で処理された処理されるソリューションについてメトリックを生成し、生成されたメトリックのうちの1つまたは複数に基づいて、処理されるソリューションを使用して機械学習アプリケーションの性能を特徴付ける、ことをさらに含む。また、処理されたソリューションを選択することは、選択されたソリューションを使用する機械学習アプリケーションの性能に基づいて、複数の処理されるソリューションから処理されるソリューションを選択することを含む。
【0092】
上記の例及び実施形態の何れにおいても、プロセスは、ステップのうちの1つの少なくとも部分を実行する際に使用する入力を受信することを含み、当該受信することは、受信された入力に基づいて、機械学習アプリケーションのパラメータに対する修正を識別し、所与の問題に対するソリューションを識別し、プロセスの反復のために、識別されたソリューションの少なくとも部分としてパラメータ修正を識別し、可能なソリューションを処理し、パラメータ修正に基づいて機械学習アプリケーションを修正し、1つまたは複数の反復で、修正された機械学習アプリケーションを実行する、ことを含む。
【0093】
上記の例及び実施形態の何れにおいても、パラメータ修正は、受信された入力が、プロセスの以前の反復、すなわち当該反復の前の時間における以前の反復において機械学習アプリケーションによって生成されたパラメータ修正のセットから選択されることに基づいて識別される。
【0094】
上記の例及び実施形態の何れかでは、ステップのうちの1つの少なくとも部分を実行する際に使用する入力を受信することは、ユーザインターフェイスを介して、対話型アプリケーションで提示される対話のためのパラメータ入力として入力を受信し、所与の問題に対するソリューションを識別し、識別されたソリューションの少なくとも部分としてパラメータ入力を識別し、可能なソリューションを使用して機械学習アプリケーションを実行することによって可能なソリューションを処理し、対話型アプリケーションで提示される対話からのパラメータ入力を、機械学習アプリケーションのためのパラメータの少なくとも修正として使用する、ことを含む。
【0095】
上記の例及び実施形態の何れにおいても、ステップのうちの1つの少なくとも部分を実行する際に使用するための入力を受信することは、ユーザインターフェイスを介して、対話型アプリケーションで提示される対話に関する所与の問題の少なくとも部分のための試みられたソリューションとして入力を受信することを含み、複数の試みられたソリューションが、プロセスの複数の反復にわたって受信され、処理されるソリューションを選択することは、複数の試みられたソリューションを評価することと、試みられたソリューションの評価に基づいて処理されるソリューションを選択すること、を含む。
【0096】
上記の例及び実施形態の何れかでは、ステップのうちの1つの少なくとも部分を実行する際に使用する入力を受信することは、ユーザインターフェイスを介して、可能なソリューションを使用して機械学習アプリケーションを実行することからの出力が正しいかどうかの指標として入力を受信することを含み、可能なソリューションを処理することは、受信した指標に基づいて可能なソリューションを評価することを含む。
【0097】
上記の例及び実施形態の何れにおいても、対話型アプリケーションはビデオゲームであってよく、複数のステップのうちの1つのステップの少なくとも部分の実行に使用される受信入力は、ビデオゲームのゲームプレイから受信される。
【0098】
本出願における説明の何れも、任意の特定の要素、ステップ、または機能が、特許請求の範囲に含まれなければならない本質的な要素であることを暗示するものとして解釈されるべきではない。特許の対象の範囲は、請求項によってのみ定義される。さらに、特許請求の範囲の何れも、「のための手段」という正確な単語の後に分詞が続かない限り、35 U.S.C.§112(f)を惹起するようには意図されていない。
【0099】
〔関連出願及び優先権の主張への相互参照〕
本出願は、2018年3月26日に出願された米国仮特許出願第62/648,198号の優先権を主張する。上記特許文献の内容は、参照により本明細書に組み込まれる。

図1
図2
図3
図4
図5
図6
図7