(57)【要約】【課題】コンテキストを推定するために用いるセンサデータの組み合わせを特定すること。【解決手段】分析装置１００は、複数のセンサ（たとえば、センサ１０ａ〜１０ｃ、他のセンサ）により測定された時系列の情報を取得し、時系列の情報を複数の時間区間に切り分けることで複数の測定値を生成する。分析装置１００は、複数のセンサのうち、第１センサに対応する複数の測定値と、第２センサに対応する複数の測定値との組み合わせについて評価する。分析装置１００は、評価結果を基にして、組み合わせ対象となるセンサの組を選択する。【選択図】図１
2020067948.tif 000002
【特許請求の範囲】
【請求項１】
複数のセンサにより測定された時系列の情報を取得し、前記時系列の情報を複数の時間区間に切り分けることで複数の測定値を生成する分割部と、
前記複数のセンサのうち、第１センサに対応する複数の測定値と、第２センサに対応する複数の測定値との組み合わせについて評価を行う評価部と、
前記評価部の評価結果を基にして、組み合わせ対象となるセンサの組を選択する選択部と
を有することを特徴とする分析装置。
【請求項２】
前記分割部は、前記測定値を分割し、分割した各部分に含まれる特徴量を基にしたクラスタリングを実行することで得られるヒストグラムを前記測定値の中間推定量として生成し、前記評価部は、前記第１センサに対応する複数の第１中間推定量と、第２センサに対応する複数の第２中間推定量との組み合わせについて評価を行うことを特徴とする請求項１に記載の分析装置。
【請求項３】
前記評価部は、前記複数の第１中間推定量と、前記複数の第２中間推定量との掛け合わせた値をそれぞれ要素とする特徴量ベクトルを生成し、前記特徴量ベクトルと重みベクトルとを掛け合わせて加算した値が、前記時系列の情報に対応するコンテキストの正解値に近づくように、前記重みベクトルの各要素を学習し、前記選択部は、学習された前記重みベクトルの各要素を基にして、組み合わせ対象となるセンサの組と選択することを特徴とする請求項２に記載の分析装置。
【請求項４】
前記評価部は、前記複数の第１中間推定量および前記複数の第２中間推定量を時系列に並べ、所定の時間範囲に含まれる複数の第１中間推定量と、複数の第２中間推定量との組み合わせについて評価を行うことを特徴とする請求項３に記載の分析装置。
【請求項５】
通信装置から前記複数のセンサにより測定された時系列の情報を受信し、前記選択部の選択結果を前記通信装置に通知して、組み合わせの対象とならないセンサにより測定された時系列の情報を受信することを抑止する通信制御部を更に有することを特徴とする請求項１に記載の分析装置。
【請求項６】
コンピュータが、
複数のセンサにより測定された時系列の情報を取得し、前記時系列の情報を複数の時間区間に切り分けることで複数の測定値を生成し、
前記複数のセンサのうち、第１センサに対応する複数の測定値と、第２センサに対応する複数の測定値との組み合わせについて評価を行い、
評価結果を基にして、組み合わせ対象となるセンサの組を選択する
処理を実行することを特徴とする分析方法。
【請求項７】
複数のセンサにより測定された時系列の情報を取得し、前記時系列の情報を複数の時間区間に切り分けることで複数の測定値を生成し、
前記複数のセンサのうち、第１センサに対応する複数の測定値と、第２センサに対応する複数の測定値との組み合わせについて評価を行い、
評価結果を基にして、組み合わせ対象となるセンサの組を選択する
処理をコンピュータに実行させることを特徴とする分析プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、分析装置等に関する。
【背景技術】
【０００２】
センサの測定結果となるセンサデータを用いて、コンテキストを推定する技術がある。推定されるコンテキストには様々なものが含まれる。たとえば、作業員に加速度センサを用いて「作業員の転倒」を推定すること、温度、湿度センサを用いて「熱中度」を推定すること等が行われている。また、センサを用いて、作業員の位置を検出し、作業員の作業効率等を推定するものもある。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１８−２８９０６号公報
【特許文献２】特開２０１８−１２４６３９号公報
【特許文献３】特開２０１１−１８０９４６号公報
【特許文献４】特開２０１７−２１７１１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、上述した従来技術では、コンテキストを推定するために用いるセンサデータの組み合わせを特定することができないという問題がある。
【０００５】
近年、業務の見える化、業務の最適化、高齢者のＱｏＬ（Quality  of  Life）の向上、予防介護等、ＩｏＴ（Internet  of  Things）を用いた応用アプリケーションの基礎となる情報として、コンテキストが用いられており、コンテキストの内容が多様化している。たとえば、コンテキストとして、「荷下ろし中」、「商品陳列中」といった人の行動ラベルを推定すること、「ストレス量」を推定すること、「ＩＡＤＬ（Instrumental  Activities  of  Daily  Living）指標」を推定することが求められる。
【０００６】
上記の応用アプリケーションの基礎となるコンテキストを推定するためには、業務行動を認識すること、人の状態を認識することとなり、様々な要因が関係し合うため、単一のセンサデータを用いてかかるコンテキストを推定することが困難である。また、推定対象となるコンテキストが決まった場合に、かかるコンテキストを推定するために用いるセンサデータの組み合わせを特定することは難しい。
【０００７】
ここで、単純に、全てのセンサデータを用いて、深層ニューラルネットワーク等で学習を行い、コンテキストを推定するモデルを生成することも考えられる。しかし、係るモデルでは、全てのセンサデータを入力して、コンテキストを推定することになり、推定時の計算量、データ通信量等が膨大となり、運用時のリアルタイムな処理を行うことが難しい。
【０００８】
１つの側面では、本発明は、コンテキストを推定するために用いるセンサデータの組み合わせを特定することができる分析装置、分析方法および分析プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００９】
第１の案では、分析装置は、分割部と、評価部と、選択部とを有する。分割部は、複数のセンサにより測定された時系列の情報を取得し、時系列の情報を複数の時間区間に切り分けることで複数の測定値を生成する。評価部は、複数のセンサのうち、第１センサに対応する複数の測定値と、第２センサに対応する複数の測定値との組み合わせについて評価を行う。選択部は、評価部の評価結果を基にして、組み合わせ対象となるセンサの組を選択する。
【発明の効果】
【００１０】
コンテクスト推定に要する個々の計測対象を特定せずに必要なセンサデータまたはセンサデータの組み合わせを特定することができる。また、必要な取得対象センサデータを特定することでデータ通信量を削減することができる。
【図面の簡単な説明】
【００１１】
【図１】図１は、本実施例に係る学習時のシステムの構成を示す図である。
【図２】図２は、本実施例に係る分析装置の構成を示す機能ブロック図である。
【図３】図３は、センサＤＢのデータ構造の一例を示す図である。
【図４】図４は、正解コンテキストＤＢのデータ構造の一例を示す図である。
【図５】図５は、重みテーブルのデータ構造の一例を示す図である。
【図６】図６は、選択センサテーブルのデータ構造の一例を示す図である。
【図７】図７は、分割部により生成される中間推定量の一例を示す図である。
【図８】図８は、特徴量ベクトルを生成する処理を説明するための図である。
【図９】図９は、重みベクトルを説明するための図である。
【図１０】図１０は、本実施例に係る分析装置の処理手順を示すフローチャートである。
【図１１】図１１は、本実施例に係る運用時のシステムの構成を示す図である。
【図１２】図１２は、本実施例に係る推定装置の構成を示す機能ブロック図である。
【図１３】図１３は、本実施例に係る推定装置の処理手順を示すフローチャートである。
【図１４】図１４は、本実施例に係る学習時の他のシステムの構成を示す図である。
【図１５】図１５は、本実施例に係る運用時の他のシステムの構成を示す図である。
【図１６】図１６は、本実施例に係る分析装置と同様の機能を実現するコンピュータのハードウェア構成の一例を示す図である。
【図１７】図１７は、本実施例に係る推定装置と同様の機能を実現するコンピュータのハードウェア構成の一例を示す図である。
【発明を実施するための形態】
【００１２】
以下に、本願の開示する分析装置、分析方法および分析プログラムの実施例を図面に基づいて詳細に説明する。なお、この実施例によりこの発明が限定されるものではない。
【実施例】
【００１３】
図１は、本実施例に係る学習時のシステムの構成を示す図である。図１に示すように、このシステムは、センサ１０ａ，１０ｂ，１０ｃと、分析装置１００とを有する。センサ１０ａ，１０ｂ，１０ｃと、分析装置１００とは、ネットワーク５０を介して相互に接続される。ここでは、便宜上、センサ１０ａ〜１０ｃのみを示すが、分析装置１００は、他のセンサに更に接続されているものとする。
【００１４】
センサ１０ａ〜１０ｃは、画像センサ、音センサ、運動センサ等の各種のセンサのうち、いずれかのセンサである。たとえば、センサ１０ａ〜１０ｃは、作業現場に設置される。なお、センサの設置場所は作業現場に限定されない。例えば、作業者が身に着ける場合、作業者が操作する機械に取り付ける場合や、これら環境・人・物体に取り付けたセンサを複合して用いる場合、もありうる。センサ１０ａ〜１０ｃは、測定結果となるセンサデータを、分析装置１００に送信する。センサデータには、センサ値と時刻とを対応付けた情報が、時系列に含まれているものとする。センサデータのヘッダには、送信元となるセンサを一意に識別するセンサ識別情報が含まれている。
【００１５】
センサ１０ａは、センシングモジュール１１ａと、通信制御部１２ａとを有する。センシングモジュール１１ａは、画像情報、音情報または運動情報を測定するセンサである。本実施例では一例として、センシングモジュール１１ａは、画像情報をセンシングするモジュールとする。センシングモジュール１１ａは、センサデータを、通信制御部１２ａに出力する。
【００１６】
通信制御部１２ａは、センシングモジュール１１ａからセンサデータを受け付け、センサデータを分析装置１００、推定装置（図示略）に送信する処理を制御する処理部である。通信制御部１２ａは、学習フェーズにおいて、センサデータを分析装置１００に送信する。通信制御部１２ａは、運用フェーズにおいて、推定装置から送信命令を受け付けた場合に、センサデータを推定装置に送信する。通信制御部１２ａは、運用フェーズにおいて、送信命令を受け付けていない場合には、センサデータを送信することを抑止する。通信制御部１２ａは、通信装置に対応する。
【００１７】
センサ１０ｂは、センシングモジュール１１ｂと、通信制御部１２ｂとを有する。センシングモジュール１１ｂは、画像情報、音情報または運動情報を測定するセンサである。本実施例では一例として、センシングモジュール１１ｂは、音情報をセンシングするモジュールとする。センシングモジュール１１ｂは、センサデータを、通信制御部１２ｂに出力する。
【００１８】
通信制御部１２ｂは、センシングモジュール１１ｂからセンサデータを受け付け、センサデータを分析装置１００、推定装置（図示略）に送信する処理を制御する処理部である。通信制御部１２ｂは、学習フェーズにおいて、センサデータを分析装置１００に送信する。通信制御部１２ｂは、運用フェーズにおいて、推定装置から送信命令を受け付けた場合に、センサデータを推定装置に送信する。通信制御部１２ｂは、運用フェーズにおいて、送信命令を受け付けていない場合には、センサデータを送信することを抑止する。通信制御部１２ｂは、通信装置に対応する。
【００１９】
センサ１０ｃは、センシングモジュール１１ｃと、通信制御部１２ｃとを有する。センシングモジュール１１ｃは、画像情報、音情報または運動情報を測定するセンサである。本実施例では一例として、センシングモジュール１１ｃは、運動情報をセンシングするモジュールとする。センシングモジュール１１ｃは、センサデータを、通信制御部１２ｃに出力する。たとえば、センサ１０ｃは、作業員に設置され、作業員の運動情報をセンシングする。
【００２０】
通信制御部１２ｃは、センシングモジュール１１ｃからセンサデータを受け付け、センサデータを分析装置１００、推定装置（図示略）に送信する処理を制御する処理部である。通信制御部１２ｃは、学習フェーズにおいて、センサデータを分析装置１００に送信する。通信制御部１２ｃは、運用フェーズにおいて、推定装置から送信命令を受け付けた場合に、センサデータを推定装置に送信する。通信制御部１２ｃは、運用フェーズにおいて、送信命令を受け付けていない場合には、センサデータを送信することを抑止する。通信制御部１２ｃは、通信装置に対応する。
【００２１】
分析装置１００は、センサ１０ａ〜１０ｃ（および図示しない他のセンサ）からセンサデータをそれぞれ受信し、各センサデータを中間推定量に変換する。分析装置１００は、各中間推定量を掛け合わせた結果を用いて、所定のコンテキストを推定可能なパラメータを学習し、学習したパラメータを基にして、所定のコンテキストを推定する際に有用なセンサの組み合わせを選択する。
【００２２】
図２は、本実施例に係る分析装置の構成を示す機能ブロック図である。図２に示すように、この分析装置１００は、通信部１１０、入力部１２０、表示部１３０、記憶部１４０、制御部１５０を有する。
【００２３】
通信部１１０は、ネットワーク５０を介して、センサ１０ａ〜１０ｃ（および図示しない他のセンサ）からセンサデータを受信する処理部である。通信部１１０は、センサデータを、制御部１５０に出力する。通信部１１０は、通信装置に対応する。また、通信部１１０は、推定装置（図示略）とデータを送受信する。後述する制御部１５０は、通信部１１０を介して、各センサ、推定装置とデータをやり取りする。
【００２４】
入力部１２０は、各種の情報を分析装置１００に入力するための入力装置である。たとえば、入力部１２０は、キーボード、マウス、タッチパネル等に対応する。
【００２５】
表示部１３０は、制御部１５０から出力される情報を表示するための表示装置である。たとえば、表示部１３０は、液晶ディスプレイ、有機ディスプレイ、タッチパネル等に対応する。
【００２６】
記憶部１４０は、センサＤＢ１４０ａ、正解コンテキストＤＢ１４０ｂ、重みテーブル１４０ｃ、選択センサテーブル１４０ｄを有する。記憶部１４０は、ＲＡＭ（Random  Access  Memory）、ＲＯＭ（Read  Only  Memory）、フラッシュメモリ（Flash  Memory）などの半導体メモリ素子や、ＨＤＤ（Hard  Disk  Drive）などの記憶装置に対応する。
【００２７】
センサＤＢ１４０ａは、センサ１０ａ〜１０ｃ、図示しない他のセンサにより測定されたセンサデータを保持するＤＢ（Data  Base）である。図３は、センサＤＢのデータ構造の一例を示す図である。図３に示すように、このセンサＤＢ１４０ａは、センサ識別情報と、センサデータとを対応付ける。センサ識別情報は、センサを一意に識別する情報である。センサデータは、各センサが時系列に測定したセンサデータである。
【００２８】
正解コンテキストＤＢ１４０ｂは、推定対象となるコンテキストと、かかるコンテキストが生じている時間帯とを対応付けるＤＢである。図４は、正解コンテキストＤＢのデータ構造の一例を示す図である。図４に示すように、この正解コンテキストＤＢ１４０ｂは、コンテキスト内容と、時間帯とを対応付ける。コンテキスト内容は、推定対象となるコンテキストの内容を示すものである。時間帯は、該当するコンテキストが生じている時間帯を示すものである。たとえば、１行目に示すレコードでは、コンテキスト内容「荷下ろし中」が時間帯「時刻Ｔｓ１〜Ｔｅ１」において生じている旨が示される。
【００２９】
重みテーブル１４０ｃは、コンテキストを推定するための重みベクトルの情報を保持するテーブルである。図５は、重みテーブルのデータ構造の一例を示す図である。図５に示すように、重みテーブル１４０ｃは、コンテキスト内容と、重みベクトルとを対応付ける。コンテキスト内容は、推定対象となるコンテキストの内容を示すものである。重みベクトルは、該当するコンテキストの推定を行うために学習された重みベクトルであり、複数の要素からなる。
【００３０】
選択センサテーブル１４０ｄは、コンテキストを推定するために用いるセンサの情報を保持するテーブルである。図６は、選択センサテーブルのデータ構造の一例を示す図である。図６に示すように、この選択センサテーブル１４０ｄは、コンテキスト内容と、選択センサとを対応付ける。コンテキスト内容は、推定対象となるコンテキストの内容を示すものである。選択センサは、該当するコンテキストの推定を行う場合に選択されるセンサを示すものである。
【００３１】
図２の説明に戻る。制御部１５０は、受信部１５０ａ、分割部１５０ｂ、評価部１５０ｃ、選択部１５０ｄ、通知部１５０ｅを有する。制御部１５０は、ＣＰＵ（Central  Processing  Unit）やＭＰＵ（Micro  Processing  Unit）などによって実現できる。また、制御部１５０は、ＡＳＩＣ（Application  Specific  Integrated  Circuit）やＦＰＧＡ（Field  Programmable  Gate  Array）などのハードワイヤードロジックによっても実現できる。
【００３２】
受信部１５０ａは、センサ１０ａ〜１０ｃ、図示しない他のセンサから、センサデータを受信する処理部である。受信部１５０ａは、各センサデータを、センサＤＢ１４０ａに格納する。受信部１５０ａは、各センサデータについて、ヘッダに含まれるセンサ識別情報を参照し、該当するセンサ識別情報に対応付けて、センサデータをセンサＤＢ１４０ａに格納する。
【００３３】
また、受信部１５０ａは、正解コンテキストデータを受け付け、受け付けた正解コンテキストデータを、正解コンテキストＤＢ１４０ｂに格納する。受信部１５０ａは、正解コンテキストデータを、入力部１２０から受け付けてもよいし、ネットワーク５０を介して、外部装置（図示略）から受け付けてもよい。
【００３４】
分割部１５０ｂは、センサデータを分割し、分割したデータを基にして、中間推定量を生成する処理部である。以下に説明するように、分割部１５０ｂは、各センサ識別情報に対応付けられた、各センサデータについて、分割する処理、中間推定量を生成する処理を実行する。
【００３５】
分割部１５０ｂによる、分割する処理の一例について説明する。分割部１５０ｂは、分割対象のセンサデータをセンサＤＢ１４０ａから取得し、取得したセンサデータを一定のタイムウィンドウ幅（時間区間）に切り分ける。なお、タイムウィンドウ幅は、各センサに対して複数持たせてもよい。また、タイムウィンドウ幅は、センサ毎に異なるものであってもよい。以下の説明では、センサデータを一定のタイムウィンドウ幅で切り分けた各データを「分割センサデータ」と表記する。
【００３６】
分割部１５０ｂは、センサ識別情報「センサ１０ａ」のセンサデータを切り分けた各分割センサデータを、センサ識別情報「センサ１０ａ」に対応付けて保持する。分割部１５０ｂは、センサ識別情報「センサ１０ｂ」のセンサデータを切り分けた各分割センサデータを、センサ識別情報「センサ１０ｃ」に対応付けて保持する。分割部１５０ｂは、センサ識別情報「センサ１０ｃ」のセンサデータを切り分けた各分割センサデータを、センサ識別情報「センサ１０ｃ」に対応付けて保持する。分割部１５０ｂは、他のセンサ識別情報に対応するセンサデータを切り分けた各分割センサデータについても、該当するセンサ識別情報に対応付けて保持する。なお、本発明でのセンサデータのタイムウィンドウ幅に切り分ける方法は、以上で述べたような、データを時間区間毎に別個のデータとして扱う方法に限定されず、センサデータを処理するアルゴリズム上で切り分ける場合も含む。例えば、再起構造を持つニューラルネットワーク、具体的にはＲＮＮ（Recurrent  Neural  Network）、ＬＳＴＭ（Long  Short  Term  Memory）、ＧＲＵ（Gated  Recurrent  Unit）において、再起入力を行う時間信号の遅延度合いをタイムウィンドウ幅として与えるものや、時系列信号を１次元に並べ、ＣＮＮ（Convolutional  Neural  Network）で畳み込み計算を行い、入力部のフィルタサイズをタイムウィンドウ幅として与えるもの、も含まれる。
【００３７】
分割部１５０ｂによる、中間推定量を生成する処理の一例について説明する。分割部１５０ｂは、一つの分割センサデータを基にして、一つの中間推定量を生成する。たとえば、分割部１５０ｂは、分割センサデータを複数の部分データに分割し、各部分データから特徴量をそれぞれ抽出する。分割部１５０ｂは、各部分データからそれぞれ抽出した特徴量に基づき、各部分データをクラスタリングする。分割部１５０ｂは、クラスタリングした各グループを横軸、グループに属する部分データの数（度数）を縦軸とするヒストグラムを、中間推定量として生成する。
【００３８】
ここで、分割センサデータ（センサデータ）が、画像情報である場合には、部分データから抽出される特徴量は、エッジの向き、画素値、位置、濃淡等となる。分割センサデータが、音情報である場合には、部分データから抽出される特徴量は、音と時間との波形、周波数特性、スペクトル等となる。分割センサデータが、運動情報である場合には、加速度（あるいは速度、角速度、角加速度）と時間との波形、重力方向の強さ等となる。
【００３９】
なお、分割部１５０ｂの説明で述べたクラスタリング処理とは、一般的に用いられるような「センサデータを最近傍の基底に割り当て、割り当てられたセンサデータから基底を学習する教師なし学習」という狭義のものではなく、「センサデータから代表値で表される基底を獲得し、センサデータが入力された場合に獲得された基底とセンサデータから演算される値を出力する」といった機能を持つ広義のものである。具体的には、分割部１５０ｂは、クラスタリング技術として、狭義のクラスタリング技術として広く用いられるk-means法、k-meadian法といったようなアルゴリズムや、AutoEncoder法、Deep  Boltzmann  Machineといった教師なし深層ニューラルネットワークの学習アルゴリズム、予め特徴量空間をグリッドに分割して基底を定義するものを用いてもよい。また、教師なし学習アルゴリズムだけでなく、例えば教師あり学習で学習したニューラルネットワークの中間層出力を取り出し、クラスタリングアルゴリズムとして用いてもよい。
【００４０】
また、ここまでの説明で述べたヒストグラムとは、一般的に用いられるような「各基底毎の出現度数」という狭義のものではなく、「各基底に対応する値を持つベクトル値」という広義のものである。具体的には、本発明でのヒストグラムにおいては、ヒストグラムに含まれる全ての値の和が１とならなくても良いし、ヒストグラムに含まれるある値が負の値を取っても良い。また、ヒストグラムに含まれる値は基底と１対１対応でなくても良く、例えばある基底に対して複数の値が対応してもよいし、ある値が複数の基底から計算されてもよい。
【００４１】
クラスタリング結果から中間推定量を生成する方法も、上で述べた例に限られない。例えば、分割部１５０ｂは、Bag  of  Feature法、n-gramモデル、Fisher  Vector  Encoding法、スパースコーディング法、Locality  Constrained  Linear  Coding法、VLAD法を用いて中間推定量を生成してもよい。また、クラスタリング技術としてニューラルネットワークを用いている場合は、中間推定量としてニューラルネットワークの中間層出力を中間推定量として用いてもよい。
【００４２】
更に、一般にはヒストグラムは確率値として扱えるように全ての度数の和が１となるような、Ｌ１正規化と呼ばれる後処理を加えるが、本発明の中間推定量では別の後処理を行ってもよい。例えば、分割部１５０ｂは、Ｌ２正規化、Hellinger正規化処理を行っても良いし、後処理を行わず、クラスタリングを行った結果を直接用いてもよい。
【００４３】
図７は、分割部により生成される中間推定量の一例を示す図である。中間推定量２０ａ，２１ａ，２２ａは、センサ１０ａのセンサデータを分割した各分割センサデータから生成されたものである。中間推定量２０ａ，２１ａ，２２ａに対応する時刻を、時刻Ｔ−２、Ｔ−１、Ｔとする。中間推定量２０ａ，２１ａ，２２ａに対応する時刻をどのように設定してもよいが、たとえば、分割センサデータをタイムウィンドウ幅で切り分ける場合の、タイムウィンドウ幅の開始時刻、終了時刻は、開始時刻と終了時刻との中間の時刻であってもよい。
【００４４】
中間推定量２０ｂ，２１ｂ，２２ｂは、センサ１０ｂのセンサデータを分割した各分割センサデータから生成されたものである。中間推定量２０ｂ，２１ｂ，２２ｂに対応する時刻を、時刻Ｔ−２、Ｔ−１、Ｔとする。中間推定量２０ｂ，２１ｂ，２２ｂに対応する時刻をどのように設定してもよいが、たとえば、分割センサデータをタイムウィンドウ幅で切り分ける場合の、タイムウィンドウ幅の開始時刻、終了時刻あるは、開始時刻と終了時刻との中間の時刻であってもよい。
【００４５】
中間推定量２０ｃ，２１ｃ，２２ｃは、センサ１０ｂのセンサデータを分割した各分割センサデータから生成されたものである。中間推定量２０ｃ，２１ｃ，２２ｃに対応する時刻を、時刻Ｔ−２、Ｔ−１、Ｔとする。中間推定量２０ｃ，２１ｃ，２２ｃに対応する時刻をどのように設定してもよいが、たとえば、分割センサデータをタイムウィンドウ幅で切り分ける場合の、タイムウィンドウ幅の開始時刻、終了時刻あるは、開始時刻と終了時刻との中間の時刻であってもよい。
【００４６】
分割部１５０ｂは、センサ識別情報と、各中間推定量とを対応付けた情報を、評価部１５０ｃに出力する。たとえば、図７を用いて説明すると、分割部１５０ｂは、センサ識別情報「センサ１０ａ」と、中間推定量２０ａ，２１ａ，２２ａとを対応付けた情報を、評価部１５０ｃに出力する。分割部１５０ｂは、センサ識別情報「センサ１０ｂ」と、中間推定量２０ｂ，２１ｂ，２２ｂとを対応付けた情報を、評価部１５０ｃに出力する。センサ識別情報「センサ１０ｃ」と、中間推定量２０ｃ，２１ｃ，２２ｃとを対応付けた情報を、評価部１５０ｃに出力する。
【００４７】
評価部１５０ｃは、各センサ識別情報に対応する各中間推定量の組み合わせについて、評価を行う処理部である。たとえば、評価部１５０ｃは、各センサ識別情報に対応する各中間推定量を基にして、特徴量ベクトルを生成する処理、重みベクトルを学習する処理を行う。
【００４８】
評価部１５０ｃによる、特徴量ベクトルを生成する処理の一例について説明する。図８は、特徴量ベクトルを生成する処理を説明するための図である。評価部１５０ｃは、センサ識別情報に対応する中間推定量を時系列に並べる。評価部１５０ｃは、異なるセンサ識別情報間で、各中間推定量を掛け合わせたものを、ベクトルの要素とすることで、特徴量ベクトルを算出する。たとえば、時間ｔを基準とした時間帯に含まれる各中間推定量を掛け合わせて得られる特徴量ベクトルをφ（ｔ）と表記する。
【００４９】
どの中間推定量と、どの中間推定量とを掛け合わせたもの（直積）を、特徴量ベクトルのいずれの要素とするのかは、予め設定されたルールに従う。評価部１５０ｃは、３つ以上の中間推定量の直積を、特徴量ベクトルの要素としてもよい。また、各中間推定量の掛け合わせを行う場合に、多重線形表現を用いてもよい。
【００５０】
たとえば、特徴量ベクトルφ（ｔ）において、部分３１に含まれる各要素には、あるセンサ識別情報の中間推定量と、他のセンサ識別情報の中間推定量との直積がそれぞれ配置される。たとえば、評価部１５０ｃは、部分３１の各要素の一つに、中間推定量２０ａと中間推定量２０ｂとの直積を配置する。
【００５１】
部分３２に含まれる各要素には、１つ目のセンサ識別情報の中間推定量と、２つ目のセンサ識別情報の中間推定量と、３つ目のセンサ識別情報の中間推定量との直積がそれぞれ配置される。たとえば、評価部１５０ｃは、部分３２の各要素の一つに、中間推定量２０ａと、中間推定量２０ｂと、中間推定量２０ｃとの直積を配置する。
【００５２】
評価部１５０ｃは、異なる時間ｔ毎に、特徴量ベクトルφ（ｔ）を算出する。たとえば、評価部１５０ｃは、時間ｔ１の特徴量ベクトルφ（ｔ１）、時間ｔ２の特徴量ベクトルφ（ｔ２）、・・・、時間ｔｎの特徴量ベクトルφ（ｔｎ）を算出する。
【００５３】
なお、評価部１５０ｃが前述した掛け合わせを行う際に、異なる時間ｔで生成された中間推定量を掛け合わせてもよい。たとえば、図８に示すように、評価部１５０ｃは、部分３１の各要素の一つに、それぞれ異なる時間ｔ−２、ｔ−１に生成された、中間推定量２０ａと、中間推定量２１ｂの直積を配置する。
【００５４】
また、掛け合わせは、全ての中間推定量の組合せに対して行っても良いし、一部の組合せに限定して掛け合わせを行っても良い。その限定方法としては、例えば、中間推定量が発生した時間差が一定以内のものに限定する方法、中間推定量の生成に用いたセンサが設置された位置の距離が一定以内のものに限定する方法や、予めルールとして定めた組合せに限定する方法、を用いても良い。また、頻出パタンマイニングアルゴリズムや列挙アルゴリズムを用い、中間推定量のノルムが一定以上の値を取った回数が一定値以上となった組合せに限定してもよい。
【００５５】
更に、掛け合わせを行った特徴量φ（ｔ）を学習・推定に用いる際、φ（ｔ）を直接用いてもよいし、更に後処理を加えてもよい。例えば、φ（ｔ）に主成分分析などの低次元化アルゴリズムを適用したものを学習・推定に用いてもよい。
【００５６】
評価部１５０ｃによる、重みベクトルを学習する処理の一例について説明する。評価部１５０ｃは、構造正則化アルゴリズムを用いて、重みベクトルを学習する。構造正則化アルゴリズムでは、重みベクトルの要素により多くの０が含まれるような学習が行われる。たとえば、評価部１５０ｃは、式（１）に示す評価関数Ｌの値がより小さな値となるように、重みベクトルｗを学習する。
【００５７】
【数１】
2020067948.tif 000003
【００５８】
式（１）に含まれる「ｌ（φ（ｔ），ｗ，ｙ）」は、式（２）により定義されるロス関数である。式（１）に含まれる「λ」は、調整パラメータであり、予め値が設定されている。「Ω（ｗ）」は、重みベクトルｗの大きさを示す正則化項であり、式（３）により定義される。
【００５９】
【数２】
2020067948.tif 000004
【００６０】
【数３】
2020067948.tif 000005
【００６１】
式（２）において、「ｙ」は、特徴量ベクトルφ（ｔ）の時間ｔに対応する時間帯において、対象のコンテキストが生じている場合には「１」が設定され、対象のコンテキストが生じていない場合には「−１」が設定される。評価部１５０ｃは、時間ｔと、正解コンテキストＤＢ１４０ｂとを比較して、対象のコンテキストが生じているか否かを判定する。
【００６２】
一例として、評価部１５０ｃが、コンテキスト「荷下ろし中」を推定するための重みベクトルｗを学習する場合について説明する。図４に示すように、コンテキスト「荷下ろし中」は、時間帯「時刻Ｔｓ１〜時刻Ｔｅ１」において生じているため、時間ｔが、時間帯「時刻Ｔｓ１〜時刻Ｔｅ１」に含まれる場合には、「ｙ＝１」となり、含まれない場合には「ｙ＝−１」となる。
【００６３】
式（１）、（２）に含まれる「ｗ」は、重みベクトルを示すものである。図９は、重みベクトルを説明するための図である。図９に示すように、重みベクトルｗは複数の要素を有する。重みベクトルｗの要素の数と、特徴量ベクトルφ（ｔ）の要素の数とは一致しており、それぞれ対応付けられる。たとえば、重みベクトルｗの部分４１の各重みは、特徴量ベクトルφ（ｔ）の部分３１の各要素に対応する重みである。重みベクトルｗの部分４２の各重みは、特徴量ベクトルφ（ｔ）の部分３２の各要素に対応する重みである。
【００６４】
評価部１５０ｃは、各時刻ｔ（ｔ＝ｔ１，ｔ２、・・・ｔｎ）について、特徴量ベクトルφ（ｔ）と、時間ｔにおいて対象のコンテキストが生じているか否かの値（ｙ＝１ｏｒｙ＝−１）との組を、式（１）に入力して、重みベクトルｗを学習する。評価部１５０ｃは、学習した重みベクトルｗを、重みテーブル１４０ｃに登録する。
【００６５】
なお、ロス関数は、式（２）で示した形式に限定されない。他例として、例えばロジスティック損失、クロスエントロピー損失、ヒンジ損失、平滑化ヒンジ損失、Huber損失をロス関数として用いてもよい。また、以上の説明はコンテキスト推定を特定コンテキスト内容を行っているか否かを判定する問題、則ち分類問題に対して扱っている場合について述べたが、本発明の技術はコンテキスト推定を回帰問題として扱う場合に用いてもよい。例えば、コンテキスト推定として連続値を取る「ストレス量」を推定する問題に対し、ロス関数をＬ２損失、log  Poisson損失を用いて学習を行う場合も本発明の実施例として挙げられる。更に、正則化項は、式（３）で示した形式に限定されない。他例として、例えばＬ０正則化項、Ｌｐ正則化項、グループＬ０正則化項、グループＬ１正則化項を用いても良い。また、これら正則化項のグループの定義方法として、複数回の重複を許しても良い。更に、正則化項として、Elastic  Netのように、上で述べた正則化項と、Ｌ２正則化項やＬ∞正則化項を含む複数の異なる正則化項の和で表されるものを用いても良い。
【００６６】
評価部１５０ｃは、コンテキスト内容が複数種類存在する場合には、コンテキスト内容毎に、上記処理を繰り返し実行し、コンテキストを推定するための固有の重みベクトルをそれぞれ算出し、重みテーブル１４０ｃに登録する。たとえば、図５に示す例では、コンテキスト内容「荷下ろし中」を推定するための重みベクトルが「ｗ１」であり、コンテキスト内容「商品陳列中」を推定するための重みベクトルが「ｗ２」であり、コンテキスト内容「包装中」を推定するための重みベクトルが「ｗ３」である旨が示される。
【００６７】
なお、ここまでで述べた説明では、まずクラスタリング処理を行い、次に重みの学習を行う例を述べたが、本発明で示す学習方法はその例に限られない。例えば、クラスタリング処理と重みの学習を交互に繰り返し学習する方法や、クラスタリング処理を行うニューラルネットワークと重みの学習を行うニューラルネットワークを接続した形式で定義し、クラスタリング処理と重みの学習を同時に行うＥｎｄ−ｔｏ−Ｅｎｄ形式での学習を行っても良い。
【００６８】
選択部１５０ｄは、重みテーブル１４０ｃを基にして、各コンテキストを推定する場合に使用するセンサの組を選択する処理部である。選択部１５０ｄは、選択した結果を、選択センサテーブル１４０ｄに登録する。
【００６９】
一例として、選択部１５０ｄが、コンテキスト内容「荷下ろし中」を推定する場合において、使用するセンサの組を選択する処理について説明する。選択部１５０ｄは、重みテーブル１４０ｃから、コンテキスト内容「荷下ろし中」に対応する学習済みの重みベクトルｗ１を取得し、取得した重みベクトルの要素のうち、０となる要素を検出する。
【００７０】
選択部１５０ｄは、０となる要素を検出すると、検出した要素に対応するセンサに「ペナルティ値」として１を加算する。たとえば、図９で説明した、中間推定量２０ａと、中間推定量２０ｂとの直積の重み（要素）が０となる場合には、中間推定量２０ａに対応するセンサ１０ａと、中間推定量２０ｂに対応するセンサ１０ｂにそれぞれペナルティ値として１を加算する。
【００７１】
中間推定量２０ａと、中間推定量２０ｂと、中間推定量２０ｃとの直積の重み（要素）が０となる場合には、中間推定量２０ａに対応するセンサ１０ａと、中間推定量２０ｂに対応するセンサ１０ｂと、中間推定量２０ｃに対応するセンサ１０ｃにそれぞれペナルティ値として１を加算する。
【００７２】
選択部１５０ｄは、０となる要素について、上記の処理を繰り返し実行することで、各センサのペナルティ値を算出する。選択部１５０ｄは、各センサのうち、ペナルティ値が予め設定されたペナルティ値未満となるセンサを、コンテキスト内容「荷下ろし中」を推定する場合に使用するセンサとして選択する。なお、選択部１５０ｄは、ペナルティ値に応じて、各センサを昇順にソートし、ペナルティ値の少ない上位Ｍ個のセンサを、コンテキスト内容「荷下ろし中」を推定する場合に使用するセンサとして選択してもよい。Ｍは、予め設定される自然数である。
【００７３】
選択部１５０ｄは、他のコンテキスト内容を推定する場合において使用するセンサの組についても、上記のコンテキスト内容「荷下ろし中」の場合と同様にして選択し、選択した情報を、選択センサテーブル１４０ｄに登録する。
【００７４】
なお、ここまでで述べた説明では、選択部が、用いるセンサ個数にペナルティを付与してセンサ選択を行う方式を述べたが、本発明での実現形態はその方式に限られない。具体的には、選択部は、特定のセンサに関する重みの要素の何れかが０でないもの、もしくは重みの要素の絶対値の最小値が一定値以上の値を持つセンサを、コンテキスト内容を推定するセンサとして選択してもよい。また、コンテキスト内容毎に認識時に用いるセンサの組の変更を行わず、全てのコンテキスト内容で同一のセンサを選択してもよい。その具体的な方法として、例えば、予め各々のコンテキスト内容で選択されたセンサに対し、それらの和集合をコンテキスト内容を推定するセンサとして選択してもよい。更に、選択されたセンサを固定し、異なる調整パラメタλや異なる正則化項に対して再学習を行い、重みｗを更新しても良い。
【００７５】
通知部１５０ｅは、重みテーブル１４０ｃ、選択センサテーブル１４０ｄを、後述する推定装置に通知する処理部である。
【００７６】
次に、本実施例に係る分析装置１００の処理手順の一例について説明する。図１０は、本実施例に係る分析装置の処理手順を示すフローチャートである。図１０に示すように、分析装置１００の受信部１５０ａは、各センサ１０ａ〜１０ｃ（他のセンサ）から時系列のセンサデータを受信し、センサＤＢ１４０ａに登録する（ステップＳ１０１）。受信部１５０ａは、正解コンテキストデータを受け付け、正解コンテキストＤＢ１４０ｂに登録する（ステップＳ１０２）。
【００７７】
分析装置１００の分割部１５０ｂは、各センサデータを所定の時間区間に切り分けることで、複数の分割センサデータを生成する（ステップＳ１０３）。分割部１５０ｂは、複数の分割センサデータを基にして、複数の中間推定量を生成する（ステップＳ１０４）。
【００７８】
分析装置１００の評価部１５０ｃは、センサ識別情報毎に各中間推定量を時系列に並べる（ステップＳ１０５）。評価部１５０ｃは、異なるセンサ識別情報間の中間推定量を掛け合わせることで、特徴量ベクトルを算出する（ステップＳ１０６）。評価部１５０ｃは、評価関数Ｌの値がより小さくなるように、重みベクトルの各要素を学習し、学習した重みベクトルを、重みテーブル１４０ｃに登録する（ステップＳ１０７）。
【００７９】
分析装置１００の選択部１５０ｄは、重みテーブル１４０ｃを基にして、コンテキストを推定する場合に使用するセンサを選択する（ステップＳ１０８）。選択部１５０ｄは、選択結果を基にして、選択センサテーブル１４０ｄを更新する（ステップＳ１０９）。分析装置１００の通知部１５０ｅは、重みテーブル１４０ｃ、選択センサテーブル１４０ｄを、推定装置に通知する（ステップＳ１１０）。
【００８０】
続いて、分析装置１００から通知される重みテーブル１４０ｃ、選択センサテーブル１４０ｄを基にして、コンテンツの推定を行う推定装置について説明を行う。
【００８１】
図１１は、本実施例に係る運用時のシステムの構成を示す図である。図１１に示すように、このシステムは、センサ１０ａ，１０ｂ，１０ｃと、推定装置２００とを有する。センサ１０ａ，１０ｂ，１０ｃと、推定装置２００とは、ネットワーク５０を介して相互に接続される。ここでは、便宜上、センサ１０ａ〜１０ｃのみを示すが、推定装置２００は、他のセンサに更に接続されているものとする。なお、図１に示した分析装置１００に接続される各センサと、推定装置２００に接続される各センサとは、同じセンサであるものとする。
【００８２】
センサ１０ａ〜１０ｃは、画像センサ、音センサ、運動センサ等の各種のセンサのうち、いずれかのセンサである。センサ１０ａ〜１０ｃに関する説明は、図１で説明した、センサ１０ａ〜１０ｃの説明と同様である。
【００８３】
推定装置２００は、推定対象となるコンテキストの指定を受け付けると、選択センサテーブル１４０ｄを基にして、使用するセンサの組を特定し、特定したセンサに対して、送信命令を送信する。推定装置２００は、送信命令を送信したセンサから、センサデータを受信し、重みテーブル１４０ｃの重みを用いて、推定対象のコンテキストが生じているか否かを判定する。
【００８４】
図１２は、本実施例に係る推定装置の構成を示す機能ブロック図である。図１２に示すように、この推定装置２００は、通信部２１０、入力部２２０、表示部２３０、記憶部２４０、制御部２５０を有する。
【００８５】
通信部２１０は、ネットワーク５０を介して、選択したセンサからセンサデータを受信する処理部である。通信部１１０は、センサデータを、制御部１５０に出力する。通信部２１０は、通信装置に対応する。また、通信部２１０は、分析装置１００とデータを送受信する。後述する制御部２５０は、通信部２１０を介して、各センサ、分析装置１００とデータをやり取りする。
【００８６】
入力部２２０は、各種の情報を推定装置２００に入力するための入力装置である。たとえば、入力部２２０は、キーボード、マウス、タッチパネル等に対応する。
【００８７】
表示部２３０は、制御部２５０から出力される情報を表示するための表示装置である。たとえば、表示部２３０は、液晶ディスプレイ、有機ディスプレイ、タッチパネル等に対応する。
【００８８】
記憶部２４０は、センサＤＢ２４０ａ、重みテーブル１４０ｃ、選択センサテーブル１４０ｄを有する。記憶部２４０は、ＲＡＭ、ＲＯＭ、フラッシュメモリなどの半導体メモリ素子や、ＨＤＤなどの記憶装置に対応する。
【００８９】
センサＤＢ２４０ａは、センサ１０ａ〜１０ｃ、図示しない他のセンサにより測定されたセンサデータを保持するＤＢである。センサＤＢ２４０ａのデータ構造は、図３で説明した、センサＤＢ１４０ａのデータ構造と同様である。なお、センサＤＢ２４０ａには、後述する通信制御部２５０ｂにより選択されたセンサのセンサデータが登録される。
【００９０】
重みテーブル１４０ｃは、コンテキストを推定するための重みベクトルの情報を保持するテーブルである。重みテーブル１４０ｃは、分析装置１００により学習された重みベクトルの情報を保持する。重みテーブル１４０ｃのデータ構造は、図５に示した重みテーブル１４０ｃのデータ構造と同様である。
【００９１】
選択センサテーブル１４０ｄは、コンテキストを推定するために用いるセンサの情報を保持するテーブルである。選択センサテーブル１４０ｄのデータ構造は、図６に示した選択センサテーブル１４０ｄのデータ構造と同様である。
【００９２】
制御部２５０は、受信部２５０ａ、通信制御部２５０ｂ、分割部２５０ｃ、スコア算出部２５０ｄを有する。制御部２５０は、ＣＰＵやＭＰＵなどによって実現できる。また、制御部２５０は、ＡＳＩＣやＦＰＧＡなどのハードワイヤードロジックによっても実現できる。
【００９３】
受信部２５０ａは、通信制御部２５０ｂにより選択された各センサからセンサデータを受信する処理部である。受信部２５０ａか、各センサデータを、センサＤＢ２４０ａに格納する。受信部２５０ａは、各センサデータについて、ヘッダに含まれるセンサ識別情報を参照し、該当するセンサ識別情報に対応付けて、センサデータをセンサＤＢ２４０ａに格納する。
【００９４】
通信制御部２５０ｂは、コンテキストを推定する場合に用いるセンサを、選択センサテーブル１４０ｄを基にして選択する処理部である。通信制御部２５０ｂは、選択したセンサに対して、送信要求を送信する。なお、通信制御部２５０ｂは、選択したセンサ以外のセンサに対して、送信停止要求を送信し、センサデータが送信されることを抑止してもよい。
【００９５】
たとえば、通信制御部２５０ｂは、入力部２２０等から、推定対象となるコンテキスト内容の指定を受け付ける。通信制御部２５０ｂは、指定されたコンテキスト内容と、選択センサテーブルとを比較して、コンテキストを推定する場合に用いるセンサを特定する。
【００９６】
分割部２５０ｃは、センサデータを分割し、分割したデータを基にして、中間推定量を生成する処理部である。分割部２５０ｃが、中間推定量を生成する処理は、分析装置１００の分割部１５０ｂが中間推定量を生成する処理と同様である。分割部２５０ｃは、センサ識別情報と、各中間推定量とを対応付けた情報を、スコア算出部２５０ｄに出力する。
【００９７】
スコア算出部２５０ｄは、コンテキストが生じているかの確からしさを示すスコアを算出する処理部である。たとえば、スコア算出部２５０ｄは、特徴量ベクトルを生成する処理、スコアを算出する処理を行う。
【００９８】
スコア算出部２５０ｄによる、特徴量ベクトルを生成する処理は、分析装置１００の評価部１５０ｃが、特徴量ベクトルを生成する処理と同様である。たとえば、スコア算出部２５０ｄは、異なるセンサ識別情報間で、各中間推定量を掛け合わせたものを、ベクトルの要素とすることで、特徴量ベクトルを算出する。
【００９９】
スコア算出部２５０ｄによる、スコアを算出する処理について説明する。たとえば、スコア算出部２５０ｄは、式（４）を基にして、スコアＳ（ｔ）を算出する。式（４）において、「ｗ」は、学習された重みベクトルである。スコア算出部２５０ｄは、入力部２２０等から指定されるコンテキスト内容と、重みテーブル１４０ｃとを比較し、指定されたコンテキスト内容に対応する重みベクトルを用いる。たとえば、指定されたコンテキスト内容が「荷下ろし中」である場合には、スコア算出部２５０ｄは、重みベクトルｗ１を、式（４）に代入する。式（４）のφ（ｔ）は、特徴量ベクトルである。
【０１００】
【数４】
2020067948.tif 000006
【０１０１】
スコア算出部２５０ｄは、スコアの算出結果を、表示部２３０に出力して表示してもよいし、ネットワーク５０を介して接続される外部装置に、スコアの算出結果の情報を通知してもよい。推定対象となるコンテキストが生じている確からしさが大きい場合には、スコアはより大きな値となり、確からしさが小さい場合には、スコアはより小さな値となる。更に、スコア算出部２５０ｄは、時刻毎にスコアを示すグラフを生成して、表示部２３０に表示してもよい。
【０１０２】
次に、本実施例に係る推定装置２００の処理手順の一例について説明する。図１３は、本実施例に係る推定装置の処理手順を示すフローチャートである。図１３に示すように、推定装置２００の通信制御部２５０ｂは、コンテキスト内容の指定を受け付ける（ステップＳ２０１）。通信制御部２５０ｂは、選択センサテーブル１４０ｄを基にして、センサを選択し、選択したセンサに送信要求を送信する（ステップＳ２０２）。
【０１０３】
推定装置２００の受信部２５０ａは、選択したセンサからセンサデータを受信し、センサＤＢ２４０ａに登録する（ステップＳ２０３）。推定装置２００の分割部２５０ｃは、各センサデータを所定の時間区間に切り分けることで、複数の分割センサデータを生成する（ステップＳ２０４）。
【０１０４】
分割部２５０ｃは、複数の分割センサデータを基にして、複数の中間推定量を生成する（ステップＳ２０５）。推定装置２００のスコア算出部２５０ｄは、センサ識別情報毎に各中間推定量を時系列に並べる（ステップＳ２０６）。
【０１０５】
スコア算出部２５０ｄは、異なるセンサ識別情報間の中間推定量を掛け合わせることで、特徴量ベクトルを算出する（ステップＳ２０７）。スコア算出部２５０ｄは、推定するコンテキスト内容に対応する重みベクトルを重みテーブル１４０ｃから取得する（ステップＳ２０８）。
【０１０６】
スコア算出部２５０ｄは、重みベクトルと特徴量ベクトルとを基にして、コンテキストが生じている確からしさのスコアを算出する（ステップＳ２０９）。スコア算出部２５０ｄは、スコアの算出結果を、表示部２３０に出力する（ステップＳ２１０）。
【０１０７】
次に、本実施例に係る分析装置１００の効果について説明する。分析装置１００は、各センサからセンサデータを受信し、各センサデータを複数の時間区間に切り分けることで、複数の分割センサデータを生成する。分析装置１００は、複数のセンサのうち、あるセンサの各分割センサデータと、他のセンサの各分割センサデータとの組み合わせについて評価を行い、評価結果を基にして、組み合わせの対象となるセンサの組を選択する。これにより、コンテキストを推定する場合に有用なセンサの組を選択することができる。
【０１０８】
分析装置１００は、分割センサデータの各部分に含まれる特徴量を基にしたクラスタリングを実行することで得られるヒストグラムを、分割センサデータの中間推定量として生成し、生成した各中間推定量の組み合わせについて評価を行う。このように、中間推定量に変換することで、異なる種別のセンサ（画像センサ、音センサ、運動センサ等）の測定結果を組み合わせて評価を行うことができる。
【０１０９】
分析装置１００は、あるセンサの各中間推定量と他のセンサの各中間推定量とを掛け合わせた値をそれぞれ要素とする特徴量ベクトルを生成する。分析装置１００は、特徴量ベクトルと重みベクトルとを掛け合わせて加算した値が、コンテキストの正解値に近づくように、重みベクトルを学習する。分析装置１００は、学習した重みベクトルの各要素を基にして、組み合わせ対象となるセンサの組を特定する。これにより、コンテキストを推定するために有用なセンサの組を特定することができる。
【０１１０】
また、本実施例に係る推定装置２００は、運用フェーズにおいて、分析装置１００により生成された選択センサテーブル１４０ｄを基にして、コンテキストを推定する場合に用いるセンサに対して送信命令を送信する。かかる処理を行うことで、複数のセンサのうち、送信命令を送信したセンサから、センサデータを受信して、コンテキストの推定を行うことができるので、データ通信量を削減することができる。
【０１１１】
ところで、本実施例では一例として、分析装置１００と、推定装置２００とが別々の装置に実装される場合について説明したが、これに限定されるものではない。たとえば、分析装置１００が、推定装置２００の構成を有していてもよい。すなわち、図２に示した分析装置１００の制御部１５０が、図１２に示した推定装置２００の受信部２５０ａ，通信制御部２５０ｂ，分割部２５０ｃ，スコア算出部２５０ｄを有していてもよい。
【０１１２】
また、図１に示した学習時のシステム構成は一例であり、図１４に示すシステム構成であってもよい。図１４は、本実施例に係る学習時の他のシステムの構成を示す図である。図１４に示すように、このシステムは、センサ１０ａ〜１０ｄと、ゲートウェイ６０と、分析装置１００とを有する。
【０１１３】
センサ１０ａ〜１０ｄは、ゲートウェイ６０に接続される。図１４では図示を省略するが、ゲートウェイ６０には、その他のセンサが接続されているものとする。ゲートウェイ６０は、ネットワーク５０を介して分析装置１００に接続される。
【０１１４】
センサ１０ａ〜１０ｄは、画像センサ、音センサ、運動センサ等の各種のセンサのうち、いずれかのセンサである。センサ１０ａ〜１０ｄは、ゲートウェイ６０を介して、センサデータを、分析装置１００に送信する。
【０１１５】
ゲートウェイ６０は、各センサと分析装置１００とのデータ通信を中継する装置である。ゲートウェイ６０の各ポートには、センサ１０ａ〜１０ｄ（およびその他のセンサ）が接続されており、ポート単位で、通信の接続、切断を制御することが可能である。どのポートにどのセンサが接続されているかを示す管理テーブルがゲートウェイ６０に予め設定されているものとする。学習フェーズにおいて、ゲートウェイ６０は、全ポートを接続状態にし、各センサが測定したセンサデータを、分析装置１００に送信する。
【０１１６】
分析装置１００は、ゲートウェイ６０から送信される各センサのセンサデータを受信し、各センサデータを用いて、所定のコンテキストを推定する際に有用なセンサの組み合わせを選択する装置である。その他の説明は、上述した分析装置１００に関する説明と同様である。
【０１１７】
続いて、図１１に示した運用時のシステム構成は一例であり、図１５に示すシステム構成であってもよい。図１５は、本実施例に係る運用時の他のシステムの構成を示す図である。図１５に示すように、このシステムは、センサ１０ａ〜１０ｄと、ゲートウェイ６０と、推定装置２００とを有する。
【０１１８】
センサ１０ａ〜１０ｄは、ゲートウェイ６０に接続される。図１５では図示を省略するが、ゲートウェイ６０には、その他のセンサが接続されているものとする。ゲートウェイ６０は、ネットワーク５０を介して推定装置２００に接続される。
【０１１９】
ゲートウェイ６０は、図１４に示したゲートウェイ６０に対応するものである。運用フェーズにおいて、ゲートウェイ６０は、推定装置２００から、通信を許可するセンサ識別情報と、通信を許可しないセンサ識別情報とを含む制御情報を受信し、受信した制御情報を基にして、ポートの接続、切断を制御する。たとえば、ゲートウェイ６０は、センサ１０ａ〜１０ｃの通信を許可し、センサ１０ｄの通信を許可しない旨の制御情報を受信した場合には、センサ１０ａ〜１０ｃに接続されたポートを接続し、センサ１０ｄに接続されたポートを切断する制御を行う。これにより、センサ１０ａ〜１０ｃのセンサデータが、推定装置２００に送信され、センサ１０ｄのセンサデータは、推定装置２００に送信されない。
【０１２０】
推定装置２００は、推定対象となるコンテキストの指定を受け付けると、選択センサテーブル１４０ｄを基にして、使用するセンサの組を特定し、特定したセンサに対して、制御情報をゲートウェイ６０に送信する。推定装置２００は、選択したセンサから、センサデータを受信（ゲートウェイ６０を介して受信）し、重みテーブル１４０ｃの重みを用いて、推定対象のコンテキストが生じているか否かを判定する。その他の説明は、上述した推定装置２００に関する説明と同様である。
【０１２１】
次に、実施例に示した分析装置１００、推定装置２００と同様の機能を実現するコンピュータのハードウェア構成の一例について説明する。図１６は、本実施例に係る分析装置と同様の機能を実現するコンピュータのハードウェア構成の一例を示す図である。
【０１２２】
図１６に示すように、コンピュータ５００は、各種演算処理を実行するＣＰＵ５０１と、ユーザからのデータの入力を受け付ける入力装置５０２と、ディスプレイ５０３とを有する。また、コンピュータ５００は、記憶媒体からプログラム等を読み取る読み取り装置５０４と、有線または無線ネットワークを介して、外部装置等との間でデータの授受を行うインタフェース装置５０５とを有する。コンピュータ５００は、各種情報を一時記憶するＲＡＭ５０６と、ハードディスク装置５０７とを有する。そして、各装置５０１〜５０７は、バス５０８に接続される。
【０１２３】
ハードディスク装置５０７は、受信プログラム５０７ａ、分割プログラム５０７ｂ、評価プログラム５０７ｃ、選択プログラム５０７ｄ、通信プログラム５０７ｅを有する。ＣＰＵ５０１は、受信プログラム５０７ａ、分割プログラム５０７ｂ、評価プログラム５０７ｃ、選択プログラム５０７ｄ、通信プログラム５０７ｅを読み出してＲＡＭ５０６に展開する。
【０１２４】
受信プログラム５０７ａは、受信プロセス５０６ａとして機能する。分割プログラム５０７ｂは、分割プロセス５０６ｂとして機能する。評価プログラム５０７ｃは、評価プロセス５０６ｃとして機能する。選択プログラム５０７ｄは、選択プロセス５０６ｄとして機能する。通信プログラム５０７ｅは、通信プロセス５０６ｅとして機能する。
【０１２５】
受信プロセス５０６ａの処理は、受信部１５０ａの処理に対応する。分割プロセス５０６ｂの処理は、分割部１５０ｂの処理に対応する。評価プロセス５０６ｃの処理は、評価部１５０ｃの処理に対応する。選択プロセス５０６ｄの処理は、選択部１５０ｄの処理に対応する。通信プロセス５０６ｅの処理は、通知部１５０ｅの処理に対応する。
【０１２６】
なお、各プログラム５０７ａ〜５０７ｅについては、必ずしも最初からハードディスク装置５０７に記憶させておかなくてもよい。例えば、コンピュータ５００に挿入されるフレキシブルディスク（ＦＤ）、ＣＤ−ＲＯＭ、ＤＶＤディスク、光磁気ディスク、ＩＣカードなどの「可搬用の物理媒体」に各プログラムを記憶させておく。そして、コンピュータ５００が各プログラム５０７ａ〜５０７ｅを読み出して実行するようにしてもよい。
【０１２７】
図１７は、本実施例に係る推定装置と同様の機能を実現するコンピュータのハードウェア構成の一例を示す図である。
【０１２８】
図１７に示すように、コンピュータ６００は、各種演算処理を実行するＣＰＵ６０１と、ユーザからのデータの入力を受け付ける入力装置６０２と、ディスプレイ６０３とを有する。また、コンピュータ６００は、記憶媒体からプログラム等を読み取る読み取り装置６０４と、有線または無線ネットワークを介して、外部装置等との間でデータの授受を行うインタフェース装置６０５とを有する。コンピュータ６００は、各種情報を一時記憶するＲＡＭ６０６と、ハードディスク装置６０７とを有する。そして、各装置６０１〜６０７は、バス６０８に接続される。
【０１２９】
ハードディスク装置６０７は、受信プログラム６０７ａ、通信制御プログラム６０７ｂ、分割プログラム６０７ｃ、スコア算出プログラム６０７ｄを有する。ＣＰＵ６０１は、受信プログラム６０７ａ、通信制御プログラム６０７ｂ、分割プログラム６０７ｃ、スコア算出プログラム６０７ｄを読み出してＲＡＭ６０６に展開する。
【０１３０】
受信プログラム６０７ａは、受信プロセス６０６ａとして機能する。通信制御プログラム６０７ｂは、通信制御プロセス６０６ｂとして機能する。分割プログラム６０７ｃは、分割プロセス６０６ｃとして機能する。スコア算出プログラム６０７ｄは、スコア算出プロセス６０６ｄとして機能する。
【０１３１】
受信プロセス６０６ａの処理は、受信部２５０ａの処理に対応する。通信制御プロセス６０６ｂの処理は、通信制御部２５０ｂの処理に対応する。分割プロセス６０６ｃの処理は、分割部２５０ｃの処理に対応する。スコア算出プロセス６０６ｄの処理は、スコア算出部２５０ｄの処理に対応する。
【０１３２】
なお、各プログラム６０７ａ〜６０７ｄについては、必ずしも最初からハードディスク装置６０７に記憶させておかなくてもよい。例えば、コンピュータ６００に挿入されるフレキシブルディスク（ＦＤ）、ＣＤ−ＲＯＭ、ＤＶＤディスク、光磁気ディスク、ＩＣカードなどの「可搬用の物理媒体」に各プログラムを記憶させておく。そして、コンピュータ６００が各プログラム６０７ａ〜６０７ｅを読み出して実行するようにしてもよい。
【０１３３】
以上の各実施例を含む実施形態に関し、さらに以下の付記を開示する。
【０１３４】
（付記１）複数のセンサにより測定された時系列の情報を取得し、前記時系列の情報を複数の時間区間に切り分けることで複数の測定値を生成する分割部と、
前記複数のセンサのうち、第１センサに対応する複数の測定値と、第２センサに対応する複数の測定値との組み合わせについて評価を行う評価部と、
前記評価部の評価結果を基にして、組み合わせ対象となるセンサの組を選択する選択部と
を有することを特徴とする分析装置。
【０１３５】
（付記２）前記分割部は、前記測定値を分割し、分割した各部分に含まれる特徴量を基にしたクラスタリングを実行することで得られるヒストグラムを前記測定値の中間推定量として生成し、前記評価部は、前記第１センサに対応する複数の第１中間推定量と、第２センサに対応する複数の第２中間推定量との組み合わせについて評価を行うことを特徴とする付記１に記載の分析装置。
【０１３６】
（付記３）前記評価部は、前記複数の第１中間推定量と、前記複数の第２中間推定量との掛け合わせた値をそれぞれ要素とする特徴量ベクトルを生成し、前記特徴量ベクトルと重みベクトルとを掛け合わせて加算した値が、前記時系列の情報に対応するコンテキストの正解値に近づくように、前記重みベクトルの各要素を学習し、前記選択部は、学習された前記重みベクトルの各要素を基にして、組み合わせ対象となるセンサの組と選択することを特徴とする付記２に記載の分析装置。
【０１３７】
（付記４）前記評価部は、前記複数の第１中間推定量および前記複数の第２中間推定量を時系列に並べ、所定の時間範囲に含まれる複数の第１中間推定量と、複数の第２中間推定量との組み合わせについて評価を行うことを特徴とする付記３に記載の分析装置。
【０１３８】
（付記５）通信装置から前記複数のセンサにより測定された時系列の情報を受信し、前記選択部の選択結果を前記通信装置に通知して、組み合わせの対象とならないセンサにより測定された時系列の情報を受信することを抑止する通信制御部を更に有することを特徴とする付記１に記載の分析装置。
【０１３９】
（付記６）コンピュータが、
複数のセンサにより測定された時系列の情報を取得し、前記時系列の情報を複数の時間区間に切り分けることで複数の測定値を生成し、
前記複数のセンサのうち、第１センサに対応する複数の測定値と、第２センサに対応する複数の測定値との組み合わせについて評価を行い、
評価結果を基にして、組み合わせ対象となるセンサの組を選択する
処理を実行することを特徴とする分析方法。
【０１４０】
（付記７）前記生成する処理は、前記測定値を分割し、分割した各部分に含まれる特徴量を基にしたクラスタリングを実行することで得られるヒストグラムを前記測定値の中間推定量として生成し、前記評価する処理は、前記第１センサに対応する複数の第１中間推定量と、第２センサに対応する複数の第２中間推定量との組み合わせについて評価を行うことを特徴とする付記６に記載の分析方法。
【０１４１】
（付記８）前記評価する処理は、前記複数の第１中間推定量と、前記複数の第２中間推定量との掛け合わせた値をそれぞれ要素とする特徴量ベクトルを生成し、前記特徴量ベクトルと重みベクトルとを掛け合わせて加算した値が、前記時系列の情報に対応するコンテキストの正解値に近づくように、前記重みベクトルの各要素を学習し、前記選択する処理は、学習された前記重みベクトルの各要素を基にして、組み合わせ対象となるセンサの組と選択することを特徴とする付記７に記載の分析方法。
【０１４２】
（付記９）前記評価する処理は、前記複数の第１中間推定量および前記複数の第２中間推定量を時系列に並べ、所定の時間範囲に含まれる複数の第１中間推定量と、複数の第２中間推定量との組み合わせについて評価を行うことを特徴とする付記８に記載の分析方法。
【０１４３】
（付記１０）通信装置から前記複数のセンサにより測定された時系列の情報を受信し、前記選択部の選択結果を前記通信装置に通知して、組み合わせの対象とならないセンサにより測定された時系列の情報を受信することを抑止する処理を更に実行することを特徴とする付記６に記載の分析方法。
【０１４４】
（付記１１）複数のセンサにより測定された時系列の情報を取得し、前記時系列の情報を複数の時間区間に切り分けることで複数の測定値を生成し、
前記複数のセンサのうち、第１センサに対応する複数の測定値と、第２センサに対応する複数の測定値との組み合わせについて評価を行い、
評価結果を基にして、組み合わせ対象となるセンサの組を選択する
処理をコンピュータに実行させることを特徴とする分析プログラム。
【０１４５】
（付記１２）前記生成する処理は、前記測定値を分割し、分割した各部分に含まれる特徴量を基にしたクラスタリングを実行することで得られるヒストグラムを前記測定値の中間推定量として生成し、前記評価する処理は、前記第１センサに対応する複数の第１中間推定量と、第２センサに対応する複数の第２中間推定量との組み合わせについて評価を行うことを特徴とする付記１１に記載の分析プログラム。
【０１４６】
（付記１３）前記評価する処理は、前記複数の第１中間推定量と、前記複数の第２中間推定量との掛け合わせた値をそれぞれ要素とする特徴量ベクトルを生成し、前記特徴量ベクトルと重みベクトルとを掛け合わせて加算した値が、前記時系列の情報に対応するコンテキストの正解値に近づくように、前記重みベクトルの各要素を学習し、前記選択する処理は、学習された前記重みベクトルの各要素を基にして、組み合わせ対象となるセンサの組と選択することを特徴とする付記１２に記載の分析プログラム。
【０１４７】
（付記１４）前記評価する処理は、前記複数の第１中間推定量および前記複数の第２中間推定量を時系列に並べ、所定の時間範囲に含まれる複数の第１中間推定量と、複数の第２中間推定量との組み合わせについて評価を行うことを特徴とする付記１３に記載の分析プログラム。
【０１４８】
（付記１５）通信装置から前記複数のセンサにより測定された時系列の情報を受信し、前記選択部の選択結果を前記通信装置に通知して、組み合わせの対象とならないセンサにより測定された時系列の情報を受信することを抑止する処理を更に実行することを特徴とする付記１１に記載の分析プログラム。
【符号の説明】
【０１４９】
１００    分析装置
１１０，２１０    通信部
１２０，２２０    入力部
１３０，２３０    表示部
１４０，２４０    記憶部
１４０ａ，２４０ａ  センサＤＢ
１４０ｂ  正解コンテキストＤＢ
１４０ｃ  重みテーブル
１４０ｄ  選択センサテーブル
１５０，２５０    制御部
１５０ａ，２５０ａ  受信部
１５０ｂ，２５０ｃ  分割部
１５０ｃ  評価部
１５０ｄ  選択部
１５０ｅ  通知部
２００    推定装置
２５０ｂ  通信制御部
２５０ｄ  スコア算出部
【図１】
2020067948.tif 000007
【図２】
2020067948.tif 000008
【図３】
2020067948.tif 000009
【図４】
2020067948.tif 000010
【図５】
2020067948.tif 000011
【図６】
2020067948.tif 000012
【図７】
2020067948.tif 000013
【図８】
2020067948.tif 000014
【図９】
2020067948.tif 000015
【図１０】
2020067948.tif 000016
【図１１】
2020067948.tif 000017
【図１２】
2020067948.tif 000018
【図１３】
2020067948.tif 000019
【図１４】
2020067948.tif 000020
【図１５】
2020067948.tif 000021
【図１６】
2020067948.tif 000022
【図１７】
2020067948.tif 000023