JP2023524289A - 非公開マルチモーダル人工知能プラットフォームを提供するためのシステムおよび方法 - Google Patents

非公開マルチモーダル人工知能プラットフォームを提供するためのシステムおよび方法 Download PDF

Info

Publication number
JP2023524289A
JP2023524289A JP2022567077A JP2022567077A JP2023524289A JP 2023524289 A JP2023524289 A JP 2023524289A JP 2022567077 A JP2022567077 A JP 2022567077A JP 2022567077 A JP2022567077 A JP 2022567077A JP 2023524289 A JP2023524289 A JP 2023524289A
Authority
JP
Japan
Prior art keywords
client
data
side network
server
network
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2022567077A
Other languages
English (en)
Inventor
ストーム,グレッグ
ガリビ,ガリブ
ダス,リッディマン
Original Assignee
トリプルブラインド,インク.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by トリプルブラインド,インク. filed Critical トリプルブラインド,インク.
Publication of JP2023524289A publication Critical patent/JP2023524289A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/098Distributed learning, e.g. federated learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/048Activation functions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/084Backpropagation, e.g. using gradient descent

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • General Health & Medical Sciences (AREA)
  • General Physics & Mathematics (AREA)
  • Evolutionary Computation (AREA)
  • Computational Linguistics (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Artificial Intelligence (AREA)
  • Neurology (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Image Analysis (AREA)

Abstract

非公開マルチモーダル人工知能プラットフォームを提供するためのシステムおよび方法が開示される。この方法は、ニューラルネットワークを第1のクライアント側ネットワーク、第2のクライアント側ネットワーク、およびサーバ側ネットワークに分割し、第1のクライアント側ネットワークを第1のクライアントに送信することを含む。第1のクライアント側ネットワークは、第1のクライアントからの第1のデータを処理し、第1のデータは第1のタイプを有する。この方法は、第2のクライアント側ネットワークを第2のクライアントに送信することを含む。第2のクライアント側ネットワークは、第2のクライアントからの第2のデータを処理し、第2のデータは第2のタイプを有する。第1のタイプと第2のタイプは、共通の関連付けを有する。クライアント側ネットワークと、異なるクライアント側ネットワークおよびサーバ側ネットワーク上の異なるデータタイプとの間で、順伝播および逆伝播が発生して、ニューラルネットワークをトレーニングする。【選択図】図1

Description

優先権主張
本出願は、2020年5月6日に出願された米国仮出願第63/020,930号(整理番号213-0104P)に対する優先権を主張し、その内容は参照により本明細書に組み込まれる。本出願は、2019年12月13日に出願された米国仮出願第62/948,105号に対する優先権を主張する、2020年3月24日に出願された米国出願第16/828,085号(整理番号213-0100)の一部継続出願であり、その内容は参照により本明細書に組み込まれる。本出願は、2019年12月13日に出願された米国仮出願第62/948,105号に対する優先権を主張する、2020年3月24日に出願された米国出願第16/828,216号(整理番号213-0101)の一部継続出願であり、その内容は参照により本明細書に組み込まれる。本出願は、2021年2月16日に出願された米国出願第17/176,530号(213-0102-CON)の一部継続出願であり、これは2020年3月24日に出願された米国出願第16/828,354号(213-0102)の継続であって、現在はそれが2021年2月16日に発行された米国特許第10,924,460号であり、2019年12月13日に出願された米国仮出願第62/948,105号に対する優先権を主張しており、その内容は参照により本明細書に組み込まれる。本出願は、2020年3月24日に出願された米国出願第16/828,420号(整理番号213-0103)の一部継続出願であり、2019年12月13日に出願された米国仮出願第62/948,105号に対する優先権を主張しており、その内容は参照により本明細書に組み込まれる。
本開示は、概して、ニューラルネットワークのトレーニングに関し、様々なソースからのトレーニングデータが発見可能でないように保護する方法で、ニューラルネットワークまたは他のトレーニング済みモデルをトレーニングおよび展開するための新しい技術を紹介する。
ニューラルネットワークをトレーニングするための既存のアプローチがあり、連合トレーニングアプローチまたは集中型トレーニングアプローチを使用する。ニューラルネットワークをトレーニングするための既存の各アプローチは、様々なクライアントから受け取ったデータに基づいている。このコンテキストでデータを共有するプロセスにより、データが漏洩したり、発見可能になったりする可能性がある。
例えば、ヘルスケアのコンテキストでの深層学習や機械学習では、診断に意味のあるトレーニング済みモデルで十分な精度を生み出すために、大規模なデータセットが必要になる場合がある。このようなデータには、複数の患者または患者カテゴリにわたるX線またはMRIに関するデータを含めることができる。このようなモデルをトレーニングするための1つのアプローチは、生データをプールすることであり、分析は、プールされたデータの中央リポジトリにアクセスして、大規模なデータセットに対して機械学習を実行できる。しかしながら、このアプローチには、単一点障害や保護要件などの他の問題だけでなく、倫理的な問題やプライバシーの問題もある。
本開示の上記および他の利点および特徴を得ることができる方法を説明するために、上で簡単に説明した原理のより具体的な説明を、添付の図面に示されている特定の実施形態を参照して行う。これらの図面は、本開示の例示的な実施形態のみを示しており、したがって、その範囲を限定するものと見なされるべきではないことを理解して、本明細書の原理は、添付の図面を使用することにより、追加の具体性および詳細とともに記述および説明される。
図1は、連合学習モデルのトレーニングアプローチを示す。 図2は、分割学習集中型モデルトレーニングアプローチを示す。 図3は、分割学習ピアツーピアアプローチを示す。 図4は、連合分割学習アプローチを示す。 図5は、ブラインド学習に関する実施形態を示す。 図7は、ブラインド相関が複数のクライアントにわたってどのように機能するかを示す。 図8は、方法の実施形態を示す。 図9は、方法の実施形態を示す。 図10は、方法の実施形態を示す。 図11は、システムの実施形態を示す。
本開示の特定の態様および実施形態を以下に提供する。当業者には明らかであるように、これらの態様および実施形態のいくつかは独立して適用されてもよく、それらのいくつかは組み合わせて適用されてもよい。以下の説明では、説明の目的で、本出願の実施形態の完全な理解を提供するために特定の詳細が示される。しかしながら、これらの具体的な詳細なしに様々な実施形態を実施できることは明らかであろう。図および説明は、限定を意図するものではない。
以下の説明は、例示的な実施形態のみを提供するものであり、本開示の範囲、適用可能性、または構成を限定することを意図するものではない。むしろ、例示的な実施形態の以下の説明は、例示的な実施形態を実施するための有効な説明を当業者に提供する。添付の特許請求の範囲に記載された本出願の趣旨および範囲から逸脱することなく、要素の機能および構成に様々な変更を加えることができることを理解されたい。
当技術分野で必要とされているのは、モデルがトレーニングされたデータを非公開に保つニューラルネットワークモデルをトレーニングするために、既知のアプローチを組み合わせた方法およびシステムである。以前のアプローチでは、トレーニングデータが漏洩したり、トレーニングプロセスの一部として発見されたりする可能性がある。本明細書で開示される改善されたアプローチは、保護上の問題などの他の問題にも対処し、単一障害点の問題を取り除くことができる。この開示では、最初に既知のアプローチについて説明し、次に新しいアプローチを紹介する。一態様では、特定のプラットフォームを使用して、ニューラルネットワークモデルの連合開発またはトレーニングを可能にする。このようにモデルをトレーニングするための開示されたプラットフォームの使用は、本明細書の別の実施形態として開示される。さらに別の実施形態では、データは、サーバと1つまたは複数のクライアントデバイスとの間で渡されるときに暗号化される。様々なタイプの連合学習(図1に示す)、分割学習(図2に示す)、および分割学習ピアツーピア(図3に示す)が本明細書に開示される。この開示により、従来のアプローチに対していくつかの新しい改善が提供される。
典型的な連合学習では、クライアントデータを使用したトレーニングのために、モデル全体をサーバからクライアントデバイスに渡す。このプロセスには、トレーニング目的で、それぞれがそれぞれのデータを備えた複数の異なるクライアントを使用することが含まれ得る。このアプローチは通常、モデル全体がデータとともに第1のクライアントに送信され、第1のクライアントでトレーニングした後、モデル全体がサーバに返されて「平均化」されるという、線形かつ反復的な方法で実行される。次に、更新されたモデル全体が、追加処理用のデータとともに第2のクライアントに送信される。次に、追加の「平均化」のためにその更新されたモデルがサーバに送り返される、などが行われる。分割学習アプローチでは、モデルが分割され、一部が各クライアントに送信されるが、非効率的な線形でインタラクティブなトレーニングプロセスが依然として存在する。ピアクライアントが線形プロセスでデータを共有するため、分割学習ピアツーピアアプローチも線形に実行される。データのプライバシーを維持し、トレーニングプロセスを効率化するための改善が必要である。
この開示では、連合学習と分割学習に対する2つの主な改善点について説明する。第1には、クライアント側の処理が他のクライアントとは独立して並行して行われる連合分割学習アプローチ(図4~5に示す)である。第2の開示されたアプローチ(図6~10に示される)は、異なるクライアントからの異なるタイプのデータを処理するためのマルチモーダル人工知能(multi-modal artificial intelligence、MMAI)トレーニングアプローチに関する。
上述のように、連合分割学習アプローチは、上記の典型的な連合学習アプローチの変形として開示されている。この点に関する方法は、サーバでニューラルネットワークを第1の部分と第2の部分に分割し、第2の部分を第1のクライアントと第2のクライアントに別々に送信することを含む。クライアントはデータ(MRI、患者データ、顧客の銀行データなど)を有することができ、それぞれがニュートラルネットワークの一部(カットレイヤまでのネットワークの特定の数のレイヤ)を受け取る。この方法は、閾値が満たされるまで以下の操作、(1)第1のクライアントおよび第2のクライアントで、同時に第2の部分に順方向ステップを実行して、データSA1とSA2を生成すること(図1~4を参照)、(2)第1のクライアントと第2のクライアントからSA1とSA2をサーバに送信すること、(3)サーバで、第1クライアントと第2クライアントの損失値を計算すること、(4)サーバで、第1クライアントと第2クライアントにわたる平均損失を計算すること、(5)サーバで、平均損失を使用して逆伝播を実行し、勾配を計算すること、および、(6)サーバから勾配を第1のクライアントおよび第2のクライアントに送信すること、を実行することを含む。このアプローチは、クライアント側(または「データサーバ」側)での処理を互いに独立して並行して動作させることにより、連合学習アプローチと分割学習アプローチに対する改善を提供する。このアプローチは、分割学習のピアツーピアアプローチとも異なる。独立したデータサーバは、そのアクティベーションをサーバ側に送信し、サーバ側は、最終的なトレーニング済みモデルを取得するためのネットワーク要件に応じて、データを集計、平均化、またはその他の方法で処理する。
本開示の別の態様は、トレーニングに使用するために複数の異なるモードのデータまたはデータのタイプを利用できる人工知能モデルの開発における改善に関する。例えば、クライアントごとにデータのタイプが異なる場合がある。あるクライアントにはX線やMRIの画像があり、別のクライアントには患者の健康状態を説明するテキストがある場合がある。これに関して、方法は、ニューラルネットワークを第1のクライアント側ネットワーク、第2のクライアント側ネットワーク、およびサーバ側ネットワークに分割し、第1のクライアント側ネットワークを第1のクライアントに送信することを含むことができる。第1のクライアント側ネットワークは、第1のクライアントからの第1のデータを処理するように構成され、第1のデータは第1のタイプを有する。第1のクライアント側ネットワークは、少なくとも1つの第1のクライアント側レイヤを含むことができる。この方法は、第2のクライアント側ネットワークを第2のクライアントに送信することを含む。第2のクライアント側ネットワークは、第2のクライアントからの第2のデータを処理するように構成され、第2のデータは第2のタイプを有する。第2のクライアント側ネットワークは、少なくとも1つの第2のクライアント側レイヤを含むことができ、第1のタイプと第2のタイプは共通の関連付けを有する。
この方法は、サーバ側ネットワークで、第1のクライアントからの第1のデータに関する第1のクライアント側ネットワークのトレーニングからの第1のアクティベーションを受信することと、サーバ側ネットワークで、第2のクライアントからの第2のデータに関する第2のクライアント側ネットワークのトレーニングからの第2のアクティベーションを受信することと、第1のアクティベーションおよび第2のアクティベーションに基づいてサーバ側ネットワークの少なくとも1つのサーバ側レイヤをトレーニングして勾配を生成することと、勾配をサーバ側ネットワークから第1のクライアント側ネットワークおよび第2のクライアント側ネットワークに送信することと、をさらに含むことができる。このようにして、単一の患者または単一のタイプもしくはカテゴリの患者に関連するなどの共通の関係を有する複数の異なるタイプのデータを使用して、モデルをトレーニングする。
この概要は、請求する主題の主要な特徴あるいは必須の特徴を確認することを意図するものではなく、また請求する主題の範囲を決定するために単独で使用することを意図するものでもない。この主題は、本特許の明細書全体、いずれかまたはすべての図面、および各請求項の適切な部分を参照することによって理解されるべきである。
上記は、他の特徴および実施形態とともに、以下の明細書、特許請求の範囲、および添付の図面を参照することにより、より明らかになるであろう。
本明細書に開示されるのは、新しいシステム、プラットフォーム、コンピューティング環境、クラウド環境、マーケットプレイス、またはニューラルネットワークをトレーニングするための改善されたアプローチを可能にするシステムのその他の特徴付けである。一態様では、このアプローチは、既知のアプローチの機能を組み合わせるが、様々なクライアントデバイスからモデルをトレーニングするために使用されるデータのプライバシーを維持するトレーニングプロセスを提供する、連合分割学習アプローチと呼ばれる。この開示では、最初に連合学習アプローチをより詳細に説明し、続いて分割学習アプローチと分割学習ピアツーピアアプローチを説明し、次に新規の連合分割学習アプローチを紹介する。さらに、様々なタイプのデータに対するマルチモーダル人工知能(MMAI)学習アプローチも導入されている。新奇な連合分割学習アプローチとMMAIアプローチは、上記のモデルを含むいくつかのモデルに基づいている。本出願では、これらの最初のアプローチをより詳細に確認し、次に2つの新奇な学習技術を紹介する。
連合学習
図1は、連合学習アプローチ100を示す。これは現在、主要企業が採用しているアプローチである。このアプローチの欠点は、並行ではなく、一度に1つのデータプロバイダに「線形に」進むことである。示されているニューラルネットワークの例は、連合学習アプローチを使用してトレーニングされている、完全に接続された順伝播型ニューラルネットワークである。この場合のトレーニングプロセスは、モデル104を作成し、モデル106A、108A、および110Aをそれぞれのクライアント106、108、110と線形の形で共有するサーバ102を含む。クライアントは、順番にモデルを受け取るとそれぞれのモデル106A、108A、110Aを別々にトレーニングし、図示のように、トレーニング済みモデルデータをサーバ102にそれぞれ送り返す。サーバ102は、モデルを平均化し、更新された重みを有する新しいモデル104(別名、トレーニング済みモデル)を生成する。サーバ102は、新しいモデルまたは重みをそれぞれのクライアント106、108、110に線形に送信する。このプロセスは、何回か反復的に、またが特定の精度が達成されるまで、繰り返される。
各反復において、サーバ102は、すべての参加モデルを平均して、トレーニング済みモデルBを作成する。したがって、サーバは、任意の時点で完全にトレーニング済みのモデル104を有する。「グローバルモデル」という用語は、トレーニングプロセスの結果として得られるモデルを指す。グローバルモデルは、推論タスクに使用されるトレーニング済みオブジェクトである。推論タスクは、医療画像を評価して、患者が癌、骨折、またはその他の病状にかかっているかどうかを分類することである。
このアプローチが使用されている例として、電子時計やモバイルデバイスなどのデバイス、例えば夜間に充電し、Wi-Fiネットワークに接続されているデバイスでは、プロセッサを使用してニューラルネットワークモデルをトレーニングすることができる。したがって、クライアント1(106)はApple Watchである可能性があり、クライアント2(108)は別の人のiPhone(登録商標)である可能性がある。モデルの例としては、Appleが提供するSiri音声処理サービスがある。すべてのデバイスは同じモデルをトレーニングしているが、唯一の違いは、それぞれのクライアントがローカルのデータでトレーニングしていることである。モデルまたはデータはサーバ102に送り返され、サーバはモデルを一緒に平均化する。欠点は、クライアント1(106)などのそれぞれのクライアントがだまされて、モデルのトレーニングに使用されているデータについて何かを共有する可能性があることである。これはプライバシーデータの漏洩であり、上記の問題が発生する。連合学習アプローチの課題は、モデル全体がクライアントからクライアントに渡されるため、モデルのプライバシーがないことである。各クライアントがモデル全体を処理するための計算コストが高く、モデル全体が何度も送信されるため通信オーバーヘッドが大きくなる。再構築攻撃が、トレーニングデータを脆弱なものにすることもできる。
分割学習
図2は、分割学習集中型アプローチを示す。モデル(ニューラルネットワーク)204は、2つの部分に分割され、一方の部分(206A、208A、210A)は、それぞれのクライアント側206、208、210に存在し、モデルへの入力レイヤと、オプションでカットレイヤまでの他のレイヤを含むみ、他の部分(B)は、サーバ側202に存在し、多くの場合、出力レイヤを含む。分割レイヤ(S)とは、AとBが分割されたレイヤ(カットレイヤ)を指す。図2において、SAはAからBに送信される分割レイヤまたはデータを表し、SBはBからAに送信される分割レイヤを表す。
一例では、B204とクライアント1(206)との間のニューラルネットワークは、B部分204にA1部分(206A)を加えたものであり、データSB1(206C)およびSA1(206B)の通信によりニューラルネットワーク全体が完成する。このモデルでは、トレーニングプロセスは次のようになる。サーバ202は、AおよびBを作成し、それぞれのモデルA(206A、208A、210A)をそれぞれのクライアント206、208、210に送信する。すべてのクライアントについて、操作には、いくつかの条件が発生するまで、クライアントのグループ全体で線形または反復的な方法で以下を繰り返すことが含まれる。それぞれのクライアント206、208、210は、順番に、サーバ202から最新のモデルAをダウンロードする(このステップは、図2と図3に示されるアプローチとの間で異なることに留意されたい)。クライアント206、208、210は、それぞれ順番に、モデルAに対して順方向ステップを実行し、Aの出力(すなわち、SのみまたはSA1(206B)、SA2(208B)、SAN210B)でのアクティベーション)をサーバ202に必要なラベルに加えて送信する。サーバ202は、それぞれのクライアント206、208、210から受信したSAを使用して、Bに対して順方向ステップを行う。サーバ202は損失関数を計算し、サーバ202は逆伝播を行い、Sレイヤで勾配を計算する。サーバ202は、Sの勾配のみ(すなわち、SB1(206C)、SB2(208C)、SBN(210C))をそれぞれのクライアント206、208、210に送信する。このプロセスは、最初にクライアント206、次にクライアント208、次にクライアント210に対して操作が発生するように、異なるクライアントにわたって線形に実行される。クライアント206、208、210は、サーバ202から受信したSB勾配を使用して逆伝播を行い、クライアント206、208、210は、更新されたA(SA1(206B)、SA2(208B)、SAN(210B))をサーバ202と共有する。
図2の横軸は、クライアントからクライアントへとラウンドロビン方式のように処理が行われる時間である。
一例では、クライアント1上のネットワークA1 206Aは、畳み込みレイヤおよびアクティベーションレイヤを含むことができる。データを処理すると、クライアント1(206)は、そのレイヤフォワード(SA1(206B))の結果を、サーバ202にあるネットワーク内の次のレイヤに送信し、サーバ202は上記で概説したように逆伝播などを計算する。Bネットワークは、異なるクライアント206、208、210からの異なるデータを(ラウンドロビン方式で)繰り返し処理する。最終的には、それはネットワークを平均的に反映したものに到達する。すべてのクライアント206、208、210からのすべてのデータで同時にネットワークをトレーニングすることはない。これはデータをより高速に処理でき、構築時にデータ全体でBが平均化されるという利点がある。最終的なアルゴリズムは、すべてのデータを確認していない。モデルBは、すべてのデータでトレーニングされたことがないため、だまされてそのデータを明らかにすることはできない。
ピアツーピア環境での分割学習
図3は、分割学習ピアツーピアアプローチを示している。モデル(ニューラルネットワーク)は2つの部分に分割され、一方の部分(A)はクライアント側に存在し、入力レイヤを含み、もう一方の部分(B)はサーバ側に存在し、多くの場合出力レイヤを含む。図3では、クライアント側部分(A)は、クライアント306ではA1(306A)、クライアント308ではA2(308A)、クライアント310ではAN(310A)としてそれぞれ示されている。分割レイヤ(S)とは、AとBが分割されたレイヤを指す。図3において、SAはAからBに送信される分割レイヤを表し、SBはBからAに送信される分割レイヤを表す。
一例では、Bとクライアント1 306との間のニューラルネットワークは、B部分にA1部分306Aを加えたものであり、データSB1 306CおよびSA1 306Bの通信によりニューラルネットワーク全体が完成する。このモデルでは、トレーニングプロセスは次のようになる。サーバ302は、AおよびBを作成し、Aをクライアント306、308、310に送信する。すべてのクライアントについて、プロセスには、いくつかの条件が発生するまで以下を繰り返すことが含まれる。まず、このプロセスには、以前のクライアントから最新のAをダウンロードすることが含まれる。
このステップは、他の図に示されているアプローチとは異なることに注意されたい。次いで、プロセスは、Aに対して順方向ステップを実行し、必要なラベルに加えてAの出力(すなわち、Sでのアクティベーションのみ)をサーバ302に送信することを含む。サーバ302は、それぞれのクライアント306、308、310から受信したSAを使用して、Bに対して順方向ステップを実行する。サーバ302は、損失関数を計算し、逆伝播を実行し、Sにおける勾配を計算する。サーバ302は、Sの勾配(すなわち、SB)のみをそれぞれのクライアント306、308、310に送信する。クライアントは、サーバ302から受信したSB勾配を使用して逆伝播を行う。クライアントは、それらの更新されたAをサーバ302と共有する。
ピアツーピアアプローチでは、一般に、それぞれのクライアントが、Aモデルを、最後にトレーニングされたクライアントから直接ダウンロードするか、より広くは、以前にトレーニングされたクライアントによって更新することが含まれる。この点に関して、クライアントをトレーニングするプロセスは、クライアントが順番にトレーニングされるラウンドロビン方式で行うことができる。例えば、クライアント1 306が最初にトレーニングされる場合、ピアツーピアモデルでは、クライアント2 308がサーバ302または別の信頼できるサーバからクライアント側モデルA2を更新するのではなく、クライアント2 308がそのクライアントモデルA2を、クライアント1 306からクライアント側モデルA1をダウンロードすることによって更新する。以前にトレーニングされたモデルは、最新のトレーニングされたクライアントモデルである場合もあれば、いくつかの基準に基づいて、以前にトレーニングされた他のクライアントのモデルである場合もある。例えば、クライアント1 306およびクライアント2 308は、それぞれのモデルをトレーニングすることができる。クライアント3 310は、クライアント側モデルの更新を必要とし、クライアント1 306とクライアント2 308の間でどのクライアント側モデルをダウンロードするかを決定するアルゴリズムまたはプロセスを実装する場合がある。以下の開示は、ここで適用できるマルチモデルの人工知能トレーニングプロセスを実装していることに注意されたい。クライアント1 306が画像を処理し、そのモデルA1が画像処理に焦点を合わせ、クライアント2 308がテキストを処理し、そのモデルA2がテキスト処理に焦点を合わせ、クライアント3 310が画像を処理する場合、アルゴリズムまたはプロセスにより、ピアツーピア環境において、クライアント側モデルA1のクライアント3 310へその更新としてのダウンロードが行われる。
あるシナリオでは、ニューラルネットワークの適切なトレーニングを達成するために、分割学習からの十分な情報がない。このモデルでは、適切なトレーニングアプローチは、AとBが、サーバ302でそれら(AとB)を単純にスタックすることによってプレーンテキストに集約することであり得ると想定される。
連合分割学習
図4は、本明細書に開示されたニューラルネットワークに対するトレーニングの改善を示している。この改善は、連合分割学習アプローチとして特徴付けることができ、上記で開示したアプローチのいくつかの欠陥に対処する。図4は、並列処理アプローチを紹介する。並列処理と独立処理により、モデルのトレーニングは上記の他のモデルよりも速いペースで行われる。
連合分割学習アプローチは、上記のラウンドロビン処理を実行しない。サーバ402は、ネットワーク定義コードに挿入されたユーザパラメータである「分割レイヤ」でネットワークを分割する。ネットワークの「最上部」はサーバ402に保持され、「最下部」はそれぞれのデータプロバイダまたはクライアント406、408、410に送信される(クライアントとデータプロバイダという用語は、本明細書では同じ意味で使用される)。トレーニングは、データに最も近いレイヤである最下位のネットワークレイヤから始まる。各レイヤは、(最初のレイヤからの)データまたは前のレイヤ(他のすべてのレイヤ)の出力を読み取る。
レイヤは、任意の有効なネットワークアーキテクチャコマンド(畳み込み、ドロップアウト、バッチ正規化、レイヤの平坦化など)とアクティベーション関数(relu、tanhなど)に基づいて、それらの出力(これらはアクティベーション関数から得られるので「アクティベーション」という用語が使われる)を計算することができる。データ側の最後のレイヤ406、408、410がその適切なアクティベーション(つまり、出力)を計算すると、それらの出力は「分割の反対側」の最初のレイヤ、つまりサーバ側402の最初のレイヤに送信される。
次のアプローチでは、以前と同様にモデルを分割することが含まれる。モデルは2つの部分、(A)クライアント側で入力レイヤを含む、および、(B)サーバ側で多くの場合出力レイヤを含む、に分割される。(S)は分割レイヤである。クライアントまたはデータプロバイダ406、408、410は独立して動作し、回答がある場合はそれを送り返す。サーバ402上のコードはデータを処理し、その出力をSB(406C、408C、410C)としてすべてのクライアントに均等に送り返す。
トレーニングプロセスの例は次のとおりである。サーバ402は、AおよびBを作成し、部分A(406A、408A、410A)をクライアント406、408、410に送信する。以下のステップは、条件(例えば、精度)が満たされるまで繰り返される。すべてのクライアント406、408、410は、Aに対して同時に順方向ステップを実行する。この時点まで、クライアント406、408、410でのすべての計算は独立したサーバで行われており、1つのデータサーバから別のデータサーバへの依存関係はない。このアプローチは、本明細書で開示されたイノベーションの1つを強調している。クライアント/データプロバイダ406、408、410によるこれらすべての計算は、すべて同時に並行して動作することができる。これは、前述の線形または「ラウンドロビン」方式とは対照的である。
クライアント406、408、410はそれぞれ、ニューラルネットワークの部分A(406A、408A、410A)を実行し、Aのそれぞれの出力(すなわち、SA(406B、408B、410B))を生成し、出力をサーバ402に送信する。サーバ402は、アクティベーションの3つの異なる「バージョン」を受信する(SA1、SA2、SA3のそれぞれから1つ)。この時点で、サーバ402はそれらのアクティベーションを「適切に」処理する。これは、サーバ402が場合に応じて異なる操作を行うことを意味し得る。例えば、サーバ402は各クライアント406、408、410の損失値を計算し、サーバ402は全クライアントにわたる平均損失を計算する。サーバ402は、平均損失を使用して逆伝播を実行し、Sにおける勾配を計算する。サーバ402は、Sにおける勾配(すなわち、SB(406C、408C、410C))をすべてのクライアント406、408、410に送信する。
換言すれば、サーバ側402でのトレーニングは、上で説明したのとほとんど同じように進行する。サーバ側402の第1レイヤが「完了」になると(データプロバイダ406、408、410から受信したものを平均化または集約することにより)、ネットワークの「最上部」に到達するまで順伝播が発生する。本開示で説明される追加のイノベーションは、データプロバイダ406、408、410からのアクティベーションの管理、およびそれらがどのように平均化、集約、またはその他の処理を取得するかにある。システムがモデルの最上部に到達すると、サーバ402は逆伝播に必要な勾配を計算し、図4に示すように分割ネットワークを介してそれらを下方向に送り返す。
上述のように、サーバ402によるアクティベーションの処理および管理は、様々な要因に応じて変化する可能性がある。例えば、3つのデータプロバイダ406、408、410すべてが同じデータ(X線)を供給している場合を想定する。その場合、データは水平方向に組み合わせられ、これは、概念的には、データが他のファイルの上に「積み重ねられる」1つのファイルであることを意味し得る。この場合、発生するアクティベーションは平均化される可能性が高くなる。「各アクティベーションの平均」は、ネットワークの「上半分」に転送される。
別のケースでは、データを「垂直に」積み重ねることができるため、クライアント1 406は最初の40列のデータ(例えば、血液検査)を有し、クライアント2 408は次の60列のデータ(例えば、年齢、体重などのデータを含む電子健康記録)を有し、クライアント3 410は最後の100列のデータ(例えば、保険情報-以前の請求など)を有する。この例では、3つのクライアントが、200列の組み合わせられた「レコード」を確立していると見なすことができる(ページ全体で垂直方向に集約される)。この場合、アクティベーションは「垂直に組み合わせられ」、サーバネットワークに転送される。データを組み合わせるためのこのアプローチおよびその他のアプローチを実装できる。以下でより詳細に説明するマルチモーダル人工知能モデルは、アクティベーションを垂直方向に組み合わせることに関して説明しただけの概念に基づいていることに留意されたい。この概念の詳細については、以下で説明する。
上述のように、クライアント406、408、410は、この実施形態では並行して動作する。これにより、すべての処理が並行して行われるため、モデルのトレーニングにかかる時間が短縮される。さらに、このデータは特定のプラットフォームを介して配信される。上記に組み込まれたアプリケーションは、本明細書で開示されるデータを配信するために使用できる特定のプラットフォームの例を提供する。これについては、以下で詳しく説明する。
連合分割学習におけるグローバルモデルは、次のように集約できる。トレーニングが完了すると、システムは次のアプローチを使用して、推論タスクに使用されるグローバルモデルを集約する。第1のアプローチでは、サーバはモデルAiの1つを選択し、そのモデルBと統合してグローバルモデルを形成する。Aiの選択は、次のいずれかの方法を使用して行うことができる。例えば、サーバが任意のクライアント406、408、410のモデル(Ai)をランダムに選択するランダム選択を使用することができる。このランダム選択は、現在オンラインで利用可能なクライアント、各クライアントが処理するデータのタイプ(テキストデータ、画像データ、時間データ)など、他の要因の影響を受けるか、または2つのエンティティ間の伝送速度またはネットワーク遅延に基づく可能性がある。次に、サーバはAiとBの両方の部分をスタックして、グローバルモデルを生成する。
別の例では、重み付けクライアント選択を使用できる。この選択基準について、サーバ402は、各クライアントに、それらのデータ、計算能力、およびトレーニングプロセス中に所有および貢献する他の価値ある資産に基づく重要性を反映する重み(すなわち、数値)を割り当てる。例えば、特定のモデルセット(特定の言語のデータ、画像のタイプに関連付けられたデータ、患者セットに関連付けられたデータ、特定の国または地域のデータなど)は、モデル開発で大きく重み付けされる可能性がある。したがって、国が選択されている場合、その国のクライアントデバイスは、他の国のクライアントよりも大きな重みを付けることができる。例えば、日本語ベースのクライアントデバイスは、モデルデータの80%に使用できる。オーストラリアが10%で、カナダが残りの10%である可能性がある。別の例では、インフルエンザやCOVIDの発生に関連する特定の診療所からのデータに、より大きな重みを付けることができる。さらに別の例では、データのタイプもよりも大きな重み付けをされる場合がある。画像データはモデルの70%に使用できるが、テキストデータは20%、時間データは10%である。
さらに別のモデルは、精度に基づく選択であり得る。この場合、サーバ402は、各クライアントモデルAiから生成された精度をテストし、「最良の」精度を生成するモデルを選択することができる。利害関係者は、機械学習のアプローチなどを通じて、「最良」を特定できる。これらはすべて第1のアプローチのモデルである。
第2のアプローチは、すべてのクライアントのモデルAi{1,N}を平均することによってグローバルモデルを集約することであり得る。各クライアントは、最初に準同型暗号を使用してモデルを暗号化し、次に暗号化されたAi‘データをサーバ402に送信する。サーバ402は、すべての暗号化モデルを加算し、加算結果を復号し、それらの平均を計算する。次に、平均化されたAがBと積み上げられて、グローバルモデルが生成される。1つのアプローチをデフォルトのアプローチにすることも、オプションのアプローチを提供することもできる。復号プロセスと平均化プロセスは、異なるサーバ間で分散することもできる。例えば、1つのプロセスがクライアント側で発生し、別のプロセスがサーバ402によって実行されてグローバルモデルが達成される。
アプローチは、モデルの開発を通じて異なってもよい。例えば、デフォルトのアプローチを使用してモデルのトレーニングを開始した後、重み付けアプローチを使用してモデルのトレーニングを完了するようにトレーニングを調整できる。
方法の例が図5に示され、サーバでニューラルネットワークを第1の部分と第2の部分に分割し(502)、第2の部分を第1のクライアントと第2のクライアントに別々に送信し(504)、閾値が満たされるまで、次の操作を実行することを含み得る。
(1)第1のクライアントおよび第2のクライアントにおいて、第2の部分に対して同時に順方向ステップを実行して、データSA1およびSA2を生成する。
(2)第1のクライアントと第2のクライアントからSA1とSA2をサーバに送信する。
(3)サーバにおいて、第1クライアントと第2クライアントの損失値を計算する。
(4)サーバにおいて、第1クライアントと第2クライアント全体の平均損失を計算する。
(5)サーバにおいて、平均損失を使用して逆伝播を実行し、勾配を計算する。
(6)サーバから勾配を第1のクライアントおよび第2のクライアントに送信する(506)。
上記の操作を実行する1つまたは複数のコンピューティングデバイス、および実行時にプロセッサにこれらの操作を実行させる命令を格納するコンピュータ可読ストレージデバイスも対象とすることができる。操作は任意の順序で実行でき、方法には1つまたは複数の操作を含めることができる。
本開示の別の態様では、上記に組み込まれた特許出願に記載されているプラットフォームは、連合モデルのいずれかでデータをやり取りするための基礎を提供することができる。例えば、クライアントおよび/またはサーバのそれぞれは、プラットフォーム、または本明細書に組み込まれるアプリケーションで参照されるプラットフォームのバージョンの1つにログオンする必要がある場合がある。したがって、これらの出願に開示されているように構成されたプラットフォームまたは交換機構を介してこの機能を提供することも、本開示の一態様としてカバーされる。
別の態様では、顧客は、伝播する必要がある重み付けを表すSA、SBライン(ベクトルと数値)を選択できる。サーバはデータについて何も知らずにクライアントがデータをロックダウンしたい場合、そのデータは準同型暗号化できる。暗号化プロセス(任意の暗号化プロセスを含むことができる)は、上で開示した任意のアプローチで使用することができる。
上記の組み込まれた特許出願は、クライアントデバイスおよび/またはサーバがログインできる、または本明細書で開示されている連合分割学習アプローチを実行するためにログインする必要があるプラットフォームの例を提供する。
一態様では、本明細書で開示されるステップは「システム」によって実施できることに留意されたい。システムには、サーバと1つまたは複数のクライアントを一緒に含めることも、サーバによって機能的に実行されるだけでもよい。システムはまた、特定の地理的エリア内のクライアント、または本明細書で開示されるクライアントベースの機能を実行している何らかの方法でのクライアントグループなどの、クライアントまたはクライアントのグループであり得る。一態様では、「サーバ」は、サーバ側のコンピューティングデバイス(物理的または仮想的)、およびクライアント側のコンピューティングデバイス(物理的または仮想的)でもあり得る。一例では、サーバはクライアント側にあり、それぞれのクライアント側モデルAiの逆伝播出力を受け取ることができ、トレーニングのラウンドでクライアント側グローバルモデルを同期させることができる。
したがって、サーバ側システムおよびクライアント側システムのそれぞれは、本明細書に開示された操作のうちの任意の1つまたは複数を実行することができる。本明細書に開示される任意の装置の観点から生じるステップを概説する請求項を含めることができる。例えば、データの送信、計算、および受信のステップは、対象となる実施形態に応じて、サーバデバイス、クライアントデバイス、またはクライアントデバイスのグループの観点から請求することができる。個々のコンポーネントまたはデバイスの観点からのそのような通信はすべて、そのデバイスに焦点を当てた特定の実施形態の範囲内に含めることができる。
別の態様では、システムは、参照により組み込まれる特許出願に開示されているプラットフォームを含み、上記で開示した概念と連携してステップを実行することもできる。したがって、本明細書で説明する連合分割学習プロセスを提供するために使用されるプラットフォームも、本開示の実施形態であり、本明細書で説明するデータのプライバシーを維持する方法でモデルをトレーニングするためのそのプラットフォームの使用に関連してステップを列挙することができる。ここで。
通常、ニューラルネットワークのトレーニングは同様のデータタイプで実行される。例えば、患者の画像または腎臓を受信して癌を識別するようにトレーニングされたニューラルネットワークは、癌性および癌性でない腎臓の画像でトレーニングされる。次に、本明細書で開示される連合分割学習アプローチを使用して、異なるタイプのトレーニングデータを一緒に使用してニューラルネットワークをトレーニングするトレーニングへの新しいアプローチについて説明する。
マルチモデル人工知能アプローチ
前述のように、MMAIのイノベーションは、連合分割学習の例で説明した「垂直集約」のアイデアに基づいている。この例は、同じタイプのデータ(画像(スタッキング用)または垂直方向に結合される表形式データ)を提供する3つのクライアント406、408、410すべてに関連する。発明者が垂直集計の概念を検討していたとき、これは異なるタイプのデータで実行できることに気付いた。例えば、クライアント1は画像を提供でき、クライアント2は血液検査を提供でき、クライアント3は医師のテキストメモを提供できる。大きな違いは、これらのデータタイプのすべてが異なるネットワークアーキテクチャを必要とすることである。この場合、システムの開発者は1つのネットワークを定義してから、サーバにそれを「分割」させることはできない。したがって、ソリューションの一部は、ユーザが各データプロバイダの「分割前」にネットワークを定義してから、サーバ上でネットワークと集約技術を定義できるようにすることである。このアプローチは、図6~10に示されている。
図6は、マルチモーダル人工知能(MMAI)プラットフォームまたは機械学習(ML)プラットフォーム600を示す。MMAIアプローチは、他のアプローチの計算要件と通信オーバーヘッドを削減する。さらに、トレーニング速度ははるかに高速であり、プロセスはモデルが非公開のままであるという事実を含め、データのプライバシーをはるかに高く維持する。
MMAIプラットフォーム600は、1つの大きなAIモデル内の複数のデータタイプにAI/ML技術を適用する。通常、正確な結果を得るには、データのタイプが異なれば、異なるAIネットワークアーキテクチャが必要になる。例えば、画像には通常、特別なフィルター(畳み込み)が必要であるが、テキストや音声には別の「時系列のような」処理が必要であり、表形式のデータは多くの場合、MLまたは順伝播型アーキテクチャで最適に機能する。問題は、画像はすべてのピクセルを一緒に見て様々な方法で「畳み込み」することによって最もよく理解されるのに対し、音声は特定の音の前後にあるもののコンテキストで(つまり、時系列データと同様の方法で)最もよく理解されるということなどである。これらの処理の違いにより、今日の「最先端」システムは通常、1つのデータタイプ(画像、テキスト、音声、表形式など)を処理する。
ほとんどのAI研究者は、より独自のデータをモデルに追加することで「次世代」の精度を飛躍的に向上できることを認識している。これは本質的に、ケースの興味深い違いを発見するためのより多くのコンテキストをモデルに提供するために、より多くのデータをモデルに提供することと同じである。この概念の例は、ECG(心電図)データを調べることによって心房細動(A-fib)を診断するモデルである。このモデルは、ECGデータのみに基づいて一定レベルの精度に達することができるが、研究者が年齢、性別、身長、体重をECGデータに追加すると、モデルははるかに正確になる。精度が向上したのは、4つのデータタイプが追加されたことにより、モデルが「同等の」ECGのように見えるものをモデルがよりよく理解できるようになったためである。データの4つの項目または特性を追加すると、データをより細かくすることができる。
図6に示されるMMAIプラットフォーム600は、新世代の暗号化ツールセットを導入して、非公開データのトレーニングおよび保護を改善する。MMAIプラットフォーム600は、AI/MLモデルをトレーニングするために通常使用されるよりも多くのデータをモデルに提供し、データを拡張する。このアプローチでは、様々なデータタイプ、例えば、画像と表形式のデータ)を組み合わせることで、大量のデータが追加される。
図6は、Wells Fargo銀行として示される第1の外部データソース602を示す。Wells Fargoのデータ602aは暗号化され(602b)、暗号化されたデータ602cのパッケージは非公開AIインフラストラクチャ603に送信される。第2の外部ソースデータ604は、Citibankとして示されている。Citibankのデータ604aは暗号化され(604b)、暗号化されたデータ604cのパッケージは非公開AIインフラストラクチャ603に送信される。第3の外部ソースデータ606は、Bank of Americaからのものとして示されている。Bank of Americaのデータ606aは暗号化され(606b)、暗号化されたデータ606cのパッケージは非公開AIインフラストラクチャ603に送信される。AIインフラストラクチャ603は、異なるソース602、604、606からのすべてのデータ610を非公開で調査、選択、および前処理する第1のモジュール608を含む。この例では、ソースのすべてが銀行として識別されるが、データの構造は異なり、それぞれのデータも異なる可能性がある。もちろん、データの外部ソース602、604、606のすべてが同じタイプ、すなわち銀行である必要はない。銀行の利用は一例である。外部ソース602、604、606は、例えば、病院、診療所、大学などであり得る。基本的な概念は、様々な異なる外部ソース602、604、606からのデータタイプが異なり得るということである。
非公開AIインフラストラクチャ603は、トレーニングのために受け取るデータ602c、604c、606cのすべてから関連する特徴を非公開で探索、選択、および前処理するコンポーネントを含むことができる。特徴612は、非公開AIインフラストラクチャ603におけるコンポーネントの処理から生じ得るデータ610のサブセットを表す。操作614、616では、AIインフラストラクチャ603は、選択されたデータ612で新しい深層モデルと統計モデルを非公開でトレーニングし、操作618で、画像、ビデオ、テキスト、および/または他のデータタイプを含む可能性がある任意の非公開データと機密データを予測する。次に、AIインフラストラクチャ603は、操作620で提示される新しいモデルへのアクセスを販売または許可することができる。
図7は、分割学習技術700の別の変形を示す。このアプローチでは、異なるタイプのデータに基づくトレーニングにブラインド相関プロセスを使用することで、コンピューティング要件と通信オーバーヘッドが低くなり、モデルのトレーニングが改善される。上記のA-fibモデルの例に基づいて構築すると、モデルのさらに多くのデータの別のソースは、モデルが考慮する各ケースの胸部X線を含めることである。残念ながら、X線画像の通常の処理は、表形式のECGデータの通常の処理と一貫性が無い。いくつかのマイナーな技術の追加により、上記で開示された分割連合学習ツールを使用して、この非互換性の問題に対処することができる。つまり、新しい命令をツールに提供して、既存のパイプラインで様々なデータタイプを処理できるようにすることができる。
この場合、ネットワークアーキテクチャの「自動」分割ではなく、このアイデアの変形により、ネットワークアーキテクト(つまり、アルゴリズムを開発するデータサイエンティスト)は、各データタイプに必要な特定のネットワークコンポーネントを指定できる。各データタイプには、そのデータタイプに関連するネットワークアーキテクチャレイヤが必要である(つまり、画像の畳み込みレイヤ、音声の再帰レイヤ/長短期記憶レイヤ、表形式データの順伝播型レイヤなど)。問題のデータタイプにそれぞれ固有のこれらの異なるレイヤは、「データサーバ」側で実行されるように指定される(それ自体の中の独立したネットワークとほとんど同じように)。各「独立したネットワーク」の最後のレイヤ(データタイプごと)は、そのアクティベーションを「分割を越えて」「サーバ側」に送信する。アルゴリズムサーバ側には、(データサーバ側からの)入ってくるアクティベーションを適切に処理する1つの一貫した「ネットワーク」がある。いくつかの点で、このアプローチは、(データサーバ側の)「ネットワークのアンサンブル」がアルゴリズムサーバ側で1つの最終的なネットワークに集約されることに似ている(最終的には、ネットワークの「アンサンブル」から最終的な「答え」を生成する)。
分割ラーニングは、前述のように、深層学習ネットワークまたはニューラルネットワーク(NN)をクライアント側ネットワークAとサーバ側ネットワークBの2つの部分に分割できる協調型深層学習技術である。NNには、重み、バイアス、およびハイパーパラメータが含まれる。図7では、データが存在するクライアント702、704、706はネットワークのクライアント側部分のみにコミットし、サーバ710はネットワークのサーバ側部分にのみコミットする。クライアント側とサーバ側の部分が集合して、完全なネットワークNNを形成する。
ネットワークのトレーニングは、一連の分散トレーニングプロセスによって行われる。順伝播と逆伝播は次のように行うことができる。生データを用いて、クライアント(例えばクライアント702)は、クライアント側ネットワーク702Aをカットレイヤまたは分割レイヤと呼ぶことができるネットワークの特定のレイヤまでトレーニングし、カットレイヤのアクティベーションをサーバ710に送信する。サーバ710は、クライアント702から受信したアクティベーションを用いて、NNの残りのレイヤをトレーニングする。これで、単一の順伝播ステップが完了する。同様のプロセスが、第2のクライアント704およびそのクライアント側ネットワーク704A、ならびにそのデータおよびサーバ710に送信される生成されたアクティベーションに対して並行して発生する。第3のクライアント706およびそのクライアント側ネットワーク706A、ならびにそのデータおよびサーバ710に送信される生成されたアクティベーションについて、さらに同様のプロセスが並行して発生する。
次に、サーバ710は、カットレイヤまで逆伝播を実行し、アクティベーションの勾配をそれぞれのクライアント702、704、706に送信する。勾配により、各クライアント702、704、706は残りのネットワーク702A、704A、706A上で逆伝播を実行する。これにより、クライアント702、704、706とサーバ710との間の逆伝播の単一パスが完了する。
この順伝播と逆伝播のプロセスは、ネットワークがすべての利用可能なクライアント702、704、706でトレーニングされ、その収束に達するまで続く。分割学習では、アーキテクチャ構成は、メインサーバ710に直接アクセスできる信頼できる当事者によって行われると想定される。この承認された当事者は、学習の開始時に(アプリケーションに基づく)MLモデルと(カットレイヤを見つける)ネットワーク分割を選択する。
上述のように、本開示で導入される概念は、クライアント702、704、706に関連し、それぞれが異なるタイプのデータを提供するが、異なるタイプのデータが共通の関連付けを有する場合にも関係する。したがって、機械学習モデルの選択は、クライアント側で処理されているデータのタイプに基づくことができ、カットレイヤを見つけるプロセスは、データのタイプまたは異なるタイプのデータの不均衡にも依存する可能性がある。例えば、クライアント702、704、706にわたる広く異なるデータタイプの場合、カットレイヤは、クライアント側ネットワーク702A、704A、706A上に多かれ少なかれレイヤを有するように選択され得る。別の態様では、カットレイヤまたは分割レイヤの前のレイヤの数は、クライアントによって異なり得る。クライアント702は画像を処理しているものであり得、カットレイヤの前に8つのレイヤを必要とし、一方クライアント704はテキストを処理することができ、カットレイヤの前に4つのレイヤしか必要としない。この点に関して、カットレイヤのベクトル、アクティベーションまたはアクティベーションレイヤが、異なるタイプのデータを有する異なるクライアント702、704、706にわたって一貫している限り、クライアント側ネットワーク702A、704A、706Aのレイヤの数が同じであるという要件はない。
複数のクライアント702、704、706との学習プロセスの同期は、集中型モードまたはピアツーピアモードのいずれかで行うことができる。集中型モードでは、サーバ710でトレーニングを開始する前に、クライアント702、704、706は、最新のトレーニングされたクライアントによってアップロードされた更新済みのクライアント側のモデルを保持する信頼できるサードパーティサーバ710からモデルパラメータをダウンロードすることによって、そのクライアント側モデル702A、704A、706Aを更新する。一方、ピアツーピアモードでは、クライアント702、704、706は、最新のトレーニングされたクライアントから直接ダウンロードすることによって、そのクライアント側モデルを更新する。前述のように、以前にトレーニングされたモデルは、そのモデルを更新する必要がある現在のクライアントとデータタイプが類似したものであり得る。例えば、類似性は、画像、テキストデータ、音声データ、ビデオデータ、時間データなどのデータに基づくことができる。したがって、どの以前にトレーニングされたクライアントモデルを使用してピアからダウンロードにするかについて、インテリジェントな選択があり得る。サーバ710による処理は、場合によっては、サーバ側での一部の処理と、クライアント側の連合サーバでの他の処理との間で分割することもできる。
上で紹介したように、クライアント1 702、クライアント2 704、およびクライアント3 706は、異なるデータタイプを有し得る。サーバ710は、ネットワークの2つの部分を作成し、1つの部分702A、704A、706Aをすべてのクライアント702、704、706に送信する。システムは、すべてのクライアントがネットワークの一部に保有データを送信するなど、精度条件または他の条件が満たされるまで特定のステップを繰り返し、出力をサーバ710に送信する。サーバ710は、各クライアントの損失値と、すべてのクライアントにわたる平均損失を計算する。サーバ710は、逆伝播中に計算した勾配の加重平均を使用してそのモデルを更新し、勾配をすべてのクライアント702、704、706に送り返すことができる。クライアント702、704、706は、サーバ710から勾配を受信し、各クライアント702、704、706は、クライアント側ネットワーク702A、704A、706A上で逆伝播を実行し、各クライアント側ネットワーク702A、704A、706Aについてそれぞれの勾配を計算する。次に、クライアント側ネットワーク702A、704A、706Aからのそれぞれの勾配をサーバ710に送り返すことができ、サーバ710は、クライアント側更新の平均化を行い、グローバルな結果をすべてのクライアント702、704、706に送り返す。
サーバ710の機能は、それぞれが異なる操作を実行するいくつかのサーバに分割することもできることに留意されたい(例えば、あるサーバによってそのモデルを更新し、それぞれが異なるエリアに位置する別のサーバによってローカルクライアントの更新を平均化するなど)。図7の場合、クライアント702、704、706はすべて、AIモデルを開発するために通常処理される、または処理されない、異なるタイプのデータを処理する。
例示の目的で、上記のA-fibモデルを使用してプロセスを説明できる。クライアント1 702はECGデータを有することができ、クライアント2 704はX線データを有することができ、クライアント3 706は遺伝子データを有することができる。図6に示すような形で、例えば、クライアント1 702は病院である可能性があり、クライアント2704は医療診断画像会社である可能性があり、クライアント3 706は銀行または金融機関である可能性がある。クライアントの1つは、定期的な検査のための病院への訪問と比較した、患者に関する進行的な情報などの時間ベースのデータを有することもできる。
図7に示されるアプローチは、システムが、レイヤの分割またはカットの前に、またはブラインド無相関化ブロック708に示されるように、ユーザが異なるデータタイプを「正しい」処理と一緒にすることを可能にする新しいユーザ命令をどのように実装できるかを示している。モデルのこれらの各部分は独立したものであり得、独立して動作する。一態様では、ブラインド相関ブロック708によって実行される処理は、サーバ710に転送されるアクティベーションレイヤまたはアクティベーションをもたらす。このアプローチは、クライアント702、704、706間のデータタイプの違いを加えた上で説明したアプローチに類似している。
サーバ710は、多数の方法のうちの1つでそれらのアクティベーションレイヤを組み合わせる。サーバ710は、それらを平均化することができるが(これも上述した)、それらを1つの長いアクティベーションレイヤに連結することもできる。別の態様では、サーバ710は、任意の数学的関数を適用して、アクティベーションレイヤの所望の組み合わせを達成することができる。次に、サーバ710は、任意の適切なネットワークアーキテクチャをさらに使用して、組み合わされたアクティベーションレイヤを処理することができる。一態様では、クライアント側のサーバは、勾配を受信し、勾配を平均して、様々なクライアント702、704、706のグローバルモデルを生成し、連結またはさらなる処理のためにグローバルモデルをサーバ710に送信できる。
図6および図7に示されているアイデアは、分割連合学習ツールセットの拡張と適用を表し、異なるデータタイプをまとめてスーパーセットAIモデルにする既製ツールのプラットフォームを提供する。処理はすべて非公開で行うことができ、上記で参照した特許出願に記載されているように、提供物を市場に含めることもできる。
システムは異なるデータタイプを組み合わせることができるだけでなく、異なるAI/ML技術を組み合わせることもできる。例えば、クライアント1 702はCNN(畳み込みニューラルネットワーク)であり得、クライアント2 704はMLルーチン(すなわちXGBoost)であり得、クライアント3 706は異なる技術を適用することもできる。この点で、異なるAI/ML技術は異なるが、カットレイヤで結果として得られるデータが一貫しており、適切に構成されている限り、順伝播と逆伝播を行うことができ、モデルをトレーニングできる。
MMAIアプローチがどのように機能するかを当業者が理解するのを助けるために、以下は、3つのデータプロバイダ702、704、706から来るデータタイプごとの実際のコマンドの例である。このコードはPythonの番号付け規則を使用しているため、builder0(データプロバイダ1 702からの表形式のデータ)で始まる。この例のbuilder1は、CTスキャンまたは画像データ用である。コマンドは、X線、MRI、および/またはその他の画像に対して同様である。builder2(データプロバイダ704から)はテキストデータである。「長期/短期記憶(long/short term memory)」の略である「lstm」コマンドに留意されたい。「サーバ」ビルダーコマンドは、分割の反対側の「最上部」で他の3つを集約するネットワークを定義する。
builder0=tb.NetworkBuilder()
builder0.add_dense_layer(100,120)
builder0.add_relu()
builder0.add_dense_layer(120,160)
builder0.add_relu()
builder0.add_dropout(0.25)
builder0.add_dense_layer(160,200)
builder0.add_relu()
builder0.add_split()
builder1=tb.NetworkBuilder()
builder1.add_conv2d_layer(1,32,3,1)
builder1.add_batchnorm2d(32)
builder1.add_relu()
builder1.add_max_pool2d_layer(2,2)
builder1.add_conv2d_layer(32,64,3,1)
builder1.add_batchnorm2d(64)
builder1.add_relu()
builder1.add_max_pool2d_layer(2,2)
builder1.add_flatten_layer()
builder1.add_split()
builder2=tb.NetworkBuilder()
builder2.add_lstm_layer(39,100,batch_first=True)
builder2.add_dense_layer(100,39)
builder2.add_split()
server_builder=tb.NetworkBuilder()
server_builder.add_dense_layer(60000,8000),
server_builder.add_relu()
server_builder.add_dense_layer(8000,1000),
server_builder.add_relu()
server_builder.add_dense_layer(1000,128),
server_builder.add_relu()
server_builder.add_dense_layer(128,1)
図8は、クライアントの観点からMMAI概念を提供するための例示的な方法800を示している。この方法は、第1のデータソースから第1のデータタイプを有する第1のデータセットを受信すること(802)、第1のデータセットで第1のクライアント側ネットワークをトレーニングし、第1のアクティベーションを生成すること(804)、第2のデータソースから第2のデータタイプを有する第2のデータセットを受信すること(806)、および、第2のデータセットで第2のクライアント側ネットワークをトレーニングし、第2のアクティベーションを生成すること(808)を含む。
この方法は、第1のアクティベーションおよび第2のアクティベーションを、サーバ側ネットワークであって、勾配を生成するために第1のアクティベーションおよび第2のアクティベーションに基づいてトレーニングされるサーバ側ネットワークに送信すること(810)と、第1のクライアント側ネットワークおよび第2のクライアント側ネットワークで勾配を受信すること(812)と、をさらに含むことができる。第1のデータタイプおよび第2のデータタイプは、一方が画像ベースであり、他方が音声のようにテキストまたは時間ベースであるなど、異なるデータタイプであり得る。
図9は、サーバ710および1つまたは複数のクライアント702、704、706の両方の観点からの例示的な方法900を示す。この方法は、ニューラルネットワークを第1のクライアント側ネットワーク、第2のクライアント側ネットワーク、およびサーバ側ネットワークに分割すること(902)、第1のクライアント側ネットワークを、第1のクライアントに送信することであって、第1のクライアント側ネットワークは、第1のクライアントからの第1のデータを処理するように構成され、第1のデータは第1のタイプを有し、第1のクライアント側ネットワークは少なくとも1つの第1のクライアント側レイヤを含むことができる、送信すること(904)、および、第2のクライアント側ネットワークを、第2のクライアントに送信することであって、第2のクライアント側ネットワークは、第2のクライアントからの第2のデータを処理するように構成され、第2のデータは第2のタイプを有し、第2のクライアント側ネットワークは少なくとも1つの第2のクライアント側レイヤを含むことができ、第1のタイプと第2のタイプは共通の関連付けを有する、送信すること(906)を含むことができる。
この方法は、第1のクライアントからの第1のデータで第1のクライアント側ネットワークをトレーニングし、第1のアクティベーションを生成すること(908)、第1のクライアント側ネットワークからサーバ側ネットワークに第1のアクティベーションを送信すること(910)、第2のクライアントからの第2のデータで第2のクライアント側ネットワークをトレーニングし、第2のアクティベーションを生成すること(912)、第2のクライアント側ネットワークからサーバ側ネットワークに第2のアクティベーションを送信すること(914)、第1のアクティベーションおよび第2のアクティベーションに基づいてサーバ側ネットワークの少なくとも1つのサーバ側レイヤをトレーニングして勾配を生成すること(916)、および、勾配をサーバ側ネットワークから第1のクライアント側ネットワークおよび第2のクライアント側ネットワークに送信すること(918)をさらに含むことができる。
異なるタイプのデータ間の共通の関連付けには、デバイス、人、消費者、患者、ビジネス、概念、病状、人々のグループ、プロセス、製品、および/またはサービスのうちの少なくとも1つを含めることができる。あらゆる概念、デバイス、または人は、様々なクライアントから取得され、様々な独立したクライアント側ネットワークによってカットまたは分割レイヤまで処理される、様々な異なるタイプのデータの共通の関連付けまたはテーマになる可能性がある。サーバ側ネットワークには、グローバル機械学習モデルを含めることができる。ニューラルネットワークには、重み、バイアス、およびハイパーパラメータを含めることができる。ハイパーパラメータは通常、トポロジパラメータやニューラルネットワークのサイズなど、学習プロセスを制御するために使用される値を持つパラメータに関連している。例えば、学習率、ミニバッチサイズ、クライアント側のレイヤ数、または様々なデータタイプに影響または関連するプロセスの制御に関連するパラメータは、ハイパーパラメータを表すことができる。
少なくとも1つの第1のクライアント側レイヤおよび少なくとも1つの第2のクライアント側レイヤはそれぞれ、同じ数のレイヤまたは異なる数のレイヤを含むことができる。それらは独立して動作するため、クライアント側ネットワークは、データを処理して、さらなるトレーニングのためにサーバ側ネットワークに渡すための適切な形式のベクトルまたはアクティベーションを生成する限り、異なる数のレイヤを持つことができる。サーバ側ネットワークと第1のクライアント側ネットワークおよび第2のクライアント側ネットワークとの間にカットレイヤが存在し得る。
図10は、サーバ710の観点から例示的な方法1000を示す。方法は、ニューラルネットワークを第1のクライアント側ネットワーク、第2のクライアント側ネットワーク、およびサーバ側ネットワークに分割すること(1002)、第1のクライアント側ネットワークを、第1のクライアントに送信することであって、第1のクライアント側ネットワークは、第1のクライアントからの第1のデータを処理するように構成され、第1のデータは第1のタイプを有し、第1のクライアント側ネットワークは少なくとも1つの第1のクライアント側レイヤを含むことができる、送信すること(1004)、および、第2のクライアント側ネットワークを、第2のクライアントに送信することであって、第2のクライアント側ネットワークは、第2のクライアントからの第2のデータを処理するように構成され、第2のデータは第2のタイプを有し、第2のクライアント側ネットワークは少なくとも1つの第2のクライアント側レイヤを含むことができ、第1のタイプと第2のタイプは共通の関連付けを有する、送信すること(1006)を含むことができる。
この方法は、サーバ側ネットワークで、第1のクライアントからの第1のデータでの第1のクライアント側ネットワークのトレーニングからの第1のアクティベーションを受信すること(1008)、サーバ側ネットワークで、第2のクライアントからの第2のデータでの第2のクライアント側ネットワークのトレーニングからの第2のアクティベーションを受信すること(1010)、第1のアクティベーションおよび第2のアクティベーションに基づいてサーバ側ネットワークの少なくとも1つのサーバ側レイヤをトレーニングして勾配を生成すること(1012)、および、勾配をサーバ側ネットワークから第1のクライアント側ネットワークおよび第2のクライアント側ネットワークに送信すること(1014)をさらに含むことができる。
それぞれの場合において、トレーニングに関するサーバ710のプロセスの一部は、サーバ710によって実行することができ、様々なクライアントにわたる値の平均化などの他の部分は、クライアントサイト、別の場所、または異なるクライアントにまたがる可能性がある異なるサーバ(図示せず)によって実行できることに留意されたい。
このアプローチにより、連合分割学習ツールセットを新しい方法で使用できるようになり、システムがニューラルネットワークを分割するときに、ブラインド相関708で、システムは、結果のトレーニング済みモデルを取得し、それを分割してトレーニング推論攻撃を適用することをより難しくすることができる。システムは、ニューラルネットワークを半分に(または2つの部分に)、上記の方法で分割することができるため、ニューラルネットワークの部分702A、704A、706Aから交換されるのは、アクティベーションレイヤ番号としても記述される数字の文字列または配列だけである。これらは単に数字または文字の配列であるため、第1のニューラルネットワーク部分702Aで起こることは、第2のニューラルネットワーク部分704Aで起こることとは異なる可能性がある。例えば、第1のニューラルネットワーク部分702Aは2レイヤの深さであり、第2のニューラルネットワーク部分704Aは90レイヤの深さであり得る。各出力が、ニューラルネットワーク710の上部に送信するために適切に構成された数時の列に解決される限り、順伝播と逆伝播が機能することができ、トレーニングが達成され得る。この理解は、ニューラルネットワークの異なる部分702A、704A、706Aで処理される異なるタイプのデータを受信し、モデルをトレーニングするために適切に処理できるという、本明細書で開示する新しい概念への道を開く。システムが異なるクライアントごとに異なる下半分702A、704A、706Aを作成できる場合、クライアント702、704、706は同じタイプのデータ(例えば、テキストと画像の間)を生成または処理する必要はなく、適切にフォーマットされたニューラルネットワーク部分702A、704A、706Aは、その異種データを処理し、サーバ710に送信できる構造化された出力を生成することができる。
一例では、クライアント1 702は人のECGを提供することができ、クライアント2 704は心臓の胸部X線を提供することができ、クライアント3 706は患者の血液中の最も関心のある4つのタンパク質の遺伝子プロファイルを提供することができる。ニューラルネットワーク部分702A、704A、706Aが、異なるそれぞれのタイプのデータを出力用の正しいベクトル構造まで処理し、異なるタイプのデータをサーバ710に提供できる場合、サーバ710は適切なニューラルネットワークで構成して、そのすべての情報を組み合わせて、異なるタイプのデータを利用できる診断を行うために使用されるモデルをトレーニングすることができる。
一態様では、ニューラルネットワーク部分702A、704A、706Aはそれぞれ異なるタイプのデータを処理するが、データに関連するいくつかの相関因子が存在する。上記の例では、すべてのデータは一般的に同じ人物に関連している可能性があり、一部のデータはECG関連であり、他のデータは遺伝子プロファイルに関連付けられているが、それでもそれらはすべて同じ人物のものである。したがって、本開示の一態様は、データが共通の関連付けを有することである。別の態様では、データは同じ人物に関連していない可能性があるが、共通の関連付けは、年齢、性別、人種、プロジェクト、概念、気候、株式市場、またはその他の要因に関連している可能性がある。例えば、すべてのデータが30~35歳の女性に関連している可能性がある。したがって、共通の関連付けには、適用方法にある程度の柔軟性がある。
別の例では、データはジェットエンジンストリームのカメラからの画像であり得、別のデータストリームはセンサーデータであり得、他のデータは飛行機の飛行特性であり得、共通の関連付けは飛行機であり得る。別の態様では、共通の関連付けは、あるタイプのデータが購買習慣であり、別のタイプのデータがWebサーフィンパターンであり、別のタイプのデータがユーザが送信する電子メールであり、別のタイプのデータがSiriまたは他の音声処理ツールからの音声であり、別のタイプのデータが、消費者が頻繁に使用する物理的な店舗やユーザの現在の場所などである可能性がある。サーバの出力は、異なるタイプの入力の分析に基づいてユーザに提供する広告である可能性がある。したがって、共通の関連付けは、異なるタイプのデータが概念に関連し得る使用可能な任意の概念に関することができる。
図11は、本明細書に開示されたシステムのいずれかに接続して使用することができるコンピュータ装置の例を示している。この例では、図11は、バスなどの接続1105を使用して互いに電気通信するコンポーネントを含むコンピューティングシステム1100を示している。システム1100は、処理ユニット(CPUまたはプロセッサ)1110と、読み出し専用メモリ(ROM)1120およびランダムアクセスメモリ(RAM)1125などのシステムメモリ1115を含む様々なシステムコンポーネントをプロセッサ1110に結合するシステム接続1105とを含む。システム1100は、プロセッサ1110に直接接続されるか、それと近接してあるか、またはその一部として統合されている、高速メモリのキャッシュを含むことができる。システム1100は、プロセッサ1110による迅速なアクセスのために、メモリ1115および/またはストレージデバイス1130からキャッシュ1112にデータをコピーすることができる。このようにして、キャッシュは、データを待っている間のプロセッサ1110の遅延を回避する性能向上を提供することができる。これらおよび他のモジュールは、プロセッサ1110を制御するか、または制御するように構成されて、様々なアクションを実行することができる。他のシステムメモリ1115も同様に使用可能であり得る。メモリ1115は、異なる性能特性を有する複数の異なるタイプのメモリを含むことができる。プロセッサ1110は、任意の汎用プロセッサと、プロセッサ1110を制御するように構成された、ストレージデバイス1130に格納されたサービス(モジュール)1 1132、サービス(モジュール)2 1134、およびサービス(モジュール)3 1136などの、ハードウェアまたはソフトウェアサービスまたはモジュール、ならびに、ソフトウェア命令が実際のプロセッサ設計に組み込まれている専用プロセッサを含むことができる。プロセッサ1110は、複数のコアまたはプロセッサ、バス、メモリコントローラ、キャッシュなどを含む、完全に自己完結型のコンピューティングシステムであり得る。マルチコアプロセッサは、対称または非対称であり得る。
デバイス1100とのユーザインタラクションを可能にするために、入力デバイス1145は、音声用のマイクロフォン、ジェスチャまたはグラフィック入力用のタッチ感知スクリーン、キーボード、マウス、モーション入力、音声など、任意の数の入力メカニズムを表すことができる。出力デバイス1135は、当業者に知られている多数の出力メカニズムのうちの1つまたは複数であってもよい。いくつかの例では、マルチモーダルシステムにより、ユーザは、デバイス1100と通信するために複数のタイプの入力を提供できるようになる。通信インタフェース1140は、一般に、ユーザ入力およびシステム出力を統制および管理することができる。特定のハードウェア構成での動作に制限はないため、ここでの基本機能は、開発されてくる改良されたハードウェアまたはファームウェア構成に簡単に置き換えることができる。
ストレージデバイス1130は不揮発性メモリであり、磁気カセット、フラッシュメモリカード、ソリッドステートメモリデバイス、デジタル多用途ディスク、カートリッジ、ランダムアクセスメモリ(RAM)1125、読み取り専用メモリ(ROM)1120、およびそれらのハイブリッドなど、コンピュータによってアクセス可能なデータを格納することができるハードディスクまたは他のタイプのコンピュータ可読媒体とすることができる。
ストレージデバイス1130は、プロセッサ1110を制御するためのサービスまたはモジュール1132、1134、1136を含むことができる。他のハードウェアまたはソフトウェアモジュールも考えられる。ストレージデバイス1130は、システム接続1105に接続することができる。一態様では、特定の機能を実行するハードウェアモジュールは、プロセッサ1110、接続1105、出力デバイス1135などの必要なハードウェアコンポーネントに関連してコンピュータ可読媒体に格納されたソフトウェアコンポーネントを含むことができ、機能を実行する。
いくつかの場合では、そのようなコンピューティングデバイスまたは装置は、プロセッサ、マイクロプロセッサ、マイクロコンピュータ、または上記で開示した方法のステップを実行するように構成されたデバイスの他のコンポーネントを含み得る。いくつかの例では、そのようなコンピューティングデバイスまたは装置は、RF信号を送信および受信するための1つまたは複数のアンテナを含み得る。いくつかの例では、そのようなコンピューティングデバイスまたは装置は、前述のように、RF信号を送信、受信、変調、および復調するためのアンテナおよびモデムを含み得る。
コンピューティングデバイスのコンポーネントは、回路に実装することができる。例えば、コンポーネントは、1つまたは複数のプログラム可能な電子回路(例えば、マイクロプロセッサ、グラフィック処理ユニット(GPU)、デジタル信号プロセッサ(DSP)、中央処理ユニット(CPU)、および/または他の適切な電子回路)を含み得る電子回路または他の電子ハードウェアを含み、および/またはそれらを使用して実装することができ、および/または、コンピュータソフトウェア、ファームウェア、またはそれらの任意の組み合わせを含み、および/またはそれらを使用して実装することができ、本明細書に記載されている様々な操作を実行することができる。コンピューティングデバイスは、ディスプレイ(出力デバイスの一例として、または出力デバイスに加えて)、データを通信および/または受信するように構成されたネットワークインタフェース、それらの任意の組み合わせ、および/または他のコンポーネント(複数可)をさらに含み得る。ネットワークインタフェースは、インターネットプロトコル(IP)ベースのデータまたは他のタイプのデータを通信および/または受信するように構成され得る。
上述の方法は、論理フロー図として示され、その操作は、ハードウェア、コンピュータ命令、またはそれらの組み合わせで実装できる一連の操作を表している。コンピュータ命令のコンテキストでは、操作は、1つまたは複数のプロセッサによって実行されると、列挙された操作を実行する、1つまたは複数のコンピュータ可読ストレージ媒体に格納されたコンピュータ実行可能命令を表す。一般に、コンピュータ実行可能命令には、特定の機能を実行する、または特定のデータタイプを実装するルーチン、プログラム、オブジェクト、コンポーネント、データ構造などが含まれる。操作が記述される順序は限定として解釈されることを意図しておらず、記述された操作の任意の数を任意の順序でおよび/または並行して組み合わせてプロセスを実装することができる。
さらに、本明細書で開示される方法は、実行可能命令で構成された1つまたは複数のコンピュータシステムの制御下で実行することができ、1つまたは複数のプロセッサ上で集合的に実行されるコード(例えば、実行可能命令、1つまたは複数のコンピュータプログラム、または1つまたは複数のアプリケーション)として、ハードウェアによって、またはそれらの組み合わせで実装することができる。上述のように、コードは、例えば、1つまたは複数のプロセッサによって実行可能な複数の命令を含むコンピュータプログラムの形式で、コンピュータ可読または機械可読ストレージ媒体に格納され得る。コンピュータ可読または機械可読ストレージ媒体は非一時的であってもよい。
「コンピュータ可読媒体」という用語は、ポータブルまたは非ポータブルストレージデバイス、光ストレージデバイス、ならびに命令(複数可)および/またはデータを格納、収容、または運ぶことができる様々な他の媒体を含むが、これらに限定されない。コンピュータ可読媒体は、データを格納することができ、無線または有線接続を介して伝播する搬送波および/または一時的な電子信号を含まない非一時的媒体を含むことができる。非一時的媒体の例には、磁気ディスクまたはテープ、コンパクトディスク(CD)またはデジタル多用途ディスク(DVD)などの光ストレージ媒体、フラッシュメモリ、メモリまたはメモリデバイスが含まれ得るが、これらに限定されない。コンピュータ可読媒体は、手順、関数、サブプログラム、プログラム、ルーチン、サブルーチン、モジュール、ソフトウェアパッケージ、クラス、または任意の命令、データ構造、またはプログラムステートメントの組み合わせを表すことができるコードおよび/または機械実行可能命令を格納していてもよい。コードセグメントは、情報、データ、引数、パラメータ、またはメモリ内容を渡し、および/または受け取ることによって、別のコードセグメントまたはハードウェア回路に結合することができる。情報、引数、パラメータ、データなどは、メモリ共有、メッセージパッシング、トークンパッシング、ネットワーク伝送などを含む任意の適切な手段を介して受け渡し、転送、または送信することができる。
いくつかの実施形態では、コンピュータ可読ストレージデバイス、媒体、およびメモリは、ケーブルまたはビットストリームを含むワイヤレス信号などを含むことができる。しかしながら、言及された場合、非一時的なコンピュータ可読ストレージ媒体は、エネルギー、キャリア信号、電磁波、および信号自体などの媒体を明示的に除外する。
本明細書で提供される実施形態および例の完全な理解を提供するために、具体的な詳細が上記の説明で提供されている。しかしながら、これらの具体的な詳細なしに実施形態を実施できることは、当業者には理解されるであろう。説明を明確にするために、いくつかの例では、本技術は、ソフトウェア、またはハードウェアとソフトウェアの組み合わせで具現化された方法におけるデバイス、デバイスコンポーネント、ステップまたはルーチンを含む個々の機能ブロックを含むものとして提示され得る。図に示され、かつ/または本明細書に記載されたもの以外の追加のコンポーネントが使用されてもよい。例えば、回路、システム、ネットワーク、プロセス、および他のコンポーネントは、不必要な詳細で実施形態を不明瞭にしないために、ブロック図形式のコンポーネントとして示される場合がある。他の例では、周知の回路、プロセス、アルゴリズム、構造、および技術は、実施形態を不明瞭にすることを避けるために、不必要な詳細なしに示される場合がある。
個々の実施形態は、フローチャート、フロー図、データフロー図、構造図、またはブロック図として示されるプロセスまたは方法として上記で説明され得る。フローチャートでは操作を順次処理として説明している場合があるが、多くの操作は並行して、または同時に実行できる。さらに、操作の順序を並べ替えることもできる。プロセスは、その操作が完了すると終了するが、図に含まれていない追加のステップを含めることができる。プロセスは、方法、関数、手順、サブルーチン、サブプログラムなどに対応し得る。プロセスが関数に対応する場合、その終了は、呼び出し関数またはメイン関数への関数の戻りに対応し得る。
上述の例によるプロセスおよび方法は、格納された、またはコンピュータ可読媒体から利用可能なコンピュータ実行可能命令を使用して実施することができる。そのような命令は、例えば、汎用コンピュータ、専用コンピュータ、または処理装置に特定の機能または機能群を実行させる、またはそうでなければ構成する命令およびデータを含むことができる。使用されるコンピュータリソースの一部は、ネットワーク経由でアクセスできる。コンピュータ実行可能命令は、例えば、バイナリ、アセンブリ言語、ファームウェア、ソースコードなどの中間フォーマット命令であり得る。説明された例による方法中に命令、使用される情報、および/または作成された情報を格納するために使用され得るコンピュータ可読媒体の例には、磁気または光ディスク、フラッシュメモリ、不揮発性メモリを備えたUSBデバイス、ネットワーク化されたストレージデバイスなどが含まれる。
これらの開示によるプロセスおよび方法を実装するデバイスは、ハードウェア、ソフトウェア、ファームウェア、ミドルウェア、マイクロコード、ハードウェア記述言語、またはそれらの任意の組み合わせを含むことができ、様々なフォームファクタのいずれかを取ることができる。ソフトウェア、ファームウェア、ミドルウェア、またはマイクロコードで実装される場合、必要なタスクを実行するためのプログラムコードまたはコードセグメント(例えば、コンピュータプログラム製品)は、コンピュータ可読または機械可読媒体に格納することができる。プロセッサ(複数可)は、必要なタスクを実行できる。フォームファクタの典型的な例には、ラップトップ、スマートフォン、携帯電話、タブレットデバイス、またはその他の小型フォームファクタのパーソナルコンピュータ、携帯情報端末、ラックマウントデバイス、スタンドアロンデバイスなどが含まれる。本明細書で説明する機能は、周辺機器またはアドインカードで具現化することもできる。さらなる例として、そのような機能は、単一のデバイスで実行される異なるチップまたは異なるプロセスの中で回路基板上に実装することもできる。
命令、そのような命令を伝達するための媒体、それらを実行するためのコンピューティングリソース、およびそのようなコンピューティングリソースをサポートするための他の構造は、本開示で説明する機能を提供するための例示的な手段である。
前述の説明では、本出願の態様をその特定の実施形態を参照して説明したが、本出願はそれに限定されないことを当業者は理解するであろう。したがって、本出願の例示的な実施形態が本明細書で詳細に説明されたが、本発明の概念は、別の方法で様々に具現化および使用され得ること、および添付の特許請求の範囲は、先行技術により限定されることを除いて、そのような変形を含むように解釈されることが意図されることが理解されるべきである。上述の出願の様々な特徴および態様は、個別にまたは一緒に使用することができる。さらに、実施形態は、本明細書のより広い趣旨および範囲から逸脱することなく、本明細書に記載されているものを超えて、任意の数の環境および用途で利用することができる。したがって、明細書および図面は、限定的なものではなく、例示的なものと見なされるべきである。説明のために、方法は特定の順序で説明された。代替実施形態では、説明した順序とは異なる順序で方法を実行できることを理解されたい。
当業者は、本明細書で使用されるより小さい(「<」)およびより大きい(「>」)記号または用語を、この説明の範囲から逸脱することなく、以下(「≦」)および以上(「≧」)記号にそれぞれ置き換えることができることを理解するであろう。
コンポーネントが特定の操作を実行するように「構成されている」と説明されている場合、そのような構成は、例えば、その操作を実行する電子回路または他のハードウェアを設計することによって、プログラム可能な電子回路(例えば、マイクロプロセッサ、または他の適切な電子回路)をプログラミングして操作を実行することによって、またはそれらの任意の組み合わせで達成することができる。
「結合された」という語句は、別のコンポーネントに直接的または間接的に物理的に接続されている任意のコンポーネント、および/または別のコンポーネントと直接的または間接的に通信している(例えば、有線または無線接続および/または他の適切な通信インタフェースを介して他のコンポーネントに接続されている)任意のコンポーネントを指す。
セットの「少なくとも1つ」および/またはセットの「1つまたは複数」を列挙する請求項文言または他の文言は、セットの1つの部材またはセットの複数の部材(任意の組み合わせ)が請求項を満たすことを示す。例えば、「AおよびBの少なくとも1つ」または「AまたはBの少なくとも1つ」を列挙する請求項文言は、A、B、またはAおよびBを意味する。別の例では、「A、B、およびCの少なくとも1つ」または「A、B、またはCの少なくとも1つ」を列挙する請求項文言は、A、B、C、またはAとB、またはAとC、またはBとC、またはAとBとCを意味する。セットの「少なくとも1つ」および/またはセットの「1つまたは複数」という文言は、セットを、セットに列挙されている項目に限定しない。例えば、「AとBの少なくとも1つ」または「AまたはBの少なくとも1つ」を列挙する請求項文言は、A、B、またはAとBを意味することができ、AとBのセットに列挙されていない項目をさらに含むことができる。
添付の特許請求の範囲内の態様を説明するために様々な例および他の情報が使用されたが、当業者はこれらの例を使用して様々な実装形態を導き出すことができるため、そのような例の特定の特徴または配置に基づいて、特許請求の範囲を限定することを暗示すべきではない。さらに、いくつかの主題は、構造的特徴および/または方法ステップの例に固有の言語で説明された可能性があるが、添付の特許請求の範囲で定義される主題は、これらの説明された特徴または行為に必ずしも限定されないことが理解されるべきである。例えば、そのような機能は、本明細書で識別されたもの以外のコンポーネントで異なる方法で分散または実行することができる。むしろ、説明された特徴およびステップは、添付の特許請求の範囲内のシステムのコンポーネントおよび方法の例として開示されている。
セットの「少なくとも1つ」を列挙する請求項文言は、セットの1つの部材またはセットの複数の部材が請求項を満たすことを示す。例えば、「AとBの少なくとも1つ」を列挙する請求項文言は、A、B、またはAとBを意味する。

