(57)【要約】      （修正有）【課題】複数の異なるエッジデバイスがネットワーク接続された環境における機械学習方法を提供する。【解決手段】エッジデバイスは、通信モジュール、データ収集デバイス、メモリ、機械学習モジュール、グループ決定モジュール及びリーダー選定モジュールを含む。エッジデバイスは、収集したデータをモデルで分析し、結果を出力し、モデルを更新して局所モデルを作成し、異種グループ内の他のエッジデバイスと通信し、グループメンバーシップお及びリーダーエッジデバイスを決定し、局所モデルに対する要求を受信し、局所モデルをリーダーエッジデバイスに送信し、リーダーエッジデバイスが局所モデルと異なる局所モデルとをミキシング演算することによって作成された混合モデルを受信し、局所モデルを混合モデルで置き換える。【選択図】図４
2020123379.tif 000002
【特許請求の範囲】
【請求項１】
少なくとも１つのメモリと、
少なくとも１つのプロセッサと、を備え、
前記少なくとも１つのプロセッサは、
複数のデバイスからモデル更新に関する情報を受信することと、
前記モデル更新に関する情報に基づいて、モデルを生成することと、
前記複数のデバイスの少なくとも１つのデバイスに、前記モデルを送信することと、
を実行可能に構成され、
前記複数のデバイスのそれぞれにはグローバルモデルが提供され、
前記モデル更新に関する情報は、送信元のデバイスで収集されたデータの分析に基づく前記グローバルモデルの更新に関する情報であり、
前記少なくとも１つのプロセッサは、前記モデルの生成のための、前記送信元のデバイスで分析された前記データの受信をしない、
デバイス。
【請求項２】
前記少なくとも１つのプロセッサは、更に、
受信した前記モデル更新に関する情報から前記モデルの生成に用いる情報を選択すること、
を実行可能に構成され、
前記少なくとも１つのプロセッサは、選択された前記情報を用いて、前記モデルを生成する、
請求項１に記載のデバイス。
【請求項３】
前記少なくとも１つのプロセッサは、
構造メタデータ、コンテキストメタデータ、及び、データ分布の少なくとも１つに関する情報に基づいて、前記モデルの生成に用いる情報を選択する、
請求項１又は請求項２に記載のデバイス。
【請求項４】
前記モデル更新に関する情報は、前記送信元のデバイスで更新されたモデル、前記送信元のデバイスで収集された前記データを前記グローバルモデルで分析した結果、構造メタデータ、コンテキストメタデータ、及び、データ分布のいずれか１つに関する情報を含む、
請求項１から請求項３のいずれかに記載のデバイス。
【請求項５】
前記少なくとも１つのプロセッサは、
前記モデル更新に関する情報に平均化処理を適用することで、前記モデルを生成する、
請求項１から請求項４のいずれかに記載のデバイス。
【請求項６】
前記少なくとも１つのプロセッサは、
所定基準に基づいて形成されたグループに属する前記複数のデバイスから、前記モデル更新に関する情報を受信する、
請求項１から請求項４のいずれかに記載のデバイス。
【請求項７】
少なくとも１つのメモリと、
少なくとも１つのプロセッサと、を備え、
前記少なくとも１つのプロセッサは、
データを収集することと、
グローバルモデルを用いて、前記データを分析することと、
前記分析に基づいて、前記グローバルモデルの更新に関する情報を生成することと、
前記更新に関する情報を、他のデバイスに送信することと、
前記更新に関する情報の送信後、前記他のデバイスからモデルを受信することと、
を実行可能に構成され、
前記モデルは、前記他のデバイスが前記更新に関する情報を用いて生成したモデルであり、
前記少なくとも１つのプロセッサは、前記更新に関する情報の生成に用いた前記データを前記他のデバイスに送信しない、
デバイス。
【請求項８】
前記更新に関する情報は、前記分析に基づいて更新したモデル、前記分析の結果、構造メタデータ、コンテキストメタデータ、及び、データ分布のいずれか１つに関する情報を含む、
請求項７に記載のデバイス。
【請求項９】
所定基準に基づいて形成されたグループに属する、
請求項７又は請求項８に記載のデバイス。
【請求項１０】
少なくとも１つのプロセッサが、
複数のデバイスからモデル更新に関する情報を受信し、
前記モデル更新に関する情報に基づいて、モデルを生成し、
前記複数のデバイスの少なくとも１つのデバイスに、前記モデルを送信する、
方法であって、
前記複数のデバイスのそれぞれにはグローバルモデルが提供され、
前記モデル更新に関する情報は、送信元のデバイスで収集されたデータの分析に基づく前記グローバルモデルの更新に関する情報であり、
前記少なくとも１つのプロセッサは、前記モデルの生成のための、前記送信元のデバイスで分析された前記データの受信をしない、
方法。
【請求項１１】
前記少なくとも１つのプロセッサが、更に、
受信した前記モデル更新に関する情報から前記モデルの生成に用いる情報を選択し、
選択された前記情報を用いて、前記モデルを生成する、
請求項１０に記載の方法。
【請求項１２】
前記少なくとも１つのプロセッサが、
構造メタデータ、コンテキストメタデータ、及び、データ分布の少なくとも１つに関する情報に基づいて、前記モデルの生成に用いる情報を選択する、
請求項１０又は請求項１１に記載の方法。
【請求項１３】
前記モデル更新に関する情報は、前記送信元のデバイスで更新されたモデル、前記送信元のデバイスで収集された前記データを前記グローバルモデルで分析した結果、構造メタデータ、コンテキストメタデータ、及び、データ分布のいずれか１つに関する情報を含む、
請求項１０から請求項１２のいずれかに記載の方法。
【請求項１４】
前記少なくとも１つのプロセッサが、
前記モデル更新に関する情報に平均化処理を適用することで、前記モデルを生成する、
請求項１０から請求項１３のいずれかに記載の方法。
【請求項１５】
前記少なくとも１つのプロセッサが、
所定基準に基づいて形成されたグループに属する前記複数のデバイスから、前記モデル更新に関する情報を受信する、
請求項１０から請求項１５のいずれかに記載の方法。
【請求項１６】
少なくとも１つのプロセッサが、
データを収集し、
グローバルモデルを用いて、前記データを分析し、
前記分析に基づいて、前記グローバルモデルの更新に関する情報を生成し、
前記更新に関する情報を、他のデバイスに送信し、
前記更新に関する情報の送信後、前記他のデバイスからモデルを受信する、
方法であって、
前記モデルは、前記他のデバイスが前記更新に関する情報を用いて生成したモデルであり、
前記少なくとも１つのプロセッサは、前記更新に関する情報の生成に用いた前記データを前記他のデバイスに送信しない、
方法。
【請求項１７】
前記更新に関する情報は、前記分析に基づいて更新したモデル、前記分析の結果、構造メタデータ、コンテキストメタデータ、及び、データ分布のいずれか１つに関する情報を含む、
請求項１６に記載の方法。
【請求項１８】
請求項１０から請求項１７のいずれかに記載の方法を少なくとも１台のコンピュータに実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
優先権主張
本出願は、２０１５年１月２２日に出願された米国特許出願第１４／６０２，８６７号の優先権を主張するものであり、その開示の全体は参照により本明細書に組み込まれる。
【背景技術】
【０００２】
機械学習デバイスは、機械学習モデルを用いて、収集されたデータを処理し、結果を出力する。機械学習デバイスはフィードバックを使用して、機械学習モデルを更新または改良することができる。例えば、機械学習デバイスは、回帰分析モデルを使用して予測を行い、その予測が正しかったかどうかを示すフィードバックに基づいて回帰分析モデルを更新することができる。様々なタイプの機械学習モデルが存在する（例えば、線形回帰モデル、単純ベイズ分類器）。機械学習モデルは、処理されるデータの量が大きくなり得、かつ／またはリアルタイムのデータ処理が望まれ得る「ビッグデータ」問題に対処するために一般的に使用される。
【発明の概要】
【課題を解決するための手段】
【０００３】
本開示は、新規かつ革新的な機械学習の異種エッジデバイス、方法、およびシステムを提供する。例示的な実施形態では、エッジデバイスは、複数の異なるエッジデバイスと通信するように構成された通信モジュールと、第１のタイプのデータを収集するように構成されたデータ収集デバイスと、データ収集デバイスによって収集されたデータを格納するように構成されたメモリと、機械学習モジュールと、グループ決定モジュールと、リーダー選定モジュールと、を含む。エッジデバイスは、所定のタスクに関連する第１のモデルを使用して、データ収集デバイスによって収集された第１のデータを分析し、予測、分類、クラスタリング、異常検出、および認識のうちの少なくとも１つを含む結果を出力し、結果の正確さに基づいて、所定のタスクに関連する第１の局所モデルを作成するために第１のモデルを更新するように構成することができる。エッジデバイスは、エッジデバイスの第１の異種グループ内の少なくとも１つの他のエッジデバイスと通信することができ、エッジデバイスの第１の異種グループは、少なくとも第１のエッジデバイスおよび第２のエッジデバイスを含み、第１のエッジデバイスは第１のタイプのデータを収集して分析し、第２のエッジデバイスは異なる第２のタイプのデータを収集して分析する。エッジデバイスは、エッジデバイスの第１の異種グループからエッジデバイスの第２の異種グループのメンバーシップを決定することができ、エッジデバイスの第２のグループは、エッジデバイスの第１の異種グループのサブセットである。エッジデバイスは、エッジデバイスの第２の異種グループからリーダーエッジデバイスを決定することができる。エッジデバイスは、リーダーエッジデバイスから第１の局所モデルに対する要求を受信し、第１の局所モデルをリーダーエッジデバイスに送信し、リーダーエッジデバイスから所定のタスクに関連する混合モデルを受信し、混合モデルは、リーダーエッジデバイスが、複数の第１の局所モデルと少なくとも１つの異なるそれぞれの局所モデルとのミキシング演算を実行することによって作成され、第１の局所モデルを混合モデルに置き換えることができる。
【０００４】
開示された方法および装置のさらなる特徴および利点は、以下の詳細な説明および図面に記載され、それらから明らかになるであろう。
【図面の簡単な説明】
【０００５】
【図１】本開示の例示的な実施形態による、エッジデバイスの一例のブロック図である。
【図２】本開示の例示的な実施形態による例示的な機械学習モジュールのブロック図である。
【図３Ａ】本開示の例示的な実施形態による、エッジデバイスの異種グループを示す高レベルブロック図である。
【図３Ｂ】本開示の例示的な実施形態による、エッジデバイスの異種グループを示すブロック図である。
【図４】本開示の例示的な実施形態による、エッジデバイスの異種グループにおける機械学習の例示的なプロセスを示すフローチャートである。
【図５】本開示の例示的な実施形態による、機械学習の例示的なプロセスを示すフローチャートである。
【図６】本開示の例示的な実施形態による、異種グループ構築のための例示的なプロセスを示すフローチャートである。
【図７】本開示の例示的な実施形態による、エッジデバイスの異種グループにおける機械学習のための例示的なプロセスを示す流れ図である。
【発明を実施するための形態】
【０００６】
図１は、本開示の例示的な実施形態による、エッジデバイス１００の一例のブロック図である。例示的な実施形態では、エッジデバイス１００はビデオカメラであってもよい。別の例示的な実施形態では、エッジデバイス１００はショッピングカートであってもよい。エッジデバイス１００は、他のデバイスとの通信、データ収集、機械学習を行うことができるデバイスである。例示的な実施形態では、エッジデバイス１００は、中央サーバー、中間サーバー、データレポジトリ、ゲートウェイ、ルータなどを含む、データ接続されたデバイスの大規模な分散ネットワークのエッジ、すなわち最外層にある。エッジデバイス１００は、記録デバイス（例えば、デジタルカメラ、ビデオカメラ、オーディオレコーダ）、都市管理デバイス（例えば、駐車センサ、交通センサ、水質デバイス）、車両（例えば、自動車、トラック）、身体センサ（例えば、活動センサ、バイタルサインセンサ、歩数計）、環境センサ（例えば、気象センサ、汚染センサ、空気品質センサ）、ウェアラブルコンピューティングデバイス（例えば、スマートウォッチ、眼鏡、衣類）、パーソナルコンピューティングデバイス（例えば、携帯電話、タブレット、ラップトップ）、ホームデバイス（例えば、家電製品、サーモスタット、照明システム、セキュリティシステム）、広告デバイス（例えば、ビルボード、情報キオスク）などを含む多種多様なデバイスを含んでもよい。エッジデバイス１００は、通信モジュール１０２と、データ収集デバイス１０４と、メモリ１０６と、機械学習モジュール１０８と、グループ決定モジュール１１０と、リーダー選定モジュール１１２と、モデルミキシングモジュール１１４と、調整モジュール１１６と、を含むことができる。
【０００７】
通信モジュール１０２は、同じタイプ（例えば、複数のビデオカメラ）または異なるタイプ（例えば、ビデオカメラおよびショッピングカート）の他のエッジデバイス１００を含む他のデバイスと通信するように構成される。例えば、以下でさらに詳細に説明するように、通信モジュール１０２は、インターネット、もしくは任意の適切な広域ネットワーク、ローカルエリアネットワーク、ゲートウェイ、または他の通信チャネルもしくはネットワークを含む、１つまたは複数のネットワークもしくは通信チャネルを介して他のデバイスと通信するように構成されてもよい。例えば、通信モジュール１０２は、セルラーネットワーク（例えば、４Ｇ、３Ｇ、ＧＳＭ（登録商標））、無線ローカルエリアネットワーク（例えば、Ｗｉ−Ｆｉ）、衛星（例えば、ＶＳＡＴ）、または無線通信の任意の適切な形態（例えば、ブルートゥース（登録商標）、ＲＦＩＤ、ＮＦＣ、ＩｒＤＡ、Ｌｉ−Ｆｉ）により用いられる複数のプロトコルを介して無線通信するように構成されてもよい。また、例えば、通信モジュール１０２は、別のエッジデバイス１００に有線接続（例えば、イーサネット（登録商標）、ＤＳＬ、ＵＳＢ、ＲＳ−２３２、同軸ケーブル）するように構成されてもよい。さらに、通信モジュール１０２は、例えば、タッチスクリーンディスプレイで実現されるグラフィカルユーザインターフェースを介して、ユーザと通信することができる。ユーザは、エッジデバイス１００に特定のタスクを実行するよう要求し、かつ／またはエッジデバイス１００から情報を受信することができる。したがって、通信モジュール１０２は、１つまたは複数の通信プロトコルを使用して１つまたは複数の通信インターフェースを介して通信するように構成されたハードウェアおよび／またはソフトウェアを含むことができる。
【０００８】
データ収集デバイス１０４は、センサ、検出器、または実世界の特性（例えば、速度、加速度、ショッピングカート内の品目、手の動き、形状、温度、角度、音声認識、単語認識、トルク、スリップレベル）を表すデータのリアルタイム収集に適した任意のデバイスであってもよい。データ収集デバイス１０４は、連続するデータストリームを受信し、または周期的な基準（例えば、ミリ秒、秒、分毎）でデータを収集することができ、それは収集されるデータのタイプおよびデータストリームの変動性に一般的に依存することがある。データ収集デバイス１０４は、通常、特定のタイプのデータを収集するように具体的に構成された特定のハードウェアおよび／または物理的構造（例えば、画像センサ、加速度計、ジャイロスコープセンサ、温度計、高度計、ホール効果センサ、速度計、光検出器、流量センサ、ひずみゲージ、トルクセンサ、タコメータ、クリノメータ、マイクロフォン、磁力計、電圧計、電流計、オーム計、化学センサ、圧力センサ、降雨センサ、湿度計、ヒューミスタ、風速計、地震計、ガイガーカウンタなど）を含む。例示的な実施形態では、１つのエッジデバイス１００は、異なるタイプのデータを収集する複数の異なるデータ収集デバイス１０４を含むことができる。データ収集デバイス１０４は、収集されたデータをメモリ１０６に提供する。例示的な実施形態では、メモリ１０６は、ビデオ画像データ（例えば、ＶＲＡＭ）などの大量のデータを受け取り、格納するための専用メモリであってもよい。したがって、メモリ１０６は、例えば、エッジデバイス１００の高スループットかつ低レイテンシ仕様を満たすために、タスク特有の特殊なハードウェアを有することができる。メモリ１０６は、バッファ、シフトレジスタなどの異なるメモリの階層を含むことができる。メモリ１０６は、収集されたデータを一時的に格納するように構成されてもよいし、収集されたデータが機械学習モジュール１０８にもはや必要でなくなると、上書きされてもよい。
【０００９】
機械学習モジュール１０８は、データ収集デバイス１０４によって収集されて、メモリ１０６に格納されたデータを使用して、機械学習モデルを実行する。機械学習モジュール１０８は、収集されたデータを入力として受け取り、収集したデータを用いて機械学習モデルを実行し、予測、分類、クラスタリング、異常検出、および／または認識を行い、結果として出力する。機械学習モデルは、結果を反復的に更新することができる。例えば、機械学習モデルは、メモリに格納された利用可能な収集データを全て使用して連続的に実行してもよく、連続的な結果または周期的な結果を生成してもよい。例えば、収集されるデータのボリュームおよび速度が比較的低い（低密度および／または低速）場合には、機械学習モデルは周期的にしか実行されず、各結果が出力された後一定期間休止してもよく、その間に新しいデータが収集される。各機械学習モデルは、所定のタスク（例えば、品目の予測、レジでの共謀窃盗の認識、捜索指令（ＢＯＬＯ）警告のための容疑者の認識、コーナリング速度の分類）に関係する。例えば、ショッピングカート・エッジデバイス１００の機械学習モデルでは、所定のタスクは、品目を消費者に提案することであってもよい。消費者がショッピングカートを押しながら、食料雑貨店やショッピングの中を歩いている間に、ショッピングカートの機械学習モジュール１０８は、その品目を消費者に提案すればその消費者が最も購入しそうな品目に関する予測を出力することができる。この予測は、消費者のカート内の他の品目に基づくことができる。さらに、消費者の年齢、性別、人種および／または民族性などの追加の情報を用いて、どの品目が最も購入される可能性が高いかの予測を行うこともできる。例示的な実施形態では、機械学習モジュール１０８は、いくつかの機械学習モデルを含むことができ、各機械学習モデルは、サブセットまたはカテゴリ（例えば、４０歳以上の男性消費者のカテゴリ）に固有であってもよく、その場合には、状況および機械学習モデルを特定するために使用される変数の数に応じて、１つの所定のタスクに対して２、４、８、または１６の異なるモデルを選択することができる。
【００１０】
図２は、本開示の例示的な実施形態による例示的な機械学習モジュール１０８のブロック図である。機械学習モジュール１０８は、インターフェースモジュール２０２、モデル選択モジュール２０４、および１つもしくは複数の機械学習モデル２０６を含むことができる。本明細書で説明するように、機械学習モデル２０６は、簡潔にするために単にモデル２０６と呼ぶことがある。インターフェースモジュール２０２は、機械学習モジュール１０８と、エッジデバイス１００内の他のモジュールまたは構成要素（例えば、メモリ１０６、通信モジュール１０２）との間のインターフェースである。モデル選択モジュール２０４は、どの所定のタスクが分析されるかを含む情報を受信し、所定のタスクについて適切なモデル２０６（例えば、４０歳以上の男性消費者）を選択するために、複数のモデル２０６から選択するための情報を含むことができる。図２に示すように、モデル１は所定のタスクＡに関連し、モデル２、３および４は異なる所定のタスクＢに関連し、モデル５は別の異なる所定のタスクＣに関連する。例示的な実施形態では、エッジデバイス１００はタスクを定期的に切り替えることができる。例えば、第１の所定のタスクは営業時間中に処理されてもよく、数時間後に第２の異なる所定のタスクが処理されてもよい。モデル２０６は、例えば、製造時に、エッジデバイス１００に提供されてもよく、あるいは、新しいモデル２０６として、またはモデル２０６の更新されたバージョンとして、後で別のデバイスからエッジデバイス１００にロードされてもよい。機械学習モデル２０６は、収集されたデータを入力として処理して、モデル２０６の出力として結果を生成するように実行される実行可能コンポーネント２１０を含む。機械学習モデル２０６は、モデルのタイプ（例えば、線形分類器、線形またはロジスティック回帰モデル、決定木、クラスタリングモデル、ベイジアンモデル、ニューラルネットワーク）およびモデルの構造（例えば、パラメトリック固定構造または非パラメトリック、パラメータの数と構造、入力変数、出力変数、データ型、フィーチャ定義）などの構造メタデータ２１２を含む。構造メタデータ２１２は、モデル２０６が何であるか、およびモデル２０６が何をするかを識別するための任意の必要な情報を含むことができるので、モデル２０６は、以下でさらに説明するように分散型機械学習に使用することができる。機械学習モデル２０６はまた、モデルが動作していたかまたは動作しているコンテキスト状況を記述することができるコンテキストメタデータ２１４（例えば、データ収集環境、モデル履歴、モデル安定性）を含むことができる。例示的な実施形態では、コンテキストメタデータは、ビデオカメラ・エッジデバイス１００の地理的位置を示すことができ、ビデオカメラが暗い環境もしくは明るい環境、および／または屋内環境もしくは屋外環境で動作していることを示すことができる。機械学習モデル２０６は、結果ログ２１６を含み、これは、例えばある期間の結果または特定の数の結果を格納することができる。結果ログ２１６はまた、例えば、モデル２０６の分析に有用であり得る概略統計または他の情報を含むことができる。結果ログ２１６は、以前にメモリ１０６に格納されていたが、新しい収集データによって上書きされた収集データの要約を含むことができる。機械学習モデル２０６は、モデル２０６からの結果出力に対するフィードバックに基づいてモデル２０６を更新すべきかどうかを決定する更新モジュール２１８を含む。例えば、モデル２０６が正しい予測を行う場合には、これはモデルを更新すべきであることを示すものではないが、モデル２０６が誤った予測を行う場合には、これはモデルが改良され得ることを示す傾向がある。したがって、更新モジュール２１８は、内部分析に基づいて機械学習モデル２０６を更新することができ、更新する外部命令に基づいて更新することもできる。モデル２０６が更新モジュール２１８によって更新されると、モデル２０６は、モデル２０６が常駐する特定のエッジデバイス１００に対して局所的であり、したがって、グローバルモデル２０６とは対照的に、局所モデル２０６と呼ぶことができる。製造業者は、新しいエッジデバイス１００にグローバルモデル２０６を提供することができ、各エッジデバイス１００は、それらのモデル２０６を更新して、グローバルモデル２０６とは異なる局所モデル２０６が得られる。局所モデル２０６は、グローバルモデル２０６が提供するよりも特定の環境においてより良い結果を提供するように、特定の環境に基づいて訓練することができる。
【００１１】
グループ決定モジュール１１０は、どのエッジデバイス１００が、そのグループのメンバーであるエッジデバイス１００上の機械学習モデル２０６の分析に参加するグループを形成するかを決定する。グループメンバーシップは、エッジデバイス１００間の地理的近接度に基づいてもよい。リーダー選定モジュール１１２は、どのエッジデバイス１００がエッジデバイスのグループのリーダーとして機能すべきかを決定する。リーダーは、グループの全てのメンバーからの入力を受信することができる合意プロトコルを使用して選出することができる。モデルミキシングモジュール１１４は、リーダーエッジデバイス１００によって、グループ内の異なるエッジデバイス１００からの局所モデル２０６をミキシングして、混合モデル２０６を作成するために使用される。モデルミキシングモジュール１１４は、混合モデル２０６に応じていくつかの異なる技術を使用してモデル２０６をミキシングすることができる。調整モジュール１１６は、通信モジュール１０２、データ収集デバイス１０４、メモリ１０６、機械学習モジュール１０８、グループ決定モジュール１１０、リーダー選定モジュール１１２、およびモデルミキシングモジュール１１４のプロセスを調整することができる。エッジデバイス１００は、中央処理ユニットを有することができ、様々な特定のタスク専用の１つまたは複数のさらなるプロセッサを有することもできる。各エッジデバイス１００は、１つまたは複数のプロセッサ、メモリ、バスなどを使用することができる。また、通信モジュール１０２、データ収集デバイス１０４、メモリ１０６、機械学習モジュール１０８、グループ決定モジュール１１０、リーダー選定モジュール１１２、モデルミキシングモジュール１１４、および調整モジュール１１６の各々は、１つまたは複数のプロセッサ、メモリ、バスなどを使用することができる。通信モジュール１０２、データ収集デバイス１０４、メモリ１０６、機械学習モジュール１０８、グループ決定モジュール１１０、リーダー選定モジュール１１２、モデルミキシングモジュール１１４、および調整モジュール１１６のうちの１つまたは複数によって、プロセッサ、メモリ、および任意の他の構成要素が共有されてもよい。例示的な実施形態では、通信モジュール１０２、データ収集デバイス１０４、メモリ１０６、機械学習モジュール１０８、グループ決定モジュール１１０、リーダー選定モジュール１１２、モデルミキシングモジュール１１４、および調整モジュール１１６の各々は、互いのモジュールまたはコンポーネントとは異なる専用のハードウェアおよびソフトウェアを使用する。
【００１２】
図２に示すエッジデバイス１００は、センサを用いて物理的世界とインターフェースし、次いでセンサによって収集されたデータを使用して、機械学習モデル２０６を自律的に実行し、機械学習モデル２０６を用いて実行される機械学習に関する他のデバイスと通信することができる。ショッピングカートの例に関して、エッジデバイス１００は、エッジデバイス１００の全ての構成要素および機能を一体的に含むショッピングカートであってもよいし、あるいはショッピングカートは、既存の標準ショッピングカートに固定されるように構成されたインストールされたエッジデバイス１００を含んでもよい。したがって、例えば、食料品店は、通常のショッピングカートにエッジデバイス１００を取り付けることができる。別の例示的な実施形態では、通常の自動車は、自動車内の既存のデータ収集デバイスを使用するソフトウェアモジュールをダウンロードすることによって、エッジデバイス１００を形成するように適合された牽引制御システムを含むことができる。さらに、多種多様な異なるタイプのデバイスをエッジデバイス１００（例えば、ショッピングカート、自動車、サーモスタット、ＧＰＳデバイス）に適合させることができ、したがって、エッジデバイス１００が別の異なるタイプのエッジデバイス１００と通信する際に、エッジデバイス１００の異種グループを形成することができる。エッジデバイスの異種グループは、同じタイプのデバイスであって、同じタイプのデータ収集および同じタイプの機械学習を実行するエッジデバイス１００のみを含む、エッジデバイス１００の同種のグループとは異なっている。
【００１３】
図３Ａは、本開示の例示的な実施形態による、エッジデバイスの異種グループを示す高レベルブロック図である。異種グループ３００は、両方とも同じタイプのエッジデバイス１００（例えば、両方ともビデオカメラ３０２）である２つのエッジデバイス３０２ａ、３０２ｂを含む。異種グループ３００はまた、それぞれ異なるタイプのデバイス１００（例えば、サーモスタット１台、現金自動預け払い機１台、およびショッピングカート１台）である３つのエッジデバイス３０４、３０６、３０８をさらに含む。サーバー３１０は、ネットワーク３１２を介して１つまたは複数のエッジデバイス３０２ａ、３０２ｂ、３０４、３０６、３０８と通信することができる。サーバー３１０は、１つまたは複数のエッジデバイス１００と通信することができる。例示的な実施形態では、サーバー３１０は、１つまたは複数のエッジデバイス１００および１つまたは複数の異なるサーバー（例えば、中央サーバー）と通信する中間サーバーである。例示的な実施形態では、サーバー３１０は、クラウドコンピューティングを実行する「クラウド」の一部であってもよい。サーバー３１０は、情報および／またはコマンドをエッジデバイス１００に提供することができ、例えば局所モデル２０６の履歴および／または精度に関する情報を受信することができる。例えば、サーバー３１０は、製造業者の更新に基づいて、更新されたモデル２０６を提供することができる。サーバー３１０は、エッジデバイスと同じ機能の多くを実行することができるが、エッジデバイス１００とは異なり、サーバー３１０は、データ収集デバイス１０４を使用してデータ収集を実行しない。ネットワーク３１２は、１つまたは複数のネットワークおよび／または通信経路を含むことができ、ピアツーピアネットワークとして構成することができる。例示的な実施形態では、異種グループ３００は、任意のタイプのネットワーク３１２（例えば、ＬＡＮ、ＷＡＮ、Ｗｉ−Ｆｉ、ＢＴ、Ｚ波、衛星、地上波など）内で構成することができ、任意の適切なネットワークトポロジ（例えば、メッシュ、バス、グリッド、リング、スター、ツリー、ライン）で構成することができる。
【００１４】
図３Ｂは、本開示の例示的な実施形態による、エッジデバイスの異種グループを示すブロック図である。図３Ｂに示すように、異種グループ３００は、エッジデバイス３０２ａ、３０２ｂ、３０４、３０６、３０８ａ、３０８ｂ、３０８ｃの半接続メッシュネットワークとして提供され、それは４つの異なるタイプのエッジデバイス（例えば、ビデオカメラ３０２、サーモスタット３０４、現金自動預け払い機３０６、およびショッピングカート３０８）を含む。本明細書で説明するように、エッジデバイス１００を参照する場合に、２つの異なるタイプのエッジデバイス３０２、３０４は、異なる符号３０２、３０４（例えば、ビデオカメラとサーモスタット）、または同じタイプの２つのエッジデバイスは、同じタイプの複数の異なるエッジデバイス（例えば、２つのビデオカメラ３０２）が参照されていることを示す文字「ａ」および「ｂ」を付した同じ符号３０２ａおよび３０２ｂによって示すことができる。また、エッジデバイス１００は、エッジデバイス１００が同じタイプかまたは異なるタイプのエッジデバイス１００であるかどうかを特定することなく、符号１００で参照されてもよい。
【００１５】
例示的な実施形態では、異種グループ３００内で複数の異なるタイプのネットワーク通信（例えば、Ｗｉ−Ｆｉ、４Ｇ、ＢＴ、ＮＦＣ、Ｌｉ−Ｆｉ、ＩｒＤＡ）を使用することができるが、１つのタイプの通信しかできないエッジデバイス１００が別のエッジデバイス１００を有する異種グループ３００に存在する可能性があり、それは両方の形式の通信が可能な仲介者として機能するエッジデバイス１００を介してしか、異なるタイプの通信ができない。例示的な実施形態では、ネットワーク３１２は、無線モバイル・アドホック・メッシュ・ネットワーク（例えば、ＭＡＮＥＴ、ＶＡＮＥＴ、ＳＰＡＮ）であってもよい。例示的な実施形態では、ネットワーク３１２はスキャッタネットであってもよい。本明細書で説明するように、エッジデバイス１００の異種グループ３００は、簡潔にするために、単にグループ３００と呼ぶことができる。グループ３００は、しばしばグループ３００内で変化を受けやすい。例えば、グループ３００内のエッジデバイス１００は、グループ３００との通信を予期せず失う場合がある。例えば、エッジデバイス１００は、電力を失うことがあり（例えば、プラグが抜かれる、および／またはバッテリが切れる）、干渉（例えば、山、雨）のために接続が制限されているかまたは接続されない領域に移動することがあり、あるいはユーザがスイッチを切ることもある。したがって、グループ３００は、静的ではなく、むしろ、通常、異なるエッジデバイス１００が自発的におよび／または予期せずにグループ３００に出入りすることによって動的に変化する異種環境において、通常、動作している。例示的な実施形態では、本願で説明したように、異種グループ３００は、ショッピングカート、自動車、監視カメラ、現金自動預け払い機、ＧＰＳデバイス、医療デバイス、ロボット、遠隔制御、煙検知器、ヘッドマウントディスプレイのうちの１つまたは複数を含むエッジデバイス１００、あるいは任意の他のエッジデバイス１００を有することができる。例示的な実施形態では、異種グループ３００は、Ｉｎｔｅｒｎｅｔ  ｏｆ  Ｔｈｉｎｇｓ（ＩｏＴ）の一部である複数のエッジデバイス１００を含み、ＩｏＴは急速に成長しており、既に何十億ものデバイスを含んでいる。図３Ｂに示すように、エッジデバイス３０２ａは、リーダーエッジデバイス３０２ａとして指定されており、リーダーエッジデバイス３０２ａは、グループ３００のリーダーとして機能するデバイスであり、これについては後でさらに詳しく説明する。
【００１６】
図４は、本開示の例示的な実施形態による、エッジデバイスの異種グループにおける機械学習の例示的なプロセスを示すフローチャートである。プロセス４００は、図４に示すフローチャートを参照して説明しているが、プロセス４００に関連する動作を実行する他の多くの方法を使用することができることが理解されよう。例えば、ブロックのうちのいくつかは順序が変更されてもよく、特定のブロックが他のブロックと組み合わされてもよく、また記載されたブロックのうちのいくつかは任意である。
【００１７】
例示的なプロセス４００は、機械学習モデルの実行から開始することができる（ブロック４０２）。例えば、エッジデバイス１００は、機械学習モデル２０６を使用して画像データを分析して予測を行うことができる。エッジデバイス３０８がショッピングカートである場合の例示的な実施形態では、ショッピングカートによって実行されるモデル２０６は、品目を消費者に提案する所定のタスクに関連し得る。エッジデバイス３０２がビデオカメラである場合の例示的な実施形態では、ビデオカメラによって実行されるモデル２０６は、共謀窃盗の認識の所定のタスクに関連し得る。例示的な実施形態では、エッジデバイス１００は、例えば、２つの異なるタスクに向けられた２つの異なる機械学習モデル２０６が同時に実行されている場合には、複数の機械学習モデル２０６を同時に実行する。２つの異なる機械学習モデル２０６は、同じ収集データを使用してもよく、または異なるデータ収集デバイス１０４（例えば、画像センサおよびマイクロフォン）から収集された異なるデータを使用してもよい。また、いくつかの機械学習モデル２０６は、異なるデータ収集デバイス１０４から収集された複数の異なるタイプのデータを使用することができる。
【００１８】
例示的なプロセス４００は、異種エッジデバイス間の通信を含む（ブロック４０４）。例えば、エッジデバイス１００は、範囲内の様々な異なるタイプのエッジデバイス３０２、３０４、３０６、３０８との接続を求める定期的なピングメッセージを送信することができる。例示的な実施形態では、ビデオカメラおよびショッピングカートは、ショッピングカートがビデオカメラに近接したときに、例えば、チェックアウトレーンにおいて、消費者がショッピングカート内の商品の代金を支払っているときに通信することができる。例示的な実施形態では、範囲は、ピングメッセージの存続時間または中間デバイスを介したホップ数に基づいて設定される。例示的な実施形態では、その範囲は、信号電力、干渉など（例えば、電力クラスおよび干渉のない視線に基づく３０フィートのブルートゥース範囲）によって規定される有効範囲に限定され得る。例示的な実施形態では、その範囲は地理的描写によって設定されてもよい。機械学習モデル２０６の実行および異種エッジデバイス１００間の通信が、同時に発生することがあり得るので、エッジデバイス１００は、既知のエッジデバイス１００との通信を維持し、例えば、通信の範囲内で移動した新しく利用可能なエッジデバイス１００との新たな接続を行い、その間にデータ収集デバイス１０４によって収集されたデータの着信ストリーム上で機械学習モデル２０６を継続的に実行する。
【００１９】
通信エッジデバイス１００は、グループ３００の構築を実行する（ブロック４０６）。例えば、グループ３００のグループメンバーシップおよびリーダーが決定される。例示的な実施形態では、図３Ｂに示すように、エッジデバイス３０２ａ、３０２ｂ、３０４、３０６、３０８ａ、３０８ｂ、３０８ｃ（例えば、ビデオカメラ、サーモスタット、現金自動預け払い機、およびショッピングカート）がグループ３００のメンバーであると決定され、グループ３００はリーダーエッジデバイス３０２ａを一括して決定することができる。グループ３００のメンバーは、異種グループ３００内の分散型機械学習に関与してもよく、リーダーエッジデバイス３０２ａ（例えば、ビデオカメラ）は、グループ３００の分散型機械学習を導くことができる。例えば、リーダーエッジデバイス３０２ａは、異なるエッジデバイス（例えば、３０２ａおよび３０２ｂ）のモデル２０６をミキシングするべきかどうかを決定するために、グループ３００と定期的に通信するための構造を決定することができる。また、グループ３００は、サーバー３１０（例えば、中間サーバー）と通信することができ、サーバー３１０は、グループ３００を監視し（例えば、モデル２０６の履歴およびミキシングに関する情報を記録する）、および／または更新されたモデル２０６をグループ３００に提供することができる。例示的な実施形態では、サーバー３１０は、グループ３００の構築に参加することができる。また、サーバー３１０は、多くの異なるグループ３００を監視してもよく、局所モデル２０６の履歴および精度に関する情報を受信してもよい。例示的な実施形態では、グループメンバーシップおよびリーダーエッジデバイス３０２ａの決定は、エッジデバイス１００間の地理的近接度および／または接続信号強度に基づくことができる。
【００２０】
混合モデルが生成される（ブロック４０８）。例えば、リーダー３０２ａは、エッジデバイス１００から局所モデル２０６を要求し、受信した局所モデル２０６をミキシングする。例示的な実施形態では、ビデオカメラであるリーダー３０２ａは、２つのショッピングカートからの２つの局所モデル２０６をミキシングして、品目を消費者に提案することに関連する混合モデル２０６を生成する。リーダー３０２ａは、どのモデル２０６がミキシング可能であるかを判定し、構造メタデータ、コンテキストメタデータ、データ分布などに基づいて、ミキシング可能なモデル２０６をミキシングすることが適切であるかどうかを判定することもできる。リーダーは、２つの局所モデル２０６上でミキシング演算（例えば、平均化演算、遺伝的アルゴリズム演算、列挙演算、アンサンブル演算）を実行して、混合モデル２０６を作成することができる。
【００２１】
混合モデルがグループに分配される（ブロック４１０）。例えば、リーダー３０２ａは、混合モデル２０６をエッジデバイス１００に送信し、局所モデル２０６を更新する。次いで、混合モデル２０６は、グループ３００内のエッジデバイス１００によって実装され得る（ブロック４１２）。例えば、エッジデバイス１００は、その局所モデル２０６を混合モデル２０６に置き換える。例示的な実施形態では、ショッピングカートはそれぞれ、リーダー３０２ａから受信された混合モデル２０６により消費者への品目を提案するための局所モデル２０６を置き換える。例示的なプロセス４００は、設定された間隔で周期的に繰り返される進行中のプロセスであってもよい。例えば、ブロック４０２〜４１２は、通常、３０秒の期間にわたって発生し得るが、この期間の持続時間は、例えば、収集されるデータの速度および量（例えば、１秒、５分）、リーダー３０２ａの計算能力、エッジデバイス１００間の通信速度、必要とされるモデルミキシングの程度などに応じて短くなったり、長くなったりしてもよい。例えば、期間が１秒である場合には、収集されたデータは数秒以内に非常に変化する可能性があり、モデル２０６が可能な限り正確であることが重要であり得る（例えば、自己運転機能を備えた自動車）。一方、期間が５分である場合には、収集されたデータは、数分の経過にわたって比較的小さな変化を含むことがあるので、モデル２０６の精度は重要ではない可能性がある（例えば、駐車可能性の予測）。期間は、一般に、異種エッジデバイス１００間の通信が維持されている間に機械学習モデル２０６が実行される第１のフェーズ（ブロック４０２および４０４）と、グループ３００が構築され、グループ１００内のエッジデバイスによってモデル２０６がミキシングされ、配信され、実装される第２のフェーズ（ブロック４０６〜４１２）と、を含む。第１および第２のフェーズは、通常、オーバーラップしてもよく、第２のフェーズの開始は、同期またはタイムアウト期間を必要とする場合がある。通常、第１のフェーズは、期間の大部分を構成する。また、期間は、例えばグループ３００内のエッジデバイス１００の数、リーダー３０２ａの計算能力に基づいて、イベントによってトリガされた場合に（例えば、消費者がチェックアウトするたびに、消費者のショッピングカートが第２のフェーズを開始してもよい）、モデル２０６の変更または更新を必要とする収集されたデータの重要な変更に基づいて、動的に決定されてもよい。
【００２２】
図５は、本開示の例示的な実施形態による、機械学習の例示的なプロセスを示すフローチャートである。プロセス５００について、図５に示すフローチャートを参照して説明しているが、プロセス５００に関連する動作を実行する他の多くの方法を使用することができることが理解されよう。例えば、ブロックのうちのいくつかは順序が変更されてもよく、特定のブロックが他のブロックと組み合わされてもよく、また記載されたブロックのうちのいくつかは任意である。
【００２３】
例示的なプロセス５００は、データ収集デバイスから収集されたデータを受信することから開始することができる（ブロック５０２）。例えば、ショッピングカート内の品目を含むデータストリームがタグリーダから受信される。ショッピングカートは、タグリーダ（例えば、ＲＦＩＤリーダー）および位置検出デバイス（例えば、ＧＰＳデバイス）などの複数のデータ収集デバイス１０４を含むことができる。例えば、買い物客が食料品店を移動すると、タグリーダを使用してショッピングカートに入れた品目を識別することができる。メモリ１０６は、どの品目がショッピングカートに置かれているか、およびショッピングカートが店舗内に位置しているかを示すデータを定期的に格納することができる。例えば、メモリ１０６は、０．５秒毎に現在の場所およびショッピングカート内の品目のリストを格納することができ、したがって、店舗全体にわたって買い物客の行動のログを作成することができる。例示的な実施形態では、店舗は、棚上の１，０００個の異なる商品を追跡し、これらの品目の１つがショッピングカートに入れられると、その商品の有無を示すようにベクトルが更新される。例えば、１０００個の品目のうちの品目３と５がショッピングカートに置かれると、１，０００個のベクトルが＜０，０，１，０，１，０，０，．．．，０＞に更新され、店舗内の位置およびタイムスタンプと共に格納され得る。店舗内の全ての品目が、ショッピングカート内のタグリーダによって読み取り可能なタグ（例えば、ＲＦＩＤタグ）を有さなければならないわけではないことを理解されたい。
【００２４】
収集されたデータは、所定のタスクに関連するモデルを用いて分析されてもよい（ブロック５０４）。例えば、ショッピングカートによって収集されたデータストリームを分析して、品目の予測を行い、それを買い物客に提案することができる。例示的な実施形態では、モデル２０６は、買い物客に提案された場合に、所定の日にモデル２０６によって提案され得る所定の品目リストから購入される最も有望な品目である品目を予測することができる。例えば、買い物客に提案された品目は、高い利益率の品目であってもよいし、および／または過剰に在庫されているか間もなく期限切れの品目であってもよい。例示的な実施形態では、モデル２０６は、提案することができる３つの品目のリスト（例えば、宝くじチケット、ペストリートレイ、またはフラワーブーケ）を有することができる。モデル２０６は、カート内に置かれた品目、滞留時間（例えば、１つの場所で１０秒以上）、店舗を通る移動（例えば、通路の順序およびバイパス通路）、曜日、時刻、休日または特別イベント（例えばスーパーボウル）などを分析することができる。例えば、収集されたデータは、モデル２０６の実行可能コンポーネント２１０の入力変数として入力され、消費者が一定期間立ち止まる（例えば、買い物客が製品に興味を持っている、または決定している）滞留時間、品目がカートに置かれる順序、バイパスされる店の部分などを分析する。収集されたデータは全て、モデル２０６によって分析されて、どの品目を買い物客に提案すべきかを予測することができる。例示的な実施形態では、モデル２０６は、単純ベイズ分類器を含むことができ、それは宝くじチケット、ペストリートレイ、およびフラワーブーケのそれぞれの購入確率を出力し、最も高い購入確率を有する品目を提案する品目とすることができる。上述したように、店舗内の全ての品目が、ショッピングカート内のタグリーダによって読み取り可能なタグ（例えば、ＲＦＩＤタグ）を有さなければならないわけではないが、そのような品物は、品目を消費者に提案するためにモデル２０６によって考慮されなくてもよい。
【００２５】
結果がモデルの分析に基づいて出力される（ブロック５０６）。例えば、実行可能コンポーネント２１０は、グローバルモデル２０６に基づいて、宝くじチケットを推薦することにより宝くじチケットを購入する可能性が最も高くなるという予測を行う。例えば、買い物客は、５つの品目をショッピングカートに入れ、次に実行可能コンポーネント２１０は、品目の購入確率を決定することができる（例えば、＜宝くじチケット０．８４７＞、＜ペストリートレイ０．０１７＞、＜フラワーブーケ、０．１３６＞）。したがって、モデル２０６は、宝くじチケットを買い物客に提案するべきであると予測する結果を出力することができる。例示的な実施形態では、通信モジュール１０２は、モデルから出力された結果に基づいて、例えばデジタル表示画面上に品目を提案することができる。また、例示的な実施形態では、提案した品目について消費者にクーポンを提供することもできる。モデル２０６によって出力される結果は、予測、分類、クラスタリング、異常検出、および／または認識を含むことができる。上述のように、メモリ１０６は、収集されたデータを一時的に格納することができ、収集されたデータが分析されて結果が出力されると、メモリ１０６は新しい収集されたデータで上書きされる。例えば、メモリ１０６は、５０ミリ秒毎、５００ミリ秒毎、５秒毎、または５分毎に上書きされてもよい。
【００２６】
結果の正確さがモデルによって判定される（ブロック５０８）。例えば、モデル２０６は、フィードバックを使用して、宝くじチケットが購入されたかどうかを判定する。例示的な実施形態では、ショッピングカートの通信モジュール１０２は、どの商品が購入されたかを示す情報を別のエッジデバイス１００（例えば、レジ、ビデオ監視カメラ）から受信することができ、したがって、モデル２０６は、提案した品目が購入されたか購入されなかったかを判定することができる。場合によっては、エッジデバイス１００は、出力された結果の正確さを判定するためのフィードバックを得ることができないことを理解されたい。
【００２７】
このモデルは、所定のタスクに関連する局所モデルを作成するように更新される（ブロック５１０）。例えば、更新モジュール２１８は、グローバルモデル２０６のパラメータ値を変更して局所モデル２０６を作成する。例えば、消費者が宝くじチケットを購入することをショッピングカートが提案した後に宝くじチケットが購入されなかった場合には、更新モジュール２１８は、このフィードバックを訓練データとして使用して、モデル２０６のパラメータ値を更新することができる。局所モデル２０６は、比較的短時間の後に特定の環境に対して非常によく訓練され得る。環境が変化する場合には、モデル２０６は一般に、最適な結果を提供するために再度、通常は数回更新する必要がある。エッジデバイス１００が動作する環境は、エッジデバイス１００が異なる場所に移動するか、または環境が経時的に変化するか、またはこれらの両方の組み合わせのために変化し得る。
【００２８】
上述のショッピングカートの例は単に例示的なものであり、モデル２０６は任意の適切な所定のタスクに関連し、所定のタスクに対処するための任意の適切なタイプのモデル２０６を含んでもよいことを理解されたい。例示的な実施形態では、モデル２０６は、食料品店におけるレジ係による共謀窃盗の認識に向けられてもよい。例えば、チェックアウトレーンに位置する監視ビデオカメラは、エッジデバイス１００として動作することができる。ビデオカメラは、画像データのストリームを収集し、モデル２０６によって分析されて、レジ係の手の動きが、レジ係が消費者を呼び出すための品目を適切にスキャンしていないことを示していることを検出することができる。モデル２０６が、共謀窃盗が発生している、または発生しそうであると判断した場合には、または店の管理者にメッセージを送って、管理者が店の出口で消費者のバッグおよび領収書をチェックすることができる。消費者がスキャンされなかった品目を持っていたかどうかに基づいて、フィードバックをモデル２０６に提供することができ、フィードバックに基づいてモデルを更新することができる。したがって、更新された局所モデル２０６は、レジ係の品目をスキャンするスタイルに適応することができ、それは異なるレジ係の別のモデル２０６とは異なっていてもよい。
【００２９】
別の例示的な実施形態では、モデル２０６は、自動車の目標コーナリング速度を決定する所定のタスクに関連してもよい。例えば、自動車は、予測される衝突に基づく自動制動、およびドライバへの警報または警告などの自己運転機能を含むことができる。例示的な実施形態では、自動車は、次に来るコーナー（例えば、道路のカーブまたはターン）を分析するためのビデオカメラなどのデータ収集デバイス１０４を含むエッジデバイス１００であってもよい。データ収集デバイス１０４は、曲がりの鋭さ、道路の傾斜、および道路のキャンバ、現在の速さもしくは速度、スリップ角、タイヤ舗装摩擦、自動車の重量、重量の分布、湿度、温度などを決定するために使用されるデータストリームを提供することができる。モデル２０６は、次に来る各コーナーの目標速度を出力することができ、ブレーキを掛ける、または危険な状態をユーザに警告するなどのために自動車によって使用することができる。自動車内のデータ収集デバイス１０４（例えば、牽引制御システム）からコーナーを通って運転中に得られるフィードバック（例えば、タイヤスリップ、車輪の差）をモデル２０６に提供することができる。自動車が走行するにつれて、更新モジュール２１８はフィードバックを使用してモデル２０６を改良することができ、それは場所の変化（例えば、砂漠、山）、天候の変化（乾燥、雨、雪、風、暑さ、凍結）、重量の変化（例えば、乗客の乗り降りもしくは荷物の積み降ろし）、または他の任意の環境変化に基づいてもよい。
【００３０】
図６は、本開示の例示的な実施形態による、異種グループ構築のための例示的なプロセスを示すフローチャートである。プロセス６００について、図６に示すフローチャートを参照して説明しているが、プロセス６００に関連する動作を実行する他の多くの方法を使用することができることが理解されよう。例えば、ブロックのうちのいくつかは順序が変更されてもよく、特定のブロックが他のブロックと組み合わされてもよく、また記載されたブロックのうちのいくつかは任意である。
【００３１】
例示的なプロセス６００では、互いに通信しているエッジデバイス３０２、３０４、３０６、３０８は、グループメンバーシップを決定することができる（ブロック６０２）。例えば、グループメンバーシップは、エッジデバイス１００の地理的近接度に基づいて決定されてもよい。例示的な実施形態では、通信しているショッピングカートおよびビデオカメラは、（例えば、食料雑貨品店内における近接度に基づいて）両方のデバイスがグループ３００のメンバーであるべきであると判断することができる。例えば、食料雑貨品店内の様々なエッジデバイス１００のメンバーシップを含むグループ３００が形成されてもよい。エッジデバイス１００は、複数のグループ３００の範囲内にあってもよく、その場合には、エッジデバイス１００は、どのグループ３００に入るか、および／または別のグループ３００に対して１つのグループ３００を残すかどうかを（例えば、場所、無線信号強度、直接通信中のデバイスの数に基づいて）決定することができる。例えば、エッジデバイス３０８（例えば、ショッピングカート）が、グループ３００内の１つのエッジデバイス３０６に対して低い強度の無線接続のみを有する（例えば、ショッピングカートが店外の駐車場内にある）場合には、エッジデバイス３０８がグループ３００との通信を失う可能性が高い。この場合には、異なるグループ３００がメンバーシップにより適しているかもしれない。グループ３００に入ると、エッジデバイス１００はグループメンバーシップ情報を受信し、エッジデバイス１００が処理している所定のタスクに応じて初期化され得る。所定のタスクが局所環境に対して非常に特有である場合には、新しいモデル２０６をエッジデバイス１００に提供する必要があり得る。例示的な実施形態では、各エッジデバイス１００は、任意の所与の時刻において、１つのグループ３００のメンバーであることのみが許可されてもよい。グループメンバーシップを有すると判定されたエッジデバイス１００は、通信中のエッジデバイス１００のグループ３００のサブセットであってもよい。エッジデバイス１００のサブセットは、狭義のサブセットであってもよいし（例えば、７つのエッジデバイス１００が通信を維持しているが、２つのエッジデバイス１００が、それらは接続不良のためにグループ３００のメンバーにするべきではないと判断してもよい）、あるいはグループ３００内の各エッジデバイス１００を含めてもよい（例えば、７つのエッジデバイス１００が通信を維持していてもよく、かつ、７つのエッジデバイス１００の全てがグループ３００のメンバーでなければならないと決定してもよい）。例示的な実施形態では、１つのエッジデバイス１００がグループメンバーシップを決定する。例えば、要求する各エッジデバイス３０２ｂ、３０４、３０６、３０８の近接度および／または接続性が適切である場合には、リーダー３０２ａは、グループに参加するための他のエッジデバイス３０２ｂ、３０４、３０６、３０８からの要求を受け入れることによってグループメンバーシップを決定することができる。また、例えば、グループ３００と通信しているランダムに選択されたエッジデバイス１００が、グループメンバーシップを決定してもよい。
【００３２】
グループ３００内のエッジデバイス１００は、リーダーエッジデバイス３０２ａを決定することができる（ブロック６０４）。例えば、リーダーエッジデバイス３０２ａ（例えば、ビデオカメラ）を、合意プロトコルを使用して選定することができる。本明細書で説明するように、リーダーエッジデバイス３０２ａは、簡潔さのために単にリーダー３０２ａと呼ぶ場合がある。リーダー３０２ａは、グループ３００内のメンバーシップを有する全てのエッジデバイス１００と直接的または間接的に通信し、グループ３００内のエッジデバイス１００から局所モデル２０６を受信し、局所モデル２０６をミキシングして混合モデル２０６を形成し、混合モデル２０６を配信することができる。リーダー３０２ａは、様々な異なる方法でグループ３００によって決定されてもよい。例えば、リーダー３０２ａは、ユーザの指定、環境条件および／またはグループ３００内の他のエッジデバイス１００の条件に基づいたルールに基づく選択、ランダム割り当て、ＩＤに基づく選択（例えば、最大ＭＡＣアドレス）、合意プロトコル、あるいは機能に基づく選択に基づいて決定することができる。例えば、各エッジデバイス１００の計算能力を決定する所定の能力関数を用いてリーダー３０２ａを選択してもよいし、所定の能力関数を最大にするエッジデバイス１００をリーダー３０２ａとして決定してもよい。所定の能力関数は、ＣＰＵ処理能力、ＣＰＵコア数、メモリ量、メモリ速度、通信速度などに基づくことができ、各エッジデバイス１００は、それ自体の計算能力スコアを決定することができる。例えば、各エッジデバイス１００が計算能力スコアをグループ３００の前のリーダー３０２ａに送信して、前のリーダー３０２ａが次のリーダー３０２ａをグループ３００に通知することができる。
【００３３】
リーダー３０２ａは、リーダー３０２ａとグループ３００との間の通信を開始することができる（ブロック６０６）。例えば、リーダー３０２ａは、局所モデル２０６に対する要求を、グループ３００内のエッジデバイス３０２ｂ、３０４、３０６、３０８に送信することができる。局所モデル２０６に対する要求を送信した後に、リーダー３０２ａは、グループ３００から送信された局所モデル２０６を受信することができる。例示的な実施形態では、リーダー３０２ａは、エッジデバイス３０８ａ、３０８ｂ、３０８ｃ（例えば、ショッピングカート）から品目を消費者に提案することに関連する局所モデル２０６を受信してもよいし、エッジデバイス３０２ｂ（例えば、ビデオカメラ）からレジ係の共謀窃盗の認識に関連する局所モデル２０６を受信してもよい。リーダー３０２ａは、第１の所定のタスクに関連するモデル２０６と、異なる第２の所定のタスクに関連するモデル２０６と、を受信することができる。リーダー３０２ａは、第１および第２の所定のタスクの一方または両方に関連するモデル２０６を実行していてもよいし、あるいは、第１または第２の所定のタスクのどちらかに関連するモデル２０６を実行していなくてもよい。したがって、リーダー３０２ａが異なるタイプのデバイスであっても、リーダーエッジデバイス３０２ａをグループ３００のリーダー３０２ａとして指定してもよいし、異種グループ３００内の他のエッジデバイス３０４、３０６、３０８の１つまたは複数と同じ所定のタスクに関連する機械学習を実行しなくてもよい。上述のように、リーダー３０２ａは、モデルミキシングおよび混合モデルの配信を実行することができる。
【００３４】
図７は、本開示の例示的な実施形態による、エッジデバイスの異種グループにおける機械学習のための例示的なプロセスを示す流れ図である。プロセス７００について、図７に示す流れ図を参照して説明しているが、プロセス７００に関連する動作を実行する他の多くの方法を使用することができることが理解されよう。例えば、ブロックのうちのいくつかは順序が変更されてもよく、特定のブロックが他のブロックと組み合わされてもよく、また記載されたブロックのうちのいくつかは任意であってもよいし、あるいは異なるデバイスによって実行されてもよい。
【００３５】
例示的なプロセス７００では、データは、例えば、ネットワーク３１２を介して、エッジデバイス３０２ａ、３０２ｎ、３０４ａ、３０４ｎの間を流れることができる。エッジデバイス３０２ａ、３０２ｎ、３０４ａ、３０４ｎは、任意のタイプのエッジデバイス１００であってもよい。４つの特定のエッジデバイス３０２ａ、３０２ｎ、３０４ａ、３０４ｎについてのプロセスが４つの別々の列に示されているが、より多くのエッジデバイス１００がプロセス７００に関与してもよく、１つまたは複数のサーバー３１０がプロセス７００に参加してもよい。例えば、エッジデバイス３０２ｎは、エッジデバイス３０２ａと同じタイプの第２の、第１０の、または第５０のデバイスを表すことができる。同様に、エッジデバイス３０４ｎは、エッジデバイス３０４ａと同じタイプの第３の、第２０の、または第１００のデバイスを表すことができる。通常、全てのエッジデバイス３０２ａ、３０２ｎ、３０４ａ、３０４ｎが互いに直接通信することができるわけではないので、通信は中間エッジデバイス（例えば３０２ｎ、３０４ａ）を介して、および／または他のデバイス（例えば、ルータ、ゲートウェイ、サーバー３１０）を介して行われる。また、プロセス７００は、第１のフェーズ７５０および第２のフェーズ７６０を示す。第１のフェーズ７５０では、エッジデバイス３０２ａ、３０２ｎ、３０４ａ、３０４ｎがモデル２０６を実行し、他のエッジデバイス３０２ａ、３０２ｎ、３０４ａ、３０４ｎと接続して通信を維持し、第２のフェーズ７６０では、グループ構築とモデルミキシングが行われる。
【００３６】
例示的なプロセス７００は、エッジデバイス３０２ａがモデルを実行することで開始することができる（ブロック７０２ａ）。同様に、エッジデバイス３０２ｎがモデルを実行しており（ブロック７０２ｂ）、エッジデバイス３０４ａがモデルを実行しており（ブロック７０２ｃ）、エッジデバイス３０４ｎがモデルを実行している（ブロック７０２ｄ）。実行モデルのいずれかまたは全ては、局所モデル２０６であってもよい。上述のように、実行モデル２０６は、収集されたデータを分析して、結果を出力することができる。第１のフェーズ７５０は、例えば、エッジデバイス３０２ａが９０の結果（例えば、毎秒２つの結果）を出力することができる４５秒の持続時間を有することができるが、異なるエッジデバイス（例えば、３０４ａ）は、例えば、モデル２０６に応じて、かつエッジデバイス（例えば、３０４ａ）によって収集されたデータストリームに応じて、より多くの結果またはより少ない結果を出力することができる。エッジデバイス３０２ａは、エッジデバイス３０２ｎにピングメッセージ７０４ａを送って、最初に接続を行い、次に接続を維持することができる。さらに、ピングメッセージ７０４ｂ、７０４ｃが、例えばエッジデバイス３０２ｎ、３０４ａ、３０４ｎの間で送信される。プロセス７００では例示的な通信のみが示され、例えば、エッジデバイス３０２ａから３０４ｎへのピングメッセージの直接通信を含む、より多くの通信が行われてもよいことを理解されたい。
【００３７】
エッジデバイス３０２ｎではトリガイベントが発生する（ブロック７０６）。例えば、トリガイベントは、ショッピングカート内の品目の販売が完了した後のチェックアウトレーン内のショッピングカートであってもよい。また、例えば、トリガイベントは、時間に基づくイベント（例えば、第１のフェーズ７５０が開始してから４５秒後）であってもよく、タイマー満了によってトリガされてもよい。例示的な実施形態では、エッジデバイス３０２ｎは、複数の異なるトリガイベントを有するように構成されてもよい。
【００３８】
エッジデバイス３０２ｎでトリガイベントが発生すると、そのエッジデバイス３０２ｎは、グループ構築を開始することによって第２のフェーズ７６０に入ることができる。具体的には、エッジデバイス３０２ｎは、構築要求７１０をグループの前のリーダー３０２ａに送信することによってグループ構築を開始することができる（ブロック７０８）。別の例示的な実施形態では、エッジデバイス３０２ｎは、例えば、エッジデバイス３０２ｎと通信する全てのエッジデバイス３０２ａ、３０４ａ、３０４ｎにメッセージをブロードキャストすることによって、グループ構築を直接開始することができる。前のリーダー３０２ａは、グループメンバーシップおよびリーダー情報に対する要求をブロードキャストすることができる（ブロック７１２）。グループ情報７１４に対する要求（例えば、グループメンバーシップおよびリーダー選定）は、エッジデバイス３０２ｎからエッジデバイス３０４ａおよびエッジデバイス３０４ｎに送ることができる。
【００３９】
全てのエッジデバイス３０２ｎ、３０４ａ、３０４ｎがグループ情報７１４に対する要求を受信すると、エッジデバイス３０２ｎ、３０４ａ、３０４ｎは、それぞれグループ決定モジュール１１０を用いてグループ情報７１８ａ、７１８ｂ、７１８ｃを決定して送信し、グループに入って、リーダーを選定するためのプロセスを実行する（ブロック７１６ａ、７１６ｂ、７１６ｃ）。例えば、全てのエッジデバイス３０２ａ、３０２ｎ、３０４ａ、３０４ｎは、それらがグループメンバーシップを有するべきであると決定してもよい。しかしながら、例えば、１つまたは複数のエッジデバイスは、例えば、貧弱な無線接続が、第２のフェーズ７６０で失敗するか、または問題を引き起こす可能性が高い場合には、グループメンバーシップを拒否することができる。また、例えば、リーダーを選定するためのプロセスは、合意プロトコル、ルールに基づく選択、ランダム割り当て、ＩＤに基づく選択、および／または計算能力関数に基づく選択を含むことができる。前のリーダー３０２ａがグループ情報７１８ａ、７１８ｂ、７１８ｃを有すると、前のリーダー３０２ａは、グループ決定モジュール１１０を使用してグループメンバーシップおよび現在のリーダーを決定する（ブロック７２０）。図７は、前のリーダー３０２ａが再び現在のリーダー３０２ａであると決定される典型的な例を示す。例えば、リーダー３０２ａは、第１のフェーズ７５０および第２のフェーズ７６０を一般に含むことができるいくつかの期間において繰り返してリーダー３０２ａであってもよい。しかしながら、リーダー３０２ａの処理能力が低下させる期間がある場合には、大部分の時間（例えば、使用されていない間）に未使用の高レベルの処理能力を有することができる現金自動預け払い機などの、異なるリーダーを選ぶことができる。上述したように、グループメンバーシップの決定およびリーダーの決定は、両方とも多くの異なる方法で実行されてもよく、特定の決定方法は、エッジデバイス３０２ａ、３０２ｎ、３０４ａ、３０４ｎによって動的に使用されてもよい。また、グループメンバーシップを決定し、現在のリーダーを決定することは、例えば、合意プロトコルを実施する前にグループメンバーシップを確定しなければならない場合には、逐次的に実行されてもよい。
【００４０】
リーダー３０２ａが決定されると、モデルミキシングモジュール１１４を使用してモデルミキシングプロセスを開始することができる。現在のリーダー３０２ａは、モデルを要求し、モデルをミキシングし、モデルを配信する（ブロック７２２）。モデルに対する要求が送信されると、リーダー３０２ａと他のエッジデバイス３０２ｎ、３０４ａ、３０４ｎとの間でモデルミキシング情報７２４ａ、７２４ｂ、７２４ｃが通信される。エッジデバイス３０２ｎ、３０４ａ、３０４ｎは、リーダー３０２にモデルを提出し、その後、混合モデルを実装する（ブロック７２６ａ、７２６ｂ、７２６ｃ）。また、リーダー３０２ａは、リーダー自体のモデル２０６の１つが別のモデル２０６とミキシングされた場合には、混合モデル２０６を実装してもよい。モデルミキシング情報７２４ａ、７２４ｂ、７２４ｃは、構造メタデータ、コンテキストメタデータ、結果ログ、データ分布などを含むことができる要求、グローバルモデル、局所モデル、混合モデルを含むことができる。リーダー３０２ａは、どのモデルをミキシングするかを決定するために、構造メタデータ、コンテキストメタデータ、およびデータ分布によるフィルタリングを実行することができる。第２のフェーズ７６０は、例えば１５秒の持続時間を有することができ、その後、第１のフェーズ７５０が再び開始する。
【００４１】
以前に存在していた機械学習方法は、一般的には、同種の環境からのデータストリームを処理するのに有用であった。しかし、我々は、環境の変化が一般的である異種環境で利用可能なデータの量と速度を既存の方法では適切に処理できないことを認識している。より高度で高速なコンピュータおよび／またはネットワークハードウェアでこの問題に対処することは不十分であることが判明しており、それは、技術的に最も高度なコンピュータハードウェア、ソフトウェア、およびネットワーキング機能であっても、異種環境（例えば、接続が変化する異なるタイプのエッジデバイス１００）における変化を処理することはできるが、我々が必要とする速度でデータ量を処理するのに適していないためである。換言すれば、既存の機械学習技術は、一般に、異種環境における機械学習を処理するには不十分である。一方、本明細書で提案するようなエッジデバイス１００による異種環境における機械学習は、従来の方法およびシステムを用いては不可能であった異なる技術的アプローチをとる。したがって、本明細書に記載の方法およびシステムを使用することによって、エッジデバイス１００および異種環境が改良される。
【００４２】
本明細書に記載の開示された方法および手順の全ては、１つまたは複数のコンピュータプログラム、モジュール、またはコンポーネントを使用して実装できることが理解されよう。これらのモジュールまたはコンポーネントは、ＲＡＭ、ＲＯＭ、フラッシュメモリ、磁気もしくは光学ディスク、光学メモリ、または他の記憶媒体などの揮発性または不揮発性メモリを含む、任意の従来のコンピュータ可読媒体または機械可読媒体上の一連のコンピュータ命令として提供されてもよい。命令は、ソフトウェアまたはファームウェアとして提供されてもよく、かつ／またはＡＳＩＣ、ＦＰＧＡ、ＤＳＰまたは他の同様のデバイスなどのハードウェアコンポーネントの全体または一部に実装されてもよい。命令は、１つまたは複数のプロセッサによって実行されるように構成することができ、１つまたは複数のプロセッサは、一連のコンピュータ命令を実行する場合に、開示された方法および手順の全部または一部の処理を実行し、または容易にする。
【００４３】
本明細書に記載した主題の態様は、単独で、あるいは本明細書に記載した１つまたは複数の他の態様と組み合わせて、有用であり得る。以下の記述を限定することなく、本開示の例示的な態様では、エッジデバイスは、複数の異なるエッジデバイスと通信するように構成された通信モジュールと、第１のタイプのデータを収集するように構成されたデータ収集デバイスと、データ収集デバイスによって収集されたデータを格納するように構成されたメモリと、機械学習モジュールと、グループ決定モジュールと、リーダー選定モジュールと、を含み、エッジデバイスは、所定のタスクに関連する第１のモデルを使用して、データ収集デバイスによって収集された第１のデータを分析し、予測、分類、クラスタリング、異常検出、および認識のうちの少なくとも１つを含む結果を出力し、結果の正確さに基づいて、所定のタスクに関連する第１の局所モデルを作成するために第１のモデルを更新し、エッジデバイスの第１の異種グループ内の少なくとも１つの他のエッジデバイスと通信し、エッジデバイスの第１の異種グループは、少なくとも第１のエッジデバイスおよび第２のエッジデバイスを含み、第１のエッジデバイスは第１のタイプのデータを収集して分析し、第２のエッジデバイスは異なる第２のタイプのデータを収集して分析し、エッジデバイスの第１の異種グループからエッジデバイスの第２の異種グループのメンバーシップを決定し、エッジデバイスの第２のグループは、エッジデバイスの第１の異種グループのサブセットであり、エッジデバイスの第２の異種グループからリーダーエッジデバイスを決定し、リーダーエッジデバイスから第１の局所モデルに対する要求を受信し、第１の局所モデルをリーダーエッジデバイスに送信し、リーダーエッジデバイスから所定のタスクに関連する混合モデルを受信し、混合モデルは、リーダーエッジデバイスが、複数の第１の局所モデルと少なくとも１つの異なるそれぞれの局所モデルとのミキシング演算を実行することによって作成され、第１の局所モデルを混合モデルに置き換えるように構成される。上記態様と組み合わせて使用することができる、本開示の別の例示的な態様によれば、第１のタイプのデータはビデオ画像データであり、第２のタイプのデータは速度データである。前述の態様のうちの任意の１つまたは複数と組み合わせて使用することができる、本開示の別の例示的な態様によれば、エッジデバイスはリーダーエッジデバイスとして選定される。前述の態様のうちの任意の１つまたは複数と組み合わせて使用することができる、本開示の別の例示的な態様によれば、エッジデバイスの第２の異種グループ内の各エッジデバイスは、それぞれの局所モデルを作成する。前述の態様のうちの任意の１つまたは複数と組み合わせて使用することができる、本開示の別の例示的な態様によれば、エッジデバイスの第２の異種グループは、異なるタイプの結果を出力する局所モデルを含む。前述の態様のうちの任意の１つまたは複数と組み合わせて使用することができる、本開示の別の例示的な態様によれば、異なるタイプの結果は異なるデータタイプを含む。前述の態様のうちの任意の１つまたは複数と組み合わせて使用することができる、本開示の別の例示的な態様によれば、異なるタイプの結果は異なる出力変数を含む。前述の態様のうちの任意の１つまたは複数と組み合わせて使用することができる、本開示の別の例示的な態様によれば、ランダムに選択されたエッジデバイスは、第２のグループのメンバーシップを決定する。前述の態様のうちの任意の１つまたは複数と組み合わせて使用することができる、本開示の別の例示的な態様によれば、第１の期間の後に、所定のタスクは新しいタスクに変更される。前述の態様のうちの任意の１つまたは複数と組み合わせて使用することができる、本開示の別の例示的な態様によれば、第１のモデルは固定構造を有する。前述の態様のうちの任意の１つまたは複数と組み合わせて使用することができる、本開示の別の例示的な態様によれば、エッジデバイスの第２の異種グループは、エッジデバイスの第１の異種グループの狭義のサブセットである。前述の態様のうちの任意の１つまたは複数と組み合わせて使用することができる、本開示の別の例示的な態様によれば、エッジデバイスは、ショッピングカートデバイスおよび監視カメラの一方である。前述の態様のうちの任意の１つまたは複数と組み合わせて使用することができる、本開示の別の例示的な態様によれば、エッジデバイスは自動車内に組み込まれる。前述の態様のうちの任意の１つまたは複数と組み合わせて使用することができる、本開示の別の例示的な態様によれば、エッジデバイスは現金自動預け払い機である。
【００４４】
前述の態様のうちの任意の１つまたは複数と組み合わせて使用することができる、本開示の別の例示的な態様によれば、コンピュータ可読媒体は命令を格納し、命令は、複数の異なるエッジデバイスと通信するように構成された通信モジュールと、第１のタイプのデータを収集するように構成されたデータ収集デバイスと、データ収集デバイスによって収集されたデータを格納するように構成されたメモリと、機械学習モジュールと、グループ決定モジュールと、リーダー選定モジュールと、を含むエッジデバイスによって実行された場合に、エッジデバイスに対して、所定のタスクに関連する第１のモデルを使用して、データ収集デバイスによって収集された第１のデータを分析させ、予測、分類、クラスタリング、異常検出、および認識のうちの少なくとも１つを含む結果を出力させ、結果の正確さに基づいて、所定のタスクに関連する第１の局所モデルを作成するために第１のモデルを更新させ、エッジデバイスの第１の異種グループ内の少なくとも１つの他のエッジデバイスと通信させ、エッジデバイスの第１の異種グループは、少なくとも第１のエッジデバイスおよび第２のエッジデバイスを含み、第１のエッジデバイスは第１のタイプのデータを収集して分析し、第２のエッジデバイスは異なる第２のタイプのデータを収集して分析し、エッジデバイスの第１の異種グループからエッジデバイスの第２の異種グループのメンバーシップを決定させ、エッジデバイスの第２のグループは、エッジデバイスの第１の異種グループのサブセットであり、エッジデバイスの第２の異種グループからリーダーエッジデバイスを決定させ、リーダーエッジデバイスから第１の局所モデルに対する要求を受信させ、第１の局所モデルをリーダーエッジデバイスに送信させ、リーダーエッジデバイスから所定のタスクに関連する混合モデルを受信させ、混合モデルは、リーダーエッジデバイスが、複数の第１の局所モデルと少なくとも１つの異なるそれぞれの局所モデルとのミキシング演算を実行することによって作成され、第１の局所モデルを混合モデルに置き換えさせる。
【００４５】
前述の態様のうちの任意の１つまたは複数と組み合わせて使用することができる、本開示の別の例示的な態様によれば、エッジデバイスによって実行される方法は、エッジデバイス内の通信モジュールによって、複数の異なるエッジデバイスと通信するステップと、データ収集デバイスによって、第１のタイプのデータを収集するステップと、データ収集デバイスによって収集されたデータをメモリに格納するステップと、所定のタスクに関連する第１のモデルを使用して、データ収集デバイスによって収集された第１のデータを分析するステップと、予測、分類、クラスタリング、異常検出、および認識のうちの少なくとも１つを含む結果を出力するステップと、結果の正確さに基づいて、所定のタスクに関連する第１の局所モデルを作成するために第１のモデルを更新するステップと、エッジデバイスの第１の異種グループ内の少なくとも１つの他のエッジデバイスと通信するステップであって、エッジデバイスの第１の異種グループは、少なくとも第１のエッジデバイスおよび第２のエッジデバイスを含み、第１のエッジデバイスは第１のタイプのデータを収集して分析し、第２のエッジデバイスは異なる第２のタイプのデータを収集して分析する、ステップと、エッジデバイスの第１の異種グループからエッジデバイスの第２の異種グループのメンバーシップを決定するステップであって、エッジデバイスの第２のグループは、エッジデバイスの第１の異種グループのサブセットである、ステップと、エッジデバイスの第２の異種グループからリーダーエッジデバイスを決定するステップと、リーダーエッジデバイスから第１の局所モデルに対する要求を受信するステップと、第１の局所モデルをリーダーエッジデバイスに送信するステップと、リーダーエッジデバイスから所定のタスクに関連する混合モデルを受信するステップであって、混合モデルは、リーダーエッジデバイスが、複数の第１の局所モデルと少なくとも１つの異なるそれぞれの局所モデルとのミキシング演算を実行することによって作成される、ステップと、第１の局所モデルを混合モデルに置き換えるステップと、を含む。前述の態様のうちの任意の１つまたは複数と組み合わせて使用することができる、本開示の別の例示的な態様によれば、第１のタイプのデータはビデオ画像データであり、第２のタイプのデータは速度データである。前述の態様のうちの任意の１つまたは複数と組み合わせて使用することができる、本開示の別の例示的な態様によれば、エッジデバイスはリーダーエッジデバイスとして選定される。前述の態様のうちの任意の１つまたは複数と組み合わせて使用することができる、本開示の別の例示的な態様によれば、エッジデバイスの第２の異種グループ内の各エッジデバイスは、それぞれの局所モデルを作成する。前述の態様のうちの任意の１つまたは複数と組み合わせて使用することができる、本開示の別の例示的な態様によれば、エッジデバイスの第２の異種グループは、異なるタイプの結果を出力する局所モデルを含む。
【００４６】
本明細書に記載した例示的な実施形態に対する様々な変更および修正は、当業者には明らかであることを理解されたい。そのような変更および修正は、本主題の趣旨および範囲から逸脱することなく、かつ意図する利点を損なうことなく行うことができる。したがって、そのような変更および修正は添付の特許請求の範囲によって包含されることが意図されている。
【図１】
2020123379.tif 000003
【図２】
2020123379.tif 000004
【図３Ａ】
2020123379.tif 000005
【図３Ｂ】
2020123379.tif 000006
【図４】
2020123379.tif 000007
【図５】
2020123379.tif 000008
【図６】
2020123379.tif 000009
【図７】
2020123379.tif 000010