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

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

▶ ディープマインド テクノロジーズ リミテッドの特許一覧

特表2024-506598マルチエージェント対話を使用した主成分の決定
<>
  • 特表-マルチエージェント対話を使用した主成分の決定 図1A
  • 特表-マルチエージェント対話を使用した主成分の決定 図1B
  • 特表-マルチエージェント対話を使用した主成分の決定 図2A
  • 特表-マルチエージェント対話を使用した主成分の決定 図2B
  • 特表-マルチエージェント対話を使用した主成分の決定 図3
  • 特表-マルチエージェント対話を使用した主成分の決定 図4
  • 特表-マルチエージェント対話を使用した主成分の決定 図5
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2024-02-14
(54)【発明の名称】マルチエージェント対話を使用した主成分の決定
(51)【国際特許分類】
   G06F 18/2135 20230101AFI20240206BHJP
   G06N 20/00 20190101ALI20240206BHJP
【FI】
G06F18/2135
G06N20/00
【審査請求】有
【予備審査請求】未請求
(21)【出願番号】P 2023547479
(86)(22)【出願日】2022-02-07
(85)【翻訳文提出日】2023-10-03
(86)【国際出願番号】 EP2022052894
(87)【国際公開番号】W WO2022167658
(87)【国際公開日】2022-08-11
(31)【優先権主張番号】63/146,489
(32)【優先日】2021-02-05
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.TENSORFLOW
(71)【出願人】
【識別番号】517030789
【氏名又は名称】ディープマインド テクノロジーズ リミテッド
(74)【代理人】
【識別番号】100108453
【弁理士】
【氏名又は名称】村山 靖彦
(74)【代理人】
【識別番号】100110364
【弁理士】
【氏名又は名称】実広 信哉
(74)【代理人】
【識別番号】100133400
【弁理士】
【氏名又は名称】阿部 達彦
(72)【発明者】
【氏名】ブライアン・マクウィリアムズ
(72)【発明者】
【氏名】イアン・マイケル・ジェンプ
(57)【要約】
マルチエージェント対話を使用してデータセットの主成分を決定するための、コンピュータ記憶媒体上に符号化されたコンピュータプログラムを含む方法、システムおよび装置。方法のうちの1つは、データセットの複数の主成分に関する初期推定値を取得するステップと、動作を反復的に実行することによって各主成分に関する最終推定値を生成するステップとを含み、動作が、主成分の現在の推定値を使用して報酬推定値を生成する動作であって、主成分の現在の推定値がデータセット内のより多くの分散を捕捉する場合、報酬推定値がより大きい、動作と、主成分の各親主成分について、罰推定値を生成する動作であって、主成分の現在の推定値と親主成分の現在の推定値とが直交しない場合、罰推定値がより大きい、動作と、報酬推定値と罰推定値との間の差に従って、主成分の現在の推定値を更新する動作とを含む。
【特許請求の範囲】
【請求項1】
データセットXの複数の主成分vを決定する方法であって、前記方法が、
前記複数の主成分vに関する初期推定値を取得するステップと、
特定の主成分viのそれぞれについて、動作を反復的に実行することによって前記特定の主成分viに関する最終推定値を生成するステップと
を含み、前記動作が、
前記データセットXと前記特定の主成分viの現在の推定値
【数1】
とを使用して報酬推定値を生成する動作であって、前記特定の主成分viの前記現在の推定値
【数2】
が前記データセットX内のより多くの分散を捕捉する場合、前記報酬推定値がより大きい、動作と、
前記特定の主成分viの親主成分vjのそれぞれについて、それぞれの罰推定値を生成する動作であって、前記特定の主成分viの前記現在の推定値
【数3】
と前記親主成分vjの現在の推定値
【数4】
とが直交しない場合、罰推定値がより大きい、動作と、
各親主成分vjの前記それぞれの罰推定値を結合することによって、前記特定の主成分viに関する結合罰推定値を生成する動作と、
前記報酬推定値と前記結合罰推定値との間の差に従って、前記特定の主成分viの前記現在の推定値
【数5】
に対する更新を生成する動作と
を含む、方法。
【請求項2】
前記主成分vに関する前記最終推定値が、主成分の降順において順次生成される、請求項1に記載の方法。
【請求項3】
各特定の主成分viについて、前記特定の主成分viの前記現在の推定値
【数6】
を更新する反復回数が、
【数7】
に等しく、
【数8】
が、前記特定の主成分viに関する前記初期推定値であり、uiが、前記初期推定値
【数9】
を使用して計算された前記特定の主成分viに関する効用推定値であり、ρiが、前記特定の主成分viに関する前記最終推定値の最大許容誤差である、請求項2に記載の方法。
【請求項4】
前記効用推定値uiが、
【数10】
に等しく、各
【数11】
が、前記特定の主成分viのそれぞれの親主成分vjに関する前記最終推定値である、請求項3に記載の方法。
【請求項5】
前記主成分vに関する前記最終推定値が、前記主成分vにわたって並列に生成される、請求項1に記載の方法。
【請求項6】
各特定の主成分viについて、
前記主成分viに関する前記最終推定値を生成するための計算が、複数の第1の処理デバイスのそれぞれの第1の処理デバイスに割り当てられ、
前記特定の主成分viの前記現在の推定値
【数12】
が、前記複数の第1の処理デバイスの各々の他の第1の処理デバイスに一定間隔でブロードキャストされる、請求項5に記載の方法。
【請求項7】
前記方法が、前記データセットX内の複数のデータ要素のサブセットXtを取得するステップをさらに含み、
前記データセットXと前記特定の主成分viの前記現在の推定値
【数13】
とを使用して報酬推定値を生成する動作が、前記サブセットXtと前記特定の主成分viの前記現在の推定値
【数14】
とを使用して報酬推定値を生成する動作を含み、前記特定の主成分viの前記現在の推定値
【数15】
が前記サブセットXt内のより多くの分散を捕捉する場合、前記報酬推定値がより大きい、請求項5または6に記載の方法。
【請求項8】
各特定の主成分viについて、前記報酬推定値が、
【数16】
または
【数17】
に比例する、請求項7に記載の方法。
【請求項9】
各特定の主成分viについて、
各親主成分vjに対応する前記罰推定値の方向が、前記親主成分vjの前記初期推定値
【数18】
の方向に等しい、請求項7または8に記載の方法。
【請求項10】
各親主成分vjに関する前記罰推定値が、
【数19】
に比例する、請求項9に記載の方法。
【請求項11】
各特定の主成分viについて、各親主成分vjに対応する前記罰推定値が、
【数20】
に比例する、請求項7または8に記載の方法。
【請求項12】
各特定の主成分viについて、
前記特定の主成分viに関する結合罰推定値を生成する動作が、各親主成分vjの前記それぞれの罰推定値の合計を決定する動作を含む、請求項1から11のいずれか一項に記載の方法。
【請求項13】
各特定の主成分viについて、前記報酬推定値と前記結合罰推定値との間の差に従って、前記特定の主成分viの前記現在の推定値
【数21】
に対する更新を生成する動作が、
前記報酬推定値と前記結合罰推定値との間の前記差を使用して、前記特定の主成分viの効用関数の推定勾配
【数22】
を決定する動作と、
【数23】
に比例する中間更新
【数24】
を生成する動作と、
前記中間更新
【数25】
を使用して、前記現在の推定値
【数26】
に対する前記更新を生成する動作と
を含む、請求項1から12のいずれか一項に記載の方法。
【請求項14】
前記現在の推定値
【数27】
に対する前記更新を生成する動作が、
【数28】
を計算する動作を含み、ηtが、ステップサイズを表すハイパーパラメータである、請求項13に記載の方法。
【請求項15】
前記特定の主成分viの前記現在の推定値
【数29】
に対する更新を生成する動作が、複数の第2の処理デバイスにわたって並列に、前記データセットXのそれぞれの異なるサブセットXmを使用して複数の中間更新
【数30】
を生成する動作をさらに含み、
前記現在の推定値
【数31】
に対する前記更新を生成する動作が、
結合中間更新を生成するために、前記複数の中間更新
【数32】
を結合する動作と、
前記結合中間更新を使用して、前記現在の推定値
【数33】
に対する前記更新を生成する動作と
を含む、請求項13に記載の方法。
【請求項16】
前記報酬推定値と前記結合罰推定値との間の前記差を使用して、前記推定勾配
【数34】
を決定する動作が、
前記差を生成するために、前記報酬推定値から前記結合罰推定値を減算する動作と、
【数35】
に比例する係数を前記差に左乗算する動作と
を含む、請求項13から15のいずれか一項に記載の方法。
【請求項17】
各特定の主成分viについて、
前記特定の主成分viの前記現在の推定値
【数36】
に対する更新を生成する動作が、
【数37】
になるように前記現在の推定値を更新し、正規化、すなわち、
【数38】
を行う動作を含む、請求項1から16のいずれか一項に記載の方法。
【請求項18】
前記データセットXの次元数を削減するために、前記複数の主成分vを使用するステップをさらに含む、請求項1から17のいずれか一項に記載の方法。
【請求項19】
機械学習モデルを使用して前記データセットXを処理するために、前記複数の主成分vを使用するステップをさらに含む、請求項1から18のいずれか一項に記載の方法。
【請求項20】
前記データセットXが、カメラによって収集された画像のセット、またはテキストデータのセットのうちの1つまたは複数を含む、請求項1から19のいずれか一項に記載の方法。
【請求項21】
1つまたは複数のコンピュータと、
前記1つまたは複数のコンピュータによって実行されると、前記1つまたは複数のコンピュータに、請求項1から20のいずれか一項に記載の方法を実行させる命令を記憶した1つまたは複数の記憶デバイスと
を備えるシステム。
【請求項22】
前記主成分vに関する前記最終推定値を生成するために、前記主成分vのうちの対応するものに対して並列に動作するように構成された複数の処理デバイスを備える、請求項5に従属する場合の請求項21に記載のシステム。
【請求項23】
1つまたは複数のコンピュータによって実行されると、前記1つまたは複数のコンピュータに、請求項1から20のいずれか一項に記載の方法を実行させる命令を記憶した1つまたは複数のコンピュータ記憶媒体。
【発明の詳細な説明】
【技術分野】
【0001】
本明細書は、主成分分析に関する。主成分分析(PCA)は、データセットにおける基準の変更を実行するために、データセットの主成分を計算し、計算された主成分を使用するプロセスである。PCAは、探索的データ分析において、および予測モデルを作成するために使用される。PCAは、一般に、可能な限り多くのデータの変動を維持しながら、低次元のデータを取得するために、各データポイントを最初のいくつかの主成分のみに投影することによって次元数を削減するために使用される。
【発明の概要】
【発明が解決しようとする課題】
【0002】
本明細書は、主成分分析をマルチエージェント対話としてモデル化することによって、データセットXの上位k個の主成分を決定する、1つまたは複数の場所における1つまたは複数のコンピュータ上のコンピュータプログラムとして実装されるシステムについて説明する。
【課題を解決するための手段】
【0003】
本明細書で説明する主題は、以下の利点のうちの1つまたは複数を実現するために、特定の実施形態において実装され得る。
【0004】
本明細書で説明する技法を使用すると、システムは、例えば、主成分分析を実行するための既存の技法よりも少ない時間ならびに/または少ない計算リソースおよび/もしくはメモリリソースを使用して、データセットXの上位k個の主成分を効率的かつ正確に推定することができる。
【0005】
複数の処理デバイスにわたるエージェントの計算を並列化することによって、システムは、主成分を決定する効率をさらに改善することができる。本明細書で説明する技法を使用すると、システムは、単純な並列化実装において本質的に存在する計算におけるバイアスをさらに除去することができる。
【0006】
例えば、本明細書で説明する技法を使用すると、システムは、データの上位k個の主成分を決定し、記憶またはさらなる処理のためにデータセットの次元数を削減するためにデータセットの上位k個の主成分を使用し、データセットの記憶の計算効率およびメモリ効率を改善することができる。
【0007】
別の例として、本明細書で説明する技法を使用すると、システムは、データセットの上位k個の主成分を決定し、データセットに対して機械学習を実行するためのデータセットの次元数を削減するためにデータセットの上位k個の主成分を使用し、機械学習プロセスの計算効率およびメモリ効率を改善することができる。
【0008】
本明細書で説明する技法を使用すると、システムは、いくつかの他の既存の技法よりも迅速かつ正確にデータセットの上位k個の主成分を決定することができる。例えば、システムは、既存の技法よりも長い「最長の正しい固有ベクトルストリーク」(グラウンドトゥルース固有ベクトルの角度しきい値内で順番に決定された固有ベクトルの数を測定する)(例えば、10%、50%、または100%より長いストリーク)を、既存の技法よりも迅速に(例えば、10%、15%、または25%より少ない秒数で)達成することができる。
【0009】
本明細書の主題の1つまたは複数の実施形態の詳細は、添付図面および以下の説明において記載される。主題の他の特徴、態様、および利点は、説明、図面、および特許請求の範囲から明らかになるであろう。
【図面の簡単な説明】
【0010】
図1A】データセットの主成分を順次決定するための例示的な主成分分析システムの図である。
図1B】データセットの主成分を順次決定するための例示的なプロセスのフロー図である。
図2A】データセットの主成分を並列に決定するための例示的な主成分分析システムの図である。
図2B】データセットの主成分を並列に決定するための例示的なプロセスのフロー図である。
図3】主成分分析システムを含む例示的なシステムの図である。
図4】データセットの上位k個の主成分を決定するための例示的なプロセスのフロー図である。
図5】データセットの主成分を決定するそれぞれの異なる主成分分析システムの性能の図である。
【発明を実施するための形態】
【0011】
様々な図面における同様の参照番号および名称は、同様の要素を示す。
【0012】
本明細書は、主成分分析をマルチエージェント対話としてモデル化することによって、データセットXの上位k個の主成分を決定するように構成された、1つまたは複数の場所における1つまたは複数のコンピュータ上のコンピュータプログラムとして実装されたシステムについて説明する。データセットXは、複数のデータ要素、例えばテキスト用語、画像、オーディオサンプル、またはセンサデータの他の項目を含み得る(またはそれらから構成され得る)。
【0013】
図1Aは、例示的な主成分分析システム100の図である。主成分分析システム100は、以下に説明するシステム、構成要素、および技法が実装され得る、1つまたは複数の場所における1つまたは複数のコンピュータ上のコンピュータプログラムとして実装されたシステムの一例である。
【0014】
主成分分析システム100は、データセット112の上位k個の主成分122a~kを決定するように構成され、ここでk≧1である。データセット112は、次元数nを有し、ここでn>kである。すなわち、データセット112の各要素は、例えば、各要素が長さnのベクトルによって表され得るように、次元数nを有する。
【0015】
【数1】
【0016】
内のデータセットXの主成分は、データセットXの最大分散の方向に整列し、互いに直交する
【0017】
【数2】
【0018】
におけるベクトルである。上位k個の主成分は、集合的にvで表記される場合がある。
【0019】
主成分分析システム100は、主成分の降順(すなわち、最初に第1の主成分を決定し、次いで第2の主成分を決定するなど)において、上位k個の主成分122a~kを順次決定するように構成される。
【0020】
本明細書において、データセットのn番目の主成分は、データセット内のn番目に大きい分散の方向を特定する主成分である(等価的に、データセットの共分散行列のn番目に大きい固有値に対応する主成分であり、共分散行列は、データセット内の要素の各ペア間の共分散を特定する正方行列である)。
【0021】
本明細書において、特定の主成分の「親」主成分は、主成分の順位において特定の主成分よりも上位の主成分であり、すなわち、親主成分は、特定の主成分によって特定される方向よりも大きい分散の方向を特定する(等価的に、親主成分は、特定の主成分の固有値よりも大きい対応する固有値を有する)。特定の主成分の「子」主成分は、主成分の順位において特定の主成分よりも下位の主成分である。
【0022】
主成分分析システム100は、主成分分析をマルチエージェント対話としてモデル化することによって、上位k個の主成分122a~kを決定する。マルチエージェント対話は、k個のエージェントを含み、各エージェントは、それぞれの主成分122a~kに対応する。
【0023】
マルチエージェント対話における各エージェントは、対応する主成分122a~kの推定値を選択することによってアクションを起こし、エージェントに真の対応する主成分122a~kを選択するように動機付けするアクションに対する報酬を受信する。特に、主成分分析システム100は、(i)エージェントのアクションによって特定される対応する主成分122a~kの推定値および(ii)マルチエージェント対話における対応する他のエージェントのそれぞれのアクションによって特定される対応する主成分の親主成分122a~kの関数である、各エージェントのための効用関数を定義する。各エージェントのそれぞれの効用関数は、(i)(対応する他のエージェントのアクションによって特定される)親主成分122a~kと直交し、(ii)(親主成分が与えられた場合に利用可能な方向の中で)データセット112における最大分散の方向を特定する、推定主成分122a~kを特定するエージェントによるアクションに報酬を与えることができる。例示的な効用関数について、図1Bを参照して以下でより詳細に論じる。
【0024】
特定の主成分122a~kに対応する各エージェントの効用関数は、特定の主成分122a~kに対する親主成分に対応するエージェントのアクションにのみ依存するので、主成分分析システム100は、主成分122a~kを順次に、すなわち、第1の主成分122aに対応するエージェントのアクションを決定し、次いで第2の主成分122bに対応するエージェントのアクションを決定するなどによって決定することができる。
【0025】
主成分分析システム100は、データストア110と、k個のエージェントエンジン120a~kとを含む。
【0026】
データストア110は、データセット112と、主成分122a~kが主成分分析システム100によって順次生成されるにつれて、これまでに生成された主成分122a~kとを記憶するように構成される。データストア110は、複数の異なる論理的および物理的データ記憶場所にわたって分散され得る。
【0027】
各エージェントエンジン120a~kは、主成分分析システム100によって定義されるマルチエージェント対話における対応するエージェントに関するアクションを選択することによって、データセット112のそれぞれの主成分122a~kを決定するように構成される。すなわち、第1のエージェントエンジン120aは、データセット112の第1の主成分122aを決定するように構成され、第2のエージェントエンジン120bは、データセット112の第2の主成分122bを決定するように構成される、などである。
【0028】
まず、データストア110は、データセット112を第1のエージェントエンジン120aに提供する。第1のエージェントエンジン120aは、以下でより詳細に説明するように、第1の主成分122aを生成するために、データセット112を処理する。特に、第1のエージェントエンジン120aは、第1の主成分122aに対応するマルチエージェント対話におけるエンジンの効用関数を最大化するためにデータセット112を処理し、第1の主成分122aを表すアクションを選択する。次いで、第1のエージェントエンジン120aは、第1の主成分122aをデータストア110に提供する。
【0029】
いくつかの実装形態において、以下により詳細に説明するように、第1のエージェントエンジン120aは、アクション(すなわち、第1の主成分122aの推定値)を繰り返し選択し、効用関数によって定義されるように、アクションに対して受け取られる報酬に従ってアクションを更新する。すなわち、第1のエージェントエンジン120aは、第1のエージェント120aが対応するエージェントに関するアクションを選択する複数の反復にわたって実行することができ、複数の反復の後、最後の反復において選択されたアクションによって特定された第1の主成分122aの推定値をデータストア110に提供する。
【0030】
第1のエージェントエンジン120aから第1の主成分122aを受信した後、データストア110は、データセット112および第1の主成分122aを第2のエージェントエンジン120bに提供する。第2のエージェントエンジン120bは、第2の主成分122bを生成するために、以下でより詳細に説明するように、データセット112と第1の主成分122aとを処理する。特に、第1の主成分122aに対応するエージェントのアクションが与えられた場合、第2のエージェントエンジン120bは、第2の主成分122bに対応するマルチエージェント対話におけるエージェントの効用関数を最大化するためにデータセット112を処理し、第2の主成分122bを表すアクションを選択する。次いで、第2のエージェントエンジン120bは、第2の主成分122bをデータストア110に提供する。
【0031】
第1のエージェントエンジン120aと同様に、いくつかの実装形態において、第2のエージェントエンジン120bは、第2のエージェントエンジン120bが対応するエージェントに関するアクションを選択する複数の反復にわたって実行し、複数の反復の後、最後の反復において選択されたアクションによって特定された第2の主成分122bの推定値をデータストア110に提供する。
【0032】
エージェントエンジン120a~kは、k番目のエージェントエンジン120kが(i)データセット112および(ii)最初のk-1個の主成分122aから122(k-1)からk番目の主成分122kを決定し、k番目の主成分122kをデータストア110に提供するまで、上記で説明したように対応する主成分122a~kを順次生成し続ける。
【0033】
上位k個の主成分122a~kを決定した後、主成分分析システムは、記憶またはさらなる処理のために主成分122a~kを外部システムに提供することができる。データセット112の主成分122a~kを使用するための例示的な技法については、図3を参照して以下に説明する。
【0034】
いくつかの実装形態において、各エージェントエンジン120a~kは、複数の通信可能に結合されたデバイスのシステム内のそれぞれ異なる処理デバイス(「デバイス」)上に実装される。例えば、各エージェントエンジン120a~kは、それぞれの並列処理デバイス、例えばグラフィックス処理ユニット(GPU)、テンソル処理ユニット(TPU)、または中央処理装置(CPU)上に実装され得る。いくつかの他の実装形態において、エージェントエンジン120a~kのうちの1つまたは複数は、同じデバイス上に実装される。
【0035】
いくつかの実装形態において、上記で説明したエージェントエンジン120a~kによって実行される動作は、主成分分析システム100の同じ構成要素によって、例えば単一のエージェントエンジンによって実行される。すなわち、いくつかの実装形態において、主成分分析システム100は、上位k個の主成分122a~kの各々を決定する(例えば、単一のデバイス上に実装される)単一のエージェントエンジンを含む。
【0036】
図1Bは、データセットの主成分を順次決定するための例示的なプロセス130のフロー図である。便宜上、プロセス130について、1つまたは複数の場所において配置された1つまたは複数のコンピュータのシステムによって実行されるものとして説明する。例えば、本明細書に従って適切にプログラムされた主成分分析システム、例えば図1Aに示す主成分分析システム100は、プロセス130を実行することができる。
【0037】
システムは、データセットの上位k個の各主成分について、以下に説明するプロセス130を順次繰り返すことができる。すなわち、システムは、まずデータセットの第1の主成分に関する最終推定値を決定するためにプロセス130を実行することができ、次いでデータセットの第2の主成分に関する最終推定値を決定するためにプロセス130を実行することができる、などである。以下の説明において、システムについて、特定の主成分を決定するためにプロセス130を実行するものとして説明する。
【0038】
システムは、データセットと、特定の主成分に対する親主成分(もしあれば、第1の主成分(最上位主成分)の場合、親主成分は、存在しない)と、特定の主成分に関する初期推定値とを取得する(ステップ132)。親主成分は、プロセス130の以前の実行中に決定されている可能性がある。
【0039】
システムは、特定の主成分に関する任意の適切な初期推定値を決定することができる。例えば、システムは、初期推定値をランダムに選択することができ、例えば、データセットと同じ次元数を有するテンソルを均一にランダムにサンプリングする。別の例として、システムは、親主成分の各々に直交するテンソルをサンプリングすることによって、特定の主成分に関する初期推定値を選択することができる。
【0040】
システムは、特定の主成分に関する推定値を更新するために、複数の反復の各々においてステップ134を実行することができる。
【0041】
システムは、特定の主成分に関する推定値を更新するために、効用関数に従って、データセットと、親主成分と、特定の主成分に関する現在の推定値とを処理する(ステップ134)。
【0042】
システムは、特定の主成分の決定をマルチエージェント対話としてモデル化し、特定のエージェントは、特定の主成分に関する推定値を特定するアクションを実行し、マルチエージェント対話におけるそれぞれの他のエージェントは、特定の主成分に対する親主成分を特定するアクションを実行する。システムは、特定の主成分の推定値を更新するために、特定のエージェントの選択されたアクションを更新することができる。
【0043】
効用関数は、特定のエージェントに対する報酬を定義し、より高い報酬は、特定のエージェントによって選択されたアクションが特定の主成分に関する真の値により近い特定の主成分に関する推定値を特定することを示す。
【0044】
効用関数は、データセット内のより多くの分散を捕捉する特定の主成分に関する推定値を選択することについて特定のエージェントに報酬を与える1つまたは複数の第1の項を含むことができる。すなわち、特定の主成分に関する推定値がデータセット内のより多くの分散を捕捉する場合、1つまたは複数の第1の項は、より大きい。
【0045】
例えば、効用関数の第1の項は、
【0046】
【数3】
【0047】
に等しいかまたは比例し、ここで、Xは、データセットであり、
【0048】
【数4】
【0049】
は、特定のエージェントのアクションによって特定される特定の主成分(すなわち、i番目の主成分であり、ここでiは、正の整数である)の推定値である。
【0050】
その代わりに、またはそれに加えて、効用関数は、特定の主成分の親主成分(存在する場合)に直交しない特定の主成分に関する推定値を選択することについて特定のエージェントに罰を与える1つまたは複数の第2の項を含むことができる。例えば、効用関数は、各親主成分について、そのような第2の項を1つ含むことができる。
【0051】
例えば、特定の主成分に対する特定の親主成分(j番目の主成分であり、ここで、jは、i未満の正の整数)に対応する効用関数の第2の項は、
【0052】
【数5】
【0053】
に等しいかまたは比例し、ここで、
【0054】
【数6】
【0055】
は、特定の親主成分(すなわち、プロセス130の以前の実行中に決定された特定の親主成分に関する推定値)であり、<a,b>は、aとbとの間のドット積(内積とも呼ばれる)を表す。
【0056】
システムは、例えば合計、
【0057】
【数7】
【0058】
を決定することによって、結合された第2の項を生成するために、各親主成分に対応するそれぞれの第2の項を結合することができ、ここで、j<iは、特定の主成分に対する親主成分であるデータセットのすべての主成分を特定する。
【0059】
効用関数は、第1の項と結合された第2の項との間の差に等しいかまたは比例し得る。すなわち、uiと表記され得る効用関数は、
【0060】
【数8】
【0061】
に等しいかまたは比例し得る。
【0062】
特定の主成分に関する現在の推定値に対する更新を決定するために、システムは、効用関数の勾配を決定することができる。例えば、上記の効用関数の勾配は、
【0063】
【数9】
【0064】
である。
【0065】
括弧内の左側の項(すなわち、効用関数の第1の項の勾配)は、ときには「報酬推定値」と呼ばれ、括弧内の右側の項(すなわち、効用関数の結合された第2の項の勾配)は、ときには「結合罰推定値」と呼ばれ、ここで合計における各項は、それぞれの親主成分に対応する「罰推定値」である。
【0066】
様々な実装形態において、システムは、例えば効率を改善するかまたはバイアスを除去するために、上記の勾配の様々な近似を使用することができる。
【0067】
効用関数の勾配は、特定の主成分に関する推定値がその方向において更新された場合、効用関数の値が最も増加する(すなわち、特定のエージェントに対する報酬が最も増加する)方向を表す。したがって、次いでシステムは、効用関数の勾配を使用して、特定の主成分に関する現在の推定値を更新することができる。例えば、システムは、
【0068】
【数10】
【0069】
を計算することができ、ここで、
【0070】
【数11】
【0071】
は、効用関数の勾配であり、αは、ステップサイズを表すハイパーパラメータであり、最終計算は、主成分に関する更新された推定値が単位ベクトル(すなわち長さ1のベクトル)になるように実行される。
【0072】
いくつかの実装形態において、システムは、ステップ134において効用関数に関する値を実際には計算せず、むしろ効用関数の勾配を計算するだけである。すなわち、主成分に関する推定値を更新するために効用関数の勾配のみが使用されるので、システムは、効用関数自体に関する値を計算しないことによって、計算リソースを節約し、効率を高めることができる。
【0073】
システムは、特定の主成分に関する最終推定値を決定するまでステップ134を繰り返すことができる。
【0074】
いくつかの実装形態において、システムは、ステップ134の所定の回数の反復を実行する。例えば、システムは、i番目の主成分に対してステップ134のti回の反復を実行することを決定することができ、ここで、
【0075】
【数12】
【0076】
であり、ここで、
【0077】
【数13】
【0078】
は、ステップ132において取得される特定の主成分に関する初期推定値であり、ρiは、許容誤差を表すハイパーパラメータであり、
【0079】
【数14】
【0080】
は、特定の主成分に関する初期推定値において評価された効用関数uiの勾配である。上記で説明したように、特定の主成分に対応するエージェントの目標は、効用関数を最大化するために特定の主成分に関する推定値を調整することであり、いくつかの実装形態において、この効用関数は、正弦波の形状をとることができる。エージェントが、たまたま正弦波の「底」(「谷」)の近くで特定の主成分に関する推定値を初期化した場合、推定された主成分を更新するための初期勾配
【0081】
【数15】
【0082】
は、比較的小さく、したがって、勾配上昇は、正弦波の底から登っていく進行を遅くする場合があり、したがって、より多くの反復を必要とする。言い換えれば、初期勾配
【0083】
【数16】
【0084】
が小さいほど、正弦波の底から登っていくためにより多くの反復が必要とされる場合がある。
【0085】
いくつかの他の実装形態において、システムは、所定の時間の間、ステップ134を反復的に実行する。いくつかの他の実装形態において、システムは、特定の主成分に関する推定値に対する更新の大きさが所定のしきい値を下回るまで、ステップ134を実行する。
【0086】
プロセス130のそれぞれの実行を使用してデータセットの上位k個の主成分を決定した後、システムは、記憶またはさらなる処理のために、主成分を外部システムに提供することができる。データセットの主成分を使用するための例示的な技法について、図3を参照して以下に説明する。
【0087】
図2Aは、データセットの主成分を並列して決定するための例示的な主成分分析システム200の図である。主成分分析システム200は、以下に説明するシステム、構成要素、および技法が実装され得る、1つまたは複数の場所における1つまたは複数のコンピュータ上のコンピュータプログラムとして実装されたシステムの一例である。
【0088】
主成分分析システム200は、データセットの上位k個の主成分を決定するように構成され、ここでk≧1である。データセットは、次元数nを有し、ここでn≧kである。
【0089】
主成分分析システム200は、他の主成分に関する現在の推定値222a~kを使用して(特に、特定の主成分の親主成分に関する現在の推定値222a~kを使用して)、各特定の主成分に関する現在の推定値222a~kを反復的に更新することによって、データセットの上位k個の主成分を並列して決定するように構成される。
【0090】
図1Aを参照して上記で説明したように、主成分分析システム200は、主成分分析をマルチエージェント対話としてモデル化することによって、データセットの上位k個の主成分を決定する。マルチエージェント対話は、k個のエージェントを含み、各エージェントは、それぞれの主成分に対応する。マルチエージェント対話における各エージェントは、対応する主成分の推定値222a~kを選択することによってアクションを起こし、エージェントに真の対応する主成分を選択するように動機付けするアクションに対する報酬を受信する。
【0091】
特に、主成分分析システム200は、(i)エージェントのアクションによって特定される対応する主成分の推定値222a~kおよび(ii)マルチエージェント対話における対応する他のエージェントのそれぞれのアクションによって特定される親主成分に関する推定値222a~kの関数である、各エージェントのための効用関数を定義する。各エージェントのそれぞれの効用関数は、(i)(対応する他のエージェントのアクションによって特定される)親主成分に関する推定値222a~kと直交し、(ii)(親主成分に関する推定値222a~kが与えられた場合に利用可能な方向の中で)データセットにおける最大分散の方向を特定する、推定主成分222a~kを特定するエージェントによるアクションに報酬を与えることができる。例示的な効用関数について、図2Bを参照して以下でより詳細に論じる。
【0092】
主成分分析システム200は、データストア210と、分配エンジン230と、k個のエージェントエンジン220a~kとを含む。以下に説明するように、k個のエージェントエンジン220a~kは、並列に動作するように構成され得る。
【0093】
各エージェントエンジン220a~kは、主成分分析システム200によって定義されるマルチエージェント対話における対応するエージェントに関するアクションを選択することによって、データセットのそれぞれの主成分に関する推定値222a~kを決定するように構成される。すなわち、第1のエージェントエンジン220aは、データセットの第1の主成分に関する推定値222aを決定するように構成され、第2のエージェントエンジン220bは、データセットの第2の主成分に関する推定値222bを決定するように構成される、などである。
【0094】
特に、エージェントエンジン220a~kは、主成分分析システム200の複数の反復にわたって対応する主成分の推定値222a~kを反復的に更新するように各々構成される。
【0095】
データストア210は、データセットを記憶し、主成分分析システム200の各反復において、データセットの新しいバッチ212をエージェントエンジン220a~kに提供するように構成される。本明細書において、データセットのデータバッチは、データセットの要素の任意の(適切な)サブセットである。
【0096】
分配エンジン230は、データセットの主成分の現在の推定値222a~kを維持し、現在の推定値222a~kをエージェントエンジン220a~kに分配するように構成される。すなわち、主成分分析システム200の各反復において、分配エンジン230は、(i)主成分に関する最新の更新された推定値222a~kを取得し、(ii)最新の更新された推定値222a~kを必要なエージェントエンジン220a~kに分配する。特に、各反復において、特定の主成分の各推定値222a~kについて、分配エンジン230は、特定の主成分の子主成分に対応する各エージェントエンジン220a~kに推定値222a~kを分配する。
【0097】
主成分分析システム200の各反復において、各エージェントエンジン220a~kは、データストア210から新しいデータバッチ212を取得し、エージェントエンジン220a~kに対応する主成分の親主成分に関する現在の推定値222a~kを取得するように構成される。次いで、エージェントエンジン220a~kは、取得されたデータバッチ212と親主成分推定値222a~kとを使用して、それらのそれぞれの主成分の推定値222a~kを更新し、更新された推定値222a~kを分配エンジンに戻す。
【0098】
第1の主成分は、親主成分を有さないので、第1のエージェントエンジン220aは、第1の主成分の更新された推定値222aを生成するために、以下でより詳細に説明するように、データバッチ212のみを処理する。特に、第1のエージェントエンジン220aは、第1の主成分に対応するマルチエージェント対話におけるエージェントの効用関数を最大化するためにデータバッチ212を処理し、第1の主成分の更新推定値222aを表すアクションを選択する。
【0099】
いくつかの実装形態において、以下でより詳細に説明するように、第1のエージェントエンジン220aは、第1の主成分の推定値222aに対する複数の更新を(例えば連続的に)決定し、第1の主成分の更新された推定値222aを生成するために複数の更新を組み合わせる。例えば、第1のエージェントエンジン220aは、バッチ212をm個のサブバッチに分割し、ここでm>1であり、各サブバッチを使用して第1の主成分の推定値222aに対するそれぞれの更新を決定することができる。いくつかのそのような実装形態において、第1のエージェントエンジン220aは、それぞれの異なるデバイスを使用して複数の更新の各々を決定し、すなわち、第1のエージェントエンジン220aは、第1の主成分の推定値222aに対するそれぞれの更新を決定するように各々が構成された複数の異なるデバイス上に実装され得る。
【0100】
第2のエージェントエンジンは、第2の主成分の更新された推定値222bを生成するために、以下でより詳細に説明するように、データバッチ212と第1の主成分に関する推定値222aとを処理する。特に、(第1の主成分の推定値222aによって表される)第1の主成分に対応するエージェントのアクションが与えられると、第2のエージェントエンジン220bは、第2の主成分に対応するマルチエージェント対話におけるエージェントの効用関数を最大化するためにデータバッチ212を処理し、第2の主成分の更新された推定値222bを表すアクションを選択する。
【0101】
第1のエージェントエンジン220aと同様に、いくつかの実装形態において、第2のエージェントエンジン220bは、(例えばそれぞれの異なるデバイスを使用して)第2の主成分の推定値222bに対する複数の更新を決定し、第2の主成分の更新された推定値222bを生成するために複数の更新を組み合わせる。
【0102】
各エージェントエンジン220a~kは、k番目のエージェントエンジン220kまで、上記で説明したように、対応する主成分の更新された推定値222a~kを生成し、k番目のエージェントエンジン220kは、k番目の主成分の推定値222kを更新するために、データバッチ212と、最初のk-1個の主成分の推定値222aから222(k-1)とを処理する。
【0103】
いくつかの実装形態において、エージェントエンジン220a~kは、主成分分析システムの各反復において、更新された推定値222a~kをそれぞれの主成分にブロードキャストしない。例えば、エージェントエンジン220a~kは、推定値222a~kに対するn回の更新ごとにのみ、現在の推定値222a~kをブロードキャストすることができ、ここでn≧1である。すなわち、各特定の主成分に関するエージェントエンジン220a~kは、特定の主成分の親主成分に関する同じ推定値222a~kを使用して複数の異なるバッチ212を処理することができ、特定の主成分の最新の推定値222a~kを分配エンジン230に提供する前に、特定の主成分に対する複数のそれぞれの更新を決定する。
【0104】
いくつかの実装形態において、主成分分析システム200は、分配エンジン230を含まず、代わりにエージェントエンジン220a~kが、それぞれの主成分の推定値222a~kを互いに直接ブロードキャストする。
【0105】
いくつかの他の実装形態において、データストア210および分配エンジン230の動作は、主成分分析システム200の同じ構成要素によって実行され得る。例えば、データストア210は、主成分の現在の推定値222a~kを記憶し、現在の推定値222a~kをエージェントエンジン220a~kに提供することもできる。
【0106】
データセットの上位k個の主成分の最終推定値222a~kを決定した後、主成分分析システム200は、記憶またはさらなる処理のために主成分を外部システムに提供することができる。データセットの主成分を使用するための例示的な技法について、図3を参照して以下に説明する。
【0107】
いくつかの実装形態において、各エージェントエンジン220a~kは、複数の通信可能に結合されたデバイスのシステム内のそれぞれの異なるデバイス(または上記で説明したように、複数の異なるデバイス)上に実装される。複数の処理デバイスは、並列に(すなわち、同時に)動作するように構成され得る。例えば、各エージェントエンジン220a~kは、1つまたは複数のそれぞれの並列処理デバイス、例えばGPU上に実装され得る。いくつかの他の実装形態において、エージェントエンジン220a~kのうちの1つまたは複数は、同じデバイス上に実装される。
【0108】
並列処理デバイスは、複数の処理コアを含み得、これらの複数の処理コア自体が(シングルコア)処理デバイスであるとみなされ得る。いくつかの実装形態において、各エージェントエンジン220a~kは、複数の処理コアのうちのそれぞれ1つによって実装され、ここで、複数の処理コアは、単一の並列処理デバイス、例えばGPUによって提供されるか、または複数の並列処理デバイスによって集合的に提供される。他の実装形態において、エージェントエンジン220a~kは、各々が複数のエージェントエンジン220a~kを含むグループに分割され、エージェントエンジンの各グループは、複数の処理コアのうちのそれぞれ1つによって実装される。
【0109】
これらすべての場合において、複数の処理デバイス(複数のCPU、GPU、もしくはTPU、または単一のマルチコア処理デバイスによって提供されるか、もしくは複数のマルチコア処理デバイスによって集合的に提供される複数のコアであり得る)は、主成分vに関する連続推定値222a~kを生成し、特に主成分vに関する最終推定値を生成するために、主成分vのうちの対応するものに対して並列に動作する。特定の例として、主成分分析システム200は、それぞれの異なる処理デバイス上で1つまたは複数のエージェントエンジン220a~kのセットを実行することができる(例えば、各デバイスは、1個、2個、5個、10個、または100個のエージェントエンジン220a~kを実行することができる)。
【0110】
いくつかの実装形態において、上記で説明したエージェントエンジン220a~kによって実行される動作は、主成分分析システム200の同じ構成要素によって、例えば単一のエージェントエンジンによって実行される。すなわち、いくつかの実装形態において、主成分分析システム200は、上位k個の主成分の各々に関する推定値222a~kを決定する(例えば、単一のデバイス上に実装される)単一のエージェントエンジンを含む。
【0111】
図2Bは、データセットの主成分を並列に決定するための例示的なプロセス240のフロー図である。便宜上、プロセス240について、1つまたは複数の場所において配置された1つまたは複数のコンピュータのシステムによって実行されるものとして説明する。例えば、本明細書に従って適切にプログラムされた主成分分析システム、例えば図2Aに示す主成分分析システム200は、プロセス240を実行することができる。
【0112】
システムは、データセットの上位k個の各主成分において、以下に説明するプロセス240を並列に実行することができる。以下の説明において、システムについて、特定の主成分を決定するためにプロセス240を実行するものとして説明する。
【0113】
システムは、特定の主成分に関する推定値を更新するために、複数の反復の各々においてステップ242および244を実行することができる。
【0114】
システムは、(i)データセットからの新しいデータバッチと、(ii)特定の主成分に対する親主成分に関する現在の推定値と、(iii)特定の主成分に関する現在の推定値とを取得する(ステップ242)。親主成分に関する現在の推定値は、プロセス240の同時実行中に決定されている可能性がある。
【0115】
特定の主成分に対するプロセス240の第1の反復において、システムは、特定の主成分および親主成分に関する任意の適切な初期推定値を決定することができる。例えば、システムは、各主成分に関する初期推定値をランダムに選択することができ、例えば、データセットと同じ次元数を有するテンソルを均一にランダムにサンプリングする。別の例として、システムは、各々の新しくサンプリングされた初期推定値が親主成分の以前にサンプリングされた初期推定値と直交するように、各主成分に関する初期推定値を順番に順次サンプリングすることができる。
【0116】
システムは、特定の主成分に関する推定値を更新するために、効用関数に従って、データバッチと、親主成分に関する現在の推定値と、特定の主成分に関する現在の推定値とを処理する(ステップ244)。
【0117】
システムは、特定の主成分の決定をマルチエージェント対話としてモデル化し、特定のエージェントは、特定の主成分に関する推定値を特定するアクションを実行し、マルチエージェント対話におけるそれぞれの他のエージェントは、特定の主成分に対する親主成分に関する現在の推定値を特定するアクションを実行する。システムは、特定の主成分の推定値を更新するために、特定のエージェントの選択されたアクションを更新することができる。
【0118】
図1Bを参照して上記で説明したように、効用関数は、特定のエージェントに対する報酬を定義し、より高い報酬は、特定のエージェントによって選択されたアクションが特定の主成分に関する真の値により近い特定の主成分に関する推定値を特定することを示す。特に、効用関数は、(i)データバッチ内のより多くの分散を捕捉する特定の主成分に関する推定値を選択することについて特定のエージェントに報酬を与える1つもしくは複数の第1の項、または(ii)特定の主成分の親主成分に関する現在の推定値と直交しない特定の主成分に関する推定値を選択することについて特定のエージェントに罰を与える1つもしくは複数の第2の項のうちの1つまたは複数を含むことができる。
【0119】
特定の例として、i番目の主成分に関する効用関数uiは、
【0120】
【数17】
【0121】
に等しいかまたは比例し得、ここで、Xは、データセットのデータバッチであり、
【0122】
【数18】
【0123】
は、特定の主成分に関する現在の推定値であり、
【0124】
【数19】
【0125】
は、それぞれの親主成分に関する現在の推定値である。
【0126】
特定の主成分に関する現在の推定値に対する更新を決定するために、システムは、効用関数の勾配または推定勾配を決定することができる。例えば、システムは、図1Bを参照して上記で説明したのと同じ勾配を決定することができる。
【0127】
別の例として、システムは、効用関数の勾配の近似を使用することができる。真の勾配の代わりに勾配の近似を使用することは、主成分が並列に決定される場合、システムの効率を改善することができ、および/または特定の主成分の推定値に対する更新からバイアスを除去することができる。特に、主成分の推定値に対する並列更新は、親主成分に関する真の値の代わりに、それらのそれぞれの親主成分に関する推定値に依存するので、いくつかの実装形態において、並列更新を決定するときに真の勾配を使用することは、主成分の推定値をそれらのそれぞれの真の値に収束させない、またはそれらのそれぞれの真の値にゆっくりと収束させる可能性があるバイアスを導入する可能性がある。したがって、システムは、特定の主成分に関する推定値に関する効用関数の導関数に必ずしも等しくはないが、その更新にバイアスを導入しない、効用関数の近似勾配を使用することができる。したがって、近似勾配を使用することは、システムがデータセットの主成分を並列に決定することを可能にし、システムの効率を大幅に改善する。言い換えれば、近似勾配は、システムがここで説明する技法を並列処理ハードウェア上で実行することを可能にすることができる。
【0128】
特定の例として、システムは、以下の近似勾配を計算することができる。
【0129】
【数20】
【0130】
括弧内の左側の項は、ときには「報酬推定値」と呼ばれ、右側の項は、ときには「結合罰推定値」と呼ばれ、ここで合計における各項は、それぞれの親主成分に対応する「罰推定値」である。
【0131】
効用関数の近似勾配は、特定の主成分に関する現在の推定値がその方向において更新された場合、効用関数の値が最も増加する(すなわち、特定のエージェントに対する報酬が最も増加する)方向の近似を表す。したがって、次いでシステムは、効用関数の近似勾配を使用して、特定の主成分に関する現在の推定値を更新することができる。例えば、システムは、
【0132】
【数21】
【0133】
を計算することができ、ここで、
【0134】
【数22】
【0135】
は、効用関数の近似勾配であり、ηtは、ステップサイズを表すハイパーパラメータであり、最終計算は、主成分に関する更新された推定値が単位ベクトル(すなわち長さ1のベクトル)になるように実行される。
【0136】
いくつかの実装形態において、ハイパーパラメータηtは、プロセス240の反復tに依存する。すなわち、ステップ244の異なる実行は、ηtについて異なる値を使用することができる。例えば、ηtの値は、後のステップ244の実行がより小さいステップサイズを使用するように、反復にわたって減衰することができる。特定の例として、
【0137】
【数23】
【0138】
である。
【0139】
いくつかの実装形態において、ステップ244の各実行において、システムは、特定の主成分の現在の推定値に対する複数の異なる更新を決定する。例えば、システムは、データバッチからの複数の異なるミニバッチを生成し(例えば、各ミニバッチがデータバッチの要素の異なる(適切な)サブセットを含む)、各ミニバッチを使用してそれぞれの異なる更新を決定することができる。次いで、システムは、最終更新を生成するために複数の異なる更新を組み合わせ、最終更新を使用して特定の主成分に関する更新推定値を生成することができる。
【0140】
すなわち、システムは、例えば上記で定義した近似勾配を使用して、M個の異なる更新
【0141】
【数24】
【0142】
を決定することができ、ここで、Mは、正の整数(M>1)であり、mは、m=1、...、Mの値をとる整数変数である。次いで、システムは、
【0143】
【数25】
【0144】
を計算することによって、M個の更新を結合することができる。
【0145】
いくつかの実装形態において、システムは、複数の異なる更新の生成をそれぞれの異なるデバイスに分散し、システムの効率を改善することができる。すなわち、システムの異なるデバイスは、特定の主成分に関する推定値に対するそれぞれの更新を生成するために、それぞれのミニバッチを処理することができる。
【0146】
上記で説明したように、いくつかの実装形態において、システムは、ステップ244において効用関数に関する値を実際には計算せず、むしろ効用関数の勾配または近似勾配を計算するだけである。
【0147】
システムは、特定の主成分に関する最終推定値を決定するまで、ステップ242および244を繰り返すことができる。
【0148】
いくつかの実装形態において、システムは、ステップ134の所定の回数の反復を実行する。例えば、システムは、例えば、システムがデータセットの各要素を特定の回数処理するように、データセットのサイズに基づいて反復回数を決定することができる。いくつかの他の実装形態において、システムは、所定の時間の間、ステップ242および244を反復的に実行する。いくつかの他の実装形態において、システムは、特定の主成分に関する推定値に対する更新の大きさが所定のしきい値を下回るまで、ステップ242および244を実行する。
【0149】
プロセス240のそれぞれの並列実行を使用してデータセットの上位k個の主成分を決定した後、システムは、記憶またはさらなる処理のために主成分を外部システムに提供することができる。データセットの主成分を使用するための例示的な技法について、図3を参照して以下に説明する。
【0150】
図3は、主成分分析システム320を含む例示的なシステム300の図である。システム300は、以下に説明するシステム、構成要素、および技法が実装され得る、1つまたは複数の場所における1つまたは複数のコンピュータ上のコンピュータプログラムとして実装されたシステムの一例である。
【0151】
システムは、データストア310と、主成分分析システム320と、機械学習システム330とを含む。
【0152】
データストア310は、次元数nを有するデータセット312を維持するように構成される。データセット312は、任意の適切なタイプを有するデータオブジェクトを含むことができる。例えば、データセット312の要素は、テキストデータ、画像データ(例えば、カメラ、例えばスチルカメラによって収集された1つまたは複数の画像)、オーディオデータ(例えば、マイクロフォンによって収集された、例えば1つまたは複数の音声信号)、または実際に任意のタイプのセンサデータを表すことができる。
【0153】
主成分分析システム320は、データセット312の上位k個の主成分を決定するように構成され、k<nである。いくつかの実装形態において、主成分分析システム320は、上位k個の主成分を順次決定し、例えば、主成分分析システム320は、図1Aを参照して上記で説明した主成分分析システム100と同様に構成され得る。いくつかの他の実装形態において、主成分分析システム320は、上位k個の主成分を並列に決定し、例えば、主成分分析システム320は、図2Aを参照して上記で説明した主成分分析システム200と同様に構成され得る。
【0154】
データセット312の主成分を生成した後、主成分分析システム320は、データセット312の次元数を削減するために主成分を使用することができる。すなわち、データセット312の各要素について、主成分分析システム320は、上位k個の主成分によって定義される座標空間に要素を投影することができ、すなわち、次元数nから次元数kに要素を投影することができる。したがって、システムは、データセット312の各要素について、その要素の投影バージョンを含む縮小セット322を生成することができる。
【0155】
次いで、主成分分析システム320は、縮小データセット322を記憶のためにデータストア310に提供することができる。いくつかの実装形態において、データストア310は、データセット312の代わりに縮小データセット322を維持し、すなわち、データストア312は、縮小データセット322の生成後にデータセット312を削除する。したがって、縮小データセット322は、約
【0156】
【数26】
【0157】
のサイズを有するので、データストア310は、データセット312を縮小データセット322で置き換えることによって計算リソースとメモリリソースとを節約することができる。したがって、主成分分析システム320(例えば、主成分分析システム100または主成分分析システム200の形態における)は、データセット312から直接有用なデータ(例えば、データセット312の少なくともいくつかの画像内に存在するオブジェクト、またはデータセット312の画像のうちのいくつかにおいて存在するが、他の画像内に存在しないオブジェクトを示す主成分)を取得するために使用され得る。
【0158】
縮小データセット322をデータストア310に提供する代わりに、またはそれに加えて、主成分分析システム320は、縮小データセット322を、縮小データセット322を使用して機械学習を実行するように構成された機械学習システム330に提供することができる。
【0159】
例えば、機械学習システム330は、データセット312の全次元要素を直接クラスタ化する代わりに、投影された要素をクラスタ化するために、クラスタ化機械学習モデル(例えばk最近傍法)を使用して、縮小データセット322の投影された要素を処理することができる。したがって、システムは、クラスタ化処理の時間および計算効率を大幅に改善することができる。クラスタ化機械学習モデルは、一旦トレーニングされると、1つもしくは複数の画像、1つもしくは複数のオーディオ信号、またはセンサデータの任意の他の項目などのデータセット(例えば新たに生成されたまたは受信されたデータセット)を分類するために使用され得る。分類は、クラスタ化機械学習モデルから取得される複数のクラスタと、それぞれのクラスタに対応する複数の分類とに基づく。分類は、データセット内の上位k個の主成分のそれぞれの大きさを決定し、次いでクラスのうちの1つに対応するクラスタのうちの1つを決定することによって進められ得る。
【0160】
別の例として、システムは、機械学習モデルをトレーニングするために縮小データセット322を使用することができる。主成分は、データセット312内の最大の分散の方向を表すので、データセット312の要素を主成分によって定義された座標空間に投影し、投影された要素を使用して機械学習モデルをトレーニングすることによって、機械学習システム330は、トレーニングのメモリ効率および計算効率を改善しながら、投影された要素を最大限に区別することができる。すなわち、投影された要素は、より小さい次元数を有する(場合によっては、例えば次元の数の1%、5%、または10%と、はるかに小さい)ので、機械学習モデルが要素間の違いを学習することを依然として可能にしながら、トレーニングの効率は、改善する。場合によっては、データポイントを投影することは、機械学習モデルがデータセット312に過剰適合するのをさらに防止することができる。
【0161】
システムは、任意の適切なタイプの機械学習モデルをトレーニングするために縮小データセット322を使用することができる。例えば、システムは、ニューラルネットワーク、線形回帰モデル、ロジスティック回帰モデル、サポートベクターマシン、またはランダムフォレストモデルのうちの1つまたは複数をトレーニングするために縮小データセット322を使用することができる。トレーニングされた機械学習モデルは、例えば、画像、オーディオ信号、センサデータの他の項目などのデータセット(例えば新たに生成されたまたは受信されたデータセット)を分類するために使用され得る。分類は、データセット内の上位k個の主成分のそれぞれの大きさを決定し、それらの大きさを特徴付けるデータをトレーニングされた機械学習モデルに入力し、次いで機械学習モデルの出力に基づいてデータセットの分類を決定することによって進められ得る。
【0162】
図4は、データセットの上位k個の主成分を決定するための例示的なプロセス400のフロー図である。便宜上、プロセス400について、1つまたは複数の場所において配置された1つまたは複数のコンピュータのシステムによって実行されるものとして説明する。例えば、本明細書に従って適切にプログラムされた主成分分析システム、例えば図1Aを参照して上記で説明した主成分分析システム100、または図2Aを参照して上記で説明した主成分分析システム200は、プロセス400を実行することができる。
【0163】
システムは、データセットXの主成分vに関する初期推定値を取得する(ステップ402)。
【0164】
システムは、各々のそれぞれの主成分に関する現在の推定値を更新するために、例えば、主成分にわたって順次にまたは並列に、上位k個の主成分の各々に対してステップ404、406、408、および410を実行することができる。各主成分について、システムは、主成分に関する最終推定値を生成するために、ステップ404、406、408、および410を反復的に実行することができる。以下の説明は、特定の主成分viに関する現在の推定値を更新することを指す。
【0165】
システムは、データセットXと特定の主成分viの現在の推定値
【0166】
【数27】
【0167】
とを使用して、報酬推定値を生成する(ステップ404)。報酬推定値は、特定の主成分viの現在の推定値
【0168】
【数28】
【0169】
がデータセットX内のより多くの分散を捕捉する場合、報酬推定値は、より大きくなる。
【0170】
システムは、特定の主成分viの各親主成分vjについて、それぞれの罰推定値を生成する(ステップ406)。特定の主成分viの現在の推定値
【0171】
【数29】
【0172】
と、親主成分vjの現在の推定値
【0173】
【数30】
【0174】
とが直交しない場合、罰推定値は、より大きくなる。
【0175】
システムは、各親主成分vjのそれぞれの罰推定値を結合することによって、特定の主成分viに関する結合罰推定値を生成する(ステップ408)。
【0176】
システムは、報酬推定値と結合罰推定値との間の差に従って、特定の主成分viの現在の推定値
【0177】
【数31】
【0178】
に対する更新を生成する(ステップ410)。
【0179】
図5は、データセットの主成分を決定するそれぞれの異なる主成分分析システムの性能の図である。
【0180】
図5は、(i)データセットの上位k個の主成分を並列に決定するために本明細書で説明する技法を使用する「μ-EG」とラベル付けされた第1の主成分分析システム、(ii)データセットの上位k個の主成分を順次決定するために本明細書で説明する技法を使用する「α-EG」とラベル付けされた第2の主成分分析システム、(iii)データセットの上位k個の主成分を決定するために既存の技法を使用する「Ojas」とラベル付けされた第3の主成分分析システム、(iv)データセットの上位k個の主成分を決定するために既存の技法を使用する「GHA」とラベル付けされた第4の主成分分析システム、および(v)データセットの上位k個の主成分を決定するために既存の技法を使用する「Krasulinas」とラベル付けされた第5の主成分分析システムの5つの異なる主成分分析システムの性能を示す。
【0181】
図5は、5つの主成分分析システムに関するそれぞれの異なる性能測定基準を表す2つのグラフ510および520を示す。
【0182】
第1のグラフ510は、各主成分分析システムについて、それぞれの主成分分析システムの実行中の複数の反復の各々における「最長の正しい固有値ストリーク」を表す。特定の主成分分析システムに関する特定の反復における「最長の正しい固有値ストリーク」は、データセットの共分散行列のグラウンドトゥルース固有ベクトルの角度しきい値以内まで主成分の順に推定された、(それぞれの推定された主成分に対応する)データセットの共分散行列の推定固有ベクトルの数を特定する。すなわち、特定の反復において、特定の主成分分析システムは、k個の推定主成分のセットを生成し、s≦kとしてsの「最長の正しい固有値ストリーク」は、最初のs個の推定主成分(すなわち、主成分1からs)が角度しきい値(例えばπ/s)以内まで正しい固有ベクトルに対応することを示す。
【0183】
第1のグラフ510によって示されているように、反復の大部分において最高の「最長の正しい固有値ストリーク」を有する主成分分析システムは、「μ-EG」、すなわち、データセットの上位k個の主成分を並列に決定するために本明細書で説明する技法を使用する主成分分析システムである。図2Aおよび図2Bを参照して上記で説明したように、μ-EG主成分分析システムは、データセットのそれぞれの主成分に対応する複数のエージェントを含むことができ、各エージェントは、他のエージェントによって生成されたそれぞれの現在の推定主成分を使用して、対応する主成分に関する推定値を反復的に更新する。したがって、μ-EG主成分分析システムは、比較的初期の反復においても、上位k個の主成分に関する正確な推定値を生成することができる。
【0184】
第2のグラフ520は、各主成分分析システムについて、それぞれの主成分分析システムの実行中の複数の反復の各々における「部分空間距離(subspace distance)」を表す。特定の主成分分析システムに関する特定の反復における「部分空間距離」は、正規化された部分空間距離を使用して、(それぞれの推定主成分に対応する)データセットの共分散行列の推定固有ベクトルがデータセットの上位k個の部分空間をどれだけよく捕捉しているかを特定する。すなわち、特定の反復において、特定の主成分分析システムは、k個の推定主成分のセットを生成し、短い「部分空間距離」は、推定主成分に対応する推定固有ベクトルが、データセットのグラウンドトゥルース上位k部分空間により近い部分空間を定義することを示す。言い換えれば、より短い「部分空間距離」は、推定主成分がより正確であることを示す。
【0185】
データセットの上位k個の固有ベクトルviの推定値であるk個の推定固有ベクトル
【0186】
【数32】
【0187】
のセットが与えられると、正規化された部分空間距離は、
【0188】
【数33】
【0189】
を計算することによって決定され得、ここで、U*=VVであり、V=[v1,...,vk]であり、
【0190】
【数34】
【0191】
であり、
【0192】
【数35】
【0193】
であり、Aは、行列Aの共役転置であり、Tr(A)は、行列Aのトレースである。
【0194】
第2のグラフ520によって示されているように、「μ-EG」(すなわち、データセットの上位k個の主成分を並列に決定するために本明細書で説明する技法を使用する主成分分析システム)および「α-EG」(すなわち、データセットの上位k個の主成分を順次決定するために本明細書で説明する技法を使用する主成分分析システム)は、特に「GHA」および「Krasulinas」の主成分分析システムによって使用される既存の技法と比較して、比較的少ない反復後に比較的短い「部分空間距離」を達成する。言い換えれば、本明細書で説明する技法を使用すると、主成分分析システムは、データセットの上位k個の主成分に関する高精度の推定値を迅速に生成することができる。
【0195】
本明細書は、システムおよびコンピュータプログラム構成要素に関連して「構成される」という用語を使用する。1つまたは複数のコンピュータのシステムについて、特定の動作またはアクションを実行するように構成されることは、システムが、動作時にシステムに動作またはアクションを実行させるソフトウェア、ファームウェア、ハードウェア、またはそれらの組合せをインストールされていることを意味する。1つまたは複数のコンピュータプログラムについて、特定の動作またはアクションを実行するように構成されることは、1つまたは複数のプログラムが、データ処理装置によって実行されると、装置に動作またはアクションを実行させる命令を含むことを意味する。
【0196】
本明細書で説明する主題の実施形態および機能動作は、デジタル電子回路において、有形に具体化されたコンピュータソフトウェアもしくはファームウェアにおいて、本明細書で開示する構造とそれらの構造的均等物とを含むコンピュータハードウェアにおいて、またはそれらのうちの1つもしくは複数の組合せにおいて実装され得る。本明細書で説明する主題の実施形態は、1つまたは複数のコンピュータプログラムとして、すなわち、データ処理装置によって実行するため、またはデータ処理装置の動作を制御するために有形の非一時的記憶媒体上に符号化されたコンピュータプログラム命令の1つまたは複数のモジュールとして実装され得る。コンピュータ記憶媒体は、機械可読記憶デバイス、機械可読記憶基板、ランダムもしくはシリアルアクセスメモリデバイス、またはそれらのうちの1つもしくは複数の組合せであり得る。代替的に、またはそれに加えて、プログラム命令は、データ処理装置による実行のために適切な受信機装置に伝送するための情報を符号化するために生成された、人工的に生成された伝播信号、例えば、機械生成された電気信号、光信号、または電磁信号上に符号化され得る。
【0197】
「データ処理装置」という用語は、データ処理ハードウェアを指し、例として、プログラム可能プロセッサ、コンピュータ、または複数のプロセッサもしくはコンピュータを含む、データを処理するためのすべての種類の装置、デバイス、および機械を包含する。装置はまた、専用論理回路、例えば、FPGA(フィールドプログラマブルゲートアレイ)またはASIC(特定用途向け集積回路)であり得、またはそれらをさらに含むことができる。装置は、ハードウェアに加えて、コンピュータプログラムのための実行環境を作成するコード、例えば、プロセッサファームウェア、プロトコルスタック、データベース管理システム、オペレーティングシステム、またはそれらのうちの1つもしくは複数の組合せを構成するコードをオプションで含むことができる。
【0198】
プログラム、ソフトウェア、ソフトウェアアプリケーション、アプリ、モジュール、ソフトウェアモジュール、スクリプト、またはコードとも呼ばれるまたは記述される場合もあるコンピュータプログラムは、コンパイル型言語もしくはインタープリタ型言語、または宣言型言語もしくは手続き型言語を含む、任意の形態のプログラミング言語で書かれ得、スタンドアロンプログラムとして、またはモジュール、構成要素、サブルーチン、もしくはコンピューティング環境において使用するのに適した他のユニットとして、を含む、任意の形態で展開され得る。プログラムは、必要ではないが、ファイルシステム内のファイルに対応し得る。プログラムは、他のプログラムまたはデータを保持するファイルの一部、例えば、マークアップ言語文書内に記憶された1つまたは複数のスクリプト内に、対象のプログラム専用の単一のファイル内に、または、複数の協調ファイル、例えば、1つもしくは複数のモジュール、サブプログラム、もしくはコードの一部を記憶するファイル内に記憶され得る。コンピュータプログラムは、1つのコンピュータ上で、または、1つのサイトにおいて配置されもしくは複数のサイトにわたって分散され、データ通信ネットワークによって相互接続された複数のコンピュータ上で実行されるように展開され得る。
【0199】
本明細書では、「データベース」という用語は、データの任意の集合を指すように広く使用され、データは、任意の特定の方法で構成される必要はなく、またはまったく構成される必要はなく、1つまたは複数の場所における記憶デバイス上に記憶され得る。したがって、例えば、インデックスデータベースは、データの複数の集合体を含むことができ、その各々は、異なって編成およびアクセスされ得る。
【0200】
同様に、本明細書では、「エンジン」という用語は、1つもしくは複数の特定の機能を実行するようにプログラムされたソフトウェアベースのシステム、サブシステム、または、プロセスを指すように広く使用される。一般に、エンジンは、1つまたは複数の場所における1つまたは複数のコンピュータ上にインストールされた1つまたは複数のソフトウェアモジュールまたは構成要素として実装される。場合によっては、1つまたは複数のコンピュータが、特定のエンジン専用にされ、他の場合では、複数のエンジンが、同じコンピュータ上にインストールされ、実行され得る。
【0201】
本明細書に記載のプロセスおよび論理フローは、入力データに対して動作し、出力を生成することによって機能を実行するために1つまたは複数のコンピュータプログラムを実行する1つまたは複数のプログラム可能コンピュータによって実行され得る。プロセスおよび論理フローは、専用論理回路、例えば、FPGAもしくはASICによって、または、専用論理回路および1つもしくは複数のプログラムされたコンピュータの組合せによっても実行され得る。
【0202】
コンピュータプログラムの実行に適したコンピュータは、汎用マイクロプロセッサもしくは専用マイクロプロセッサもしくはその両方、または任意の他の種類の中央処理装置に基づくことができる。一般に、中央処理装置は、読み出し専用メモリまたはランダムアクセスメモリまたはその両方から命令およびデータを受信する。コンピュータの必須要素は、命令を実行または遂行するための中央処理装置と、命令およびデータを記憶するための1つまたは複数のメモリデバイスとである。中央処理装置およびメモリは、専用論理回路によって補完されるか、または専用論理回路内に組み込まれ得る。一般に、コンピュータは、データを記憶するための1つまたは複数の大容量記憶デバイス、例えば、磁気ディスク、光磁気ディスク、または光ディスクも含むか、または、それらからデータを受信する、もしくはそれらにデータを送信する、もしくはその両方のために動作可能に結合される。しかしながら、コンピュータは、そのようなデバイスを有する必要はない。さらに、コンピュータは、別のデバイス、例えば、少しだけ例を挙げると、携帯電話、携帯情報端末(PDA)、モバイルオーディオもしくはビデオプレーヤ、ゲームコンソール、全地球測位システム(GPS)レシーバ、または携帯型記憶デバイス、例えば、ユニバーサルシリアルバス(USB)フラッシュドライブ内に組み込まれ得る。
【0203】
コンピュータプログラム命令およびデータを記憶するのに適したコンピュータ可読媒体は、例として、半導体メモリデバイス、例えば、EPROM、EEPROM、およびフラッシュメモリデバイス、磁気ディスク、例えば、内部ハードディスクまたはリムーバブルディスク、光磁気ディスク、ならびにCD ROMおよびDVD-ROMディスクを含む、すべての形態の不揮発性メモリ、媒体、およびメモリデバイスを含む。
【0204】
ユーザとの対話を提供するために、本明細書に記載の主題の実施形態は、情報をユーザに表示するためのディスプレイデバイス、例えば、CRT(陰極線管)またはLCD(液晶ディスプレイ)モニタと、ユーザがコンピュータに入力を提供することができるキーボードおよびポインティングデバイス、例えば、マウスまたはトラックボールとを有するコンピュータ上で実装され得る。ユーザとの対話を提供するために、他の種類のデバイスが同様に使用され得、例えば、ユーザに提供されるフィードバックは、任意の形態の感覚的フィードバック、例えば、視覚的フィードバック、聴覚的フィードバック、または触覚的フィードバックであり得、ユーザからの入力は、音響入力、音声入力、または触覚入力を含む任意の形態で受信され得る。加えて、コンピュータは、ユーザによって使用されるデバイスに文書を送信し、そこから文書を受信することによって、例えば、ユーザのデバイス上のウェブブラウザから受信した要求に応答してウェブブラウザにウェブページを送信することによって、ユーザと対話することができる。また、コンピュータは、パーソナルデバイス、例えば、メッセージングアプリケーションを実行しているスマートフォンにテキストメッセージまたは他の形態のメッセージを送信し、引き換えにユーザから応答メッセージを受信することによってユーザと対話することができる。
【0205】
機械学習モデルを実施するためのデータ処理装置は、例えば、機械学習の訓練または製作、すなわち、推論、作業負荷の共通部分および計算集約的部分を処理するための専用ハードウェアアクセラレータユニットを含むこともできる。
【0206】
機械学習モデルは、機械学習フレームワーク、例えば、TensorFlowフレームワークを使用して実装および展開され得る。
【0207】
本明細書に記載の主題の実施形態は、バックエンド構成要素を、例えば、データサーバとして含む、または、ミドルウェア構成要素、例えば、アプリケーションサーバを含む、または、フロントエンド構成要素、例えば、グラフィカルユーザインターフェース、ウェブサーバ、もしくは、ユーザが、本明細書に記載の主題の実装形態と対話することができるアプリを有するクライアントコンピュータを含む、または、1つまたは複数のそのようなバックエンド構成要素、ミドルウェア構成要素、またはフロントエンド構成要素の任意の組合せを含むコンピューティングシステムにおいて実装され得る。システムの構成要素は、任意の形態または媒体のデジタルデータ通信、例えば、通信ネットワークによって相互接続され得る。通信ネットワークの例は、ローカルエリアネットワーク(LAN)およびワイドエリアネットワーク(WAN)、例えば、インターネットを含む。
【0208】
コンピューティングシステムは、クライアントとサーバとを含むことができる。クライアントおよびサーバは、一般に、互いに離れており、典型的には、通信ネットワークを介して対話する。クライアントおよびサーバの関係は、それぞれのコンピュータ上で実行され、互いにクライアント-サーバ関係を有するコンピュータプログラムによって生じる。いくつかの実施形態では、サーバは、クライアントとして動作するデバイスと対話するユーザに対してデータを表示し、ユーザからのユーザ入力を受信する目的のために、データ、例えば、HTMLページをユーザデバイスに送信する。ユーザデバイスにおいて生成されたデータ、例えば、ユーザ対話の結果が、デバイスからサーバにおいて受信され得る。
【0209】
実施形態1は、データセットXの複数の主成分vを決定する方法であり、方法は、
複数の主成分vに関する初期推定値を取得するステップと、
各特定の主成分viについて、動作を反復的に実行することによって主成分viに関する最終推定値を生成するステップと
を含み、動作が、
データセットXと特定の主成分viの現在の推定値
【0210】
【数36】
【0211】
とを使用して報酬推定値を生成する動作であって、特定の主成分viの現在の推定値
【0212】
【数37】
【0213】
がデータセットX内のより多くの分散を捕捉する場合、報酬推定値がより大きい、動作と、
特定の主成分viの各親主成分vjについて、それぞれの罰推定値を生成する動作であって、特定の主成分viの現在の推定値
【0214】
【数38】
【0215】
と親主成分vjの現在の推定値
【0216】
【数39】
【0217】
とが直交しない場合、罰推定値がより大きい、動作と、
各親主成分vjのそれぞれの罰推定値を結合することによって、特定の主成分viに関する結合罰推定値を生成する動作と、
報酬推定値と結合罰推定値との間の差に従って、特定の主成分viの現在の推定値
【0218】
【数40】
【0219】
に対する更新を生成する動作と
を含む。
【0220】
実施形態2は、主成分vに関する最終推定値が、主成分の降順において順次生成される、実施形態1の方法である。
【0221】
実施形態3は、各特定の主成分viについて、特定の主成分viの現在の推定値
【0222】
【数41】
【0223】
を更新する反復回数が、
【0224】
【数42】
【0225】
に等しく、
【0226】
【数43】
【0227】
が、特定の主成分viに関する初期推定値であり、uiが、初期推定値
【0228】
【数44】
【0229】
を使用して計算された特定の主成分viに関する効用推定値であり、ρiが、特定の主成分viに関する最終推定値の最大許容誤差である、実施形態2の方法である。
【0230】
実施形態4は、効用推定値uiが、
【0231】
【数45】
【0232】
に等しく、各
【0233】
【数46】
【0234】
が、特定の主成分viのそれぞれの親主成分vjに関する最終推定値である、実施形態3の方法である。
【0235】
実施形態5は、主成分vに関する最終推定値が、主成分vにわたって並列に生成される、実施形態1の方法である。
【0236】
実施形態6は、各特定の主成分viについて、
主成分viに関する最終推定値を生成するための計算が、複数の第1の処理デバイスのそれぞれの第1の処理デバイスに割り当てられ、
特定の主成分viの現在の推定値
【0237】
【数47】
【0238】
が、複数の第1の処理デバイスの各々の他の第1の処理デバイスに一定間隔でブロードキャストされる、
実施形態5の方法である。
【0239】
実施形態7は、方法が、データセットX内の複数のデータ要素のサブセットXtを取得するステップをさらに含み、
データセットXと特定の主成分viの現在の推定値
【0240】
【数48】
【0241】
とを使用して報酬推定値を生成する動作が、サブセットXtと特定の主成分viの現在の推定値
【0242】
【数49】
【0243】
とを使用して報酬推定値を生成する動作を含み、特定の主成分viの現在の推定値
【0244】
【数50】
【0245】
がサブセットXt内のより多くの分散を捕捉する場合、報酬推定値がより大きい、
実施形態5または6のいずれか1つの方法である。
【0246】
実施形態8は、各特定の主成分viについて、報酬推定値が、
【0247】
【数51】
【0248】
または
【0249】
【数52】
【0250】
に比例する、実施形態7の方法である。
【0251】
実施形態9は、各特定の主成分viについて、
各親主成分vjに対応する罰推定値の方向が、親主成分vjの初期推定値
【0252】
【数53】
【0253】
の方向に等しい、
実施形態7または8のいずれか1つの方法である。
【0254】
実施形態10は、各親主成分vjに関する罰推定値が、
【0255】
【数54】
【0256】
に比例する、実施形態9の方法である。
【0257】
実施形態11は、各特定の主成分viについて、各親主成分vjに対応する罰推定値が、
【0258】
【数55】
【0259】
に比例する、実施形態7または8のいずれか1つの方法である。
【0260】
実施形態12は、各特定の主成分viについて、
特定の主成分viに関する結合罰推定値を生成する動作が、各親主成分vjのそれぞれの罰推定値の合計を決定する動作を含む、
実施形態1から11のいずれか1つの方法である。
【0261】
実施形態13は、各特定の主成分viについて、報酬推定値と結合罰推定値との間の差に従って、特定の主成分viの現在の推定値
【0262】
【数56】
【0263】
に対する更新を生成する動作が、
報酬推定値と結合罰推定値との間の差を使用して、特定の主成分viの効用関数の推定勾配
【0264】
【数57】
【0265】
を決定する動作と、
【0266】
【数58】
【0267】
に比例する中間更新
【0268】
【数59】
【0269】
を生成する動作と、
中間更新
【0270】
【数60】
【0271】
を使用して、現在の推定値
【0272】
【数61】
【0273】
に対する更新を生成する動作と
を含む、
実施形態1から12のいずれか1つの方法である。
【0274】
実施形態14は、現在の推定値
【0275】
【数62】
【0276】
に対する更新を生成する動作が、
【0277】
【数63】
【0278】
を計算する動作を含み、ηtが、ステップサイズを表すハイパーパラメータである、
実施形態13の方法である。
【0279】
実施形態15は、
特定の主成分viの現在の推定値
【0280】
【数64】
【0281】
に対する更新を生成する動作が、複数の第2の処理デバイスにわたって並列に、データセットXのそれぞれの異なるサブセットXmを使用して複数の中間更新
【0282】
【数65】
【0283】
を生成する動作をさらに含み、
現在の推定値
【0284】
【数66】
【0285】
に対する更新を生成する動作が、
結合中間更新を生成するために、複数の中間更新
【0286】
【数67】
【0287】
を結合する動作と、
結合中間更新を使用して、現在の推定値
【0288】
【数68】
【0289】
に対する更新を生成する動作と
を含む、
実施形態13の方法である。
【0290】
実施形態16は、報酬推定値と結合罰推定値との間の差を使用して、推定勾配
【0291】
【数69】
【0292】
を決定する動作が、
差を生成するために、報酬推定値から結合罰推定値を減算する動作と、
【0293】
【数70】
【0294】
に比例する係数を差に左乗算する動作と
を含む、実施形態13から15のいずれか1つの方法である。
【0295】
実施形態17は、各特定の主成分viについて、
特定の主成分viの現在の推定値
【0296】
【数71】
【0297】
に対する更新を生成する動作が、現在の推定値を
【0298】
【数72】
【0299】
になるように更新し、正規化
【0300】
【数73】
【0301】
を行う動作を含む、
実施形態1から16のいずれか1つの方法である。
【0302】
実施形態18は、
データセットXの次元数を削減するために、複数の主成分vを使用するステップをさらに含む、
実施形態1から17のいずれか1つの方法である。
【0303】
実施形態19は、
機械学習モデルを使用してデータセットXを処理するために、複数の主成分vを使用するステップをさらに含む、
実施形態1から18のいずれか1つの方法である。
【0304】
実施形態20は、データセットXが、カメラによって収集された画像のセット、またはテキストデータのセットのうちの1つまたは複数を含む、実施形態1から19のいずれか1つの方法である。
【0305】
実施形態21は、1つまたは複数のコンピュータと、1つまたは複数のコンピュータによって実行されると、1つまたは複数のコンピュータに、実施形態1から20のいずれか1つの方法を実行させる命令を記憶する1つまたは複数の記憶デバイスとを備えるシステムである。
【0306】
実施形態22は、主成分vに関する最終推定値を生成するために、主成分vのうちの対応するものに対して並列に動作するように構成された複数の処理デバイスを備える、実施形態5に従属する場合の実施形態21によるシステムである。
【0307】
実施形態23は、1つまたは複数のコンピュータによって実行されると、1つまたは複数のコンピュータに、実施形態1から20のいずれか1つの方法を実行させる命令を記憶する1つまたは複数のコンピュータ記憶媒体である。
【0308】
本明細書は、多くの具体的な実装形態の詳細を含むが、これらは、任意の発明の範囲に対する限定、または特許請求されてもよい範囲に対する限定として解釈されるべきではなく、むしろ特定の発明の特定の実施形態に特有であり得る特徴の説明として解釈されるべきである。本明細書において別々の実施形態の文脈で説明されている特定の特徴は、単一の実施形態において組み合わせても実施され得る。逆に、単一の実施形態の文脈で説明されている様々な特徴は、複数の実施形態において別々に、または任意の適切な部分的組合せにおいても実装され得る。さらに、特徴は、特定の組合せにおいて作用するものとして上記で説明されている場合があり、そのようなものとして当初は特許請求されている場合さえあるが、特許請求された組合せからの1つまたは複数の特徴は、場合によっては組合せから削除され得、特許請求された組合せは、部分的組合せまたは部分的組合せの変形例に向けられ得る。
【0309】
同様に、動作は、特定の順序で図面に描かれ、特許請求の範囲に列挙されているが、これは、所望の結果を達成するために、そのような動作が示された特定の順序もしくはシーケンシャルな順序で実行されること、または示されたすべての動作が実行されることを必要とするものとして理解されるべきではない。特定の状況では、マルチタスキングおよび並列処理が有利な場合がある。さらに、上記で説明した実施形態における様々なシステムモジュールおよび構成要素の分離は、すべての実施形態においてそのような分離を必要とするものとして理解されるべきではなく、説明されたプログラム構成要素およびシステムは、一般に、単一のソフトウェア製品において一緒に統合され得、または複数のソフトウェア製品にパッケージ化され得ることが理解されるべきである。
【0310】
主題の特定の実施形態について説明した。他の実施形態は、添付の特許請求の範囲内にある。例えば、特許請求の範囲内に列挙された行動は、異なる順序で実行され得、依然として所望の結果を達成することができる。一例として、添付の図面において描かれたプロセスは、所望の結果を達成するために、示された特定の順序、またはシーケンシャルな順序を必ずしも必要としない。場合によっては、マルチタスキングおよび並列処理が有利な場合がある。
【符号の説明】
【0311】
100 主成分分析システム
110 データストア
112 データセット
120a~k エージェントエンジン
122a~k 主成分
200 主成分分析システム
210 データストア
212 バッチ、データバッチ
220a~k エージェントエンジン
222a~k 推定値、推定主成分
230 分配エンジン
300 システム
310 データストア
312 データセット
320 主成分分析システム
322 縮小セット、縮小データセット
330 機械学習システム
510 グラフ
520 グラフ
図1A
図1B
図2A
図2B
図3
図4
図5
【国際調査報告】