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

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

▶ 株式会社富士通ゼネラルの特許一覧

特許7567297選択プログラム、情報処理装置および制御方法
<>
  • 特許-選択プログラム、情報処理装置および制御方法 図1
  • 特許-選択プログラム、情報処理装置および制御方法 図2
  • 特許-選択プログラム、情報処理装置および制御方法 図3
  • 特許-選択プログラム、情報処理装置および制御方法 図4
  • 特許-選択プログラム、情報処理装置および制御方法 図5
  • 特許-選択プログラム、情報処理装置および制御方法 図6
  • 特許-選択プログラム、情報処理装置および制御方法 図7
  • 特許-選択プログラム、情報処理装置および制御方法 図8
  • 特許-選択プログラム、情報処理装置および制御方法 図9
  • 特許-選択プログラム、情報処理装置および制御方法 図10
  • 特許-選択プログラム、情報処理装置および制御方法 図11
  • 特許-選択プログラム、情報処理装置および制御方法 図12
  • 特許-選択プログラム、情報処理装置および制御方法 図13
  • 特許-選択プログラム、情報処理装置および制御方法 図14
  • 特許-選択プログラム、情報処理装置および制御方法 図15
  • 特許-選択プログラム、情報処理装置および制御方法 図16
  • 特許-選択プログラム、情報処理装置および制御方法 図17
  • 特許-選択プログラム、情報処理装置および制御方法 図18
  • 特許-選択プログラム、情報処理装置および制御方法 図19
  • 特許-選択プログラム、情報処理装置および制御方法 図20
  • 特許-選択プログラム、情報処理装置および制御方法 図21
  • 特許-選択プログラム、情報処理装置および制御方法 図22
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-10-07
(45)【発行日】2024-10-16
(54)【発明の名称】選択プログラム、情報処理装置および制御方法
(51)【国際特許分類】
   G06Q 50/10 20120101AFI20241008BHJP
   G06Q 10/00 20230101ALI20241008BHJP
   G06F 9/50 20060101ALI20241008BHJP
