IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 株式会社Preferred Networksの特許一覧

特許7253609デバイス、デバイスの制御方法及びプログラム
<>
  • 特許-デバイス、デバイスの制御方法及びプログラム 図1
  • 特許-デバイス、デバイスの制御方法及びプログラム 図2
  • 特許-デバイス、デバイスの制御方法及びプログラム 図3A
  • 特許-デバイス、デバイスの制御方法及びプログラム 図3B
  • 特許-デバイス、デバイスの制御方法及びプログラム 図4
  • 特許-デバイス、デバイスの制御方法及びプログラム 図5
  • 特許-デバイス、デバイスの制御方法及びプログラム 図6
  • 特許-デバイス、デバイスの制御方法及びプログラム 図7
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-03-29
(45)【発行日】2023-04-06
(54)【発明の名称】デバイス、デバイスの制御方法及びプログラム
(51)【国際特許分類】
   G06N 20/00 20190101AFI20230330BHJP
   G06F 16/9035 20190101ALI20230330BHJP
   G06F 16/908 20190101ALI20230330BHJP
【FI】
G06N20/00
G06F16/9035
G06F16/908
【請求項の数】 48
(21)【出願番号】P 2021211289
(22)【出願日】2021-12-24
(62)【分割の表示】P 2020076844の分割
【原出願日】2016-01-22
(65)【公開番号】P2022058415
(43)【公開日】2022-04-12
【審査請求日】2022-01-24
(31)【優先権主張番号】14/602,843
(32)【優先日】2015-01-22
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】515130201
【氏名又は名称】株式会社Preferred Networks
(74)【代理人】
【識別番号】100091487
【弁理士】
【氏名又は名称】中村 行孝
(74)【代理人】
【識別番号】100120031
【弁理士】
【氏名又は名称】宮嶋 学
(74)【代理人】
【識別番号】100118876
【弁理士】
【氏名又は名称】鈴木 順生
(74)【代理人】
【識別番号】100202429
【弁理士】
【氏名又は名称】石原 信人
(72)【発明者】
【氏名】ジャスティン、ビー.クレイトン
(72)【発明者】
【氏名】岡野原 大輔
(72)【発明者】
【氏名】西川 徹
(72)【発明者】
【氏名】比戸 将平
(72)【発明者】
【氏名】久保田 展行
(72)【発明者】
【氏名】大田 信行
(72)【発明者】
【氏名】得居 誠也
【審査官】加藤 優一
(56)【参考文献】
【文献】特開2014-228972(JP,A)
【文献】特開2005-227794(JP,A)
【文献】比戸将平,並列分散環境における機械学習技術の最新動向,電子情報通信学会誌,日本,一般社団法人電子情報通信学会,2015年01月01日,第98巻, 第1号,第54頁-第58頁
【文献】小田 哲, ほか3名,Jubatus:Big Dataのリアルタイム処理を可能にする分散処理技術,電子情報通信学会技術研究報告,日本,一般社団法人電子情報通信学会,2012年01月19日,第111巻, 第409号,第35頁-第40頁
(58)【調査した分野】(Int.Cl.,DB名)
G06N 10/00 -99/00
G16Y 10/00
G06F 16/9035
G06F 16/908
(57)【特許請求の範囲】
【請求項1】
少なくとも1つのメモリと、
少なくとも1つのプロセッサと、を備え、
前記少なくとも1つのプロセッサは、
複数の他デバイスから、第1モデルのパラメータと前記第1モデルの情報とを受信することと、
前記複数の他デバイスから受信した複数の前記第1モデルの情報に基づいて、少なくとも複数の前記第1モデルのパラメータのいずれかを用いて、第2モデルを生成することと、
を実行し、
前記複数の他デバイスには共通モデルが提供され、
前記第1モデルは、前記第1モデルのパラメータ及び前記第1モデルの情報の送信元の他デバイスがデータを用いて前記共通モデルのパラメータを更新することで生成したモデルであり、
前記少なくとも1つのプロセッサは、前記送信元の他デバイスによる前記第1モデルの生成のための、前記データの前記送信元の他デバイスへの送信をせず、
前記少なくとも1つのプロセッサは、前記第2モデルの生成のための、前記データの前記送信元の他デバイスからの受信をせず、
前記第1モデルの情報は、少なくとも、前記第1モデルの構造メタデータ、コンテキストメタデータ、又は、結果ログのいずれか1つの情報を含む、
デバイス。
【請求項2】
前記少なくとも1つのプロセッサは、更に、
前記複数の他デバイスの少なくとも1つの他デバイスに、前記第2モデルを送信すること、
を実行する、
請求項1に記載のデバイス。
【請求項3】
前記少なくとも1つのプロセッサは、更に、
前記第1モデルのパラメータの送信要求を、前記複数の他デバイスに送信すること、
を実行する、
請求項1又は請求項2に記載のデバイス。
【請求項4】
前記構造メタデータは、少なくとも、モデルタイプ、モデル構造、変数、パラメータ、又は、データタイプのいずれか1つを含み、
前記コンテキストメタデータは、少なくとも、モデル動作のコンテキスト状況、データ収集環境、モデル履歴、所定期間における結果の量、予測精度、デル安定性、モデル更新の数、モデル更新の分散、又は、地理的位置のいずれか1つを含み、
前記結果ログは、少なくとも、結果、又は、モデルに関する統計情報のいずれか1つを含む、
請求項1乃至請求項3のいずれか1項に記載のデバイス。
【請求項5】
前記少なくとも1つのプロセッサは、受信した複数の前記第1モデルのパラメータのうちの少なくとも一部を用いて前記第2モデルを生成する、
請求項1乃至請求項4のいずれか1項に記載のデバイス。
【請求項6】
前記少なくとも1つのプロセッサは、更に、
前記複数の他デバイスから受信した複数の前記第1モデルの情報に基づいて、受信した複数の前記第1モデルのパラメータのうち前記第2モデルの生成に用いるパラメータを決定すること、
を実行する、
請求項1乃至請求項5のいずれか1項に記載のデバイス。
【請求項7】
前記少なくとも1つのプロセッサは、更に、
データ分布の情報に基づいて、受信した複数の前記第1モデルのパラメータのうち前記第2モデルの生成に用いるパラメータを決定すること、
を実行する、
請求項1乃至請求項6のいずれか1項に記載のデバイス。
【請求項8】
前記データ分布の情報は、収集データストリームの類似性に関する情報を含む、
請求項7に記載のデバイス。
【請求項9】
前記少なくとも1つのプロセッサは、少なくとも複数の前記第1モデルのパラメータのいずれかを用いて、少なくとも列挙演算、平均化演算、遺伝的アルゴリズム演算、アンサンブル演算、又は、マージ演算のいずれか1つを実行することで前記第2モデルを生成する、
請求項1乃至請求項8のいずれか1項に記載のデバイス。
【請求項10】
前記第2モデルの生成方法は、少なくとも、グループのサイズ、前記第1モデルの数、要求精度、又は、自装置の計算能力のいずれか1つに基づいて決定される、
請求項1乃至請求項9のいずれか1項に記載のデバイス。
【請求項11】
前記共通モデルはグローバルモデルであり、
前記第1モデルは局所モデルである、
請求項1乃至請求項10のいずれか1項に記載のデバイス。
【請求項12】
前記複数の他デバイスは、異なる種類のデバイスを含む、
請求項1乃至請求項11のいずれか1項に記載のデバイス。
【請求項13】
前記複数の他デバイスのそれぞれは、前記データを収集するデータ収集デバイスを備えるデバイスである、
請求項1乃至請求項12のいずれか1項に記載のデバイス。
【請求項14】
前記少なくとも1つのプロセッサは、
複数の他デバイスから、第1モデルのパラメータと前記第1モデルの情報とを受信することと、
前記複数の他デバイスから受信した複数の前記第1モデルの情報に基づいて、少なくとも複数の前記第1モデルのパラメータのいずれかを用いて、第2モデルを生成することと、
を繰り返し実行する、
請求項1乃至請求項13のいずれか1項に記載のデバイス。
【請求項15】
前記繰り返しの期間は、少なくとも、前記データの速度、前記データの量、計算能力、又は、通信速度のいずれか1つに基づいて決定される、
請求項14記載のデバイス。
【請求項16】
前記少なくとも1つのプロセッサは、更に、
少なくとも前記複数の他デバイスに含まれる2以上の他デバイスから、第3モデルのパラメータと前記第3モデルの情報とを受信することと、
前記2以上の他デバイスから受信した複数の前記第3モデルの情報に基づいて、少なくとも複数の前記第3モデルのパラメータのいずれかを用いて、第4モデルを生成することと、
を実行し、
前記第3モデルは、前記第3モデルのパラメータ及び前記第3モデルの情報の送信元の他デバイスが第2のデータを用いて前記第2モデルのパラメータを更新することで生成したモデルである、
請求項2に記載、又は、請求項3乃至請求項15のうち請求項2に従属するいずれか1項に記載のデバイス。
【請求項17】
前記少なくとも1つのプロセッサは、更に、
前記複数の他デバイスに前記共通モデルを提供すること、
を実行する、
請求項1乃至請求項16のいずれか1項に記載のデバイス。
【請求項18】
前記少なくとも1つのプロセッサは、更に、
第3のデータを収集することと、
収集した前記第3のデータを、生成した前記第2モデルを用いて分析することと、
を実行する、
請求項1乃至請求項17のいずれか1項に記載のデバイス。
【請求項19】
前記少なくとも1つのプロセッサは、更に、
第3のデータを収集することと、
収集した前記第3のデータの分析に基づいて、前記共通モデルのパラメータを更新して第1モデルを生成することと、
を実行し、
前記少なくとも1つのプロセッサは、生成した前記第1モデルのパラメータと受信した少なくとも複数の前記第1モデルのパラメータのいずれかを用いて、前記第2モデルを生成する、
請求項1乃至請求項17のいずれか1項に記載のデバイス。
【請求項20】
前記第3のデータを収集するデータ収集デバイスを更に備える、
請求項18又は請求項19に記載のデバイス。
【請求項21】
自装置がサーバである、
請求項1乃至請求項17のいずれか1項に記載のデバイス。
【請求項22】
前記複数の他デバイスは、同一のグループに属する、
請求項1乃至請求項21のいずれか1項に記載のデバイス。
【請求項23】
前記グループのメンバーシップは動的に変化する、
請求項22に記載のデバイス。
【請求項24】
自装置が前記グループのリーダーデバイスである、
請求項22又は請求項23に記載のデバイス。
【請求項25】
前記グループは、所定のトリガイベントに基づいて構築される、
請求項22乃至請求項24のいずれか1項に記載のデバイス。
【請求項26】
少なくとも1つのメモリと、
少なくとも1つのプロセッサと、を備え、
前記少なくとも1つのプロセッサは、
共通モデルを用いて、データを分析することと、
前記分析に基づいて、前記共通モデルのパラメータを更新して第1モデルを生成することと、
前記第1モデルのパラメータ及び前記第1モデルの情報を第2のデバイスに送信することと、
を実行し、
少なくとも前記第1モデルのパラメータ及び第3のデバイスが前記共通モデルのパラメータを更新することで生成した第1モデルのパラメータは、前記第2のデバイスがモデルを生成するために利用され、
前記少なくとも1つのプロセッサは、前記第1モデルの生成のための、前記データの前記第2のデバイスからの受信をせず、
前記少なくとも1つのプロセッサは、前記第2のデバイスによる前記モデルの生成のための、前記データの前記第2のデバイスへの送信をせず、
前記第1モデルの情報は、少なくとも、前記第1モデルの構造メタデータ、コンテキストメタデータ、又は、結果ログのいずれか1つの情報を含む、
デバイス。
【請求項27】
前記少なくとも1つのプロセッサは、更に、
前記第1モデルのパラメータ及び前記第1モデルの情報の送信後に、前記第2のデバイスから前記モデルを受信すること、
を実行する、
請求項26に記載のデバイス。
【請求項28】
前記構造メタデータは、少なくとも、モデルタイプ、モデル構造、変数、パラメータ、又は、データタイプのいずれか1つを含み、
前記コンテキストメタデータは、少なくとも、モデル動作のコンテキスト状況、データ収集環境、モデル履歴、所定期間における結果の量、予測精度、デル安定性、モデル更新の数、モデル更新の分散、又は、地理的位置のいずれか1つを含み、
前記結果ログは、少なくとも、結果、又は、モデルに関する統計情報のいずれか1つを含む、
請求項26又は請求項27に記載のデバイス。
【請求項29】
前記少なくとも1つのプロセッサは、更に、
前記第1モデルのパラメータの送信要求を、前記第2のデバイスから受信すること、
を実行し、
前記少なくとも1つのプロセッサは、前記送信要求の受信後に前記第1モデルのパラメータを前記第2のデバイスに送信する、
請求項26乃至請求項28のいずれか1項に記載のデバイス。
【請求項30】
前記共通モデルはグローバルモデルであり、
前記第1モデルは局所モデルである、
請求項26乃至請求項29のいずれか1項に記載のデバイス。
【請求項31】
自装置と前記第3のデバイスは異なる種類のデバイスである、
請求項26乃至請求項30のいずれか1項に記載のデバイス。
【請求項32】
前記少なくとも1つのプロセッサは、更に、
前記第2のデバイスから受信した前記モデルを用いて、第2のデータを分析することと、
前記第2のデータの分析に基づいて、前記モデルのパラメータを更新して第3モデルを生成することと、
前記第3モデルのパラメータ及び前記第3モデルの情報を前記第2のデバイスに送信することと、
を実行し、
前記少なくとも1つのプロセッサは、前記第3モデルの生成のための、前記第2のデータの前記第2のデバイスからの受信をしない、
請求項27に記載、又は、請求項28乃至請求項31のうち請求項27に従属するいずれか1項に記載のデバイス。
【請求項33】
前記少なくとも1つのプロセッサは、更に、前記第2のデバイスから前記共通モデルを取得すること、を実行する、
請求項26乃至請求項32のいずれか1項に記載のデバイス。
【請求項34】
少なくとも自装置及び前記第3のデバイスは同じグループに所属する、
請求項26乃至請求項33のいずれか1項に記載のデバイス。
【請求項35】
前記グループは、少なくとも、地理的情報、又は、無線接続状況のいずれか1つに基づいて構築される、
請求項34に記載のデバイス。
【請求項36】
前記第2のデバイスは、サーバである、
請求項26乃至請求項35のいずれか1項に記載のデバイス。
【請求項37】
前記少なくとも1つのプロセッサは、他のデバイスを介して、前記第2のデバイスと通信する、
請求項26乃至請求項36のいずれか1項に記載のデバイス。
【請求項38】
前記少なくとも1つのプロセッサは、更に、
前記分析に基づいて、前記共通モデルを更新するか否かを決定すること、
を実行し、
前記少なくとも1つのプロセッサは、更新すると決定した場合に、前記第1モデルを生成する、
請求項26乃至請求項37のいずれか1項に記載のデバイス。
【請求項39】
前記データを収集するデータ収集デバイスを更に備える、
請求項26乃至請求項38のいずれか1項に記載のデバイス。
【請求項40】
自動運転機能を備えた自動車である、
請求項39に記載のデバイス。
【請求項41】
前記データ収集デバイスは、少なくとも、曲がりの鋭さ、道路の傾斜、道路のキャンバ、現在の速さ、速度、スリップ角、タイヤ舗装摩擦、自動車の重量、重量の分布、湿度、又は、温度のいずれかを1つの情報を取得する、
請求項40に記載のデバイス。
【請求項42】
前記共通モデルは、少なくとも、自動車の目標コーナリング速度を決定するタスク、ブレーキの制御、又は、危険な状態の警告のいずれか1つに用いられる、
請求項40又は請求項41に記載のデバイス。
【請求項43】
店舗内で使用されるデバイスであって、
前記共通モデルは、少なくとも、消費者への品目提案、又は、窃盗の認識のいずれか1つに用いられる、
請求項26乃至請求項39のいずれか1項に記載のデバイス。
【請求項44】
前記少なくとも1つのプロセッサは、前記共通モデルを用いて、少なくとも、カート内に置かれた品目、滞留時間、店舗を通る移動、通路の順序、バイパス通路、曜日、時刻、休日、又は、特別イベントのいずれか1つを分析することで前記消費者への品目提案を実行する、
請求項43に記載のデバイス。
【請求項45】
少なくとも1つのプロセッサにより、
複数の他デバイスから、第1モデルのパラメータと前記第1モデルの情報とを受信することと、
前記複数の他デバイスから受信した複数の前記第1モデルの情報に基づいて、少なくとも複数の前記第1モデルのパラメータのいずれかを用いて、第2モデルを生成することと、
を実行することを備える方法であって、
前記複数の他デバイスには共通モデルが提供され、
前記第1モデルは、前記第1モデルのパラメータ及び前記第1モデルの情報の送信元の他デバイスがデータを用いて前記共通モデルのパラメータを更新することで生成したモデルであり、
前記少なくとも1つのプロセッサは、前記送信元の他デバイスによる前記第1モデルの生成のための、前記データの前記送信元の他デバイスへの送信をせず、
前記少なくとも1つのプロセッサは、前記第2モデルの生成するための、前記データの前記送信元の他デバイスからの受信をせず、
前記第1モデルの情報は、少なくとも、前記第1モデルの構造メタデータ、コンテキストメタデータ、又は、結果ログのいずれか1つの情報を含む、
デバイスの制御方法。
【請求項46】
少なくとも1つのプロセッサにより、
共通モデルを用いて、データを分析することと、
前記分析に基づいて、前記共通モデルのパラメータを更新して第1モデルを生成することと、
前記第1モデルのパラメータ及び前記第1モデルの情報を第2のデバイスに送信することと、
を実行することを備える方法であって、
少なくとも前記第1モデルのパラメータ及び第3デバイスが前記共通モデルのパラメータを更新することで生成した第1モデルのパラメータは、前記第2のデバイスがモデルを生成するために利用され、
前記少なくとも1つのプロセッサは、前記第1モデルの生成のための、前記データの前記第2のデバイスからの受信をせず、
前記少なくとも1つのプロセッサは、前記第2のデバイスによる前記モデルの生成のための、前記データの前記第2のデバイスへの送信をせず、
前記第1モデルの情報は、少なくとも、前記第1モデルの構造メタデータ、コンテキストメタデータ、又は、結果ログのいずれか1つの情報を含む、
デバイスの制御方法。
【請求項47】
少なくとも1つのプロセッサに、
複数の他デバイスから、第1モデルのパラメータと前記第1モデルの情報とを受信することと、
前記複数の他デバイスから受信した複数の前記第1モデルの情報に基づいて、少なくとも複数の前記第1モデルのパラメータのいずれかを用いて、第2モデルを生成することと、
を実行させるプログラムであって、
前記複数の他デバイスには共通モデルが提供され、
前記第1モデルは、前記第1モデルのパラメータ及び前記第1モデルの情報の送信元の他デバイスがデータを用いて前記共通モデルのパラメータを更新することで生成したモデルであり、
前記少なくとも1つのプロセッサは、前記送信元の他デバイスによる前記第1モデルの生成のための、前記データの前記送信元の他デバイスへの送信をせず、
前記少なくとも1つのプロセッサは、前記第2モデルの生成するための、前記データの前記送信元の他デバイスからの受信をせず、
前記第1モデルの情報は、少なくとも、前記第1モデルの構造メタデータ、コンテキストメタデータ、又は、結果ログのいずれか1つの情報を含む、
プログラム。
【請求項48】
少なくとも1つのプロセッサに、
共通モデルを用いて、データを分析することと、
前記分析に基づいて、前記共通モデルのパラメータを更新して第1モデルを生成することと、
前記第1モデルのパラメータ及び前記第1モデルの情報を第2のデバイスに送信することと、
を実行させるプログラムであって、
少なくとも前記第1モデルのパラメータ及び第3デバイスが前記共通モデルのパラメータを更新することで生成した第1モデルのパラメータは、前記第2のデバイスがモデルを生成するために利用され、
前記少なくとも1つのプロセッサは、前記第1モデルの生成のための、前記データの前記第2のデバイスからの受信をせず、
前記少なくとも1つのプロセッサは、前記第2のデバイスによる前記モデルの生成のための、前記データの前記第2のデバイスへの送信をせず、
前記第1モデルの情報は、少なくとも、前記第1モデルの構造メタデータ、コンテキストメタデータ、又は、結果ログのいずれか1つの情報を含む、
プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
優先権主張
本出願は、2015年1月22日に出願された米国特許出願第14/602,843号の優先権を主張するものであり、その開示の全体は参照により本明細書に組み込まれる。
【背景技術】
【0002】
機械学習デバイスは、機械学習モデルを用いて、収集データを処理し、結果を出力する。機械学習デバイスはフィードバックを使用して、機械学習モデルを更新または改良することができる。例えば、機械学習デバイスは、回帰分析モデルを使用して予測を行い、その予測が正しかったかどうかを示すフィードバックに基づいて回帰分析モデルを更新することができる。様々なタイプの機械学習モデルが存在する(例えば、線形回帰モデル、単純ベイズ分類器)。機械学習モデルは、処理されるデータの量が大きくなり得、かつ/またはリアルタイムのデータ処理が望まれ得る「ビッグデータ」問題に対処するために一般的に使用される。
【発明の概要】
【課題を解決するための手段】
【0003】
一実施形態によれば、デバイスは、少なくとも1つのメモリと、少なくとも1つのプロセッサと、を備える。
前記少なくとも1つのプロセッサは、
複数の他デバイスから、第1モデルのパラメータと前記第1モデルの情報とを受信することと、
前記複数の他デバイスから受信した複数の前記第1モデルの情報に基づいて、少なくとも複数の前記第1モデルのパラメータのいずれかを用いて、第2モデルを生成することと、
を実行し、
前記複数の他デバイスには共通モデルが提供され、
前記第1モデルは、前記第1モデルのパラメータ及び前記第1モデルの情報の送信元の他デバイスがデータを用いて前記共通モデルのパラメータを更新することで生成したモデルであり、
前記少なくとも1つのプロセッサは、前記送信元の他デバイスによる前記第1モデルの生成のための、前記データの前記送信元の他デバイスへの送信をせず、
前記少なくとも1つのプロセッサは、前記第2モデルの生成のための、前記データの前記送信元の他デバイスからの受信をせず、
前記第1モデルの情報は、少なくとも、前記第1モデルの構造メタデータ、コンテキストメタデータ、又は、結果ログのいずれか1つの情報を含む。
【0004】
開示された方法および装置のさらなる特徴および利点は、以下の詳細な説明および図面に記載され、それらから明らかになるであろう。
【図面の簡単な説明】
【0005】
図1】本開示の例示的な実施形態による、エッジデバイスの一例のブロック図である。
図2】本開示の例示的な実施形態による例示的な機械学習モジュールのブロック図である。
図3A】本開示の例示的な実施形態による、エッジデバイスの異種グループを示す高レベルブロック図である。
図3B】本開示の例示的な実施形態による、エッジデバイスの異種グループを示すブロック図である。
図4】本開示の例示的な実施形態による、エッジデバイスの異種グループにおける機械学習の例示的なプロセスを示すフローチャートである。
図5】本開示の例示的な実施形態による、機械学習の例示的なプロセスを示すフローチャートである。
図6】本開示の例示的な実施形態による、混合モデルを生成するための例示的なプロセスを示すフローチャートである。
図7】本開示の例示的な実施形態による、エッジデバイスの異種グループにおける機械学習のための例示的なプロセスを示す流れ図である。
【発明を実施するための形態】
【0006】
図1は、本開示の例示的な実施形態による、エッジデバイス100の一例のブロック図である。例示的な実施形態では、エッジデバイス100はビデオカメラであってもよい。別の例示的な実施形態では、エッジデバイス100はショッピングカートであってもよい。エッジデバイス100は、他のデバイスとの通信、データ収集、機械学習を行うことができるデバイスである。例示的な実施形態では、エッジデバイス100は、中央サーバー、中間サーバー、データレポジトリ、ゲートウェイ、ルータなどを含む、データ接続されたデバイスの大規模な分散ネットワークのエッジ、すなわち最外層にある。エッジデバイス100は、記録デバイス(例えば、デジタルカメラ、ビデオカメラ、オーディオレコーダ)、都市管理デバイス(例えば、駐車センサ、交通センサ、水質デバイス)、車両(例えば、自動車、トラック)、身体センサ(例えば、活動センサ、バイタルサインセンサ、歩数計)、環境センサ(例えば、気象センサ、汚染センサ、空気品質センサ)、ウェアラブルコンピューティングデバイス(例えば、スマートウォッチ、眼鏡、衣類)、パーソナルコンピューティングデバイス(例えば、携帯電話、タブレット、ラップトップ)、ホームデバイス(例えば、家電製品、サーモスタット、照明システム、セキュリティシステム)、広告デバイス(例えば、ビルボード、情報キオスク)などを含む多種多様なデバイスを含んでもよい。エッジデバイス100は、通信モジュール102と、データ収集デバイス104と、メモリ106と、機械学習モジュール108と、グループ決定モジュール110と、リーダー選定モジュール112と、モデルミキシングモジュール114と、調整モジュール116と、を含むことができる。
【0007】
通信モジュール102は、同じタイプ(例えば、複数のビデオカメラ)または異なるタイプ(例えば、ビデオカメラおよびショッピングカート)の他のエッジデバイス100を含む他のデバイスと通信するように構成される。例えば、以下でさらに詳細に説明するように、通信モジュール102は、インターネット、もしくは任意の適切な広域ネットワーク、ローカルエリアネットワーク、ゲートウェイ、または他の通信チャネルもしくはネットワークを含む、1つまたは複数のネットワークもしくは通信チャネルを介して他のデバイスと通信するように構成されてもよい。例えば、通信モジュール102は、セルラーネットワーク(例えば、4G、3G、GSM)、無線ローカルエリアネットワーク(例えば、Wi-Fi)、衛星(例えば、VSAT)、または無線通信の任意の適切な形態(例えば、ブルートゥース、RFID、NFC、IrDA、Li-Fi)により用いられる複数のプロトコルを介して無線通信するように構成されてもよい。また、例えば、通信モジュール102は、別のエッジデバイス100に有線接続(例えば、イーサネット(登録商標)、DSL、USB、RS-232、同軸ケーブル)するように構成されてもよい。さらに、通信モジュール102は、例えば、タッチスクリーンディスプレイで実現されるグラフィカルユーザインターフェースを介して、ユーザと通信することができる。ユーザは、エッジデバイス100に特定のタスクを実行するよう要求し、かつ/またはエッジデバイス100から情報を受信することができる。したがって、通信モジュール102は、1つまたは複数の通信プロトコルを使用して1つまたは複数の通信インターフェースを介して通信するように構成されたハードウェアおよび/またはソフトウェアを含むことができる。
【0008】
データ収集デバイス104は、センサ、検出器、または実世界の特性(例えば、速度、加速度、ショッピングカート内の品目、手の動き、形状、温度、角度、音声認識、単語認識、トルク、スリップレベル)を表すデータのリアルタイム収集に適した任意のデバイスであってもよい。データ収集デバイス104は、連続するデータストリームを受信し、または周期的な基準(例えば、ミリ秒、秒、分毎)でデータを収集することができ、それは収集されるデータのタイプおよびデータストリームの変動性に一般的に依存することがある。データ収集デバイス104は、通常、特定のタイプのデータを収集するように具体的に構成された特定のハードウェアおよび/または物理的構造(例えば、画像センサ、加速度計、ジャイロスコープセンサ、温度計、高度計、ホール効果センサ、速度計、光検出器、流量センサ、ひずみゲージ、トルクセンサ、タコメータ、クリノメータ、マイクロフォン、磁力計、電圧計、電流計、オーム計、化学センサ、圧力センサ、降雨センサ、湿度計、ヒューミスタ、風速計、地震計、ガイガーカウンタなど)を含む。例示的な実施形態では、1つのエッジデバイス100は、異なるタイプのデータを収集する複数の異なるデータ収集デバイス104を含むことができる。データ収集デバイス104は、収集データをメモリ106に提供する。例示的な実施形態では、メモリ106は、ビデオ画像データ(例えば、VRAM)などの大量のデータを受け取り、格納するための専用メモリであってもよい。したがって、メモリ106は、例えば、エッジデバイス100の高スループットかつ低レイテンシ仕様を満たすために、タスク特有の特殊なハードウェアを有することができる。メモリ106は、バッファ、シフトレジスタなどの異なるメモリの階層を含むことができる。メモリ106は、収集データを一時的に格納するように構成されてもよいし、収集データが機械学習モジュール108にもはや必要でなくなると、上書きされてもよい。
【0009】
機械学習モジュール108は、データ収集デバイス104によって収集されて、メモリ106に格納されたデータを使用して、機械学習モデルを実行する。機械学習モジュール108は、収集データを入力として受け取り、収集データを用いて機械学習モデルを実行し、予測、分類、クラスタリング、異常検出、および/または認識を行い、結果として出力する。機械学習モデルは、結果を反復的に更新することができる。例えば、機械学習モデルは、メモリに格納された利用可能な収集データを全て使用して連続的に実行してもよく、連続的な結果または周期的な結果を生成してもよい。例えば、収集されるデータのボリュームおよび速度が比較的低い(低密度および/または低速)場合には、機械学習モデルは周期的にしか実行されず、各結果が出力された後一定期間休止してもよく、その間に新しいデータが収集される。各機械学習モデルは、所定のタスク(例えば、品目の予測、レジでの共謀窃盗の認識、捜索指令(BOLO)警告のための容疑者の認識、コーナリング速度の分類)に関係する。例えば、ショッピングカート・エッジデバイス100の機械学習モデルでは、所定のタスクは、品目を消費者に提案することであってもよい。消費者がショッピングカートを押しながら、食料雑貨店やショッピングの中を歩いている間に、ショッピングカートの機械学習モジュール108は、その品目を消費者に提案すればその消費者が最も購入しそうな品目に関する予測を出力することができる。この予測は、消費者のカート内の他の品目に基づくことができる。さらに、消費者の年齢、性別、人種および/または民族性などの追加の情報を用いて、どの品目が最も購入される可能性が高いかの予測を行うこともできる。例示的な実施形態では、機械学習モジュール108は、いくつかの機械学習モデルを含むことができ、各機械学習モデルは、サブセットまたはカテゴリ(例えば、40歳以上の男性消費者のカテゴリ)に固有であってもよく、その場合には、状況および機械学習モデルを特定するために使用される変数の数に応じて、1つの所定のタスクに対して2、4、8、または16の異なるモデルを選択することができる。
【0010】
図2は、本開示の例示的な実施形態による例示的な機械学習モジュール108のブロック図である。機械学習モジュール108は、インターフェースモジュール202、モデル選択モジュール204、および1つもしくは複数の機械学習モデル206を含むことができる。本明細書で説明するように、機械学習モデル206は、簡潔にするために単にモデル206と呼ぶことがある。インターフェースモジュール202は、機械学習モジュール108と、エッジデバイス100内の他のモジュールまたは構成要素(例えば、メモリ106、通信モジュール102)との間のインターフェースである。モデル選択モジュール204は、どの所定のタスクが分析されるかを含む情報を受信し、所定のタスクについて適切なモデル206(例えば、40歳以上の男性消費者)を選択するために、複数のモデル206から選択するための情報を含むことができる。図2に示すように、モデル1は所定のタスクAに関連し、モデル2、3および4は異なる所定のタスクBに関連し、モデル5は別の異なる所定のタスクCに関連する。例示的な実施形態では、エッジデバイス100はタスクを定期的に切り替えることができる。例えば、第1の所定のタスクは営業時間中に処理されてもよく、数時間後に第2の異なる所定のタスクが処理されてもよい。モデル206は、例えば、製造時に、エッジデバイス100に提供されてもよく、あるいは、新しいモデル206として、またはモデル206の更新されたバージョンとして、後で別のデバイスからエッジデバイス100にロードされてもよい。機械学習モデル206は、収集データを入力として処理して、モデル206の出力として結果を生成するように実行される実行可能コンポーネント210を含む。機械学習モデル206は、モデルのタイプ(例えば、線形分類器、線形またはロジスティック回帰モデル、決定木、クラスタリングモデル、ベイジアンモデル、ニューラルネットワーク)およびモデルの構造(例えば、パラメトリック固定構造または非パラメトリック、パラメータの数と構造、入力変数、出力変数、データ型、フィーチャ定義)などの構造メタデータ212を含む。構造メタデータ212は、モデル206が何であるか、およびモデル206が何をするかを識別するための任意の必要な情報を含むことができるので、モデル206は、以下により詳細に説明するように分散型機械学習に使用することができる。機械学習モデル206はまた、モデルが動作していたかまたは動作しているコンテキスト状況を記述することができるコンテキストメタデータ214(例えば、データ収集環境、モデル履歴、モデル安定性)を含むことができる。例示的な実施形態では、コンテキストメタデータは、ビデオカメラ・エッジデバイス100の地理的位置を示すことができ、ビデオカメラが暗い環境もしくは明るい環境、および/または屋内環境もしくは屋外環境で動作していることを示すことができる。機械学習モデル206は、結果ログ216を含み、これは、例えばある期間の結果または特定の数の結果を格納することができる。結果ログ216はまた、例えば、モデル206の分析に有用であり得る概略統計または他の情報を含むことができる。結果ログ216は、以前にメモリ106に格納されていたが、新しい収集データによって上書きされた収集データの要約を含むことができる。機械学習モデル206は、モデル206からの結果出力に対するフィードバックに基づいてモデル206を更新すべきかどうかを決定する更新モジュール218を含む。例えば、モデル206が正しい予測を行う場合には、これはモデルを更新すべきであることを示すものではないが、モデル206が誤った予測を行う場合には、これはモデルが改良され得ることを示す傾向がある。したがって、更新モジュール218は、内部分析に基づいて機械学習モデル206を更新することができ、更新する外部命令に基づいて更新することもできる。モデル206が更新モジュール218によって更新されると、モデル206は、モデル206が常駐する特定のエッジデバイス100に対して局所的であり、したがって、グローバルモデル206とは対照的に、局所モデル206と呼ぶことができる。製造業者は、新しいエッジデバイス100にグローバルモデル206を提供することができ、各エッジデバイス100は、それらのモデル206を更新して、グローバルモデル206とは異なる局所モデル206が得られる。局所モデル206は、グローバルモデル206が提供するよりも特定の環境においてより良い結果を提供するように、特定の環境に基づいて訓練することができる。
【0011】
グループ決定モジュール110は、どのエッジデバイス100が、そのグループのメンバーであるエッジデバイス100上の機械学習モデル206の分析に参加するグループを形成するかを決定する。グループメンバーシップは、エッジデバイス100間の地理的近接度に基づいてもよい。リーダー選定モジュール112は、どのエッジデバイス100がエッジデバイスのグループのリーダーとして機能すべきかを決定する。リーダーは、グループの全てのメンバーからの入力を受信することができる合意プロトコルを使用して選出することができる。モデルミキシングモジュール114は、リーダーエッジデバイス100によって、グループ内の異なるエッジデバイス100からの局所モデル206をミキシングして、混合モデル206を作成するために使用される。モデルミキシングモジュール114は、混合モデル206に応じていくつかの異なる技術を使用してモデル206をミキシングすることができる。調整モジュール116は、通信モジュール102、データ収集デバイス104、メモリ106、機械学習モジュール108、グループ決定モジュール110、リーダー選定モジュール112、およびモデルミキシングモジュール114のプロセスを調整することができる。エッジデバイス100は、中央処理ユニットを有することができ、様々な特定のタスク専用の1つまたは複数のさらなるプロセッサを有することもできる。各エッジデバイス100は、1つまたは複数のプロセッサ、メモリ、バスなどを使用することができる。また、通信モジュール102、データ収集デバイス104、メモリ106、機械学習モジュール108、グループ決定モジュール110、リーダー選定モジュール112、モデルミキシングモジュール114、および調整モジュール116の各々は、1つまたは複数のプロセッサ、メモリ、バスなどを使用することができる。通信モジュール102、データ収集デバイス104、メモリ106、機械学習モジュール108、グループ決定モジュール110、リーダー選定モジュール112、モデルミキシングモジュール114、および調整モジュール116のうちの1つまたは複数によって、プロセッサ、メモリ、および任意の他の構成要素が共有されてもよい。例示的な実施形態では、通信モジュール102、データ収集デバイス104、メモリ106、機械学習モジュール108、グループ決定モジュール110、リーダー選定モジュール112、モデルミキシングモジュール114、および調整モジュール116の各々は、互いのモジュールまたはコンポーネントとは異なる専用のハードウェアおよびソフトウェアを使用する。
【0012】
図2に示すエッジデバイス100は、センサを用いて物理的世界とインターフェースし、次いでセンサによって収集データを使用して、機械学習モデル206を自律的に実行し、機械学習モデル206を用いて実行される機械学習に関する他のデバイスと通信することができる。ショッピングカートの例に関して、エッジデバイス100は、エッジデバイス100の全ての構成要素および機能を一体的に含むショッピングカートであってもよいし、あるいはショッピングカートは、既存の標準ショッピングカートに固定されるように構成されたインストールされたエッジデバイス100を含んでもよい。したがって、例えば、食料品店は、通常のショッピングカートにエッジデバイス100を取り付けることができる。別の例示的な実施形態では、通常の自動車は、自動車内の既存のデータ収集デバイスを使用するソフトウェアモジュールをダウンロードすることによって、エッジデバイス100を形成するように適合された牽引制御システムを含むことができる。さらに、多種多様な異なるタイプのデバイスをエッジデバイス100(例えば、ショッピングカート、自動車、サーモスタット、GPSデバイス)に適合させることができ、したがって、エッジデバイス100が別の異なるタイプのエッジデバイス100と通信する際に、エッジデバイス100の異種グループを形成することができる。エッジデバイスの異種グループは、同じタイプのデバイスであって、同じタイプのデータ収集および同じタイプの機械学習を実行するエッジデバイス100のみを含む、エッジデバイス100の同種のグループとは異なっている。
【0013】
図3Aは、本開示の例示的な実施形態による、エッジデバイスの異種グループを示す高レベルブロック図である。異種グループ300は、両方とも同じタイプのエッジデバイス100(例えば、両方ともビデオカメラ302)である2つのエッジデバイス302a、302bを含む。異種グループ300はまた、それぞれ異なるタイプのデバイス100(例えば、サーモスタット1台、現金自動預け払い機1台、およびショッピングカート1台)である3つのエッジデバイス304、306、308をさらに含む。サーバー310は、ネットワーク312を介して1つまたは複数のエッジデバイス302a、302b、304、306、308と通信することができる。サーバー310は、1つまたは複数のエッジデバイス100と通信することができる。例示的な実施形態では、サーバー310は、1つまたは複数のエッジデバイス100および1つまたは複数の異なるサーバー(例えば、中央サーバー)と通信する中間サーバーである。例示的な実施形態では、サーバー310は、クラウドコンピューティングを実行する「クラウド」の一部であってもよい。サーバー310は、情報および/またはコマンドをエッジデバイス100に提供することができ、例えば局所モデル206の履歴および/または精度に関する情報を受信することができる。例えば、サーバー310は、製造業者の更新に基づいて、更新されたモデル206を提供することができる。サーバー310は、エッジデバイスと同じ機能の多くを実行することができるが、エッジデバイス100とは異なり、サーバー310は、データ収集デバイス104を使用してデータ収集を実行しない。ネットワーク312は、1つまたは複数のネットワークおよび/または通信経路を含むことができ、ピアツーピアネットワークとして構成することができる。例示的な実施形態では、異種グループ300は、任意のタイプのネットワーク312(例えば、LAN、WAN、Wi-Fi、BT、Z波、衛星、地上波など)内で構成することができ、任意の適切なネットワークトポロジ(例えば、メッシュ、バス、グリッド、リング、スター、ツリー、ライン)で構成することができる。
【0014】
図3Bは、本開示の例示的な実施形態による、エッジデバイスの異種グループを示すブロック図である。図3Bに示すように、異種グループ300は、エッジデバイス302a、302b、304、306、308a、308b、308cの半接続メッシュネットワークとして提供され、それは4つの異なるタイプのエッジデバイス(例えば、ビデオカメラ302、サーモスタット304、現金自動預け払い機306、およびショッピングカート308)を含む。本明細書で説明するように、エッジデバイス100を参照する場合に、2つの異なるタイプのエッジデバイス302、304は、異なる符号302、304(例えば、ビデオカメラとサーモスタット)、または同じタイプの2つのエッジデバイスは、同じタイプの複数の異なるエッジデバイス(例えば、2つのビデオカメラ302)が参照されていることを示す文字「a」および「b」を付した同じ符号302aおよび302bによって示すことができる。また、エッジデバイス100は、エッジデバイス100が同じタイプかまたは異なるタイプのエッジデバイス100であるかどうかを特定することなく、符号100で参照されてもよい。
【0015】
例示的な実施形態では、異種グループ300内で複数の異なるタイプのネットワーク通信(例えば、Wi-Fi、4G、BT、NFC、Li-Fi、IrDA)を使用することができるが、1つのタイプの通信しかできないエッジデバイス100が別のエッジデバイス100を有する異種グループ300に存在する可能性があり、それは両方の形式の通信が可能な仲介者として機能するエッジデバイス100を介してしか、異なるタイプの通信ができない。例示的な実施形態では、ネットワーク312は、無線モバイル・アドホック・メッシュ・ネットワーク(例えば、MANET、VANET、SPAN)であってもよい。例示的な実施形態では、ネットワーク312はスキャッタネットであってもよい。本明細書で説明するように、エッジデバイス100の異種グループ300は、簡潔にするために、単にグループ300と呼ぶことができる。グループ300は、しばしばグループ300内で変化を受けやすい。例えば、グループ300内のエッジデバイス100は、グループ300との通信を予期せず失う場合がある。例えば、エッジデバイス100は、電力を失うことがあり(例えば、プラグが抜かれる、および/またはバッテリが切れる)、干渉(例えば、山、雨)のために接続が制限されているかまたは接続されない領域に移動することがあり、あるいはユーザがスイッチを切ることもある。したがって、グループ300は、静的ではなく、むしろ、通常、異なるエッジデバイス100が自発的におよび/または予期せずにグループ300に出入りすることによって動的に変化する異種環境において、通常、動作している。例示的な実施形態では、本願で説明したように、異種グループ300は、ショッピングカート、自動車、監視カメラ、現金自動預け払い機、GPSデバイス、医療デバイス、ロボット、遠隔制御、煙検知器、ヘッドマウントディスプレイのうちの1つまたは複数を含むエッジデバイス100、あるいは任意の他のエッジデバイス100を有することができる。例示的な実施形態では、異種グループ300は、Internet of Things(IoT)の一部である複数のエッジデバイス100を含み、IoTは急速に成長しており、既に何十億ものデバイスを含んでいる。図3Bに示すように、エッジデバイス302aは、リーダーエッジデバイス302aとして指定されており、リーダーエッジデバイス302aは、グループ300のリーダーとして機能するデバイスであり、これについては後でさらに詳しく説明する。
【0016】
図4は、本開示の例示的な実施形態による、エッジデバイスの異種グループにおける機械学習の例示的なプロセスを示すフローチャートである。プロセス400は、図4に示すフローチャートを参照して説明しているが、プロセス400に関連する動作を実行する他の多くの方法を使用することができることが理解されよう。例えば、ブロックのうちのいくつかは順序が変更されてもよく、特定のブロックが他のブロックと組み合わされてもよく、また記載されたブロックのうちのいくつかは任意である。
【0017】
例示的なプロセス400は、機械学習モデルの実行から開始することができる(ブロック402)。例えば、エッジデバイス100は、機械学習モデル206を使用して画像データを分析して予測を行うことができる。エッジデバイス308がショッピングカートである場合の例示的な実施形態では、ショッピングカートによって実行されるモデル206は、品目を消費者に提案する所定のタスクに関連し得る。エッジデバイス302がビデオカメラである場合の例示的な実施形態では、ビデオカメラによって実行されるモデル206は、共謀窃盗の認識の所定のタスクに関連し得る。例示的な実施形態では、エッジデバイス100は、例えば、2つの異なるタスクに向けられた2つの異なる機械学習モデル206が同時に実行されている場合には、複数の機械学習モデル206を同時に実行する。2つの異なる機械学習モデル206は、同じ収集データを使用してもよく、または異なるデータ収集デバイス104(例えば、画像センサおよびマイクロフォン)から収集された異なるデータを使用してもよい。また、いくつかの機械学習モデル206は、異なるデータ収集デバイス104から収集された複数の異なるタイプのデータを使用することができる。
【0018】
例示的なプロセス400は、異種エッジデバイス間の通信を含む(ブロック404)。例えば、エッジデバイス100は、範囲内の様々な異なるタイプのエッジデバイス302、304、306、308との接続を求める定期的なピングメッセージを送信することができる。例示的な実施形態では、ビデオカメラおよびショッピングカートは、ショッピングカートがビデオカメラに近接したときに、例えば、チェックアウトレーンにおいて、消費者がショッピングカート内の商品の代金を支払っているときに通信することができる。例示的な実施形態では、範囲は、ピングメッセージの存続時間または中間デバイスを介したホップ数に基づいて設定される。例示的な実施形態では、その範囲は、信号電力、干渉など(例えば、電力クラスおよび干渉のない視線に基づく30フィートのブルートゥース範囲)によって規定される有効範囲に限定され得る。例示的な実施形態では、その範囲は地理的描写によって設定されてもよい。機械学習モデル206の実行および異種エッジデバイス100間の通信が、同時に発生することがあり得るので、エッジデバイス100は、既知のエッジデバイス100との通信を維持し、例えば、通信の範囲内で移動した新しく利用可能なエッジデバイス100との新たな接続を行い、その間にデータ収集デバイス104によって収集データの着信ストリーム上で機械学習モデル206を継続的に実行する。
【0019】
通信エッジデバイス100は、グループ300の構築を実行する(ブロック406)。例えば、グループ300のグループメンバーシップおよびリーダーが決定される。例示的な実施形態では、図3Bに示すように、エッジデバイス302a、302b、304、306、308a、308b、308c(例えば、ビデオカメラ、サーモスタット、現金自動預け払い機、およびショッピングカート)がグループ300のメンバーであると決定され、グループ300はリーダーエッジデバイス302aを一括して決定することができる。グループ300のメンバーは、異種グループ300内の分散型機械学習に関与してもよく、リーダーエッジデバイス302a(例えば、ビデオカメラ)は、グループ300の分散型機械学習を導くことができる。例えば、リーダーエッジデバイス302aは、異なるエッジデバイス(例えば、302aおよび302b)のモデル206をミキシングするべきかどうかを決定するために、グループ300と定期的に通信するための構造を決定することができる。また、グループ300は、サーバー310(例えば、中間サーバー)と通信することができ、サーバー310は、グループ300を監視し(例えば、モデル206の履歴およびミキシングに関する情報を記録する)、および/または更新されたモデル206をグループ300に提供することができる。例示的な実施形態では、サーバー310は、グループ300の構築に参加することができる。また、サーバー310は、多くの異なるグループ300を監視してもよく、局所モデル206の履歴および精度に関する情報を受信してもよい。例示的な実施形態では、グループメンバーシップおよびリーダーエッジデバイス302aの決定は、エッジデバイス100間の地理的近接度および/または接続信号強度に基づくことができる。
【0020】
混合モデルが生成される(ブロック408)。例えば、リーダー302aは、エッジデバイス100から局所モデル206を要求し、受信した局所モデル206をミキシングする。例示的な実施形態では、ビデオカメラであるリーダー302aは、2つのショッピングカートからの2つの局所モデル206をミキシングして、品目を消費者に提案することに関連する混合モデル206を生成する。さらに詳細に後述するように、リーダー302aは、どのモデル206がミキシング可能であるかを判定し、ミキシング可能なモデル206をミキシングすることが適切であるかどうかを判定することができる。
【0021】
混合モデルがグループに分配される(ブロック410)。例えば、リーダー302aは、混合モデル206をエッジデバイス100に送信し、局所モデル206を更新する。次いで、混合モデル206は、グループ300内のエッジデバイス100によって実装され得る(ブロック412)。例えば、エッジデバイス100は、その局所モデル206を混合モデル206に置き換える。例示的な実施形態では、ショッピングカートはそれぞれ、リーダー302aから受信された混合モデル206により消費者への品目を提案するための局所モデル206を置き換える。例示的なプロセス400は、設定された間隔で周期的に繰り返される進行中のプロセスであってもよい。例えば、ブロック402~412は、通常、30秒の期間にわたって発生し得るが、この期間の持続時間は、例えば、収集されるデータの速度および量(例えば、1秒、5分)、リーダー302aの計算能力、エッジデバイス100間の通信速度、必要とされるモデルミキシングの程度などに応じて短くなったり、長くなったりしてもよい。例えば、期間が1秒である場合には、収集データは数秒以内に非常に変化する可能性があり、モデル206が可能な限り正確であることが重要であり得る(例えば、自己運転機能を備えた自動車)。一方、期間が5分である場合には、収集データは、数分の経過にわたって比較的小さな変化を含むことがあるので、モデル206の精度は重要ではない可能性がある(例えば、駐車可能性の予測)。期間は、一般に、異種エッジデバイス100間の通信が維持されている間に機械学習モデル206が実行される第1のフェーズ(ブロック402および404)と、グループ300が構築され、グループ100内のエッジデバイスによってモデル206がミキシングされ、配信され、実装される第2のフェーズ(ブロック406~412)と、を含む。第1および第2のフェーズは、通常、オーバーラップしてもよく、第2のフェーズの開始は、同期またはタイムアウト期間を必要とする場合がある。通常、第1のフェーズは、期間の大部分を構成する。また、期間は、例えばグループ300内のエッジデバイス100の数、リーダー302aの計算能力に基づいて、イベントによってトリガされた場合に(例えば、消費者がチェックアウトするたびに、消費者のショッピングカートが第2のフェーズを開始してもよい)、モデル206の変更または更新を必要とする収集データの重要な変更に基づいて、動的に決定されてもよい。
【0022】
図5は、本開示の例示的な実施形態による、機械学習の例示的なプロセスを示すフローチャートである。プロセス500について、図5に示すフローチャートを参照して説明しているが、プロセス500に関連する動作を実行する他の多くの方法を使用することができることが理解されよう。例えば、ブロックのうちのいくつかは順序が変更されてもよく、特定のブロックが他のブロックと組み合わされてもよく、また記載されたブロックのうちのいくつかは任意である。
【0023】
例示的なプロセス500は、データ収集デバイスから収集データを受信することから開始することができる(ブロック502)。例えば、ショッピングカート内の品目を含むデータストリームがタグリーダから受信される。ショッピングカートは、タグリーダ(例えば、RFIDリーダー)および位置検出デバイス(例えば、GPSデバイス)などの複数のデータ収集デバイス104を含むことができる。例えば、買い物客が食料品店を移動すると、ショッピングカートに入れた品目を、タグリーダを使用して識別することができる。メモリ106は、どの品目がショッピングカートに置かれているか、およびショッピングカートが店舗内に位置しているかを示すデータを定期的に格納することができる。例えば、メモリ106は、0.5秒毎に現在の場所およびショッピングカート内の品目のリストを格納することができ、したがって、店舗全体にわたって買い物客の行動のログを作成することができる。例示的な実施形態では、店舗は、棚上の1,000個の異なる商品を追跡し、これらの品目の1つがショッピングカートに入れられると、その商品の有無を示すようにベクトルが更新される。例えば、1000個の品目のうちの品目3と5がショッピングカートに置かれると、1,000項のベクトルが<0,0,1,0,1,0,0,...,0>に更新され、店舗内の位置およびタイムスタンプと共に格納され得る。店舗内の全ての品目が、ショッピングカート内のタグリーダによって読み取り可能なタグ(例えば、RFIDタグ)を有さなければならないわけではないことを理解されたい。
【0024】
収集データは、所定のタスクに関連するモデルを用いて分析されてもよい(ブロック504)。例えば、ショッピングカートによって収集データストリームを分析して、品目の予測を行い、それを買い物客に提案することができる。例示的な実施形態では、モデル206は、買い物客に提案された場合に、所定の日にモデル206によって提案され得る所定の品目リストから購入される最も有望な品目である品目を予測することができる。例えば、買い物客に提案された品目は、高い利益率の品目であってもよいし、および/または過剰に在庫されているか間もなく期限切れの品目であってもよい。例示的な実施形態では、モデル206は、提案することができる3つの品目のリスト(例えば、宝くじチケット、ペストリートレイ、またはフラワーブーケ)を有することができる。モデル206は、カート内に置かれた品目、滞留時間(例えば、1つの場所で10秒以上)、店舗を通る移動(例えば、通路の順序およびバイパス通路)、曜日、時刻、休日または特別イベント(例えばスーパーボウル)などを分析することができる。例えば、収集データは、モデル206の実行可能コンポーネント210の入力変数として入力され、消費者が一定期間立ち止まる(例えば、買い物客が製品に興味を持っている、または決定している)滞留時間、品目がカートに置かれる順序、バイパスされる店の部分などを分析する。収集データは全て、モデル206によって分析されて、どの品目を買い物客に提案すべきかを予測することができる。例示的な実施形態では、モデル206は、単純ベイズ分類器を含むことができ、それは宝くじチケット、ペストリートレイ、およびフラワーブーケのそれぞれの購入確率を出力し、最も高い購入確率を有する品目を提案する品目とすることができる。上述したように、店舗内の全ての品目が、ショッピングカート内のタグリーダによって読み取り可能なタグ(例えば、RFIDタグ)を有さなければならないわけではないが、そのような品物は、品目を消費者に提案するためにモデル206によって考慮されなくてもよい。
【0025】
結果がモデルの分析に基づいて出力される(ブロック506)。例えば、実行可能コンポーネント210は、グローバルモデル206に基づいて、宝くじチケットを推薦することにより宝くじチケットを購入する可能性が最も高くなるという予測を行う。例えば、買い物客は、5つの品目をショッピングカートに入れ、次に実行可能コンポーネント210は、品目の購入確率を決定する(例えば、<宝くじチケット0.847>、<ペストリートレイ0.017>、<フラワーブーケ、0.136>)ことができる。したがって、モデル206は、宝くじチケットを買い物客に提案するべきであると予測する結果を出力することができる。例示的な実施形態では、通信モジュール102は、モデルから出力された結果に基づいて、例えばデジタル表示画面上に品目を提案することができる。また、例示的な実施形態では、提案した品目について消費者にクーポンを提供することもできる。モデル206によって出力される結果は、予測、分類、クラスタリング、異常検出、および/または認識を含むことができる。上述のように、メモリ106は、収集データを一時的に格納することができ、収集データが分析されて結果が出力されると、メモリ106は新しい収集データで上書きされる。例えば、メモリ106は、50ミリ秒毎、500ミリ秒毎、5秒毎、または5分毎に上書きされてもよい。
【0026】
結果の正確さがモデルによって判定される(ブロック508)。例えば、モデル206は、フィードバックを使用して、宝くじチケットが購入されたかどうかを判定する。例示的な実施形態では、ショッピングカートの通信モジュール102は、どの商品が購入されたかを示す情報を別のエッジデバイス100(例えば、レジ、ビデオ監視カメラ)から受信することができ、したがって、モデル206は、提案した品目が購入されたか購入されなかったかを判定することができる。場合によっては、エッジデバイス100は、出力された結果の正確さを判定するためのフィードバックを得ることができないことを理解されたい。
【0027】
このモデルは、所定のタスクに関連する局所モデルを作成するように更新される(ブロック510)。例えば、更新モジュール218は、グローバルモデル206のパラメータ値を変更して局所モデル206を作成する。例えば、消費者が宝くじチケットを購入することをショッピングカートが提案した後に宝くじチケットが購入されなかった場合には、更新モジュール218は、このフィードバックを訓練データとして使用して、モデル206のパラメータ値を更新することができる。局所モデル206は、比較的短時間の後に特定の環境に対して非常によく訓練され得る。環境が変化する場合には、モデル206は一般に、最適な結果を提供するために再度、通常は数回更新する必要がある。エッジデバイス100が動作する環境は、エッジデバイス100が異なる場所に移動するか、または環境が経時的に変化するか、またはこれらの両方の組み合わせのために変化し得る。
【0028】
上述のショッピングカートの例は単に例示的なものであり、モデル206は任意の適切な所定のタスクに関連し、所定のタスクに対処するための任意の適切なタイプのモデル206を含んでもよいことを理解されたい。例示的な実施形態では、モデル206は、食料品店におけるレジ係による共謀窃盗の認識に向けられてもよい。例えば、チェックアウトレーンに位置する監視ビデオカメラは、エッジデバイス100として動作することができる。ビデオカメラは、画像データのストリームを収集し、モデル206によって分析されて、レジ係の手の動きが、レジ係が消費者を呼び出すための品目を適切にスキャンしていないことを示していることを検出することができる。モデル206が、共謀窃盗が発生している、または発生しそうであると判断した場合には、または店の管理者にメッセージを送って、管理者が店の出口で消費者のバッグおよび領収書をチェックすることができる。消費者がスキャンされなかった品目を持っていたかどうかに基づいて、フィードバックをモデル206に提供することができ、フィードバックに基づいてモデルを更新することができる。したがって、更新された局所モデル206は、レジ係の品目をスキャンするスタイルに適応することができ、それは異なるレジ係の別のモデル206とは異なっていてもよい。
【0029】
別の例示的な実施形態では、モデル206は、自動車の目標コーナリング速度を決定する所定のタスクに関連してもよい。例えば、自動車は、予測される衝突に基づく自動制動、およびドライバへの警報または警告などの自己運転機能を含むことができる。例示的な実施形態では、自動車は、次に来るコーナー(例えば、道路のカーブまたはターン)を分析するためのビデオカメラなどのデータ収集デバイス104を含むエッジデバイス100であってもよい。データ収集デバイス104は、曲がりの鋭さ、道路の傾斜、および道路のキャンバ、現在の速さもしくは速度、スリップ角、タイヤ舗装摩擦、自動車の重量、重量の分布、湿度、温度などを決定するために使用されるデータストリームを提供することができる。モデル206は、次に来る各コーナーの目標速度を出力することができ、ブレーキを掛ける、または危険な状態をユーザに警告するなどのために自動車によって使用することができる。自動車内のデータ収集デバイス104(例えば、牽引制御システム)からコーナーを通って運転中に得られるフィードバック(例えば、タイヤスリップ、車輪の差)をモデル206に提供することができる。自動車が走行するにつれて、更新モジュール218はフィードバックを使用してモデル206を改良することができ、それは場所の変化(例えば、砂漠、山)、天候の変化(乾燥、雨、雪、風、暑さ、凍結)、重量の変化(例えば、乗客の乗り降りもしくは荷物の積み降ろし)、または他の任意の環境変化に基づいてもよい。
【0030】
図6は、本開示の例示的な実施形態による、混合モデルを生成するための例示的なプロセスを示すフローチャートである。プロセス600について、図6に示すフローチャートを参照して説明しているが、プロセス600に関連する動作を実行する他の多くの方法を使用することができることが理解されよう。例えば、ブロックのうちのいくつかは順序が変更されてもよく、特定のブロックが他のブロックと組み合わされてもよく、また記載されたブロックのうちのいくつかは任意である。
【0031】
例示的なプロセス600は、モデルに対する要求をエッジデバイスの異種グループに送信することから開始することができる(ブロック602)。例えば、リーダー302aは、局所モデル206に対する要求をグループ300にブロードキャストする。例示的な実施形態では、モデル206に対する要求は定期的に(例えば、30秒毎に)送信される。また、例示的な実施形態では、モデル206に対する要求は、ショッピングカートがチェックアウトレジスタにあるたびに、トリガイベントに応答して送信される。したがって、例示的なプロセス600は、規則的な周期的間隔または散発的に開始されてもよい。また、例示的な実施形態では、サーバー310(例えば、中間サーバー)は、モデル206に対する要求をグループ300内のエッジデバイス100に送信することができる。
【0032】
次に、グループからモデルを受信することができる(ブロック604)。例えば、リーダー302aは、グループ300内の異なるエッジデバイス302b、308a、308b、308c(例えば、ビデオカメラ、ショッピングカート)から異なる所定のタスク(例えば、共謀窃盗の認識、品目の提案)に関連するいくつかの異なる局所モデル206を受信する。モデル206は、構造メタデータ212、コンテキストメタデータ214、および結果ログ216を含むことができ、リーダー302aは、受信したモデル206をミキシングできるか、および/またはミキシングするべきかを決定するためにそれを使用することができる。
【0033】
モデルは、構造メタデータによってフィルタリングすることができる(ブロック606)。例えば、モデル206は、モデルタイプ(例えば、単純ベイズ分類器、線形回帰モデル)、モデル構造(例えば、パラメトリック/固定構造、非パラメトリック)、変数、パラメータ、データタイプなどによってフィルタリングされてもよい。例えば、同じタイプおよび構造の異なるモデル206は、異なるタスクに関連し、異なる出力変数(例えば、提案された品目、共謀窃盗の認識、速度(マイル/時))を有することができる。また、同じタイプおよび構造の異なるモデル206は、同じタスク(例えば、製造機器の誤動作検出)に関連するが、異なる入力変数(例えば、温度、振動、煙検出、ビデオ画像データ、音声データ)を有してもよい。さらに、同じタイプの入力変数および出力変数を有する異なるモデル206は、異なるタイプのモデル206であってもよいし、および/または異なる構造もしくはデータタイプを有してもよい。構造メタデータ212によるフィルタリングを使用して、モデル206をミキシングすることが望ましいかどうかを決定し、もしそうであれば、どのミキシング演算を用いてモデル206をミキシングすることができるかを決定することができる。例えば、モデル206をサブグループにフィルタリングすることができ、そのサブグループでは単一のサブグループ内のモデル206のみがミキシングされる。例えば、異なるまたは互換性のないデータタイプ(例えば、高精細度ビデオおよび低精細度ビデオ)である入力変数を使用するモデル206をミキシングすることは望ましくない場合がある。
【0034】
モデルは、コンテキストメタデータによってフィルタリングすることができる(ブロック608)。例えば、モデル206は、データ収集環境(例えば、屋外、屋内)、モデル履歴(例えば、期間内の結果の量、期間中の正しい予測および誤った予測)、および/またはモデルの安定性(例えば、期間内の更新の数、期間内の更新の分散)によってサブグループにフィルタリングすることができる。コンテキストメタデータ214によってモデル206をサブグループにフィルタリングすることは、モデル206をクラスタリングすること(例えば、K平均、ボトムアップ、GMM)を含むことができる。例示的な実施形態では、モデル206の各々によって出力された結果(例えば、共謀窃盗の認識)の量が、ある期間にわたって他のモデル206よりも有意に低かった(例えば、疎データ)かどうかに基づいて、モデル206をフィルタリングおよび/またはクラスタリングすることができる。
【0035】
モデルは、データ分布によってフィルタリングすることができる(ブロック610)。例えば、モデル206は、収集データストリームの類似性によってフィルタリングされる。例示的な実施形態では、2つのビデオカメラが共謀窃盗の認識のためのモデル206を実行しているが、収集データストリームは全く異なる場合があり得る。例えば、1つのエッジデバイス302bが、レジ係が積極的に品目をスキャンし、買い物客を呼び出すデータストリームを有することがあり、異なるエッジデバイス302aが、レジ係が現在作業していない閉鎖したレジスタのデータストリームを受信することがある。この場合、エッジデバイス302a、302bのモデル206は、構造メタデータ212およびコンテキストメタデータ214によって1つのサブグループにフィルタリングすることができるが、データ分布によるフィルタリングによって、これらのモデル206を異なるサブグループに配置することができる。したがって、たとえ2つのモデル206が同一の構造メタデータを有し、同じ所定のタスクに関連していても、モデル206が公開されたデータストリームは完全に無関係である可能性があり、この場合には、これらのモデル206をミキシングすることによって、モデル206を改良することができず、実際にはモデル206を劣化させるおそれがある。
【0036】
さらにフィルタリングまたはクラスタリングされないサブグループは、ミックスグループと呼ばれ、ミキシンググループはミキシングの準備が整っているモデル206を含む。コンテキストメタデータによるフィルタリングおよび/またはフィルタリングされたモデル206のクラスタリングが適切でないか、または必要でない場合がある。例えば、同じ店舗に全てのショッピングカートがある場合には、ショッピングカートは類似したデータ分布を有するデータを収集していると考えられ、したがってクラスタリングは不要であり得る。他方、グループ300内のショッピングカートが異なる店舗にある場合には、コンテキストメタデータ(例えば、店舗の場所)によるフィルタリングおよび/またはクラスタリングを実行することができる。また、例えば、メタデータによるフィルタリングおよびデータ配信に基づいて、サブグループ内に2つのモデル206のみが提供される場合には、これらの2つのモデル206をミックスグループにクラスタリングする必要はなくてもよい。
【0037】
モデルに対する適切なミキシング演算が決定される(ブロック612)。例えば、列挙演算によるミキシングは、ミックスグループ内の2つの局所モデル206に適切である。様々なミキシング演算が、ミキシングモデルに対して可能であり、ミキシングするモデル206の数、要求される精度レベル、リーダー302aの計算能力などに基づいて、異なるミキシング演算を使用することができる。モデルミキシングモジュール114は、平均化演算、遺伝的アルゴリズム演算(「GA演算」)、列挙演算、およびアンサンブル演算を行うことができる。例えば、アンサンブル演算を使用して、パラメトリック構造を持たないモデル206を別のモデルとミキシングすることができる。列挙演算ミックスグループのサイズが小さい場合には、最適精度を提供する列挙演算を使用することができる。ミックスグループのサイズが大きい場合は、GA演算または平均化演算を使用することができる。例示的な実施形態では、大きなサイズのミックスグループでは、リーダー302aのコンピュータ能力が高い場合には、GA演算を使用することができる。一方、リーダー302aの計算能力が低い場合には、平均化演算を使用することができる。
【0038】
モデルのミキシング演算が実行され、混合モデルが生成される(ブロック614)。例えば、リーダー302aは、列挙によって2つの局所モデル206をミキシングして、混合モデル206を作成する。別の例示的な実施形態では、食料品店は、買い物客に商品A、B、またはC(例えば、宝くじチケット、ペストリートレイ、またはフラワーブーケ)を提案する所定のタスクの10個の共通品目を追跡することができるショッピングカートを有する。例えば、ショッピングカートによって使用されるモデル206は、単純ベイズ分類器を含むことができ、店は、モデル206を実行する数百のショッピングカートを有することができ、モデル206は、例えば、過去15個のチェックアウトされたショッピングカートに基づいて、混合モデル206で定期的に更新することができる。例えば、モデルXは、カート1~15からなるショッピングカートのグループから最近生成され、モデルYは、カート16~30からなるショッピングカートの異なるグループから最近生成された。以下の表は、カート毎の単純化された例示的なデータを示し、10個の追跡されたアイテムのうちのどれが各ショッピングカートに置かれたか(1)、または各ショッピングカートに置かれなかったか(0)を含み、かつ、3つの提案した品目A、B、またはCのうちのどれが他の品目と併せて購入されたかを含む。
【表1】
【表2】
【0039】
上記の表1および表2に示すように、各モデルは、品目Aの5回の購入、品目Bの5回の購入、および品目Cの5回の購入に基づいている。しかし、モデルXとモデルYが基づいているデータストリームは異なるので、モデル206は、入力変数の同じセットに対して異なる結果を生成することができる。例えば、買い物客が品目2、品目6、品目8、品目9、および品目10をショッピングカートに入れたとすると、モデルXとモデルYは異なる品目を買い物客に提案するであろう。具体的には、例えば、モデルXは、単純ベイズ分類器を使用して、以下の購入確率を決定することができ、<宝くじチケット、0.847>、<ペストリートレイ、0.017>、<フラワーブーケ、0.136>、その結果、品目Aの宝くじチケットが提案される。モデルYは、表2に示すように異なる収集データを使用することに基づいて、以下の購入確率を決定することができ、<宝くじチケット、0.329>、<ペストリートレイ、0.153>、<フラワーブーケ、0.518>、その結果、品目Cのフラワーブーケが提案される。モデルYについては、品目Aの収集データ(例えば、品目1~10の合計11)は、品目BおよびCの各々について収集データ(例えば、両方とも品目1~10の合計25)と比較して比較的疎である。例えば、モデルXおよびモデルYは、平均化演算によるミキシングを使用してミキシングするのに適したものとして決定することができる。買い物客が品目2、品目6、品目8、品目9および品目10をショッピングカートに入れたとすると、モデルXおよびモデルYから生成された混合モデルは、品目Aの宝くじチケットを提案するであろう。また、マージ演算によるミキシングを使用して、モデルXとモデルYとをミキシングすることもでき、同様に、以下に示すように、品目Aの宝くじチケットを提案するであろう。
【表3】
【0040】
上述のように、表3は、モデルミキシングがモデル206から出力される結果にどのように影響を及ぼすかについての例示的なデータを示し、異なるミキシング演算がどのようにして同じモデル206(例えば、モデルXおよびモデルY)をミキシングするための異なる結果を生じ得るかを示す。
【0041】
図7は、本開示の例示的な実施形態による、エッジデバイスの異種グループにおける機械学習のための例示的なプロセスを示す流れ図である。プロセス700について、図7に示す流れ図を参照して説明しているが、プロセス700に関連する動作を実行する他の多くの方法を使用することができることが理解されよう。例えば、ブロックのうちのいくつかは順序が変更されてもよく、特定のブロックが他のブロックと組み合わされてもよく、また記載されたブロックのうちのいくつかは任意であってもよいし、あるいは異なるデバイスによって実行されてもよい。
【0042】
例示的なプロセス700では、データは、例えば、ネットワーク312を介して、エッジデバイス302a、302n、304a、304nの間を流れることができる。エッジデバイス302a、302n、304a、304nは、任意のタイプのエッジデバイス100であってもよい。4つの特定のエッジデバイス302a、302n、304a、304nについてのプロセスが4つの別々の列に示されているが、より多くのエッジデバイス100がプロセス700に関与してもよく、1つまたは複数のサーバー310がプロセス700に参加してもよい。例えば、エッジデバイス302nは、エッジデバイス302aと同じタイプの第2の、第10の、または第50のデバイスを表すことができる。同様に、エッジデバイス304nは、エッジデバイス304aと同じタイプの第3の、第20の、または第100のデバイスを表すことができる。通常、全てのエッジデバイス302a、302n、304a、304nが互いに直接通信することができるわけではないので、通信は中間エッジデバイス(例えば302n、304a)を介して、および/または他のデバイス(例えば、ルータ、ゲートウェイ、サーバー310)を介して行われる。また、プロセス700は、第1のフェーズ750および第2のフェーズ760を示す。第1のフェーズ750では、エッジデバイス302a、302n、304a、304nがモデル206を実行し、他のエッジデバイス302a、302n、304a、304nと接続して通信を維持し、第2のフェーズ760では、グループ構築とモデルミキシングが行われる。
【0043】
例示的なプロセス700は、エッジデバイス302aがモデルを実行することで開始することができる(ブロック702a)。同様に、エッジデバイス302nがモデルを実行しており(ブロック702b)、エッジデバイス304aがモデルを実行しており(ブロック702c)、エッジデバイス304nがモデルを実行している(ブロック702d)。実行モデルのいずれかまたは全ては、局所モデル206であってもよい。上述のように、実行モデル206は、収集データを分析して、結果を出力することができる。第1のフェーズ750は、例えば、エッジデバイス302aが90の結果(例えば、毎秒2つの結果)を出力することができる45秒の持続時間を有することができるが、異なるエッジデバイス(例えば、304a)は、例えば、モデル206に応じて、かつエッジデバイス(例えば、304a)によって収集データストリームに応じて、より多くの結果またはより少ない結果を出力することができる。エッジデバイス302aは、エッジデバイス302nにピングメッセージ704aを送って、最初に接続を行い、次に接続を維持することができる。さらに、ピングメッセージ704b、704cが、例えばエッジデバイス302n、304a、304nの間で送信される。プロセス700では例示的な通信のみが示され、例えば、エッジデバイス302aから304nへのピングメッセージの方向通信を含む、より多くの通信が行われてもよいことを理解されたい。
【0044】
エッジデバイス302nではトリガイベントが発生する(ブロック706)。例えば、トリガイベントは、ショッピングカート内の品目の販売が完了した後のチェックアウトレーン内のショッピングカートであってもよい。また、例えば、トリガイベントは、時間に基づくイベント(例えば、第1のフェーズ750が開始してから45秒後)であってもよく、タイマー満了によってトリガされてもよい。例示的な実施形態では、エッジデバイス302nは、複数の異なるトリガイベントを有するように構成されてもよい。
【0045】
エッジデバイス302nでトリガイベントが発生すると、そのエッジデバイス302nは、他のエッジデバイス302a、304a、304nとのグループ構築を開始し、グループメンバーシップおよびリーダーを決定することによって、第2のフェーズ760に入ることができる(ブロック708)。エッジデバイス302a、304a、304nはまた、グループメンバーシップおよびリーダー(ブロック710a、710b、710c)を決定してもよい。例えば、エッジデバイス302nは、構築情報712a、712b、712cを他のエッジデバイス302a、304a、304nに送信することができ、それはグループメンバーシップを確立し、グループ決定モジュール110を使用してリーダーを選ぶ合意プロトコルを実行するための要求を含む。例えば、全てのエッジデバイス302a、302n、304a、304nは、それらがグループメンバーシップを有するべきであると決定してもよい。しかしながら、例えば、1つまたは複数のエッジデバイスは、例えば、貧弱な無線接続が、第2のフェーズ760で失敗するか、または問題を引き起こす可能性が高い場合には、グループメンバーシップを拒否することができる。さらに、エッジデバイス302a、302n、304a、304nのそれぞれは、現在の第2のフェーズ760のための新しいリーダー302aを決定することができる。例えば、以前の第2のフェーズ760では、エッジデバイス304nがリーダーとして動作してもよかったが、エッジデバイス304nはその時点で処理能力が限られている可能性があるので、異なるリーダーが選出される。上述したように、グループメンバーシップの決定およびリーダーの決定は、両方とも多くの異なる方法で実行されてもよく、特定の決定方法は、エッジデバイス302a、302n、304a、304nによって動的に使用されてもよい。
【0046】
リーダー302aが決定されると、モデル716に対する要求がリーダーによってブロードキャストされ得る(ブロック714)。モデル716に対する要求は、エッジデバイス302nからエッジデバイス304aおよびエッジデバイス304nに送ることができる。全てのエッジデバイス302n、304a、304nがモデル716に対する要求を受信すると、エッジデバイス302n、304a、304nは、それらの局所モデル720a、720b、720cをリーダー302aに提供する(ブロック718a、718b、718c)。リーダー302aが局所モデル720a、720b、720cを得ると、リーダー302aはモデルミキシングモジュール114を使用してモデルミキシングプロセスを開始する。
【0047】
リーダー302aは、局所モデル720a、720b、720cをフィルタリングしてミキシングする(ブロック722)。例えば、リーダー302aは、構造メタデータによるフィルタリング、コンテキストメタデータによるフィルタリング、およびデータ分布によるフィルタリングを実行して、ミックスグループを作成することができる。また、リーダー302aは、受信した局所モデル720a、720b、720cのうちの1つまたは複数を用いて、それ自体の局所モデル206をフィルタリングしてもよい。次に、局所モデル720a、720b、720cは、適切なミキシング演算を使用してミキシングされる。例えば、局所モデル720b、720cがミキシングされ、リーダー302a自体の局所モデル206および局所モデル720cがミキシングされる。リーダー302aは、混合モデル726a、726b、726cをエッジデバイス302n、304a、304nに配信する(ブロック724)。
【0048】
エッジデバイス302nは、混合モデル726aを実装する(ブロック728a)。例えば、混合モデル726aは、1つのタスク(例えば、母集団の異なるセグメントについてのモデル)に関連してもよく、あるいは複数の異なるタスク(例えば、共謀窃盗の認識またはBOLO警報)に関連してもよい。上述したように、エッジデバイス302nは、タスクを定期的に(例えば、時間間隔またはコマンドで)切り替えることができる。例えば、エッジデバイス302nは、共謀窃盗の認識(例えば、レジ係が品目をスキャンしているとき)とBOLO警報(例えば、チェックアウトレーンが空である)とを切り替えることができる。
【0049】
エッジデバイス304aは、混合モデル726bを実装する(ブロック728b)。また、エッジデバイス304nは、混合モデル726cを実装する(ブロック728c)。さらに、リーダー302aは、リーダー自体の局所モデル206のうちの1つが別のエッジデバイス302nからの局所モデル720cとミキシングされた場合には、混合モデル206を実装することができる。また、エッジデバイス302a、304a、304nは、リーダー302aによって受信された他のモデル720a、720b、720cおよびフィルタリングプロセスによっては、ミキシングに適したモデルがない可能性もあるので、混合モデル726a、726b、726cを受信しない場合があることを理解されたい。第2のフェーズ760は、例えば15秒の持続時間を有することができ、その後、第1のフェーズ750が再び開始する。
【0050】
以前に存在していた機械学習方法は、一般的には、同種の環境からのデータストリームを処理するのに有用であった。しかし、我々は、環境の変化が一般的である異種環境で利用可能なデータの量と速度を既存の方法では適切に処理できないことを認識している。より高度で高速なコンピュータおよび/またはネットワークハードウェアでこの問題に対処することは不十分であることが判明しており、それは、技術的に最も高度なコンピュータハードウェア、ソフトウェア、およびネットワーキング機能であっても、異種環境(例えば、接続が変化する異なるタイプのエッジデバイス100)における変化を処理することはできるが、我々が必要とする速度でデータ量を処理するのに適していないためである。換言すれば、既存の機械学習技術は、一般に、異種環境における機械学習を処理するには不十分である。一方、本明細書で提案するようなエッジデバイス100による異種環境における機械学習は、従来の方法およびシステムを用いては不可能であった異なる技術的アプローチをとる。したがって、本明細書に記載の方法およびシステムを使用することによって、エッジデバイス100および異種環境が改良される。
【0051】
本明細書に記載の開示された方法および手順の全ては、1つまたは複数のコンピュータプログラム、モジュール、またはコンポーネントを使用して実装できることが理解されよう。これらのモジュールまたはコンポーネントは、RAM、ROM、フラッシュメモリ、磁気もしくは光学ディスク、光学メモリ、または他の記憶媒体などの揮発性または不揮発性メモリを含む、任意の従来のコンピュータ可読媒体または機械可読媒体上の一連のコンピュータ命令として提供されてもよい。命令は、ソフトウェアまたはファームウェアとして提供されてもよく、かつ/またはASIC、FPGA、DSPまたは他の同様のデバイスなどのハードウェアコンポーネントの全体または一部に実装されてもよい。命令は、1つまたは複数のプロセッサによって実行されるように構成することができ、1つまたは複数のプロセッサは、一連のコンピュータ命令を実行する場合に、開示された方法および手順の全部または一部の処理を実行し、または容易にする。
【0052】
本明細書に記載した主題の態様は、単独で、あるいは本明細書に記載した1つまたは複数の他の態様と組み合わせて、有用であり得る。以下の記述を限定することなく、本開示の例示的な態様では、エッジデバイスは、複数の異なるエッジデバイスと通信するように構成された通信モジュールと、第1のタイプのデータを収集するように構成されたデータ収集デバイスと、データ収集デバイスによって収集データを格納するように構成されたメモリと、機械学習モジュールと、モデルミキシングモジュールと、を含み、エッジデバイスは、第1の所定のタスクに関連する第1のモデルを使用して、データ収集デバイスによって収集された第1のデータを分析し、予測、分類、クラスタリング、異常検出、および認識のうちの少なくとも1つを含む結果を出力し、結果の正確さに基づいて、第1の所定のタスクに関連する第1の局所モデルを作成するために第1のモデルを更新し、エッジデバイスの異種グループ内の少なくとも1つの他のエッジデバイスと通信し、エッジデバイスの異種グループは、少なくとも第1のエッジデバイスおよび第2のエッジデバイスを含み、第1のエッジデバイスは第1のタイプのデータを収集して分析し、第2のエッジデバイスは異なる第2のタイプのデータを収集して分析し、局所モデルに対する要求をエッジデバイスの異種グループに送信し、エッジデバイスの異種グループから第1の複数の局所モデルを受信し、構造メタデータによって第1の複数の局所モデルをフィルタリングし、第1の複数の局所モデルは、第2の複数の局所モデルを含み、第2の複数の局所モデルの各々は第2の所定のタスクに関連し、第2の複数の局所モデルのミキシング演算を実行して、第2の所定のタスクに関連する混合モデルを生成し、混合モデルをエッジデバイスの異種グループに送信するように構成される。上記態様と組み合わせて使用することができる、本開示の別の例示的な態様によれば、第1のタイプのデータはビデオ画像データであり、第2のタイプのデータは速度データである。前述の態様のうちの任意の1つまたは複数と組み合わせて使用することができる、本開示の別の例示的な態様によれば、エッジデバイスは、コンテキストメタデータによって複数の局所モデルをフィルタリングするようにさらに構成される。前述の態様のうちの任意の1つまたは複数と組み合わせて使用することができる、本開示の別の例示的な態様によれば、エッジデバイスは、データ分布によって複数の局所モデルをフィルタリングするようにさらに構成される。前述の態様のうちの任意の1つまたは複数と組み合わせて使用することができる、本開示の別の例示的な態様によれば、エッジデバイスは、複数の局所モデルをクラスタリングするようにさらに構成される。前述の態様のうちの任意の1つまたは複数と組み合わせて使用することができる、本開示の別の例示的な態様によれば、ミキシング演算は、複数の局所モデルのグループのサイズおよびエッジデバイスのコンピュータ能力を用いて決定される。前述の態様のうちの任意の1つまたは複数と組み合わせて使用することができる、本開示の別の例示的な態様によれば、ミキシング演算は平均化演算である。前述の態様のうちの任意の1つまたは複数と組み合わせて使用することができる、本開示の別の例示的な態様によれば、ミキシング演算は遺伝的アルゴリズム演算である。前述の態様のうちの任意の1つまたは複数と組み合わせて使用することができる、本開示の別の例示的な態様によれば、ミキシング演算は列挙演算である。前述の態様のうちの任意の1つまたは複数と組み合わせて使用することができる、本開示の別の例示的な態様によれば、ミキシング演算はアンサンブル演算である。前述の態様のうちの任意の1つまたは複数と組み合わせて使用することができる、本開示の別の例示的な態様によれば、第1の所定のタスクは、第2の所定のタスクと同じタスクである。前述の態様のうちの任意の1つまたは複数と組み合わせて使用することができる、本開示の別の例示的な態様によれば、エッジデバイスは、第1の局所モデルを混合モデルに置き換えるようにさらに構成される。前述の態様のうちの任意の1つまたは複数と組み合わせて使用することができる、本開示の別の例示的な態様によれば、第1の複数の局所モデルは、第2の複数の局所モデルとは異なる第3の複数の局所モデルを含み、エッジデバイスは、第3の複数の局所モデルのミキシング演算を実行して、第2の所定のタスクとは異なる第3の所定のタスクに関連する第2の混合モデルを生成するようにさらに構成される。前述の態様のうちの任意の1つまたは複数と組み合わせて使用することができる、本開示の別の例示的な態様によれば、エッジデバイスは、ショッピングカートデバイスおよび監視カメラの一方である。前述の態様のうちの任意の1つまたは複数と組み合わせて使用することができる、本開示の別の例示的な態様によれば、エッジデバイスは自動車内に組み込まれる。前述の態様のうちの任意の1つまたは複数と組み合わせて使用することができる、本開示の別の例示的な態様によれば、エッジデバイスは現金自動預け払い機である。
【0053】
前述の態様のうちの任意の1つまたは複数と組み合わせて使用することができる、本開示の別の例示的な態様によれば、コンピュータ可読媒体は命令を格納し、命令は、複数の異なるエッジデバイスと通信するように構成された通信モジュールと、第1のタイプのデータを収集するように構成されたデータ収集デバイスと、データ収集デバイスによって収集データを格納するように構成されたメモリと、機械学習モジュールと、モデルミキシングモジュールと、を含むエッジデバイスによって実行された場合に、エッジデバイスに対して、第1の所定のタスクに関連する第1のモデルを使用して、データ収集デバイスによって収集された第1のデータを分析させ、予測、分類、クラスタリング、異常検出、および認識のうちの少なくとも1つを含む結果を出力させ、結果の正確さに基づいて、第1の所定のタスクに関連する第1の局所モデルを作成するために第1のモデルを更新させ、エッジデバイスの異種グループ内の少なくとも1つの他のエッジデバイスと通信させ、エッジデバイスの異種グループは、少なくとも第1のエッジデバイスおよび第2のエッジデバイスを含み、第1のエッジデバイスは第1のタイプのデータを収集して分析し、第2のエッジデバイスは異なる第2のタイプのデータを収集して分析し、局所モデルに対する要求をエッジデバイスの異種グループに送信させ、エッジデバイスの異種グループから第1の複数の局所モデルを受信させ、構造メタデータによって第1の複数の局所モデルをフィルタリングさせ、第1の複数の局所モデルは、第2の複数の局所モデルを含み、第2の複数の局所モデルの各々は第2の所定のタスクに関連し、第2の複数の局所モデルのミキシング演算を実行して、第2の所定のタスクに関連する混合モデルを生成させ、混合モデルをエッジデバイスの異種グループに送信させる。
【0054】
前述の態様のうちの任意の1つまたは複数と組み合わせて使用することができる、本開示の別の例示的な態様によれば、エッジデバイスによって実行される方法は、エッジデバイス内の通信モジュールによって、複数の異なるエッジデバイスと通信するステップと、データ収集デバイスにより第1のタイプのデータを収集するステップと、データ収集デバイスによって収集データをメモリに格納するステップと、第1の所定のタスクに関連する第1のモデルを使用して、データ収集デバイスによって収集された第1のデータを分析するステップと、予測、分類、クラスタリング、異常検出、および認識のうちの少なくとも1つを含む結果を出力するステップと、結果の正確さに基づいて、第1の所定のタスクに関連する第1の局所モデルを作成するために第1のモデルを更新するステップと、エッジデバイスの異種グループ内の少なくとも1つの他のエッジデバイスと通信するステップであって、エッジデバイスの異種グループは、少なくとも第1のエッジデバイスおよび第2のエッジデバイスを含み、第1のエッジデバイスは第1のタイプのデータを収集して分析し、第2のエッジデバイスは異なる第2のタイプのデータを収集して分析する、ステップと、局所モデルに対する要求をエッジデバイスの異種グループに送信するステップと、エッジデバイスの異種グループから第1の複数の局所モデルを受信するステップと、構造メタデータによって第1の複数の局所モデルをフィルタリングするステップであって、第1の複数の局所モデルは、第2の複数の局所モデルを含み、第2の複数の局所モデルの各々は第2の所定のタスクに関連する、ステップと、第2の複数の局所モデルのミキシング演算を実行して、第2の所定のタスクに関連する混合モデルを生成するステップと、混合モデルをエッジデバイスの異種グループに送信するステップと、を含む。前述の態様のうちの任意の1つまたは複数と組み合わせて使用することができる、本開示の別の例示的な態様によれば、方法は、コンテキストメタデータによって複数の局所モデルをフィルタリングするステップをさらに含む。前述の態様のうちの任意の1つまたは複数と組み合わせて使用することができる、本開示の別の例示的な態様によれば、方法は、データ分布によって複数の局所モデルをフィルタリングするステップをさらに含む。
【0055】
本明細書に記載した例示的な実施形態に対する様々な変更および修正は、当業者には明らかであることを理解されたい。そのような変更および修正は、本主題の趣旨および範囲から逸脱することなく、かつ意図する利点を損なうことなく行うことができる。したがって、そのような変更および修正は添付の特許請求の範囲によって包含されることが意図されている。
図1
図2
図3A
図3B
図4
図5
図6
図7