Claims (20)

  1. ニューラルネットワークを第1のクライアント側ネットワーク、第2のクライアント側ネットワーク、およびサーバ側ネットワークに分割することと、
    前記第1のクライアント側ネットワークを、第1のクライアントに送信することであって、前記第1のクライアント側ネットワークは、前記第1のクライアントからの第1のデータを処理するように構成され、前記第1のデータは第1のタイプを有し、前記第1のクライアント側ネットワークは少なくとも1つの第1のクライアント側レイヤを含む、送信することと、
    前記第2のクライアント側ネットワークを、第2のクライアントに送信することであって、前記第2のクライアント側ネットワークは、前記第2のクライアントからの第2のデータを処理するように構成され、前記第2のデータは第2のタイプを有し、前記第2のクライアント側ネットワークは少なくとも1つの第2のクライアント側レイヤを含み、前記第1のタイプと前記第2のタイプは異なるタイプであるが、共通の関連付けを有する、送信することと、
    前記第1のクライアントからの第1のデータで前記第1のクライアント側ネットワークをトレーニングし、第1のアクティベーションを生成することと、
    前記第1のクライアント側ネットワークから前記サーバ側ネットワークに前記第1のアクティベーションを送信することと、
    前記第2のクライアントからの第2のデータで前記第2のクライアント側ネットワークをトレーニングし、第2のアクティベーションを生成することと、
    前記第2のクライアント側ネットワークから前記サーバ側ネットワークに前記第2のアクティベーションを送信することと、
    前記第1のアクティベーションおよび前記第2のアクティベーションに基づいて前記サーバ側ネットワークの少なくとも1つのサーバ側レイヤをトレーニングして勾配を生成することと、
    前記勾配を前記サーバ側ネットワークから前記第1のクライアント側ネットワークおよび前記第2のクライアント側ネットワークに送信することと、
    を含む、方法。
  2. 前記共通の関連付けが、デバイス、人、消費者、患者、ビジネス、概念、病状、人々のグループ、プロセス、製品および/またはサービスのうちの少なくとも1つを含む、請求項1に記載の方法。
  3. 前記サーバ側ネットワークがグローバル機械学習モデルを含む、請求項1に記載の方法。
  4. 前記ニューラルネットワークが、重み、バイアス、およびハイパーパラメータを含む、請求項1に記載の方法。
  5. 前記少なくとも1つの第1のクライアント側レイヤおよび前記少なくとも1つの第2のクライアント側レイヤが、同じ数のレイヤまたは異なる数のレイヤを含む、請求項1に記載の方法。
  6. 前記サーバ側ネットワークと前記第1のクライアント側ネットワークおよび前記第2のクライアント側ネットワークとの間にカットレイヤが存在する、請求項1に記載の方法。
  7. 前記第1のタイプがテキストデータを含み、前記第2のタイプが画像データを含む、請求項1に記載の方法。
  8. 前記第1のクライアント側ネットワークおよび前記第2のクライアント側ネットワークは独立しており、独立して動作する、請求項7に記載の方法。
  9. 前記第1のタイプが表データを含み、前記第2のタイプが画像データを含む、請求項1に記載の方法。
  10. システムであって、
    プロセッサと、
    コンピュータ可読ストレージデバイスであって、前記プロセッサによって実行されると、前記プロセッサに、
    ニューラルネットワークを第1のクライアント側ネットワーク、第2のクライアント側ネットワーク、およびサーバ側ネットワークに分割することと、
    前記第1のクライアント側ネットワークを、第1のクライアントに送信することであって、前記第1のクライアント側ネットワークは、前記第1のクライアントからの第1のデータを処理するように構成され、前記第1のデータは第1のタイプを有し、前記第1のクライアント側ネットワークは少なくとも1つの第1のクライアント側レイヤを含む、送信することと、
    前記第2のクライアント側ネットワークを、第2のクライアントに送信することであって、前記第2のクライアント側ネットワークは、前記第2のクライアントからの第2のデータを処理するように構成され、前記第2のデータは第2のタイプを有し、前記第2のクライアント側ネットワークは少なくとも1つの第2のクライアント側レイヤを含み、前記第1のタイプと前記第2のタイプは異なるタイプであるが、共通の関連付けを有する、送信することと、
    前記サーバ側ネットワークで、前記第1のクライアントからの第1のデータでの前記第1のクライアント側ネットワークのトレーニングからの第1のアクティベーションを受信することと、
    前記サーバ側ネットワークで、前記第2のクライアントからの第2のデータでの前記第2のクライアント側ネットワークのトレーニングからの第2のアクティベーションを受信することと、
    前記第1のアクティベーションおよび前記第2のアクティベーションに基づいて前記サーバ側ネットワークの少なくとも1つのサーバ側レイヤをトレーニングして勾配を生成することと、
    前記勾配を前記サーバ側ネットワークから前記第1のクライアント側ネットワークおよび前記第2のクライアント側ネットワークに送信することと、
    を含む、操作を実行させる命令を格納するコンピュータ可読ストレージデバイスと、
    を含む、システム。
  11. 前記共通の関連付けが、デバイス、人、消費者、患者、ビジネス、概念、病状、人々のグループ、プロセス、製品および/またはサービスのうちの少なくとも1つを含む、請求項10に記載のシステム。
  12. 前記サーバ側ネットワークがグローバル機械学習モデルを含む、請求項10に記載のシステム。
  13. 前記ニューラルネットワークが、重み、バイアス、およびハイパーパラメータを含む、請求項10に記載のシステム。
  14. 前記少なくとも1つの第1のクライアント側レイヤおよび前記少なくとも1つの第2のクライアント側レイヤが、同じ数のレイヤまたは異なる数のレイヤを含む、請求項10に記載のシステム。
  15. 前記サーバ側ネットワークと前記第1のクライアント側ネットワークおよび前記第2のクライアント側ネットワークとの間にカットレイヤが存在する、請求項10に記載のシステム。
  16. 前記第1のタイプおよび前記第2のタイプが異なるタイプのデータである、請求項10に記載のシステム。
  17. 前記第1のタイプが表データまたは時系列データを含み、前記第2のタイプが画像データを含む、請求項10に記載のシステム。
  18. ニューラルネットワークを第1のクライアント側ネットワーク、第2のクライアント側ネットワーク、およびサーバ側ネットワークに分割することと、
    前記第1のクライアント側ネットワークを、第1のクライアントに送信することであって、前記第1のクライアント側ネットワークは、前記第1のクライアントからの第1のデータを処理するように構成され、前記第1のデータは第1のタイプを有し、前記第1のクライアント側ネットワークは少なくとも1つの第1のクライアント側レイヤを含む、送信することと、
    前記第2のクライアント側ネットワークを、第2のクライアントに送信することであって、前記第2のクライアント側ネットワークは、前記第2のクライアントからの第2のデータを処理するように構成され、前記第2のデータは第2のタイプを有し、前記第2のクライアント側ネットワークは少なくとも1つの第2のクライアント側レイヤを含み、前記第1のタイプと前記第2のタイプは異なるタイプであるが、共通の関連付けを有する、送信することと、
    前記サーバ側ネットワークで、前記第1のクライアントからの第1のデータでの前記第1のクライアント側ネットワークのトレーニングからの第1のアクティベーションを受信することと、
    前記サーバ側ネットワークで、前記第2のクライアントからの第2のデータでの前記第2のクライアント側ネットワークのトレーニングからの第2のアクティベーションを受信することと、
    前記第1のアクティベーションおよび前記第2のアクティベーションに基づいて前記サーバ側ネットワークの少なくとも1つのサーバ側レイヤをトレーニングして勾配を生成することと、
    前記勾配を前記サーバ側ネットワークから前記第1のクライアント側ネットワークおよび前記第2のクライアント側ネットワークに送信することと、
    を含む、方法。
  19. 前記第1のタイプおよび前記第2のタイプは異なるタイプのデータである、請求項18に記載の方法。
  20. 前記第1のタイプが表データまたは時系列データを含み、前記第2のタイプが画像データを含む、請求項18に記載のシステム。
