(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-11-27
(45)【発行日】2023-12-05
(54)【発明の名称】帯域幅拡張のための特徴ディクショナリ
(51)【国際特許分類】
G06N 3/08 20230101AFI20231128BHJP
G09C 1/00 20060101ALI20231128BHJP
H04L 9/12 20060101ALI20231128BHJP
H04W 12/02 20090101ALI20231128BHJP
H04W 12/03 20210101ALI20231128BHJP
【FI】
G06N3/08
G09C1/00 660E
H04L9/12
H04W12/02
H04W12/03
(21)【出願番号】P 2022510878
(86)(22)【出願日】2020-08-13
(86)【国際出願番号】 US2020046159
(87)【国際公開番号】W WO2021034604
(87)【国際公開日】2021-02-25
【審査請求日】2022-04-15
(32)【優先日】2019-08-20
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】595168543
【氏名又は名称】マイクロン テクノロジー,インク.
(74)【代理人】
【識別番号】100121083
【氏名又は名称】青木 宏義
(74)【代理人】
【識別番号】100138391
【氏名又は名称】天田 昌行
(74)【代理人】
【識別番号】100074099
【氏名又は名称】大菅 義之
(72)【発明者】
【氏名】クレウィッツ ケネス マリオン
(72)【発明者】
【氏名】アケル アミーン ディー.
(72)【発明者】
【氏名】ワン ホンギュ
(72)【発明者】
【氏名】エイラート ショーン ステファン
【審査官】渡辺 一帆
(56)【参考文献】
【文献】国際公開第2019/032157(WO,A1)
【文献】特開昭63-103533(JP,A)
【文献】特表2017-530435(JP,A)
【文献】米国特許出願公開第2019/0050746(US,A1)
【文献】米国特許出願公開第2018/0018590(US,A1)
【文献】米国特許出願公開第2015/0195146(US,A1)
【文献】米国特許出願公開第2019/0035113(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06N 3/02-3/10
G09C 1/00
H04L 9/12
H04W 12/02
H04W 12/03
(57)【特許請求の範囲】
【請求項1】
方法であって、
第1のコンピューティングデバイスによって、人工ニューラルネットワーク(ANN)のマスターバージョンをホストすることと、
前記第1のコンピューティングデバイスによって、特徴ディクショナリのマスターバージョンをホストすることと、
前記第1のコンピューティングデバイスによって、第2のコンピューティングデバイスからエンコードされた特徴を受信することであって、前記受信したエンコードされた特徴が、前記第2のコンピューティングデバイスによってホストされる前記特徴ディクショナリのローカルバージョンに従って、前記第2のコンピューティングデバイスによってエンコードされる、前記受信することと、
前記第1のコンピューティングデバイスによって、前記特徴ディクショナリの前記マスターバージョンに従って、前記受信したエンコードされた特徴をデコードすることと、
前記第1のコンピューティングデバイスによって、機械学習を使用して、前記デコードされた特徴に基づいて前記ANNの前記マスターバージョンをトレーニングすることと
、
前記第1のコンピューティングデバイスによって、前記第2のコンピューティングデバイスから前記特徴ディクショナリの前記ローカルバージョンを受信することと、
前記第1のコンピューティングデバイスによって、前記特徴ディクショナリの前記受信したローカルバージョンに基づいて前記特徴ディクショナリの前記マスターバージョンを変更することと、
前記第1のコンピューティングデバイスによって、前記特徴ディクショナリの前記変更されたマスターバージョンを前記第2のコンピューティングデバイスに送信することと、
を含む、前記方法。
【請求項2】
第1のコンピューティングデバイスによって、前記ANNの前記トレーニングされたマスターバージョンを前記第2のコンピューティングデバイスに送信することを含む、請求項1に記載の方法。
【請求項3】
前記デコードすることが、前記特徴ディクショナリの前記変更されたマスターバージョンに従って、前記エンコードされた特徴をデコードすることを含む、請求項
1に記載の方法。
【請求項4】
方法であって、
第2のコンピューティングデバイスによって、人工ニューラルネットワーク(ANN)のローカルバージョンをホストすることと、
第2のコンピューティングデバイスによって、特徴ディクショナリのローカルバージョンをホストすることと、
前記第2のコンピューティングデバイスによって、前記第2のコンピューティングデバイスによってホストされるユーザーデータから特徴を抽出することと、
前記第2のコンピューティングデバイスによって、前記特徴ディクショナリの前記ローカルバージョンに従って、前記抽出された特徴をエンコードすることと、
前記エンコードされた特徴が
、第1のコンピューティングデバイスによってホストされる前記特徴ディクショナリのマスターバージョンによってデコードされ、次に機械学習を使用して、前記ANN
のマスターバージョンをトレーニングするための入力として使用されるように、前記エンコードされた特徴を、前記第2のコンピューティングデバイスによって、前記ANNの
前記マスターバージョンをホストする前記第1のコンピューティングデバイスに送信することと
、
前記抽出された特徴が前記特徴ディクショナリのローカルバージョンに含まれるかどうかを、前記第2のコンピューティングデバイスによって決定することと、
前記特徴ディクショナリの前記ローカルバージョンが前記抽出された特徴を含むことに応答して、前記特徴ディクショナリの前記ローカルバージョンに従って、前記抽出された特徴をエンコードすることと、
前記特徴ディクショナリの前記ローカルバージョンが前記抽出された特徴を含まないことに応答して、前記抽出された特徴に基づいて前記特徴ディクショナリの前記ローカルバージョンを変更し、次に前記特徴ディクショナリの前記変更されたローカルバージョンに従って、前記抽出された特徴をエンコードすることと、
を含む前記方法。
【請求項5】
前記特徴ディクショナリの前記マスターバージョンが前記特徴ディクショナリの前記ローカルバージョンに従って変更されるように、前記特徴ディクショナリの前記変更されたローカルバージョンを前記第1のコンピューティングデバイスに送信することを含む、請求項
4に記載の方法。
【請求項6】
前記特徴ディクショナリの前記ローカルバージョンに従って変更された前記特徴ディクショナリの変更されたマスターバージョンを受信することと、
前記特徴ディクショナリの前記変更されたマスターバージョンに基づいて前記特徴ディクショナリの前記ローカルバージョンを変更することと
、
を含む、請求項
5に記載の方法。
【請求項7】
前記ANNの前記トレーニングされたマスターバージョンを受信することと、
前記ANNの前記トレーニングされたマスターバージョンに基づいて前記ANNの前記ローカルバージョンを変更することと
、
を含む、請求項
4に記載の方法。
【請求項8】
第2のコンピューティングデバイスと、
前記第
2のコンピューティングデバイスに通信可能に結合された第1のコンピューティングデバイス
と、
を備えるシステムであって、
前記第1のコンピューティングデバイスは、
人工ニューラルネットワーク(ANN)のマスターバージョンを格納し、
かつ、特徴ディクショナリのマスターバージョンを格納す
るように構成されたメモリと、
前記第2のコンピューティングデバイスからエンコードされた特徴を受信するように構成されたトランシーバと、
前記特徴ディクショナリの前記マスターバージョンに従って、前記受信したエンコードされた特徴をデコードし、
かつ、機械学習を使用して、前記デコードされた特徴に基づいて前記ANNの前記マスターバージョンをトレーニングするように構成されたプロセッサと
、
を備え
、
前記第1のコンピューティングデバイスの前記トランシーバが、前記第2のコンピューティングデバイスから前記特徴ディクショナリのローカルバージョンを受信するように構成され、
前記第1のコンピューティングデバイスの前記プロセッサが、前記特徴ディクショナリの前記受信したローカルバージョンに基づいて前記特徴ディクショナリの前記マスターバージョンを変更し、かつ、前記特徴ディクショナリの前記変更されたマスターバージョンに従って、前記受信したエンコードされた特徴をデコードするように構成され、
前記第1のコンピューティングデバイスの前記トランシーバが、前記特徴ディクショナリの前記変更されたマスターバージョンを前記第2のコンピューティングデバイスに送信するように構成される、前記システム。
【請求項9】
前記第1のコンピューティングデバイスの前記トランシーバが、前記ANNの前記トレーニングされたマスターバージョンを前記第2のコンピューティングデバイスに送信するように構成される、請求項
8に記載のシステム。
【請求項10】
前記第2のコンピューティングデバイスが、
ユーザーデータを格納し、前記ANNのローカルバージョンを格納し、
かつ、前記特徴ディクショナリの前記ローカルバー
ジョンを格納するように構成されたメモリと、
前記格納されたユーザーデータから特徴を抽出し、
かつ、前記特徴ディクショナリの前記ローカルバージョンに従って、前記抽出された特徴をエンコードするように構成されたプロセッサと、
前記エンコードされた特徴が、前記特徴ディクショナリの前記マスターバージョンによってデコードされ、次に前記機械学習を使用して、前記ANNの前記マスターバージョンをトレーニングするための入力として使用されるように、前記エンコードされた特徴を前記第1のコンピューティングデバイスに送信するように構成されたトランシーバと
、
を備える、請求項
8に記載のシステム。
【請求項11】
前記第2のコンピューティングデバイスの前記プロセッサが、さらに
前記抽出された特徴が、前記特徴ディクショナリの前記ローカルバージョンに含まれるかどうかを決定し、
前記特徴ディクショナリの前記ローカルバージョン
が前記抽出された特徴を含むことに
応答して、前記特徴ディクショナリの前記ローカルバージョンに従って、前記抽出された特徴をエンコードし、
前記特徴ディクショナリの前記ローカルバージョン
が前記抽出された特徴を含まないことに
応答して、前記抽出された特徴に基づいて前記特徴ディクショナリの前記ローカルバージョンを変更し、次に前記特徴ディクショナリの前記変更されたローカルバージョンに従って、前記抽出された特徴をエンコードするように構成される
、請求項
10に記載のシステム。
【請求項12】
前記第2のコンピューティングデバイスの前記トランシーバが、前記特徴ディクショナリの前記マスターバージョンが前記特徴ディクショナリの前記ローカルバージョンに従って変更されるように、前記特徴ディクショナリの前記変更されたローカルバージョンを前記第1のコンピューティングデバイスに送信するように構成される、請求項
11に記載のシステム。
【請求項13】
前記第2のコンピューティングデバイスの前記トランシーバが、前記特徴ディクショナリの前記変更されたマスターバージョンを受信するように構成され、前記第2のコンピューティングデバイスの前記プロセッサが、前記特徴ディクショナリの前記変更されたマスターバージョンに基づいて前記特徴ディクショナリの前記ローカルバージョンを変更するように構成される、請求項
12に記載のシステム。
【請求項14】
前記第2のコンピューティングデバイスの前記トランシーバが、前
記ANNの前記トレーニングされたマスターバージョンを受信するように構成され、
前記第2のコンピューティングデバイスの前記プロセッサが、前記ANNの前記トレーニングされたマスターバージョンに基づいて前記ANNの前記ローカルバージョンを変更するように構成される、請求項
10に記載のシステム。
【発明の詳細な説明】
【技術分野】
【0001】
本出願は、2019年8月20日に出願され、「Feature Dictionary for Bandwidth Enhancement」と題され、その開示全体が参照により本明細書に組み込まれる米国特許出願第16/545,854号の優先権を主張する。
【0002】
本明細書に開示される少なくともいくつかの実施形態は、一般にデータプライバシー保護及び帯域幅拡張を備えた分散型機械学習に関連し、より具体的には、データプライバシー保護及び帯域幅拡張を備えた分散型人工ニューラルネットワークに関連する。
【背景技術】
【0003】
人工ニューラルネットワーク(ANN)は、特定の操作の命令でプログラムされることなく、タスクの実行を学習できるコンピューティングシステムである。ANNは、接続されたノードまたは人工ニューロンのセットに基づいており、これらは、生物学的脳のニューロンにいくらか類似している。ノード間の各接続は、ある人工ニューロンから別の人工ニューロンに信号を送信でき、信号を受信した人工ニューロンはそれを処理できる。
【0004】
通常、ANNは、実数である人工ニューロン間の接続(またはエッジ)での信号によって実装され、各人工ニューロンの出力は、その入力の合計の非線形関数によって計算される。人工ニューロンとエッジは、通常、ANNによる学習またはANNのトレーニングが進むにつれて調整される重みを有する。重みは、エッジでの信号の強度を増減する。人工ニューロンはまた、集約信号がしきい値を超えた場合にのみ信号が人工ニューロンから送信されるしきい値を有する場合もある。通常、人工ニューロンはレイヤー(入力レイヤー、1つ以上の中間レイヤー、出力レイヤーなど)にグループ化され、各レイヤーはレイヤーへの入力に対して異なる変換を提供できる。
【0005】
ディープニューラルネットワークなどの複雑な人工ニューラルネットワークの使用が増加し、そのようなネットワークの有効性を高めたいという要望に伴い、複数のプロセッサ及び/または分散コンピューティングを使用して人工ニューラルネットワークのトレーニングを分散することで複雑さと課題に対応してきた。ただし、複数のプロセッサまたは分散コンピューティングを使用すると、データのプライバシーに関する懸念(たとえば、データが真正であるという懸念)と、ネットワークパフォーマンスに関する懸念(たとえば、アプリケーションの性能ニーズを満たすニューラルネットワークの能力を制限するネットワークパフォーマンスに関わる懸念)がある。
【0006】
本開示は、以下に示す詳細な説明及び本開示の様々な実施形態の添付図面から、より十分に理解される。
【図面の簡単な説明】
【0007】
【
図1】本開示のいくつかの実施形態による、人工ニューラルネットワーク(ANN)の集中トレーニング及びデータ送信の低減のための特徴ディクショナリの使用を実装するための構成の例示的なコンピュータネットワーク100を示す。
【
図2】本開示のいくつかの実施形態による、人工ニューラルネットワーク(ANN)の集中トレーニング及びデータ送信の低減のための特徴ディクショナリの使用を実装するための構成の例示的なコンピュータネットワーク100を示す。
【
図3】本開示のいくつかの実施形態による、ANNの集中トレーニング及びデータ送信の低減のための特徴ディクショナリの使用を実装できるコンピュータネットワーク100の例示的な部分により実行される例示的な方法を示す。
【
図4】本開示のいくつかの実施形態による、ANNの集中トレーニング及びデータ送信の低減のための特徴ディクショナリの使用を実装できるコンピュータネットワーク100の例示的な部分により実行される例示的な方法を示す。
【
図5】本開示のいくつかの実施形態による、ANNの集中トレーニング及びデータ送信の低減のための特徴ディクショナリの使用を実装できるコンピュータネットワーク100の例示的な部分により実行される例示的な方法を示す。
【
図6】本開示のいくつかの実施形態による、ANNのマスターバージョン及び特徴ディクショナリをホストすることができる例示的なコンピューティングデバイス、またはANNの他のバージョン及び特徴ディクショナリをホストすることができる例示的なコンピューティングデバイスを示す。
【発明を実施するための形態】
【0008】
本開示の少なくともいくつかの態様は、一般にデータプライバシー保護及び帯域幅拡張を備えた分散型機械学習を対象とし、より具体的には、データプライバシー保護及び帯域幅拡張を備えた分散型人工ニューラルネットワークを対象とする。また、本開示の少なくともいくつかの態様は、人工ニューラルネットワーク(ANN)の集中トレーニング及びデータ送信の低減のための特徴ディクショナリの使用を実装するように構成できるコンピュータネットワークを対象とする。
【0009】
本明細書に開示されているのは、ANNの異なるバージョンをホストできる複数のコンピューティングデバイスを有することができるシステムである。システムの各コンピューティングデバイスは、ANNの独自のバージョンをホストできる。たとえば、第1のデバイスはANNのマスターバージョンをホストでき、第2のデバイスとシステムの他のデバイスはANNのローカルバージョンをホストできる。また、本明細書に開示されているのは、ANNの異なるバージョンならびに特徴ディクショナリの異なるバージョンをホストできる複数のデバイスを有することができるシステムである。システムでは、ANNのマスターバージョンの入力は、ANNのローカルバージョンをホストする複数のデバイスの1つ(第2のコンピューティングデバイスなど)でエンコードできる。次に、(特徴ディクショナリのローカルバージョンによって定義されたエンコードされた入力である)エンコードされた入力を、ANNのマスターバージョンをホストするマスターコンピューティングデバイス(第1のコンピューティングデバイスなど)に送信できる。マスターコンピューティングデバイスでは、送信されたエンコードされた特徴を、特徴ディクショナリのマスターバージョンに従ってデコードできる。これにより、通常はエンコードされた入力よりも多くのデータを含む入力の元のバージョンの代わりに、エンコードされた入力をネットワークを介してANNのマスターバージョンに送信できる。したがって、マスターANNのトレーニングに特徴ディクショナリを使用することによって、データ送信を低減できる。
【0010】
システムでは、ANNのローカルバージョンと特徴ディクショナリのローカルバージョンをホストするコンピューティングデバイスは、デバイスに格納されたユーザーデータから選択された機能を抽出し、データ圧縮アルゴリズムを使用してユーザーデータから抽出された特徴をエンコードできる。このエンコーディングにより、データ圧縮アルゴリズムは、抽出された特徴と、それに対応するエンコードされた特徴(コードワードなど)とのペアを提供できる。ペアは、定義として特徴ディクショナリに含めることができる。元の抽出されたデータとそれに対応するエンコードされたデータとのペアリングを使用して、特徴ディクショナリを作成または再作成できる。したがって、特徴ディクショナリのローカルバージョンは、エンコードされたデータの定義をペアリングで提供する。これらのペアリングまたは定義により、エンコードされたデータを、特徴ディクショナリのマスターバージョンによってなど、その対応する元のデータにデコードできる。また、特徴ディクショナリのローカルバージョンを使用して、特徴ディクショナリのマスターバージョンを更新できる。そして、データ圧縮アルゴリズムは、データ送信の低減を変えるために、その圧縮の程度を変えることができる。
【0011】
システムでは、ユーザーデータの特徴の完全な記述(圧縮されていないユーザーデータなど)を送信する代わりに、ANN及びディクショナリのローカルバージョンをホストするコンピューティングデバイスの1つから、ANN及びディクショナリのマスターバージョンをホストするコンピューティングデバイスにユーザーデータを送信することで、コードワードを送信できる。ANN及びディクショナリのマスターバージョンをホストするコンピューティングデバイスに特徴が送信されるたびに、それに応じて特徴のコードワードを特徴ディクショナリのローカルバージョンで定義し、送信することができ、その結果、対応するコードワードだけがネットワークを介して送信される。いくつかの実施形態では、コードワードと特徴をペアにする定義は、定義が特徴ディクショナリのローカルバージョンで生成または更新される-データ圧縮アルゴリズムを介して生成または更新されるなど-ときにだけ特徴ディクショナリのマスターバージョンをホストするコンピューティングデバイスに送信される。これは、特徴ディクショナリとエンコードされた特徴の両方の更新が一緒に送信される場合である。それ以外の場合、ディクショナリのマスターバージョンにはローカルバージョンと同じ定義が含まれているため、エンコードされた特徴のみが送信される。
【0012】
ANNのマスターバージョンと特徴ディクショナリのマスターバージョンをホストするコンピューティングデバイスは、送信されたコードワードを使用して、ディクショナリのマスターバージョンから特徴を検索できる。そして、コンピューティングデバイスは、ディクショナリのマスターバージョンに従ってコードワードをデコードし、機械学習を介してANNのマスターバージョンをトレーニングするためにデコードされた特徴を使用できる。
【0013】
いくつかの実施形態では、本明細書で説明するシステムは、ANNのマスターバージョンと特徴ディクショナリのマスターバージョンをホストする第1のコンピューティングデバイス、及びANNのローカルバージョンと特徴ディクショナリのローカルバージョンをホストする第2のコンピューティングデバイスを含むことができる。また、第2のコンピューティングデバイスは、ANNの異なるローカルバージョンと特徴ディクショナリの異なるローカルバージョンをホストできる多くのコンピューティングデバイスの1つである可能性がある。第1のコンピューティングデバイスは、第2のコンピューティングデバイスに通信可能に結合することができ、ANNのマスターバージョンを格納し、特徴ディクショナリのマスターバージョンを格納するように構成されたメモリを含むことができる。第1のコンピューティングデバイスはまた、第2のコンピューティングデバイスからエンコードされた特徴を受信するように構成されたトランシーバを含むことができる。第1のコンピューティングデバイスはまた、特徴ディクショナリのマスターバージョンに従って、受信したエンコードされた特徴をデコードし、機械学習を使用して、デコードされた特徴に基づいてANNのマスターバージョンをトレーニングするように構成されたプロセッサを含むことができる。第2のコンピューティングデバイスは、ユーザーデータを格納し、ANNのローカルバージョンを格納し、特徴ディクショナリのローカルバージョンを格納するように構成されたメモリを含むことができる。第2のコンピューティングデバイスはまた、格納されたユーザーデータから特徴を抽出し、特徴ディクショナリのローカルバージョンに従って、抽出された特徴をエンコードするように構成されたプロセッサを含むこともできる。第2のコンピューティングデバイスはまた、エンコードされた特徴が、特徴ディクショナリのマスターバージョンによってデコードされ、次に機械学習を使用して、ANNのマスターバージョンをトレーニングするための入力として使用されるように、エンコードされた特徴を第1のコンピューティングデバイスに送信するように構成されたトランシーバを含むこともできる。
【0014】
さらに、いくつかの実施形態では、たとえばエンコーディングを介して、ANNのマスターバージョンの集中トレーニングのための入力を難読化できる。たとえば、特徴のエンコード中またはエンコード前に、特徴を難読化することができる。難読化は、ANNのローカルバージョンをホストするデバイスなど、ANNの異なるバージョンをホストする複数のコンピューティングデバイスのいずれか1つで起こり得る。たとえば、システム内の第2のコンピューティングデバイスは、ローカルバージョンのANNと、ANNのローカルバージョンに入力するためのユーザーデータを格納するように構成されたメモリを含むことができる。第2のコンピューティングデバイスはまた、ユーザーデータから特徴を抽出し、抽出された特徴のエンコーディング中またはエンコーディング前に、抽出された特徴を難読化して、難読化されたユーザーデータを生成するように構成されたプロセッサを含むことができる。第2のデバイスはまた、第1のコンピューティングデバイスなどに難読化/エンコードされたユーザーデータを送信するように構成されたトランシーバを含むこともできる。第1のコンピューティングデバイスは、ANNのマスターバージョンを格納するように構成されたメモリ、第2のコンピューティングデバイスまたはANNのローカルバージョンをホストするシステムの別のデバイスから送信された難読化/エンコードされたユーザーデータを受信するように構成されたトランシーバ、及び受信した難読化/エンコードされたユーザーデータが、特徴ディクショナリのマスターバージョンによってでコードされた後に、機械学習を使用して、受信した難読化/エンコードされたユーザーデータに基づいてマスターバージョンをトレーニングするように構成されたプロセッサを含むことができる。
【0015】
いくつかの実施形態では、ANNのローカルバージョンをホストするデバイスの1つは、そのメモリに格納されたユーザーデータをANNのローカルバージョンに入力して、ANNのローカルバージョンを使用及びトレーニングできる。たとえば、これはユーザーのモバイルデバイスで起こり得る。機密情報や個人情報を含む可能性のあるユーザーデータは、ANNとのその使用で他のデバイスと共有されない。言い換えると、ANNの機械学習は、ユーザーデータが他のデバイスと共有されず、ユーザーのデバイス内で保護されるという点で、ローカル及びプライベートで行うことができる。ただし、マスターバージョンなど、ANNの他のバージョンのトレーニングのためにユーザーデータを他のデバイスと共有するときは、ユーザーデータは共有される前に難読化/エンコードできる。難読化によりデータのプライバシーがさらに保護され、エンコードされたデータは通常元のデータよりも小さいため、エンコードによって使用されるネットワーク帯域幅をより少なくすることができる。いくつかの実施形態では、一意のローカルデータのみが、ANNのマスターバージョンをホストするデバイスに送信することができるので、データ転送サイズは、元のデータのサブセットである。
【0016】
いくつかの実施形態では、ANNのマスターバージョンをホストする1つまたは複数のデバイスは、クラウドコンピューティング環境の一部であり得る。そして、そのような実施形態では、ユーザーのデバイス内でのみユーザーデータを難読化及び/またはエンコードすることによって、ユーザーデータをクラウドのデバイスから秘密に保つことができる。また、小さなデータセットを出力するエンコーディングにより、データ送信を増やすことができる。ユーザーのデバイスでANNのローカルバージョンをローカルでトレーニングするために、マスクされていないまたは事前にエンコードされたユーザーデータを使用できる。たとえば、元のユーザーデータは、ユーザーのモバイルデバイス(ユーザーのスマートフォン、タブレットなど)でANNのローカルバージョンをトレーニングするためにのみ使用できる。ユーザーデータが、ANNの他のバージョンのトレーニングのためにシステムで共有される場合、システムによって常に少なくともエンコードされ、実施形態によっては、エンコード中またはエンコード前に難読化されることもある。
【0017】
いくつかの実施形態では、デバイスに格納されているANNのローカルバージョンを更新及び改善するために、ANNのマスターバージョンをユーザーの個々のデバイスにダウンロードできる。これにより、ローカルでのトレーニングだけでは改善されなかった可能性のあるANNの領域で、ANNのローカルに格納されたバージョンの精度を向上させることができる。また、ダウンロードされたANNのマスターバージョンは、ユーザー向けのANNのカスタマイズされたバージョン用にローカルでさらにトレーニングできる。これの利点は、ANNがユーザーデバイスでローカルにトレーニングされるとき、データ入力をエンコードまたは難読化する必要がない点である。
【0018】
一般に、ANNの集中トレーニング及びデータ送信の低減のための特徴ディクショナリの使用を実装するように構成できるコンピュータネットワークでは、ANNの異なってトレーニングされたバージョンをホストするデバイスは、ユーザーデータが送信前に特徴ディクショナリによって少なくともエンコードされない限り、ユーザーデータ(サイズが大きい可能性がある)の送信を回避するためにローカルトレーニングを実行できる(これにより、送信されるデータのサイズを大幅に低減できる)。その点では、いくつかの実施形態では、ネットワークのデバイスを通信可能に結合するネットワークを介して送信できるのは、エンコードされたユーザーデータのみである。中央デバイス、サーバ、またはクラウドは、ネットワークを介してエンコードされたユーザーデータを受信し、そのユーザーデータをでコードし、デコードしたデータを使用して、ネットワーク帯域幅の使用を制限しつつ、かついくつかの実施形態では、データのプライバシーを損なうことなくANNのマスターバージョンをトレーニングできる。中央デバイス、サーバ、またはクラウドには、ネットワークを介して元のユーザーデータ(ANNのローカルバージョンへの入力など)を受信しないため、嵩張る元のユーザーデータをネットワークを介して中央デバイス、サーバ、またはクラウド及びネットワークに転送すること(trafficking)を回避できる。
【0019】
コンピュータネットワークで更新されるANNは、ニューロン属性及び/または接続性の更新の形をとることができる。ANNのバージョンへの変更は、入力が、ネットワーク通信を改善するためにエンコードされた、デコード済みのユーザーデータであるか、またはネットワーク通信を改善するためにエンコードされた、デコード済みのユーザーデータを少なくとも含む、互換性のある機械学習手法を使用したトレーニングを通じて行うことができる。また、入力は、エンコーディングプロセス中にまたはエンコーディングプロセス前に難読化できるが、難読化されたユーザーデータは、難読化された入力を使用したニューロン属性及び/または接続性の更新が、期待される予測を行う際にANNの有効性に悪影響を及ぼすポイントを超えて難読化されることはない。
【0020】
図1及び
図2は、本開示のいくつかの実施形態による、ANNの集中トレーニング及びデータ送信の低減のための特徴ディクショナリの使用を実装するための構成のコンピュータネットワーク100を示す。
【0021】
図1では、コンピューティングデバイスのセット102を含むコンピュータネットワーク100が示されている。コンピューティングデバイスのセット102は、任意のタイプのモバイルデバイス、パーソナルコンピュータ、またはANNのバージョンをホスト及び実行できるスマートデバイスなど、ANNのバージョンをホスト及び実行できる任意のタイプのコンピューティングデバイスの1つまたは複数を含むことができる(たとえば、第2のコンピューティングデバイス104a及び第Nのコンピューティングデバイス104bを参照)。コンピューティングデバイスのセット102の各コンピューティングデバイスは、ANNのローカルバージョンをホスト及び実行できる(たとえば、ANN106a及び106bのそれぞれのローカルバージョンを有する第2のコンピューティングデバイス104a及びN番目のコンピューティングデバイス104bを参照)。
【0022】
第1のコンピューティングデバイス108を含むコンピュータネットワーク100もまた示されている。第1のコンピューティングデバイス108は、単一のコンピューティングデバイス、またはクラウドコンピューティング環境のネットワーク上に分散されるなど、ネットワーク上に分散される複数のコンピューティングデバイスであり得る。第1のコンピューティングデバイス108によって具体化される単一のコンピューティングデバイスまたは複数のコンピューティングデバイスは、ANN110のマスターバージョンを含むことができる。第1のコンピューティングデバイス108は、コンピュータネットワーク100の実装に応じて、中央デバイス、サーバ、またはクラウド、あるいはピアツーピアコンピューティングネットワーク内の選択されたデバイスであり得る。
【0023】
別の言い方をすれば、
図1は、ネットワーク化されたコンピューティングデバイス(たとえば、コンピューティングデバイス104a及び104bを参照)を有するコンピューティングデバイスのセット102を含むコンピュータネットワーク100を示し、各ネットワーク化されたコンピューティングデバイスは、ANNの別個のローカルバージョン(たとえば、ANN106a及び106bのローカルバージョンを参照)を格納及び使用する。コンピュータネットワーク100はまた、第1のコンピューティングデバイス108(クラウドまたは別のタイプの分散コンピューティングネットワークの一部であり得る)も含む。第1のコンピューティングデバイス108は、ANN110のマスターバージョンを含む。
【0024】
ANNのローカルバージョン(たとえば、ANN106a及び106bのローカルバージョンを参照)は、ユーザーデータ(たとえば、ユーザーデータ120a及び120bを参照)とともに使用することができる。また、ユーザーデータは、ANNのローカルバージョンのトレーニングに使用できる。
【0025】
エンコードされ、送信され、次にデコードされたユーザーデータは、たとえばマスターバージョンのトレーニングのために、ANN110のマスターバージョンによって使用することができる(たとえば、エンコードされた特徴124a及び124bならびに特徴ディクショナリ114のマスターバージョンを介したユーザーデータ120a及び120bの経路を参照されたい)。次にANNの更新されたマスターバージョンは、コンピューティングデバイスのセット102の1つまたは複数のデバイスによってダウンロードできる(たとえば、130a及び130bのダウンロードを参照)。ダウンロードされたマスターバージョンは、ANNのローカルバージョンを置き換えるか、またはコンピューティングデバイスのセット102のデバイスの1つによってホストされるANNのローカルバージョンと組み合わせることができる。
【0026】
コンピュータネットワーク100では、ANNのローカルバージョンと特徴ディクショナリのローカルバージョンをホストするコンピューティングデバイス(たとえば、コンピューティングデバイスのセット102のコンピューティングデバイスを参照)は、デバイスに格納されたユーザーデータ(たとえば、ユーザーデータ120a及び120bを参照)から選択された特徴を抽出し、データ圧縮アルゴリズムを使用して、ユーザーデータから抽出された特徴をエンコードすることができる(たとえば、エンコードされた特徴124a及び124bを参照)。このエンコーディングにより、データ圧縮アルゴリズムは、抽出された特徴と、それに対応するエンコードされた特徴(コードワードなど)とのペアを提供できる。ペアは、定義として特徴ディクショナリに含めることができる(たとえば、特徴ディクショナリ122a、122b、及び114のバージョンを参照)。元の抽出されたデータとそれに対応するエンコードされたデータとのペアリングは、ローカル特徴ディクショナリに生成できる(たとえば、特徴ディクショナリ122a及び122bのローカルバージョンを参照)。したがって、特徴ディクショナリのローカルバージョン(たとえば、特徴ディクショナリ122a及び122bのローカルバージョンを参照)は、エンコードされたデータの定義をペアリングで提供する(たとえば、エンコードされた特徴124a及び124bを参照)。これらのペアリングまたは定義により、エンコードされたデータを、特徴ディクショナリのマスターバージョンによってなど、その対応する元のデータにデコードできる(たとえば、特徴ディクショナリ114のマスターバージョンを参照)。また、特徴ディクショナリのローカルバージョン(たとえば、特徴ディクショナリ122a及び122bのローカルバージョンを参照)を使用して、特徴ディクショナリのマスターバージョン(たとえば、特徴ディクショナリ114のマスターバージョンを参照)を更新できる。そして、データ圧縮アルゴリズムは、データ送信の低減を変えるために、その圧縮の程度を変えることができる。
【0027】
コンピュータネットワーク100では、ユーザーデータの特徴の完全な記述(圧縮されていないユーザーデータなど)を送信する代わりに、ANN及びディクショナリのローカルバージョンをホストするコンピューティングデバイスの1つから、ANN及びディクショナリのマスターバージョンをホストするコンピューティングデバイスにユーザーデータを送信することで(たとえば、ディクショナリ更新/エンコードされた特徴126a及び126bを参照)、コードワードを送信できる。ANN及びディクショナリのマスターバージョンをホストするコンピューティングデバイス(たとえば、第1のコンピューティングデバイス108を参照)に特徴が送信されるたびに、特徴のコードワードを特徴ディクショナリのローカルバージョン(たとえば、特徴ディクショナリ122a及び122bのローカルバージョンを参照)で定義し、それに応じて送信することができ、その結果、対応するコードワードだけがネットワークを介して送信される(たとえば、ディクショナリ更新/エンコードされた特徴126a及び126bは、エンコードされた特徴しか含まない場合がある)。いくつかの実施形態では、コードワードと特徴をペアにする定義は、定義が特徴ディクショナリのローカルバージョンで生成または更新される-データ圧縮アルゴリズムを介して生成または更新されるなど-ときにだけ特徴ディクショナリのマスターバージョンをホストするコンピューティングデバイスに送信される。これは、特徴ディクショナリとエンコードされた特徴の両方の更新が一緒に送信される場合である(たとえば、ディクショナリ更新/エンコードされた特徴126a及び126bには、エンコードされた特徴と対応する定義が含まれる場合がある)。それ以外の場合、ディクショナリのマスターバージョンにはローカルバージョンと同じ定義が含まれているため、エンコードされた特徴のみが送信される。
【0028】
ANNのマスターバージョンと特徴ディクショナリのマスターバージョンをホストするコンピューティングデバイス(たとえば、第1のコンピューティングデバイス108を参照)は、送信されたコードワードを使用して、ディクショナリのマスターバージョン(たとえば、特徴ディクショナリ114のマスターバージョンを参照)から特徴を検索できる(たとえば、ディクショナリ更新/エンコードされた特徴126a及び126bを参照)。そして、コンピューティングデバイスは、ディクショナリのマスターバージョンに従ってコードワードをデコードし、機械学習を介してANNのマスターバージョンをトレーニングするためにデコードされた特徴を使用できる(たとえば、ANN110のマスターバージョン及び機械学習112を参照)。
【0029】
ANNのマスターバージョン(たとえば、ANN110のマスターバージョンを参照)は、マスターバージョンが一般的であり、時間の経過とともにますます正確になるように、機械学習(たとえば、機械学習112を参照)を介して、受信した特徴ディクショナリ更新及びエンコードされたデータ(たとえば、ディクショナリ更新/エンコードされた特徴126a及び126bを参照)によって再び何度もトレーニングすることができる。データは、ANNの異なるローカルバージョン(たとえば、ANN106a及び106bのローカルバージョンを参照)、ならびに異なる格納されたユーザーデータ(たとえば、ユーザーデータ120a及び120bを参照)を有する異なるユーザーのデバイスから受信することができる。ANNのマスターバージョン(たとえば、ANN110のマスターバージョンを参照)は、ローカルにトレーニングされていない可能性のある領域での進捗から恩恵を受けるユーザーデバイスの機能を更新するために、個々のユーザーデバイス(たとえば、コンピューティングデバイス104a及び104bを参照)にダウンロードできる(たとえば、ダウンロード130a及び130bを参照)。また、ダウンロードされたANNは、ユーザー向けのANNのカスタマイズされたバージョン用にローカルでさらにトレーニングできる。
【0030】
図示されていない、コンピュータネットワーク100は、ワイドエリアネットワーク(WAN)、ローカルエリアネットワーク(LAN)、イントラネット、エキストラネット、インターネット、及び/またはそれらの任意の組み合わせを含む通信ネットワークを含む。通信ネットワークは、コンピューティングデバイスのセット102のデバイスを互いと、及び第1のコンピューティングデバイス108となど、コンピュータネットワーク100の他のデバイスと通信可能に結合できる。送信された特徴ディクショナリ更新及びエンコードされたユーザーデータ、ならびに本明細書に記載のANNのマスターバージョンのダウンロード(たとえば、ディクショナリ更新/エンコードされた特徴126a及び126b、ならびにダウンロード130a及び130bを参照)は、コンピュータネットワーク100の通信ネットワークを介して通信または送信できる。また、本明細書に記載の特徴ディクショナリのマスターバージョンの更新(たとえば、ダウンロード128a及び128bを参照)は、コンピュータネットワーク100の通信ネットワークを介して通信または送信することができる。
【0031】
図2が、ANNの集中トレーニング及びデータ送信の低減のための特徴ディクショナリの使用を実装するための構成のコンピュータネットワーク100を示しているという点で、
図2は
図1にいくらか類似している。ただし、
図1とは異なり、
図2は、具体的には、ANNのそれぞれのローカルバージョン(たとえば、ANN106a及び106bのローカルバージョンを参照)をホストするモバイルデバイス(たとえば、モバイルデバイス105a及び105bを参照)を含むコンピューティングデバイスのセット102を示す。また、
図2では、クラウドコンピューティング環境(たとえば、クラウドコンピューティング環境109)が、ANNのマスターバージョン(たとえば、ANN110のマスターバージョンを参照)をホストしていることも示されている。言い換えると、
図2は、
図1に示されるコンピュータネットワークのより具体的な実装であり、ここで、第1のデバイス108は、クラウドコンピューティング環境109であるか、またはその一部であり、コンピューティングデバイスのセット102のデバイスは、具体的にはモバイルデバイス(たとえば、モバイルデバイス105a及び105bを参照)である。
【0032】
いくつかの実施形態では、ANNの集中トレーニング及びデータ送信の低減のための特徴ディクショナリの使用を実装するためのシステムは、複数のコンピューティングデバイス(たとえば、コンピューティングデバイスのセット102を参照)を含むことができる。複数のコンピューティングデバイスのそれぞれは、ANNのローカルバージョン(たとえば、ANN106a及び106bのローカルバージョンを参照)をホストし、特徴ディクショナリのローカルバージョン(たとえば、特徴ディクショナリ122a及び122bのローカルバージョンを参照)をホストするように構成できる。システムはまた、ANNのマスターバージョン(たとえば、ANN110のマスターバージョンを参照)をホストし、特徴ディクショナリのマスターバージョン(たとえば、特徴ディクショナリ114のマスターバージョンを参照)をホストするように構成された第1のコンピューティングデバイス(たとえば、第1のコンピューティングデバイス108またはクラウドコンピューティング環境109を参照)を含むこともできる。
【0033】
たとえば、複数のコンピューティングデバイスは、ANNのローカルバージョン(たとえば、ANN106a及び106bのローカルバージョンを参照)をホストし、特徴ディクショナリのローカルバージョン(たとえば、特徴ディクショナリ122a及び122bのローカルバージョンを参照)をホストすることができる第2のコンピューティングデバイス(たとえば、コンピューティングデバイス104a及び104b、ならびにモバイルデバイス105a及び105bを参照)を含むことができる。そして、第1のコンピューティングデバイス(たとえば、第1のコンピューティングデバイス108またはクラウドコンピューティング環境109を参照)は、コンピュータネットワーク(たとえば、コンピュータネットワーク100を参照)を介して第2のコンピューティングデバイスに通信可能に結合できる。
【0034】
第1のコンピューティングデバイス(たとえば、第1のコンピューティングデバイス108またはクラウドコンピューティング環境109を参照)は、ANNのマスターバージョン(たとえば、ANN110のマスターバージョンを参照)を格納し、特徴ディクショナリのマスターバージョン(たとえば特徴ディクショナリ114のマスターバージョンを参照)を格納するように構成されたメモリ(たとえば、
図6に示されるメインメモリ608及びストレージシステム612を参照)を含むことができる。第1のコンピューティングデバイスはまた、第2のコンピューティングデバイスからエンコードされた特徴を受信するように構成されたトランシーバ(たとえば、
図6に示されるネットワークインターフェース610を参照)を含むことができる(たとえば、エンコードされた特徴124a及び124b、ならびにディクショナリ更新/エンコードされた特徴126a及び126bを参照)。また、第1のコンピューティングデバイス(たとえば、第1のコンピューティングデバイス108またはクラウドコンピューティング環境109を参照)は、特徴ディクショナリのマスターバージョン(たとえば、特徴ディクショナリ114のマスターバージョンを参照)に従って、受信したエンコードされた特徴をデコードし、機械学習(たとえば、機械学習112を参照)を使用してデコードされた特徴に基づいてANNのマスターバージョン(たとえば、ANN110のマスターバージョンを参照)をトレーニングするように構成されたプロセッサ(たとえば、
図6に示されるプロセッサ606を参照)を含むこともできる。
【0035】
いくつかの実施形態では、第1のコンピューティングデバイス(たとえば、第1のコンピューティングデバイス108またはクラウドコンピューティング環境109を参照)のトランシーバ(たとえば、ネットワークインターフェース610を参照)は、たとえばダウンロード130a及び130aによって示される、ANNのトレーニングされたマスターバージョンを第2のコンピューティングデバイス(たとえば、コンピューティングデバイス104a及び104bならびにモバイルデバイス105a及び105b)に送信するように構成できる。また、第1のコンピューティングデバイスのトランシーバ(たとえば、ネットワークインターフェース610を参照)は、第2のコンピューティングデバイスから特徴ディクショナリのローカルバージョンを受信するように構成することができる(たとえば、エンコードされた特徴124a及び124b、ならびにディクショナリ更新/エンコードされた特徴126a及び126bを参照)。そのような例では、第1のコンピューティングデバイスのプロセッサ(たとえば、プロセッサ606を参照)は、特徴ディクショナリの受信したローカルバージョン(たとえば、特徴ディクショナリの特徴122a及び122bのローカルバージョン、ならびにディクショナリ更新/エンコードされた特徴126a及び126bを参照)に基づいて特徴ディクショナリのマスターバージョン(たとえば、特徴ディクショナリ114のマスターバージョンを参照)を変更し、特徴ディクショナリの変更されたマスターバージョン(たとえば、特徴ディクショナリ114のマスターバージョンを参照)に従って、受信したエンコードされた特徴をデコードするように構成できる。また、第1のコンピューティングデバイスのトランシーバ(たとえば、プロセッサ606を参照)は、特徴ディクショナリの変更されたマスターバージョンを第2のコンピューティングデバイスに送信するように構成することもできる(たとえば、ダウンロード128a及び128bを参照)。
【0036】
第2のコンピューティングデバイス(たとえば、コンピューティングデバイス104a及び104bならびにモバイルデバイス105a及び105bを参照)は、ユーザーデータ(たとえば、ユーザーデータ120a及び120bを参照)を格納し、ANNのローカルバージョン(たとえば、ANN106a及び106bのローカルバージョンを参照)を格納し、特徴ディクショナリのローカルバージョン(たとえば、特徴ディクショナリ122a及び122bのローカルバージョン)を格納するように構成されたメモリ(たとえば、メインメモリ608及びストレージシステム612)を含むことができる。第2のコンピューティングデバイスはまた、格納されたユーザーデータ(たとえば、ユーザーデータ120a及び120bを参照)から特徴を抽出し、特徴ディクショナリのローカルバージョンに従って、抽出された特徴をエンコードするように構成されたプロセッサ(たとえば、プロセッサ606を参照)を含むこともできる(たとえば、特徴ディクショナリ122a及び122bのローカルバージョン及びエンコードされた特徴124a及び124bを参照)。また、第2のコンピューティングデバイスは、エンコードされた特徴が、特徴ディクショナリのマスターバージョン(たとえば、特徴ディクショナリ114のマスターバージョンを参照)によってデコードされ、次に機械学習(たとえば、機械学習112を参照)を使用してANNのマスターバージョンをトレーニングするための入力として使用されるように、エンコードされた特徴(たとえば、エンコードされた特徴124a及び124bを参照)を第1のコンピューティングデバイスに送信するように構成されたトランシーバ(たとえば、
図6に示されるネットワークインターフェース610を参照)を含むこともできる。
【0037】
いくつかの実施形態では、第2のコンピューティングデバイス(たとえば、コンピューティングデバイス104a及び104bならびにモバイルデバイス105a及び105bを参照)のプロセッサ(たとえば、プロセッサ606を参照)は、抽出された特徴が特徴ディクショナリのローカルバージョン(たとえば、特徴ディクショナリ122a及び122bのローカルバージョンを参照)に含まれるかどうかを決定するようにさらに構成できる。そして、抽出された特徴を含む特徴ディクショナリのローカルバージョンに対応して、第2のコンピューティングデバイスのプロセッサは、特徴ディクショナリのローカルバージョンに従って、抽出された特徴をエンコードするようにさらに構成できる(たとえば、エンコードされた特徴124a及び124bを参照)。抽出された特徴を含まない特徴ディクショナリのローカルバージョンに対応して、第2のコンピューティングデバイスのプロセッサは、抽出された特徴に基づいて特徴ディクショナリのローカルバージョンを変更し、次に特徴ディクショナリの変更されたローカルバージョンに従って、抽出された特徴をエンコードするようにさらに構成できる(たとえば、ディクショナリ更新/エンコードされた特徴126a及び126bを参照)。
【0038】
そのような例では、第2のコンピューティングデバイス(たとえば、コンピューティングデバイス104a及び104bならびにモバイルデバイス105a及び105bを参照)のトランシーバ(たとえば、ネットワークインターフェース610を参照)は、特徴ディクショナリのマスターバージョンが、特徴ディクショナリのローカルバージョンに従って変更されるように、特徴ディクショナリの変更されたローカルバージョンを第1のコンピューティングデバイスに送信するように構成できる(たとえば、ディクショナリ更新/エンコードされた特徴126a及び126bを参照)。また、第2のコンピューティングデバイスのトランシーバは、特徴ディクショナリの変更されたマスターバージョンを受信するように構成できる(たとえば、ダウンロード128a及び128bを参照)。そのような実施形態では、第2のコンピューティングデバイスのプロセッサ(たとえば、プロセッサ606を参照)は、特徴ディクショナリの変更されたマスターバージョン(たとえば、特徴ディクショナリ114のマスターバージョン)に基づいて、特徴ディクショナリのローカルバージョン(たとえば、特徴ディクショナリ122a及び122bのローカルバージョンを参照)を変更するように構成できる。
【0039】
さらに、いくつかの実施形態では、第2のコンピューティングデバイス(たとえば、コンピューティングデバイス104a及び104bならびにモバイルデバイス105a及び105bを参照)のトランシーバ(たとえば、ネットワークインターフェース610を参照)は、ANNのトレーニングされたマスターバージョンを受信するように構成できる(たとえば、ダウンロード130a及び130bを参照)。そのような実施形態では、第2のコンピューティングデバイスのプロセッサ(たとえば、プロセッサ606を参照)は、ANNのトレーニングされたマスターバージョン(たとえば、ANN110のマスターバージョンならびにダウンロード130a及び130bを参照)に基づいて、ANNのローカルバージョン(たとえば、ANN106a及び106bのローカルバージョンを参照)を変更するように構成できる。
【0040】
図3及び
図4は、本開示のいくつかの実施形態による、ANNの集中トレーニング及びデータ送信の低減のための特徴ディクショナリの使用を実装できるコンピュータネットワーク100の例示的な部分により実行される例示的な方法を示す。
【0041】
図3は、ANNの他のバージョンをホストする他のコンピューティングデバイス(たとえば、コンピューティングデバイス104a及び104bならびにモバイルデバイス105a及び105bを参照)と通信している、ANNのマスターバージョンをホストし、ANNの集中トレーニング及びデータ送信の低減のための特徴ディクショナリを使用するように構成されたコンピューティングデバイス(たとえば、第1のコンピューティングデバイス108またはクラウドコンピューティング環境109を参照)によって実行される方法300を示す。方法300はステップ302で始まり、第1のコンピューティングデバイス(またはコンピューティングデバイス)によって、ANNのマスターバージョンをホストする。
【0042】
ステップ304で、第1のコンピューティングデバイスは、特徴ディクショナリのマスターバージョンをホストする。
【0043】
ステップ306で、第1のコンピューティングデバイスは、ANNの他のバージョン及び特徴ディクショナリをホストする他のコンピューティングデバイスの1つである第2のコンピューティングデバイスから特徴ディクショナリのローカルバージョンを受信する。
【0044】
ステップ308で、第1のコンピューティングデバイスは、特徴ディクショナリの受信したローカルバージョンに基づいて、特徴ディクショナリのマスターバージョンを変更する。
【0045】
ステップ310で、第1のコンピューティングデバイスは、第2のコンピューティングデバイスからエンコードされた特徴を受信する。受信したエンコードされた特徴は、第2のコンピューティングデバイスによってホストされる特徴ディクショナリのローカルバージョンに従って、第2のコンピューティングデバイスによってエンコードできる。
【0046】
ステップ312で、第1のコンピューティングデバイスは、特徴ディクショナリのマスターバージョンに従って、受信したエンコードされた特徴をデコードする。デコードすることは、特徴ディクショナリの変更されたマスターバージョンに従って、エンコードされた特徴をデコードすることを含むことができる。
【0047】
ステップ314で、第1のコンピューティングデバイスは、機械学習を使用して、デコードされた特徴に基づいてANNのマスターバージョンをトレーニングする。
【0048】
ステップ316で、第1のコンピューティングデバイスは、ANNのトレーニングされたマスターバージョンを第2のコンピューティングデバイスに送信する。
【0049】
ステップ318で、第1のコンピューティングデバイスは、特徴ディクショナリの変更されたマスターバージョンを第2のコンピューティングデバイスに送信する。
【0050】
図4は、方法300を実行できる第1のコンピューティングデバイス(たとえば、第1のコンピューティングデバイス108またはクラウドコンピューティング環境109を参照)と通信している、ANNのマスターバージョン以外のANNの別のバージョン(ローカルバージョンなど)をホストし、ANNの集中トレーニング及びデータ送信の低減を支援するためにローカル特徴ディクショナリを使用するように構成されたコンピューティングデバイス(たとえば、コンピューティングデバイス104a及び104bならびにモバイルデバイス105a及び105bを参照)によって実行される方法400を示す。方法400はステップ402で始まり、第2のコンピューティングデバイスによって、ANNのローカルバージョンをホストする。
【0051】
ステップ404、第2のコンピューティングデバイスは、特徴ディクショナリのローカルバージョンをホストする。
【0052】
ステップ406で、第2のコンピューティングデバイスは、第2のコンピューティングデバイスによってホストされるユーザーデータから特徴を抽出する。
【0053】
ステップ408で、第2のコンピューティングデバイスは、抽出された特徴が特徴ディクショナリのローカルバージョンに含まれるかどうかを決定する。抽出された特徴を含む特徴ディクショナリのローカルバージョンに対応して、第2のコンピューティングデバイスは、ステップ412で、特徴ディクショナリのローカルバージョンに従って、抽出された特徴をエンコードする。抽出された特徴を含まない特徴ディクショナリのローカルバージョンに対応して、第2のコンピューティングデバイスは、ステップ410で、抽出された特徴に基づいて特徴ディクショナリのローカルバージョンを変更し、次にステップ412で、特徴ディクショナリの変更されたローカルバージョンに従って、抽出された特徴をエンコードする。
【0054】
ステップ414で、第2のコンピューティングデバイスは、エンコードされた特徴が、第1のコンピューティングデバイスによってホストされる特徴ディクショナリのマスターバージョンによってデコードされ、次に機械学習を使用して、ANNのマスターバージョンをトレーニングするための入力として使用されるように、エンコードされた特徴を、ANNのマスターバージョンをホストする第1のコンピューティングデバイスに送信する。
【0055】
ステップ416で、第2のコンピューティングデバイスは、特徴ディクショナリのマスターバージョンが特徴ディクショナリのローカルバージョンに従って変更されるように、特徴ディクショナリの変更されたローカルバージョンを第1のコンピューティングデバイスに送信する。
【0056】
ステップ418で、第2のコンピューティングデバイスは、ANNのトレーニングされたマスターバージョンを受信する。そして、ステップ420で、第2のコンピューティングデバイスは、ANNのトレーニングされたマスターバージョンに基づいてANNのローカルバージョンを変更する。
【0057】
ステップ422で、第2のコンピューティングデバイスは、特徴ディクショナリのローカルバージョンに従って変更された、特徴ディクショナリの変更されたマスターバージョンを受信する。そして、ステップ424で、第2のコンピューティングデバイスは、特徴ディクショナリの変更されたマスターバージョンに基づいて特徴ディクショナリのローカルバージョンを変更する。
【0058】
図5は、ANNのマスターバージョンをホスト及び実行するように構成されたコンピューティングデバイス(たとえば、それぞれ
図1及び
図2に示される第1のコンピューティングデバイス108及びクラウドコンピューティング環境109を参照)、ならびにANNの他のバージョンをホスト及び実行するように構成されたコンピューティングデバイス(たとえば、コンピューティングデバイス104a及び104bまたはモバイルデバイス105a及び105bを参照)によって実行される方法500を示す。方法500は、方法300及び400の操作を含む場合がある。
【0059】
方法500はステップ502で始まり、ANNのマスターバージョン以外のANNの別のバージョンをホストするように構成されたコンピューティングデバイス(すなわち、第2のコンピューティングデバイス)が、第2のコンピューティングデバイスのメモリに格納されたユーザーデータから特徴を抽出する。ステップ504で、第2のコンピューティングデバイス(たとえば、コンピューティングデバイス104a及び104bまたはモバイルデバイス105a及び105b)は、ステップ502での初期抽出後に第2のコンピューティングデバイスに特徴ディクショナリが存在していない場合、抽出された特徴に基づいて特徴ディクショナリのローカルバージョンを生成する。それ以外の場合、ステップ504で、第2のコンピューティングデバイスは、ユーザーデータから抽出された特徴に基づいて特徴ディクショナリのローカルバージョンを更新する。ステップ506で、第2のコンピューティングデバイスは、特徴ディクショナリのローカルバージョンに従って、抽出された特徴をエンコードする。
【0060】
ステップ508で、第2のコンピューティングデバイスは、特徴ディクショナリのローカルバージョンを、ANNのマスターバージョンをホストするように構成されたコンピューティングデバイス(すなわち、第1のコンピューティングデバイス)に送信する。第2のコンピューティングデバイスは、ローカルバージョンが最初に生成されたとき、またはローカルバージョンが更新されたときにのみ、特徴ディクショナリのローカルバージョンを第1のコンピューティングデバイスに送信するように構成できる。また、特徴ディクショナリのローカルバージョンが更新されると、第2のコンピューティングデバイスは、特徴ディクショナリの更新された部分のみを第1のコンピューティングデバイスに送信するように構成できる。また、ステップ508で、第2のコンピューティングデバイスは、エンコードされた特徴を送信する。第2のコンピューティングデバイスは、最近エンコードされた特徴のみを送信するように構成できる。
【0061】
ステップ510で、ディクショナリのローカルバージョンが第2のコンピューティングデバイスから送信された場合、第1のコンピューティングデバイスはディクショナリのローカルバージョンを受信する。また、ステップ510で、エンコードされた特徴が第2のコンピューティングデバイスから送信された場合、第1のコンピューティングデバイスはエンコードされた特徴を受信する。ステップ512で、ディクショナリのローカルバージョンが受信される場合、第1のコンピューティングデバイスは、特徴ディクショナリの受信したローカルバージョンに基づいて特徴ディクショナリのマスターバージョンを変更する。ローカルバージョンを受信すると、ディクショナリのマスターバージョンの変更がトリガーされる可能性がある。
【0062】
ステップ514で、エンコードされた特徴が受信される場合、第1のコンピューティングデバイスは、ディクショナリのマスターバージョンに従って、エンコードされた特徴をデコードする。エンコードされた特徴を受信すると、エンコードされた特徴のデコードがトリガーされる可能性がある。
【0063】
ステップ516で、第1のコンピューティングデバイスは、機械学習を使用して、デコードされた特徴に基づいてANNのマスターバージョンをトレーニングする。そして、ステップ518で、第1のコンピューティングデバイスは、ANNのトレーニングされたマスターバージョン及び/またはディクショナリの変更されたマスターバージョンを第2のコンピューティングデバイスに送信する。ステップ520で、第2のコンピューティングデバイスは、ステップ518で発生するイベントに従って、ANNのトレーニングされたマスターバージョンを受信する、及び/またはディクショナリの変更されたマスターバージョンを受信する。
【0064】
図5には示されていない、ANNのローカルバージョンは、更新されたマスターバージョンをユーザーデバイス内のANNの現在のローカルバージョンと組み合わせることによってトレーニングまたは再トレーニングすることができる。そして、トレーニングまたは再トレーニングでの組み合わせは、ANNの更新されたマスターバージョンとANNの「現在の」または以前のローカルバージョンの対応する属性の平均化に従って、ANNのローカルバージョンのニューロン属性の更新を含むことができる。
【0065】
図5のステップ502から520及び本開示の目的のために、ステップ508でユーザーデバイス(たとえば、
図2に示されるコンピューティングデバイス104a及び104bまたはモバイルデバイス105a及び105bを参照)から、ANNのマスターバージョンをホストする中央デバイス、サーバ、またはクラウド(たとえば、第1のコンピューティングデバイス108またはクラウドコンピューティング環境109を参照)に送信される特徴ディクショナリのローカルバージョンの更新及びエンコードされたユーザーデータ(たとえば、ディクショナリ更新/エンコードされた特徴126a及び126bを参照)が、ステップ502で抽出された抽出特徴全体またはステップ502で抽出された抽出特徴の一部の形をとることができる、またはそれらから導出できることを理解されたい。また、いくつかの実施形態では、ANNのマスターバージョンをホストする中央デバイス、サーバ、またはクラウドは、ユーザーデバイスがステップ502で抽出し、それぞれステップ504と506で生成及びエンコードできるものを制限して、エンコーディング及びおそらく難読化により提供されるネットワークパフォーマンスを調整するだけではなく、他方、トレーニングのための入力としてエンコードされ、時には難読化されるユーザーデータを使用して、ANNのバージョン(マスターバージョンなど)のトレーニングの精度を調整することができる。
【0066】
また、ピアツーピアネットワークが方法500を実装できることを理解されたい。そのような例では、第1の選択されたデバイスが処理のためにANNのマスターバージョンをホストし、ピアツーピアネットワークの他のデバイスが処理のためにANNの他のバージョン(たとえば、ローカルバージョン)をホストする。そのような例では、第1の選択されたデバイスはステップ510から518を実行し、ピアツーピアネットワークの他のデバイスはステップ502から508及び520を実行する。
【0067】
方法300、方法400、方法500、または本明細書で説明する任意の他の方法、プロセス、もしくは動作に関して、いくつかの実施形態では、非一時的コンピュータ可読記憶媒体には、命令であって、少なくとも1つの処理装置(
図6に示されるプロセッサ606)によって実行されたときに、少なくとも1つの処理装置に方法300、方法400、方法500、または本明細書で説明する任意の他の方法、プロセス、もしくは動作、及び/またはそれらの任意の組み合わせを実行させる命令が格納される。
【0068】
図6は、本開示のいくつかの実施形態による例示的なコンピューティングデバイス600の例示的な部分を示す。コンピューティングデバイス600は、
図6に示されるように、コンピュータネットワーク100を介して他のコンピューティングデバイスに通信可能に結合できる。いくつかの実施形態では、コンピューティングデバイス600は、第1のコンピューティングデバイス108、またはクラウドコンピューティング環境109の1つまたは複数のコンピューティングデバイスである。そのような実施形態では、コンピューティングデバイス600の別のインスタンスは、コンピューティングデバイスのセット102のコンピューティングデバイスの1つである(たとえば、コンピューティングデバイス104a及び104bならびにモバイルデバイス105a及び105bを参照)。コンピューティングデバイス600は、少なくともバス604、プロセッサ606(CPUなど)、メインメモリ608、ネットワークインターフェース610、及びデータストレージシステム612を含む。バス604は、プロセッサ606、メインメモリ608、ネットワークインターフェース610、及びデータストレージシステム612を通信可能に結合する。コンピューティングデバイス600はコンピュータシステムを含んでおり、コンピュータシステムは、少なくとも、プロセッサ606、メインメモリ608(たとえば、読み出し専用メモリ(ROM)、フラッシュメモリ、ダイナミックランダムアクセスメモリ(DRAM)、たとえばシンクロナスDRAM(SDRAM)またはラムバスDRAM(RDRAM)、スタティックランダムアクセスメモリ(SRAM)など)、及びデータストレージシステム612を含んでおり、これらは、バス604(多重バスを含む場合がある)を介して互いに通信する。
【0069】
言い換えれば、
図6は、本開示の実施形態が動作できるコンピュータシステムを有する例示的なコンピューティングデバイス600のブロック図である。いくつかの実施形態では、コンピュータシステムは、実行時に、本明細書で説明する方法のいずれか1つ以上をマシンに行わせるための命令のセットを含むことができる。このような実施形態では、マシンを、LAN、イントラネット、エキストラネット、及び/またはインターネット内の他のマシンに接続する(たとえば、ネットワークインターフェース610を介してネットワーク接続する)ことができる。マシンは、クライアントサーバネットワーク環境内のサーバまたはクライアントマシンの資格で、ピアツーピア(または分散)ネットワーク環境(たとえば本明細書で説明するピアツーピアネットワーク)内のピアマシンとして、またはクラウドコンピューティングインフラストラクチャまたは環境内のサーバまたはクライアントマシンとして動作することができる。
【0070】
プロセッサ606は、1つまたは複数の汎用処理装置、たとえばマイクロプロセッサ、中央演算処理装置などを表している。より詳細には、処理装置は、複合命令セットコンピューティング(CISC)マイクロプロセッサ、縮小命令セットコンピューティング(RISC)マイクロプロセッサ、超長命令語(VLIW)マイクロプロセッサ、または他の命令セットを実装するプロセッサ、または命令セットの組み合わせを実装するプロセッサとすることができる。またプロセッサ606は、1つまたは複数の特殊用途処理装置、たとえば特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、デジタルシグナルプロセッサ(DSP)、ネットワークプロセッサ、プロセッサインメモリ(PIM)などとすることができる。プロセッサ606は、本明細書で説明する動作及びステップを実行するための命令を実行するように構成される。プロセッサ606はさらに、1つまたは複数の通信ネットワークを介して通信するために、ネットワークインターフェースデバイス、たとえばネットワークインターフェース610を含むことができる。
【0071】
データストレージシステム612は、本明細書で説明する方法または機能のいずれか1つまたは複数を具現化する1つまたは複数の命令セットまたはソフトウェアが格納されるマシン可読記憶媒体(コンピュータ可読媒体としても知られている)を含むことができる。また命令は、マシン可読記憶媒体を構成するコンピュータシステム、メインメモリ608及びプロセッサ606がそれを実行する間に、メインメモリ608内及び/またはプロセッサ606内に完全にまたは少なくとも部分的に存在することができる。メモリ、プロセッサ、及びデータ記憶装置部分を、例示的な実施形態においてそれぞれ単一部分であると示しているが、各部分は、命令を格納してそのそれぞれの動作を実行できる単一部分または複数部分を含むと解釈されるべきである。また用語「マシン可読記憶媒体」には、任意の媒体であって、マシンが実行するための命令のセットを格納またはエンコードでき、本開示の方法のいずれか1つまたは複数をマシンに行わせる媒体が含まれると解釈されるものとする。したがって、用語「マシン可読記憶媒体」は、ソリッドステートメモリ、光媒体、及び磁気媒体を含むが、これらに限定されるものではないと解釈されるものとする。
【0072】
いくつかの実施形態のピアツーピアネットワークは、ノード及びピアツーピア接続部の集合物とすることができる。たとえば、第1のコンピューティングデバイス108またはコンピューティングデバイスのセット102のうちのコンピューティングデバイスの1つは、コンピュータネットワーク100を介して接続されたコンピューティングデバイスによってサポートされるピアツーピアネットワークのノードとすることができる。
【0073】
先行する詳細な説明の一部は、アルゴリズム及びコンピュータメモリ内のデータビットに対する操作の記号表現の観点から提示されている。このようなアルゴリズムの説明及び表現は、その働きの趣旨を当業者に最も効果的に伝えるためにデータ処理技術において当業者が用いる方法である。アルゴリズムはここでは(及び全般的に)、望ましい結果に至る自己矛盾のない動作順序であると考えられる。動作は、物理量の物理的な操作を必要とするものである。通常、必ずしもではないが、これらの量は格納し、組み合わせ、比較し、及び他の方法で操作することができる電気または磁気信号という形を取る。主に共通使用の理由により、これらの信号をビット、値、要素、シンボル、文字、用語、数などと言うことが、時によって好都合であることが分かっている。
【0074】
しかし、これら及び同様の用語はすべて、適切な物理量に対応付けられるべきであり、これらの量に適用される好都合な標示にすぎないことをしっかりと認識しておくべきである。本開示では、コンピュータシステムのレジスタ及びメモリ内の物理(電子)量として表されたデータを操作して、コンピュータシステムメモリもしくはレジスタまたは他のこのような情報記憶システム内の物理量として同様に表された他のデータに変換するコンピュータシステムまたは同様の電子コンピューティング装置の操作及びプロセスに言及することができる。
【0075】
本開示は、本明細書における動作を実行するための装置にも関する。この装置は、使用目的に対して特別に構成することもできるし、またはコンピュータに格納されたコンピュータプログラムによって選択的に起動または再構成される汎用コンピュータを含むこともできる。このようなコンピュータプログラムは、任意のタイプのディスク、たとえば、フロッピーディスク、光ディスク、CD-ROM、及び光磁気ディスク、読み出し専用メモリ(ROM)、ランダムアクセスメモリ(RAM)、EPROM、EEPROM、磁気もしくは光カード、またはそれぞれがコンピュータシステムバスに結合される電子命令の格納に適した任意のタイプの媒体であるが、これらに限定されないコンピュータ可読記憶媒体に格納することができる。
【0076】
本明細書で示したアルゴリズム及び表示は、何らかの特定のコンピュータまたは他の装置に本来的に関係づけられるものではない。様々な汎用システムを、本明細書での教示に従ってプログラムによって用いることもできるし、または本方法を行うためにより専用の装置を構築することが好都合であることが分かる可能性もある。種々のこれらのシステムの構造は、以下の説明で述べるように現れる。加えて、本開示は何らかの特定のプログラミング言語に関して説明されていない。本明細書で説明したような本開示の教示を実施するために、種々のプログラミング言語を使用できることを理解されたい。
【0077】
本開示を、本開示によるプロセスを行うようにコンピュータシステム(または他の電子装置)をプログラミングするために用いることができる命令が格納されたマシン可読媒体を含むことができる、コンピュータプログラム製品またはソフトウェアとして示すことができる。マシン可読媒体には、マシン(たとえば、コンピュータ)によって読取可能な形態で情報を格納するための任意のメカニズムが含まれる。いくつかの実施形態では、マシン可読(たとえば、コンピュータ可読)媒体としては、マシン(たとえば、コンピュータ)読取可能な記憶媒体、たとえば読み出し専用メモリ(「ROM」)、ランダムアクセスメモリ(「RAM」)、磁気ディスク記憶媒体、光記録媒体、フラッシュメモリコンポーネントなどが挙げられる。
【0078】
前述の明細書では、本開示の実施形態は、その特定の例示的な実施形態を参照して説明されてきた。以下の請求項に述べる本開示の実施形態のより広い趣旨及び範囲から逸脱することなく、様々な変更を加えることができることが明らかである。したがって、明細書及び図面は限定的な意味ではなく例示的な意味で考慮されるべきである。