以下、図面を参照しながら本発明の実施形態を説明する。
本発明の実施形態は、結果をもたらした要因を推定する要因推定装置を含む要因推定システムに関する。本実施形態の要因推定システムによれば、機械(例えばコンピュータ)が、対象に関する大量のデータを用いた学習によって、要因を推定する能力を効率よく獲得することができる。本実施形態では、機械に分類能力を獲得させるために、ディープラーニング技術を用いる。ディープラーニングは、多次元ベクトルであるデータに含まれる類似するパターンを見つけることを可能にする。これにより、機械が、類似するパターンを含むデータを同じ分類と判定することができるようになる。因果関係が未知の場合には、教師データを作成することができない。教師なしデータを用いた学習によって所定の分類能力を獲得することは可能である。教師なしデータを用いたディープラーニングにより機械に分類能力を獲得させることによって、機械が未知の因果関係を判定することを可能にする。しかしながら、単純に入力データを分類させるだけでは、因果関係を判定する能力を獲得することはできない。本実施形態では、以下に示す方法で、機械が因果関係を判定する能力を獲得する。
理解を容易にするために、対象を人とした例について説明する。対象は、人に限定されず、例えば、人以外の生物、人または生物の行為、物、物の動作などであってもよい。その他、結果から要因を推定することができる任意の対象を扱うことができる。
本実施形態は、多数の人について人自身および環境に関する大量のデータを取得し、取得したデータを学習データとして利用できるように記録することを含む。人自身に関するデータは、例えば、業務アプリまたはスマホアプリの操作、自動車の制御装置またはセンサ、ウェアラブルセンサ、ヘルスチェックアプリなどから取得することができる。環境に関するデータは、例えば、IoT(Internet of Things)型のセンサ、身の回りにある様々な装置から取得することができる。
本実施形態では、対象を図1に示すようにモデル化する。対象は、1つまたは複数の状況(図1の例では3つの状況)のいずれかの状況に含まれる要因Xに応じて、状態Aから状態Bに変化する。各状況は、要因となる可能性がある外部要因または自発要因を含む。外部要因は、対象に影響を与える環境を示す。自己要因は、対象自身の状態または行動を示す。各状況は、要因となる可能性がない外部要因または自発要因を含んでいてもよい。課題は、対象である人が状態Aから状態Bに変化(遷移)した要因Xを推定することに相当する。状況のいずれかが要因となって、状態Aから状態Bに変化する結果を引き起こす。このようにモデル化すると、要因Xはいずれかの状況に含まれる。
図2を参照して、本実施形態において想定するサービスおよび装置の機能について説明する。以下の説明には、本発明に含まれない部分がある。
利用者は、図示しない利用者端末装置を通じて、サービス(例えば支援サービス)に加入する。利用者は、加入時に、所定の条件でサービスを受ける契約を締結する。支援サービスは、利用者がネットワークを介して多くの対象(以下、見守り対象ともいう)について状態または状況を監視することを可能にする。支援サービスは、例えば、IoTシステムを利用して実施することができる。サービスの依頼は対象ごとに行われる。支援サービスは、例えば、特許第4150965号に開示された技術などの既存の技術を利用して実施されてもよく、あるいは、支援アプリを作成することで実施されてもよい。
特許第4150965号には、状況に応じて業務指示を出力して利用者(対象)の業務を支援する業務支援コンテンツを用いて、業務に関して利用者が行う行動に関する情報を取得する技術が開示されている。利用者は、スマートフォンまたはパーソナルコンピュータ(PC)に業務支援コンテンツをダウンロードして利用することで、業務支援コンテンツによる支援を受けて業務を行うことができる。環境に関する情報、利用者に関する情報、業務の状態を示す情報などが取得される。各利用者の利用に応じて業務支援コンテンツの内容が更新されるので、利用者ごとに異なるサービスを提供することができる。
見守り対象とその周囲の環境にいる対象は、監視可能な対象の集合に含まれる。見守り対象は、その存在、行為、動作などによって、周囲の環境に対して影響を与える。逆に、見守り対象は、周囲の環境から影響を受ける。このとき、見守り対象は、環境との間で相互に影響を受けて、状態Aから状態Bに変化する。状態Aから状態Bに変化するまでの間に、見守り対象の周囲の環境は、状況1から状況2へ、さらに状況3へと遷移する。前述したように、課題は、対象が状態Aから状態Bに変化した要因を推定することに相当する。これは、例えば、次に示すような統合的な支援サービスを行うことで実現することができる。支援サービスは、行動支援、状態監視、環境の把握、状況監視、機械学習、および要因推定の機能を備える。
行動支援は、対象である人の行動の支援を行う機能である。対象が物である場合、対象の動作の支援を行う。支援を行う過程で対象の状態または状況に関する情報を取得することができる。状態監視は、対象の状態を監視する機能である。環境の把握は、対象の環境を把握し、環境の状態などの環境に関する情報を取得する機能である。状況監視は、対象とその環境とに関する情報を取得し、対象の状況を監視する機能である。機械学習は、機械が、対象とその環境とに関する情報を収集して学習データを生成し、所定の学習を行う機能である。要因推定は、対象が所定の状態Bとなったときの要因を推定する機能である。
上記のような支援サービスをすべて機械が行う。それにより、各対象についてよりきめの細かいサービスを提供することができる。人が介在しないので、プライバシーやセキュリティなど、人が要因となる脅威を回避することができる。さらに、人の環境に関する情報を自動的に取得することが容易になる。さらに、人の介在なく、24時間365日サービスを提供することができる。
本実施形態は、機械学習によって多次元ベクトルで構成されるデータを分類する能力を獲得することを含む。分類能力は、例えば、ディープラーニングによって獲得することができる。学習プログラムの構築を容易にするために、入力となるベクトルの次元数を合わせることが望ましい。分類能力を獲得するための方法は、ディープラーニングに限定されない。分類能力の獲得には、AI(Artificial Intelligence)技術や機械学習技術として知られている任意の方法を用いることができる。学習は、必ずしもAIと呼ばれる技術である必要はなく、例えば、入力データの取得方法を工夫して、多次元ベクトルの分布が事象ごとに分離するようにする方法、判定ロジックをあらかじめ用意し、モンテカルロ法や遺伝アルゴリズムなどの手法で閾値パラメータを学習させる方法などを用いることができる。
対象である人に関して集めた大量のデータをもとに、以下のようにして要因を推定する能力が獲得される。図3は、本実施形態に係る要因を推定する能力を獲得する方法の概要を示している。方法は、対象の集合に含まれる対象それぞれに関する時系列データ(センサデータ)を取得することを含む。対象の数およびデータ取得頻度が多い場合、取得されたデータはビッグデータとなる。方法は、対象について取得されたデータから、個々の対象に応じて、分析するデータを選択することを含む。具体的には、方法は、対象の状態に関するデータを抽出し、抽出したデータから対象の状態を示す1または複数のデータ、またはその組合せである状態情報ベクトルを生成することを含む。状態情報ベクトルは、対象自身について得られた複数個のセンサデータで表現することができる。例えば、状態情報ベクトルは、人の生体情報(例えば、血圧、心拍数など)を測定することで得られた生体データ、人の行動を記録した行動履歴のデータを含む。多数の対象の多くの時点でのデータを取得することで、状態情報ベクトルの集合が得られる。さらに、方法は、対象の状況に関するデータを抽出し、抽出したデータから状況情報ベクトルを生成することを含む。状況情報ベクトルとは、対象が所定の状態になる要因になり得る事象に関するデータのことを指す。状況情報ベクトルは、外部要因ベクトルおよび自己要因ベクトルを含む。外部要因ベクトルおよび内部要因ベクトルは、1または複数のデータまたはその組合せである。状況情報ベクトルは、外部要因ベクトルおよび自己要因ベクトルの両方を含むことが望ましいが、外部要因ベクトルまたは自己要因ベクトルのいずれかを含まなくてもよい。例えば、外部要因に対する行動など、自発的行動がないことがある。外部要因ベクトルは、対象の周囲の環境について得られた複数個のセンサデータで表現することができる。自己要因ベクトルは、対象自身について得られた複数個のセンサデータで表現することができる。自己要因ベクトルは、例えば、ウェアラブルセンサ、モバイル端末、業務用アプリ、人が操作する自動車のような機械が出力するデータを含む。自己要因ベクトルは、状態情報ベクトルの一部または全部を含んでいてもよい。多数の対象の多くの時点でのデータを取得することで、状況情報ベクトルの集合が得られる。
方法は、状態情報ベクトルを分類する教師なし学習を行い、人の状態を分類する能力を獲得することを含む。多数の対象について得られた状態情報ベクトルは所定数(例えば1万種類)の状態分類に分類される。類似する状態情報ベクトルが同じ状態分類に分類される。学習により状態情報ベクトルを分類する能力が獲得されて、任意の時刻における対象の状態を分類することが可能になる。この能力を状態分類能力と呼ぶ。多数の対象の状態を分類した集合が得られる。
方法は、状況情報ベクトルを分類する教師なし学習を行い、人の状況を分類する能力を獲得することを含む。多数の対象について得られた状況情報ベクトルを所定数(例えば1万種類)の状況分類に分類される。類似する状況情報ベクトルが同じ状況分類に分類される。学習により状況情報ベクトルを分類する能力が獲得されて、任意の時刻における対象の状況を分類することが可能になる。この能力を状況分類能力と呼ぶ。多数の対象の状況を分類した集合が得られる。人の状態ごとに状況分類能力を獲得するための学習を行うようにしてもよい。
方法は、要因を推定したい前と後の状態を状態A(事前状態ともいう)と状態B(事後状態ともいう)として特定することを含む。例えば、事前状態および事後状態は、対象である人自身が認識した状態でよい。対象が「先週よりも今は腕が疲れている。」と入力した場合、先週の状態が事前状態として特定され、入力時点の状態が事後状態として特定される。事前状態および事後状態は、ウェアラブルセンサまたはスマートフォンによって取得された人の状態に関する情報に基づいて特定されてもよい。事前状態および事後状態は、アプリケーションが判断する所定の状態を用いてもよい。事前状態および事後状態は、所定の方法で判断した今の状態が発生する前と後の状態でもよい。その他、任意の方法で状態を特定することができる。
図1に示したように、対象が状態Aから状態Bに変化した要因Xを推定することが求められる。多数の対象について、状態Aから状態Bへの変化を示すデータが抽出される。これを状態変化ベクトルとする。多数の対象について、状態Aから状態Bに変化する期間における状況を示すデータが抽出される。これを状況変化パターンとする。例えば、状態Aから状態Bに変化する期間において3つの状況が抽出された場合、以下の3つの状況変化パターンが想定される。
・状態A → 状況1 → 状態B
・状態A → 状況2 → 状態B
・状態A → 状況3 → 状態B
ここで、状況1、状況2、および状況3は、任意の1または複数の対象が状態Aから状態Bに変化した期間における状況情報ベクトルがAIによって分類された結果、類似の状況と判定された状況の集合である。この例では、状況の集合が3種類の状況であるが、状況の集合は、1、2、または4以上の種類の状況であってもよい。例えば、対象が状態Aから状態Bに変化する期間における状況として状況2および状況4が検出された場合、状況2が要因と推定される。
状態情報ベクトルの分類結果として状態が状態Aから状態Bに変化した事例が3つあり、その変化それぞれの間に複数の(例えば3つの)状況情報ベクトルがあり得る。例えば、下記の3つの状況変化パターンが得られたとする。
・状態A → 状況1 → 状況4 → 状況6 → 状態B
・状態A → 状況2 → 状況3 → 状況4 → 状態B
・状態A → 状況3 → 状況5 → 状況7 → 状態B
対象が状態Aから状態Bに変化する期間における対象の状況情報ベクトルを分類した結果として状況1、状況10、および状況20が検出された場合、状況1が要因Xとして推定される。
状態Aから状態Bに変化した要因Xを推定する能力を獲得する方法例について説明する。状態Aから状態Bへの変化が特定の人で頻繁に起きる場合、その人について得られたデータを用いて要因を特定することが可能である。状態Aから状態Bへの変化が特定の分類に属する人に共通する場合、これらの人について得られたより多くのデータを用いて要因を特定することが可能である。全ての対象について、状態Aと状態Bをこの順序で含むデータが抽出される。これを状態変化ベクトルとする。状態Aから状態Bに変化する期間における状況のデータが抽出される。これを状況推移リストとする。状態変化ベクトルと状況推移リストを組み合わせて要因推定のための学習データとする。これを状況変化パターンとする。学習データは、状態Aから状態Bに変化する際の状況を示す、多数の人のデータを含む。状態Aから状態Bに変化する際の状況が複数ある場合には、関係のない状況を示す情報を除いた新たな学習データが生成されてもよい。状態および状況は分類結果であるので、元のデータよりもそのデータ量ははるかに少ない。従って、効率よく学習を行うことができる。人が状態Aから状態Bに変化した要因となった状況を推定するために必要な状況の類似性を識別する能力を以下のように獲得する。要因推定の学習データを1000種類に分類する能力が獲得される。例えば、状態Aから状態Bに変化する際の状況を示す多数の人のデータを所定数(例えば1000種類)に分類する能力が獲得される。人が状態Aから状態Bに変化した際の状況を示すデータのうちの類似するものが同じ分類に分類される。
方法は、無関係な状況を分類する能力を獲得することを含む。具体的には、方法は、対象が状態Aとなった後に状態Bとなったデータと、対象が状態Aとなった後に状態Bとならなかったデータと、を抽出することを含む。これらのデータを用いることで、関連性の薄い状況を分類するための教師データを作成することができる。関連性の薄い状況を除外することで、処理量が減り、より早く要因を判定することが可能になる。さらに、状況の分類で無関係な事象によって無駄な分類が生成されることを抑制することが可能になる。
上記の処理を対象の種類または属性ごとに行うようにしてもよい。例えば、人を性別、年齢、体力などの属性で分類するようにしてもよい。
図4は、一実施形態に係る要因推定システムの構成例を示している。図4に示す要因推定システム400は、利用者端末装置401、支援装置402、対象情報データベース装置403、学習データ生成システム404、対象情報取得装置405、対象情報センサ装置群406、学習データベース装置407、状態分類学習装置408、状況分類学習装置409、除外状況学習装置410、および要因推定装置411を備え、これらは、インターネットなどのネットワーク412に接続されている。図4に示す例では、要因推定システム400は、データセンタまたはクラウドシステムのような分散システムを想定した構成となっている。要因推定システム400は1つの装置として実施してもよい。例えば、要因推定システム400は、センサ装置が接続された1台のコンピュータにより実現することができる。また、要因推定システム400内の複数の装置を1つの装置として実施してもよい。例えば、状態分類学習装置408、状況分類学習装置409、および除外状況学習装置410は、1台のコンピュータにより実現することができる。さらに、任意の装置内の要素の一部を他の装置に含むように変更がなされてもよい。また、任意の装置は、並行動作を可能にするようにさらに分散されてもよい。
利用者端末装置401は、利用者に支援サービスを提供する。利用者端末装置401として、例えば、PC、スマートフォン、スマートウォッチ、ウェアラブルデバイス、家電機器、健康機器、医療機器、業務端末、公共端末、音声端末、自動車のコンソール、ヘッドアップディスプレイ、自動車の制御装置、テレマティクス端末、工場の作業支援装置、ATMまたは券売機などの特定業務端末を用いることができる。その他、少なくとも要因の推定結果を出力することができる任意の装置を用いることができる。例えば、利用者端末装置401は、クラウドサービスまたはIoTサービスを構成する機能の1つであってもよい。
利用者は、利用者端末装置401で支援アプリ(支援プログラム、支援コンテンツなどと呼ぶこともある)を利用することができる。支援アプリは、支援する対象または目的ごとに用意されることができる。支援アプリは、支援装置402で実行される支援プログラムと連携して支援サービスを提供する。
利用者は、利用者端末装置401を用いて、対象の監視などの支援の依頼を行う。利用者端末装置401は、監視方法などの情報を含む支援依頼メッセージを支援装置402に送る。
利用者は、利用者端末装置401を用いて、対象と何らかの要因による結果としてもたらされた状態(状態B)とを指定することで要因推定の依頼を行うことができる。利用者は、2つの状態(状態Aおよび状態B)を指定してもよい。例えば、利用者端末装置401が時間順に状態を表示し、利用者は表示された状態のうちの2つを選択する。また、利用者は、2つの時刻(日時)を指定してもよい。状態Aは状態Bの直前の状態であるという設定がなされてもよい。この場合、利用者は状態Bのみを指定することになる。利用者が状態Aおよび状態Bを検出する条件を予め設定してもよい。状態Aは最初の状態であるという設定がなされてもよい。利用者が利用者端末装置401に入力した情報から状態Aおよび状態Bが決定されてもよい。例えば、利用者が「一昨日までは眠くなかったが、今日は眠い」と入力する。この場合、例えば、支援アプリが、一昨日のいずれかの時刻の状態を状態A、現在の状態を状態Bと指定する。支援アプリが、対象の状態が大きく変化したことを検出し、変化前の状態を状態A、変化後の状態を状態Bと指定してもよい。また、支援アプリが、業務成果などの対象のパフォーマンスが大きく変動したことを検出し、変動前の状態を状態A、変動後の状態を状態Bと指定してもよい。利用者端末装置401は、状態Aおよび状態Bを特定するための情報を支援装置402に送る。
利用者端末装置401は、対象情報取得装置405の機能を備えてもよい。利用者端末装置401は、さらに、センサ機能を備えてもよい。利用者端末装置401の処理能力が高い場合、利用者端末装置401は、要因推定装置411の機能を備えることもできる。
図5は、利用者端末装置401を実現するコンピュータのハードウェア構成例を示している。図5に示すコンピュータ500は、ユーザインタフェース501を備える。ユーザインタフェース501は、利用者から指示(例えば要因推定の依頼)を受け取り、利用者に情報(例えば要因の推定結果)を出力する。図5に示す例では、ユーザインタフェース501は、表示装置502、キーボード503、およびマウス504を含む。他の例では、ユーザインタフェース501は、タッチスクリーンを含む。コンピュータは、CPU(Central Processing Unit)、メモリ、および通信部(いずれも図示せず)をさらに備える。一例として、メモリは、ROM(read only memory)、RAM(random access memory)、および記憶装置を備える。記憶装置として、例えば、ハードディスクドライブ(HDD)を用いることができる。利用者端末装置401の各種機能は、CPUがROMまたは記憶装置に記録された各種プログラムをRAMに読み出して実行することで実現することができる。通信部は、ネットワーク412に接続するためのインタフェースを含む。
支援装置402は、例えば、サーバ型コンピュータで実行される支援プログラムにより実施することができる。支援プログラムは、例えば、Webアプリとして実施することができる。利用者は、利用者端末装置401でブラウザを用いてWebアプリを利用することができる。支援プログラムは、REST(Representational State Transfer)などを用いて利用者端末装置401上で実行されてもよい。支援装置402は、対象情報データベース装置403の機能を備えてもよい。
図6は、サーバ型コンピュータのハードウェア構成例を示している。例えば、支援装置402、対象情報データベース装置403、学習データ生成システム404内の各装置、対象情報取得装置405、または学習データベース装置407は、図6に示すサーバ型コンピュータ600により実施することができる。
コンピュータ600は、CPU601、ROM602、RAM603、記憶装置604、入出力部605、および通信部606を含み、これらは、バス607によって相互に接続される。支援装置402などの装置の各種機能は、CPU601がROM602または記憶装置604に記録された各種プログラムをRAM603に読み出して実行することで実現することができる。記憶装置604として、例えば、HDDを用いることができる。入出力部605は、情報の入出力を行う。一例として、入出力部605は、表示装置、キーボード、およびマウスを含む。通信部606は、ネットワーク(例えば図4のネットワーク412)に接続するためのインタフェースを含む。
図7は、支援装置402の構成例を示す機能ブロック図である。図7に示す支援装置402は、通信部701、支援ユーザインタフェース部702、学習依頼情報取得部703、対象監視起動部704、学習プログラム起動部705、外部プログラム起動部706、要因推定制御部707、および要因推定結果出力部708を含む。通信部701は、ネットワーク412を介して接続された他の装置とデータをやり取りする。
支援ユーザインタフェース部702は、支援プログラムのユーザインタフェースを提供する。支援ユーザインタフェース部702は、利用者が支援サービスへ加入することを可能にする。例えば、支援ユーザインタフェース部702は、利用者から支援の依頼を受ける。また、支援ユーザインタフェース部702は、利用者からの要因推定の依頼を受け付けてもよい。支援ユーザインタフェース部702は、状態検出の設定を受け付けてもよい。
学習依頼情報取得部703は、支援ユーザインタフェース部702を介して、要因推定を行う能力を取得する依頼を受け付ける。具体的には、学習依頼情報取得部703は、状態Aおよび状態Bを特定するための情報を取得する。学習依頼情報取得部703は、要因推定以外の学習目標についての依頼を受け付けてもよい。
対象監視起動部704は、利用者によって指定された対象の監視を開始する指令を対象情報取得装置405に送る。監視を開始する指令は対象ごとに送られる。
学習プログラム起動部705は、各装置に対して所定のプログラムを起動する指令を送る。例えば、学習プログラム起動部705は、対象を監視するための監視プログラムを起動する指令を対象情報センサ装置群406に送る。対象情報センサ装置群406に含まれる1つまたは複数のセンサ装置において、対象に応じた監視を行うための監視プログラムが起動される。さらに、学習プログラム起動部705は、学習データを生成するための学習データ生成プログラムを起動する指令を学習データ生成システム404に送る。さらに、学習プログラム起動部705は、学習を行うための学習プログラムを起動する指令を送る。例えば、学習プログラム起動部705は、状態分類学習プログラムを起動する指令を状態分類学習装置408に送り、状況分類学習プログラムを起動する指令を状況分類学習装置409に送り、除外状況学習プログラムを起動する指令を除外状況学習装置410に送る。
外部プログラム起動部706は、利用者からの依頼に対応するために、必要に応じて、外部装置のプログラムを起動する。例えば、外部プログラム起動部706は、対象を撮影するために、対象が存在している部屋の監視カメラを起動することができる。外部プログラム起動部706は、特定の業務を支援する業務支援アプリを起動することができる。外部プログラム起動部706は、利用者に対してフィットネス支援コンテンツを再生することができる。
要因推定制御部707は、要因推定装置411を制御する。要因推定制御部707は、状態分類学習装置408、状況分類学習装置409、および除外状況学習装置410によって生成された学習結果を利用できるように、これらの学習結果を要因推定装置411に適用する。具体的には、要因推定制御部707は、これらの学習結果に合わせて要因推定装置411のニューラルネットワークを設定する。要因推定制御部707は、利用者端末装置401から状態Aおよび状態Bを特定するための情報を受けると、要因推定を行う指令を要因推定装置411に送る。その後に、要因推定制御部707は、要因推定装置411から推定結果を受け取り、受け取った推定結果を要因推定結果出力部708に渡す。要因推定結果出力部708は、要因推定制御部707から推定結果を受け取り、この推定結果を利用者端末装置401に送る。
対象情報データベース装置403は、対象情報取得装置405の指令に従って対象に関する情報を取得するセンサ装置によって取得された、対象に関するデータを記録する。対象情報データベース装置403は、指定された対象について状態情報ベクトルおよび状況情報ベクトルのもとになるデータを抽出できるようにデータを記録する。
図8は、対象情報データベース装置403の構成例を示す機能ブロック図である。図8に示す対象情報データベース装置403は、通信部801、対象情報DB(データベース)802、状態情報DB803、および状況情報DB804を備える。通信部801は、ネットワーク412を介して接続された他の装置とデータをやり取りする。対象情報DB802は、対象情報取得装置405によって取得された対象に関するデータを記録する。状態情報DB803は、対象情報DB802に記録されたデータから抽出された状態に関するデータを記録する。状況情報DB804は、対象情報DB802に記録されたデータから抽出された状況に関するデータを記録する。
学習データ生成システム404は、対象情報取得装置405によって取得されて対象情報データベース装置403に記憶された対象に関するデータをもとに、学習に用いる学習データを作成する。例えば、学習データ生成システム404は、対象情報データベース装置403から対象に関するデータを取得し、取得したデータに基づいて学習データを生成する。対象は複数存在することができるので、学習データ生成システム404は、対象ごとに、状態に関する情報、状況に関する情報、および除外する状況を示す情報を抽出する必要がある。
図9は、学習データ生成システム404の構成例を示す。図9に示す学習データ生成システム404は、通信部901、状態情報抽出装置902、状況情報抽出装置903、および除外状況情報抽出装置904を備える。通信部901、状態情報抽出装置902、状況情報抽出装置903、および除外状況情報抽出装置904は、1つの装置として実施されてもよい。
通信部901、状態情報抽出装置902、状況情報抽出装置903、および除外状況情報抽出装置904は、イーサネット(登録商標)などのネットワークに接続されている。通信部901は、ネットワーク(例えばネットワーク412)を介して接続された他の装置とデータをやり取りする。
状態情報抽出装置902は、対象に関するデータから対象の状態に関する情報を抽出する。これは状態を分類する能力を獲得するために使用される学習データとして出力される。状況情報抽出装置903は、対象に関するデータから対象の状況に関する情報を抽出する。これは状況を分類する能力を獲得するために使用される学習データとして出力される。除外状況情報抽出装置904は、対象に関するデータから、除外する状況に関する情報を抽出する。これは状況情報を除外する能力を獲得するために使用される学習データとして出力される。
図10は、対象情報取得装置405の構成例を示す機能ブロック図である。図10に示す対象情報取得装置405は、通信部1001、指示部1002、対象情報取得部1003、および対象情報記憶部1004を備える。通信部1001は、ネットワーク412を介して接続された他の装置とデータをやり取りする。指示部1002は、支援装置402から対象の監視を開始する指令を受け取ると、対象の監視を開始してそれにより得られたデータを対象情報データベース装置403に記録するように対象情報センサ装置群406に指示する。指示部1002は、対象ごとにどのような情報を取得するかを管理してもよい。これにより、対象情報データベース装置403に記録されたデータから所望する情報を抽出することが可能になる。指示部1002は、対象の状態に応じて監視方法を変更してもよい。対象の特定の状態が検出されたときに、指示部1002は、その対象に関する情報を所定のセンサを選択して監視を行うように対象情報センサ装置群406に指示してもよい。対象情報取得部1003は、対象情報センサ装置群406から出力された対象に関するデータを取得し、取得したデータを対象情報記憶部1004に保存することができる。
対象情報センサ装置群406は、複数のセンサ装置を含む。各センサ装置は、対象に関する情報を検出し、センサデータを出力する。センサ装置は、対象に関する情報を取得できるものであれば、いかなるものであってもよい。センサ装置は、別の目的で設置された装置が備えるセンサ機能を流用したものであってもよい。例えば、スマートフォンまたは自動車に設けられたセンサを利用することができる。PCまたはスマートフォン上で動作するアプリが検出した情報をセンサデータとして利用してもよい。センサ装置は、例えば、特定の情報を取得する専用のセンサとして実施することができる。センサ装置は、IoTシステムにおいて分散して設置されたセンサであってよい。センサ装置は、実体があるセンサと同様に動作するようにクラウド内で仮想的に構成した仮想センサであってもよい。各センサ装置によって取得されたデータは対象情報データベース装置403に記録される。
図11は、センサ装置の構成例を示している。具体的には、図11は、センサ装置を組み込んだコンピュータ1100を示している。コンピュータ1100は、CPU1101、ROM1102、RAM1103、記憶装置1104、センサ部1105、入出力部1106、および通信部1107を備え、これらは、バス1108によって相互に接続される。センサ部1105は、1つまたは複数のセンサ装置を含む。CPU1101は、ROM1102または記憶装置1104に記録された制御プログラムに従ってセンサ部1105の動作を制御する。入出力部1106は、情報の入出力を行う。通信部1107は、ネットワーク(例えば図4のネットワーク412)に接続するためのインタフェースを含む。
学習データベース装置407は、学習データ生成システム404によって生成された学習データを記録する。学習データは、状態分類の学習に用いるデータ、状況分類の学習に用いるデータ、および除外状況の学習に用いるデータを含み、これらはそれぞれ状態分類学習装置408、状況分類学習装置409、および除外状況学習装置410によって用いられる。学習データベース装置407は、学習データに含まれる複数の対象の状態情報ベクトルおよび状況情報ベクトルを順次出力することができる。また、学習データベース装置407は、学習データに含まれる特定の対象の状態情報ベクトルおよび状況情報ベクトルを順次出力することができる。これにより、特定の対象に関するデータのみを用いて学習を行うことが可能になる。
学習データベース装置407は、対象の種類または属性ごとに学習データを記録するように構成されてもよい。これにより、複数種類の対象を扱うことが可能になる。また、種類または属性を指定することで、所望するデータを抽出することが可能になる。
学習データベース装置407は、状態分類学習装置408、状況分類学習装置409、および除外状況学習装置410によって生成された学習結果を記録してもよい。
状態分類学習装置408は、状態を分類するための学習を行う。図12は、状態分類学習装置408を実現するサーバ型コンピュータの構成例を示している。図12に示すサーバ型コンピュータ1200は、GPU(Graphics Processing Unit)1201、CPU1202、ROM1203、RAM1204、記憶装置1205、入出力部1206、および通信部1207を備える。状態分類学習装置408は、処理量が非常に多い。このため、コンピュータ1200は、通常のコンピュータにGPU1201を追加した構成となっている。CPU1202、ROM1203、RAM1204、記憶装置1205、入出力部1206、および通信部1207はそれぞれ、図6に示したCPU601、ROM602、RAM603、記憶装置604、入出力部605、および通信部606に対応するものであるので、これらについての説明は省略する。GPU1201は、ニューラルネットワークの学習における繰り返し計算をCPU1202よりも高速に実行することができる。
状態分類学習装置408は、コンピュータ1200と同様の構成を有する複数のコンピュータを組み合わせたブレードPCによって実現されてもよい。また、状態分類学習装置408は、複数のブレードPCを組み合わせた複合型サーバ装置によって実現されてもよい。さらに大規模な学習データを扱う場合には、状態分類学習装置408は、複合型サーバ装置を複数組み合わせたデータセンサによって実現されてもよい。図12に示す構成は、ソフトウェアによってディープラーニングの学習を行うための構成である。ソフトウェア処理の一部または全部はハードウェアによって実施されてもよい。それにより、処理を高速化することができる。
図13は、状態分類学習装置408の構成例を示す機能ブロック図である。図13に示す状態分類学習装置408は、通信部1301、状態分類学習制御部1302、ニューラルネットワーク1303、学習結果抽出部1304、および学習結果出力部1305を備える。通信部1301は、ネットワーク412を介して接続された他の装置とデータをやり取りする。
状態分類学習制御部1302は、状態を分類する能力を獲得するための処理を制御する。状態分類学習制御部1302は、ニューラルネットワーク1303のハイパーパラメータを設定し、ディープラーニングによる学習を行う。学習はディープラーニングに限定されず、機械が学習する任意の学習方法を用いることができる。状態分類学習制御部1302は、対象情報データベース装置403の対象情報DB802に記録されているデータから、1以上の対象に関するデータを抽出する。本実施形態では、少なくとも指定された対象に関するデータを使用する。1以上の他の対象に関するデータも使用してもよい。指定された対象に関するデータが少ない場合などでは効果が上がる。状態分類学習制御部1302は、抽出されたデータから、図3に示した状態情報ベクトルを選択する。選択するためのプログラムは、対象の種類または属性ごとに予め用意することができる。状態情報ベクトルは、対象の状態を表すように設計することができる。状態情報ベクトルは、対象の種類または属性ごとに定義するようにしてもよい。状態分類学習制御部1302は、多数の状態情報ベクトルを含む学習データをニューラルネットワーク1303に与え、ニューラルネットワーク1303を用いて多数の状態情報ベクトルを所定数(例えば1万種類)の状態分類に分類する学習を行う。学習の結果として、状態を分類する能力が獲得される。獲得された能力を他の装置で実施するための学習結果が学習結果抽出部1304によって抽出される。抽出された情報は、学習結果出力部1305によってファイルなどにまとめられて要因推定装置411に送られる。
図14は、ニューラルネットワークの構成例を示している。図14に示すニューラルネットワーク1400は、図13に示したニューラルネットワーク1303に相当する。ニューラルネットワーク1400は、ニューラルネットワーク入力部1401、深層ニューラルネットワーク1402、およびニューラルネットワーク出力部1403を備える。ディープラーニングでは、深層ニューラルネットワーク1402が用いられる。ニューラルネットワーク入力部1401は、学習データを深層ニューラルネットワーク1402に入力する。深層ニューラルネットワーク1402は、学習データを用いて学習を行う。学習の結果として、状態を分類する能力が獲得される。ニューラルネットワーク出力部1403は、獲得された能力を他の装置で実施するための学習結果を抽出可能なデータを出力する。
状況分類学習装置409は、状況を分類するための学習を行う。状況分類学習装置409は、状態分類学習装置408と同様のハードウェア構成を有することができる。例えば、状況分類学習装置409は、図12に示したサーバ型コンピュータ1200により実現することができる。
図15は、状況分類学習装置409の構成例を示す機能ブロック図である。図15に示す状況分類学習装置409は、通信部1501、状況分類学習制御部1502、ニューラルネットワーク1503、学習結果抽出部1504、および学習結果出力部1505を備える。通信部1501は、ネットワーク412を介して接続された他の装置とデータをやり取りする。
状況分類学習制御部1502は、状況を分類する能力を獲得するための処理を制御する。状況分類学習制御部1502は、ニューラルネットワーク1503のハイパーパラメータを設定し、ディープラーニングによる学習を行う。ニューラルネットワーク1503は、図14に示したニューラルネットワーク1400と同様の構成を有することができる。学習はディープラーニングに限定されず、機械が学習する任意の学習方法を用いることができる。
状況分類学習制御部1502は、対象情報データベース装置403の対象情報DB802に記録されたデータから、1以上の対象に関するデータを抽出する。本実施形態では、要因推定の依頼において指定された対象に関するデータを少なくとも使用する。1以上の他の対象に関するデータも使用してもよい。指定された対象に関するデータが少ない場合などでは効果が上がる。状況分類学習制御部1502は、抽出されたデータから図3に示した状況情報ベクトルを選択する。選択するためのプログラムは、対象の種類または属性ごとに予め用意することができる。状況情報ベクトルは、対象の状況を表すように設計することができる。状況情報ベクトルは、外部要因ベクトルおよび自己要因ベクトルを含む。外部要因ベクトルは、対象に影響を与える外部の要因を表す。自己要因ベクトルは、対象自身に起因する要因を表す。状況情報ベクトルは、例えば、外部要因ベクトルと自己要因ベクトルを組み合わせたベクトルとして定義することができる。状況情報ベクトルは、対象の種類または属性ごとに定義するようにしてもよい。状況分類学習制御部1502は、多数の状況情報ベクトルを含む学習データをニューラルネットワーク1503に与え、ニューラルネットワーク1503を用いて多数の状況情報ベクトルを所定数(例えば1万種類)の状況分類に分類する学習を行う。学習の結果として、状況を分類する能力が獲得される。獲得された能力を他の装置で実施するための学習結果が学習結果抽出部1504によって抽出される。学習結果抽出部1504によって抽出された情報は、学習結果出力部1505によってファイルなどにまとめられて要因推定装置411に送られる。
除外状況学習装置410は、除外する状況を分類するための学習を行う。除外状況学習装置410は、状態分類学習装置408と同様のハードウェア構成を有することができる。例えば、除外状況学習装置410は、図12に示したサーバ型コンピュータ1200により実現することができる。
図16は、除外状況学習装置410の構成例を示す機能ブロック図である。図16に示す除外状況学習装置410は、通信部1601、除外状況学習制御部1602、ニューラルネットワーク1603、学習結果抽出部1604、および学習結果出力部1605を備える。通信部1601は、ネットワーク412を介して接続された他の装置とデータをやり取りする。
除外状況学習制御部1602は、除外する状況を分類する能力を獲得するための処理を制御する。除外状況学習制御部1602は、ニューラルネットワーク1603のハイパーパラメータを設定し、ディープラーニングによる学習を行う。ニューラルネットワーク1603は、図14に示したニューラルネットワーク1400と同様の構成を有することができる。学習はディープラーニングに限定されず、機械が学習する任意の学習方法を用いることができる。
除外状況学習制御部1602は、対象情報データベース装置403の対象情報DB802に記録されたデータから、1以上の対象に関するデータを抽出する。本実施形態では、少なくとも指定された対象に関するデータを使用する。1以上の他の対象に関するデータも使用してもよい。指定された対象に関するデータが少ない場合などでは効果が上がる。除外状況学習制御部1602は、対象が状態Aから状態Bに変化したときのデータを抽出する。これを状態Aから状態Bに変化したときの教師データとする。さらに、除外状況学習制御部1602は、対象が状態Aから状態Bに変化したとき以外のデータを抽出する。これを状態Aから状態Bに変化しなかったときの教師データとする。除外状況学習制御部1602は、抽出されたデータから図3に示した状況情報ベクトルを選択する。選択するためのプログラムは、対象の種類または属性ごとに予め用意することができる。状況情報ベクトルは、対象の状況を表す。状況情報ベクトルは、対象の種類または属性ごとに定義するようにしてもよい。多数の教師あり学習データを用いて、状況情報ベクトルを状態Aから状態Bになったときの状況情報ベクトルと類似するものと、そうではないものに分類する能力が獲得される。状態Aから状態Bになったときの状況情報ベクトルと類似するもの以外を除外することで、要因の候補となるデータのデータ量を大幅に削減することができる。これによって、学習の処理量が削減され、学習時間が短縮される。
学習の結果として、除外する状況を分類する能力が獲得される。獲得された能力を他の装置で実施するための学習結果が学習結果抽出部1604によって抽出される。学習結果抽出部1604によって抽出された情報は、学習結果出力部1605によってファイルなどにまとめられて要因推定装置411に送られる。
要因推定装置411は、利用者からの要因推定依頼に基づいて、指定された対象が状態Aから状態Bに変化した要因を推定する。要因推定装置411は、状態分類学習装置408から出力される学習結果および状況分類学習装置409から出力される学習結果を用いて要因推定を行う。また、要因推定装置411は、除外状況学習装置410から出力される学習結果をさらに用いてもよい。学習結果に含まれるデータを用いることで、状態分類学習装置408、状況分類学習装置409および除外状況学習装置410それぞれのニューラルネットワークと同等のニューラルネットワークを構成することができる。
図17は、要因推定装置411の構成例を示す機能ブロック図である。図17に示す要因推定装置411は、通信部1701、対象情報入力部1702、状態情報抽出部1703、状態特定部1704、状態分類部1705、状態分類学習結果設定部1706、状況情報抽出部1707、状況特定部1708、状況分類部1709、状況分類学習結果設定部1710、要因推定部1711、および要因推定結果出力部1712を備える。通信部1701は、ネットワーク412を介して接続された他の装置とデータをやり取りする。
対象情報入力部1702は、対象情報データベース装置403から対象についての情報を受け取る。対象情報入力部1702は、対象情報センサ装置群406から対象についての情報を受け取ってもよい。対象は、要因を推定することになる対象(第1の対象)を含む。状態情報抽出部1703は、対象情報入力部1702によって受け取られた情報の中から状態情報(状態情報ベクトル)を抽出する。
状態特定部1704は、第1の対象についての所定の状態を特定し、状態情報抽出部1703によって抽出された状態情報の中から所定の状態に対応する状態情報を抽出する。所定の状態は、結果である状態Bに対応する。状態Bは、例えば、利用者が要因推定を行うことが望ましいと考える状態であり得る。状態特定部1704は、事前状態である状態Aをさらに特定してもよい。状態Aおよび状態Bは、他の装置によって検出されることができる。支援装置402の支援サービスプログラムは、利用者の利用に応じて個別の支援サービスを行うプログラムを、利用者が利用可能な装置のいずれかで起動する。例えば、業務支援アプリが起動される。業務支援アプリが所定の条件に従って状態Aおよび状態Bを検出する。例えば、自動車のテレマティクス端末が運転者の状態を検出するセンサを用いる。例えば、運転者へのアドバイスを行うことが望ましい状態が状態Bとして検出される。例えば、ヘルスケアアプリが対象の状態Aおよび状態Bを検出してもよい。状態特定部1704は、他の装置から第1の対象が所定の状態になったことを示す通知を受け取り、受け取った通知に基づいて所定の状態を特定する。例えば、通知は、第1の対象が所定の状態になった時刻を示す時刻情報を含み、状態特定部1704は、状態情報抽出部1703によって抽出された状態情報の中から、その時刻における第1の対象の状態情報を状態分類部1705に出力する。
状態分類部1705は、状態特定部1704から所定の状態に対応する状態情報の入力を受けて、所定の状態を分類する。例えば、状態分類部1705は、図14に示したニューラルネットワークと同様のニューラルネットワークを含むことができる。状態分類学習結果設定部1706は、状態分類学習装置408から学習結果を受け取り、受け取った学習結果を用いて状態分類部1705のニューラルネットワークのハイパーパラメータを設定する。これにより、状態分類部1705は、状態を分類することが可能になる。状態分類部1705は、入力された状態情報を分類し、状態分類結果を要因推定部1711に出力する。
状況情報抽出部1707は、対象情報入力部1702によって受け取られた情報の中から状況情報を抽出する。状況特定部1708は、第1の対象が所定の状態に至るまでの状況を特定し、状況情報抽出部1707によって抽出された状況情報から、特定した状況に対応する状況情報を抽出する。例えば、状況特定部1708は、状態特定部1704から、第1の対象が状態Aから状態Bに変化するまでの期間を示す情報を受け取り、状況情報抽出部1707によって抽出された状況情報から、第1の対象が状態Aから状態Bに変化するまでの期間における第1の対象の状態情報を抽出する。状況特定部1708は、除外状況学習装置410で分類された状況情報以外の中から、特定した状況に対応する状況情報を抽出し、それを状況分類部1709に入力してもよい。
状況分類部1709は、状況特定部1708によって特定された状況に対応する状況情報の入力を受けて、特定された状況を分類し、1または複数の状況(状況分類)を含む状況分類結果を出力する。例えば、状況分類部1709は、図14に示したニューラルネットワークと同様のニューラルネットワークを含むことができる。状況分類学習結果設定部1710は、状況分類学習装置409から学習結果を受け取り、受け取った学習結果を用いて状況分類部1709のニューラルネットワークのハイパーパラメータを設定する。これにより、状況分類部1709は、状況を分類することが可能になる。
要因推定部1711は、状態分類部1705からの状態分類結果と状況分類部1709からの状況分類結果とに基づいて、所定の状態に至る要因となった状況を推定する。例えば、要因推定部1711は、第1の状態から第2の状態へ変化する期間における状況を示す状況変化パターンの履歴を保持し、履歴中の状況変化パターンの中から状態分類結果に対応する状況変化パターンを選択し、選択した状況変化パターンと状況分類結果とに共通する状況を要因として特定する。より具体的には、状態Aから状態Bに変化したことが検出された場合に、次のように要因を推定する。要因推定部1711は、状況分類部1709から、対象が状態Aから状態Bに変化する期間における状況情報ベクトルを分類した結果を示す状況変化パターンを受け取る。要因推定部1711は、状況分類部1709から受け取った状況変化パターンが履歴に含まれるいずれかの状況変化パターンと一致する場合に、その状況変化パターンによって示される状況を要因と判定する。状況分類部1709が複数の状況変化パターンを生成した場合、要因推定部1711は、状況分類部1709から受け取った状況変化パターンの中から、履歴に含まれる状況変化パターンと一致する状況変化パターンを選択し、選択した状況変化パターンによって示される状況分類を要因と判定する。一致する状況変化パターンが複数ある場合には、要因推定部1711は、1つまたは複数の要因を出力してもよい。あるいは、一致する状況変化パターンが複数ある場合には、要因推定部1711は、最も先に発生した状況を要因として出力するようにしてもよい。また、ディープラーニングの分類結果は、所定の分類に対する類似度を数値として出力することができる。この数値を用いて、最も近いものを要因と判定するようにしてもよい。
図18は、本実施形態に係る学習の手順例を示している。図18に示す処理は、学習依頼に応答して開始される。ステップS1801において、学習データ生成システム404が学習データを生成し、生成した学習データを学習データベース装置407に記録する。ステップS1802において、各学習装置が、学習データに基づいて一連の学習を行う。具体的には、ステップS1803において、状態分類学習装置408が、対象の状態を分類する能力を獲得し、獲得した能力を他の装置で実施するための学習結果を生成する。ステップS1804において、状況分類学習装置409が、対象の状態を分類する能力を獲得し、獲得した能力を他の装置で実施するための学習結果を生成する。ステップS1805において、除外状況学習装置410が、状態Aから状態Bへの変化と無関係な状況を分類する能力を獲得し、獲得した能力を他の装置で実施するための学習結果を生成する。
ステップS1806において、各学習装置が学習結果を出力する。ステップS1807において、要因推定装置411が各学習装置から学習結果を受け取る。ステップS1808において、要因推定装置411が、受け取った学習結果を用いて要因推定能力を獲得する。
ステップS1809において、他の学習依頼があるか否かが判定される。他の学習依頼がある場合、ステップS1801に戻り、他の学習依頼がない場合、処理が終了になる。
図19は、本実施形態に係る要因推定依頼から推定結果の出力までの処理を示している。図19のステップS1901において、利用者が、利用者端末装置401で、対象を指定して支援アプリを起動する。ステップS1902において、対象に対する支援サービスが開始される。ステップS1903において、利用者が、事前状態Aおよび事後状態Bを指定して要因推定を依頼する。ステップS1904において、学習装置が状態Aから状態Bに変化する事象について学習を行う。詳細は、後述する、状態分類学習装置、状況分類学習装置、除外状況学習装置、それぞれの学習の手順例において説明する。ステップS1905において、状態Aから状態Bに変化する事象と無関係な状況を分類する能力などの能力が獲得される。ステップS1906において、学習装置が学習結果を出力する。ステップS1907において、要因推定装置411が学習結果を受け取る。ステップS1908において、要因推定装置411が、受け取った学習結果を用いて要因推定能力を獲得する。ステップS1909において、要因推定装置411が、対象が状態Aから状態Bに変化した要因を推定し、推定結果を出力する。
図20は、本実施形態に係る状態分類学習装置408における学習の手順例を示している。図20のステップS2001において、状態分類学習装置408に学習の開始が指令される。ステップS2002において、状態分類学習装置408が、指定された対象に関するデータを学習データベース装置407に要求する。ステップS2003において、状態分類学習装置408が、分類数を設定する。分類数は可変である。例えば、分類数は、要因推定システムのオペレータによって設定される。ステップS2004において、状態分類学習装置408が、学習データベース装置407から、指定された対象の状態に関するデータを受け取り、学習を行う。
ステップS2005において、状態分類学習装置408は、学習打ち切り条件を満たすか否かを判定する。学習打ち切り条件を満たさない場合、ステップS2006に進み、学習打ち切り条件を満たす場合、処理が終了となる。
ステップS2006において、状態分類学習装置408は、学習レベルが所定のレベルに到達したか否かを判定する。学習レベルが所定のレベルに到達していない場合、ステップS2004に戻り、状態分類学習装置408は、学習データベース装置407から他の対象の状態に関するデータを取得して再度学習を行う。学習レベルが所定のレベルに到達した場合、ステップS2007に進み、ステップS2007において、状態分類学習装置408は、学習結果を出力する。
図21は、本実施形態に係る状況分類学習装置409における学習の手順例を示している。図21のステップS2101において、状況分類学習装置409に学習の開始が指令される。ステップS2102において、状況分類学習装置409が、指定された対象に関するデータを学習データベース装置407に要求する。ステップS2103において、状況分類学習装置409が、分類数を設定する。分類数は可変である。例えば、分類数は、要因推定システムのオペレータによって設定される。状況分類における分類数は状態分類における分類数と異なっていてもよい。ステップS2104において、状況分類学習装置409が、学習データベース装置407から、指定された対象の状況に関するデータを受け取り、学習を行う。
ステップS2105において、状況分類学習装置409は、学習打ち切り条件を満たすか否かを判定する。学習打ち切り条件を満たさない場合、ステップS2106に進み、学習打ち切り条件を満たす場合、処理が終了となる。
ステップS2106において、状況分類学習装置409は、学習レベルが所定のレベルに到達したか否かを判定する。学習レベルが所定のレベルに到達していない場合、ステップS2104に戻り、状況分類学習装置409は、学習データベース装置407から他の対象の状況に関するデータを取得して再度学習を行う。学習レベルが所定のレベルに到達した場合、ステップS2107に進み、ステップS2107において、状況分類学習装置409は、学習結果を出力する。
図22は、本実施形態に係る除外状況学習装置410における学習の手順例を示している。図22のステップS2201において、除外状況学習装置410は、学習データベース装置407から状況変化パターンのデータを受け取る。ステップS2202において、除外状況学習装置410は、状態Aから状態Bに変化した状況変化パターンのデータを非除外教師データとして生成する。ステップS2203において、除外状況学習装置410は、状態Aから状態Bに変化した状況変化パターン以外の状況変化パターンのデータを除外教師データとして生成する。非除外教師データおよび除外教師データは学習データ生成システム404によって作成されてもよい。
ステップS2204において、除外状況学習装置410は、非除外教師データおよび除外教師データを用いて、除外する状況を識別する学習を行う。ステップS2205において、除外状況学習装置410は、学習打ち切り条件を満たすか否かを判定する。学習打ち切り条件を満たさない場合、ステップS2206に進み、学習打ち切り条件を満たす場合、処理が終了となる。
ステップS2206において、除外状況学習装置410は、学習レベルが所定のレベルに到達したか否かを判定する。学習レベルが所定のレベルに到達していない場合、ステップS2201に戻り、除外状況学習装置410は、状況変化パターンのさらなるデータを取得して再度学習を行う。学習レベルが所定のレベルに到達した場合、ステップS2207に進み、ステップS2207において、除外状況学習装置410は、学習結果を出力する。
図23は、本実施形態に係る要因推定装置411による処理の手順例を示している。図23のステップS2301において、要因推定部1711は、複数の状況変化パターンを含む状況分類履歴を取得する。ステップS2302において、状態分類学習結果設定部1706は、状態分類学習装置408から受け取った学習結果を状態分類部1705に設定する。ステップS2303において、状況分類学習結果設定部1710は、状況分類学習装置409から受け取った学習結果を状況分類部1709に設定する。
ステップS2304において、状態情報抽出部1703は、対象の状態情報ベクトルを状態特定部1704に入力する。ステップS2305において、状態特定部1704は、対象が事前状態である状態Aになったか否かを判定する。対象の状態が状態Aでない場合、ステップS2304に戻り、対象の状態が状態Aである場合、状態特定部1704は、入力された状態情報ベクトルの中から状態Aに対応する状態情報ベクトルを選択し、ステップS2306に進む。
ステップS2306において、状態情報抽出部1703は、対象の状態情報ベクトルを状態特定部1704にさらに入力する。ステップS2307において、状態特定部1704は、対象が事後状態である状態Bになったか否かを判定する。対象の状態が状態Bでない場合、ステップS2306に戻り、対象の状態が状態Bである場合、状態特定部1704は、入力された状態情報ベクトルの中から状態Bに対応する状態情報ベクトルを選択し、ステップS2308に進む。
ステップS2308において、状況分類部1709は、状況変化パターンを生成する。ステップS2309において、要因推定部1711は、状況分類履歴から、生成された状況変化パターンと一致する状況変化パターンを探す。ステップS2310において、要因推定部1711は、一致した状況変化パターンに含まれる状況を推定結果と判定する。ステップS2310において、要因推定結果出力部1712は、推定結果を出力する。
以上に、要因推定システムの構成および動作について説明した。以下に、具体的な補足説明を行う。
ディープラーニングは、大量のデータをもとに、分類または予測などの所定の能力を獲得するために学習を行うことができる。しかしながら、データ量が多すぎると、所定の規模の装置を用いて所定の時間内で学習を完了することができない。要因推定システムでは、見守り対象に関係のないデータを含む膨大なデータが取得される。このため、要因を推定するために用いるデータの範囲を制限することが必要になることがある。利用者に対して提供するサービスまたは装置に応じて制限を設けることが望ましい。例えば、利用者との契約に応じて制限を設けることができる。この場合、データ範囲が利用者との合意に応じて制限されるので、システム側の責任範囲を明確にすることができる。
データ範囲は所定の条件に応じて制限されてもよい。例えば、対象が人である場合に、年齢、性別、国籍、居住地域、職種などの属性を用いて、人全体の数よりも少ない数の部分集合が生成されてもよい。データ範囲を属性で制限してもなおデータ量が多いことがある。この場合、データ量をさらに減らす必要がある。しかし、データ量を減らしすぎると、要因を見逃す可能性が高くなる。要因を含む可能性が低いデータを除外することが望ましい。
外部要因に関するデータの一部を除外してもよい。例えば、影響を受ける可能性が極めて低いことがあらかじめ分かっている外部要因に関するデータを除外する。見守り対象の属性から影響を受けないと判定できる外部要因に関するデータ、見守り対象が行っていないスポーツに関するデータ、見守り対象が関心を持っておらず、新しいニュースに含まれておらず、過去に訪問したことがなく、一般に知られていない地域に関するデータのように、除外するデータを指定する条件が設定されてもよい。
また、入力データを分類することにより、データ量を減らすことができる。多次元ベクトルで構成されるデータは、疎(スパース)な分布となっていることが多い。一般に、次元数が増えるほど、分布は疎となる傾向がある。疎な分布となっている多次元ベクトルは、分類することでデータ量を大幅に減らすことができる。分類結果が時系列で並ぶときに、分類した結果の並びをさらに分類することでデータ量を大幅に削減することができる。
入力データの例について説明する。
対象が人である場合、入力データは、人自身に関する情報と、人の周囲の環境に関する情報と、を含む。人自身に関する情報はプライバシーに配慮して管理されることが望ましい。利用者からの要望、利用者との契約、装置の構成などに応じて、どのような情報を取得するかを決定することができる。
人自身に関する情報は、生体の状態に関する情報を含むことができる。生体の状態に関する情報は、ウェアラブルセンサ、例えば、スマートフォン、スマートウォッチ、生体情報センサなどを用いて取得することができる。スマートフォンに含まれる加速度センサまたはスマートフォン上で実行されるアプリケーションから生体の状態に関する情報を取得することができる。スマートウォッチは身体と接触しているので、スマートフォンから取得される情報よりも詳細な方法をスマートウォッチで取得することできる。生体情報センサは、例えば、心拍、酸素飽和度などを測定する。生体情報センサは、例えば、スマートフォンに接続され、あるいは、スマートウォッチに内蔵される。生体の状態に関する情報は、環境型センサを用いて取得することもできる。例えば、生体の状態に関する情報は、IoTを利用して取得することができる。具体的には、人の環境にある既存の装置を、人に関する情報を取得するセンサとして利用することができる。例えば、「人がビル1階の階段入口で検出され、その後に4階のフロアで検出された」という情報が得られた場合、この情報からその人の物理的な運動量を計算することができる。このような情報は、監視カメラと顔認識装置を組み合わせることで得ることができる。生体の状態に関する情報は、飲食物の情報を含むことができる。調理レシピおよび飲食店が公開する情報を利用することができる。飲食物の情報は、例えば、見守り対象である人によって入力されることができる。
人自身に関する情報は、人の行動履歴を含むことができる。行動履歴は、運動量の履歴および業務量の履歴を含むことができる。運動量に関する情報は、ウェアラブルセンサを用いて取得することができる。業務量に関する情報は、例えば、自動車の運転などの行動に関する情報を含む。業務量に関する情報は、PCまたはスマートフォンなどのIT端末で利用されるアプリケーションから取得することができる。例えば、自動車の運転に関する情報は、自動車またはスマートフォンなどから取得することができる。
人の周囲の環境に関する情報は、例えば、建物に付随する装置から取得することができる。例えば、個別住宅や集合住宅などに設置された各種装置を利用することができる。また、オフィスや学校などのビルに設置された各種装置を利用することができる。監視カメラからは、訪問者に関する情報を取得することができる。空調システムからは、人の環境に関する情報を取得することができる。フィットネスクラブに設置されたトレーニング装置からは、人の状態および行動に関する情報を取得することができる。ショッピングモールに設置された売買監理システムからは、購買行動に関する情報を取得することができる。アミューズメント施設に設置された機器からは、施設への来場に関する情報を取得することができる。病院に設置された機器からは、人の状態に関する情報を取得することができる。
人の周囲の環境に関する情報は、自動車または公共交通機関などの移動体に付随する装置から取得することができる。また、人は環境にある装置で様々な業務アプリまたは教育アプリを利用するので、業務アプリまたは教育アプリから業務または教育に関する情報を取得することができる。各アプリの利用履歴を抽出することで、人が業務または学習中に影響を受けたことに関する情報を取得することができる。また、人の周囲の環境に関する情報は、事業者からの情報を含むことができる。事業者からの情報は、例えば、各事業者が提供する事業で利用者が行った利用に関する情報である。また、人の周囲の環境に関する情報は、情報サービス提供者からの情報を含むことができる。情報サービス提供者からの情報は、例えば、各情報サービス提供者が提供する情報の内容および情報サービスの利用に関する情報である。また、人の周囲の環境に関する情報は、IoTサービスからの情報を含むことができる。IoTサービスからの情報は、例えば、IoT端末から得られる人に関する情報、サーバまたはクラウドシステムから得られる人に関する情報を含む。
対象が物(例えば機械)である場合、入力データは、対象である物から得られる情報と、その周囲の装置から得られる情報と、を含むことができる。対象である物およびその周囲の装置は、ネットワークに接続されることができる。
データを入力する方法について、統合型支援サービスを例に挙げて説明する。統合型支援サービスは、人の365日の活動を総合的に見守るサービスである。利用者は、使用しているPCまたはスマートフォンあるいは特定業務用端末などの端末装置の支援プログラムまたは支援コンテンツによって、支援サービスの提供を受ける。支援装置は、統合支援サービスを提供する。統合支援サービスは、支援装置の支援プログラムによって実行される。この支援プログラムは、利用者が使用する端末装置で実行される支援プログラムまたは支援コンテンツと連携して動作することができる。支援プログラムは、対象である人を支援するために、周囲の環境にある装置を利用する。これにより、支援プログラムは、人およびその周囲の環境に関する情報を取得することができる。対象を特定することで、その対象の状態および状況に関する情報を取得することが可能である。
要因推定を依頼する方法について説明する。例えば、利用者は、所定の結果が検出されたときに要因推定を行うようにあらかじめ依頼することができる。要因推定の結果は、例えば、スマートフォンまたはスマートウォッチなどの端末装置において振動および表示で通知する。また、利用者が任意のタイミングで要因推定を依頼してもよい。
結果である状態Bを特定する方法例について説明する。要因を推定する際には、例えば、利用者が2つの状態(事前状態Aおよび事後状態B)を指定する。利用者が事前状態を指定しない場合、対象の最初の状態が事前状態Aと決定されてもよい。利用者が現在の状態を状態Bとして指定することができるようにすれば、時刻などの状態を特定するための情報の入力を省略することができる。また、ウェアラブルセンサが、対象が特定の状態(例えば、対象に強いストレスがかかった状態)になったことを検出した場合に、その時刻における対象の状態を状態Bに決定してもよい。
要因推定システムの応用例について説明する。
まず、対象が人である場合の応用例について説明する。以下に説明する複数の応用例を組み合わせることで、情報の相互活用が可能となり、要因推定に関して統合したサービスを提供することができる。
第1の応用例は、人の状態を監視するサービスである。このサービスでは、次のように、人の運動、食事、仕事に関する状態および状況の情報を取得し、取得した情報に基づいて人が特定の状態に至る要因となった状況を推定することができる。
運動は、人の生活パターンに影響を与える。体質や生活パターンが似ている人は、同じような要因で同じような結果となることが多い。運動に関する情報は、例えば、運動量、活動量を含む。運動量および活動量は、活動量センサ、スマートウォッチ、スマートフォンなどを用いて取得することができる。カロリー摂取量および運動量に応じて体重が変化することが知られている。
食事の内容は人の状態に大きな影響を与える。食事内容に関する情報は、例えば、クレジットカードまたは電子マネーの決済記録から購入した弁当などの情報を抽出する方法を用いて取得することができる。また、人が、スマートフォンやPCなどの端末装置を用いて食事内容に関する情報を入力してもよい。また、食事内容に関連する情報は、食堂の支払端末から取得することができる。例えば、支払端末は、食事と食事内容とを互いに関連付けた対応表を保持し、入力された食事の情報で対応表を参照して食事内容に関する情報を取得する。
仕事に関する情報は、例えば、後に説明する業務支援アプリを用いて取得することができる。仕事に関する情報は、例えば、人が業務中に行った業務やその環境に関する情報を含む。
人の状態を監視するサービスがアドバイスを行う機能を備えることが望ましい。現在の状態となった要因を推定して通知することは、効果的なアドバイスとなる。一般に、運動量と体重の増減には高い相関関係があることが知られている。人は、1日前の運動量を正確に覚えていることができるが、1週間程度前の運動量を思い出すことはほとんどできない。体重の増減は、数か月程度の期間における運動量に影響されるので、多くの人は、運動量の履歴を把握していない。体重の増減の要因を推定して通知することで、人が自分の行動のなかから生活習慣の良い点および悪い点を把握することができるようになる。これによって、生活習慣の改善を図ることが可能になる。また、多くの人に関する情報を用いて学習を行うことで、現在の状態を続けたときの体重の変化を予測することが可能になる。このような情報をアドバイスとして通知することも効果的である。
以上のように、要因推定システムは人の状態を監視するサービスに応用することができる。ここで説明した手法は、以下の応用例にも適用することができる。
第2の応用例は、人の業務を支援するサービスである。人の状態は業務に影響を及ぼす。このサービスでは、人の業務に関する情報および状況の情報を取得し、取得した情報に基づいて人が特定の状態に至る要因となった状況を推定することができる。
過労については、社会問題となっており、企業にはその対応が求められている。一方で、企業が業務時間外の従業員の情報を取得することには制限がある。企業が外部に従業員の見守りを委託することで、過労の問題を回避することが可能となる。本実施形態に係る要因推定システムを用いることで、人の介在なしに対象(例えば従業員)の状態および状況を監視することが可能になる。
また、第2の応用例に係るサービスは、特定の状態を検出した場合に、業務効率を改善するための提案を行うことができる。一例では、このサービスは、朝の業務開始時に従業員について所定の異常を検出した場合、生活パターンの影響を推定し、推定結果に基づき生活パターンの改善を提案する。他の例では、このサービスは、午後の業務開始時点で従業員について所定の異常を検出した場合、その従業員の上司に通知を行う。通知を受けて、上司は、従業員に対し「何かありましたか?」、「一息ついてはいかがですか」などの声掛けをすることができる。さらなる例では、このサービスは、従業員の生体情報センサが示す状態情報ベクトルをもとに、過度のストレスを受けている状態を検出することができる。また他の例では、このサービスは、業務効率が上がっている期間の前における状態Aとその期間中における状態Bを特定し、状態Aから状態Bに変化した要因を、業務効率を上げる要因と推定することができる。
さらに、第2の応用例に係るサービスは、異変に関する情報を検出し、業務を行っている従業員への異変の影響を所定のロジックで推定することができる。異変としては、例えば、監視装置の故障、業務システムの障害、作業対象の異変、従業員の異変などがある。監視装置が故障した場合、記録デーが欠落することが記録される。業務システムに障害が発生した場合、業務システムから得られた障害の発生時刻および内容に基づいて影響度が判定され記録される。従業員が作業を行っている作業対象に取り付けたセンサから対象の異変に関する情報が取得される。この情報および作業対象と従業員の関係をもとに従業員への影響度が推定される。従業員の異変は業務効率に大きな影響を与える。従業員の異変をもたらした要因は記録しておくことが望ましい。従業員の異変としては、例えば、作業の中断、過大なアクティビティ、生体情報が通常と異なること、位置情報(例えば従業員が予定される位置とはことなる場所にいることが検出された)などがある。
第3の応用例は、自動車の運転を支援するサービスである。自動車に搭載されている制御装置だけでは、運転者が自動車に乗っていないときの状態および状況を把握することができない。そこで、支援装置(例えば図4に示した支援装置402)に格納されている支援コンテンツまたは支援アプリが自動車のテレマティクス端末にダウンロードされる。これにより、テレマティクス端末は、運転中の運転者を支援し、運転者の情報を車両制御装置に通知することができる。テレマティクス端末は、運転者の状態を示す情報を、自動車に搭載されたドライバモニタカメラまたは生体情報センサ、運転者に装着されたウェアラブル端末またはスマートウォッチ、スマートフォンなどから取得することができる。支援アプリは、運転者が自動車に乗る前に検出された状態および状況を把握することができる。支援アプリは、運転者が状態Aから状態Bに変化した要因を推定し、推定結果に基づき運転を支援することができる。
第4の応用例は、家や外出先(例えば、勤務先、学校、宿泊施設)における人の活動を支援するサービスである。人に影響を与える要因は、多くのシーンに存在する。例えば、温度、湿度、気圧、騒音、異臭などの家の環境要因は、人に大きな影響を与える。異常な低温または高温は特に影響が大きい。このような環境要因をセンサで検出して記録することで、環境要因の人に対する影響度を推定することができる。また、空調装置などから、環境要因の詳細な情報を取得することができるようにすれば、環境要因の影響度を詳細に把握することが可能になる。家に関する情報としては、例えば、セキュリティシステムに含まれる防犯センサから取得することができる。さらに、人は、家族(例えば、親、子供、配偶者)やペットに関する情報またはニュース情報などに関心があり、これらから影響を受ける。留守中のペットの状態について気がかりであることが多く、ペットの状態を人に通知することは、安心感につながる。また、ニュース配信サービスなどへの配信依頼情報を用いることで、人の関心事項を特定することができる。個人ごとに関心事項を判定する条件をあらかじめ設定することで、個人に与えるニュースの影響度を推定することが可能である。
以上に示したように、特定の人に影響を与える要因は、多くのシーンで存在する。従来の分野ごとのサービスでは、何が現在の状態に影響を与えているかが分からないことが多い。以上のように、システムを構成することで、要因の見落としまたは要因の誤判定を抑制することができる。
次に、対象が機械である場合の応用例について説明する。本実施形態に係る要因推定システムは、対象が機械である場合にも、対象が人である場合と同じように対応することができる。例えば、人が機械を操作する場合、機械にとってその人が環境の一部となる。
対象が自動車である場合、支援アプリは、対象が人である場合に説明したものと同様にして、自動車に大きな影響を与える運転者の情報を取得することができる。支援アプリは、自動車の制御装置から自動車の状態、走行履歴、走行中の環境に関する情報を取得することができる。また、支援アプリは、外部から、道路、天候、地震などに関する情報を取得することができる。要因推定システムは、これらの情報を用いて学習を行うことによって、要因を推定する能力を獲得することができる。
対象が加工装置である場合、加工装置に関する状況の情報は、その周囲にある装置から取得することができる。加工装置は、周囲にある装置およびネットワークを介して接続された装置の影響を受ける。これは、要因推定システムから見ると、人が環境の影響を受ける場合と同様である。従って、ある状態となった要因を推定する能力を学習によって獲得することが可能である。
以上のように、本実施形態に係る要因推定システムでは、状態分類学習装置が、対象の状態に関するデータ(状態情報ベクトル)を分類する学習を行うことで対象の状態を分類する能力を獲得し、獲得した能力を他の装置で実施するための状態分類学習結果を生成し、この状態分類学習結果が要因推定装置のニューラルネットワークに適用される。これにより、対象の状態を分類する能力を要因推定装置に獲得させることができる。さらに、状況分類学習装置が、対象の状況に関するデータ(状況情報ベクトル)を分類する学習を行うことで対象の状況を分類する能力を獲得し、獲得した能力を他の装置で実施するための状況分類学習結果を生成し、この状況分類学習結果が要因推定装置のニューラルネットワークに適用される。これにより、対象の状況を分類する能力を要因推定装置に獲得させることができる。要因推定装置は、対象の状態を分類することで、対象が状態Aになったことおよび状態Bになったことを検出し、対象の状況を分類することで、対象が事前状態Aから事後状態Bに変化するまでの期間における対象の状況を検出する。要因推定装置は、状態Aから状態Bに変化する期間における状況を示す状況変化パターンを含む状況分類履歴を取得し、状況分類履歴が検出された状況と一致する状況を示す状況変化パターンを含む場合に、検出された状況を要因と決定する。これにより、結果をもたらした要因を推定することが可能となる。
本発明は、上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合せにより種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。さらに、異なる実施形態に亘る構成要素を適宜組み合せてもよい。
また、上記の実施形態の一部又は全部は、以下の付記のようにも記載され得るが、以下には限られない。
(付記1)
ハードウェアプロセッサと、
前記ハードウェアプロセッサに接続されたメモリと、
を具備し、
前記ハードウェアプロセッサは、
対象についての情報を受け付け、
前記受け付けた情報の中から状態情報を抽出し、
前記対象のうちの第1の対象についての所定の状態を特定し、
前記抽出された状態情報であって前記所定の状態に対応する状態情報の入力を受けて、当該所定の状態を分類し、
前記受け付けた情報の中から状況情報を抽出し、
前記所定の状態に至るまでの状況を特定し、
前記抽出された状況情報であって前記特定された状況に対応する状況情報の入力を受けて、当該特定された状況を分類し、
前記所定の状態の分類結果と前記前記特定された状況の分類結果とに基づいて、前記所定の状態に至る要因となった状況を推定する
ように構成された、要因推定装置。
(付記2)
少なくとも1つのハードウェアプロセッサを用いて、対象についての情報を受け付けることと、
少なくとも1つのハードウェアプロセッサを用いて、前記受け付けた情報の中から状態情報を抽出することと、
少なくとも1つのハードウェアプロセッサを用いて、前記対象のうちの第1の対象についての所定の状態を特定することと、
少なくとも1つのハードウェアプロセッサを用いて、前記抽出された状態情報であって前記所定の状態に対応する状態情報の入力を受けて、当該所定の状態を分類することと、
少なくとも1つのハードウェアプロセッサを用いて、前記受け付けた情報の中から状況情報を抽出することと、
少なくとも1つのハードウェアプロセッサを用いて、前記所定の状態に至るまでの状況を特定することと、
少なくとも1つのハードウェアプロセッサを用いて、前記抽出された状況情報であって前記特定された状況に対応する状況情報の入力を受けて、当該特定された状況を分類することと、
少なくとも1つのハードウェアプロセッサを用いて、前記所定の状態の分類結果と前記特定された状況の分類結果とに基づいて、前記所定の状態に至る要因となった状況を推定することと、
を具備する要因推定方法。