JP2022567077A 2020-05-06 2021-05-06 非公開マルチモーダル人工知能プラットフォームを提供するためのシステムおよび方法 Pending JP2023524289A (ja)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US202063020930P 2020-05-06 2020-05-06
US63/020,930 2020-05-06
US202117180475A 2021-02-19 2021-02-19
US17/180,475 2021-02-19
PCT/US2021/031012 WO2021226302A1 (en) 2020-05-06 2021-05-06 Systems and methods for providing a private multi-modal artificial intelligence platform

Publications (1)

Publication Number Publication Date
JP2023524289A true JP2023524289A (ja) 2023-06-09

Family

ID=78468414

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2022567077A Pending JP2023524289A (ja) 2020-05-06 2021-05-06 非公開マルチモーダル人工知能プラットフォームを提供するためのシステムおよび方法

Country Status (5)

Country Link
EP (1) EP4147178A4 (ja)
JP (1) JP2023524289A (ja)
KR (1) KR20230005900A (ja)
CA (1) CA3177679A1 (ja)
WO (1) WO2021226302A1 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023144022A1 (en) * 2022-01-26 2023-08-03 Cardiologs Technologies Sas Systems and methods for restricting rights to an electrocardiogram processing system
CN118633336A (zh) * 2022-02-24 2024-09-10 华为技术有限公司 用于自适应交换人工智能/机器学习参数的方法和装置
CN116151370B (zh) * 2023-04-24 2023-07-21 西南石油大学 一种模型参数优化选择系统

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10755172B2 (en) * 2016-06-22 2020-08-25 Massachusetts Institute Of Technology Secure training of multi-party deep neural network
US12026219B2 (en) 2019-12-13 2024-07-02 TripleBlind, Inc. Systems and methods for efficient computations on split data and split algorithms

