特許請求の範囲に記載されている構造及び方法の詳細な実施態様が本明細書において開示されている。しかしながら、開示された実施態様が、様々な形態で具現化されうる特許請求の範囲に記載された構造及び方法の例にすぎないことが、理解されることができる。しかしながら、本発明は、様々な形態で具体化されてもよく、本明細書において記載された例示的な実施態様に制限されると解釈されるべきでない。寧ろ、これらの例示的な実施態様は、本開示が徹底的且つ完全なものとなり、並びに当業者にこの発明の範囲を完全に伝えることができるように提供される。発明の詳細な説明において、周知の特徴及び技術の詳細は、提示された実施態様を不必要に分かりにくくするのを避ける為に、省略されうる。
以下に記載された例示的な実施態様は、セマンティック学習で高められた連合学習の為のシステム、方法、及びプログラム製品を提供する。本実施態様は、或るサンプルが異なる参加者又は当事者の為に異なるセマンティックな意味を有する場合であってさえも、連合学習システムにおける各参加者又は各当事者の為のラベルを正確に且つ見掛け上コード化する為の能力を有する。本実施態様はまた、全ての当事者を通じて実行される完全な再訓練を必要とすること無しに、新しいクラスを深層学習モデルへと迅速化された様式で追加することを可能にする。従って、本実施態様は、連合学習システムの為のコンピューティングリソース及び訓練リソースを節約し、並びに、該連合学習システムが、参加する各当事者のサンプルの為の固有のサンプル及びプライベートなセマンティックラベルへのその適応性を向上させることを可能にする。
図1を参照すると、1つの実施態様に従う例示的なネットワーク化されたコンピュータ環境100が描かれている。幾つかの実施態様において、ネットワーク化されたコンピュータ環境100は、連合学習システムであると見なされてもよい。ネットワーク化されたコンピュータ環境100は、複数のコンピュータ、すなわち、第1のコンピュータ102a、第2のコンピュータ102b、及び第3のコンピュータ102c、を備えていてもよい。図1は、ネットワーク化されたコンピュータ環境100における3つのそのようなクライアントコンピュータを示しているが、実際には、ネットワーク化されたコンピュータ環境100内に、より多くのそのようなクライアントコンピュータが存在することができる。図7に関して以下に説明されているように、第1、第2、及び第3のコンピュータ102a、102b及び102cの各々は、連合学習プログラム110a、110b、110cを実行及び格納することが可能な1以上のプロセッサとメモリとを含むことができる。ネットワーク化されたコンピュータ環境100はまた、データベース114及び通信ネットワーク116と相互作用しうる連合学習プログラム110dを実行することを可能にするところのサーバ112を備えていてもよい。ネットワーク化されたコンピュータ環境100は、複数のサーバ112を備えていてもよく、そのうちの1つのみが示されている。通信ネットワーク116は、様々なタイプの通信ネットワーク、例えば、ワイドエリアネットワーク(WAN:wide area network)、ローカルエリアネットワーク(LAN:local area network)、電話回線網、無線ネットワーク、公衆交換網、若しくは衛星ネットワーク又はそれらの組み合わせ、を包含しうる。図1は、1つの実装の例示のみを提供しており、異なる実施態様が実装されうる環境に関して如何なる制限も意味しないことが理解されるべきである。描かれた環境に対して多くの変更が、設計及び実装要件に基づいてなされうる。
第1、第2、及び第3のコンピュータ102a、102b及び102cは、通信ネットワーク116を介して、サーバコンピュータ112と通信してもよい。通信ネットワーク116は、接続、例えば、有線通信リンク、無線通信リンク、又は光ファイバケーブル、を包含しうる。図7を参照して説明されるように、サーバコンピュータ112は、内部コンポーネント902a及び外部コンポーネント904a夫々を備えていてもよく、並びに第1、第2及び第3のクライアントコンピュータ102a、102b及び102c夫々は、内部コンポーネント902b及び外部コンポーネント904b夫々を備えていてもよい。サーバコンピュータ112はまた、クラウドコンピューティングサービスモデル、例えば、サービスとしてのソフトウェア(SaaS:Software as a Service)、サービスとしてのプラットフォーム(PaaS:Platform as a Service)、又はサービスとしてのインフラストラクチャ(IaaS:Infrastructure as a Service)、で動作していてもよい。サーバ112はまた、クラウドコンピューティングデプロイメントモデル、例えば、プライベートクラウド、コミュニティクラウド、パブリッククラウド、又はハイブリッドクラウド、において配置されていてもよい。第1、第2、及び第3のコンピュータ102a、102b及び102cは、例えば、モバイルデバイス、電話、パーソナルデジタルアシスタント、ネットブック、ラップトップコンピュータ、タブレットコンピュータ、デスクトップコンピュータ、又はプログラムを実行し、ネットワークにアクセスし、及びデータベース114にアクセスすることができる任意のタイプのコンピューティングデバイスであってもよい。本実施態様の様々な実装に従うと、連合学習プログラム110a、110b、110c及び110dは、様々なストレージデバイス、例えばこれらに限定されないが、コンピュータ/モバイルデバイス102、ネットワーク化されたサーバ112、又はクラウドストレージサービス、内に埋め込まれていてもよいところのデータベース114と相互作用してもよい。
本実施態様に従うと、クライアントコンピュータ又はサーバコンピュータ112を用いるユーザは、連合学習プログラム110a、110b、110c及び110dを用いて、深層学習モデルを訓練する為のセマンティック学習で高められた連合学習を実行しうる。セマンティック学習で高められた連合学習方法が、図2~図9を参照して、以下に詳細に説明されている。
サーバコンピュータ112は、連合学習システムの一部であるアグリゲータと見なされてもよい。連合学習の場合、該アグリゲータは、連合学習システムにおける全ての利用可能な当事者にクエリを発行してもよく、例えば、該アグリゲータは、図1及び図5において示されているネットワーク化されたコンピュータ環境100内の第1、第2及び第3のコンピュータ102a、102b及び102cの各々にクエリを発行してもよい。当事者の各々は、それらの独自のデータセットを有する。連合学習システムにおいて、当事者は、該システムにおける他の当事者の生データを見ることができない。各当事者は、それ自体のローカル学習モデルを有していてもよい。該アグリゲータによって行われるクエリは、個々の当事者の為のローカル学習モデルの現在のモデルパラメータが何であるかについての問い合わせでありうる。該クエリは、当事者が該アグリゲータに何らかの情報を提供することを結果として生じうる。該アグリゲータは、当事者のデータセットに基づいて、特定の質問に対する答えが何であるかを尋ねうる。当事者は、該当事者自身のローカルデータに基づいて、該当事者の答えを生成しうる。幾つかの事例において、該当事者は、返答を生成する為に役立つクライアントコンピュータ内に格納され且つ動作するローカル学習モデルを有していてもよい。該当事者は、該当事者自身の応答を生成し、そして、該応答を該アグリゲータに送り返す。該アグリゲータが全ての当事者から、又は閾値を超える十分な数の当事者から応答を受け取った後、該アグリゲータは、全ての応答の集約又は合成を実行し、そして、その結果を使用して、該アグリゲータによって維持され且つアグリゲータコンピュータ内に記憶され且つ動作されるところの機械学習モデルを更新する。これらの訓練/チューニングセッション又はサイクルの幾つかが実行された後、次に、最終的な機械学習モデル、例えば、グローバルモデル又はニューラルネットワーク、が、アグリゲータによって生成され、並びに、全ての当事者と、例えば、該第1、第2及び第3のコンピュータ102a、102b及び102c、と共有される。該生データは、各当事者のサイトに残る。連合学習システムで実装された図1において示されている実施態様の場合、サーバコンピュータ112は、第1、第2、及び第3のコンピュータ102a、102b及び102cにクエリを送信し、この集約工程を実行してグローバルモデル又はニューラルネットワークを生成し、そして次に、グローバルモデル又はニューラルネットワークを第1、第2、及び第3のコンピュータ102a、102b及び102cに送信するよう構成される。
連合学習は例えば、モノのインターネット(IoT:Internet of Things)ネットワーク内に又はスマートフォンのネットワーク内に実装されることができる。これらの事例において、多くの当事者が訓練に参加しうる。該ネットワークにおける様々なデバイスのデータは、該デバイスが個々のデバイス又はスマートフォン上にある個々の生データをクラウドを通じて共有すること無しに、該深層学習モデルを訓練する為に使用されることができる。生データは、当事者の識別データ(identity data)を含む。少なくとも幾つかの実施態様において、識別データが取り除かれている匿名化されたデータは、生データと見なされない場合がある。
別の在りうる実装において、市場における競合他社が協力して、それらの顧客の情報のプライバシーをも保護しながら、モデルを訓練する為に連合学習を使用することができる。競合他社が協力するこのシナリオは、先に説明されたシステムと比較して、システムを訓練する為に役立つより少ない当事者を含みうる。このシナリオにおいて、例えば、銀行が個々の顧客の個々の生の銀行データを共有又は開示する必要無しに、マネーロンダリングを検出するシステムを訓練する為に、複数の銀行によって連合学習が使用される可能性がある。
他の状況において、個々のデバイスが接続性の制約を受け並びにクラウドにそれらの情報を共有する機会が少ない場合においても、連合学習がまた実施される場合がある。例えば、火星上にいるロボットは、そのデータを地球又は地球を周回する衛星に送信する為のデータ送信の機会があまりない。ローカルデバイスは、生データのその完全なコンパイルを送信する代わりに、ローカルでモデルを訓練し、そして次に、その訓練したモデルをその少ない送信機会の間に送信しうる。特徴量及びラベルを含むローカルデータセットは、所有者/個々の当事者によって保持され、並びに該連合学習システム内の他のエンティティは、該連合学習システム内の他の当事者のローカルデータセットにアクセスすることができない。
連合学習システムは、幾つかの事例において、予測タイピング又は予測スピーチにおいて実装される。連合学習システムは、画像を分類する為に実装されてもよく、又はオーディオ声信号を分類する為に実装されてもよい。
連合学習システムは、安全なアグリゲーションを使用することによって、個々の当事者の生データが他の当事者と共有されないように保護しうる。当事者が該深層学習モデルに追加する固有のサンプルを有する場合に、その情報は、該アグリゲータに匿名で提供されてもよい。従って、該アグリゲータは、サンプルが該連合学習システムのどの特定の当事者又はマシンから来たかを知ること無しに、該サンプルが該連合学習システムの該当事者のうちのどこから来たかを認識することができる場合がある。当事者は、ローカルモデル若しくは訓練サンプルサイズ又はそれらの組み合わせのモデルパラメータ若しくはモデル重みをアグリゲータと共有することができる。当事者はまた、該ローカルデータセットに基づいて計算された勾配を該アグリゲータと共有することができる。これらのパラメータ又は重み又は勾配のみがアグリゲータと共有される場合、特徴及び個々のラベルを含む生データは、当事者のコンピューティングデバイスで非公開のままであってもよい。
ここで図2を参照すると、セマンティック学習で高められた深層学習の為の例示的なプロセス200を示す動作フローチャート図が示されている。このプロセス200において、連合学習プログラム110a、110b、110c及び110dは、少なくとも1つの実施態様に従った行動をとるであろう。
図2に描かれているように、プロセス200は、セマンティック学習で高められた例示的な深層学習プロセスを含む。プロセス200は、アグリゲータがオートエンコーダを該連合学習システムのコンピューティングデバイスに送信する、工程202で開始されうる。該オートエンコーダは通信ネットワーク116を介して送信されてもよく、該通信ネットワーク116は、図1に関して上述されているように、様々なタイプの通信ネットワーク、例えば、ワイドエリアネットワーク(WAN)、ローカルエリアネットワーク(LAN)、電話回線網、無線ネットワーク、公衆交換網、若しくは衛星ネットワーク又はそれらの組み合わせ、を包含し得、並びに、接続、例えば、有線通信リンク、無線通信リンク、又は光ファイバケーブル、を包含しうる。
少なくとも幾つかの実施態様において、このオートエンコーダは、予め訓練されたオートエンコーダでありうる。深層学習モデルを訓練する為に、クラスの総数が固定され、並びに静的であるべきであり、並びにそれらのクラスの為の定義が提供されるはずである。それ故に、オートエンコーダを予め訓練する為に、オペレータは、以前の深層学習モデルでの経験に基づいて、又は深層学習モデルで受信され及び解析されると予想される潜在的なサンプルに関する教育的推測に基づいて、クラスの数及びそれらのクラスの為の定義を入力しうる。しかしながら、オートエンコーダを訓練することが、ラベルが訓練中に必要とされないように、教師なしでもよい。画像がオートエンコーダ内に供給されると、該オートエンコーダのエンコーダが画像から高レベルの特徴を抽出する。該オートエンコーダのデコーダは、抽出された特徴量を用いて該画像を再構成しうる。該エンコーダとデコーダは一緒になって該オートエンコーダを生成する為に役立つ。予め訓練されたオートエンコーダを使用することは、訓練時間を短縮し、且つ該オートエンコーダの性能を向上させることに役立つ。幾つかの事例において、該オートエンコーダは、クラスの数が知られること無しに、予め訓練されうる。予め訓練されたオートエンコーダを使用することは、該オートエンコーダの汎化に役立つ。
図3に関して後述されているオートエンコーダは、深層学習モデルを備えていてもよい。該オートエンコーダは、データを入力として受け取り、そして、該深層学習モデルを使用して、各データサンプルから高レベルの特徴ベクトルを抽出する。該深層学習モデルは、ニューラルネットワーク、例えば畳み込みニューラルネットワーク、でありうる。
プロセス200の工程204において、該連合学習システムの個々のコンピューティングデバイス、例えば図1に示す第1、第2、及び第3のコンピュータ102a、102b及び102c、は、工程202において受信された該オートエンコーダを訓練し、そして、その結果、訓練済みのオートエンコーダを生成する。後述されている図3は、オートエンコーダとそのコンポーネントの一例を示す図である。該オートエンコーダのこの訓練は、個々の当事者が、該オートエンコーダの学習モデルへの入力として、それらのサンプル又はサンプルデータをオートエンコーダに実行又は供給することによって行われる。次に、損失関数が各当事者について用いられて、該オートエンコーダの学習モデルのパラメータを徐々に調整する。該損失関数が実行されて損失量を出し、該パラメータが徐々に調整されて損失量を減らそうとし、そして、該損失関数が再度実行される。該損失関数は、該オートエンコーダの性能を測定する。
工程204は、該連合学習システムの個々のコンピューティングデバイスによって、例えば、第1、第2、及び第3のコンピュータ102a、102b及び102cによって、該オートエンコーダの逐次的な訓練を含みうる。該逐次的な訓練において、該オートエンコーダは、最初に、特定のコンピューティングデバイスに、例えば第1のコンピュータ102aに、送信されてもよく、それは、該オートエンコーダを最初に訓練して、部分的に訓練されたオートエンコーダを生成する。次に、第1のコンピュータ102aは、該部分的に訓練されたオートエンコーダを別のコンピューティングデバイスに、例えば第2のコンピュータ102bに、送信してもよい。この他のコンピューティングデバイスは更に、自身のデータを該深層学習モデルへと供給し、そして、該深層学習モデルのパラメータを徐々に調整する為のガイダンスの為の損失関数を繰り返し実行することによって、該部分的に訓練されたオートエンコーダを訓練してもよい。該他のコンピューティングデバイスは、この更なる訓練の故に、更に訓練されたオートエンコーダを生成するであろう。
或るコンピューティングデバイスから別のコンピューティングデバイスへの該部分的に訓練されたオートエンコーダのこの受け渡しは、通信ネットワーク116を通じて直接的に行われてもよく、又は該部分的に訓練されたオートエンコーダを受信し、そして該部分的に訓練されたオートエンコーダを次のコンピューティングデバイスに転送するアグリゲータを介して行われてもよい。後者のシナリオは、しばしば行われるであろう。何故ならば、多くの連合学習システムにおいて、該当事者は、該連合学習システムにおける他の当事者が誰であるかを知らず、それ故に、該当事者の部分的に訓練されたモデルをどのようにして他の当事者に送信するかを知らないであろう。従って、その実施態様において、該アグリゲータが、この転送を促進する為に使用されるであろう。何故ならば、該アグリゲータは、該連合学習システム内の当事者/コンピューティングデバイスが誰であるかについて知っており且つ保存されている情報を有しているからである。該アグリゲータが転送の為のファシリテータとして使用されるか、又は該当事者が他の当事者について知っていて且つ直接転送できるかどうかにかかわらず、他の当事者の後の一方の当事者によるこのオートエンコーダの訓練は、逐次的な訓練と見なされてもよい。
第2のコンピュータ102bは、該更に訓練されたオートエンコーダを追加のコンピューティングデバイス、例えば、第3のコンピュータ102c、に渡すか又は送信しうる。この受け渡しは、上記で説明されているように、直接的に又は該アグリゲータを介して行われてもよく、いずれの方法でも、通信ネットワーク116を使用しうる。該追加のコンピューティングデバイスは、そのサンプルを該更に訓練されたオートエンコーダに供給し、そして、損失関数を実行して、深層学習モデルパラメータの段階的な調整をガイドしてもよい。この追加の訓練は、訓練されたオートエンコーダ、又は全ての当事者に払い出す準備が整ったオートエンコーダを生成しうる。
幾つかの実施態様において、該オートエンコーダのこの訓練又は逐次的な訓練は、該アグリゲータが該オートエンコーダを要求する前に、該連合学習システムのコンピューティングデバイスの全て又は当事者を通して実行されていてもよい。代替的には、該オートエンコーダが該連合学習システムの該デバイス/該当事者の大多数によって訓練された後に、該アグリゲータは、該オートエンコーダを要求してもよい。大多数による訓練におけるこの使用は、全ての当事者が該オートエンコーダを訓練することに役立つ実施態様と比較して、幾らかの時間及びリソースを節約するであろう。
該オートエンコーダの逐次的な訓練の間、そのニューラルネットワーク/学習モデルを含むオートエンコーダそれ自体は当事者から当事者へ渡されるが、生の特徴と生のラベルとを含む生データは渡されない。該当事者による該オートエンコーダの逐次的な学習はまた、該当事者による該オートエンコーダの協調的訓練と見なされてもよい。
工程206において、該コンピューティングデバイスは、該訓練済みのオートエンコーダを該アグリゲータに送り戻す。この送信は、通信ネットワーク116を介して行われうる。少なくとも幾つかの実施態様において、該最後のコンピューティングデバイス、例えば図1に示されている第3のコンピュータ102c、は、該オートエンコーダを該アグリゲータに送り戻すであろう。当事者の大多数であるが全てではないオートエンコーダが訓練された後に該アグリゲータが該オートエンコーダを要求する場合、該オートエンコーダを該アグリゲータに送信する該当事者は、該オートエンコーダの全ての当事者のうちの最後の当事者ではないであろう。
少なくとも幾つかの実施態様において、該オートエンコーダの訓練に全て関連する工程202~工程206の場合に、クラスタリング技法は必要とされず、又は実行されない。プロセス200の為のこれらの実施態様において、これらの工程202~工程206において、クラスタリングアルゴリズムを通じてサンプルデータを提出する必要はない。
アグリゲータが、該連合学習システムの該コンピューティングデバイスから該訓練済みのオートエンコーダを受け取った後、工程208において、該アグリゲータは、該訓練済みのオートエンコーダを該コンピューティングデバイスと、例えば、該連合学習システムの該コンピューティングデバイスの全てと、共有する。この共有は、通信ネットワーク116を介して行われてもよい。該当事者による該オートエンコーダの該訓練が逐次的に行われる場合、最終的な訓練済みのオートエンコーダを全ての当事者と共有することにより、全ての当事者によって、又は該当事者の大多数によって、又は該当事者の或る数によって行われた該オートエンコーダの完全な訓練の利点が全ての当事者に与えられる。この共有は、或る当事者単独によるデータに対して訓練されたオートエンコーダと比較して、改善されたオートエンコーダを各当事者に与える。
少なくとも幾つかの実施態様において、該オートエンコーダは、クラスタリングアルゴリズムを含むであろう。様々な実施態様において、該クラスタリングアルゴリズムは、K-平均クラスタリングアルゴリズム、平均シフトクラスタリングアルゴリズム、ノイズを伴うアプリケーションの密度ベースの空間クラスタリング(DBSCAN:density-based spatial clustering of applications with noise)、ガウス混合モデル(GMM:gaussian mixture models)を用いた期待最大化(EM:expectation-maximization)クラスタリング、又は凝集型階層的クラスタリング(agglomerative hierarchical clustering)であってもよい。
工程210において、各コンピューティングデバイス、例えば、第1、第2、及び第3のコンピュータ102a、102b及び102cは、そのサンプルデータを該訓練済みのオートエンコーダを通して実行して、オートエンコーダ出力を生成する。該オートエンコーダ出力は、入力データの高レベル表現であってもよく、並びに特に、ベクトルであってもよい。該ベクトルは、複数の変数又はパラメータ、例えば、3以上の変数又はパラメータ、更には最大で100、又は100以上の変数又はパラメータ、を含んでいてもよい。これらの変数又はパラメータは、特徴量として言及されうる。動物の写真を識別する深層学習モデルにおいて、該オートエンコーダは、深層学習モデルが動物を分類する為に役立ちうる各画像に関する様々な特徴、例えば、サイズ、付属物の数、耳の形状等、を認識してもよい。これらの特徴は、サンプルを解析するオートエンコーダを通してサンプルを供給することによって決定されるところの変数又はパラメータであってもよい。画像が該オートエンコーダに供給される実施態様において、該オートエンコーダは該画像を解析し、該画像のピクセルを解析することができる。
工程212において、各コンピューティングデバイス、例えば、第1、第2、及び第3のコンピュータ102a、102b及び102cの各々は、該オートエンコーダ出力を、クラスタリングアルゴリズムを通して実行して、該サンプルデータ中のクラスタを識別する。クラスタリングアルゴリズムは、各コンピューティングデバイス内に存在してもよい。代替的には、クラスタリングアルゴリズムは、該アグリゲータから受信される該オートエンコーダ内に存在してもよい。幾つかの実施態様において、該クラスタリングアルゴリズムは、K-平均クラスタリングアルゴリズム、平均シフトクラスタリングアルゴリズム、ノイズを伴うアプリケーションの密度ベースの空間クラスタリング(DBSCAN)、ガウス混合モデル(GMM)を用いた期待最大化(EM)クラスタリング、又は凝集型階層的クラスタリングであってもよい。図3は、オートエンコーダ出力をクラスタリングアルゴリズムを通して渡すという特徴と対であるところのオートエンコーダの一例を示す。図3の上部は、クラスタリングアルゴリズムを通して実行される出力サンプルから生成されたクラスタの例を示す。
該クラスタリングアルゴリズムを通して該オートエンコーダ出力を供給することは、各オートエンコーダ出力の為の夫々のデータポイント、すなわち各サンプルを表すデータポイント、を生成するであろう。これらのデータポイントは、グラフにされうる。例えば、3つの特徴を持つオートエンコーダモデルにおいて、三次元グラフがデータポイントをグラフ化する為に使用されうる。三次元グラフ上で一般的に近くに位置するデータポイントは、一般的に、該データの特定のクラスタに属すると見なされるであろう。少なくとも幾つかの実施態様において、サンプルデータの各クラスタ又は該オートエンコーダ出力の各クラスタは、セントロイド、すなわち該クラスタの中心、を有し、並びに半径を有するであろう。該半径よりも小さいセントロイドからの距離で該チャート内に配置されるデータポイントは、そのクラスタに属すると見なされるであろう。図3の上段は、データポイントのクラスタの数の一例であり、特定のクラスタのセントロイド及び半径を示す。クラスタリングアルゴリズムにおいて三次元グラフと対で在りうる3つの特徴を有するオートエンコーダモデルが、単純化する為に及び概念をより容易に説明する為に例として用いられる。使用されるであろう多くのオートエンコーダモデルにおいて、該オートエンコーダモデルは、3つの特徴よりも多くの特徴を使用するであろう。例えば、該オートエンコーダモデルは、最大で100、又はそれ以上の特徴を含みうる。クラスタリング技術は、より多くの特徴を有するこれらのモデルでなお達成可能である。
プロセス200の工程214において、当事者、例えば、第1、第2、及び第3のコンピュータ102a、102b及び102cは、該該クラスタリングアルゴリズムによって生成されたクラスタ情報に対して匿名化技術を実行する。この匿名化は、オートエンコーダ出力のプライベート表現を結果として生成する。該匿名化技術は、汎化技法であってもよい。該匿名化技術の場合、アイデンティティ属性、例えば明示的な識別子、が、クラスタ情報から除去されていてもよい。それ故に、該アグリゲータが、該連合学習システムの当事者から匿名化されたクラスタ情報の1組を受信する場合に、該アグリゲータは、送信当事者がその連合学習システムに属していることを認識することができうるが、どの当事者がクラスタ情報の1組を送信したかを認識することができなくてもよい。例えば、クラスタ情報を生成した当事者の任意の名前は、クラスタ情報が該アグリゲータに送信される前に、該クラスタ情報から削除されてもよい。
様々な匿名化技術が、工程214に従って実行されうる。抑制匿名化技術(suppression anonymization technique)において、タプル(tuple)又は属性値が特別な匿名記号、例えば「**」、に置き換えられる。従って、抑制匿名化では、元のデータ値が、クラスタ情報全体にわたって何らかの匿名値に置き換えられる。汎化匿名化技術において、属性値が、意味的に変化しないが、より特定性の低い値に置き換えられる。例えば、当事者識別情報が当事者/参加者の所在地に関する情報を含んでいた場合に、該当事者の市又は州は、該当事者/参加者の所在地の国に置き換えられうる。バケット化(bucketization)匿名化技術において、機密情報は維持されるが、あらゆる識別情報から分離又は区分けされる。それ故に、バケット化匿名化では、該アグリゲータはサンプルデータから特徴を受け取ることができるが、或る特定のサンプルデータがどの当事者から来たものかを認識することはできないであろう。パータベーション(perturbation)匿名化技術において、機密情報は削除されないが、ランダムに変更される。それ故に、該アグリゲータによって受け取られる変更された情報は正しくなく、並びに該アグリゲータはどの情報が変更されたかを知ることができるが、外部の当事者はどの情報が変更されたかを知ることはできないであろう。スライシング(slicing)匿名化は、情報の列/行を水平及び垂直に分割化し、そして次に、該分割されたものをランダムにソートすることによって実行されてもよく、従って、送信される最終的な情報は、情報セットを完全にリンクする方法においてでなく、一緒にグループ化された特徴を有する。スライシング匿名化は、機密性の高い特徴の暗号化によって更に補完されうる。
プロセス200の工程216において、当事者、例えば、第1、第2、及び第3のコンピュータ102a、102b及び102c、は、該クラスタ情報を、該アグリゲータに、例えばサーバコンピュータ112に、送信する。当事者は、このクラスタ情報を送信する為に、通信ネットワーク116を使用してもよい。該クラスタ情報は、送信される前に匿名化されうる。
プロセス200の工程218において、該アグリゲータ、例えばサーバコンピュータ112、は、該クラスタ情報を統合して、複数のクラスを定義する。この統合は、クラスタ情報を処理する方法である。該アグリゲータによって実行される該統合は、該識別されたクラスタのうちの在りうる冗長なクラスタを識別することを含んでいてもよく、並びに定義されるクラスの数は、在りうる冗長なクラスタによって減少した該複数の分散型コンピューティングデバイスからのクラスタの総数に対応する、という特徴を備えていてもよい。少なくとも幾つかの実施態様において、該クラスタ情報は、該クラスタの該セントロイドに関するセントロイド情報を含んでいてもよく、並びに該アグリゲータは、該セントロイド情報を比較して、在りうる冗長なクラスタを識別してもよい。例えば、様々な当事者からのセントロイドが、予め定義された新しいクラスタ閾値距離よりも小さい距離内にある場合、該アグリゲータは、該セントロイドが、クラスの集計の為に統合され又はマージされるべき冗長なクラスタに属すると見なしてもよい。加えて又は代替的に、第1のクラスタの半径が第2のクラスタの半径と重なる場合、該アグリゲータは、夫々の半径を有するセントロイドを、クラスの集計の為に統合されるべき冗長なクラスタに属すると見なしうる。該アグリゲータは、受け取った各セントロイドと、該連合学習システムの全グループの該クラスタ情報の一部である他の全てのセントロイドとの間の距離を決定してもよい。また、該アグリゲータは、該クラスタ情報に対して新たなクラスタリング技術を実行して、クラスタの総数を識別してもよい。この新たなクラスタリングは、該クラスタ情報が工程214において匿名化された場合に特に可能性が高い。なぜならば、該アグリゲータは特定の特徴情報がどの当事者から来たかは知らないが、特徴情報にアクセスを有することになる為である。ここで実行されるK-平均クラスタリング技術の場合、セントロイド間の予め定義された閾値距離が選択される必要がない。なぜならば、該K-平均クラスタリングアルゴリズムが、データポイントの何のグループが別々のクラスタを構成するかをハッシュアウト(hash out)し、そして決定することができるからである。
プロセス200の工程220において、該アグリゲータ、例えばサーバコンピュータ112、は、該複数のクラスを取り込む深層学習モデルを、該連合学習システムにおける全てのコンピューティングデバイスに、例えば、第1、第2、及び第3のコンピュータ102a、102b及び102cの全てに、送信する。該アグリゲータは、この深層学習モデルを送信する為に、通信ネットワーク116を使用してもよい。少なくとも幾つかの実施態様において、この深層学習モデルは、ニューラルネットワーク、例えば畳み込みニューラルネットワーク、であってもよい。該深層学習モデルは、複数のノードを有する出力層を備えている。該ノードは、工程218において定義された上記の定義された複数のクラスに対応する。図6は、後述されており、複数のノードを有する出力層を備えている深層学習モデルの層の一例を図示する。工程218からの統合と、工程220において送信されるモデルへのクラスデータの挿入により、当事者が該深層学習モデルを共同して訓練すると見なされてもよい。工程220を実行する最初の例において、該深層学習モデルは典型的には、単独で送信されるであろう。プロセス200を実行する後続のサイクルにおけるこの工程220の一部として、更新された深層学習モデルを送信することに加えて、該アグリゲータはまた、新しいクラスが組み込まれたところの更新されたオートエンコーダを送信しうる。後述されている工程226は、新しいクラスが後に発見された場合、個々の当事者に送信されるべき別の更新されたオートエンコーダの在りうる必要性を説明する。
プロセス200の工程222において、該コンピューティングデバイス、例えば第1、第2、及び第3のコンピュータ102a、102b及び102cは、新しいセマンティックな意味を、該複数のクラスのうちの少なくとも幾つかに割り当てる。画像、例えば動物の写真、を認識する為に学習するモデルの例において、当事者がウサギを食べ物であると考え、並びに該アグリゲータが該モデルの為のクラスの1つとしてウサギを識別した場合、該当事者は、該アグリゲータからクラスを受け取った後にこのカテゴリーの為のラベルとして「食べ物」を割り当てうる。同じ連合学習システム内の別の当事者がウサギをペットと見なす場合、その当事者は、該アグリゲータからクラスを受け取った後、このカテゴリーの為のラベルとして「ペット」を割り当てうる。このとき、最初の当事者と他の当事者が同じクラスのサンプルの為に一意で且つ異なる意味上のラベルを有していたとしても、該システムは連合学習を実行する為になお機能するであろう。
プロセス200の工程224において、該コンピューティングデバイス、例えば第1、第2、及び第3のコンピュータ102a、102b及び102cは、連合学習を該複数のクラスで実行する。それ故に、該コンピューティングデバイスは、新しいサンプルを受信し、そして、これらの新しいサンプルを、該アグリゲータから受信した深層学習モデル内に供給する。定期的に、該コンピューティングデバイスは、それらの深層学習訓練の結果を該アグリゲータに送信するであろう。該深層学習訓練の結果のこの送信は、通信ネットワーク116を介して行われてもよい。上述された連合学習は、システム内の当事者がモデル/システムを訓練する為にデータを共有し、一方で、それらの生データのプライバシーをなお維持する場合に行われる。連合学習の為に、生データでなく、匿名化されたデータが送信されていてもよい。従って、幾つかの情報が該モデル学習を達成する為に共有されるが、生のサンプルデータは該アグリゲータと、又は他の当事者と共有されない。工程224の一部として、該アグリゲータは、該複数の分散型コンピューティングデバイスから、該複数の分散型コンピューティングデバイスによって実行された連合学習の1以上の結果を受信してもよい。
プロセス200の工程226において、該当事者は、新しいクラスタが追加されたかを決定する為に、定期的且つ局所的にチェックする。このチェックを実行する為に、当事者は、工程220において該アグリゲータから受け取った更新されたオートエンコーダに、該新しいサンプルを供給してもよい。該オートエンコーダの特徴空間において、異常検出が、既知のクラスの為の該クラスタからの在りうる新しいデータポイント/特徴の有意な偏差を検出する為に実行される。該異常検出の為に、新しいサンプルの為のデータポイントから他のクラスタのセントロイドまでの距離が測定されてもよい。その距離が予め定義された閾値を超えた場合に、該新しいデータポイントが異常と見なされてもよい。新しいサンプルのデータポイントから他のクラスタの最も近い他の既知のデータポイントまでの距離が測定されてもよく、その距離が、予め定義された閾値を超える場合に、該新しいデータポイントが異常と見なされてもよい。他のクラスタリングアルゴリズムが、異常検出を実行する為に使用されうる。多数の異常検出技術、例えば密度ベースの技術、が実装されうる。異常の数が、或る期間における異常の平均数に対して、又は全テストサンプルの数に対して、有意に高い場合、該クラスを再定義する必要性を該アグリゲータに警告する為に、フラグ又は警告メッセージが該アグリゲータに送信されてもよい。代替的には、既存のクラスの外側にある単一の新しいデータポイントが当事者によってローカルに確認されたときに、フラグ又は警告メッセージが、該クラスを再定義する必要性を該アグリゲータに警告する為に該アグリゲータに送信されてもよい。既存のクラスからのサンプルの偏差が、予め定義された閾値を超える場合、該サンプルは新しいクラスタに属すると見なされてもよい。新しいデータクラスそれ自体の為の情報は、該警告信号と一緒に送信されてもよい。この新しいデータクラス情報は、該アグリゲータに通知する為に使用されてもよく、工程202から始まるオートエンコーダを再訓練することを助ける為に該アグリゲータによって使用されてもよく、又はこの新しいデータクラス情報は、最初のオートエンコーダ訓練をスキップし、そして、新しいクラスの1組を定義する為に工程218におけるクラスタ情報の再統合の一部であってもよい。新しい潜在的なクラスタに関するこのクラスタ情報は、該アグリゲータに警告フラグとともに送信される前に、該当事者によって匿名化されてもよい。別の言葉で言えば、新しい可能性のあるクラスタに関するクラスタ情報が該アグリゲータに送信される前に、工程214がその時点で繰り返されてもよい。該アグリゲータは、該クラスに新しいクラスを追加して、クラスの新しい1組を形成してもよい。該新しいクラスは、該新しいサンプルに対応する。クラスの該新しい1組は、該アグリゲータから該複数の分散型コンピューティングデバイスに送信されてもよい。次に、追加の連合学習が、該アグリゲータ及び該複数の分散型コンピューティングデバイスを介して実行され、そして、該深層学習モデルを更に訓練してもよい。該追加の連合学習を実行することは、クラスの該新しい1組を該深層学習モデルの出力層の新しいノードとして使用することを含む。
工程226を実行する為に、該データサンプルは、該更新されたオートエンコーダに供給される。工程224を実行する為に、該データサンプルは、該アグリゲータから受信された該深層学習モデルに供給される。それ故に、幾つかの事例及びプロセス200の間の時間において、該データサンプルは、該更新されたオートエンコーダ及び深層学習モデルの両方に並行して供給されてもよい。
プロセス200の工程228において、該深層学習が該システムについて中止されるべきであるか、又は該連合学習システムの特定のデバイスについて中止されるべきかについてのチェックが実行される。該チェックが中止の為の肯定的な決定を結果として生じる場合、該深層学習及び該連合学習は、連合学習システム全体の為に全体として中止されてもよく、又は該連合学習システムの個々のデバイスの為に中止されてもよい。該チェックが中止の為の否定的な決定を結果として生じる場合、該プロセスは、該連合学習が継続される工程224にループバックし、そして次に、新しいクラスタの為の別のチェックが実行される工程226にループバックしてもよい。デフォルトの設定において、工程228は、該深層学習/該連合学習を継続する為の肯定的な回答を与えられるであろう。工程228の一部として、連合学習プログラム110a、110b、110cは、該深層学習/該連合学習が中止されるべきであるかを該コンピューティングデバイスのユーザに尋ねる為のグラフィカルユーザインタフェース(GUI:graphical user interface)プロンプトを生成し及び提供してもよい。ユーザがGUIに肯定的な回答を提供する場合、該個々のコンピューティングデバイスは、該アグリゲータにメッセージを送信して、アグリゲータに同じことを通知してもよい。多くの実施態様において、新しいラベル/クラスを識別することは、個々のコンピューティングデバイスによって実行される自動化されたプロセスであるだろう。該識別することは、新しいデータポイントが該訓練データセットに追加されること、幾つかのデータサンプルが一貫して誤分類されること、又は該当事者が外部知識によりローカルクラスタの数を増やしたいと決定することの結果であってもよい。
プロセス200では、モデルは、個々の当事者によって提供されるべきセマンティックラベルを可能にしながら、且つ、高価になりうる追加の手動介入又は前処理を回避しながら、連合学習プロセスにおいて訓練されうる。プロセス200はまた、関心のあるサンプルを収集したが、同じラベルを有していないところの2つの異なるドメインの為に実装されうる。
該オートエンコーダは例えば、バニラオートエンコーダ(vanilla autoencoder)、スパースオートエンコーダ(sparse autoencoder)、多層オートエンコーダ(multilayer autoencoder)、又は畳み込みオートエンコーダ(convolutional autoencoder)であってもよい。少なくとも1つの実施態様において、該オートエンコーダは、入力層、出力層、及び該入力層を該出力層に接続する1以上の隠れ層を有するところの、フィードフォワードニューラルネットワーク(feedforward neural network)、非再帰型ニューラルネットワーク(non-recurrent neural network)であってもよい。該出力層は、該入力層と同じ数のノードを有してもよい。該出力層は、該入力の再構成を助ける。少なくとも幾つかの実施態様において、オートエンコーダは、深層学習を可能にする為にラベル付けされた入力を必要としない教師なし学習モデルと見なされてもよい。
図3は、本発明に従って少なくとも1つの実施態様において使用されるオートエンコーダ300の構造を示す。オートエンコーダ300は通常、サンプルデータ302をコード化及びデコード化するところのエンコーダ304及びデコーダ317を備えている。
エンコーダ304は、サンプルデータ302をコード化して複数のベクトルを生成し、そして、サンプルデータ302を潜在空間へと埋め込む。該複数のベクトルは、サンプルデータ302の高レベルの表現である。1つの実施態様において、サンプルデータ302は動物の画像であり、並びにオートエンコーダは、該動物画像の特徴を分類する複数のベクトルを生成する。エンコーダ304は、該オートエンコーダ300の入力層として、第1のフィルタ306a、第2のフィルタ306b、及び第3のフィルタ306cを備えている。該サンプルデータは、第1のフィルタ306a、第2のフィルタ306b、及び第3のフィルタ306cの一連のフィルタを進むにつれて、漸次減らされる。平坦化層308において、オートエンコーダ300は、エンコーダ304の出力を、該出力の為に必要とされる寸法へと平坦化してもよい。平坦化層308は、埋め込み層310に供給される複数のベクトルを生成する。該埋め込み層310は埋め込みポイントを生成してもよく、該埋め込みポイントは、クラスタリングアルゴリズム311へと供給されて、クラスタリング図312を生成する。該埋め込まれたポイントは、オートエンコーダ出力と見なされていてもよい。少なくとも幾つかの実施態様において、該オートエンコーダ出力の次元は、該オートエンコーダ出力がクラスタリングアルゴリズム311に渡される前に低くされる。
該埋め込まれたデータは、クラスタリングアルゴリズム311を通して、クラスタリング図312を生成してもよい。クラスタリングアルゴリズム311は、オートエンコーダ300の一部として含まれてもよく、又は該オートエンコーダを実行している個々のホストコンピューティングデバイスの別個のコンポーネントであってもよい。幾つかの実施態様において、クラスタリングアルゴリズム層は、埋め込み層310に接続されていてもよい。図3において示されるクラスタリング図312は、k-平均(k-means)クラスタリングアルゴリズムを介して生成される。k-平均クラスタリングアルゴリズムが使用される場合、クラスの予測される数を表すヒューリスティックとして、k値が選択又は計算されていてもよい。次に、k値による調整は、損失関数を減少させる為に必要に応じて実行されうる。1つの例において、kは10として選択され又は計算される。該kが選択されるときに、該k値は該クラスタリングアルゴリズムへ引数として入力されていてもよい。少なくとも1つの実施態様は、ファジーk-平均クラスタリングアプローチを備えていてもよい。なぜならば、深いクラスタリングがクラスの数を予め知ることを必要としうるからである。該kがアルゴリズムによって計算される場合、分配エントロピーアルゴリズム(partition entropy algorithm)、分配係数アルゴリズム(partition coefficient algorithm)、又は他のアルゴリズムが使用されていてもよい。
該ベクトルは、拡張層315を通して戻され、そして次に、第1のデコード化層318a、第2のデコード化層318b、及び第3のデコード化層318cを有するところのデコーダ317に供給されていてもよい。第1のデコード化層318a、第2のデコード化層318b、及び第3のデコード化層318cを通して該拡張されたベクトルを供給することは、元の入力データの再構成を助ける。該再構成された画像は、出力サンプルデータセット320として出力される。
図3は、少なくとも1つの実施態様に従う、クラスタリング図312を示す。このクラスタリング図は、該連合学習システムの個々のコンピューティングデバイスによって生成されていてもよい。該クラスタリング図を生成することによって、該個々のコンピューティング装置は、各クラスタの為のクラスタ情報を生成してもよい。該クラスタ情報は、例えば、図2において示されているプロセス200の工程216において、該アグリゲータに渡されていてもよい。代替的には、図4において示されているように、システムクラスタリング図400は、該アグリゲータが該連合学習システムの該個々のコンピューティングデバイスからクラスタリング情報を受信した後に、該アグリゲータによって生成されてもよい。
図3の上部に示されているクラスタリング図312は、当事者がそのサンプルを該オートエンコーダ300に供給したときに、10個のクラスタ、すなわちクラスタ314a~314j、を生成したことを示す。クラスタ314aは、セントロイド316及び半径318を有するものとして示されている。セントロイド316からの距離が半径318の長さより小さいところにある全てのサンプルポイント/ベクトルは、クラスタ314aに属すると見なされても良い。半径318の端は、クラスタ314aの境界を表す。なお、セントロイド316は、クラスタ314aに属するサンプルポイント/ベクトルの平均値であるので、クラスタ314aに属するサンプルポイント/ベクトルがセントロイド316に存在しない可能性がある。図3において、クラスタ314aのみがセントロイド316及び半径318を有するものとして示されているが、実際には、他のクラスタ314b~314jの全てがまた、それら自体の夫々のセントロイド及びそれら自体の夫々の半径を有する。クラスタ314a~314jに関するクラスタ情報、並びにそれらのセントロイド及び半径の全てに関するクラスタ情報は、図2に示されているプロセス200の工程216において、個々のコンピューティング装置から該アグリゲータに送信されうる。該クラスタ情報の一部として、個々の生データサンプルを使用する代わりにセントロイド情報を使用することの特徴は、各当事者の個々の生データのプライバシーを保護することに役立つ。該アグリゲータがセントロイド情報を用いてセントロイドを再構成することができたとしても、該アグリゲータは通常、個々のデータポイントを見つけることがなおできないか、又は個々のデータポイントを該連合学習システムに参加する在りうる特定の当事者とマッチングさせることができない。
図4はシステムクラスタリング図400の一例を示し、システムクラスタリング図400は、連合学習システムの全てのデバイスからのクラスタ若しくはクラスタ情報又はそれらの組み合わせが、該アグリゲータによって組み合わされ又は統合されている。図4に示されている実施態様において、該アグリゲータは、分散されたコンピューティングデバイス全て又は個々のコンピューティングデバイス全てから受信された9つのクラスタを最初に統合した。該生データが他の当事者と共有されないようにする為に、該個々のコンピューティングデバイスは、セントロイド情報及び半径情報を該アグリゲータに渡していたが、個々の生データを渡しておらず、及びクラスタリング図312からの個々のデータポイントも渡していない。それ故に、図3は、該クラスタの為のセントロイド及び半径を示し、個々のデータポイントを示さない。該個々のコンピューティングデバイスはまた、各クラスタに属するデータポイントの数についての情報を渡してもよい。図4において、セントロイド402a~402iが示されている。セントロイド402a~402iの各々はまた、それ自身の半径を有するが、簡略化の為に、セントロイド402a、402b、402c、及び402hに関連付けられた半径404a、404b、404c、及び404hが示されている。特定の閾値を有する1つの実施態様において、該アグリゲータは、チェックし、そして、セントロイド402bと402cとに関連付けられた2つのクラスタは、それらの夫々のセントロイド402b及び402c間の距離が閾値未満であるので、互いに冗長であると識別されるであろう。幾つかの実施態様において、0.5、1.0、又は1.5の閾値が選択されてもよい。代替的には、該アグリゲータは、セントロイド402bに関連付けられたクラスタの為の半径404bが、セントロイド402cに関連付けられたクラスタの為の半径404cに重なることを認識してもよく、並びにその為に、セントロイド402b及び402cに関連付けられた2つのクラスタは互いに冗長であるとみなされてもよい。
それ故に、工程218及び工程220で行われているように、該連合学習システムの全ての当事者又は参加者又は個々の分散コンピューティング装置に送信する為の深層学習モデルを生成する際に、該アグリゲータは、2つのセントロイド402b及び402cに関連付けられた2つのクラスタを単一のクラスタ又は単一のセントロイドに組み合わせるであろう。該アグリゲータは、2つのセントロイドである402bと402cとの間の中間ポイントで配置する為に該新しいセントロイドを単に指定してもよい。代替的に、該アグリゲータは、より多くのデータポイントを有するところの2つのセントロイド402b及び402cの重心に、より大きな重みを与えてもよい。従って、該アグリゲータは、図4の実施態様において示されている深層学習モデルの出力層において、合計9つの出力ノードを提供するであろう。幾つかの実施例において、該出力層は、ロジット層(logits layer)と呼ばれるであろう。これらの9つの出力ノードは、個々の当事者によって、又は個々の分散型コンピューティングデバイスによって識別されたクラスタの総数に対応し、但し、クラスタ及びそれらの中心点402b及び402cが冗長とみなされ且つ同じクラスタであるとみなされる故に、その数は1だけ減らされる。
図4は、半径404a及び404hが半径404b及び404cよりも大きいことを示す。該半径の大きさは、データポイント点の散らばり具合に、及び近傍の他のクラスタ又はセントロイドの存在又は非存在に依存しうる。
図5は、図1に見られたネットワーク化されたコンピュータ環境100を示すが、この事例において、第1、第2、及び第3のコンピュータ102a、102b及び102cに、データサンプルからの画像グループがロードされている。この実施態様において、深層学習モデルが、動物の写真を認識するように訓練されることとする。各画像は、個々のコンピューティングデバイスによって提供されるそれ独自のラベルを有するであろう。第1のコンピュータ102aは、第1のコンピュータの第1の画像グループ502a、第1のコンピュータの第2の画像グループ502b、及び第1のコンピュータの第3の画像グループ502cを有する。図示されている実施態様において、第1のコンピュータの第1の画像グループ502aは、猫の写真のコレクションである。第1のコンピュータの第2の画像グループ502bは、ウサギの写真のコレクションであるが、第1のコンピュータ102aを操作する参加者は、ウサギを「食べ物」であると見なしている。第1のコンピュータの第3の画像グループ502cは、犬の写真のコレクションである。第2のコンピュータ102bは、第2のコンピュータの第1の画像グループ504a、第2のコンピュータの第2の画像グループ504b、及び第2のコンピュータの第3の画像グループ504cを有する。図示されている実施態様において、第2のコンピュータの第1の画像グループ504aは、猫の写真のコレクションである。第2のコンピュータの第2の画像グループ504bは、ウサギの写真のコレクションであるが、第2のコンピュータ102bを操作する参加者は、ウサギを「ペット」であると見なしている。第2のコンピュータの第3の画像グループ504cは、魚の写真のコレクションである。第3のコンピュータ102cは、第3のコンピュータの第1の画像グループ506a及び第3のコンピュータの第2の画像グループ506bを有する。図示の実施態様において、第3のコンピュータの第1の画像グループ506aは、犬の写真のコレクションである。第3のコンピュータの第2の画像グループ506bは、魚の写真のコレクションである。
これらの画像グループは、個々のコンピューティングデバイスによって、例えば、第1のコンピュータ102a、第2のコンピュータ102b、及び第3のコンピュータ102cによって、画像のそれらの個々のデータサンプルを、該アグリゲータから受信した訓練済みのオートエンコーダ、例えば、連合学習プログラム110dを有するサーバコンピュータ112から受信した訓練済みのオートエンコーダ、を通して実行することによって作られてきた。該オートエンコーダは、クラスタリングアルゴリズム311を通して供給される場合に、該画像グループを表すクラスタ314を生成するところのオートエンコーダ出力を提供する。
クラスタ314に関するクラスタ情報が該アグリゲータに渡されるときに、該アグリゲータは、クラスタ情報を統合して、深層学習モデルのクラスの総数を特定する。第1のコンピュータの第1の画像グループ502aからの猫の画像は、第2のコンピュータの第1の画像グループ504aからの猫の画像と同一でないので、受け取った2つのクラスタのデータポイント及びそれらのクラスタセントロイド(cluster centroid)は同一でないが、該アグリゲータは、これら2つのクラスタが重複し且つ冗長であると認識し、そして、それらを単一のクラスタに結合する。第2のコンピュータの第3の画像グループ504cからの魚の画像は、第3のコンピュータの第2の画像グループ506bからの魚の画像と同一でないので、データポイント及びそれらのクラスタセントロイドが同一でないが、該アグリゲータは、これら2つのクラスタが重複して冗長であることを認識し、これらを単一のクラスタに結合する。第1のコンピュータの第3の画像グループ502cからの犬の画像は、第3のコンピュータの第1の画像グループ506aからの犬の画像と同一でないが、データポイント及びそれらのクラスタセントロイドが同一でないので、該アグリゲータは、これらの2つのクラスタが重複し且つ冗長であることを認識し、これらを単一のクラスタに結合する。
第1のコンピュータの第2の画像グループ502bからのウサギ画像と第2のコンピュータの第2の画像グループ504bからのウサギ画像は、互いに類似又は同一であるが、第1のコンピュータ102aはそのウサギグループに「食べ物」と名付け、第2のコンピュータ102bはそのウサギグループに「ペット」と名付けた。該アグリゲータは、クラスタ情報、例えば、セントロイド及び任意的に半径及びデータサンプルの数、を包含する上記のクラスタ情報、を解析して、これら2つのクラスタが重複し且つ冗長である為、第1のコンピュータの第2の画像グループ502bと第2のコンピュータの第2の画像グループ504bとは同じクラスタに属すると認識してもよい。該アグリゲータは、これら2つのグループを単一のクラスタに結合する。代替的には、第1、第2及び第3のコンピュータ102a、102b及び102cから該アグリゲータへのクラスタ情報の最初の受け渡しにおいて、該クラスタがラベル付けされないので、第1のコンピュータ102a及び第2のコンピュータ102bのオペレータがそのグループ/クラスタに対して固有のセマンティックな意味を有していても、該アグリゲータはクラスタ情報を分析し且つ統合することによってクラスタの重複及び冗長を正しく認識することができる。その点に関して、オートエンコーダ300を訓練する為に、クラスのラベリングを実施させる必要はない。
該アグリゲータは、該分散型コンピューティングデバイス、この事例において、第1、第2、及び第3のコンピュータ102a、102b及び102c、から受信したクラスタの総数が、第1のコンピュータ102aから3個、第2のコンピュータ102bから3個、及び第3のコンピュータ102cから2個の、合計8個であることを認識する。受信したクラスタの総数は8個であるが、該アグリゲータは、識別された冗長なクラスタの対の数に基づいてその数を減らす。該アグリゲータはクラスタの4対が冗長であると判断しているので、該アグリゲータは、クラスタの総数(8)を4つ減らし、該連合学習システムにおける深層学習の為のクラスの総数を4つとした。2つの猫グループは互いに冗長であると見なされた。2つのウサギグループは、互いに冗長であると見なされた。2つの犬グループは、互いに冗長であると見なされた。2つの魚グループは、互いに冗長であると見なされた。従って、該クラスタ情報の統合及び解析を実行することによって、該アグリゲータは、該深層学習モデルの本実施態様の為のクラスタの総数が4であることを認識する。
次に、該アグリゲータは、複数の分散型コンピューティングデバイス、この事例において、第1、第2、及び第3のコンピュータ102a、102b、及び102c、に渡す為に、4つの出力ノードを有する深層学習モデルを生成する。例えば、図6は、第1の入力層602及び第2の入力層604と、出力層606とを有する深層学習モデル600を示す。第1のインスタンスにおける出力層606は、該アグリゲータによって実行される統合を通じて決定される4つのクラスに対応する為に、4つのノードを有するであろう。第1のノード608aは、画像の猫クラスの為のものであろう。第2のノード608bは、画像のウサギクラスの為のものであろう。第3のノード608cは、画像の犬クラスの為のものであろう。第4のノード608dは、画像の魚クラスの為のものであろう。
該アグリゲータが工程220において深層学習モデル600を該複数の分散型コンピューティングデバイス、この事例において、図5及び図6に従う、第1、第2、及び第3のコンピュータ102a、102b及び102c、に渡した後、該複数の分散型コンピューティングデバイスは、工程224において、受け取ったクラスをそれ自体のセマンティックな好み又は意味に従って名前付けをする機会を有する。
第1のコンピュータ102aは、第4のクラスに属するサンプルを有していないので、第4のクラスを空白のままにしながら、最初の3つのクラスを「猫」、「食物」及び「犬」と名前付けすることができる。該アグリゲータはまた、様々なクラス、例えば、クラス1、クラス2、クラス3、クラス4等、の為に一般的なラベルを送信してもよい。代替的には、該アグリゲータが名前で満たされたクラスを送信する場合、第1のコンピュータ102aは、該アグリゲータによって提供された該第4のクラスの為の名前を残すことができ、例えば、該第4のクラスの為の「魚」の名前を残し、一方で、ウサギは食べられるべきものであると考えているので、「食べ物」の為のそれ自体のセマンティックな意味に従って第2のグループ(ウサギグループ)の名前をなお変更することができる。
第2のコンピュータ102bは、第1のクラス、第2のクラス、及び第4のクラス夫々を、「猫」、「ペット」、及び「魚」と名前付けすることができ、一方、第3のクラス、この事例において犬のクラスに属するサンプルを有していないので、第3のクラスを空白にすることができる。代替的には、該アグリゲータが名前で満たされたクラスを送信する場合、第1のコンピュータ102aは、該アグリゲータによって提供された第3のクラスの為に「犬」という名前を残すことができ、一方で、ウサギはペットとして飼われるべきものであるという独自の意味に従って第2のグループ(ウサギグループ)の名前をなお変更することができる。このような名前付けは、該コンピューティングデバイスによって実行されるサンプルフィッティングについて適用される。
第3のコンピュータ102cは、第1のクラス及び第2のクラスを空白のままにして、第3及び第4のクラスを、「犬」及び「魚」と名前付けすることができる。なぜならば、第1のクラスに属するサンプル又は第2のクラスに属するサンプルを有さず、並びにウサギクラスタに属するサンプル又は猫クラスタに属するサンプルを有さないからである。代替的には、該アグリゲータが名前で満たされたクラスを送信する場合、第1のコンピュータ102aは、該アグリゲータによって提供された第1及び第2のクラスの名前、例えば「猫」及び「ウサギ」を残し、一方でまた、該アグリゲータが第3及び第4のクラスについて提供した名前「犬」及び「魚」をも受け入れうる。
図5及び図6において示されている上述された実施態様に従うと、更なる工程226において、該複数の分散型コンピューティングデバイスのうちの1つ、例えば第1のコンピュータ102a、が鳥の画像のサンプルを受け取り、そして、それらの画像を該アグリゲータから受け取った更新されたオートエンコーダへと供給した場合、第1のコンピュータ102aでの該更新されたオートエンコーダは、鳥サンプルが他の4つのクラスタのいずれの近くにもないことを認識することができる。該更新されたオートエンコーダの特徴空間において、4つの既知のクラスの為の4つのクラスタからの有意な逸脱を検出する為に、異常検出が実行されていてもよい。異常の数が、一定期間に入力された鳥画像の平均数に対して、又は全テストサンプルの数に対して、有意に高い場合、クラスを再定義する為の必要性をアグリゲータに警告する為に、フラグが該アグリゲータに送信されてもよい。幾つかの実施態様において、フラグは、第1のデータポイントが異常として検出されたときに、該クラスを再定義する為の必要性をアグリゲータに警告する為に、該アグリゲータに送信されてもよい。
該アグリゲータは、新しい鳥画像クラスタに関するクラスタリング情報を他のクラスタ情報と統合して、新しいクラスタが作成されるべきであることを検証してもよい。例えば、鳥画像のセントロイドが他のセントロイドのいずれにも近くないという合意の故に、該アグリゲータが検証に満足する場合、該アグリゲータは、深層学習モデル600に及び該更新されたオートエンコーダに、第5のノード608eを追加してもよく、並びにこの更新された深層学習モデル及び該更新されたオートエンコーダを、該連合学習システムにおける複数の分散型コンピューティングデバイスの全て、例えば、図1及び図5に示されている実施態様についての第1、第2及び第3のコンピュータ102a、102b及び102c、に送ってもよい。次に、各分散型コンピューティングデバイスは、第5のノード608e及びそれに関連付けられたクラスタの為のそれら自体のセマンティックなローカル定義を提供する機会、第5のノード608eの為に該アグリゲータによって提供されたラベル又は名前を受け入れる機会、又は第5のノード608eの為の名前を選択しない機会を再び有するであろう。それにより、ローカルコンピューティングデバイスが該第5のノード608eに関連付けられたクラスタ内に入るサンプルを有していないときに有利でありうる。
図5及び図6に関して上述された実施態様において、該連合学習システムに供給され且つ該連合学習システムによって認識されるサンプルデータは、動物の画像を含む。話された単純なオーディオフレーズを認識する代替的な実施態様において、図2において示されているプロセス200に従う為の原理は同様であるであろう。オーディオフレーズを認識する高められたセマンティック学習を有する連合学習システムにおける当事者は、フレーズを質問、挨拶、侮辱、又は補完のグループへと分割しうる。異なる当事者は、特定の参加者/当事者が動作する文化的背景又は文化的環境に応じて、話された同じオーディオフレーズを侮辱、挨拶、又は補完であると判断しうる。個々の当事者及びアグリゲータは、クラスタ及びクラスと、オーディオフレーズのタイプの決定の為の深層学習モデルと、識別されたクラスタに対応するノードとの形成に関して、工程202~工程228を実行する為に協働しうる。該システムは、話され且つ記録された特定のオーディオフレーズに関するベクトルを生成する為に、並びに話されたオーディオフレーズを解析する為に、トーン認識並びにスピーチ・トゥ・テキスト変換(speech-to-text conversion)に依存してもよい。プロセス200は、コンピューティングデバイス、例えば、パーソナルコンピュータ又はスマートフォン、へ、単語の為の予測入力に適用されてもよい。テキスト又は音声データを解析する為に、ニューラルネットワークが該データを理解し且つ分析することができるように、生データを数値ベクトルにマッピングする為の方法、例えばword2vec、が実装されてもよい。
図2~図6は、或る実施態様の例示のみを提供し、異なる実施態様がどのように実装されうるかに関していかなる制限も意味しないことが理解されうる。図示されている1以上の実施態様に対する多くの変更が、設計及び実装要件に基づいてなされうる。
上記の実施態様において説明されているように、セマンティック学習で高められた連合学習プログラム110a、110b、110c及び110dは、学習システムの俊敏性をまた向上させ、且つモデルクラスを追加する為の必要な計算能力を低減しながら、並びに連合学習をより効率的に調整しながら、深層学習システムの訓練がより正確に行われることを可能にすることによって、コンピュータ又はコンピュータのシステムの機能性を向上させうる。
図7は、本発明の1つの例示的な実施態様に従う、図1において示されているコンピュータの内部コンポーネント及び外部コンポーネントのブロック図900である。図7は、1つの実装の例示のみを提供しており、異なる実施態様が実装されうる環境に関して如何なる制限も意味しないことが理解されるべきである。描写された環境に対して多くの変更が、設計及び実装要件に基づいてなされうる。
データ処理システム902及び904は、複数の機械可読プログラム命令を実行することができる在りうる電子デバイスを表す。該データ処理システム902及び904は、スマートフォン、コンピュータシステム、PDA、又は他の電子デバイスを表しうる。該データ処理システム902及び904によって表されうるコンピューティングシステム、環境、若しくは構成又はそれらの組み合わせの例は、パーソナルコンピュータシステム、サーバコンピュータシステム、シンクライアント、シッククライアント、ハンドヘルドデバイス若しくはラップトップデバイス、マルチプロセッサシステム、マイクロプロセッサベースのシステム、ネットワークPC、ミニコンピュータシステム、及び上記のシステム又はデバイスのいずれかを備えている分散型クラウドコンピューティング環境を包含するが、これらに限定されない。
ユーザクライアントコンピュータ102及びネットワークサーバ112は、図7において示されている内部コンポーネント902a及び902b並びに外部コンポーネント904a及び904bの夫々の複数の組を備えうる。内部コンポーネント902a及び902bの複数の該組の各々は、1以上のバス912上に、1以上のプロセッサ906、1以上のコンピュータ可読RAM 908及び1以上のコンピュータ可読ROM 910、並びに1以上のオペレーティングシステム914及び1以上のコンピュータ可読有形記憶デバイス916を備えている。第1、第2、及び第3のコンピュータ102a、102b及び102c夫々内の、1以上のオペレーティングシステム914、ソフトウェアプログラム108及び連合学習プログラム110a、110b及び110c、並びにネットワークサーバ112内の連合学習プログラム110dは、1以上のRAM 908(それは、典型的にはキャッシュメモリを備えている)を介して、1以上のプロセッサ906による実行の為に、1以上のコンピュータ可読有形記憶デバイス916上に格納される。図7において示されている実施態様において、コンピュータ可読有形記憶デバイス916の各々は、内蔵ハードドライブの磁気ディスク記憶デバイスである。代替的には、コンピュータ可読有形記憶デバイス916の各々は、半導体記憶デバイス、例えば、ROM 910、EPROM、フラッシュメモリ、又はコンピュータプログラム及びデジタル情報を格納することができる任意の他のコンピュータ可読有形記憶デバイスである。
内部コンポーネント902a及び902bの各々の組はまた、1以上のポータブルコンピュータ可読有形記憶デバイス920、例えば、CD-ROM、DVD、メモリスティック、磁気テープ、磁気ディスク、光ディスク又は半導体記憶デバイス、から読み取り及びそれに書き込みする為のR/Wドライブ又はインタフェース918を備えている。ソフトウェアプログラム、例えば、ソフトウェアプログラム108並びに連合学習プログラム110a、110b、110c及び110d、は、夫々のポータブルコンピュータ可読有形記憶デバイス920の1以上に格納されることができ、夫々のR/Wドライブ又はインタフェース918を介して読み取られることができ、そして、夫々のハードドライブ5916内へとロードされることができる。
内部コンポーネント902a及び902bの各セットはまた、ネットワークアダプタ(若しくは、スイッチポートカード)又はインタフェース922、例えば、TCP/IPアダプタカード、ワイヤレスWi-Fiインタフェースカード、又は3G若しくは4Gのワイヤレスインタフェースカード、又は他の有線若しくは無線の通信リンクを備えていてもよい。第1、第2、及び第3のコンピュータ102a、102b及び102c内のソフトウェアプログラム108並びに連合学習プログラム110a、110b及び110c、並びにネットワークサーバコンピュータ112内の連合学習プログラム110dは、ネットワーク(例えば、インターネット、ローカルエリアネットワーク又はその他のワイドエリアネットワーク)並びに夫々のネットワークアダプタ又はインタフェース922を介して外部コンピュータ(例えばサーバ)からダウンロードされることができる。該ネットワークアダプタ(若しくはスイッチポートアダプタ)又はインタフェース922から、第1、第2、及び第3のコンピュータ102a、102b及び102c夫々内のソフトウェアプログラム108並びに連合学習プログラム110a、110b及び110cは、夫々のハードドライブ916内へとロードされる。該ネットワークは、銅線、光ファイバ、ワイヤレス伝送、ルータ、ファイアウォール、スイッチ、ゲートウェイコンピュータ、若しくはエッジサーバ、又はそれらの組み合わせを備えていてもよい。
外部コンポーネント904a及び904bの複数の該組の各々は、コンピュータディスプレイモニタ924、キーボード926、及びコンピュータマウス928を備えていることができる。外部コンポーネント904a及び904bはまた、タッチスクリーン、仮想キーボード、タッチパッド、ポインティングデバイス及び他のヒューマンインタフェースデバイスを備えていることができる。内部コンポーネント902a及び902bの複数の該組の各々は、コンピュータディスプレイモニタ924、キーボード926及びコンピュータマウス928にインタフェースする為のデバイスドライバ930を備えている。デバイスドライバ930、R/Wドライブ又はインタフェース918、及びネットワークアダプタ又はインタフェース922は、ハードウェア及び(記憶デバイス916若しくはROM 910又はそれらの組み合わせに格納されている)ソフトウェアを備えている。
本発明は、統合の在りうる任意の技術的詳細レベルでの、システム、方法若しくはコンピュータプログラム製品又はそれらの組み合わせでありうる。該コンピュータプログラム製品は、プロセッサに本発明の観点を実行させる為のコンピュータ可読プログラム命令を有する1以上のコンピュータ可読記憶媒体を包含しうる。
該コンピュータ可読記憶媒体は、命令実行デバイスによって使用する為の命令を保持且つ記憶することができる有形のデバイスであることができる。該コンピュータ可読記憶媒体は、例えば、電子ストレージデバイス、磁気ストレージデバイス、光ストレージデバイス、電磁ストレージデバイス、半導体ストレージデバイス、又はこれらの任意の適切な組み合わせでありうるが、これらに限定されない。該コンピュータ可読記憶媒体のより具体的な例の非網羅的なリストは、下記を包含する:ポータブルのコンピュータディスケット(登録商標)、ハードディスク、ランダムアクセスメモリ(RAM:random access memory)、読み取り専用メモリ(ROM:read only memory)、消去可能なプログラム可能な読み取り専用メモリ(EPROM(erasable programmable read-only memory)又はフラッシュメモリ)、スタティックランダムアクセスメモリ(SRAM:static random access memory)、ポータブル・コンパクトディスク読み取り専用メモリ(CD-ROM:compact disc read-only memory)、デジタル多用途ディスク(DVD:digital versatile disk)、メモリスティック、フロッピーディスク、機械的に符号化されたデバイス、例えば、パンチカード若しくは命令が記録されている溝内の隆起構造又はこれらの任意の適切な組み合わせ。本明細書において使用される場合、コンピュータ可読記憶媒体は、一時的な信号それ自体、例えば、電波又は他の自由に伝播する電磁波、導波管若しくは他の伝送媒体を伝播する電磁波(例えば、光ファイバケーブルを通過する光パルス)、又は電線を介して送信される電気信号、であると解釈されるべきでない。
本明細書において記載されたコンピュータ可読プログラム命令は、コンピュータ可読記憶媒体から夫々のコンピューティングデバイス/処理デバイスに、又はネットワーク、例えば、インターネット、ローカルエリアネットワーク、ワイドエリアネットワーク若しくはワイヤレスネットワーク又はそれらの組み合わせ、を介して外部コンピュータ又は外部記憶デバイスにダウンロードされることができる。該ネットワークは、銅線伝送ケーブル、光伝送ファイバ、無線伝送、ルータ、ファイアウォール、スイッチ、ゲートウェイコンピュータ若しくはエッジサーバ又はこれらの組み合わせで構成されうる。各コンピューティングデバイス/処理デバイスにおけるネットワークアダプタカード又はネットワークインタフェースは、ネットワークからコンピュータ可読プログラム命令を受信し、そして、該コンピュータ可読プログラム命令を、夫々のコンピューティングデバイス/処理デバイス内にコンピュータ可読記憶媒体中に記憶する為に伝送する。
本発明の動作を実行する為のコンピュータ可読プログラム命令は、アセンブラ命令、命令セットアーキテクチャ(ISA:instruction-set-architecture)命令、マシン命令、マシン依存命令、マイクロコード、ファームウェア命令、状態設定データ、集積回路の為の構成データ、又は、1以上のプログラミング言語、例えばオブジェクト指向プログラミング言語、例えば、Smalltalk、C++等、慣用的な手続き型プログラミング言語(例えば、「C」プログラミング言語又は同様のプログラミング言語)、の任意の組み合わせで書かれているソースコード又はオブジェクトコードのいずれか、でありうる。該コンピュータ可読プログラム命令は、ユーザのコンピュータ上で全体的に、ユーザのコンピュータ上で部分的に、ユーザのコンピュータ上でスタンドアロン・ソフトウェア・パッケージとして部分的に、ユーザのコンピュータ上で部分的に且つリモート・コンピュータ上で部分的に、又はリモート・コンピュータ若しくはサーバ上で全体的に、実行されうる。後者のシナリオにおいて、該リモート・コンピュータは、任意の種類のネットワーク、例えば、ローカルエリアネットワーク(LAN:local area network)若しくはワイドエリアネットワーク(WAN:wide area network)、を介してユーザのコンピュータに接続されうるか、又は該接続は(例えば、インターネットサービスプロバイダを使用したインターネットを通じて)外部コンピュータに対して行われうる。幾つかの実施態様において、電子回路、例えば、プログラム可能な論理回路、フィールドプログラム可能なゲートアレイ(FPGA:field-programmable gate arrays)又はプログラム可能なロジックアレイ(PLA:programmable logic arrays)、は、本発明の観点を実行する為に、コンピュータ可読プログラム命令の状態情報を利用することによって、電子回路をパーソナライズすることによって、コンピュータ可読プログラム命令を実行しうる。
本発明の観点は、本発明の実施態様に従う、方法、装置(システム)及びコンピュータプログラム製品若しくはコンピュータプログラムのフローチャート図若しくはブロック図又はそれらの組み合わせを参照して本明細書において記載されている。該フローチャート図若しくは該ブロック図又はそれらの組み合わせの各ブロック、並びに該フローチャート図若しくは該ブロック図又はそれらの組み合わせにおける複数のブロックの組み合わせは、コンピュータ可読プログラム命令によって実装されることができることが理解されるであろう。
これらのコンピュータ可読プログラム命令は、該コンピュータ又は他のプログラム可能なデータ処理装置のプロセッサを介して実行する命令が該フローチャート図若しくはブロック図又はそれらの組み合わせの1以上のブロックにおいて特定された機能/動作を実装する為の手段を作成するように、コンピュータのプロセッサ又は他のプログラム可能なデータ処理装置に提供されて、マシンを作り出しうる。記憶された命令を有するコンピュータ可読記憶媒体が該フローチャート図若しくはブロック図又はそれらの組み合わせの1以上のブロックにおいて特定される機能/動作の観点を実装する命令を含む製造品を含むように、これらのコンピュータ可読プログラム命令はまた、コンピュータプログラム可能なデータ処理装置若しくは他のデバイス又はこれらの組み合わせに特定の様式で機能するように指示することができるコンピュータ可読記憶媒体中に記憶されうる。
該コンピュータ可読プログラム命令はまた、コンピュータ上、他のプログラム可能なデータ処理装置上又は他のデバイス上で実行される命令が、該フローチャート図若しくはブロック図若しくはそれらの組み合わせの1以上のブロックにおいて特定される機能/動作を実装するように、上記のコンピュータ上、他のプログラム可能なデータ処理装置上又は他のデバイス上にロードされて、コンピュータ、他のプログラム可能な装置又は他のデバイス上で一連の操作工程を実行させて、コンピュータに実装されたプロセスを生成しうる。
図面中のフローチャート図及びブロック図は、本発明の様々な実施態様に従う、システム、方法及びコンピュータプログラム製品若しくはコンピュータプログラムの在りうる実装の、アーキテクチャ、機能及び動作を示す。これに関連して、該フローチャート図又はブロック図における各ブロックは、命令のモジュール、セグメント、又はその一部を表し得、それは、特定された1以上の論理機能を実装する為の1以上の実行可能命令を含む。幾つかの代替の実装において、該ブロックにおいて示されている機能は、図面中に示されている順序とは異なって生じうる。例えば、連続して示されている2つのブロックは、実際には、関与する機能に依存して、同時に、実質的に同時に、部分的又は全体的に時間的に重複する様式で実行される1つの工程として達成されうるか、又は該ブロックは、逆の順序で実行されうる。該ブロック図若しくはフローチャート図又はこれらの組み合わせの各ブロック、並びに該ブロック図若しくはフローチャート図又はこれらの組み合わせの複数のブロックの組み合わせは、特定された機能又は動作を実行する特別な目的のハードウェアベースのシステムによって実装することができ、又は特別な目的のハードウェアとコンピュータ命令との組み合わせを実行することができることに留意されたい。
本開示はクラウドコンピューティングに関する詳細な説明を含むが、本明細書に列挙される教示の実装はクラウドコンピューティング環境に限定されないことが予め理解されるべきである。寧ろ、本発明の実施態様は、現在知られている又は後に開発される任意の他のタイプのコンピューティング環境と組み合わされて実装されることができる。
クラウドコンピューティングは、最小限の管理労力又はサービスのプロバイダとの相互作用で迅速にプロビジョニングされ且つ解放されることができる構成可能なコンピューティングリソース(例えば、ネットワーク、ネットワーク帯域幅、サーバ、処理(processing)、メモリ、ストレージ、アプリケーション、仮想マシン、及びサービス)の共有プールへの便利なオンデマンドネットワークアクセスを可能にする為のサービス提供のモデルである。このクラウドモデルは、少なくとも5つの特徴、少なくとも3つのサービスモデル、及び少なくとも4つのデプロイメントモデル(deployment model)を含みうる。
特徴は下記の通りである。
オンデマンドセルフサービス(On-demand self-service):クラウドコンシューマ(cloud consumer)は、サービスのプロバイダとのヒューマンインターラクション(human interaction)を必要とせずに、必要に応じて、コンピューティング機能、例えばサーバ時間及びネットワークストレージ、を一方的にプロビジョニングすることができる。
ブロードネットワークアクセス:機能は、ネットワークを介して利用可能であり、及び異種のシン(thin)クライアント・プラットフォーム又はシック(thick)クライアント・プラットフォーム(例えば、携帯電話、ラップトップ、及びPDA)による使用を促進する標準的なメカニズムを介してアクセスされる。
リソースのプーリング:プロバイダのコンピューティングリソースは、マルチテナントモデルを使用して複数のコンシューマにサービスを提供する為にプールされ、及び様々な物理リソースと仮想リソースが需要に従って動的に割り当てられ及び再割り当てされる。コンシューマは一般的に、提供されたリソースの正確な場所についての制御又は知識を有していないが、より高いレベルの抽象化での場所(例えば、国、州又はデータセンター)を特定できうるという点で、場所に依存しないといえる。
迅速な順応性:機能は、迅速且つ弾力的にプロビジョニングされ、場合によっては自動的に、迅速にスケールアウトされ、迅速にリリースされて迅速にスケールインされうる。コンシューマにとって、プロビジョニングに利用可能な機能はしばしば、無制限であり及びいつでも任意の量で購入されることができる。
測定されたサービス:クラウド・システムは、サービスのタイプ(例えば、ストレージ、処理、帯域幅、及びアクティブなユーザアカウント)に適した何らかの抽象化レベルでの計量機能を用いることによって、リソースの使用を自動的に制御し及び最適化する。リソース使用は監視され、制御され、及び報告されることができ、利用されるサービスのプロバイダ及びコンシューマの両方についての透明性を提供することができる。
サービスモデルは下記の通りである。
サービスとしてのソフトウェア(SaaS:Software as a Service):クラウドインフラストラクチャにおいて実行しているプロバイダのアプリケーションを使用する為に、コンシューマに提供される機能である。該アプリケーションは、シン・クライアント・インタフェース、例えばウェブブラウザ(例えば、ウェブベースの電子メール)、を通じて、様々なクライアント・装置からアクセス可能である。該コンシューマは、制限されたユーザ固有のアプリケーション構成設定の在りうる例外として、基礎をなすクラウドインフラストラクチャ、例えば、ネットワーク、サーバ、オペレーティングシステム、ストレージ、又は個々のアプリケーション機能さえも包含する基礎をなすクラウドインフラストラクチャ、を管理又は制御しない。
サービスとしてのプラットフォーム(PaaS:Platform as a Service):プロバイダによってサポートされるプログラミング言語及びツールを用いて生成された、コンシューマが生成した又は取得したアプリケーションを、クラウドインフラストラクチャ上にデプロイする為に、該コンシューマに提供される機能である。該コンシューマは、基礎をなすクラウドインフラストラクチャ、例えば、ネットワーク、サーバ、オペレーティングシステム、又はストレージを包含する基礎をなすクラウドインフラストラクチャ、を管理又は制御しないが、デプロイされたアプリケーション、及び場合によってはアプリケーション・ホスティング環境構成に対して制御を有する。
サービスとしてのインフラストラクチャ(IaaS:Infrastructure as a Service):コンシューマが、オペレーティングシステム及びアプリケーションを含むことができる任意のソフトウェアをデプロイ及び実行することができる、処理、ストレージ、ネットワーク、及び他の基本的なコンピューティングリソースをプロビジョニングする為に、該コンシューマに提供される機能である。該コンシューマは、基礎をなすクラウドインフラストラクチャを管理又は制御しないが、オペレーティングシステム、ストレージ、デプロイされたアプリケーションに対する制御、並びに、場合によっては、ネットワーク・コンポーネント(例えば、ホストのファイアウォール)を選択することの制限された制御を有する。
デプロイメントモデル(Deployment Models)は下記の通りである。
プライベートクラウド:クラウドインフラストラクチャは、ある組織の為のみに運営される。該クラウドインフラストラクチャは、該組織又は第三者によって管理され得、及びオンプレミス(on-premises)又はオフプレミス(off-premises)に存在しうる。
コミュニティクラウド:クラウドインフラストラクチャは、幾つかの組織によって共有され、及び共通の関心事項(例えば、ミッション、セキュリティ要件、ポリシー、及びコンプライアンス考慮事項)を有する特定のコミュニティをサポートする。該クラウドインフラストラクチャは、該組織又は第三者によって管理され得、及びオンプレミス又はオフプレミスに存在しうる。
パブリッククラウド:クラウドインフラストラクチャは、一般公衆又は大規模な業界グループに対して利用可能であり、及びクラウドサービスを販売する組織によって所有される。
ハイブリッドクラウド:クラウドインフラストラクチャは、固有のエンティティのままであるが、データ及びアプリケーションの移行性を可能にする標準化された又は専用の技術(例えば、クラウド間の負荷分散の為のクラウド・バースティング)によって一緒にされる2以上のクラウド(プライベート、コミュニティ、又はパブリック)の混成物である。
クラウドコンピューティング環境は、無国籍性(statelessness)、低結合性、モジュール性、及びセマンティック相互運用性(semantic interoperability)に焦点を有する指向されたサービスである。クラウドコンピューティングの中核(heart)は、相互接続されたノードのネットワークを含むインフラストラクチャである。
ここで図8を参照すると、例示的なクラウドコンピューティング環境1000が図示されている。図示されているように、クラウドコンピューティング環境1000は、クラウドコンシューマ、例えば、パーソナルデジタルアシスタント(PDA:personal digital assistant)又は携帯電話1000A、デスクトップコンピュータ1000B、ラップトップコンピュータ1000C若しくは自動車コンピュータシステム1000N等又はそれらの組み合わせ、によって用いられるローカルコンピューティングデバイスが通信しうる1以上のクラウドコンピューティングノード800を備えている。ノード800は、互いに通信しうる。それらは、1以上のネットワーク、例えば、本明細書において記載されている、プライベートクラウド、コミュニティクラウド、パブリッククラウド、若しくはハイブリッドクラウド、又はそれらの組み合わせ、において物理的又は仮想的にグループ化されていてもよい(図示せず)。これにより、クラウドコンピューティング環境1000は、クラウドコンシューマがローカルコンピューティングデバイス上のリソースを維持する必要がないサービスとして、インフラストラクチャ、プラットフォーム若しくはソフトウェア又はそれらの組み合わせを提供することができる。図8に示されているコンピューティングデバイス1000A~1000Nのタイプは、例示のみを意図されていること、並びにコンピューティングノード800及びクラウドコンピューティング環境1000は、任意のタイプのネットワーク若しくはネットワークアドレス可能接続又はそれらの組み合わせを介して(例えば、ウェブブラウザを使用して)、任意のタイプのコンピュータ化されたデバイスと通信することが理解される。クラウドコンピューティングノード800は、図7に示されているクライアントコンピュータ102と、図1に示されているコンピュータ102a、102b及び102cと同様の又は同じ構造、並びに内部及び外部コンポーネントを有しうる。
ここで図9を参照すると、クラウドコンピューティング環境1000(図8)によって提供される機能的抽象化層の1組が示されている。図9に示されているコンポーネント、層及び機能は、単に例示であることが意図されていること、並びに本発明の実施態様はそれらに限定されないことが理解されるべきである。図示されている通り、下記の複数の層及び対応する複数の機能が提供される。
ハードウェア及びソフトウェア層1102は、ハードウェアコンポーネント及びソフトウェアコンポーネントを包含する。ハードウェアコンポーネントの例は、メインフレーム1104、RISC(Reduced Instruction Set Computer(縮小命令セット・コンピュータ))アーキテクチャ・ベースのサーバ1106;サーバ1108;ブレード・サーバ1110;記憶デバイス1112;並びに、ネットワーク及びネットワーキング・コンポーネント1114を包含する。幾つかの実施態様において、ソフトウェアコンポーネントは、ネットワーク・アプリケーション・サーバ・ソフトウェア1116及びデータベース・ソフトウェア1118を包含する。
仮想化層1120は、抽象化層を提供し、この抽象化層から、仮想エンティティの下記の例が提供されうる:すなわち、仮想サーバ1122;仮想ストレージ1124;仮想ネットワーク1126;例えば仮想プライベートネットワークを包含する該仮想ネットワーク1126;仮想アプリケーション及びオペレーティングシステム1128;並びに、仮想クライアント1130。
1つの例において、管理層1132は、以下で説明される複数の機能を提供しうる。リソース・プロビジョニング1134は、クラウドコンピューティング環境内でタスクを実行する為に利用されるコンピューティングリソース及び他のリソースの動的な調達を提供する。計量及び価格決定1136は、リソースがクラウドコンピューティング環境内で利用される場合のコスト追跡と、これらのリソースの消費についての課金又は請求とを提供する。1つの例において、これらのリソースは、アプリケーション・ソフトウェア・ライセンスを包含しうる。セキュリティは、クラウドコンシューマ及びタスクに対する識別検証と、データ及び他のリソースに対する保護とを提供する。ユーザ・ポータル1138は、コンシューマ及びシステム管理者の為に、クラウドコンピューティング環境へのアクセスを提供する。サービスレベル管理1140は、要求されるサービスレベルが満たされるように、クラウド・コンピューティング・リソースの割り当て及び管理を提供する。サービス・レベル・アグリーメント(SLA:Service Level Agreement)の計画及び履行1142は、将来の要件がSLAに従って予測されるクラウド・コンピューティング・リソースの為の事前配置及びその調達を提供する。
ワークロード層1144は、該クラウドコンピューティング環境が利用されうる複数の機能の例を提供する。この層から提供されうる複数のワークロード及び複数の機能の例は、マッピング及びナビゲーション1146;ソフトウェア開発及びライフサイクル管理1148;仮想教室教育の提供1150;データ分析処理1152;トランザクション処理1154;並びに、セマンティックな連合学習1156を包含する。連合学習プログラム110a、110b、110c及び110dは、該連合学習システム内の個々のコンピューティングデバイスの為の固有のセマンティック命名プリファレンスを扱う場合でも、連合学習を正確に実行する為の方法を提供する。
本明細書において使用されている用語は、特定の実施態様を説明することのみを目的としており、本発明を限定することを意図していない。本明細書において使用される場合、単数形「1つ」(a)、「1つ」(an)、及び「該」(the)は、文脈が明らかにそうでないことを示していない限り、複数形を含むように意図されている。本明細書において使用される場合、語「含む」(comprises)、「含んでいる」(comprising)、「備える」(includes)、「備えている」(including)、「有する」(has)、「有する」(have)、「有している」(having)、「持つ」(with)等は、述べられた特徴、整数、工程、動作、要素、若しくはコンポーネント又はそれらの組み合わせの存在を特定するが、1以上の他の特徴、整数、工程、動作、要素、コンポーネント若しくはそれらのグループ又はそれらの組み合わせの存在又は付加を排除しないことが更に理解されるであろう。
本開示の様々な実施態様の記載は、例示の目的の為に提示されたものであり、網羅的であること又は開示された実施態様に限定されることが意図されたものでない。多くの修正及び変形が、記載された実施態様の範囲及び精神から逸脱すること無しに当業者に明らかであろう。本明細書において使用される語は、実施態様の原理、実用的な用途、又は市場において見られる技術に対する技術的改善を最もよく説明する為に、又は当業者が本明細書において開示されている実施態様を理解することができるようにする為に選択された。