【FI】
G06Q50/10
G06Q10/00
G06F9/50 150A
【請求項の数】 5
(21)【出願番号】P 2020146476
(22)【出願日】2020-09-01
(65)【公開番号】P2022041339
(43)【公開日】2022-03-11
【審査請求日】2023-06-08
(73)【特許権者】
【識別番号】000006611
【氏名又は名称】株式会社富士通ゼネラル
(74)【代理人】
【識別番号】110002147
【氏名又は名称】弁理士法人酒井国際特許事務所
(72)【発明者】
【氏名】石田 勉
【審査官】牧 裕子
(56)【参考文献】
【文献】特開2020-009290(JP,A)
【文献】特開2017-068710(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06Q 10/00 - 99/00
G06F 9/50
(57)【特許請求の範囲】
【請求項1】
コンピュータに、
端末の処理能力を含む識別情報を前記端末から取得し、
所定の単位時間におけるユーザの状態を前記端末から取得し、
前記状態の時系列な推移であるユーザ状態推移を示す情報をクラスタリングすることによって前記ユーザ状態推移の複数のパターンである複数のユーザ状態推移パターンを生成し、
前記生成したユーザ状態遷移パターンから、前記端末の処理能力に応じたのユーザ状態推移パターンを選択し、
前記選択したユーザ状態推移パターンを前記端末に送信する、
処理を実行させることを特徴とする選択プログラム。
【請求項2】
前記選択する処理は、
前記端末の処理能力が高いほど、前記端末に配信する前記ユーザ状態推移パターンの数が多くなるように、複数のユーザ状態推移パターンの中からユーザ状態推移パターンを選択する、
処理を含むことを特徴とする請求項1に記載の選択プログラム。
【請求項3】
前記選択する処理は、
前記複数のユーザ状態推移パターンの数が上限数を超えるときに、前記複数のユーザ状態推移パターンの各々について、特徴の数を算出し、
前記複数のユーザ状態推移パターンの中から、前記特徴の数が大きい方から前記上限数だけのユーザ状態推移パターンを特定する、処理を含み、
特定した前記ユーザ状態推移パターンを前記端末に配信する、
処理を更に実行させることを特徴とする請求項2に記載の選択プログラム。
【請求項4】
端末の処理能力を含む識別情報を前記端末から取得する取得部と、
所定の単位時間におけるユーザの状態を前記端末から取得する前記取得部と、
前記状態の時系列な推移であるユーザ状態推移を示す情報をクラスタリングすることによって得られる前記ユーザ状態推移の複数のパターンである複数のユーザ状態推移パターンを生成する生成部と、
前記生成したユーザ状態推移パターンから、前記端末の処理能力に応じたのユーザ状態推移パターンを選択する選択部と、
前記選択したユーザ状態推移パターンを前記端末に送信する送信部と、
を有することを特徴とする情報処理装置。
【請求項5】
コンピュータ
端末の処理能力を含む識別情報を前記端末から取得し、
所定の単位時間におけるユーザの状態を前記端末から取得し、
前記状態の時系列な推移であるユーザ状態推移を示す情報をクラスタリングすることによって前記ユーザ状態推移の複数のパターンである複数のユーザ状態推移パターンを生成し、
前記生成したユーザ状態遷移パターンから、前記端末の処理能力に応じたのユーザ状態推移パターンを選択し、
前記選択したユーザ状態推移パターンを前記端末に送信する、
処理を実行することを特徴とする制御方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、選択プログラム、情報処理装置および制御方法に関する。
【背景技術】
【0002】
近年、IoT(Internet of Things)の進展にともなって、エンドデバイスが生み出すデータの量が増加している。これに伴い、全てのデータの処理やエンドデバイスの制御を情報処理装置(例えばクラウドサーバ)側で行うことが難しくなってきている。そこで、情報処理装置だけでなくエンドデバイスも処理の一端を担うエッジコンピューティングに注目が集まっている。
【0003】
エッジコンピューティングは、例えば、情報処理装置と、エンドデバイスである複数のエッジ端末とから構成される。情報処理装置と、エッジ端末の双方で分散処理を行うことで、情報処理装置の負荷の低減を図ることができる。
【先行技術文献】
【特許文献】
【0004】
【文献】特開平8-061741号公報
【文献】特開2018-035957号公報
【文献】特開2015-122055号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
情報処理装置に接続された複数のエッジ端末は、備えている処理能力や保持できる情報量(リソース)がそれぞれ異なる。このため、エッジコンピューティングにより処理を行う場合、情報処理装置にとって、各エッジ端末の処理能力やリソースに応じて処理の負荷を各エッジ端末に配分できることが好ましい。
【0006】
本発明の1つの側面では、エッジ端末の処理能力やリソースに応じて処理の負荷を配分することが可能な選択プログラム、情報処理装置および制御方法を提供することを目的とする。
【課題を解決するための手段】
【0007】
発明の一観点によれば、コンピュータに、端末に関する識別情報を前記端末から受信し、所定の単位時間におけるユーザの状態の時系列な推移であるユーザ状態推移を示す情報をクラスタリングすることによって得られる前記ユーザ状態推移の複数のパターンである複数のユーザ状態推移パターンから、前記識別情報に応じた数の1以上のユーザ状態推移パターンを選択し、前記1以上のユーザ状態推移パターンを前記端末に送信する、処理を実行させることを特徴とする。
【発明の効果】
【0008】
一実施形態によれば、エッジ端末の処理能力やリソースに応じて処理の負荷を配分することが可能な、選択プログラム、情報処理装置および制御方法を提供することができる。
【図面の簡単な説明】
【0009】
図1図1は、実施例1にかかるシステムの全体構成例を示す図である。
図2図2は、実施例1にかかるクラウドサーバ100の機能構成を示す機能ブロック図である。
図3図3は、特徴ベクトルDB103に記憶される情報の例を示す図である。
図4図4(a)は、クラスタ結果DB104に記憶される確率モデルの例である。また、図4(b)は、クラスタ結果DB104に記憶される曜日が対応づけられた確率モデルの例である。
図5図5は、クラスタ数決定DB105に記憶される情報の例を示す図である。
図6図6は、制御基準DB106に記憶される情報の例を示す図である。
図7図7は、スケジュールDB107に記憶される情報の例を示す図である。
図8図8は、実施例1にかかるエッジ端末200の機能構成を示す機能ブロック図である。
図9図9(a)は、センサ値DB203に記憶される情報の例を示す図である。また、図9(b)は、エッジ端末ログDB204に記憶される情報の例を示す図である。
図10図10は、実施例1にかかるユーザ端末300の機能構成を示す機能ブロック図である。
図11図11は、制御システムの処理の流れを示すシーケンス図である。
図12図12は、確率モデルの選択する処理を説明する図である。
図13図13は、ユーザ端末300に表示される操作画面例を示す図である。
図14図14は、クラウドサーバ100における学習処理を説明する図である。
図15図15は、学習データの特徴ベクトルについて説明する図である。
図16図16は、確率モデルのクラスタを作成する処理を説明する図である。
図17図17は、確率モデルのクラスタから在室確率を特定する処理を説明する図である。
図18図18は、エッジ端末200における予測処理を説明する図である。
図19図19は、ユーザの在室確率を算出する処理を説明する図である。
図20図20は、ハードウェア構成例を説明する図である。
図21図21は、ハードウェア構成例を説明する図である。
図22図22は、ハードウェア構成例を説明する図である。
【発明を実施するための形態】
【0010】
エッジコンピューティングでは、例えば、情報処理装置の負荷の低減を図るため、情報処理装置と複数のエッジ端末の双方による分散処理が実施される。このような分散処理として、例えば、情報処理装置が配信するルールに従って、各エッジ端末が処理を実行する方法が考えられる。この方法によれば、情報処理装置はルールの配信(及び必要に応じてルールの生成)を行えば良いため、情報処理装置の負荷を低減することができる。
【0011】
このとき、ルールの数を増やすことで、エッジ端末にきめ細かい処理を指示することが可能となり、処理精度を向上させることができる。しかしながら、すべてのエッジ端末に対して一律にルールの数を増やすのは望ましくない場合がある。具体的には、各エッジ端末の処理能力やリソースが異なる場合が考えられる。このような場合、処理能力やリソースが比較的小さいエッジ端末にとっては、多くのルールが負担となり、処理の遅延が発生するといった問題がある。
【0012】
以下に開示の実施例では、各エッジ端末の処理能力やリソースに応じて処理の負荷を各エッジ端末に配分することが可能な、選択プログラム、情報処理装置および制御方法を説明する。
【0013】
なお、この実施例によりこの発明が限定されるものではない。また、各実施例は、矛盾のない範囲内で適宜組み合わせることができる。
【0014】
(実施例1)
図1は、実施例1にかかるシステムの全体構成例を示す図である。図1に示すように、このシステムは、クラウドサーバ100と、複数のエッジ端末200とがネットワークNを介して相互に通信可能に接続されるシステムである。なお、ネットワークNには、有線や無線を問わず、インターネットなどの各種通信網を採用することができる。クラウドサーバ100は、コンピュータおよび情報処理装置の一例である。部屋1~3の各々に備えられているエッジ端末200は、室内の空調制御を実行する空調機、エアコンの一例である。
【0015】
[クラウドサーバ100の機能構成]
次に、図1に示したクラウドサーバ100の機能構成について説明する。図2は、実施例1にかかるクラウドサーバ100の機能構成を示す機能ブロック図である。図2に示すように、クラウドサーバ100は、通信部101、記憶部102、および制御部110を有する。
【0016】
通信部101は、他の装置との間の通信を制御する処理部であり、例えば、通信インタフェースによって実現される。
【0017】
記憶部102は、各種データや、制御部110が実行するプログラムを記憶する。例えば、記憶部102は、メモリまたはハードディスクなどによって実現される。記憶部102は、特徴ベクトルDB103、クラスタ結果DB104、クラスタ数決定DB105、制御基準DB106、およびスケジュールDB107を記憶する。
【0018】
特徴ベクトルDB103は、学習データを記憶するデータベースである。クラスタ結果DB104は、クラスタ結果を記憶するデータベースである。クラスタ数決定DB105は、エッジ端末200に配信する学習データの上限数を記憶するデータベースである。制御基準DB106は、エッジ端末200に対する制御内容が記憶されたデータベースである。スケジュールDB107は、エッジ端末200を制御するスケジュールが記憶されたデータベースである。
【0019】
制御部110は、クラウドサーバ100全体の処理を司る処理部であり、例えばプロセッサなどにより実現される。制御部110は、取得部111、生成部112、選択部113、配信部114、処理部115を有する。
【0020】
取得部111は、ユーザの状態を示す特徴と、エッジ端末200の識別情報とを取得する。ユーザの状態を示す特徴は、例えば、ユーザがある単位時間において(例えば一時間ごとの)、在宅をしているか否かを示す情報、またはユーザが睡眠をしているか否かを示す情報である。また、エッジ端末200の識別情報は、エッジ端末200の処理能力に紐づけられた情報である。
【0021】
生成部112は、ユーザ状態の推移を示す確率モデルを生成する。これは次のようにして行う。生成部112は、取得部111が取得した単位時間ごとのユーザの状態を示す特徴を、所定の期間において時系列に結合した情報であるユーザ状態推移情報を生成する(例えば一時間ごとの24個のユーザの状態を示す特徴を結合して、あるユーザの1日分のユーザ状態推移情報を生成する)。そして、ここで生成されたユーザ状態推移情報を所定の条件でクラスタリングすることによって、複数のクラスタを生成する。次に、各クラスタにおいて、クラスタに含まれる1以上のユーザ状態推移情報に基づいて、当該クラスタを代表するまたは当該クラスタを典型的に示すユーザ状態推移パターンを生成する。本実施例においては、一例として、各クラスタにおいてこのユーザ状態推移パターンを後述するような確率モデルとして構築する。以上をまとめると、生成部112は、所定の単位時間におけるユーザの状態の時系列な推移であるユーザ状態推移を示す情報をクラスタリングすることによって得られるユーザ状態推移の複数のパターンである、複数のユーザ状態推移パターンを生成する。
【0022】
選択部113は、確率モデルの数が、取得したエッジ端末200の識別情報に基づいて設定される上限数を超えるときに、確率モデルのクラスタに用いた特徴の数に基づいて、エッジ端末200に配信する確率モデルを選択する。具体的には、選択部113は、エッジ端末の処理能力が高いほど、エッジ端末200に配信する確率モデルの数が多くなるように、確率モデルを選択する。また、選択部113は、生成した確率モデルの数が上限数を超えるときに、確率モデル毎に確率モデルのクラスタに用いた特徴の数を算出する。そして、選択部113は、生成した確率モデルの中から、特徴の数が大きい方から上限数だけの確率モデルを選択する。具体的には、選択部113は、前述の複数のユーザ状態推移パターンから、識別情報に応じた数の1以上のユーザ状態推移パターンを選択する。
【0023】
配信部114は、通信部101を介して、選択された確率モデルを配信する。具体的には、配信部114は、1以上のユーザ状態推移パターンをエッジ端末200に送信する。
【0024】
処理部115は、エッジ端末200による予測結果に基づいて、エッジ端末200に対する制御内容を特定する。
【0025】
[特徴ベクトルDB103に記憶される情報の例]
図3は、特徴ベクトルDB103に記憶される情報の例を示す図である。図3に示すように、特徴ベクトルDB103は、「日付、特徴ベクトル」を対応づけて記憶する。
【0026】
図3に示すように、特徴ベクトルは、単位時間の開始から終了に至るまでの期間において、各時刻で、ユーザが在宅しているか、不在であるかを示す情報を有する。例えば、1つの特徴ベクトル(ログ)は、各時刻において複数のラベルを有する。ユーザが在宅している場合は、ラベル「1」を設定する。一方、ユーザが不在であるときには、ラベル「0」を設定する。「2020年1月1日は、t1の時刻ではユーザが在宅し、t2の時刻ではユーザが不在で、t3の時刻ではユーザが在宅」であることを示す。
【0027】
[クラスタ結果DB104に記憶される情報の例]
図4(a)および図4(b)は、クラスタ結果DB104に記憶される情報の例を示す図である。図4(a)は、クラスタ結果DB104に記憶される確率モデルの例である。図4(b)は、クラスタ結果DB104に記憶される曜日が対応づけられた確率モデルの例である。
【0028】
図4(a)に示すように、クラスタ結果DB104は、「確率モデルID、時刻、在室確率」を対応づけて記憶する。ここで記憶される「確率モデルID」は、確率モデルを識別する識別子であり、「時刻」は、基準となる時刻である。また、「在室確率」は、ユーザが存在している確率である。例えば、「確率モデル1は、t1の時刻ではユーザの在室確率が0.8で、t2の時刻ではユーザの在室確率が0.5」であることを示す。
【0029】
図4(b)に示すように、クラスタ結果DB104は、「確率モデルID、時刻、在室確率、曜日」を対応づけて記憶する。ここで記憶される「確率モデルID」は、確率モデルを識別する識別子であり、「時刻」は、基準となる時刻である。また、「在室確率」は、ユーザが存在している確率である。「曜日」は、確率モデルの代表する曜日である。「曜日」は、確率モデルに付与されるラベルの一例であり、測定した場所などの環境情報であってもよい。
【0030】
[クラスタ数決定DB105に記憶される情報の例]
図5は、クラスタ数決定DB105に記憶される情報の例を示す図である。図5に示すように、クラスタ数決定DB105は、「識別情報、クラスタの上限数」を対応づけて記憶する。ここで、「識別情報」は、エッジ端末200の型番号を識別する識別子である。また、「識別情報」は、エッジ端末200の処理能力を示す識別子であってもよい。「クラスタの上限数」は、エッジ端末200に配信する確率モデルの上限数である。例えば、「型番号がX001のエッジ端末200に対して、配信できる確率モデルの上限数は10」であることを示す。
【0031】
[制御基準DB106に記憶される情報の例]
図6は、制御基準DB106に記憶される情報の例を示す図である。図6に示すように、「不在が予想される」状態と、「在宅が予想される」状態との各々に対し、「時間長、制御内容」を対応づけて記憶する。「時間長」は、ユーザが在室する時間の時間長、または、ユーザが在室しない時間の時間長である。「制御内容」は、エッジ端末200が実行する処理の内容である。図6の例では、ユーザの不在が予想される時間長が、「30分以上であるとき」、エッジ端末200の「省電力モード」を起動するように制御することを示している。
【0032】
[スケジュールDB107に記憶される情報の例]
図7は、スケジュールDB107に記憶される情報の例を示す図である。図7に示すように、スケジュールDB107は、「日時、予測結果、登録内容」を対応づけて記憶する。ここで記憶される「時刻」は、基準となる時刻である。「予測結果」は、エッジ端末200によりユーザが存在するか否かを予測した結果である。「登録内容」は、ユーザの指示を受け付けた、エッジ端末200に対する制御内容である。図7の例では、「12:00~15:00までユーザの不在が予想され、エアコンの掃除モードを起動することが登録されている」ことを示す。また、「15:30~16:30までユーザの在宅が予想され、エアコンの運転開始が登録されている」ことを示す。
【0033】
[エッジ端末200の機能構成]
図8は、実施例1にかかるエッジ端末200の機能構成を示す機能ブロック図である。エッジ端末200は、通信部201、記憶部202、および制御部210を有する。
【0034】
通信部201は、他の装置との間の通信を制御する処理部であり、例えば、通信インタフェースによって実現される。
【0035】
記憶部202は、各種データや、制御部210が実行するプログラムを記憶する。例えば、記憶部202は、メモリやハードディスクなどによって実現される。記憶部202は、センサ値DB203、およびエッジ端末ログDB204を記憶する。
【0036】
センサ値DB203は、各部屋のセンサにより取得された、ユーザの状態を識別するセンサ値を記憶するデータベースである。例えば、ここで記憶されるセンサ値は、ユーザの状態の他に、温度の時間変化などセンサが測定できる他の観測値を含んでいてもよい。ユーザの状態とは、例えば、部屋の中にユーザがいるか否かを示す情報である。エッジ端末ログDB204は、エッジ端末200の識別情報を記憶するデータベースである。
【0037】
通信部201は、センサデータなどをクラウドサーバ100に対して出力する。また、通信部201は、クラウドサーバ100により配信された確率モデルなどをクラウドサーバ100から受信する。さらに、通信部201は、確率モデルによる予測結果をクラウドサーバ100に対して送信する。
【0038】
制御部210は、エッジ端末200全体の処理を司る。制御部210は、例えばプロセッサによって実現される。制御部210は、取得部211、処理部212、および実行部213を有する。
【0039】
取得部211は、単位時間の開始から終了に至るまでのユーザの状態を示す、複数の特徴を取得する。例えば、取得部211は、0時から24時までの期間において、ユーザが在室しているか否かを示す特徴を取得する。このとき、単位時間の開始から終了に至るまでのユーザの状態を示す複数の特徴は、クラウドサーバ100に送信される。
【0040】
また、取得部211は、単位時間の開始から推論の開始時刻に至るまでの、ユーザの状態を示す複数の特徴を取得する。例えば、取得部211は、本日の0時から現在までの期間において、ユーザが在室しているか否かを示す特徴を取得する。
【0041】
処理部212は、確率モデルを用いて、推論の開始時刻から単位時間の終了までの期間において、ユーザの状態を予測する。
【0042】
実行部213は、クラウドサーバ100から配信された制御情報に基づく処理を実行する。
【0043】
[センサ値DB203に記憶される情報の例]
図9(a)は、センサ値DB203に記憶される情報の例を示す図である。図9(a)に示すように、センサ値DB203は、「日時、曜日、在室の有無、室温、湿度、外気温」などを対応づけて記憶する。ここで記憶される「日時」は、データが測定された日時である。「曜日」は、データが測定された日の曜日である。「在室の有無」は、ユーザの状態を測定した結果であり、ユーザの存在の有無を測定した結果である。「室温」および「湿度」は、それぞれ、各室内の各センサなどにより測定された室内の温度および湿度であり、「外気温」は、各室の各センサにより測定された室外の温度である。図9(a)の例では、30分ごとのセンサ値を示し、例えば、部屋1について、「2020年1月1日の水曜日の0:00では、ユーザが存在することが測定され、室温が20度、室内の湿度が55%、外気温が10度であったこと」を示す。
【0044】
[エッジ端末ログDB204に記憶される情報の例]
図9(b)は、エッジ端末ログDB204に記憶される情報の例を示す図である。図9(b)に示すように、エッジ端末ログDB204は、「エッジID、識別情報」を対応づけて記憶する。ここで記憶される「エッジID」は、エアコンを識別するIDであり、「識別情報」は、エッジ端末200の型番号を識別する識別子である。また、「識別情報」は、エアコンに搭載されたエッジ端末200の処理能力を示す識別子であってもよい。
【0045】
[ユーザ端末300の機能構成]
図10は、実施例1にかかるユーザ端末300の機能構成を示す機能ブロック図である。図10に示すように、ユーザ端末300は、通信部301、制御部302、表示部303、および入力部304を有する。
【0046】
通信部301は、クラウドサーバ100に対して、ユーザから受け付けた操作内容を出力する。また、通信部301は、クラウドサーバ100から、エッジ端末200に対する制御内容の候補を受信する。
【0047】
制御部302は、ユーザ端末300全体の処理を司る。制御部302は、例えばプロセッサによって実現される。制御部302は、エッジ端末200に対する制御内容の候補を実行するか否かの確認画像を表示部303に表示させる。
【0048】
表示部303は、エッジ端末200に対する制御内容の候補を実行するか否かの確認画像を表示する。表示部303は、例えば、表示装置によって実現される。
【0049】
入力部304は、各種の情報を入力する。入力部304は、例えば、キーボード、タッチパネル、またはマウスによって実現される。
【0050】
[制御システムの処理の流れ]
図11は、制御システムの処理の流れを示すシーケンス図である。図11を用いて、制御システムによる、学習データの収集からエッジ端末200の制御を実行するまでの一連の処理を説明する。
【0051】
図11に示すように、クラウドサーバ100の取得部111は、エッジ端末200から、エッジ端末200の識別情報と、ユーザの状態を示すセンサ値とを含むデータを取得する。例えば、図9(a)に示すように、クラウドサーバ100の取得部111は、エッジ端末200から、1日の開始から終了に至るまでの期間において、30分間隔での、「ユーザが在室しているか、または不在であるか」を示す情報と、「曜日」を示す情報とを含むセンサ値を取得する。また、図9(b)に示すように、クラウドサーバ100は、エッジ端末200から、端末の型番が「X002」を示す識別情報を取得する。(S101)。
【0052】
クラウドサーバ100の生成部112は、取得されたデータから学習データを生成し、学習データをクラスタリングして確率モデルを生成する。生成部112は、「日付」に対応する期間において、所定の間隔ごとの、ユーザの状態を示す特徴ベクトルを有する学習データを作成する。そして、生成部112は、学習データを用いて、各時刻でのユーザの状態を示す確率モデルを生成する(S102)。
【0053】
選択部113は、エッジ端末200に配信する確率モデルを選択する。具体的には、選択部113は、エッジ端末200の識別情報を基に、クラスタ数決定DB105を参照し、識別情報と対応づいたエッジ端末200に配信する確率モデルの上限数を特定する。そして、選択部113は、生成された確率モデルの数が特定された上限数を超えるときに、生成された確率モデルの中からエッジ端末200に配信する確率モデルを選択する。選択部113は、エッジ端末200の処理能力が高いほど、エッジ端末200に配信する確率モデルの数が多くなるように、確率モデルを選択する。(S103)。
【0054】
配信部114は、選択された確率モデルをエッジ端末200に配信する(S104)。
【0055】
エッジ端末200の実行部213は、配信された確率モデルを用いた予測制御を実行する。例えば、実行部213は、予め設定された推論時刻になったときに、センサにより測定されたセンサ値と確率モデルとに基づいて、推論時刻以降において、各時刻でのユーザの状態を予測する(S105)。
【0056】
エッジ端末200の処理部212は、予測された結果をクラウドサーバ100に送信する(S106)。
【0057】
クラウドサーバ100の処理部115は、エッジ端末200に対する制御内容の候補を特定する。例えば、図7に示すように、処理部115は、エッジ端末200から、「15:30に不在から在宅に変わり、16:30までの60分の期間において、在宅していること」の予測結果を受信する。処理部115は、図6に示すように、制御基準DB106に記憶される情報を参照して、時間長が60分である「運転の開始」を制御内容の候補として特定する(S107)。
【0058】
クラウドサーバ100の処理部115は、ユーザ端末300に対して、制御内容の候補を実行させるか否かを問い合わせする(S108)。
【0059】
ユーザ端末300の入力部304は、ユーザからの操作を受け付ける。そして、通信部301は、受け付けた操作結果を、クラウドサーバ100に送信する(S109)。
【0060】
クラウドサーバ100の処理部115は、操作結果を、スケジュールDB107に登録する。例えば、処理部115は、図7に示すように、「15:30から16:30の在宅が予測される期間に対して、運転の開始」の制御情報を更新する(S110)。
【0061】
クラウドサーバ100の処理部115は、スケジュールDB107を参照し、登録された制御情報をエッジ端末200に配信する。(S111)。
【0062】
エッジ端末200の実行部213は、制御情報に従って、処理を実行する(S112)。
【0063】
[確率モデルを選択する処理]
図12は、確率モデルの選択する処理を説明する図である。ここで、図12を用いて、クラウドサーバ100の選択部113が、生成された確率モデルの数が上限数を超えるときに、確率モデルの中からエッジ端末200に配信する確率モデルを選択する処理を説明する。
【0064】
図12に示すように、生成部112は、確率モデル1、確率モデル2、確率モデル3、確率モデル4の4つの確率モデルを生成したとする。そして、選択部113は、エッジ端末200の識別情報を基に、エッジ端末200に配信する確率モデルの上限数は3であることを特定したとする。例えば、エッジ端末200の処理能力が高いほど、確率モデルの上限数が多くなるように特定する。また他の例では、上位モデルのエッジ端末200を、下位モデルのエッジ端末200よりも確率モデルの上限数が多くなるように特定する。また、エッジ端末200に搭載されたCPUのクロック数によって、確率モデルの上限数を特定する。
【0065】
次いで、選択部113は、確率モデルのクラスタに用いた特徴ベクトルの数が多い確率モデルを選択する。具体的には、確率モデル1は、100個の特徴ベクトルをクラスタリングしたモデルである。また、確率モデル2は、5個の特徴ベクトルをクラスタリングしたモデルである。確率モデル3は、30個の特徴ベクトルをクラスタリングしたモデルである。そして、確率モデル4は、10個の特徴ベクトルをクラスタリングしたモデルである。そこで、選択部113は、確率モデルのクラスタに用いた特徴ベクトルの数の多い、確率モデル1、確率モデル3、確率モデル4の3つの確率モデルを選択する。
【0066】
[ユーザ端末の操作画面]
図13は、ユーザ端末300に表示される操作画面例を示す図である。図13に示すように、ユーザ端末300の表示部303は、クラウドサーバ100の処理部115により特定された制御内容の候補を実行するか否かを受け付ける画面を表示する。例えば、表示部303は、制御内容の候補として、「今日の15:30からエアコンを運転させるか」を表示する。そして、ユーザ端末300は、制御内容の候補を実行することを受け付ける「YES」の操作ボタンと、制御内容の候補を実行しないことを受け付ける「NO」の操作ボタンとを表示する。
【0067】
[クラウドサーバ100における学習処理]
ここで、図14を用いて、クラウドサーバ100における学習処理を説明する。図14は、図11のS102の詳細な処理を示すフローチャートである。
【0068】
生成部112は、学習データを取得する(S201)。
【0069】
生成部112は、学習データの特徴ベクトルを算出する(S202)。
【0070】
生成部112は、特徴ベクトルをクラスタリングする。具体的には、生成部112は、特徴ベクトルの間の距離を計算する。そして、生成部112は、特徴ベクトルの距離が予め設定した閾値以下の距離の特徴ベクトルを同じクラスタに含ませるようにクラスタリングを行う。距離としては、例えば、ユークリッド距離やコサインに基づく距離等の任意の距離を用いることができる(S203)。
【0071】
生成部112は、クラスタリングされた特徴ベクトルから、確率モデルを生成する。具体的には、生成部112は、同一のクラスタに含まれる複数の特徴ベクトルの各々から、クラスタの特徴ベクトルを算出する。そして、生成部112は、算出された特徴ベクトルを用いて、確率モデルを生成する(S204)。
【0072】
生成部112は、代表となる曜日が対応づけられた確率モデルを生成する。生成部112は、確率モデルのクラスタに含まれる複数の特徴ベクトルの各々に対して、特徴ベクトルを測定した曜日を特定する。そして、生成部112は、特定した曜日のなかで最も数の多い曜日を、確率モデルの代表の曜日として設定する。例えば、図4(b)に示すように、確率モデル1は、水曜日が代表の曜日であることが設定される。これは、図9(a)に示すように、センサデータに含まれる曜日情報を用いて、確率モデルのクラスタに含まれる複数の特徴ベクトルの各々に対して、特徴ベクトルを測定した曜日を特定する。生成部112は、複数の特徴ベクトルの各々の類似度に基づいて複数の特徴ベクトルをクラスタリングすることによって、少なくとも1以上のクラスタを生成する。そして、生成部112は、少なくとも1以上のクラスタの中に含まれる特徴ベクトルの各々に対応づけられた曜日の中で、最も数の多い同一種類の曜日を特定し、特定した曜日が対応づけられた確率モデルを生成する。つまり、生成部112は、環境情報を設定した曜日が対応付けられた確率モデルを生成する(S205)。
【0073】
生成部112は、確率モデルを出力する。また、生成部112は、曜日が対応づけられた確率モデルを出力する(S206)。
【0074】
[学習データの特徴ベクトル]
ここで、図15を用いて、学習データの特徴ベクトルについて説明する。特徴ベクトルは、単位時間の開始から終了に至るまでの期間において、各時刻でのユーザの状態を示す情報である。例えば、図15に示すように、2020年1月1日の特徴ベクトルにおいては、午前中の後半は、ユーザは不在であるが、午後の前半は、ユーザは在宅である、ことを示している。また、2020年1月2日の特徴ベクトルにおいては、ユーザは終日在宅であることを示している。一方で、2020年1月3日の特徴ベクトルにおいては、ユーザは終日不在であることを示している。
【0075】
[確率モデル]
ここで、図16および図17を用いて、確率モデルについて説明する。図16は、確率モデルのクラスタを作成する処理を説明する図である。図17は、確率モデルのクラスタから在室確率を特定する処理を説明する図である。
【0076】
図16に示すように、生成部112は、学習データの複数の特徴ベクトルの各々の距離が近い特徴ベクトルをクラスタリングする。そして、生成部112は、クラスタリングしたクラスタから確率モデルを生成する。
【0077】
このとき、図16の例では、確率モデル1のクラスタには、特徴ベクトル2と、特徴ベクトル3などが含まれる。そして、確率モデル1は、100個の特徴ベクトルを有する。また、確率モデル2のクラスタは、特徴ベクトル4と特徴ベクトル5などが含まれる。そして、確率モデル2は、5個の特徴ベクトルを有する。一方で、特徴ベクトル1は、どの確率モデルにも属していない特徴ベクトルである。これは、特徴ベクトル1は、他の特徴ベクトルと距離が離れているために、クラスタリングされなかったためである。
【0078】
次いで、生成部112は、確率モデル1のクラスタに属する100個の特徴ベクトルの各々を用いて、確率モデル1の特徴ベクトルを算出する。算出した特徴ベクトルは、在室確率を示す。具体的には、生成部112は、図17に示すように、特徴ベクトルの各々の平均により、確率モデルの在室確率を算出する。例えば、特徴ベクトルの8時から8時30分までの複数のラベルの平均値を、確率モデルの8時から8時30分までの在室確率とする。また、特徴ベクトルの8時30分から9時までの複数のラベルの各々の平均値を、8時30分から9時までの在室確率とする。これにより、生成部112は、確率モデル1の各時刻における、ユーザの在室確率を示すパターンを算出する。
【0079】
[エッジ端末200における予測処理]
ここで、図18を用いて、エッジ端末200における予測処理を説明する。図18は、図11のS105の詳細な処理を示すフローチャートである。エッジ端末200における予測処理は、必要に応じて、S307およびS308を省略することができる。すなわち、S306の次の処理はS309となる。
【0080】
取得部211は、推論時刻までのデータを取得する(S301)。
【0081】
処理部212は、特徴ベクトルを算出する(S302)。
【0082】
処理部212は、推論時刻までの期間において、複数の確率モデルの各々が互いに類似するか否かを判定する。具体的には、処理部212は、単位時間の開始から推論時刻までの期間において、クラウドサーバ100から配信された複数の確率モデルのそれぞれの在室確率が類似するか否かを判定する。例えば、処理部212は、複数の確率モデルの各々の在室確率の差分が、予め設定した閾値以上であるか否かにより判定する。処理部212が、在室確率が類似しないと判定された場合、S304に移行する(S303:NO)。一方で、処理部212が、在室確率が類似すると判定された場合、S305に移行する(S303:YES)。
【0083】
処理部212は、複数の確率モデルの中から確率モデルを特定する。処理部212は、算出した特徴ベクトルと類似する確率モデルを特定する。具体的には、処理部212は、クラウドサーバ100から配信された複数の確率モデルの中から、特徴ベクトルが類似する在室確率を有する確率モデルを特定する(S304)。
【0084】
処理部212は、曜日が各々対応づけられた複数の確率モデルの中から確率モデルを特定する。処理部212は、当日の曜日を用いて、確率モデルを特定する。(S305)。
【0085】
処理部212は、特定した確率モデルを用いて、推論時刻以降の当日の在室確率を取得する(S306)。
【0086】
処理部212は、翌日の在室確率を取得する。具体的には、処理部212は、クラウドサーバ100から配信された複数の確率モデルの中から、翌日の曜日に対応づけられた確率モデルを特定する。そして、処理部212は、特定された確率モデルを用いて、翌日の在室確率を取得する(S307)。
【0087】
処理部212は、推論時刻から24時間後までの在室確率を算出する(S308)。
【0088】
処理部212は、ユーザの在室の有無を特定する。具体的には、処理部212は、算出した在室確率と、予め設定した閾値との比較結果に基づいて、ユーザの在室の有無を特定する。例えば、処理部212は、時刻と、在室確率が閾値(例えば、0.5)を超えている時の時間長を出力する。また、処理部212は、時刻と、在室確率が閾値(例えば、0.5)以下の時間長を出力する。(S309)。
【0089】
[ユーザの在室確率を算出する処理]
ここで、図19を用いて、処理部212がユーザの在室確率を算出する処理について説明する。処理部212は、t1から推論時刻であるt2までの特徴ベクトルと、複数の確率モデルの各々の在室確率とを比較する。そして、処理部212は、複数の確率モデルの中から、t1から推論時刻であるt2までの特徴ベクトルと最も類似する在室確率を有する確率モデルを特定する。次いで、処理部212は、確率モデルの在室確率を参照し、t2からt3の期間の時刻のそれぞれにおける、ユーザの在室確率を予測する。
【0090】
[ハードウェア]
図20は、ハードウェア構成例を説明する図である。図20に示すように、クラウドサーバ100は、通信装置100a、HDD(Hard Disk Drive)100b、メモリ100c、およびプロセッサ100dを有する。また、図20に示した各部は、バス等で相互に接続される。
【0091】
通信装置100aは、ネットワークインタフェースカードなどであり、他のサーバとの通信を行う。HDD100bは、図2等に示した機能を動作させるプログラムおよびDBを記憶する。
【0092】
プロセッサ100dは、図2等に示した各処理部と同様の処理を実行するプログラムをHDD100b等から読み出してメモリ100cに展開することで、図2等で説明した各機能を実行するプロセスを動作させる。すなわち、このプロセスは、クラウドサーバ100が有する各処理部と同様の機能を実行する。具体的には、プロセッサ100dは、取得部111、生成部112、選択部113、配信部114、処理部115等と同様の機能を有するプログラムをHDD100b等から読み出す。そして、プロセッサ100dは、取得部111、生成部112、選択部113、配信部114、処理部115等と同様の処理を実行するプロセスを実行する。
【0093】
このようにクラウドサーバ100は、プログラムを読み出して実行することでデータ生成方法を実行する情報処理装置として動作する。また、クラウドサーバ100は、媒体読取装置によって記録媒体から上記プログラムを読み出し、読み出された上記プログラムを実行することで上記した実施例と同様の機能を実現することもできる。なお、この他の実施例でいうプログラムは、クラウドサーバ100によって実行されることに限定されるものではない。例えば、他のコンピュータまたはサーバがプログラムを実行する場合や、これらが協働してプログラムを実行するような場合にも、本発明を同様に適用することができる。
【0094】
このプログラムは、インターネットなどのネットワークを介して配布することができる。また、このプログラムは、ハードディスク、フレキシブルディスク(FD)、CD-ROM、MO(Magneto-Optical disk)、DVD(Digital Versatile Disc)などの、非一時的なコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行することができる。
【0095】
図21は、ハードウェア構成例を説明する図である。図21に示すように、エッジ端末200は、通信装置200a、HDD200b、メモリ200c、およびプロセッサ200dを有する。また、図21に示した各部は、バス等で相互に接続される。
【0096】
通信装置200aは、ネットワークインタフェースカードなどであり、他のサーバとの通信を行う。HDD200bは、図8等に示した機能を動作させるプログラムおよびDBを記憶する。
【0097】
プロセッサ200dは、図8等に示した各処理部と同様の処理を実行するプログラムをHDD200b等から読み出してメモリ200cに展開することで、図8等で説明した各機能を実行するプロセスを動作させる。すなわち、このプロセスは、エッジ端末200が有する各処理部と同様の機能を実行する。具体的には、プロセッサ200dは、取得部211、処理部212、実行部213等と同様の機能を有するプログラムをHDD200b等から読み出す。そして、プロセッサ200dは、取得部211、処理部212、実行部213等と同様の処理を実行するプロセスを実行する。
【0098】
このようにエッジ端末200は、プログラムを読み出して実行することでデータ生成方法を実行する情報処理装置として動作する。また、エッジ端末200は、媒体読取装置によって記録媒体から上記プログラムを読み出し、読み出された上記プログラムを実行することで上記した実施例と同様の機能を実現することもできる。なお、この他の実施例でいうプログラムは、エッジ端末200によって実行されることに限定されるものではない。例えば、他のコンピュータまたはサーバがプログラムを実行する場合や、これらが協働してプログラムを実行するような場合にも、本発明を同様に適用することができる。
【0099】
このプログラムは、インターネットなどのネットワークを介して配布することができる。また、このプログラムは、ハードディスク、フレキシブルディスク(FD)、CD-ROM、MO、DVDなどのコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行することができる。
【0100】
図22は、ハードウェア構成例を説明する図である。図22に示すように、ユーザ端末300は、通信装置300a、HDD300b、メモリ300c、プロセッサ300d、表示装置300e、入力装置300fを有する。また、図23に示した各部は、バス等で相互に接続される。
【0101】
通信装置300aは、ネットワークインタフェースカードなどであり、他のサーバとの通信を行う。HDD300bは、図10等に示した機能を動作させるプログラムやDBを記憶する。
【0102】
プロセッサ300dは、図10等に示した各処理部と同様の処理を実行するプログラムをHDD300b等から読み出してメモリ300cに展開することで、図10等で説明した各機能を実行するプロセスを動作させる。すなわち、このプロセスは、ユーザ端末300が有する各処理部と同様の機能を実行する。具体的には、プロセッサ300dは、制御部302等と同様の機能を有するプログラムをHDD300b等から読み出す。そして、プロセッサ300dは、制御部302等と同様の処理を実行するプロセスを実行する。
【0103】
このようにユーザ端末300は、プログラムを読み出して実行することでデータ生成方法を実行する情報処理装置として動作する。また、ユーザ端末300は、媒体読取装置によって記録媒体から上記プログラムを読み出し、読み出された上記プログラムを実行することで上記した実施例と同様の機能を実現することもできる。なお、この他の実施例でいうプログラムは、ユーザ端末300によって実行されることに限定されるものではない。例えば、他のコンピュータまたはサーバがプログラムを実行する場合や、これらが協働してプログラムを実行するような場合にも、本発明を同様に適用することができる。
【0104】
このプログラムは、インターネットなどのネットワークを介して配布することができる。また、このプログラムは、ハードディスク、フレキシブルディスク(FD)、CD-ROM、MO、DVDなどのコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行することができる。
【符号の説明】
【0105】
100 クラウドサーバ
101 通信部
102 記憶部
103 特徴ベクトルDB
104 クラスタ結果DB
105 クラスタ数決定DB
106 制御基準DB
107 スケジュールDB
110 制御部
111 取得部
112 生成部
113 選択部
114 配信部
115 処理部
200 エッジ端末
201 通信部
202 記憶部
203 センサ値DB
204 エッジ端末ログDB
210 制御部
211 取得部
212 処理部
213 実行部
300 ユーザ端末
301 通信部
302 制御部
303 表示部
304 入力部
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16
図17
図18
図19
図20
図21
図22