以下に、本願の開示する分析装置、分析方法および分析プログラムの実施例を図面に基づいて詳細に説明する。なお、この実施例によりこの発明が限定されるものではない。
図1は、本実施例に係る学習時のシステムの構成を示す図である。図1に示すように、このシステムは、センサ10a,10b,10cと、分析装置100とを有する。センサ10a,10b,10cと、分析装置100とは、ネットワーク50を介して相互に接続される。ここでは、便宜上、センサ10a〜10cのみを示すが、分析装置100は、他のセンサに更に接続されているものとする。
センサ10a〜10cは、画像センサ、音センサ、運動センサ等の各種のセンサのうち、いずれかのセンサである。たとえば、センサ10a〜10cは、作業現場に設置される。なお、センサの設置場所は作業現場に限定されない。例えば、作業者が身に着ける場合、作業者が操作する機械に取り付ける場合や、これら環境・人・物体に取り付けたセンサを複合して用いる場合、もありうる。センサ10a〜10cは、測定結果となるセンサデータを、分析装置100に送信する。センサデータには、センサ値と時刻とを対応付けた情報が、時系列に含まれているものとする。センサデータのヘッダには、送信元となるセンサを一意に識別するセンサ識別情報が含まれている。
センサ10aは、センシングモジュール11aと、通信制御部12aとを有する。センシングモジュール11aは、画像情報、音情報または運動情報を測定するセンサである。本実施例では一例として、センシングモジュール11aは、画像情報をセンシングするモジュールとする。センシングモジュール11aは、センサデータを、通信制御部12aに出力する。
通信制御部12aは、センシングモジュール11aからセンサデータを受け付け、センサデータを分析装置100、推定装置(図示略)に送信する処理を制御する処理部である。通信制御部12aは、学習フェーズにおいて、センサデータを分析装置100に送信する。通信制御部12aは、運用フェーズにおいて、推定装置から送信命令を受け付けた場合に、センサデータを推定装置に送信する。通信制御部12aは、運用フェーズにおいて、送信命令を受け付けていない場合には、センサデータを送信することを抑止する。通信制御部12aは、通信装置に対応する。
センサ10bは、センシングモジュール11bと、通信制御部12bとを有する。センシングモジュール11bは、画像情報、音情報または運動情報を測定するセンサである。本実施例では一例として、センシングモジュール11bは、音情報をセンシングするモジュールとする。センシングモジュール11bは、センサデータを、通信制御部12bに出力する。
通信制御部12bは、センシングモジュール11bからセンサデータを受け付け、センサデータを分析装置100、推定装置(図示略)に送信する処理を制御する処理部である。通信制御部12bは、学習フェーズにおいて、センサデータを分析装置100に送信する。通信制御部12bは、運用フェーズにおいて、推定装置から送信命令を受け付けた場合に、センサデータを推定装置に送信する。通信制御部12bは、運用フェーズにおいて、送信命令を受け付けていない場合には、センサデータを送信することを抑止する。通信制御部12bは、通信装置に対応する。
センサ10cは、センシングモジュール11cと、通信制御部12cとを有する。センシングモジュール11cは、画像情報、音情報または運動情報を測定するセンサである。本実施例では一例として、センシングモジュール11cは、運動情報をセンシングするモジュールとする。センシングモジュール11cは、センサデータを、通信制御部12cに出力する。たとえば、センサ10cは、作業員に設置され、作業員の運動情報をセンシングする。
通信制御部12cは、センシングモジュール11cからセンサデータを受け付け、センサデータを分析装置100、推定装置(図示略)に送信する処理を制御する処理部である。通信制御部12cは、学習フェーズにおいて、センサデータを分析装置100に送信する。通信制御部12cは、運用フェーズにおいて、推定装置から送信命令を受け付けた場合に、センサデータを推定装置に送信する。通信制御部12cは、運用フェーズにおいて、送信命令を受け付けていない場合には、センサデータを送信することを抑止する。通信制御部12cは、通信装置に対応する。
分析装置100は、センサ10a〜10c(および図示しない他のセンサ)からセンサデータをそれぞれ受信し、各センサデータを中間推定量に変換する。分析装置100は、各中間推定量を掛け合わせた結果を用いて、所定のコンテキストを推定可能なパラメータを学習し、学習したパラメータを基にして、所定のコンテキストを推定する際に有用なセンサの組み合わせを選択する。
図2は、本実施例に係る分析装置の構成を示す機能ブロック図である。図2に示すように、この分析装置100は、通信部110、入力部120、表示部130、記憶部140、制御部150を有する。
通信部110は、ネットワーク50を介して、センサ10a〜10c(および図示しない他のセンサ)からセンサデータを受信する処理部である。通信部110は、センサデータを、制御部150に出力する。通信部110は、通信装置に対応する。また、通信部110は、推定装置(図示略)とデータを送受信する。後述する制御部150は、通信部110を介して、各センサ、推定装置とデータをやり取りする。
入力部120は、各種の情報を分析装置100に入力するための入力装置である。たとえば、入力部120は、キーボード、マウス、タッチパネル等に対応する。
表示部130は、制御部150から出力される情報を表示するための表示装置である。たとえば、表示部130は、液晶ディスプレイ、有機ディスプレイ、タッチパネル等に対応する。
記憶部140は、センサDB140a、正解コンテキストDB140b、重みテーブル140c、選択センサテーブル140dを有する。記憶部140は、RAM(Random Access Memory)、ROM(Read Only Memory)、フラッシュメモリ(Flash Memory)などの半導体メモリ素子や、HDD(Hard Disk Drive)などの記憶装置に対応する。
センサDB140aは、センサ10a〜10c、図示しない他のセンサにより測定されたセンサデータを保持するDB(Data Base)である。図3は、センサDBのデータ構造の一例を示す図である。図3に示すように、このセンサDB140aは、センサ識別情報と、センサデータとを対応付ける。センサ識別情報は、センサを一意に識別する情報である。センサデータは、各センサが時系列に測定したセンサデータである。
正解コンテキストDB140bは、推定対象となるコンテキストと、かかるコンテキストが生じている時間帯とを対応付けるDBである。図4は、正解コンテキストDBのデータ構造の一例を示す図である。図4に示すように、この正解コンテキストDB140bは、コンテキスト内容と、時間帯とを対応付ける。コンテキスト内容は、推定対象となるコンテキストの内容を示すものである。時間帯は、該当するコンテキストが生じている時間帯を示すものである。たとえば、1行目に示すレコードでは、コンテキスト内容「荷下ろし中」が時間帯「時刻Ts1〜Te1」において生じている旨が示される。
重みテーブル140cは、コンテキストを推定するための重みベクトルの情報を保持するテーブルである。図5は、重みテーブルのデータ構造の一例を示す図である。図5に示すように、重みテーブル140cは、コンテキスト内容と、重みベクトルとを対応付ける。コンテキスト内容は、推定対象となるコンテキストの内容を示すものである。重みベクトルは、該当するコンテキストの推定を行うために学習された重みベクトルであり、複数の要素からなる。
選択センサテーブル140dは、コンテキストを推定するために用いるセンサの情報を保持するテーブルである。図6は、選択センサテーブルのデータ構造の一例を示す図である。図6に示すように、この選択センサテーブル140dは、コンテキスト内容と、選択センサとを対応付ける。コンテキスト内容は、推定対象となるコンテキストの内容を示すものである。選択センサは、該当するコンテキストの推定を行う場合に選択されるセンサを示すものである。
図2の説明に戻る。制御部150は、受信部150a、分割部150b、評価部150c、選択部150d、通知部150eを有する。制御部150は、CPU(Central Processing Unit)やMPU(Micro Processing Unit)などによって実現できる。また、制御部150は、ASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)などのハードワイヤードロジックによっても実現できる。
受信部150aは、センサ10a〜10c、図示しない他のセンサから、センサデータを受信する処理部である。受信部150aは、各センサデータを、センサDB140aに格納する。受信部150aは、各センサデータについて、ヘッダに含まれるセンサ識別情報を参照し、該当するセンサ識別情報に対応付けて、センサデータをセンサDB140aに格納する。
また、受信部150aは、正解コンテキストデータを受け付け、受け付けた正解コンテキストデータを、正解コンテキストDB140bに格納する。受信部150aは、正解コンテキストデータを、入力部120から受け付けてもよいし、ネットワーク50を介して、外部装置(図示略)から受け付けてもよい。
分割部150bは、センサデータを分割し、分割したデータを基にして、中間推定量を生成する処理部である。以下に説明するように、分割部150bは、各センサ識別情報に対応付けられた、各センサデータについて、分割する処理、中間推定量を生成する処理を実行する。
分割部150bによる、分割する処理の一例について説明する。分割部150bは、分割対象のセンサデータをセンサDB140aから取得し、取得したセンサデータを一定のタイムウィンドウ幅(時間区間)に切り分ける。なお、タイムウィンドウ幅は、各センサに対して複数持たせてもよい。また、タイムウィンドウ幅は、センサ毎に異なるものであってもよい。以下の説明では、センサデータを一定のタイムウィンドウ幅で切り分けた各データを「分割センサデータ」と表記する。
分割部150bは、センサ識別情報「センサ10a」のセンサデータを切り分けた各分割センサデータを、センサ識別情報「センサ10a」に対応付けて保持する。分割部150bは、センサ識別情報「センサ10b」のセンサデータを切り分けた各分割センサデータを、センサ識別情報「センサ10c」に対応付けて保持する。分割部150bは、センサ識別情報「センサ10c」のセンサデータを切り分けた各分割センサデータを、センサ識別情報「センサ10c」に対応付けて保持する。分割部150bは、他のセンサ識別情報に対応するセンサデータを切り分けた各分割センサデータについても、該当するセンサ識別情報に対応付けて保持する。なお、本発明でのセンサデータのタイムウィンドウ幅に切り分ける方法は、以上で述べたような、データを時間区間毎に別個のデータとして扱う方法に限定されず、センサデータを処理するアルゴリズム上で切り分ける場合も含む。例えば、再起構造を持つニューラルネットワーク、具体的にはRNN(Recurrent Neural Network)、LSTM(Long Short Term Memory)、GRU(Gated Recurrent Unit)において、再起入力を行う時間信号の遅延度合いをタイムウィンドウ幅として与えるものや、時系列信号を1次元に並べ、CNN(Convolutional Neural Network)で畳み込み計算を行い、入力部のフィルタサイズをタイムウィンドウ幅として与えるもの、も含まれる。
分割部150bによる、中間推定量を生成する処理の一例について説明する。分割部150bは、一つの分割センサデータを基にして、一つの中間推定量を生成する。たとえば、分割部150bは、分割センサデータを複数の部分データに分割し、各部分データから特徴量をそれぞれ抽出する。分割部150bは、各部分データからそれぞれ抽出した特徴量に基づき、各部分データをクラスタリングする。分割部150bは、クラスタリングした各グループを横軸、グループに属する部分データの数(度数)を縦軸とするヒストグラムを、中間推定量として生成する。
ここで、分割センサデータ(センサデータ)が、画像情報である場合には、部分データから抽出される特徴量は、エッジの向き、画素値、位置、濃淡等となる。分割センサデータが、音情報である場合には、部分データから抽出される特徴量は、音と時間との波形、周波数特性、スペクトル等となる。分割センサデータが、運動情報である場合には、加速度(あるいは速度、角速度、角加速度)と時間との波形、重力方向の強さ等となる。
なお、分割部150bの説明で述べたクラスタリング処理とは、一般的に用いられるような「センサデータを最近傍の基底に割り当て、割り当てられたセンサデータから基底を学習する教師なし学習」という狭義のものではなく、「センサデータから代表値で表される基底を獲得し、センサデータが入力された場合に獲得された基底とセンサデータから演算される値を出力する」といった機能を持つ広義のものである。具体的には、分割部150bは、クラスタリング技術として、狭義のクラスタリング技術として広く用いられるk-means法、k-meadian法といったようなアルゴリズムや、AutoEncoder法、Deep Boltzmann Machineといった教師なし深層ニューラルネットワークの学習アルゴリズム、予め特徴量空間をグリッドに分割して基底を定義するものを用いてもよい。また、教師なし学習アルゴリズムだけでなく、例えば教師あり学習で学習したニューラルネットワークの中間層出力を取り出し、クラスタリングアルゴリズムとして用いてもよい。
また、ここまでの説明で述べたヒストグラムとは、一般的に用いられるような「各基底毎の出現度数」という狭義のものではなく、「各基底に対応する値を持つベクトル値」という広義のものである。具体的には、本発明でのヒストグラムにおいては、ヒストグラムに含まれる全ての値の和が1とならなくても良いし、ヒストグラムに含まれるある値が負の値を取っても良い。また、ヒストグラムに含まれる値は基底と1対1対応でなくても良く、例えばある基底に対して複数の値が対応してもよいし、ある値が複数の基底から計算されてもよい。
クラスタリング結果から中間推定量を生成する方法も、上で述べた例に限られない。例えば、分割部150bは、Bag of Feature法、n-gramモデル、Fisher Vector Encoding法、スパースコーディング法、Locality Constrained Linear Coding法、VLAD法を用いて中間推定量を生成してもよい。また、クラスタリング技術としてニューラルネットワークを用いている場合は、中間推定量としてニューラルネットワークの中間層出力を中間推定量として用いてもよい。
更に、一般にはヒストグラムは確率値として扱えるように全ての度数の和が1となるような、L1正規化と呼ばれる後処理を加えるが、本発明の中間推定量では別の後処理を行ってもよい。例えば、分割部150bは、L2正規化、Hellinger正規化処理を行っても良いし、後処理を行わず、クラスタリングを行った結果を直接用いてもよい。
図7は、分割部により生成される中間推定量の一例を示す図である。中間推定量20a,21a,22aは、センサ10aのセンサデータを分割した各分割センサデータから生成されたものである。中間推定量20a,21a,22aに対応する時刻を、時刻T−2、T−1、Tとする。中間推定量20a,21a,22aに対応する時刻をどのように設定してもよいが、たとえば、分割センサデータをタイムウィンドウ幅で切り分ける場合の、タイムウィンドウ幅の開始時刻、終了時刻は、開始時刻と終了時刻との中間の時刻であってもよい。
中間推定量20b,21b,22bは、センサ10bのセンサデータを分割した各分割センサデータから生成されたものである。中間推定量20b,21b,22bに対応する時刻を、時刻T−2、T−1、Tとする。中間推定量20b,21b,22bに対応する時刻をどのように設定してもよいが、たとえば、分割センサデータをタイムウィンドウ幅で切り分ける場合の、タイムウィンドウ幅の開始時刻、終了時刻あるは、開始時刻と終了時刻との中間の時刻であってもよい。
中間推定量20c,21c,22cは、センサ10bのセンサデータを分割した各分割センサデータから生成されたものである。中間推定量20c,21c,22cに対応する時刻を、時刻T−2、T−1、Tとする。中間推定量20c,21c,22cに対応する時刻をどのように設定してもよいが、たとえば、分割センサデータをタイムウィンドウ幅で切り分ける場合の、タイムウィンドウ幅の開始時刻、終了時刻あるは、開始時刻と終了時刻との中間の時刻であってもよい。
分割部150bは、センサ識別情報と、各中間推定量とを対応付けた情報を、評価部150cに出力する。たとえば、図7を用いて説明すると、分割部150bは、センサ識別情報「センサ10a」と、中間推定量20a,21a,22aとを対応付けた情報を、評価部150cに出力する。分割部150bは、センサ識別情報「センサ10b」と、中間推定量20b,21b,22bとを対応付けた情報を、評価部150cに出力する。センサ識別情報「センサ10c」と、中間推定量20c,21c,22cとを対応付けた情報を、評価部150cに出力する。
評価部150cは、各センサ識別情報に対応する各中間推定量の組み合わせについて、評価を行う処理部である。たとえば、評価部150cは、各センサ識別情報に対応する各中間推定量を基にして、特徴量ベクトルを生成する処理、重みベクトルを学習する処理を行う。
評価部150cによる、特徴量ベクトルを生成する処理の一例について説明する。図8は、特徴量ベクトルを生成する処理を説明するための図である。評価部150cは、センサ識別情報に対応する中間推定量を時系列に並べる。評価部150cは、異なるセンサ識別情報間で、各中間推定量を掛け合わせたものを、ベクトルの要素とすることで、特徴量ベクトルを算出する。たとえば、時間tを基準とした時間帯に含まれる各中間推定量を掛け合わせて得られる特徴量ベクトルをφ(t)と表記する。
どの中間推定量と、どの中間推定量とを掛け合わせたもの(直積)を、特徴量ベクトルのいずれの要素とするのかは、予め設定されたルールに従う。評価部150cは、3つ以上の中間推定量の直積を、特徴量ベクトルの要素としてもよい。また、各中間推定量の掛け合わせを行う場合に、多重線形表現を用いてもよい。
たとえば、特徴量ベクトルφ(t)において、部分31に含まれる各要素には、あるセンサ識別情報の中間推定量と、他のセンサ識別情報の中間推定量との直積がそれぞれ配置される。たとえば、評価部150cは、部分31の各要素の一つに、中間推定量20aと中間推定量20bとの直積を配置する。
部分32に含まれる各要素には、1つ目のセンサ識別情報の中間推定量と、2つ目のセンサ識別情報の中間推定量と、3つ目のセンサ識別情報の中間推定量との直積がそれぞれ配置される。たとえば、評価部150cは、部分32の各要素の一つに、中間推定量20aと、中間推定量20bと、中間推定量20cとの直積を配置する。
評価部150cは、異なる時間t毎に、特徴量ベクトルφ(t)を算出する。たとえば、評価部150cは、時間t1の特徴量ベクトルφ(t1)、時間t2の特徴量ベクトルφ(t2)、・・・、時間tnの特徴量ベクトルφ(tn)を算出する。
なお、評価部150cが前述した掛け合わせを行う際に、異なる時間tで生成された中間推定量を掛け合わせてもよい。たとえば、図8に示すように、評価部150cは、部分31の各要素の一つに、それぞれ異なる時間t−2、t−1に生成された、中間推定量20aと、中間推定量21bの直積を配置する。
また、掛け合わせは、全ての中間推定量の組合せに対して行っても良いし、一部の組合せに限定して掛け合わせを行っても良い。その限定方法としては、例えば、中間推定量が発生した時間差が一定以内のものに限定する方法、中間推定量の生成に用いたセンサが設置された位置の距離が一定以内のものに限定する方法や、予めルールとして定めた組合せに限定する方法、を用いても良い。また、頻出パタンマイニングアルゴリズムや列挙アルゴリズムを用い、中間推定量のノルムが一定以上の値を取った回数が一定値以上となった組合せに限定してもよい。
更に、掛け合わせを行った特徴量φ(t)を学習・推定に用いる際、φ(t)を直接用いてもよいし、更に後処理を加えてもよい。例えば、φ(t)に主成分分析などの低次元化アルゴリズムを適用したものを学習・推定に用いてもよい。
評価部150cによる、重みベクトルを学習する処理の一例について説明する。評価部150cは、構造正則化アルゴリズムを用いて、重みベクトルを学習する。構造正則化アルゴリズムでは、重みベクトルの要素により多くの0が含まれるような学習が行われる。たとえば、評価部150cは、式(1)に示す評価関数Lの値がより小さな値となるように、重みベクトルwを学習する。
式(1)に含まれる「l(φ(t),w,y)」は、式(2)により定義されるロス関数である。式(1)に含まれる「λ」は、調整パラメータであり、予め値が設定されている。「Ω(w)」は、重みベクトルwの大きさを示す正則化項であり、式(3)により定義される。
式(2)において、「y」は、特徴量ベクトルφ(t)の時間tに対応する時間帯において、対象のコンテキストが生じている場合には「1」が設定され、対象のコンテキストが生じていない場合には「−1」が設定される。評価部150cは、時間tと、正解コンテキストDB140bとを比較して、対象のコンテキストが生じているか否かを判定する。
一例として、評価部150cが、コンテキスト「荷下ろし中」を推定するための重みベクトルwを学習する場合について説明する。図4に示すように、コンテキスト「荷下ろし中」は、時間帯「時刻Ts1〜時刻Te1」において生じているため、時間tが、時間帯「時刻Ts1〜時刻Te1」に含まれる場合には、「y=1」となり、含まれない場合には「y=−1」となる。
式(1)、(2)に含まれる「w」は、重みベクトルを示すものである。図9は、重みベクトルを説明するための図である。図9に示すように、重みベクトルwは複数の要素を有する。重みベクトルwの要素の数と、特徴量ベクトルφ(t)の要素の数とは一致しており、それぞれ対応付けられる。たとえば、重みベクトルwの部分41の各重みは、特徴量ベクトルφ(t)の部分31の各要素に対応する重みである。重みベクトルwの部分42の各重みは、特徴量ベクトルφ(t)の部分32の各要素に対応する重みである。
評価部150cは、各時刻t(t=t1,t2、・・・tn)について、特徴量ベクトルφ(t)と、時間tにおいて対象のコンテキストが生じているか否かの値(y=1ory=−1)との組を、式(1)に入力して、重みベクトルwを学習する。評価部150cは、学習した重みベクトルwを、重みテーブル140cに登録する。
なお、ロス関数は、式(2)で示した形式に限定されない。他例として、例えばロジスティック損失、クロスエントロピー損失、ヒンジ損失、平滑化ヒンジ損失、Huber損失をロス関数として用いてもよい。また、以上の説明はコンテキスト推定を特定コンテキスト内容を行っているか否かを判定する問題、則ち分類問題に対して扱っている場合について述べたが、本発明の技術はコンテキスト推定を回帰問題として扱う場合に用いてもよい。例えば、コンテキスト推定として連続値を取る「ストレス量」を推定する問題に対し、ロス関数をL2損失、log Poisson損失を用いて学習を行う場合も本発明の実施例として挙げられる。更に、正則化項は、式(3)で示した形式に限定されない。他例として、例えばL0正則化項、Lp正則化項、グループL0正則化項、グループL1正則化項を用いても良い。また、これら正則化項のグループの定義方法として、複数回の重複を許しても良い。更に、正則化項として、Elastic Netのように、上で述べた正則化項と、L2正則化項やL∞正則化項を含む複数の異なる正則化項の和で表されるものを用いても良い。
評価部150cは、コンテキスト内容が複数種類存在する場合には、コンテキスト内容毎に、上記処理を繰り返し実行し、コンテキストを推定するための固有の重みベクトルをそれぞれ算出し、重みテーブル140cに登録する。たとえば、図5に示す例では、コンテキスト内容「荷下ろし中」を推定するための重みベクトルが「w1」であり、コンテキスト内容「商品陳列中」を推定するための重みベクトルが「w2」であり、コンテキスト内容「包装中」を推定するための重みベクトルが「w3」である旨が示される。
なお、ここまでで述べた説明では、まずクラスタリング処理を行い、次に重みの学習を行う例を述べたが、本発明で示す学習方法はその例に限られない。例えば、クラスタリング処理と重みの学習を交互に繰り返し学習する方法や、クラスタリング処理を行うニューラルネットワークと重みの学習を行うニューラルネットワークを接続した形式で定義し、クラスタリング処理と重みの学習を同時に行うEnd−to−End形式での学習を行っても良い。
選択部150dは、重みテーブル140cを基にして、各コンテキストを推定する場合に使用するセンサの組を選択する処理部である。選択部150dは、選択した結果を、選択センサテーブル140dに登録する。
一例として、選択部150dが、コンテキスト内容「荷下ろし中」を推定する場合において、使用するセンサの組を選択する処理について説明する。選択部150dは、重みテーブル140cから、コンテキスト内容「荷下ろし中」に対応する学習済みの重みベクトルw1を取得し、取得した重みベクトルの要素のうち、0となる要素を検出する。
選択部150dは、0となる要素を検出すると、検出した要素に対応するセンサに「ペナルティ値」として1を加算する。たとえば、図9で説明した、中間推定量20aと、中間推定量20bとの直積の重み(要素)が0となる場合には、中間推定量20aに対応するセンサ10aと、中間推定量20bに対応するセンサ10bにそれぞれペナルティ値として1を加算する。
中間推定量20aと、中間推定量20bと、中間推定量20cとの直積の重み(要素)が0となる場合には、中間推定量20aに対応するセンサ10aと、中間推定量20bに対応するセンサ10bと、中間推定量20cに対応するセンサ10cにそれぞれペナルティ値として1を加算する。
選択部150dは、0となる要素について、上記の処理を繰り返し実行することで、各センサのペナルティ値を算出する。選択部150dは、各センサのうち、ペナルティ値が予め設定されたペナルティ値未満となるセンサを、コンテキスト内容「荷下ろし中」を推定する場合に使用するセンサとして選択する。なお、選択部150dは、ペナルティ値に応じて、各センサを昇順にソートし、ペナルティ値の少ない上位M個のセンサを、コンテキスト内容「荷下ろし中」を推定する場合に使用するセンサとして選択してもよい。Mは、予め設定される自然数である。
選択部150dは、他のコンテキスト内容を推定する場合において使用するセンサの組についても、上記のコンテキスト内容「荷下ろし中」の場合と同様にして選択し、選択した情報を、選択センサテーブル140dに登録する。
なお、ここまでで述べた説明では、選択部が、用いるセンサ個数にペナルティを付与してセンサ選択を行う方式を述べたが、本発明での実現形態はその方式に限られない。具体的には、選択部は、特定のセンサに関する重みの要素の何れかが0でないもの、もしくは重みの要素の絶対値の最小値が一定値以上の値を持つセンサを、コンテキスト内容を推定するセンサとして選択してもよい。また、コンテキスト内容毎に認識時に用いるセンサの組の変更を行わず、全てのコンテキスト内容で同一のセンサを選択してもよい。その具体的な方法として、例えば、予め各々のコンテキスト内容で選択されたセンサに対し、それらの和集合をコンテキスト内容を推定するセンサとして選択してもよい。更に、選択されたセンサを固定し、異なる調整パラメタλや異なる正則化項に対して再学習を行い、重みwを更新しても良い。
通知部150eは、重みテーブル140c、選択センサテーブル140dを、後述する推定装置に通知する処理部である。
次に、本実施例に係る分析装置100の処理手順の一例について説明する。図10は、本実施例に係る分析装置の処理手順を示すフローチャートである。図10に示すように、分析装置100の受信部150aは、各センサ10a〜10c(他のセンサ)から時系列のセンサデータを受信し、センサDB140aに登録する(ステップS101)。受信部150aは、正解コンテキストデータを受け付け、正解コンテキストDB140bに登録する(ステップS102)。
分析装置100の分割部150bは、各センサデータを所定の時間区間に切り分けることで、複数の分割センサデータを生成する(ステップS103)。分割部150bは、複数の分割センサデータを基にして、複数の中間推定量を生成する(ステップS104)。
分析装置100の評価部150cは、センサ識別情報毎に各中間推定量を時系列に並べる(ステップS105)。評価部150cは、異なるセンサ識別情報間の中間推定量を掛け合わせることで、特徴量ベクトルを算出する(ステップS106)。評価部150cは、評価関数Lの値がより小さくなるように、重みベクトルの各要素を学習し、学習した重みベクトルを、重みテーブル140cに登録する(ステップS107)。
分析装置100の選択部150dは、重みテーブル140cを基にして、コンテキストを推定する場合に使用するセンサを選択する(ステップS108)。選択部150dは、選択結果を基にして、選択センサテーブル140dを更新する(ステップS109)。分析装置100の通知部150eは、重みテーブル140c、選択センサテーブル140dを、推定装置に通知する(ステップS110)。
続いて、分析装置100から通知される重みテーブル140c、選択センサテーブル140dを基にして、コンテンツの推定を行う推定装置について説明を行う。
図11は、本実施例に係る運用時のシステムの構成を示す図である。図11に示すように、このシステムは、センサ10a,10b,10cと、推定装置200とを有する。センサ10a,10b,10cと、推定装置200とは、ネットワーク50を介して相互に接続される。ここでは、便宜上、センサ10a〜10cのみを示すが、推定装置200は、他のセンサに更に接続されているものとする。なお、図1に示した分析装置100に接続される各センサと、推定装置200に接続される各センサとは、同じセンサであるものとする。
センサ10a〜10cは、画像センサ、音センサ、運動センサ等の各種のセンサのうち、いずれかのセンサである。センサ10a〜10cに関する説明は、図1で説明した、センサ10a〜10cの説明と同様である。
推定装置200は、推定対象となるコンテキストの指定を受け付けると、選択センサテーブル140dを基にして、使用するセンサの組を特定し、特定したセンサに対して、送信命令を送信する。推定装置200は、送信命令を送信したセンサから、センサデータを受信し、重みテーブル140cの重みを用いて、推定対象のコンテキストが生じているか否かを判定する。
図12は、本実施例に係る推定装置の構成を示す機能ブロック図である。図12に示すように、この推定装置200は、通信部210、入力部220、表示部230、記憶部240、制御部250を有する。
通信部210は、ネットワーク50を介して、選択したセンサからセンサデータを受信する処理部である。通信部110は、センサデータを、制御部150に出力する。通信部210は、通信装置に対応する。また、通信部210は、分析装置100とデータを送受信する。後述する制御部250は、通信部210を介して、各センサ、分析装置100とデータをやり取りする。
入力部220は、各種の情報を推定装置200に入力するための入力装置である。たとえば、入力部220は、キーボード、マウス、タッチパネル等に対応する。
表示部230は、制御部250から出力される情報を表示するための表示装置である。たとえば、表示部230は、液晶ディスプレイ、有機ディスプレイ、タッチパネル等に対応する。
記憶部240は、センサDB240a、重みテーブル140c、選択センサテーブル140dを有する。記憶部240は、RAM、ROM、フラッシュメモリなどの半導体メモリ素子や、HDDなどの記憶装置に対応する。
センサDB240aは、センサ10a〜10c、図示しない他のセンサにより測定されたセンサデータを保持するDBである。センサDB240aのデータ構造は、図3で説明した、センサDB140aのデータ構造と同様である。なお、センサDB240aには、後述する通信制御部250bにより選択されたセンサのセンサデータが登録される。
重みテーブル140cは、コンテキストを推定するための重みベクトルの情報を保持するテーブルである。重みテーブル140cは、分析装置100により学習された重みベクトルの情報を保持する。重みテーブル140cのデータ構造は、図5に示した重みテーブル140cのデータ構造と同様である。
選択センサテーブル140dは、コンテキストを推定するために用いるセンサの情報を保持するテーブルである。選択センサテーブル140dのデータ構造は、図6に示した選択センサテーブル140dのデータ構造と同様である。
制御部250は、受信部250a、通信制御部250b、分割部250c、スコア算出部250dを有する。制御部250は、CPUやMPUなどによって実現できる。また、制御部250は、ASICやFPGAなどのハードワイヤードロジックによっても実現できる。
受信部250aは、通信制御部250bにより選択された各センサからセンサデータを受信する処理部である。受信部250aか、各センサデータを、センサDB240aに格納する。受信部250aは、各センサデータについて、ヘッダに含まれるセンサ識別情報を参照し、該当するセンサ識別情報に対応付けて、センサデータをセンサDB240aに格納する。
通信制御部250bは、コンテキストを推定する場合に用いるセンサを、選択センサテーブル140dを基にして選択する処理部である。通信制御部250bは、選択したセンサに対して、送信要求を送信する。なお、通信制御部250bは、選択したセンサ以外のセンサに対して、送信停止要求を送信し、センサデータが送信されることを抑止してもよい。
たとえば、通信制御部250bは、入力部220等から、推定対象となるコンテキスト内容の指定を受け付ける。通信制御部250bは、指定されたコンテキスト内容と、選択センサテーブルとを比較して、コンテキストを推定する場合に用いるセンサを特定する。
分割部250cは、センサデータを分割し、分割したデータを基にして、中間推定量を生成する処理部である。分割部250cが、中間推定量を生成する処理は、分析装置100の分割部150bが中間推定量を生成する処理と同様である。分割部250cは、センサ識別情報と、各中間推定量とを対応付けた情報を、スコア算出部250dに出力する。
スコア算出部250dは、コンテキストが生じているかの確からしさを示すスコアを算出する処理部である。たとえば、スコア算出部250dは、特徴量ベクトルを生成する処理、スコアを算出する処理を行う。
スコア算出部250dによる、特徴量ベクトルを生成する処理は、分析装置100の評価部150cが、特徴量ベクトルを生成する処理と同様である。たとえば、スコア算出部250dは、異なるセンサ識別情報間で、各中間推定量を掛け合わせたものを、ベクトルの要素とすることで、特徴量ベクトルを算出する。
スコア算出部250dによる、スコアを算出する処理について説明する。たとえば、スコア算出部250dは、式(4)を基にして、スコアS(t)を算出する。式(4)において、「w」は、学習された重みベクトルである。スコア算出部250dは、入力部220等から指定されるコンテキスト内容と、重みテーブル140cとを比較し、指定されたコンテキスト内容に対応する重みベクトルを用いる。たとえば、指定されたコンテキスト内容が「荷下ろし中」である場合には、スコア算出部250dは、重みベクトルw1を、式(4)に代入する。式(4)のφ(t)は、特徴量ベクトルである。
スコア算出部250dは、スコアの算出結果を、表示部230に出力して表示してもよいし、ネットワーク50を介して接続される外部装置に、スコアの算出結果の情報を通知してもよい。推定対象となるコンテキストが生じている確からしさが大きい場合には、スコアはより大きな値となり、確からしさが小さい場合には、スコアはより小さな値となる。更に、スコア算出部250dは、時刻毎にスコアを示すグラフを生成して、表示部230に表示してもよい。
次に、本実施例に係る推定装置200の処理手順の一例について説明する。図13は、本実施例に係る推定装置の処理手順を示すフローチャートである。図13に示すように、推定装置200の通信制御部250bは、コンテキスト内容の指定を受け付ける(ステップS201)。通信制御部250bは、選択センサテーブル140dを基にして、センサを選択し、選択したセンサに送信要求を送信する(ステップS202)。
推定装置200の受信部250aは、選択したセンサからセンサデータを受信し、センサDB240aに登録する(ステップS203)。推定装置200の分割部250cは、各センサデータを所定の時間区間に切り分けることで、複数の分割センサデータを生成する(ステップS204)。
分割部250cは、複数の分割センサデータを基にして、複数の中間推定量を生成する(ステップS205)。推定装置200のスコア算出部250dは、センサ識別情報毎に各中間推定量を時系列に並べる(ステップS206)。
スコア算出部250dは、異なるセンサ識別情報間の中間推定量を掛け合わせることで、特徴量ベクトルを算出する(ステップS207)。スコア算出部250dは、推定するコンテキスト内容に対応する重みベクトルを重みテーブル140cから取得する(ステップS208)。
スコア算出部250dは、重みベクトルと特徴量ベクトルとを基にして、コンテキストが生じている確からしさのスコアを算出する(ステップS209)。スコア算出部250dは、スコアの算出結果を、表示部230に出力する(ステップS210)。
次に、本実施例に係る分析装置100の効果について説明する。分析装置100は、各センサからセンサデータを受信し、各センサデータを複数の時間区間に切り分けることで、複数の分割センサデータを生成する。分析装置100は、複数のセンサのうち、あるセンサの各分割センサデータと、他のセンサの各分割センサデータとの組み合わせについて評価を行い、評価結果を基にして、組み合わせの対象となるセンサの組を選択する。これにより、コンテキストを推定する場合に有用なセンサの組を選択することができる。
分析装置100は、分割センサデータの各部分に含まれる特徴量を基にしたクラスタリングを実行することで得られるヒストグラムを、分割センサデータの中間推定量として生成し、生成した各中間推定量の組み合わせについて評価を行う。このように、中間推定量に変換することで、異なる種別のセンサ(画像センサ、音センサ、運動センサ等)の測定結果を組み合わせて評価を行うことができる。
分析装置100は、あるセンサの各中間推定量と他のセンサの各中間推定量とを掛け合わせた値をそれぞれ要素とする特徴量ベクトルを生成する。分析装置100は、特徴量ベクトルと重みベクトルとを掛け合わせて加算した値が、コンテキストの正解値に近づくように、重みベクトルを学習する。分析装置100は、学習した重みベクトルの各要素を基にして、組み合わせ対象となるセンサの組を特定する。これにより、コンテキストを推定するために有用なセンサの組を特定することができる。
また、本実施例に係る推定装置200は、運用フェーズにおいて、分析装置100により生成された選択センサテーブル140dを基にして、コンテキストを推定する場合に用いるセンサに対して送信命令を送信する。かかる処理を行うことで、複数のセンサのうち、送信命令を送信したセンサから、センサデータを受信して、コンテキストの推定を行うことができるので、データ通信量を削減することができる。
ところで、本実施例では一例として、分析装置100と、推定装置200とが別々の装置に実装される場合について説明したが、これに限定されるものではない。たとえば、分析装置100が、推定装置200の構成を有していてもよい。すなわち、図2に示した分析装置100の制御部150が、図12に示した推定装置200の受信部250a,通信制御部250b,分割部250c,スコア算出部250dを有していてもよい。
また、図1に示した学習時のシステム構成は一例であり、図14に示すシステム構成であってもよい。図14は、本実施例に係る学習時の他のシステムの構成を示す図である。図14に示すように、このシステムは、センサ10a〜10dと、ゲートウェイ60と、分析装置100とを有する。
センサ10a〜10dは、ゲートウェイ60に接続される。図14では図示を省略するが、ゲートウェイ60には、その他のセンサが接続されているものとする。ゲートウェイ60は、ネットワーク50を介して分析装置100に接続される。
センサ10a〜10dは、画像センサ、音センサ、運動センサ等の各種のセンサのうち、いずれかのセンサである。センサ10a〜10dは、ゲートウェイ60を介して、センサデータを、分析装置100に送信する。
ゲートウェイ60は、各センサと分析装置100とのデータ通信を中継する装置である。ゲートウェイ60の各ポートには、センサ10a〜10d(およびその他のセンサ)が接続されており、ポート単位で、通信の接続、切断を制御することが可能である。どのポートにどのセンサが接続されているかを示す管理テーブルがゲートウェイ60に予め設定されているものとする。学習フェーズにおいて、ゲートウェイ60は、全ポートを接続状態にし、各センサが測定したセンサデータを、分析装置100に送信する。
分析装置100は、ゲートウェイ60から送信される各センサのセンサデータを受信し、各センサデータを用いて、所定のコンテキストを推定する際に有用なセンサの組み合わせを選択する装置である。その他の説明は、上述した分析装置100に関する説明と同様である。
続いて、図11に示した運用時のシステム構成は一例であり、図15に示すシステム構成であってもよい。図15は、本実施例に係る運用時の他のシステムの構成を示す図である。図15に示すように、このシステムは、センサ10a〜10dと、ゲートウェイ60と、推定装置200とを有する。
センサ10a〜10dは、ゲートウェイ60に接続される。図15では図示を省略するが、ゲートウェイ60には、その他のセンサが接続されているものとする。ゲートウェイ60は、ネットワーク50を介して推定装置200に接続される。
ゲートウェイ60は、図14に示したゲートウェイ60に対応するものである。運用フェーズにおいて、ゲートウェイ60は、推定装置200から、通信を許可するセンサ識別情報と、通信を許可しないセンサ識別情報とを含む制御情報を受信し、受信した制御情報を基にして、ポートの接続、切断を制御する。たとえば、ゲートウェイ60は、センサ10a〜10cの通信を許可し、センサ10dの通信を許可しない旨の制御情報を受信した場合には、センサ10a〜10cに接続されたポートを接続し、センサ10dに接続されたポートを切断する制御を行う。これにより、センサ10a〜10cのセンサデータが、推定装置200に送信され、センサ10dのセンサデータは、推定装置200に送信されない。
推定装置200は、推定対象となるコンテキストの指定を受け付けると、選択センサテーブル140dを基にして、使用するセンサの組を特定し、特定したセンサに対して、制御情報をゲートウェイ60に送信する。推定装置200は、選択したセンサから、センサデータを受信(ゲートウェイ60を介して受信)し、重みテーブル140cの重みを用いて、推定対象のコンテキストが生じているか否かを判定する。その他の説明は、上述した推定装置200に関する説明と同様である。
次に、実施例に示した分析装置100、推定装置200と同様の機能を実現するコンピュータのハードウェア構成の一例について説明する。図16は、本実施例に係る分析装置と同様の機能を実現するコンピュータのハードウェア構成の一例を示す図である。
図16に示すように、コンピュータ500は、各種演算処理を実行するCPU501と、ユーザからのデータの入力を受け付ける入力装置502と、ディスプレイ503とを有する。また、コンピュータ500は、記憶媒体からプログラム等を読み取る読み取り装置504と、有線または無線ネットワークを介して、外部装置等との間でデータの授受を行うインタフェース装置505とを有する。コンピュータ500は、各種情報を一時記憶するRAM506と、ハードディスク装置507とを有する。そして、各装置501〜507は、バス508に接続される。
ハードディスク装置507は、受信プログラム507a、分割プログラム507b、評価プログラム507c、選択プログラム507d、通信プログラム507eを有する。CPU501は、受信プログラム507a、分割プログラム507b、評価プログラム507c、選択プログラム507d、通信プログラム507eを読み出してRAM506に展開する。
受信プログラム507aは、受信プロセス506aとして機能する。分割プログラム507bは、分割プロセス506bとして機能する。評価プログラム507cは、評価プロセス506cとして機能する。選択プログラム507dは、選択プロセス506dとして機能する。通信プログラム507eは、通信プロセス506eとして機能する。
受信プロセス506aの処理は、受信部150aの処理に対応する。分割プロセス506bの処理は、分割部150bの処理に対応する。評価プロセス506cの処理は、評価部150cの処理に対応する。選択プロセス506dの処理は、選択部150dの処理に対応する。通信プロセス506eの処理は、通知部150eの処理に対応する。
なお、各プログラム507a〜507eについては、必ずしも最初からハードディスク装置507に記憶させておかなくてもよい。例えば、コンピュータ500に挿入されるフレキシブルディスク(FD)、CD−ROM、DVDディスク、光磁気ディスク、ICカードなどの「可搬用の物理媒体」に各プログラムを記憶させておく。そして、コンピュータ500が各プログラム507a〜507eを読み出して実行するようにしてもよい。
図17は、本実施例に係る推定装置と同様の機能を実現するコンピュータのハードウェア構成の一例を示す図である。
図17に示すように、コンピュータ600は、各種演算処理を実行するCPU601と、ユーザからのデータの入力を受け付ける入力装置602と、ディスプレイ603とを有する。また、コンピュータ600は、記憶媒体からプログラム等を読み取る読み取り装置604と、有線または無線ネットワークを介して、外部装置等との間でデータの授受を行うインタフェース装置605とを有する。コンピュータ600は、各種情報を一時記憶するRAM606と、ハードディスク装置607とを有する。そして、各装置601〜607は、バス608に接続される。
ハードディスク装置607は、受信プログラム607a、通信制御プログラム607b、分割プログラム607c、スコア算出プログラム607dを有する。CPU601は、受信プログラム607a、通信制御プログラム607b、分割プログラム607c、スコア算出プログラム607dを読み出してRAM606に展開する。
受信プログラム607aは、受信プロセス606aとして機能する。通信制御プログラム607bは、通信制御プロセス606bとして機能する。分割プログラム607cは、分割プロセス606cとして機能する。スコア算出プログラム607dは、スコア算出プロセス606dとして機能する。
受信プロセス606aの処理は、受信部250aの処理に対応する。通信制御プロセス606bの処理は、通信制御部250bの処理に対応する。分割プロセス606cの処理は、分割部250cの処理に対応する。スコア算出プロセス606dの処理は、スコア算出部250dの処理に対応する。
なお、各プログラム607a〜607dについては、必ずしも最初からハードディスク装置607に記憶させておかなくてもよい。例えば、コンピュータ600に挿入されるフレキシブルディスク(FD)、CD−ROM、DVDディスク、光磁気ディスク、ICカードなどの「可搬用の物理媒体」に各プログラムを記憶させておく。そして、コンピュータ600が各プログラム607a〜607eを読み出して実行するようにしてもよい。
以上の各実施例を含む実施形態に関し、さらに以下の付記を開示する。
(付記1)複数のセンサにより測定された時系列の情報を取得し、前記時系列の情報を複数の時間区間に切り分けることで複数の測定値を生成する分割部と、
前記複数のセンサのうち、第1センサに対応する複数の測定値と、第2センサに対応する複数の測定値との組み合わせについて評価を行う評価部と、
前記評価部の評価結果を基にして、組み合わせ対象となるセンサの組を選択する選択部と
を有することを特徴とする分析装置。
(付記2)前記分割部は、前記測定値を分割し、分割した各部分に含まれる特徴量を基にしたクラスタリングを実行することで得られるヒストグラムを前記測定値の中間推定量として生成し、前記評価部は、前記第1センサに対応する複数の第1中間推定量と、第2センサに対応する複数の第2中間推定量との組み合わせについて評価を行うことを特徴とする付記1に記載の分析装置。
(付記3)前記評価部は、前記複数の第1中間推定量と、前記複数の第2中間推定量との掛け合わせた値をそれぞれ要素とする特徴量ベクトルを生成し、前記特徴量ベクトルと重みベクトルとを掛け合わせて加算した値が、前記時系列の情報に対応するコンテキストの正解値に近づくように、前記重みベクトルの各要素を学習し、前記選択部は、学習された前記重みベクトルの各要素を基にして、組み合わせ対象となるセンサの組と選択することを特徴とする付記2に記載の分析装置。
(付記4)前記評価部は、前記複数の第1中間推定量および前記複数の第2中間推定量を時系列に並べ、所定の時間範囲に含まれる複数の第1中間推定量と、複数の第2中間推定量との組み合わせについて評価を行うことを特徴とする付記3に記載の分析装置。
(付記5)通信装置から前記複数のセンサにより測定された時系列の情報を受信し、前記選択部の選択結果を前記通信装置に通知して、組み合わせの対象とならないセンサにより測定された時系列の情報を受信することを抑止する通信制御部を更に有することを特徴とする付記1に記載の分析装置。
(付記6)コンピュータが、
複数のセンサにより測定された時系列の情報を取得し、前記時系列の情報を複数の時間区間に切り分けることで複数の測定値を生成し、
前記複数のセンサのうち、第1センサに対応する複数の測定値と、第2センサに対応する複数の測定値との組み合わせについて評価を行い、
評価結果を基にして、組み合わせ対象となるセンサの組を選択する
処理を実行することを特徴とする分析方法。
(付記7)前記生成する処理は、前記測定値を分割し、分割した各部分に含まれる特徴量を基にしたクラスタリングを実行することで得られるヒストグラムを前記測定値の中間推定量として生成し、前記評価する処理は、前記第1センサに対応する複数の第1中間推定量と、第2センサに対応する複数の第2中間推定量との組み合わせについて評価を行うことを特徴とする付記6に記載の分析方法。
(付記8)前記評価する処理は、前記複数の第1中間推定量と、前記複数の第2中間推定量との掛け合わせた値をそれぞれ要素とする特徴量ベクトルを生成し、前記特徴量ベクトルと重みベクトルとを掛け合わせて加算した値が、前記時系列の情報に対応するコンテキストの正解値に近づくように、前記重みベクトルの各要素を学習し、前記選択する処理は、学習された前記重みベクトルの各要素を基にして、組み合わせ対象となるセンサの組と選択することを特徴とする付記7に記載の分析方法。
(付記9)前記評価する処理は、前記複数の第1中間推定量および前記複数の第2中間推定量を時系列に並べ、所定の時間範囲に含まれる複数の第1中間推定量と、複数の第2中間推定量との組み合わせについて評価を行うことを特徴とする付記8に記載の分析方法。
(付記10)通信装置から前記複数のセンサにより測定された時系列の情報を受信し、前記選択部の選択結果を前記通信装置に通知して、組み合わせの対象とならないセンサにより測定された時系列の情報を受信することを抑止する処理を更に実行することを特徴とする付記6に記載の分析方法。
(付記11)複数のセンサにより測定された時系列の情報を取得し、前記時系列の情報を複数の時間区間に切り分けることで複数の測定値を生成し、
前記複数のセンサのうち、第1センサに対応する複数の測定値と、第2センサに対応する複数の測定値との組み合わせについて評価を行い、
評価結果を基にして、組み合わせ対象となるセンサの組を選択する
処理をコンピュータに実行させることを特徴とする分析プログラム。
(付記12)前記生成する処理は、前記測定値を分割し、分割した各部分に含まれる特徴量を基にしたクラスタリングを実行することで得られるヒストグラムを前記測定値の中間推定量として生成し、前記評価する処理は、前記第1センサに対応する複数の第1中間推定量と、第2センサに対応する複数の第2中間推定量との組み合わせについて評価を行うことを特徴とする付記11に記載の分析プログラム。
(付記13)前記評価する処理は、前記複数の第1中間推定量と、前記複数の第2中間推定量との掛け合わせた値をそれぞれ要素とする特徴量ベクトルを生成し、前記特徴量ベクトルと重みベクトルとを掛け合わせて加算した値が、前記時系列の情報に対応するコンテキストの正解値に近づくように、前記重みベクトルの各要素を学習し、前記選択する処理は、学習された前記重みベクトルの各要素を基にして、組み合わせ対象となるセンサの組と選択することを特徴とする付記12に記載の分析プログラム。
(付記14)前記評価する処理は、前記複数の第1中間推定量および前記複数の第2中間推定量を時系列に並べ、所定の時間範囲に含まれる複数の第1中間推定量と、複数の第2中間推定量との組み合わせについて評価を行うことを特徴とする付記13に記載の分析プログラム。
(付記15)通信装置から前記複数のセンサにより測定された時系列の情報を受信し、前記選択部の選択結果を前記通信装置に通知して、組み合わせの対象とならないセンサにより測定された時系列の情報を受信することを抑止する処理を更に実行することを特徴とする付記11に記載の分析プログラム。