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