<機器分離システムの構成例>
図1は、本技術を適用した機器分離システムの一実施の形態の構成例を示す図である。
ユーザ宅(家庭や会社等)には、分電盤11が取り付けられている。電力会社から提供される電力は、電力計12を経由して、分電盤11に引き込まれ、分電盤11から、ユーザ宅の(コンセント等に接続された)家電等の機器に供給される。
電流センサ13は、例えば、分電盤11に取り付けられている。電流センサ13は、分電盤11の、ユーザ宅内に電力を供給している、いわば根元の1箇所において、ユーザ宅内のすべての機器(1以上の機器)で消費されている電流の総和を計測し、インターネット等のネットワーク15を介して、例えば、クラウド上に構成された機器分離装置16に送信する。
エージェント14は、例えば、犬を模した、移動可能なペット型ロボットであり、ユーザ宅の機器を制御する制御装置として機能する。
すなわち、エージェント14は、手や足を動かすことにより、機器に設けられたボタンや、機器のリモートコントローラを直接操作することで、機器の電源のオンやオフ、動作モードの変更等の機器の操作を行う。
その他、エージェント14は、機器のリモートコントローラが発する赤外線と同様の赤外線を発すること、あるいは、機器との間で、ホームネットワークを介した無線や有線の通信を行うことで、機器を操作(制御)することができる。
また、エージェント14は、例えば、手で、棒などを持ち、その棒によって、機器に設けられたボタンを操作することで、機器の操作を行うことができる。
エージェント14は、ユーザ宅の機器の稼働状態(例えば、オン又はオフになっている状態や、ミュート状態等)を認識し、機器に関する機器情報として、ネットワーク15を介して、機器分離装置16に供給する。
さらに、エージェント14は、機器分離装置16から、ネットワーク15を介して、ユーザ宅の機器の稼働状態を受信し、その稼働状態に応じて、所定の行動をとることができる。
機器分離装置16は、ユーザ宅の電流センサ13からネットワーク15を介して送信されてくる電流の総和を受信し、その電流の総和の系列(電流波形系列)から、ユーザ宅内の、例えば、TV(テレビジョン受像機)や、電気ポット、冷蔵庫、照明等の個々の機器で消費されている消費電流や消費電力を分離する機器分離を行う。
さらに、機器分離装置16は、機器分離の結果得られる消費電流等が、どの機器のどのような稼働状態で消費されるのかを表すラベル付けを、エージェント14からの機器情報を用いて行う。
また、機器分離情報16は、機器分離の結果得られる消費電流等から、ユーザ宅の機器の稼働状態を検知し、ネットワーク15を介して、エージェント14に送信する。
図2は、図1の機器分離システムの処理の例を説明する図である。
電流センサ13では、ユーザ宅内のすべての機器で消費されている電流の総和が計測され、ネットワーク15を介して、機器分離装置16に送信される。
機器分離装置16では、ユーザ宅の電流センサ13から送信されてくる電流の総和を受信し、その電流の総和の系列(電流波形系列)から、ユーザ宅内の個々の機器で消費されている電流を分離する機器分離が行われる。
図1及び図2では、ユーザ宅には、機器#1,#2,#3,#4があり、機器分離装置16は、ユーザ宅の機器#1ないし#4それぞれで消費されている電流(消費電流)を分離する機器分離を行う。
ここで、機器分離装置16において、機器#1ないし#4それぞれの消費電流を分離するには、機器の消費電流が変化することが必要である。
そこで、ユーザ宅のエージェント14は、必要に応じて、ユーザ宅内を移動し、例えば、機器に設けられたボタンや、機器のリモートコントローラを操作することで、機器の電源のオンやオフ等の機器の操作を行う。
これにより、ある機器の電源がオフになっているときの、機器#1ないし#4の消費電流の総和や、他の機器の電源がオンになっているときの、機器#1ないし#4の消費電流の総和等の、機器#1ないし#4が様々な稼働状態になっているときの消費電力の総和が、電流センサ13から機器分離装置16に送信される。
そして、機器分離装置16では、機器#1ないし#4が様々な稼働状態になっているときの消費電力の総和を用いて機器分離が行われ、これにより、機器#1ないし#4それぞれの消費電流が分離される。
また、機器分離装置16は、機器分離の結果得られる機器#1ないし#4それぞれの消費電流から、ユーザ宅の機器の稼働状態を検知し、ネットワーク15を介して、エージェント14に送信する。
エージェント14は、機器分離装置16からの、ユーザ宅の機器の稼働状態を受信し、その稼働状態に応じて、所定の行動をとる。
例えば、エージェント14は、機器分離装置16から、ユーザ宅の玄関の照明がオンになった旨の機器の稼働状態を受信した場合には、ユーザ宅の玄関にいなくても、玄関の照明がオンになったことを認識することができる。
この場合、エージェント14は、ユーザ宅のユーザが帰宅したと認識し、ユーザ宅の任意の部屋から玄関に出迎えに行く行動をとることができる。
あるいは、エージェント14は、現在地の近くにいるユーザに、ユーザ宅の玄関の照明がオンになった旨を、音声等で報知することができる。
<機器分離>
図3は、図1の機器分離装置16で行われる機器分離の概要を説明する図である。
各ユーザ宅において、電力会社から提供される電力は、分電盤12に引き込まれ、分電盤12から、ユーザ宅内の家電等の機器に供給される。
機器分離では、分電盤12に、電流センサ13を設け、その電流センサ13で、ユーザ宅内の機器で消費されている電流の総和を計測するだけで、その電流の総和の系列(電流波形系列)から、ユーザ宅内の、個々の機器の消費電流(消費電力)が分離される。
なお、機器分離に用いるデータとしては、各機器で消費されている電流の総和そのもの等の、各機器で消費されている電流の総和に関する総和データを採用することができる。
総和データとしては、加算が成立する値の総和を採用することができる。具体的には、総和データとしては、各機器で消費されている電流の総和そのものの他、例えば、各機器で消費されている電力の総和や、各機器で消費されている電流の波形をFFT(Fast Fourier Transform)等することによって得られる周波数成分の総和等を採用することができる。
また、機器分離では、総和データから、個々の機器で消費されている電流等の、個々の機器で消費されている電流に関する情報を分離することができる。具体的には、機器分離では、総和データから、例えば、個々の機器で消費されている電流や電力、それらの周波数成分を分離することができる。
以下の説明では、総和データとして、例えば、各機器で消費されている電流の総和を採用するとともに、機器分離において、例えば、総和データとしての電流の総和の波形から、個々の機器で消費されている電流(消費電流)の波形を分離することとする。
図4は、機器分離で行われる波形分離学習の概要を説明する図である。
機器分離では、総和データから、各機器の消費電流の波形を求める波形分離学習が行われる。
波形分離学習では、各時刻tの総和データとしての電流波形Ytが、各機器#mの消費電流を表す固有波形W(m)の加算値(総和)であるとして、電流波形Ytから、個々の機器#mで消費されている固有波形W(m)が求められる。
図4では、ユーザ宅内に、5個の機器#1ないし#5があり、その5個の機器#1ないし#5のうちの、機器#1,#2,#4、及び、#5がオン状態(電力を消費する状態)になっており、機器#3がオフ状態(電力を消費しない状態)になっている。
そのため、図4では、総和データとしての電流波形Ytが、機器#1,#2,#4、及び、#5それぞれの消費電流W(1),W(2),W(4)、及び、W(5)の加算値(総和)になっている。
<機器分離装置16の構成例>
図5は、図1の機器分離装置16の構成例を示すブロックである。
図5において、機器分離装置16は、通信部30、データ取得部31、状態推定部32、モデル記憶部33、モデル学習部34、ラベル取得部35、及び、データ出力部36を有する。
通信部30は、ネットワーク15を介して、電流センサ13やエージェント14との間で通信を行う。
すなわち、通信部30は、電流センサ13からネットワーク15を介して送信されてくる総和データとしての電流波形Yの時系列(電流時系列)を受信し、データ取得部31に供給する。
また、通信部30は、エージェント14からネットワーク15を介して送信されてくるデータを受信して、ラベル取得部35やデータ出力部36に供給する。さらに、通信部30は、ラベル取得部35やデータ出力部36から供給されるデータを、ネットワーク15を介して、エージェント14に送信する。
なお、本実施の形態において、通信は、無線の通信、有線の通信、及び、無線と有線とが混在する通信のいずれであってもよい。
データ取得部31は、電流センサ13から送信されてくる総和データとしての電流波形Yの時系列(電流時系列)を、通信部30を介して受信することにより取得し、状態推定部32、モデル学習部34、及び、データ出力部36に供給する。
また、データ取得部31は、総和データとしての電流波形Yに対応する電圧の波形(電圧波形)Vの時系列(電圧時系列)を取得し、状態推定部32、モデル学習部34、及び、データ出力部36に供給する。
なお、電圧波形Vは、電流波形Yと同様に、分電盤12で計測し、ネットワーク15を介して、機器分離装置16に送信することができる。また、電圧波形Vとしては、電力会社から供給される電圧を近似する、例えば、50Hzや60Hz等の所定周波数で、実効値が100V等の所定値のsin波を採用することができる。
状態推定部32は、データ取得部31からの電流波形Yと、モデル記憶部33に記憶された、ユーザ宅内の機器全体のモデルである全体モデル(のモデルパラメータ)φとを用いて、ユーザ宅内の各機器に対応する全体モデルの状態を推定する状態推定を行う。そして、状態推定部32は、状態推定の状態推定結果(としての全体モデルの状態)Γを、モデル学習部34、ラベル取得部35、及び、データ出力部36に供給する。
すなわち、図5において、状態推定部32は、評価部41、及び、推定部42を有する。
評価部41は、モデル記憶部33に記憶された全体モデルφを構成する複数の機器モデル#1ないし#Mそれぞれの状態の各組み合わせにおいて、データ取得部31から(状態推定部32に)供給される電流波形Yが観測される程度を評価した評価値Eを求め、推定部42に供給する。
推定部42は、評価部41から供給される評価値Eを用い、モデル記憶部33に記憶された全体モデルφを構成する複数の機器モデル#1ないし#Mそれぞれの状態Γを推定し、モデル学習部34、ラベル取得部35、及び、データ出力部36に供給する。
モデル記憶部33は、複数の機器全体のモデルである全体モデル(のモデルパラメータ)φを記憶する。
全体モデルφは、複数であるM個の、機器の(消費電流を表現する)モデルである機器モデル#1ないし#Mから構成される。機器モデル#1ないし#M、及び、その機器モデル#1ないし#Mから構成される全体モデルφは、例えば、確率生成モデル、あるいは、状態遷移モデルであり、複数の状態を有する。
全体モデルのパラメータφには、機器モデル#mの状態(に対応する機器の稼働状態)ごとの消費電流を表す電流波形パラメータが含まれる。
全体モデルのパラメータφには、その他、例えば、機器モデル#mの状態(に対応する機器の稼働状態)の遷移(変動)を表す状態変動パラメータ、機器モデル#mの状態(に対応する機器の稼働状態)の初期状態を表す初期状態パラメータ、及び、全体モデルにおいて観測(生成)される電流波形Yの観測値の分散に関する分散パラメータを含めることができる。
モデル記憶部33に記憶された全体モデルのモデルパラメータφは、状態推定部32の評価部41と推定部42、ラベル取得部35、及び、データ出力部36で、必要に応じて参照され、モデル学習部34の後述する波形分離学習部51、分散学習部52、及び、状態変動学習部53によって更新される。
モデル学習部34は、データ取得部31から供給される電流波形Yと、状態推定部32(の推定部42)から供給される状態推定の状態推定結果((全体モデルを構成する)各機器モデル#mの状態)Γとを用いて、モデル記憶部33に記憶された全体モデルのモデルパラメータφを更新するモデル学習を行う。
すなわち、図5において、モデル学習部34は、波形分離学習部51、分散学習部52、及び、状態変動学習部53を有する。
波形分離学習部51は、データ取得部31から(モデル学習部34に)供給される電流波形Yと、状態推定部32(の推定部42)から供給される各機器モデル#mの状態推定結果Γとを用いて、モデルパラメータφとしての電流波形パラメータを求める(更新する)波形分離学習を行い、その波形分離学習によって得られる電流波形パラメータによって、モデル記憶部33に記憶された電流波形パラメータを更新する。
分散学習部52は、データ取得部31から(モデル学習部34に)供給される電流波形Yと、状態推定部32(の推定部42)から供給される各機器モデル#mの状態推定結果Γとを用いて、モデルパラメータφとしての分散パラメータを求める(更新する)分散学習を行い、その分散学習によって得られる分散パラメータによって、モデル記憶部33に記憶された分散パラメータを更新する。
状態変動学習部53は、状態推定部32(の推定部42)から供給される各機器モデル#mの状態推定結果Γを用いて、モデルパラメータφとしての初期状態パラメータ、及び、状態変動パラメータを求める(更新する)状態変動学習を行い、その状態変動学習によって得られる初期状態パラメータ、及び、状態変動パラメータによって、モデル記憶部33に記憶された初期状態パラメータ、及び、状態変動パラメータをそれぞれ更新する。
ラベル取得部35は、状態推定部32(の推定部42)から供給される各機器モデル#mの状態推定結果Γ、モデル記憶部33に記憶された全体モデルφ、及び、データ出力部36で得られる、各機器モデル#mが表す機器の消費電力U(m)、通信部30から供給されるエージェント14からのデータ等を、必要に応じて用いて、各機器モデル#mに対応する機器を表す(機器を識別するための)機器ラベルL(m)を取得し、必要に応じて、データ出力部36に供給する。
データ出力部36は、データ取得部31から供給される電圧波形V、状態推定部32(の推定部42)から供給される各機器モデル#mの状態推定結果Γ、及び、モデル記憶部33に記憶された全体モデルを用いて、各機器モデル#mが表す(各機器モデル#mに対応する)ユーザ宅の各機器の消費電力U(m)を求め、ラベル取得部35から供給される機器ラベルL(m)とともに、ユーザ宅のユーザ等に提供する。
すなわち、データ出力部36は、ユーザ宅の各機器の消費電力U(m)、及び、機器ラベルL(m)を、通信部30からネットワーク15を介して、エージェント14に送信する。エージェント14は、例えば、ユーザ宅のTVや、ユーザ宅のユーザが有するスマートフォン等のディスプレイを有するディスプレイ機器と通信を行うことにより、ディスプレイ機器に、データ出力部36からの消費電力U(m)、及び、機器ラベルL(m)を送信して表示させることができる。
また、データ出力部36は、各機器モデル#mの状態推定結果Γに応じて、ユーザ宅の各機器の稼働状態を検知し、その稼働状態を表す稼働状態ラベルを、通信部30からネットワーク15を介して、エージェント14に送信する。エージェント14は、データ出力部36からのユーザ宅の各機器の稼働状態(ラベル)に応じて、所定の行動をとることができる。
以上のように構成される機器分離装置16において、モデル記憶部33に記憶される全体モデルとしては、例えば、FHMM(Factorial Hidden Markov Model)を採用することができる。
<FHMM>
図6は、FHMMを説明する図である。
すなわち、図6のAは、通常のHMMのグラフィカルモデルを示しており、図6のBは、FHMMのグラフィカルモデルを示している。
通常のHMMでは、時刻tに、その時刻tにいる1つの状態Stにおいて、1つの観測値Ytが観測される。
一方、FHMMでは、時刻tに、その時刻tにいる複数の状態S(1) t,S(2) t,・・・,S(M) tの組み合わせにおいて、1つの観測値Ytが観測される。
FHMMは、Zoubin Ghahramaniらが提案した確率生成モデルであり、その詳細については、例えば、Zoubin Ghahramani, and Michael I. Jordan, Factorial Hidden Markov Models’, Machine Learning Volume 29, Issue 2-3 ,Nov./Dec. 1997(以下、文献Aともいう)に記載されている。
図7は、FHMMによる機器分離の定式化の概要を説明する図である。
ここで、FHMMは、複数のHMMを有する構成になっている。FHMMが有する各HMMは、ファクタと呼ばれる。以下、FHMMが有するm番目のファクタを、ファクタ#mとも記載する。
FHMMにおいて、時刻tにいる複数の状態S(1) tないしS(M) tの組み合わせとは、時刻tにいる各ファクタ#mの状態の組み合わせ(ファクタ#1の状態と、ファクタ#2の状態と、・・・、ファクタ#Mの状態とのセット)である。
図7は、ファクタの数Mが3のFHMMを示している。
機器分離においては、例えば、1つのファクタが1つの機器に対応する(1つのファクタと1つの機器とを対応させる)。図7では、ファクタ#mが、機器#mに対応している。
FHMMにおいて、ファクタを構成する状態の数は、ファクタごとに任意であるが、図7では、3つのファクタ#1,#2,#3の状態の数は、いずれも、4個になっている。
図7では、時刻t=t0において、ファクタ#1は、4つの状態#11,#12,#13,#14のうちの、状態#14(太線の丸印で示す)になっており(いて)、ファクタ#2は、4つの状態#21,#22,#23,#24のうちの、状態#21(太線の丸印で示す)になっている。また、時刻t=t0において、ファクタ#3は、4つの状態#31,#32,#33,#34のうちの、状態#33(太線の丸印で示す)になっている。
機器分離においては、ファクタ#mの状態は、例えば、そのファクタ#mが対応する機器#mの稼働状態に対応する。
例えば、機器#1に対応するファクタ#1において、状態#11は、機器#1のオフ状態に対応し、状態#14は、機器#1の、いわゆる通常モードのオン状態に対応する。また、例えば、機器#1に対応するファクタ#1において、状態#12は、機器#1の、いわゆるスリープモードのオン状態に対応し、状態#13は、機器#1の、いわゆる省エネモードのオン状態に対応する。
FHMMにおいて、ファクタ#mの状態#miでは、各ファクタの状態ごとに固有の波形である固有波形W(m) #miが観測(生成)される。
図7において、ファクタ#1では、時刻t=t0にいる状態#14において、固有波形W(1) #14が観測され、ファクタ#2では、時刻t=t0にいる状態#21において、固有波形W(2) #21が観測される。さらに、ファクタ#3では、時刻t=t0にいる状態#33において、固有波形W(3) #33が観測される。
FHMMでは、各ファクタにおいている状態で観測される固有波形を合成した合成波形が、FHMMにおいて観測される観測値として生成される。
ここで、固有波形の合成としては、例えば、固有波形の総和(加算)を採用することができる。その他、固有波形の合成としては、例えば、固有波形の重み付け加算や、固有波形の論理和(固有波形の値が0と1の場合)等を採用することができるが、機器分離では、固有波形の総和が採用される。
FHMMの学習では、FHMMにおいて、各時刻t=・・・,t0,t1,・・・の総和データとしての電流波形・・・,Yt0,Yt0+1,・・・が観測されるように、FHMMのモデルパラメータが求められる(更新される)。
モデル記憶部33(図5)に記憶される全体モデルφとして、以上のようなFHMMを採用する場合、全体モデルφを構成する機器モデル#mは、ファクタ#mに相当する。
なお、FHMMのファクタの数Mとしては、ユーザ宅内に存在すると想定される機器の最大数よりも、マージンとしての所定数だけ大きい値が採用される。
また、全体モデルφとしてのFHMMとしては、各ファクタが2の状態又は3以上の状態を有するFHMMを採用することができる。
ファクタの状態数が2状態である場合には、そのファクタに対応する機器の稼働状態として、例えば、オフ状態とオン状態との2つの稼働状態だけを表現することができる。したがって、ファクタの状態数が2状態である場合には、モードや設定等によって消費電力(電流)が変動するエアコンディショナ等の、3つ以上の稼働状態を有する機器(変動負荷機器)については、正確な消費電力等を求めることが困難になる。
一方、全体モデルφとしてのFHMMとして、各ファクタが3以上の状態を有するFHMMを採用する場合には、3つ以上の稼働状態を有する変動負荷機器について、正確な消費電力等を求めることが可能となる。
全体モデルφとして、FHMMを採用する場合、FHMMにおいて観測される電流波形Ytの系列と、各ファクタ#mの状態S(m) tの組み合わせStの系列との同時分布P({St,Yt})は、マルコフ性を仮定することにより、式(1)で計算される。
ここで、同時分布P({St,Yt})は、時刻tにおいて、各ファクタ#mの状態S(m) tの組み合わせ(M個のファクタそれぞれの状態の組み合わせ)Stにおいて、電流波形Ytが観測される確率を表す。
P(S1)は、最初の時刻t=1において、各ファクタ#mの状態S(m) 1の組み合わせS1にいる初期状態確率を表す。
P(St|St-1)は、時刻t-1に、状態の組み合わせSt-1にいて、時刻tに、状態の組み合わせStに遷移する遷移確率を表す。
P(Yt|St)は、時刻tに、状態の組み合わせStにおいて、電流波形Ytが観測される観測確率を表す。
時刻tにおける状態の組み合わせStは、M個のファクタ#1ないし#Mそれぞれの、時刻tにおける状態S(1) t,S(2) t,・・・,S(M) tの組み合わせであり、式St={S(1) t,S(2) t,・・・,S(M) t}で表現される。
なお、機器#mの稼働状態は、他の機器#m'とは独立に変動すると仮定し、ファクタ#mの状態S(m) tは、他のファクタ#m'の状態S(m') tとは独立に遷移することとする。
また、FHMMのファクタ#mとしてのHMMの状態の数K(m)としては、他のファクタ#m'としてのHMMの状態の数K(m')とは独立な数を採用することができる。但し、ここでは、説明を簡単にするため、ファクタ#1ないし#Mの状態の数K(1)ないしK(M)は、式K(1)=K(2)=・・・=K(M)=Kで表される通り、同一の数Kであることとする。
FHMMにおいて、式(1)の同時分布P({St,Yt})の計算に必要な初期状態確率P(S1)、遷移確率P(St|St-1)、及び、観測確率P(Yt|St)は、以下のように計算することができる。
すなわち、初期状態確率P(S1)は、式(2)に従って計算することができる。
ここで、P(S(m) 1)は、ファクタ#mの状態S(m) 1が、最初の時刻t=1にいる状態(初期状態)である初期状態確率を表す。
初期状態確率P(S(m) 1)は、例えば、ファクタ#mのk番目(k=1,2,・・・,K)の状態の初期状態確率を、k行目のコンポーネントとするK行の列ベクトル(K行1列の行列)である。
遷移確率P(St|St-1)は、式(3)に従って計算することができる。
ここで、P(S(m) t|S(m) t-1)は、ファクタ#mにおいて、時刻t-1に状態S(m) t-1にいて、時刻tに状態S(m) tに遷移する遷移確率を表す。
遷移確率P(S(m) t|S(m) t-1)は、例えば、ファクタ#mのk番目の状態#kから、k'番目(k'=1,2,・・・,K)の状態#k'に遷移する遷移確率を、k行k'列目のコンポーネントとするK行K列の行列(正方行列)である。
観測確率P(Yt|St)は、式(4)に従って計算することができる。
ここで、ダッシュ(’)は転置を表し、上付きの−1は、逆数(逆行列)を表す。また、|C|は、Cの絶対値(行列式)(determinant演算)を表す。
また、Dは、観測値Ytの次元を表す。
例えば、電流センサ13は、電圧が、負の値から正の値に変化するときのゼロ交差のあるタイミングを、電流の位相が0になっているタイミングとして、所定のサンプリング間隔で、1周期分(日本では、1/50又は1/60秒)の電流をサンプリングし、そのサンプリング値をコンポーネントとする列ベクトルを、1時刻分の電流波形Ytとして出力する。
電流センサ13が1周期分の電流をサンプリングするサンプリングの回数がD回であるとすると、電流波形Ytは、D行の列ベクトルである。
式(4)の観測確率P(Yt|St)によれば、観測値Ytは、平均値(平均ベクトル)がμtで、分散(共分散行列)がCの正規分布に従う。
平均値μtは、電流波形Ytと同様のD行の列ベクトルであり、分散Cは、D行D列の行列(対角成分が分散の行列)である。
平均値μtは、図7で説明した固有波形W(m)を用い、式(5)で表される。
ここで、ファクタ#mの状態#kの固有波形を、W(m) kと表すこととすると、ファクタ#mの状態#kの固有波形W(m) kは、例えば、電流波形Ytと同様のD行の列ベクトルである。
また、固有波形W(m)は、ファクタ#mの各状態#1,#2,・・・,#Kの固有波形W(m) 1,W(m) 2,・・・,W(m) Kの集まりであり、ファクタ#mの状態#kの固有波形W(m) kである列ベクトルを、k列目のコンポーネントとするD行K列の行列である。
さらに、S*(m) tは、時刻tにいるファクタ#mの状態を表し、以下、S*(m) tを、時刻tのファクタ#mの現在状態ともいう。時刻tのファクタ#mの現在状態S*(m) tは、例えば、式(6)に示すように、K行のうちの1行のみのコンポーネントが1で、他の行のコンポーネントが0のK行の列ベクトルである。
時刻tにいるファクタ#mの状態が、状態#kである場合、時刻tのファクタ#mの現在状態S*(m) tとしてのK行の列ベクトルS*(m) tは、k行目のコンポーネントだけが1とされ、他のコンポーネントは0とされる。
式(5)によれば、時刻tにいる各ファクタ#mの状態#kの固有波形W(m) kの総和が、時刻tの電流波形Ytの平均値μtとして求められる。
FHMMのモデルパラメータφは、式(2)の初期状態確率P(S(m) 1)、式(3)の遷移確率P(S(m) t|S(m) t-1)、式(4)の分散C、及び、式(5)の固有波形W(m)(=W(m) 1,W(m) 2,・・・,W(m) K)であり、図5のモデル学習部34では、これらのFHMMのモデルパラメータφが求められる。
すなわち、波形分離学習部51は、波形分離学習によって、固有波形W(m)を、電流波形パラメータとして求める。分散学習部52では、分散学習によって、分散Cを、分散パラメータとして求める。状態変動学習部53は、状態変動学習によって、初期状態確率P(S(m) 1)、及び、遷移確率P(S(m) t|S(m) t-1)を、それぞれ、初期状態パラメータ、及び、状態変動パラメータとして求める。
ここで、例えば、個々の機器の稼働状態が、オンとオフの2状態であっても、通常のHMMによって、20個の機器の稼働状態(の組み合わせ)を表現する場合には、HMMの状態の数は、220=1,048,576個になり、遷移確率の数は、その2乗の1,099,511,627,776個になる。
一方、FHMMによれば、稼働状態がオンとオフの2状態しかないM個の機器は、各ファクタが2状態の、M個のファクタによって表現することができる。したがって、各ファクタにおいて、状態の数は、2個であり、遷移確率の数は、その2乗の4個であるから、FHMMによって、M=20個の機器(ファクタ)の稼働状態を表現する場合には、FHMMの状態の数(総数)は、40=2×20個という少ない数で済み、遷移確率の数も、80=4×20個という少ない数で済む。
FHMMの学習、すなわち、FHMMのモデルパラメータφとしての初期状態確率P(S(m) 1)、遷移確率P(S(m) t|S(m) t-1)、分散C、及び、固有波形W(m)の更新は、例えば、文献Aに記載されているように、EM(Expectation-Maximization)アルゴリズムに従って行うことができる。
EMアルゴリズムによるFHMMの学習では、式(7)の条件付き完全データ対数尤度の期待値Q(φnew|φ)を最大化するために、Eステップの処理とMステップの処理とが、交互に繰り返される。
ここで、条件付き完全データ対数尤度の期待値Q(φnew|φ)とは、モデルパラメータφの下で、完全データ{St,Yt}が観測される場合において、新たなモデルパラメータφnewの下で、完全データ{St,Yt}が観測される対数尤度log(P({St,Yt}|φnew))の期待値を意味する。
EMアルゴリズムのEステップの処理では、式(7)の条件付き完全データ対数尤度の期待値Q(φnew|φ)(に相当する値)が求められ、EMアルゴリズムのMステップの処理では、Eステップの処理で求められた期待値Q(φnew|φ)を、より大にする新たなモデルパラメータφnewが求められ、モデルパラメータφが、(期待値Q(φnew|φ)をより大にする)新たなモデルパラメータφnewに更新される。
<機器分離としてのFHMMのモデル学習>
図8は、機器分離装置16(図5)が行う機器分離としての、EMアルゴリズムに従ったFHMMのモデル学習の処理(学習処理)の例を説明するフローチャートである。
ステップS11において、モデル学習部34は、モデル記憶部33に記憶されたFHMMのモデルパラメータφとしての初期状態確率P(S(m) 1)、遷移確率P(S(m) t|S(m) t-1)、分散C、及び、固有波形W(m)を初期化し、処理は、ステップS12に進む。
ここで、初期状態確率P(S(m) 1)としてのK行の列ベクトルのk行目のコンポーネント、すなわち、ファクタ#mのk番目の初期状態確率π(m) kは、例えば、1/Kに初期化される。
遷移確率P(S(m) t|S(m) t-1)としてのK行K列の行列のi行j列目のコンポーネント(i,j=1,2,・・・,K)、すなわち、ファクタ#mにおいて、i番目の状態#iからj番目の状態#jに遷移する遷移確率P(m) i,jは、例えば、乱数を用いて、式P(m) i,1+P(m) i,2+・・・+P(m) i,K=1を満たすように、初期化される。
分散CとしてのD行D列の行列は、例えば、乱数を用いて、対角成分を設定し、他の成分(コンポーネント)を0としたD行D列の対角行列に初期化される。
固有波形W(m)としてのD行K列の行列のk列目の列ベクトル、すなわち、ファクタ#mの状態#kの固有波形W(m) kとしてのD行の列ベクトルの各コンポーネントは、例えば、乱数を用いて初期化される。
ステップS12では、データ取得部31が、電流センサ13で計測された所定の時間T分の電流波形を取得し、各時刻t=1,2・・・,Tの電流波形(以下、計測波形ともいう)Y1,Y2,・・・,YTを、状態推定部32、及び、モデル学習部34に供給して、処理は、ステップS13に進む。
ここで、データ取得部31は、時刻t=1,2・・・,Tの電流波形とともに、電圧波形も取得する。データ取得部31は、時刻t=1,2・・・,Tの電圧波形を、データ出力部36に供給する。
データ出力部36では、データ取得部31からの電圧波形が、消費電力の算出に用いられる。
ステップS13では、状態推定部32が、データ取得部31からの計測波形Y1ないしYTを用いて、Eステップの処理を行い、処理は、ステップS14に進む。
すなわち、ステップS13では、状態推定部32は、データ取得部31からの計測波形Y1ないしYTを用いて、モデル記憶部33に記憶されたFHMMの各ファクタ#mの各状態にいる状態確率等を求める状態推定を行い、その状態推定の状態推定結果を、モデル学習部34、及び、データ出力部36に供給する。
ここで、図7で説明したように、機器分離においては、ファクタ#mの状態は、そのファクタ#mが対応する機器#mの稼働状態に対応する。FHMMのファクタ#mの状態#kにいる状態確率は、機器#mの稼働状態が状態#kに対応する程度を表し、したがって、そのような状態確率を求める状態推定は、機器の稼働状態を求めている(推定している)、ということができる。
ステップS14では、モデル学習部34は、データ取得部31からの計測波形Y1ないしYT、及び、状態推定部32からの状態推定結果を用いて、Mステップの処理を行い、処理は、ステップS15に進む。
すなわち、ステップS14では、モデル学習部34は、データ取得部31からの計測波形Y1ないしYT、及び、状態推定部32からの状態推定結果を用いて、モデル記憶部33に記憶されたFHMMの学習を行うことにより、モデル記憶部33に記憶されたFHMMのモデルパラメータφとしての初期状態確率π(m) k、遷移確率P(m) i,j、分散C、及び、固有波形W(m)を更新する。
ステップS15では、モデル学習部34は、モデルパラメータφの収束条件が満たされているかどうかを判定する。
ここで、モデルパラメータφの収束条件としては、例えば、Eステップ及びMステップの処理があらかじめ設定された所定の回数だけ繰り返されたことや、FHMMにおいて、計測波形Y1ないしYTが観測される尤度の、モデルパラメータφの更新前と更新後との間の変化量が、あらかじめ設定された閾値以内であること等を採用することができる。
ステップS15で、モデルパラメータφの収束条件が満たされていないと判定された場合、処理は、ステップS13に戻り、以下、同様の処理が繰り返される。
また、ステップS15において、モデルパラメータφの収束条件が満たされると判定された場合、学習処理は、終了する。
なお、ステップS12ないしS15の処理は、定期的又は不定期に、繰り返し行われる。
図9は、図5の機器分離装置16が、図8のステップS13で行うEステップの処理を説明するフローチャートである。
ステップS21において、評価部41は、モデル記憶部33に記憶された全体モデルφとしてのFHMMの分散C、及び、固有波形W(m)、並びに、データ取得部31からの計測波形Yt={Y1,Y2,・・・,YT}を用い、各時刻t={1,2,・・・,T}の、状態の各組み合わせStについて、式(4)の観測確率P(Yt|St)を、評価値Eとして求め、推定部42に供給して、処理は、ステップS22に進む。
ステップS22では、推定部42が、評価部41からの観測確率P(Yt|St)、及び、モデル記憶部33に記憶された全体モデルφとしてのFHMMの遷移確率P(m) i,j(及び初期状態確率π(m))を用いて、計測波形Y1,Y2,・・・,Ytを観測し、時刻tに、状態の組み合わせ(時刻tにいるファクタ#1の状態と、ファクタ#2の状態と、・・・、ファクタ#Mの状態との組み合わせ)zにいる前向き確率αt,zを求め、処理は、ステップS23に進む。
ここで、HMMの前向き確率の求め方については、例えば、C.M. ビショップ, 「パターン認識と機械学習 下 ベイズ理論による統計的予測」, シュプリンガー・ジャパン, 2008(以下、文献Bともいう)の336ページに記載されている。
前向き確率αt,zは、例えば、1時刻前の前向き確率αt-1,wを用いた漸化式αt,z=Σαt-1,wP(z|w)P(Yt|z)に従って求めることができる。
漸化式αt,z=Σαt-1,wP(z|w)P(Yt|z)において、Σは、wを、FHMMの状態の組み合わせのすべてに変えてとるサメーションを表す。
また、漸化式αt,z=Σαt-1,wP(z|w)P(Yt|z)において、wは、1時刻前の時刻t-1にいる状態の組み合わせを表す。P(z|w)は、時刻t-1に、状態の組み合わせwにいて、時刻tに状態の組み合わせzに遷移する遷移確率を表し、P(Yt|z)は、時刻tに、状態の組み合わせzにおいて、計測波形Ytを観測する観測確率を表す。
なお、前向き確率αt,zの初期値、すなわち、時刻t=1のときの前向き確率α1,zとしては、状態の組み合わせzを構成する各ファクタ#mの状態#kの初期状態確率π(m) kの積が採用される。
ステップS23では、推定部42が、評価部41からの観測確率P(Yt|St)、及び、モデル記憶部33に記憶された全体モデルφとしてのFHMMの遷移確率P(m) i,jを用いて、時刻tに、状態の組み合わせzにいて、その後、計測波形Yt,Yt+1,・・・,YTを観測する後ろ向き確率βt,zを求め、処理は、ステップS24に進む。
ここで、HMMの後ろ向き確率の求め方については、例えば、上述の文献Bの336ページに記載されている。
後ろ向き確率βt,zは、例えば、1時刻後の後ろ向き確率βt+1,wを用いた漸化式βt,z=ΣP(Yt|z)P(w|z)βt+1,wに従って求めることができる。
漸化式βt,z=ΣP(Yt|z)P(w|z)βt+1,wにおいて、Σは、wを、FHMMの状態の組み合わせのすべてに変えてとるサメーションを表す。
また、漸化式βt,z=ΣP(Yt|z)P(w|z)βt+1,wにおいて、wは、1時刻後の時刻t+1にいる状態の組み合わせを表す。P(w|z)は、時刻tに、状態の組み合わせzにいて、時刻t+1に状態の組み合わせwに遷移する遷移確率を表し、P(Yt|z)は、時刻tに、状態の組み合わせzにおいて、計測波形Ytを観測する観測確率を表す。
なお、後ろ向き確率βt,zの初期値、すなわち、時刻t=Tのときの後ろ向き確率βT,zとしては、1が採用される。
ステップS24では、推定部42は、前向き確率αt,zと後ろ向き確率βt,zを用いて、式(8)に従い、全体モデルφとしてのFHMMにおいて、時刻tに、状態の組み合わせzにいる事後確率γt,zを求め、処理は、ステップS25に進む。
ここで、式(8)の右辺の分母のΣは、wを、時刻tに取り得る状態の組み合わせStのすべてに変えてとるサメーションを表す。
式(8)によれば、事後確率γt,zは、前向き確率αt,zと後ろ向き確率βt,zとの積αt,zβt,zを、その積αt,wβt,wの、FHMMが取り得る状態の組み合わせw∈Stについての総和Σαt,wβt,wで正規化することにより求められる。
ステップS25では、推定部42は、事後確率γt,zを用い、ファクタ#mにおいて、時刻tに、状態S(m) tにいる事後確率<S(m) t>と、時刻tに、ファクタ#mにおいて、状態S(m) tにいて、他のファクタ#nにおいて、状態S(n) tにいる事後確率<S(m) tS(n) t'>とを求め、処理は、ステップS26に進む。
ここで、事後確率<S(m) t>は、式(9)に従って求められる。
式(9)によれば、ファクタ#mにおいて、時刻tに、状態S(m) tにいる事後確率<S(m) t>は、時刻tに、状態の組み合わせzにいる事後確率γt,zを、ファクタ#mの状態を含まない状態の組み合わせzについて周辺化することにより求められる。
なお、事後確率<S(m) t>は、例えば、時刻tに、ファクタ#mのK個の状態のうちのk番目の状態いる状態確率(事後確率)を、k行目のコンポーネントとするK行の列ベクトルである。
事後確率<S(m) tS(n) t'>は、式(10)に従って求められる。
式(10)によれば、時刻tに、ファクタ#mにおいて、状態S(m) tにいて、他のファクタ#nにおいて、状態S(n) tにいる事後確率<S(m) tS(n) t'>は、時刻tに、状態の組み合わせzにいる事後確率γt,zを、ファクタ#mの状態と、ファクタ#nの状態との両方を含まない状態の組み合わせzについて周辺化することにより求められる。
なお、事後確率<S(m) tS(n) t'>は、例えば、時刻tに、ファクタ#mの状態#kと、他のファクタ#nの状態#k'とにいる状態確率(事後確率)を、k行k'列目のコンポーネントとするK行K列の行列である。
ステップS26では、推定部42は、前向き確率αt,z、後ろ向き確率βt,z、遷移確率P(z|w)、及び、評価部41からの観測確率P(Yt|St)を用いて、ファクタ#mにおいて、時刻t-1に、状態S(m) t-1にいて、次の時刻tに、状態S(m) tにいる事後確率<S(m) t-1S(m) t'>を求める。
そして、推定部42は、事後確率<S(m) t>,<S(m) tS(n) t'>、及び、<S(m) t-1S(m) t'>を、状態推定結果として、モデル学習部34、ラベル取得部35、及び、データ出力部36に供給し、Eステップの処理からリターンする。
ここで、事後確率<S(m) t-1S(m) t'>は、式(11)に従って求められる。
式(11)の事後確率<S(m) t-1S(m) t'>の算出にあたり、状態の組み合わせwから状態の組み合わせzに遷移する遷移確率P(z|w)は、式(3)に従い、状態の組み合わせwを構成するファクタ#1の状態#i(1)から状態の組み合わせzを構成するファクタ#1の状態#j(1)への遷移確率P(1) i(1),j(1)、状態の組み合わせwを構成するファクタ#2の状態#i(2)から状態の組み合わせzを構成するファクタ#2の状態#j(2)への遷移確率P(2) i(2),j(2)、・・・、及び、状態の組み合わせwを構成するファクタ#Mの状態#i(M)から状態の組み合わせzを構成するファクタ#Mの状態#j(M)への遷移確率P(M) i(M),j(M)の積P(1) i(1),j(1)×P(2) i(2),j(2)×・・・×P(M) i(M),j(M)として求められる。
なお、事後確率<S(m) t-1S(m) t'>は、例えば、ファクタ#mにおいて、時刻t-1に状態#iにいて、次の時刻tに状態jにいる状態確率(事後確率)を、i行j列目のコンポーネントとするK行K列の行列である。
図10は、FHMMの前向き確率αt,z、及び、後ろ向き確率βt,zと、(通常の)HMMの前向き確率αt,i、及び、後ろ向き確率βt,jとの関係を説明する図である。
FHMMについては、そのFHMMと等価なHMMを構成することができる。
あるFHMMと等価なHMMは、そのFHMMの各ファクタの状態の組み合わせzに相当する状態を有する。
そして、FHMMの前向き確率αt,z、及び、後ろ向き確率βt,zは、そのFHMMと等価なHMMの前向き確率αt,i、及び、後ろ向き確率βt,jに一致する。
図10のAは、2つの状態#1及び#2を有するファクタ#1と#2からなるFHMMを示している。
図10のAのFHMMでは、ファクタ#1の状態#kとファクタ#2の状態#k'との組み合わせz=[k,k']として、ファクタ#1の状態#1とファクタ#2の状態#1との組み合わせ[1,1]、ファクタ#1の状態#1とファクタ#2の状態#2との組み合わせ[1,2]、ファクタ#1の状態#2とファクタ#2の状態#1との組み合わせ[2,1]、及び、ファクタ#1の状態#2とファクタ#2の状態#2との組み合わせ[2,2]の4通りがある。
図10のBは、図10のAのFHMMと等価なHMMを示している。
図10のBのHMMは、図10のAのFHMMの状態の4つの組み合わせ[1,1],[1,2],[2,1]、及び、[2,2]それぞれに相当する4つの状態#(1,1),#(1,2),#(2,1)、及び、#(2,2)を有する。
そして、図10のAのFHMMの前向き確率αt,z={αt,[1,1],αt,[1,2],αt,[2,1],αt,[2,2]}は、図10のBのHMMの前向き確率αt,i={αt,(1,1),αt,(1,2),αt,(2,1),αt,(2,2)}と一致する。
同様に、図10のAのFHMMの後ろ向き確率βt,z={βt,[1,1],βt,[1,2],βt,[2,1],βt,[2,2]}は、図10のBのHMMの前向き確率βt,i={βt,(1,1),βt,(1,2),βt,(2,1),βt,(2,2)}と一致する。
例えば、上述の式(8)の右辺の分母、つまり、積αt,wβt,wの、FHMMが取り得る状態の組み合わせw∈Stについての総和Σαt,wβt,wは、図10のAのFHMMについては、式Σαt,wβt,w=αt,[1,1]βt,[1,1]+αt,[1,2]βt,[1,2]+αt,[2,1]βt,[2,1]+αt,[2,2]βt,[2,2]で表される。
図11は、図5の機器分離装置16が、図8のステップS14で行うMステップの処理を説明するフローチャートである。
ステップS31において、波形分離学習部51は、データ取得部31からの計測波形Yt、並びに、推定部42からの事後確率<S(m) t>、及び、<S(m) tS(n) t'>を用いて、波形分離学習を行うことにより、固有波形W(m)の更新値W(m)newを求め、その更新値W(m)newによって、モデル記憶部33に記憶された固有波形W(m)を更新して、処理は、ステップS32に進む。
すなわち、波形分離学習部51は、波形分離学習として、式(12)を計算することにより、固有波形W(m)の更新値W(m)newを求める。
ここで、Wnewは、D行K列の行列であるファクタ#mの固有波形W(m)の更新値W(m)newが、ファクタ(のインデクス)#m順に、左から右方向に並んだD行K×M列の行列である。D行K×M列の行列である固有波形(の更新値)Wnewの(m-1)K+k列の列ベクトルは、ファクタ#mの状態#kの固有波形W(m) k(の更新値)になっている。
<St'>は、K行の列ベクトルである事後確率<S(m) t>が、ファクタ#m順に、上から下方向に並んだK×M行の列ベクトルを転置したK×M列の行ベクトルである。K×M列の行ベクトルである事後確率<St'>の(m-1)K+k列目のコンポーネントは、時刻tに、ファクタ#mの状態#kにいる状態確率になっている。
<StSt'>は、K行K列の行列である事後確率<S(m) tS(n) t'>が、ファクタ#m順に、上から下方向に並び、かつ、ファクタ#n順に、左から右方向に並んだK×M行K×M列の行列である。K×M行K×M列の行列である事後確率<StSt'>の(m-1)K+k行(n-1)K+k'列目のコンポーネントは、時刻tに、ファクタ#mの状態#kと、他のファクタ#nの状態#k'とにいる状態確率になっている。
上付のアスタリスク(*)は、逆行列、又は、擬似逆行列を表す。
式(12)を計算する波形分離学習によれば、計測波形Ytと式(5)の平均値μt=ΣW(m)S*(m) tとの誤差が、なるべく小さくなるように、計測波形Ytが、固有波形W(m)に分離される。
ステップS32では、分散学習部52が、データ取得部31からの計測波形Yt、推定部42からの事後確率<S(m) t>、及び、及び、モデル記憶部33に記憶された固有波形W(m)を用いて、分散学習を行うことにより、分散Cの更新値Cnewを求め、モデル記憶部33に記憶された分散Cを更新して、処理は、ステップS33に進む。
すなわち、分散学習部52は、分散学習として、式(13)を計算することにより、分散Cの更新値Cnewを求める。
ステップS33では、状態変動学習部53が、推定部42からの事後確率<S(m) t>、及び、<S(m) t-1S(m) t'>を用いて、状態変動学習を行うことにより、遷移確率P(m) i,jの更新値P(m) i,j new、及び、初期状態確率π(m)の更新値π(m)newを求め、その更新値P(m) i,j new、及び、π(m)newによって、モデル記憶部33に記憶された遷移確率P(m) i,j、及び、初期状態確率π(m)を更新して、Mステップの処理からリターンする。
すなわち、状態変動学習部53は、状態変動学習として、式(14)、及び、式(15)を計算することにより、それぞれ、遷移確率P(m) i,jの更新値P(m) i,j new、及び、初期状態確率π(m)の更新値π(m)newを求める。
ここで、<S(m) t-1,iS(m) t,j>は、K行K列の行列である事後確率<S(m) t-1S(m) t'>のi行j列目のコンポーネントであり、ファクタ#mにおいて、時刻t-1に状態#iにいて、次の時刻tに状態#jにいる状態確率を表す。
<S(m) t-1,i>は、K行の列ベクトル事後確率<S(m) t-1>のi行目のコンポーネントであり、時刻t-1に、ファクタ#mの状態#iいる状態確率を表す。
π(m)(π(m)new)は、ファクタ#mの状態#kの初期状態確率π(m) k(の更新値π(m) k new)を、k行目のコンポーネントとするK行の列ベクトルである。
<情報提示処理>
図12は、機器分離装置16(図5)が行う、機器#mの情報を提示する情報提示処理の例を説明するフローチャートである。
ステップS41において、データ出力部36は、データ取得部31からの電圧波形(電流波形Ytに対応する電圧波形)Vt、状態推定部32からの状態推定結果としての事後確率<S(m) t>、及び、モデル記憶部33に記憶された固有波形W(m)を用いて、各ファクタ#mの消費電力U(m)を求め、処理は、ステップS42に進む。
ここで、データ出力部36は、時刻tの電圧波形Vtと、時刻tのファクタ#mに対応する機器#mの消費電流Atとを用いて、時刻tのファクタ#mに対応する機器#mの消費電力U(m)を求める。
データ出力部36において、時刻tのファクタ#mに対応する機器#mの消費電流Atは、以下のようにして求められる。
すなわち、データ出力部36は、例えば、ファクタ#mにおいて、事後確率<S(m) t>が最大の状態#kの固有波形W(m)を、時刻tのファクタ#mに対応する機器#mの消費電流Atとして求める。
また、データ出力部36は、例えば、K行の列ベクトルである事後確率<S(m) t>のコンポーネントである、時刻tのファクタ#mの各状態の状態確率を重みとして用いた、ファクタ#mの各状態の固有波形W(m) 1,W(m) 2,・・・,W(m) Kの重み付け加算値を、時刻tのファクタ#mに対応する機器#mの消費電流Atとして求める。
なお、FHMMの学習が進行し、ファクタ#mが、機器#mを適切に表現する機器モデルとなると、時刻tのファクタ#mの各状態の状態確率は、時刻tの機器#mの稼働状態に対応する状態の状態確率がほぼ1になり、残りのK-1個の状態の状態確率はほぼ0となる。
その結果、ファクタ#mにおいて、事後確率<S(m) t>が最大の状態#kの固有波形W(m)と、時刻tのファクタ#mの各状態の状態確率を重みとして用いた、ファクタ#mの各状態の固有波形W(m) 1,W(m) 2,・・・,W(m) Kの重み付け加算値とは、ほぼ同一となる。
ステップS42では、ラベル取得部35が、各機器モデル#mが表す機器#m、すなわち、FHMMの各ファクタ#mに対応する機器#mを識別する機器ラベルL(m)を取得し、データ出力部36に供給して、処理は、ステップS43に進む。
ここで、ラベル取得部35では、例えば、データ出力部36において求められる各ファクタ#mに対応する機器#mの消費電流Atや、消費電力U(m)、その消費電力U(m)から認識される機器#mの使用時間帯を、通信部30からネットワーク15を介してユーザ宅に送信して、ユーザ宅のディスプレイ機器に表示させることで、ユーザに提示することができる。
そして、ラベル取得部35では、例えば、ユーザに提示した消費電流Atや、消費電力U(m)、使用時間帯にあてはまる機器の名称を、ユーザに入力してもらい、ネットワーク15、及び、通信部30を介して受信することで、ユーザにより入力された機器の名称を、機器ラベルL(m)として取得することができる。
また、ラベル取得部35では、例えば、様々な機器について、その消費電力や、電流波形(消費電流)、使用時間帯等の属性と、機器の名称とを対応付けて登録したデータベースを事前に用意しておき、そのデータベースにおいて、データ出力部36で求められる各ファクタ#mに対応する機器#mの消費電流Atや、消費電力U(m)、その消費電力U(m)から認識される機器#mの使用時間帯に対応付けられている機器の名称を、機器ラベルL(m)として取得することができる。
なお、ラベル取得部35において、既に、機器ラベルL(m)が取得され、データ出力部36に供給されている機器#mに対応するファクタ#mについては、ステップS42の処理をスキップすることができる。
ステップS43では、データ出力部36が、各ファクタ#mに対応する機器の消費電力U(m)を、そのファクタ#mの機器ラベルL(m)とともに、通信部30からネットワーク15を介してユーザ宅に送信して、ユーザ宅のディスプレイ機器に表示させること等により、ユーザに提示して、情報提示処理は終了する。
図13は、図12の情報提示処理において、ユーザ宅のディスプレイ機器で表示される消費電力U(m)の表示例を示す図である。
ディスプレイ機器では、例えば、図13に示すように、各ファクタ#mに対応する機器#mの消費電力U(m)の時系列を、その機器#mの名称等の機器ラベルL(m)とともに表示することができる。
機器分離装置16では、各ファクタが3以上の状態を有するFHMMによって、各機器の稼働状態をモデル化するFHMMの学習を、機器分離として行うことで、モードや設定等によって消費電力(電流)が変動するエアコンディショナ等の変動負荷機器について、正確な消費電力等を求めることができる。
また、機器分離装置16では、分電盤12等の1箇所で、ユーザ宅内の各機器で消費されている電流の総和を計測するだけで、ユーザ宅内の各機器の消費電力を求めることができるので、コスト、及び、労力のいずれの面からも、容易に、ユーザ宅内の各機器の消費電力の「見える化」を実現することができる。
以上のような、ユーザ宅内の各機器の消費電力の「見える化」によれば、例えば、ユーザ宅での節電の意識を高めることができる。
また、機器分離装置16では、多くのユーザ宅内の各機器の消費電力を収集し、各ユーザ宅の機器の消費電力から、機器の使用時間帯、ひいては、生活パターンを推定し、マーケティング等に役立てることができる。
ところで、機器分離装置16において、電流センサ13で計測された電流波形Ytを用いて、ユーザ宅の各機器の消費電流等を求める機器分離を行うには、機器の稼働状態が変化し、機器の消費電流が変化することが必要である。
機器の稼働状態は、例えば、ユーザの操作によって変化するが、機器の稼働状態の変化を、ユーザの操作だけに頼るのでは、機器分離を行うのに時間を要する。
また、機器分離装置16のラベル取得部35において、ユーザにより入力された機器の名称を、機器ラベルL(m)として取得するのでは、ユーザに、機器ラベルL(m)となる機器の名称を入力してもらう必要があり、ユーザに煩わしさを感じさせることがあり得る。
そこで、図1の機器分離システムでは、エージェント14と機器分離装置16とが協調して動作することで、機器の稼働状態を、迅速に変化させ、機器分離が、迅速に行われるようになっている。
さらに、図1の機器分離システムでは、エージェント14と機器分離装置16とが協調して動作することで、ユーザに、機器ラベルL(m)(となる機器の名称)を入力してもらうことなく、ファクタ#mに、そのファクタ#mに対応する機器の機器ラベルL(m)を取得して対応付けるようになっている。
以下、以上のように協調して動作するエージェント14、及び、機器分離装置16について説明する。
<エージェント14の構成例>
図14は、図1のエージェント14の外観構成例を示す斜視図である。
図14の実施の形態において、エージェント14は、犬を模したペット型ロボットであり、大きく分けて、胴体部ユニット1、脚部ユニット102A,102B,102C,102D、頭部ユニット103、及び、尻尾部ユニット104から構成されている。
胴体に相当する胴体部ユニット101の前後左右には、それぞれ、脚に相当する脚部ユニット102A,102B,102C,102Dが連結され、胴体部ユニット101の前端部と後端部には、それぞれ、頭部に相当する頭部ユニット103と尻尾に相当する尻尾部ユニット104が連結されている。
胴体部ユニット101の上面には背中センサ101Aが設けられている。また、頭部ユニット103には、その上部に頭センサ103Aが、下部に顎センサ103Bがそれぞれ設けられている。なお、背中センサ101A、頭センサ103A、顎センサ103Bは、いずれも圧力センサで構成され、その部位に与えられる圧力を検知する。
尻尾部ユニット104は、胴体部ユニット101に対して、水平方向、及び、上下方向に揺動自在に取り付けられている。
図15は、図14のエージェント14の内部構成例を示すブロック図である。
図15に示すように、胴体部ユニット101には、制御部111、A/D(Analog/Digital)変換部112、D/A変換部113、通信部114、半導体メモリ115、背中センサ101A等が格納されている。
制御部111は、エージェント14全体の制御、及び、各種の処理を行う。
A/D変換部112は、マイク121、CCDカメラ122L及び、122R、背中センサ101A、頭センサ103A、顎センサ103Bが出力するアナログ信号をA/D変換することによりディジタル信号とし、制御部111に供給する。D/A変換部113は、制御部111から供給されるディジタル信号をD/A変換することによりアナログ信号とし、スピーカ123に供給する。
通信部114は、外部と無線や有線で通信する。すなわち、通信部114は、外部から送信されているデータを受信して、制御部111に供給する。また、通信部114は、制御部111から供給されるデータを、外部に送信する。
半導体メモリ115は、例えば、RAM(Random Access Memory)等の揮発性メモリや、EEPROM(Electrically Erasable Programmable Read-only Memory)等の不揮発性メモリで構成される。半導体メモリ115は、制御部111の制御に従い、例えば、後述する機器テーブル、その他の必要なデータ等を記憶する。
なお、半導体メモリ115は、胴体部ユニット101に設けられた図示せぬスロットに対して、着脱可能なように構成することができる。
背中センサ101Aは、胴体部ユニット101において、エージェント14の背中に対応する部位に設けられており、そこに与えられるユーザからの圧力を検出し、その圧力に対応する圧力検出信号を、A/D変換部112を介して制御部111に出力する。
なお、胴体部ユニット101には、その他、例えば、エージェント14の動力源となるバッテリ(図示せず)や、そのバッテリ残量を検出する回路等も格納されている。
頭部ユニット103においては、図15に示すように、外部からの刺激を感知するセンサとしての、音を感知する「耳」に相当するマイク121、光を感知する「左目」及び、「右目」に相当するイメージセンサ122L及び122R、並びに、ユーザが触れること等により与えられる圧力を感知する触覚に相当する頭センサ103A及び顎センサ103Bが、例えば、それぞれ対応する部位に設けられている。また、頭部ユニット103には、エージェント14の「口」に相当するスピーカ123が、例えば、対応する部位に設置されている。
脚部ユニット102Aないし102Dのそれぞれの関節部分、脚部ユニット102Aないし102Dのそれぞれと胴体部ユニット101の連結部分、頭部ユニット103と胴体部ユニット101の連結部分、並びに、尻尾部ユニット104と胴体部ユニット101の連結部分等には、アクチュエータが設置されている。アクチュエータは、制御部111からの指示に基づいて各部を動作させる。即ち、アクチュエータによって、例えば、脚部ユニット102Aないし102Dが動き、これにより、ロボットが歩行する。
頭部ユニット103に設置されているマイク121は、ユーザからの発話を含む周囲の音声(音)を集音し、得られた音声信号を、A/D変換部112を介して制御部111に出力する。イメージセンサ122L及び122Rは、周囲の状況を撮像し、得られた画像信号を、A/D変換部112を介して制御部111に出力する。頭部ユニット103の上部に設けられた頭センサ103Aや、頭部ユニット103の下部に設けられた顎センサ103Bは、例えば、ユーザからの「撫でる」や「叩く」といった物理的な働きかけにより受けた圧力を検出し、その検出結果を圧力検出信号として、A/D変換部112を介して、制御部111に出力する。
ここで、図15において、制御部111は、行動決定部131、認識部132、位置検出部133、操作制御部134、報知制御部135、及び、テーブル生成部136を有する。
行動決定部131は、例えば、マイク121や、イメージセンサ122L及び122R、背中センサ101A、頭センサ103A、顎センサ103Bから、A/D変換部112を介して与えられる音声信号や、画像信号、圧力検出信号等に基づいて、周囲の状況や、ユーザからの指令、ユーザからの働きかけ等の有無を判断し、その判断結果に基づいて、エージェント14が次にとる行動を決定する。そして、行動決定部131は、行動の決定結果に基づいて、必要なアクチュエータを駆動させ、これにより、頭部ユニット103を上下左右に振らせたり、尻尾部ユニット104を動かせたりする。また、行動決定部131は、各脚部ユニット102Aないし102Dを駆動して、エージェント14を歩行させたり、ユーザ宅の機器を操作させる等の行動をとらせる。
また、行動決定部131は、行動の決定結果に基づいて、合成音を生成し、それを、D/A変換部113を介して、スピーカ123に供給して出力させたり、エージェント14の「目」の位置に設けられた、図示しないLED(Light Emitting Diode)を点灯、消灯又は点滅させたりする。
以上のように、行動決定部131は、周囲の状況や、接してくるユーザ等に基づいて、エージェント14に、自律的に行動をとらせる。
認識部132は、例えば、イメージセンサ122L及び122Rから、A/D変換部112を介して制御部111に供給される画像信号に基づき、エージェント14が操作の対象とする機器(以下、操作対象機器ともいう)を認識し、その操作対象機器を表す機器ラベルを取得する。
すなわち、認識部132は、例えば、イメージセンサ122L及び122Rから供給される操作対象機器の画像信号に基づき、その操作対象機器を認識し、その機種名や型番等の、操作対象機器を識別する情報を、操作対象機器の機器ラベルとして取得する。
操作対象機器の機器ラベルとしての機種名や型番等は、例えば、インターネット上のサーバから検索し、通信部114を介してダウンロードすること等により取得することができる。
その他、操作対象機器の機器ラベルとしての機種名や型番等は、通信部114を介して、操作対象機器と通信することにより取得することができる。
また、認識部132は、例えば、イメージセンサ122L及び122Rから供給される操作対象機器の画像信号に基づき、その操作対象機器の稼働状態を認識し、その稼働状態を表す稼働状態ラベルを取得する。
すなわち、認識部132は、例えば、操作対象機器の稼働状態として、操作対象機器の電源がオフ又はオンになっていることを認識した場合には、それぞれ、電源がオフ又はオンになっている旨を表す文字列「電源オフ」又は「電源オン」を、稼働状態ラベルとして生成することにより取得する。
また、認識部132は、例えば、操作対象機器の稼働状態として、操作対象機器の動作モードが省電力モードになっていることを認識した場合には、省電力モードを表す文字列「省電力モード」を、稼働状態ラベルとして生成することにより取得する。
なお、認識部132において、操作対象機器や、操作対象機器の稼働状態は、操作対象機器の画像信号に基づいて認識する他、例えば、通信部114を介して、操作対象機器と通信することにより認識することができる。
また、認識132において、操作対象機器や、操作対象機器の稼働状態は、例えば、操作対象機器や、操作対象機器の稼働状態を、ユーザに聞くことで認識することができる。
すなわち、例えば、エージェント14において、合成音等によって、操作対象機器や、操作対象機器の稼働状態を、ユーザに質問し、その質問に対するユーザの音声による回答を音声認識することにより、操作対象機器や、操作対象機器の稼働状態を認識することができる。
この場合、例えば、ユーザの音声による回答の音声認識結果を、機器ラベルや稼働状態ラベルとして採用することができる。
位置検出部133は、例えば、GPS(Global Positioning System)等を利用して、操作対象機器の位置を検出し、その位置を表す位置情報を出力する。
例えば、ある絶対的な3次元座標系を定義し、その3次元座標系の座標を、操作対象機器の位置情報として採用することができる。また、例えば、エージェント14において、ユーザ宅の見取り図を作成すること等により取得し、その見取り図上の所定の位置を基準とする座標系の座標や、見取り図上の場所(例えば、リビングルームや、寝室等)を、操作対象機器の位置情報として採用することができる。
操作制御部134は、エージェント14による操作対象機器の操作を制御する。
すなわち、操作制御部134は、操作対象機器に対して、どのような操作を行うかを決定し、その操作を行うように、行動決定部131に要求する。行動決定部131は、操作制御部134の要求に従った操作が行われるように、エージェント14の行動を決定し、必要なアクチュエータを駆動させる。
ユーザ宅の機器の稼働状態の検知を、ネットワーク15を介して機器分離装置16に要求する。そして、報知制御部135は、稼働状態の検知の要求に対して、機器分離装置16から送信されてくる、ユーザ宅の機器の稼働状態を表す稼働状態ラベルを取得し、その稼働状態ラベルに応じて、機器の稼働状態の報知を制御する。
すなわち、機器分離装置16は、後述するように、必要に応じて、ユーザ宅の機器の稼働状態を表す稼働状態ラベルを、ネットワーク15を介して、エージェント14に送信する。
報知制御部135は、機器分離装置16から、ユーザ宅の機器の稼働状態を表す稼働状態ラベルが送信されてきた場合に、その機器分離装置16からの稼働状態ラベルを、通信部114を介して取得し、その稼働状態ラベルに応じて、機器の稼働状態を報知するように、行動決定部131に要求する。行動決定部131は、操作制御部134の要求に従い、例えば、機器の稼働状態を音声で出力することを決定し、機器の稼働状態を報知する合成音を生成して、D/A変換部113を介して、スピーカ123から出力させる。
テーブル生成部136は、認識部132で得られる機器(操作対象機器)の機器ラベルと、位置検出部133で得られる機器の位置情報とを対応付け、半導体メモリ115に記憶された機器テーブルに登録する。
ここで、機器テーブルに登録される機器(操作対象機器)の機器ラベル及び位置情報は、通信部114から、ネットワーク15を介して、機器分離装置16に送信される。
また、操作制御部134の制御によって、エージェント14が、操作対象機器の操作を行い、認識部132が、その操作後の操作対象機器の稼働状態を認識して、その稼働状態の稼働状態ラベルを取得した場合には、その稼働状態ラベルは、通信部114から、ネットワーク15を介して、機器分離装置16に送信される。
なお、操作制御部134では、例えば、インターネット上のサーバから、操作対象機器が、その稼働状態として、どのような稼働状態をとり得るのかを検索し、操作対象機器がとり得る稼働状態の中から、操作対象機器にとらせる稼働状態を、指示稼働状態として選択することができる。この場合、操作制御部134では、指示稼働状態になるように、操作対象機器の操作を制御することができる。さらに、この場合、認識部132では、指示稼働状態を、操作対象機器の稼働状態として認識することができる。
図16は、図15の半導体メモリ115に記憶される機器テーブルの例を示す図である。
機器テーブルには、認識部132で得られる機器の機器ラベルと、位置検出部133で得られる機器の位置情報とが対応付けられて登録される。
エージェント14は、例えば、ユーザ宅内を自律的に移動し、その移動中に、認識部132は、イメージセンサ122L及び122Rから、A/D変換部112を介して制御部111に供給される画像信号に基づき、機器を認識して、その機器を、操作対象機器の候補である候補機器に選択する。
さらに、認識部132は、候補機器の機器ラベルを取得し、位置情報検出部133に、候補機器の位置情報を検出させる。そして、認識部132は、候補機器の機器ラベルと位置情報とのセットが、機器テーブルに登録されているかどうかを判定する。
候補機器の機器ラベルと位置情報とのセットが、機器テーブルに登録されている場合、認識部132は、候補機器が、既に、操作対象機器に選択されたことがあると認識する。そして、認識部132は、別の機器を、候補機器に選択し直し、以下、同様の処理を繰り返す。
一方、候補機器の機器ラベルと位置情報とのセットが、機器テーブルに登録されていない場合、認識部132は、候補機器を、操作対象機器に選択し、テーブル生成部136を制御することで、(候補機器であった)操作対象機器の機器ラベルと位置情報とを対応付けて、半導体メモリ115に記憶された機器テーブルに登録させる。
<ラベル取得部35の構成例>
図17は、エージェント14と機器分離装置16とが協調して動作する場合の図5のラベル取得部35の構成例を示すブロック図である。
ラベル取得部35は、取得部201及び202、ラベル付け部203、対応関係記憶部204、及び、制御部205を有する。
(機器情報)取得部201は、エージェント14から、ネットワーク15を介して送信され、通信部30(図5)で受信される操作対象機器の機器情報を取得し、ラベル付け部203に供給する。
ここで、操作対象機器の機器情報とは、操作対象機器に関する情報であり、本実施の形態では、機器情報として、操作対象機器の機器ラベルや、位置情報、稼働状態ラベルがある。
(可能性情報)取得部202は、ユーザ宅の電流波形Ytを用いた機器分離により得られる状態確率(事後確率)<S(m) t>を、状態推定部32(の推定部42)から取得し、ラベル付け部203に供給する。
ここで、機器分離装置16での機器分離では、上述したことから、ユーザ宅のすべての機器で消費されている電流の総和に関する総和データとしての電流波形Ytを用いて、各機器の各稼働状態の消費電流を表すパターン情報としての各ファクタ#mの各状態#kの固有波形W(m) kを更新する(求める)ことにより、各機器の消費電流が分離される(固有波形W(m) kが、ファクタ#mの状態#kに対応する機器#mの稼働状態での消費電流として、電流波形Ytから分離される)、ということができる。
そして、パターン情報としての固有波形W(m) kの更新では、固有波形W(m) kについて、その固有波形W(m) kが表す消費電流がファクタ#mに対応する機器#mで消費されている可能性を表す可能性情報としての状態確率<S(m) t>が、電流波形Ytを用いて求められ、その可能性情報としての状態確率<S(m) t>に基づいて、パターン情報としての固有波形W(m) kが更新される、ということができる。
取得部202は、以上のような機器分離において、固有波形W(m) k(を有する状態#k)について、状態推定部32で得られる可能性情報としての状態確率<S(m) t>を、状態推定部32から取得する。
ラベル付け部203は、取得部202からの可能性情報としての状態確率<S(m) t>に基づいて、操作対象機器の現在の稼働状態において消費されている消費電流を表すパターン情報としての固有波形W(m) kを特定し、その固有波形W(m) k(を有する状態#k)に、取得部201からの機器情報としての操作対象機器の機器ラベルと稼働状態ラベルを対応付けるラベル付けを行う。
そして、ラベル付け部203は、ラベル付けの結果得られる対応付け情報を、対応関係記憶部204に記憶された対応関係テーブルに登録する。
対応関係記憶部204は、対応関係テーブルを記憶する。
制御部205は、例えば、ラベル付け部203を監視し、その監視結果に基づいて、通信部30(図5)、及び、ネットワーク15を介して、エージェント14(の通信部114)との間で、必要なメッセージのやりとりを行う。
図18は、図17の対応関係記憶部204に記憶される対応関係テーブルの例を示す図である。
対応関係テーブルには、対応付け情報が登録される。
対応付け情報では、ユーザ宅の機器について、機器ラベル、位置情報、機器に対応するファクタ#m(を特定する情報としてのファクタ番号#m)、及び、状態マップが対応付けられている。
状態マップでは、機器#mに対応するファクタ#mの状態#k(を特定する情報としての状態番号#k)と、その機器#mの稼働状態の稼働状態ラベルとが対応付けられている。
ここで、対応付け情報の機器ラベルとファクタ#mによれば、機器ラベルが表す機器に対応するファクタ#mを認識するとともに、ファクタ#mに対応する機器の機器ラベルを認識することができる。
また、対応付け情報の機器ラベルと状態マップによれば、機器ラベルが表す機器の稼働状態に対応するファクタ#mの状態#kを認識するとともに、ファクタ#mの状態#kに対応する機器(ファクタ#mに対応する機器)の稼働状態の稼働ラベルを認識することができる。
すなわち、状態マップでは、機器#mに対応するファクタ#mの状態#kと、その機器#mの稼働状態の稼働状態ラベルとが対応付けられているので、ファクタ#mの状態#kと、そのファクタ#mに対応する機器の稼働状態(の稼働状態ラベル)との対応を認識することができる。
ここで、ファクタ#mの状態#kは、パターン情報としての固有波形W(m) kを有するので、状態マップでは、パターン情報としての固有波形W(m) kに、その固有波形W(m) kが表す電流が消費される機器#mの稼働状態の稼働状態ラベルがラベル付けされている、ということができる。
また、対応付け情報では、以上のような稼働状態ラベルがパターン情報としての固有波形W(m) k(を有する状態#k)にラベル付けされている状態マップと、機器ラベルとが対応付けられているので、パターン情報としての固有波形W(m) kには、その固有波形W(m) kが表す電流が消費される機器#mの機器ラベルがラベル付けされている、ということもできる。
したがって、対応付け情報では、パターン情報としての固有波形W(m) kに、その固有波形W(m) kが表す電流が消費される機器の機器ラベルと、その機器の稼働状態の稼働状態ラベルとがラベル付けされている、ということができる。
対応付け情報によれば、ファクタ#mに対応する機器の機器ラベルを認識することができる。さらに、対応付け情報によれば、ファクタ#mの状態#kに対応する(機器#mの)稼働状態の稼働状態ラベルを認識することができる。
<ラベル付け処理>
図19は、対応付け情報を対応関係テーブルに登録するためのラベル付け処理として、図15のエージェント14が行う処理の例を示すフローチャートである。
ステップS101において、認識部132は、例えば、イメージセンサ122L及び122Rから、A/D変換部112を介して制御部111に供給される画像信号に基づき、いわばエージェント14の視覚に映る機器を検出(認識)し、その機器の任意の1つを、候補機器に選択して、処理は、ステップS102に進む。
ステップS102では、認識部132は、候補機器の機器ラベルを生成(取得)し、位置情報検出部133は、候補機器の位置情報を検出して、処理は、ステップS103に進む。
ステップS103では、認識部132は、候補機器の機器ラベルと位置情報とのセットに基づき、候補機器が、機器テーブル(図16)に未登録であるかどうかを判定する。
ステップS102において、候補機器が未登録でないと判定された場合、すなわち、候補機器の機器ラベルと位置情報とのセットが、機器テーブルに、既に登録されている場合、処理は、ステップS101に戻り、以下、同様の処理が繰り返される。
また、ステップS102において、候補機器が未登録であると判定された場合、すなわち、候補機器の機器ラベルと位置情報とのセットが、機器テーブルに登録されていない場合、処理は、ステップS104に進み、認識部132は、候補機器を、操作対象機器に選択し、テーブル生成部136を制御することで、その操作対象機器の機器ラベルと位置情報とを対応付けて、半導体メモリ115に記憶された機器テーブルに登録させる。
さらに、ステップS104では、認識部132は、通信部114を制御することにより、操作対象機器の機器ラベル及び位置情報を、機器分離装置16に送信させ、処理は、ステップS105に進む。
ここで、エージェント14の通信部114から送信される操作対象機器の機器ラベル及び位置情報は、ネットワーク15を介して、機器分離装置16の通信部30(図5)で受信され、ラベル取得部35(図17)に供給される。
ステップS105では、操作制御部134は、機器分離装置16から、RESULT:READYメッセージが送信されてくるのを待って、エージェント14に、操作対象機器が所定の稼働状態(例えば、電源がオンの稼働状態)になるように、操作対象機器を操作させ、処理は、ステップS106に進む。
ここで、RESULT:READYメッセージは、機器分離装置16のラベル取得部35(図17)において、対応付け情報を対応関係テーブル(図18)に登録する準備ができた旨を表すメッセージであり、ラベル取得部35の制御部205から、通信部30(図5)及びネットワーク15を介して、エージェント14に送信される。以上のようにして、機器分離装置16からエージェント14に送信されるRESULT:READYメッセージは、通信部114で受信され、操作制御部134に供給される。
ステップS106では、認識部132は、操作対象機器の稼働状態を認識し、その稼働状態を表す稼働状態ラベルを生成(取得)して、処理は、ステップS107に進む。
ステップS107では、認識部132は、通信部114を制御することにより、操作対象機器の稼働状態の稼働状態ラベルを、機器分離装置16に送信させ、処理は、ステップS108に進む。
ここで、エージェント14の通信部114から送信される操作対象機器の稼働状態ラベルは、ネットワーク15を介して、機器分離装置16の通信部30(図5)で受信され、ラベル取得部35(図17)に供給される。
ステップS108では、操作制御部134は、機器分離装置16から、RESULT:FINISHEDメッセージを受信したかどうかを判定する。
ここで、RESULT:FINISHEDメッセージは、機器分離装置16のラベル取得部35(図17)において、操作対象機器の対応付け情報を対応関係テーブル(図18)に登録した旨を表すメッセージであり、ラベル取得部35の制御部205から、通信部30(図5)及びネットワーク15を介して、エージェント14に送信される。
ステップS108では、機器分離装置16から、以上のようなRESULT:FINISHEDメッセージが送信され、通信部114(図15)で受信されたかどうかが判定される。
ステップS108において、RESULT:FINISHEDメッセージを受信していないと判定された場合、すなわち、機器分離装置16のラベル取得部35において、操作対象機器の対応付け情報が対応関係テーブルに登録されていない場合、処理は、ステップS109に進み、操作制御部134は、機器分離装置16から、RESULT:MOREメッセージを受信したかどうかを判定する。
ここで、RESULT:MOREメッセージは、操作対象機器の稼働状態を他の稼働状態に変更することを要求するメッセージであり、ラベル取得部35(図17)の制御部205から、通信部30(図5)及びネットワーク15を介して、エージェント14に送信される。
ステップS109では、機器分離装置16から、以上のようなRESULT:MOREメッセージが送信され、通信部114で(図15)で受信されたかどうかが判定される。
ステップS109において、RESULT:MOREメッセージを受信していないと判定された場合、処理は、ステップS108に戻り、以下、同様の処理が繰り返される。
一方、ステップS109において、RESULT:MOREメッセージを受信したと判定された場合、処理は、ステップS110に進み、操作制御部134は、エージェント14に、操作対象機器が現在の稼働状態と異なる稼働状態になるように(例えば、電源がオンの稼働状態からオフの稼働状態になるように)、操作対象機器を操作させ、処理は、ステップS111に進む。
ステップS111では、認識部132は、ステップS110でエージェントによる操作がされた後の操作対象機器の稼働状態を認識し、その稼働状態を表す稼働状態ラベルを生成(取得)して、処理は、ステップS112に進む。
ステップS112では、認識部132は、通信部114を制御することにより、ステップS110でエージェントによる操作がされた後の操作対象機器の稼働状態の稼働状態ラベルを、機器分離装置16に送信させ、処理は、ステップS108に戻り、以下、同様の処理が繰り返される。
そして、ステップS108において、RESULT:FINISHEDメッセージを受信したと判定された場合、すなわち、機器分離装置16のラベル取得部35において、操作対象機器の対応付け情報が対応関係テーブル(図18)に登録された場合、処理は、ステップS101に戻り、以下、同様の処理が繰り返される。
図20は、対応付け情報を対応関係テーブルに登録するためのラベル付け処理として、機器分離装置16のラベル取得部35(図17)が行う処理の例を示すフローチャートである。
ステップS121において、取得部201は、エージェント14から、操作対象機器の機器ラベル及び位置情報が送信されてくるのを待って、その機器ラベル及び位置情報を取得する。
すなわち、エージェント14では、図19のステップS104で、操作対象機器の機器ラベル及び位置情報が送信される。エージェント14からの操作対象機器の機器ラベル及び位置情報は、機器分離装置16(図5)の通信部30で受信されるので、取得部201は、通信部30で受信された操作対象機器の機器ラベル及び位置情報を取得し、ラベル付け部203に供給する。
制御部205は、取得部201からラベル付け部203に、操作対象機器の機器ラベル及び位置情報が供給されると、対応付け情報を対応関係テーブル(図18)に登録する準備ができた旨のRESULT:READYメッセージを生成し、通信部30(図5)からエージェント14に送信させ、処理は、ステップS121からステップS122に進む。
ステップS122では、取得部201は、エージェント14から、操作対象機器の稼働状態の稼働状態ラベルが送信されてくるのを待って、その稼働状態ラベルを取得する。
すなわち、エージェント14では、図19のステップS107やS122で、操作対象機器の稼働状態の稼働状態ラベルが送信される。エージェント14からの操作対象機器の稼働状態の稼働状態ラベルは、機器分離装置16(図5)の通信部30で受信されるので、取得部201は、通信部30で受信された操作対象機器の稼働状態の稼働状態ラベルを取得し、ラベル付け部203に供給する。
その後、処理は、ステップS122からステップS123に進み、取得部202は、操作対象機器が現在の稼働状態になっているときのユーザ宅の電流波形Ytを用いた機器分離により得られる、各ファクタ#mの各状態#kのパターン情報としての固有波形W(m) kについての可能性情報としての状態確率(事後確率)<S(m) t>を、状態推定部32(図5)から取得し、ラベル付け部203に供給して、処理は、ステップS124に進む。
ステップS124では、ラベル付け部203は、取得部202からの状態確率<S(m) t>に基づいて、各ファクタ#mの各状態#kのパターン情報としての固有波形W(m) kの中から、操作対象機器の現在の稼働状態で消費されている消費電流を表す対象固有波形W(m) kを特定し、処理は、ステップS125に進む。
ここで、ステップS124では、例えば、すべてのファクタ#1ないし#Mのすべての状態#1ないし#kそれぞれが有する固有波形W(1) 1,W(1) 2,・・・,W(1) K,W(2) 1,W(2) 2,・・・,W(1) K,・・・W(M) 1,W(M) 2,・・・,W(M) Kの中で、操作対象機器の稼働状態が変更された後に、その稼働状態の変更前と比較して、状態確率<S(m) t>が最も向上した(ファクタ#mの状態#kが有する)固有波形を、対象固有波形W(m) kに特定することができる。
なお、操作対象機器の稼働状態の変更が、まだ行われたことがない場合には、例えば、状態確率<S(m) t>が最も低い固有波形等を、対象固有波形W(m) kに特定することができる。
ステップS125では、ラベル付け部203は、対象固有波形W(m) kの状態確率<S(m) t>、すなわち、対象固有波形W(m) kを有するファクタ#mの状態#kの状態確率<S(m) t>に基づいて、対象固有波形W(m) kが、操作対象機器の現在の稼働状態の消費電流を表している確からしさを判定する。
例えば、ステップS125では、対象固有波形W(m) kの状態確率<S(m) t>が、1.0に近い1.0未満の閾値以上の確率である場合、対象固有波形W(m) kが確からしいと判定され、対象固有波形W(m) kの状態確率<S(m) t>が、閾値以上の確率ではない場合、対象固有波形W(m) kが確からしくないと判定される。
ステップS125において、対象固有波形W(m) kが確からしくないと判定された場合、処理は、ステップS126に進み、制御部205は、操作対象機器の消費電流を変更させるために、操作対象機器の稼働状態を他の稼働状態に変更することを要求するRESULT:MOREメッセージを生成し、通信部30(図5)からエージェント14に送信させる。そして、処理は、ステップS126からステップS122に戻り、以下、同様の処理が繰り返される。
一方、ステップS125において、対象固有波形W(m) kが確からしいと判定された場合、処理は、ステップS127に進み、ラベル付け部203は、対象固有波形W(m) kに、取得部201からの操作対象機器の機器ラベル及び位置情報、並びに、稼働状態ラベルを対応付けた対応付け情報(図18)を生成する。
すなわち、ラベル付け部203は、状態#kが対象固有波形W(m) kを有するファクタ#mを、操作対象機器に対応する対応ファクタ#mとして、その対応ファクタ#m(のファクタ番号#m)と、操作対象機器の機器ラベル及び位置情報とを対応付け、操作対象機器の対応付け情報に含める。
さらに、ラベル付け部203は、対象固有波形W(m) kを有する対応ファクタ#mの状態#kを、操作対象機器の現在の稼働状態に対応する対応状態#kとして、操作対象機器の対応付け情報の状態マップ(図18)に、対応状態#k(の状態番号#k)と、操作対象機器の現在の稼働状態の稼働状態ラベルとを対応付けて登録する。
そして、ラベル付け部203は、操作対象機器の対応付け情報を、対応関係記憶部204の対応関係テーブルに登録し、処理は、ステップS128に進む。
ステップS128では、制御部205は、操作対象機器の対応付け情報を対応関係テーブルに登録した旨を表すRESULT:FINISHEDメッセージを生成し、通信部30(図5)からエージェント14に送信させる。そして、処理は、ステップS128からステップS121に戻り、以下、同様の処理が繰り返される。
以上のように、ユーザ宅のエージェント14では、操作対象機器が操作され、操作対象機器の稼働状態が認識される。そして、操作対象機器を表す機器ラベル、及び、操作対象機器の稼働状態を表す稼働状態ラベルが、エージェント14から機器分離装置16に送信される。
一方、機器分離装置16では、エージェント14からの操作対象機器ラベル、及び、稼働状態ラベルが取得されるとともに、ユーザ宅の電流波形Yを用いた機器分離において得られる可能性情報としての状態確率<S(m) t>が取得される。そして、機器分離装置16では、その可能性情報としての状態確率<S(m) t>に基づいて、操作対象機器の現在の稼働状態において消費されている消費電流を表すパターン情報としての固有波形W(m) kが特定され、そのパターン情報としての固有波形W(m) kに、操作対象機器の機器ラベルと稼働状態ラベルが対応付けられる。
したがって、エージェント14によって、機器が操作されることにより、機器の消費電流が変化するので、その消費電流を含む電流波形Yを用いた、機器分離装置16での機器分離を、迅速に行うことができる。
さらに、エージェント14では、機器を表す機器ラベル、及び、機器の稼働状態を表す稼働状態ラベルが、機器分離装置16に送信され、機器分離装置16では、パターン情報としての固有波形W(m) kが表す消費電流が消費されている可能性を表す可能性情報としての状態確率<S(m) t>に基づいて、パターン情報としての固有波形W(m) kに、機器ラベルと稼働状態ラベルが対応付けられるので、ユーザ宅のどの機器が、どのような稼働状態にあるのかを、機器ラベルと稼働状態ラベルによって提示することが可能になる。
すなわち、機器ラベルと稼働状態ラベルによれば、その機器ラベルと稼働状態ラベルが対応付けられているパターン情報が表す消費電流が消費されている機器と、その機器の稼働状態を、人が認識することができる形で提示することができる。
なお、操作対象機器の稼働状態は、機器分離装置16からエージェント14に送信されるRESULT:MOREメッセージに従って変更する他、エージェント14において、自律的に変更することができる。すなわち、エージェント14は、操作対象機器の稼働状態を変更するように、自律的に、操作対象機器を操作する行動をとることができる。
<データ出力部36の構成例>
図21は、エージェント14と機器分離装置16とが協調して動作する場合の図5のデータ出力部36の構成例を示すブロック図である。
データ出力部36は、取得部211、検知対象記憶部212、及び、稼働状態検知部213を有する。
(稼働状態検知要求)取得部211は、エージェント14から、ネットワーク15を介して送信され、通信部30(図5)で受信される、機器の稼働状態の検知を要求する稼働状態検知要求メッセージを取得し、検知対象記憶部212に供給する。
検知対象記憶部212は、取得部211からの稼働状態検知要求メッセージに含まれる、稼働状態の検知の対象とする機器である検知対象機器の機器ラベルを登録するリストである検知リストを記憶する。
ここで、エージェント14が送信する稼働状態検知要求メッセージには、検知対象機器の機器ラベルが含まれる。
稼働状態検知部213は、ラベル取得部35の対応関係記憶部204に記憶された対応関係テーブル(図18)を参照し、検知対象記憶部212に記憶された検知リストに機器ラベルが登録された検知対象機器の現在の稼働状態を検知する。
すなわち、稼働状態検知部213は、対応関係テーブルから、検知対象記憶部212に記憶された機器ラベルを含む対応付け情報を、対象対応付け情報として選択し、その対象対応付け情報に含まれるファクタ#mの各状態#kの可能性情報としての状態確率<S(m) t>を、状態推定部32から取得する。
さらに、稼働状態検知部213は、対象対応付け情報に含まれるファクタ#mの各状態#kの状態確率<S(m) t>に基づき、その対象対応付け情報に含まれるファクタ#mの状態#kの中で、状態確率<S(m) t>が最も高い状態#kを、検知対象機器の現在の稼働状態に対応する状態として検知する。
そして、稼働状態検知部213は、対象対応付け情報に含まれる状態マップにおいて、状態確率<S(m) t>が最も高い状態#kに対応付けられている稼働状態ラベルを、検知対象機器の現在の稼働状態を表す対象稼働状態ラベルとして、検知対象機器の機器ラベルとともに、通信部30(図5)から、エージェント14に送信させる。
<稼働状態報知処理>
図22は、ユーザ宅の機器の稼働状態をユーザに報知する稼働状態報知処理として、図15のエージェント14が行う処理の例を示すフローチャートである。
ステップS141において、報知制御部135は、半導体メモリ115に記憶された機器テーブル(図16)に機器ラベルが登録された機器の中から、検知対象機器(とする機器)を決定する。
ここで、報知制御部135では、例えば、エージェント14が、機器テーブルに機器ラベルが登録された機器の中で、現在地からでは、稼働状態を認識することができない機器(例えば、現在地から、イメージセンサ122L及び122Rで撮影することができない機器)の1以上を、検知対象機器に決定することができる。
報知制御部135は、検知対象機器の決定後、その検知対象機器の機器ラベルを含み、その検知対象機器の稼働状態の検知を要求する稼働状態検知要求メッセージを、通信部114から、機器分離装置16に送信させる。
例えば、検知対象機器の機器ラベルが"TV#1"である場合、その機器ラベルを含み、検知対象機器の稼働状態の検知を要求するMONITOR:TV#1メッセージが、稼働状態検知要求メッセージとして送信される。
報知制御部135は、稼働状態検知要求メッセージの送信後、機器分離装置16から、検知対象機器の稼働状態の検知の要求の受付を完了した旨のRESULT:FINISHEDメッセージが送信されてくるのを待って、そのRESULT:FINISHEDメッセージを取得し、処理は、ステップS141からステップS142に進む。
すなわち、機器分離装置16は、エージェント14からの稼働状態検知要求メッセージを受信すると、RESULT:FINISHEDメッセージを、エージェント14に送信する。エージェント14では、通信部114が、機器分離装置16からのRESULT:FINISHEDメッセージを受信し、報知制御部135に供給するので、報知制御部135は、そのようにして通信部114から供給される、エージェント14からのRESULT:FINISHEDメッセージを取得する。
ステップS142では、報知制御部135は、機器分離装置16から、検知対象機器の機器ラベル及び稼働状態ラベルが送信されてくるのを待って、その機器ラベル及び稼働状態ラベルを取得し、処理は、ステップS143に進む。
すなわち、機器分離装置16は、検知対象機器の稼働状態を検出し、その稼働状態の稼働状態ラベルを、検知対象機器の機器ラベルとともに送信する。エージェント14では、通信部114が、機器分離装置16からの検知対象機器の機器ラベル及び稼働状態ラベルを受信し、報知制御部135に供給するので、報知制御部135は、そのようにして通信部114から供給される、検知対象機器の機器ラベル及び稼働状態ラベルを取得する。
ステップS143では、報知制御部135は、ステップS142で取得した稼働状態ラベルに応じて、同じくステップS142で取得した機器ラベルの検知対象機器の稼働状態を、ユーザに報知し、処理は、ステップS144に進む。
すなわち、報知制御部135は、例えば、エージェント14に、合成音によって、機器ラベルの検知対象機器が、稼働状態ラベルが表す稼働状態になっている旨のメッセージを出力させる。
あるいは、報知制御部135は、ユーザ宅の機器のうちのディスプレイ機器と、通信部114を介して通信を行い、ディスプレイ機器に、機器ラベルの検知対象機器が、稼働状態ラベルが表す稼働状態になっている旨のメッセージを、音声で出力させたり、画面に表示させたりすることができる。
その他、報知制御部135は、例えば、通信部114を介して通信を行うことにより、機器ラベルの検知対象機器が、稼働状態ラベルが表す稼働状態になっている旨のメッセージを、ユーザが所持するスマートフォン等の携帯端末に送信することで、検知対象機器の稼働状態を、ユーザに報知することができる。
ステップS144では、報知制御部135は、機器分離装置16から、検知対象機器の稼働状態が変化した旨のRESULT:CHANGEメッセージ、並びに、検知対象機器の機器ラベル、及び、変化前後それぞれの稼働状態を表す稼働状態ラベルが送信されてくるのを待って、そのRESULT:CHANGEメッセージ、並びに、機器ラベル及び稼働状態ラベルを取得し、処理は、ステップS145に進む。
すなわち、機器分離装置16は、検知対象機器の稼働状態を検出し、その稼働状態が変化すると、RESULT:CHANGEメッセージとともに、検知対象機器の機器ラベル、及び、変化前後それぞれの稼働状態を表す稼働状態ラベルを送信する。エージェント14では、通信部114が、機器分離装置16からのRESULT:CHANGEメッセージ、並びに、検知対象機器の機器ラベル、及び、変化前後それぞれの稼働状態を表す稼働状態ラベルを受信し、報知制御部135に供給するので、報知制御部135は、そのようにして通信部114から供給される、RESULT:CHANGEメッセージ、並びに、検知対象機器の機器ラベル、及び、変化前後それぞれの稼働状態を表す稼働状態ラベルを取得する。
ステップS145では、報知制御部135は、ステップS144で取得した稼働状態ラベルに応じて、同じくステップS144で取得した機器ラベルの検知対象機器の稼働状態(の変化)を、ユーザに報知し、処理は終了する。
すなわち、例えば、検知対象機器の機器ラベルが、あるTVを表す"TV#1"であり、変化前の稼働状態を表す稼働状態ラベルが、電源がオフになっている旨を表し、変化後の稼働状態を表す稼働状態ラベルが、電源がオンになっている旨を表している場合には、エージェント14では、例えば、「TV#1の電源がオンにされました。」等のメッセージを生成し、ステップS143で説明したように出力することで、検知対象機器の稼働状態(の変化)を、ユーザに報知することができる。
なお、機器分離装置16では、検知対象機器の機器ラベル及び稼働状態ラベルとともに、その検知対象機器の位置情報も、エージェント14に送信することができる。
この場合、エージェント14では、検知対象機器の稼働状態(の変化)をユーザに報知するメッセージを、検知対象機器の位置情報を用いて生成することができる。
すなわち、例えば、検知対象機器の機器ラベルが、あるTVを表す"TV#1"であり、変化前の稼働状態を表す稼働状態ラベルが、電源がオフになっている旨を表し、変化後の稼働状態を表す稼働状態ラベルが、電源がオンになっている旨を表している場合において、検知対象機器の位置情報から、検知対象機器が、ユーザ宅のリビングルームに設置してあることを認識することができるときには、エージェント14では、検知対象機器の位置情報を用いた、例えば、「誰かが、リビングにあるTV#1を見始めたよ。」等のメッセージを生成することができる。
また、例えば、検知対象機器の機器ラベルが、ある照明を表すラベルであり、変化前の稼働状態を表す稼働状態ラベルが、照明がオフになっている旨を表し、変化後の稼働状態を表す稼働状態ラベルが、照明がオンになっている旨を表している場合において、検知対象機器の位置情報から、検知対象機器としての照明が、ユーザ宅の玄関に設置してあることを認識することができるときには、エージェント14では、検知対象機器の位置情報を用いた、例えば、「玄関の電気(照明)がつきました。」等のメッセージを生成することができる。
図23は、ユーザ宅の機器の稼働状態をユーザに報知する稼働状態報知処理として、機器分離装置16のデータ出力部36(図21)が行う処理の例を示すフローチャートである。
ステップS151において、取得部211は、エージェント14から、図22のステップS141で、検知対象機器の稼働状態の検知を要求する稼働状態検知要求メッセージが送信されてくるのを待って、その稼働状態検知要求メッセージを取得し、処理は、ステップS152に進む。
すなわち、エージェント14が送信する稼働状態検知要求メッセージは、機器分離装置16(図5)の通信部30で受信されるので、取得部211は、通信部30で受信された稼働状態検知要求メッセージを取得する。
ステップS152では、取得部211は、稼働状態検知要求メッセージに含まれる検知対象機器の機器ラベルを、検知対象記憶部212に供給し、検知対象記憶部212に記憶された検知リストに登録する。
そして、取得部211は、検知対象機器の稼働状態の検知の要求の受付を完了した旨のRESULT:FINISHEDメッセージを生成し、通信部30(図5)からエージェント14に送信させ、処理は、ステップS152からステップS153に進む。
ステップS153では、稼働状態検知部213は、検知対象記憶部212の検知リストに機器ラベルが登録された検知対象機器の消費電流を含む、ユーザ宅の電流波形Ytを用いた機器分離により得られる、各ファクタ#mの各状態#kのパターン情報としての固有波形W(m) kについての可能性情報としての状態確率(事後確率)<S(m) t>を、状態推定部32(図5)から取得し、処理は、ステップS154に進む。
ステップS154では、稼働状態検知部213は、対応関係記憶部204に記憶された対応関係テーブル(図18)を参照し、検知対象機器の機器ラベルに対応付けられたファクタ#mを、検知対象機器に対応するファクタ#mとして認識する。
さらに、稼働状態検知部213は、対応関係記憶部204に記憶された対応関係テーブル(図18)を参照し、ステップS153で取得した状態確率<S(m) t>のうちの、検知対象機器に対応するファクタ#mの各状態#kの状態確率<S(m) t>に基づいて、検知対象機器の現在の稼働状態を検知する。
すなわち、稼働状態検知部213は、対応関係記憶部204に記憶された対応関係テーブルの検知対象機器の機器ラベルに対応付けられた状態マップにおいて、検知対象機器に対応するファクタ#mの状態#kの中の、状態確率<S(m) t>が最も高い状態#kに対応付けられた稼働状態ラベルが表す稼働状態を、検知対象機器の稼働状態として検知する。
その後、処理は、ステップS154からステップS155に進み、稼働状態検知部213は、検知対象機器の機器ラベル、及び、稼働状態ラベル(ステップS154で検知した稼働状態の稼働状態ラベル)を、通信部30(図5)からエージェント14に送信させ、処理は、ステップS156に進む。
ここで、ステップS155では、検知対象機器の機器ラベル、及び、稼働状態ラベルとともに、検知対象機器の機器ラベルに対応付けて対応関係テーブル(図18)に登録されている検知対象機器の位置情報も、エージェント14に送信することができる。
ステップS156では、稼働状態検知部213は、例えば、検知対象機器の消費電流を含む、ユーザ宅の、次の時刻tの電流波形Ytを用いた機器分離が行われるのを待って、その機器分離により得られる、各ファクタ#mの各状態#kの状態確率(事後確率)<S(m) t>を、状態推定部32(図5)から取得し、処理は、ステップS157に進む。
ステップS157では、稼働状態検知部213は、状態確率<S(m) t>に基づき、ステップS154と同様にして、検知対象機器の現在の稼働状態を検知し、処理は、ステップS158に進む。
ステップS158では、稼働状態検知部213は、検知対象機器の稼働状態が変化したかどうか(検知対象機器について稼働状態の最新の検知の結果と、前回の検知の結果とが異なるかどうか)を判定する。
ステップS158において、検知対象機器の稼働状態が変化していないと判定された場合、処理は、ステップS156に戻り、以下、同様の処理が繰り返される。
また、ステップS158において、検知対象機器の稼働状態が変化したと判定された場合、処理は、ステップS159に進み、稼働状態検知部213は、検知対象機器の稼働状態が変化した旨のRESULT:CHANGEメッセージ、並びに、検知対象機器の機器ラベル、及び、検知対象機器の変化前後それぞれの稼働状態を表す稼働状態ラベルを、通信部30(図5)からエージェント14に送信させ、処理は、ステップS160に進む。
ここで、ステップS159では、RESULT:CHANGEメッセージ、並びに、検知対象機器の機器ラベル、及び、稼働状態ラベルとともに、検知対象機器の機器ラベルに対応付けて対応関係テーブル(図18)に登録されている検知対象機器の位置情報も、エージェント14に送信することができる。
ステップS160では、稼働状態検知部213は、検知対象記憶部212の検知リストから、エージェント14に機器ラベルを送信した検知対象機器の機器ラベルを削除し、処理は終了する。
なお、ステップS153ないしステップS160の処理は、検知対象記憶部212の検知リストに、複数の(検知対象機器の)機器ラベルが登録されている場合には、その複数の機器ラベルが表す検知対象機器それぞれについて行われる。
以上のように、機器分離装置16において、可能性情報としての状態確率<S(m) t>に基づき、検知対象機器の稼働状態を検知し、その検知対象機器の機器ラベルと稼働状態ラベルを、エージェント14に送信する一方、エージェント14において、機器分離装置16からの検知対象機器の機器ラベルと稼働状態ラベルを取得し、その稼働状態ラベルに応じて、機器ラベルが表す検知対象機器の稼働状態を報知する場合には、エージェント14は、例えば、現在地からでは、稼働状態を認識することができない機器(例えば、現在地から、イメージセンサ122L及び122Rで撮影することができない機器)の稼働状態を、その場で認識し、ユーザに報知することができる。
なお、エージェント14において、ユーザ宅内のすべての機器(機器テーブル(図16)に機器ラベルが登録された機器のすべて)を、検知対象機器に決定することにより、エージェント14は、ユーザ宅内のすべての機器の稼働状態を、リアルタイムで認識することができる。
また、本実施の形態では、エージェント14において、機器分離装置16から得られる検知対象機器の稼働状態ラベルに応じて、検知対象機器の稼働状態を報知することとしたが、その他、エージェント14では、機器分離装置16から得られる検知対象機器の稼働状態ラベルに応じて、検知対象機器の稼働状態に応じた行動をとることができる。
例えば、検知対象機器が、玄関の照明であり、その玄関の照明がオフからオンになった場合には、エージェント14は、ユーザ宅に、ユーザが帰宅したと認識して、玄関にユーザを出迎えに行く行動をとることができる。
なお、本実施の形態では、移動可能なエージェント14を、ユーザ宅の機器を制御する制御装置として採用したが、機器を制御する制御装置としては、エージェント14のような移動可能なロボットの他、ホームネットワーク等による無線や有線の通信によって、機器の電源のオン/オフや、動作モードの設定(変更)等を制御することができる装置(例えば、ホームネットワークのサーバ等)を採用することができる。
また、本実施の形態では、総和データとしての電流波形Ytを用いて、各機器の各稼働状態の消費電流を表す固有波形W(m) kについて得られる、その固有波形W(m) kが表す消費電流が消費されている可能性を表す状態確率<S(m) t>に基づいて、固有波形W(m) kを求める(更新する)ことにより、各機器の消費電流を分離する機器分離を採用したが、その他、例えば、状態確率<S(m) t>以外の、パターン情報が表す消費電流が消費されている可能性を表す任意の可能性情報を用いる機器分離を採用することができる。
すなわち、例えば、可能性情報として、パターン情報が表す消費電流を用いて求められる総和データ(電流波形Yt)の予測値と、実際の総和データとの誤差を採用し、その誤差に基づいて、誤差を小さくするように、パターン情報を更新することにより、各機器の消費電流を分離する機器分離を採用することができる。
<本技術を適用したコンピュータの説明>
次に、上述したエージェント14や機器分離装置16の一連の処理は、ハードウェアにより行うこともできるし、ソフトウェアにより行うこともできる。一連の処理をソフトウェアによって行う場合には、そのソフトウェアを構成するプログラムが、コンピュータ等にインストールされる。
そこで、図24は、上述した一連の処理を実行するプログラムがインストールされるコンピュータの一実施の形態の構成例を示している。
プログラムは、コンピュータに内蔵されている記録媒体としてのハードディスク305やROM303に予め記録しておくことができる。
あるいはまた、プログラムは、リムーバブル記録媒体311に格納(記録)しておくことができる。このようなリムーバブル記録媒体311は、いわゆるパッケージソフトウエアとして提供することができる。ここで、リムーバブル記録媒体311としては、例えば、フレキシブルディスク、CD-ROM(Compact Disc Read Only Memory),MO(Magneto Optical)ディスク,DVD(Digital Versatile Disc)、磁気ディスク、半導体メモリ等がある。
なお、プログラムは、上述したようなリムーバブル記録媒体311からコンピュータにインストールする他、通信網や放送網を介して、コンピュータにダウンロードし、内蔵するハードディスク305にインストールすることができる。すなわち、プログラムは、例えば、ダウンロードサイトから、ディジタル衛星放送用の人工衛星を介して、コンピュータに無線で転送したり、LAN(Local Area Network)、インターネットといったネットワークを介して、コンピュータに有線で転送することができる。
コンピュータは、CPU(Central Processing Unit)302を内蔵しており、CPU302には、バス301を介して、入出力インタフェース310が接続されている。
CPU302は、入出力インタフェース310を介して、ユーザによって、入力部307が操作等されることにより指令が入力されると、それに従って、ROM(Read Only Memory)303に格納されているプログラムを実行する。あるいは、CPU302は、ハードディスク305に格納されたプログラムを、RAM(Random Access Memory)304にロードして実行する。
これにより、CPU302は、上述したフローチャートにしたがった処理、あるいは上述したブロック図の構成により行われる処理を行う。そして、CPU302は、その処理結果を、必要に応じて、例えば、入出力インタフェース310を介して、出力部306から出力、あるいは、通信部308から送信、さらには、ハードディスク305に記録等させる。
なお、入力部307は、キーボードや、マウス、マイク等で構成される。また、出力部306は、LCD(Liquid Crystal Display)やスピーカ等で構成される。
ここで、本明細書において、コンピュータがプログラムに従って行う処理は、必ずしもフローチャートとして記載された順序に沿って時系列に行われる必要はない。すなわち、コンピュータがプログラムに従って行う処理は、並列的あるいは個別に実行される処理(例えば、並列処理あるいはオブジェクトによる処理)も含む。
また、プログラムは、1のコンピュータ(プロセッサ)により処理されるものであっても良いし、複数のコンピュータによって分散処理されるものであっても良い。さらに、プログラムは、遠方のコンピュータに転送されて実行されるものであっても良い。
さらに、本明細書において、システムとは、複数の構成要素(装置、モジュール(部品)等)の集合を意味し、すべての構成要素が同一筐体中にあるか否かは問わない。したがって、別個の筐体に収納され、ネットワークを介して接続されている複数の装置、及び、1つの筐体の中に複数のモジュールが収納されている1つの装置は、いずれも、システムである。
なお、本技術の実施の形態は、上述した実施の形態に限定されるものではなく、本技術の要旨を逸脱しない範囲において種々の変更が可能である。
例えば、本技術は、1つの機能をネットワークを介して複数の装置で分担、共同して処理するクラウドコンピューティングの構成をとることができる。
また、上述のフローチャートで説明した各ステップは、1つの装置で実行する他、複数の装置で分担して実行することができる。
さらに、1つのステップに複数の処理が含まれる場合には、その1つのステップに含まれる複数の処理は、1つの装置で実行する他、複数の装置で分担して実行することができる。
また、本明細書に記載された効果はあくまで例示であって限定されるものではなく、他の効果があってもよい。
なお、本技術は、以下のような構成をとることができる。
<1>
機器を操作し、
前記機器の稼働状態を認識し、
前記機器を表す機器ラベル、及び、前記機器の稼働状態を表す稼働状態ラベルを送信する
制御装置から、前記機器ラベル、及び、前記稼働状態ラベルを取得する機器情報取得部と、
複数の機器で消費されている電流の総和に関する総和データを用いて、各機器の各稼働状態の消費電流を表すパターン情報について得られる、そのパターン情報が表す消費電流が消費されている可能性を表す可能性情報に基づいて、前記パターン情報を更新することにより、各機器の消費電流を分離する機器分離において得られる前記可能性情報を取得する可能性情報取得部と、
前記可能性情報に基づいて、前記機器ラベルが表す機器の現在の稼働状態において消費されている消費電流を表すパターン情報を特定し、そのパターン情報に、前記機器ラベルと前記稼働状態ラベルを対応付けるラベル付けを行うラベル付け部と
を備える情報処理装置。
<2>
前記可能性情報に基づいて、前記パターン情報が、前記機器ラベルが表す機器の現在の稼働状態の消費電流を表している確からしさを判定し、前記パターン情報が確からしくない場合、前記制御装置に、前記機器ラベルが表す機器の稼働状態を、他の稼働状態に変更することを要求する
<1>に記載の情報処理装置。
<3>
前記可能性情報に基づいて、前記機器の現在の稼働状態を検知する稼働状態検知部をさらに備え、
前記機器の現在の稼働状態において消費されている消費電流を表すパターン情報に対応付けられた前記機器ラベル及び前記稼働状態ラベルを、前記制御装置に送信する
<1>又は<2>に記載の情報処理装置。
<4>
前記機器情報取得部は、前記機器の位置を表す位置情報も取得し、
前記ラベル付け部は、前記パターン情報に、前記機器ラベル及び前記稼働状態ラベルとともに、前記位置情報も対応付け、
前記機器の現在の稼働状態において消費されている消費電流を表すパターン情報に対応付けられた前記機器ラベル及び前記稼働状態ラベルとともに、前記位置情報も、前記制御装置に送信する
<3>に記載の情報処理装置。
<5>
前記機器分離では、
前記総和データを用いて、FHMM(Factorial Hidden Markov Model)の各ファクタの状態にいる状態確率を、前記可能性情報として求める状態推定を行い、
前記状態確率を用いて、前記FHMMの学習を行う
<1>ないし<4>のいずれかに記載の情報処理装置。
<6>
前記FHMMは、
各ファクタの状態の組み合わせにおいて観測される前記総和データの観測値の平均値を求めるのに用いられる、各ファクタの各状態に固有の固有波形と、
各ファクタの状態の組み合わせにおいて観測される前記総和データの観測値の分散と、
各ファクタの状態が初期状態である初期状態確率と、
各ファクタの状態が遷移する遷移確率と
を、モデルパラメータとして有し、
前記FHMMの学習では、
前記パターン情報として、前記固有波形を求める波形分離学習と、
前記分散を求める分散学習と、
前記初期状態確率と、前記遷移確率とを求める状態変動学習と
を行う
<5>に記載の情報処理装置。
<7>
前記状態推定では、
前記平均値、及び、前記分散を用いて、各ファクタの状態の組み合わせにおいて、前記総和データが観測される観測確率を求め、
前記観測確率、及び、前記遷移確率を用いて、前記総和データの系列Y1,Y2,・・・,YTについて、前記総和データY1,Y2,・・・,Ytを観測し、時刻tに、各ファクタの状態の組み合わせzにいる前向き確率αt,zと、時刻tに、各ファクタの状態の組み合わせzにいて、その後、前記総和データYt,Yt+1,・・・,YTを観測する後ろ向き確率βt,zとを求め、
前記前向き確率αt,z、及び、前記後ろ向き確率βt,zを用いて、時刻tに、各ファクタの状態の組み合わせzにいる事後確率γt,zを求め、
前記事後確率γt,zを周辺化することにより、前記状態確率を求める
<6>に記載の情報処理装置。
<8>
機器を操作し、
前記機器の稼働状態を認識し、
前記機器を表す機器ラベル、及び、前記機器の稼働状態を表す稼働状態ラベルを送信する
制御装置から、前記機器ラベル、及び、前記稼働状態ラベルを取得するステップと、
複数の機器で消費されている電流の総和に関する総和データを用いて、各機器の各稼働状態の消費電流を表すパターン情報について得られる、そのパターン情報が表す消費電流が消費されている可能性を表す可能性情報に基づいて、前記パターン情報を更新することにより、各機器の消費電流を分離する機器分離において得られる前記可能性情報を取得するステップと、
前記可能性情報に基づいて、前記機器ラベルが表す機器の現在の稼働状態において消費されている消費電流を表すパターン情報を特定し、そのパターン情報に、前記機器ラベルと前記稼働状態ラベルを対応付けるラベル付けを行うステップと
を含む情報処理方法。
<9>
機器を操作し、
前記機器の稼働状態を認識し、
前記機器を表す機器ラベル、及び、前記機器の稼働状態を表す稼働状態ラベルを送信する
制御装置から、前記機器ラベル、及び、前記稼働状態ラベルを取得する機器情報取得部と、
複数の機器で消費されている電流の総和に関する総和データを用いて、各機器の各稼働状態の消費電流を表すパターン情報について得られる、そのパターン情報が表す消費電流が消費されている可能性を表す可能性情報に基づいて、前記パターン情報を更新することにより、各機器の消費電流を分離する機器分離において得られる前記可能性情報を取得する可能性情報取得部と、
前記可能性情報に基づいて、前記機器ラベルが表す機器の現在の稼働状態において消費されている消費電流を表すパターン情報を特定し、そのパターン情報に、前記機器ラベルと前記稼働状態ラベルを対応付けるラベル付けを行うラベル付け部と
して、コンピュータを機能させるためのプログラム。
<10>
機器の操作を制御する操作制御部と、
前記機器の稼働状態を認識する認識部と、
複数の機器で消費されている電流の総和に関する総和データを用いて、各機器の各稼働状態の消費電流を表すパターン情報について得られる、そのパターン情報が表す消費電流が消費されている可能性を表す可能性情報に基づいて、前記パターン情報を更新することにより、各機器の消費電流を分離する機器分離を行う機器分離装置に、前記機器を表す機器ラベル、及び、前記機器の稼働状態を表す稼働状態ラベルを送信する通信部と
を備える制御装置。
<11>
移動可能なエージェントである
<10>に記載の制御装置。
<12>
前記操作制御部は、前記機器分離装置からの要求に応じて、前記機器の稼働状態を、他の稼働状態に変更するように、前記機器の操作を制御する
<11>に記載の制御装置。
<13>
前記機器分離装置において、前記可能性情報に基づいて得られる、前記機器の稼働状態を表す稼働状態ラベル、及び、前記機器を表す機器ラベルを取得し、その稼働状態ラベルに応じて、前記機器ラベルが表す前記機器の稼働状態の報知を制御する報知制御部をさらに備える
<10>ないし<12>のいずれかに記載の制御装置。
<14>
前記認識部は、前記機器の位置も認識し、
前記通信部は、前記機器の位置を表す位置情報も、前記機器分離装置に送信し、
前記報知制御部は、前記稼働状態ラベル、及び、前記位置情報に応じて、前記機器ラベルが表す前記機器の稼働状態の報知を制御する
<13>に記載の制御装置。
<15>
前記認識部は、前記機器、及び、前記機器の稼働状態を、ユーザに聞くことで認識する
<10>ないし<14>のいずれかに記載の制御装置。
<16>
機器を操作するステップと、
前記機器の稼働状態を認識するステップと、
複数の機器で消費されている電流の総和に関する総和データを用いて、各機器の各稼働状態の消費電流を表すパターン情報について得られる、そのパターン情報が表す消費電流が消費されている可能性を表す可能性情報に基づいて、前記パターン情報を更新することにより、各機器の消費電流を分離する機器分離を行う機器分離装置に、前記機器を表す機器ラベル、及び、前記機器の稼働状態を表す稼働状態ラベルを送信するステップと
を含む制御方法。
<17>
機器の操作を制御する操作制御部と、
前記機器の稼働状態を認識する認識部と、
複数の機器で消費されている電流の総和に関する総和データを用いて、各機器の各稼働状態の消費電流を表すパターン情報について得られる、そのパターン情報が表す消費電流が消費されている可能性を表す可能性情報に基づいて、前記パターン情報を更新することにより、各機器の消費電流を分離する機器分離を行う機器分離装置に、前記機器を表す機器ラベル、及び、前記機器の稼働状態を表す稼働状態ラベルを送信する通信部と
して、コンピュータを機能させるためのプログラム。