Also Published As

Publication number Publication date
KR20230005900A (ko) 2023-01-10
WO2021226302A1 (en) 2021-11-11
CA3177679A1 (en) 2021-11-11
EP4147178A4 (en) 2023-10-18
EP4147178A1 (en) 2023-03-15

Similar Documents

Publication Publication Date Title
Liu et al. From distributed machine learning to federated learning: A survey
JP2023524289A (ja) 非公開マルチモーダル人工知能プラットフォームを提供するためのシステムおよび方法
US20220383132A1 (en) Semantic learning in a federated learning system
US11991156B2 (en) Systems and methods for secure averaging of models for federated learning and blind learning using secure multi-party computation
WO2022003435A1 (en) Annotating unlabeled data using classifier error rates
Karuppiah et al. RETRACTED ARTICLE: Secured storage and disease prediction of E-health data in cloud
US20220103823A1 (en) Multi-quality video super resolution with micro-structured masks
US12088565B2 (en) Systems and methods for privacy preserving training and inference of decentralized recommendation systems from decentralized data
Qin et al. A split-federated learning and edge-cloud based efficient and privacy-preserving large-scale item recommendation model
US12093245B2 (en) Temporal directed cycle detection and pruning in transaction graphs
EP4399647A1 (en) Systems and methods for providing a split inference approach to protect data and model
WO2023038978A1 (en) Systems and methods for privacy preserving training and inference of decentralized recommendation systems from decentralized data
US20230186168A1 (en) Performing automated tuning of hyperparameters in a federated learning environment
CN116431915A (zh) 一种基于联邦学习和注意力机制的跨域推荐方法与装置
US20230252277A1 (en) Systems and methods for enabling the training of sequential models using a blind learning approach applied to a split learning
US20230306254A1 (en) Systems and methods for quantifying data leakage from a split layer
US20230244914A1 (en) Systems and methods for training predictive models on sequential data using 1-dimensional convolutional layers in a blind learning approach
US20210358622A1 (en) Image analysis including synthetic images
WO2023039001A1 (en) Systems and methods for providing a split inference approach to protect data and model
US11645461B2 (en) User-centric optimization for interactive dictionary expansion
US10579828B2 (en) Method and system to prevent inference of personal information using pattern neutralization techniques
US20240086780A1 (en) Finding similar participants in a federated learning environment
US20220230068A1 (en) Channel scaling: a scale-and-select approach for selective transfer learning

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20240507

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A711

Effective date: 20240903