以下、本技術を実施するための形態(以下、実施の形態という)について説明する。なお、説明は以下の順序で行う。
1.予測装置の処理の概要
2.第1の実施の形態(経路ログのデータベースに基づく制御を行う構成例)
3.第2の実施の形態(確率遷移モデルのデータベースに基づく制御を行う構成例)
4.第3の実施の形態(第1の実施の形態と第2の実施の形態を選択的に実行可能な構成例)
5.第4の実施の形態(センサ制御機能とデータ修正機能のいずれか一方のみを備える構成例)
<1.予測装置の処理の概要>
[予測装置の構成例]
図1は、本技術が適用された予測装置の構成例を示すブロック図である。
図1の予測装置1は、GPS (Global Positioning System )センサ等の位置センサから取得した位置情報を基に、ユーザの移動経路を予測し、目的地と、その目的地に到達するまでの経路や予測時間などを予測する装置である。この予測装置1は、それ単独の携帯型の装置として構成されたり、あるいは、携帯電話機、タブレット端末、等の携帯端末の一部の装置として構成される。
予測装置1は、位置センサ部11、バッファ12、過去履歴DB13、類似検索部14、適合判定部15、予測経路抽出部16、出発時刻予測部17、予測値算出部18、センサ制御部19、およびDB修正部20により構成される。
位置センサ部11は、自身の現在の位置を示す緯度経度のデータを、センサ制御部19の制御により決定された一定の時間間隔で順次取得する。位置センサ部11は、取得時刻(現在時刻)と、そのときの緯度、経度(のデータ)を、バッファ12に供給する。
バッファ12は、位置センサ部11から供給される、時刻、緯度、及び経度のデータを、所定時間分だけ、一時的に保持する。そして、位置センサ部11が時刻、緯度、及び経度のデータを取得する1回の動作を1ステップと呼ぶことにすると、バッファ12は、現在時刻から所定ステップ数前までの時刻、緯度、及び経度の時系列データ(以下、直近の移動履歴と称する。)を類似検索部14に供給する。
過去履歴DB13は、予測装置1が移動経路や目的地を予測するのに必要な検索用データを記憶する。検索用データは、過去の移動履歴そのもの、あるいはそれを必要に応じて修正したもの、または、過去の移動履歴に対応する学習モデルである。なお、過去履歴DB13に記憶される検索用データは、予測結果を利用するユーザ本人により生成されたものが望ましいが、他のユーザにより生成されたものでもよい。
また、過去履歴DB13は、過去の移動履歴において目的地とされたリストである目的地リストも記憶する。目的地リストは、例えば、ユーザにより事前に入力されたり、所定時間(例えば、1時間)以上所定範囲(100m)以内に滞在している場所等を検出することで作成される。
類似検索部14は、過去履歴DB13に記憶された検索用データのなかから、バッファ12から供給される直近の移動履歴と類似する過去の経路を検索し、検索結果を適合判定部15に供給する。
適合判定部15は、類似検索部14で検索された検索用データの類似の経路が、取得された直近の移動履歴と適合するか否かを判定する。換言すれば、適合判定部15は、取得された直近の移動履歴が、検索用データとして取得されている既知の経路であるか否かを、検索して得られた検索用データの類似の経路と、直近の移動履歴との適合度が所定の閾値以上であるか否かにより判定する。検索して得られた検索用データの類似の経路と、直近の移動履歴との適合度が所定の閾値以上である場合、適合判定部15は、直近の移動経路を既知の経路と判定する。一方、検索された検索用データの類似の経路と、直近の移動履歴との適合度が所定の閾値未満である場合、適合判定部15は、直近の移動経路を未知の経路と判定する。
適合判定部15は、既知または未知の判定結果を、センサ制御部19に供給する。また、適合判定部15は、既知の経路と判定した場合、直近の移動経路を、予測経路抽出部16およびDB修正部20に供給する。
予測経路抽出部16は、適合判定部15から供給される既知の直近の移動履歴に基づいて、過去履歴DB13の検索用データから予測経路を抽出する(ユーザの移動経路を予測する)。
また、予測経路抽出部16は、抽出した予測経路から到達可能な目的地を、目的地リストに基づいてリストアップする。そして、予測経路抽出部16は、抽出された目的地とそこに到達するための予測経路を予測値算出部18に供給し、予測経路を出発時刻予測部17に供給する。
出発時刻予測部17は、ユーザが現在移動中か、または、止まっているかに関わらず、現在の位置を離れる時刻である出発時刻を、絶対値または相対値のいずれかで予測する。即ち、出発時刻予測部17は、現在の位置から離れる出発時刻を絶対時刻として予測する。あるいは、出発時刻予測部17は、現在の位置から離れるまでの時間(出発時間)を相対時刻として予測する。絶対時刻または相対時刻のいずれを使用するかは、例えば、ユーザの選択を受け付けて決定するようにしてもよい。出発時刻予測部17は、予測結果である出発予測時刻をセンサ制御部19に供給する。
予測値算出部18は、予測経路抽出部16から供給される、既知の直近の移動履歴に基づいて得られた目的地と予測経路に基づいて、予測値として、目的地までの到達時間、経路、および到達確率を算出して出力する。予測値算出部18から出力された予測結果が、例えば、図示せぬディスプレイ等に表示される。また、予測値算出部18の後段において、予測結果を用いた携帯端末の制御などが行われる。
センサ制御部19には、適合判定部15から、既知または未知の判定結果が供給される。また、センサ制御部19には、出発時刻予測部17から、絶対時刻または相対時刻のいずれかで表された出発予測時刻が供給される。
センサ制御部19は、既知または未知の判定結果に応じて、位置センサ部11が位置データを取得するデータ取得間隔を制御する。具体的には、センサ制御部19は、既知の判定結果が供給された場合、データ取得間隔が短くなるように制御し、未知の判定結果が供給された場合、データ取得間隔が長くなるように制御する。
また、センサ制御部19は、出発時刻予測部17から供給される出発予測時刻に応じて、位置センサ部11のデータ取得間隔を制御することもできる。具体的には、センサ制御部19は、出発時刻まで余裕がある場合には、データ取得間隔が短くなるように制御し、出発時刻がすぐである場合、データ取得間隔が長くなるように制御する。出発時刻がすぐである場合には、ユーザが移動中である場合も含まれる。
DB修正部20には、既知の直近の移動履歴が適合判定部15から供給される。DB修正部20は、過去履歴DB13に記憶されている検索用データに基づいて、適合判定部15から供給された既知の直近の移動履歴を修正し、過去履歴DB13に供給する。
従って、図1では図示を省略しているが、予測経路抽出部16、予測値算出部18、DB修正部20などは、必要に応じて過去履歴DB13の検索用データを取得して処理を行う。
以上のように構成される予測装置1は、位置センサ部11で取得される直近の既知の移動履歴に基づいて、ユーザの、現在地からの移動経路、目的地、目的地に行くまでにかかる時間等を予測する予測処理を行う。
また、予測装置1は、位置センサ部11で取得される直近の移動履歴が既知かまたは未知かに基づいて、位置センサ部11のデータ取得間隔を制御(変更)するセンサ制御処理を行う。
さらに、予測装置1は、位置センサ部11で取得される既知の直近の移動履歴に基づいて、直近の移動履歴(のデータ)を修正するデータ修正処理を行う。
以下、予測処理、センサ制御処理、およびデータ修正処理のそれぞれについて、図2乃至図5のフローチャートを参照して説明する。
[予測処理のフローチャート]
図2は、図1の予測装置1が行う予測処理のフローチャートである。なお図2乃至図5においては、位置センサ部11のデータ取得およびバッファ12のバッファリングは常時行われているものとする。
初めに、ステップS1では、類似検索部14は、過去履歴DB13から、検索用データを取得する。
ステップS2において、類似検索部14は、バッファ12から、直近の移動履歴を取得する。
ステップS3において、類似検索部14は、取得した検索用データのなかから、直近の移動履歴と類似する経路を検索し、検索結果を適合判定部15に供給する。直近の移動履歴が検索用データのどの経路と類似するかの検索は、直近の移動履歴と検索用データの経路との適合度(類似度)を、全ての検索用データについて算出することにより行われる。
ステップS4において、適合判定部15は、直近の移動履歴と検索用データの経路との適合度が所定の閾値以上であるかを判定する。
ステップS4で、直近の移動履歴と検索用データの経路との適合度が所定の閾値未満であると判定された場合、予測処理は終了する。即ち、直近の移動履歴が未知の経路である場合には、予測ができないとして処理を終了する。
一方、ステップS4で、直近の移動履歴と検索用データの経路との適合度が所定の閾値以上であると判定された場合、処理はステップS5に進み、予測経路抽出部16は、過去履歴DB13の検索用データから、目的地と予測経路を抽出する。
そして、ステップS6において、予測値算出部18は、抽出された予測経路に基づいて、目的地までの到達時間、経路、及び到達確率を、予測値として算出して出力し、処理を終了する。
[第1のセンサ制御処理のフローチャート]
図3は、適合判定部15からの既知または未知の判定結果のみに基づいて、位置センサ部11のデータ取得間隔を制御する第1のセンサ制御処理のフローチャートである。
初めに、ステップS11において、類似検索部14は、過去履歴DB13から、検索用データを取得する。
ステップS12において、類似検索部14は、バッファ12から、直近の移動履歴を取得する。
ステップS13において、類似検索部14は、取得した検索用データのなかから、直近の移動履歴と類似する経路を検索し、検索結果を適合判定部15に供給する。直近の移動履歴が検索用データのどの経路と類似するかの検索は、直近の移動履歴と検索用データの経路との適合度(類似度)を、全ての検索用データについて算出することにより行われる。
ステップS14において、適合判定部15は、直近の移動履歴と検索用データの経路との適合度が所定の閾値以上であるかを判定する。
以上のステップS11乃至S14の処理は、図1のステップS1乃至S4の処理と同一であり、1つの処理を、予測処理とセンサ制御処理が共通に利用している。
ステップS14で、直近の移動履歴と検索用データの経路との適合度が所定の閾値未満であると判定された場合、即ち、直近の移動履歴が未知の経路である場合、処理はステップS15に進み、センサ制御部19は、データ取得間隔が短くなるように制御して、処理を終了する。
一方、ステップS14で、直近の移動履歴と検索用データの経路との適合度が所定の閾値以上であると判定された場合、即ち、直近の移動履歴が既知の経路である場合、処理はステップS16に進み、センサ制御部19は、データ取得間隔が長くなるように制御して、処理を終了する。
図3の処理は繰り返し実行される。
以上のように、第1のセンサ制御処理では、直近の移動履歴が既知であれば、既に学習している経路であるので、データ取得間隔が長く設定される。一方、直近の移動履歴が未知であれば、検索用データとして蓄積する必要があるので、精密なデータを取得するため、データ取得間隔が短く設定される。これにより、不要な時にはデータ取得間隔を長くすることができるので、少ない消費電力で、必要十分な移動履歴データを蓄積することができる。
[第2のセンサ制御処理のフローチャート]
図4は、既知または未知の判定結果と出発予測時刻に基づいて、位置センサ部11のデータ取得間隔を制御する第2のセンサ制御処理のフローチャートである。
図4のステップS21乃至S25は、図3のステップS11乃至S15とそれぞれ同様であるので、その説明は省略する。
ステップS24で、直近の移動履歴と検索用データの経路との適合度が所定の閾値以上であると判定された場合、処理はステップS26に進み、出発時刻予測部17は、現在の位置を離れる時刻である出発時刻を、絶対時刻または相対時刻のいずれかで予測する。出発時刻予測部17の予測結果である出発予測時刻は、センサ制御部19に供給される。
そして、ステップS27において、センサ制御部19は、出発時刻予測部17から供給された出発予測時刻が所定時間より後であるかを判定する。
ステップS27で、出発予測時刻が所定時間より後ではないと判定された場合、即ち、移動中のときのように、出発時刻がすぐである場合、処理はステップS28に進み、センサ制御部19は、データ取得間隔が短くなるように制御する。
一方、ステップS27で、出発予測時刻が所定時間より後であると判定された場合、即ち、出発時刻まで余裕がある場合、処理はステップS29に進み、センサ制御部19は、データ取得間隔が長くなるように制御する。
図4の処理は繰り返し実行される。
以上のように、第2のセンサ制御処理では、直近の移動経路が既知であっても、例えば、移動中である場合には、データ取得間隔が短く設定され、目的地に滞在していたり、電車待ちなど、現在地からしばらく動かない場合には、データ取得間隔が長く設定される。
これにより、不要な時にはデータ取得間隔を長くすることができるので、少ない消費電力で、必要十分な移動履歴データを蓄積することができる。
なお、上述した例では、データ取得間隔を、短い設定時間(例えば、1分)と、長い設定時間(例えば、5分)の二段階としたが、三段階以上に分けてもよい。
[データ修正処理のフローチャート]
図5は、図1の予測装置1が行うデータ修正処理のフローチャートである。
図5のステップS41乃至S44の処理は、図1のステップS1乃至S4、および図2のステップS11乃至S14の処理と同様であるので、その説明は省略する。即ち、ステップS41乃至S44の処理は、1つの処理を、予測処理、センサ制御処理、及びデータ修正処理が共通に利用している。
ステップS44で、直近の移動履歴と検索用データの経路との適合度が所定の閾値未満であると判定された場合、データ修正処理は終了する。即ち、直近の移動履歴が未知の経路である場合には、検索用データとしての蓄積がないため、修正ができないとして処理を終了する。
一方、ステップS44で、直近の移動履歴と検索用データの経路との適合度が所定の閾値以上であると判定された場合、処理はステップS45に進み、DB修正部20は、検索用データを用いて直近の移動履歴を修正する。そして、DB修正部20は、修正後の直近の移動履歴を過去履歴DB13に供給して、処理を終了する。
図5の処理は繰り返し実行される。
以上のように、データ修正処理では、検索用データに基づいて、直近の移動履歴を修正して、過去履歴DB13に供給することができるので、過去の移動履歴として蓄積するデータ(検索用データ)の精度を向上させることができる。
以上、図1乃至図5を参照して、図1の予測装置1の処理の概要について説明した。
図1の予測装置1は、検索用データを過去履歴DB13にどのように持たせるかによって、予測処理、センサ制御処理、およびデータ修正処理のそれぞれを、異なる方法で実行することができる。
1つは、取得された時刻、緯度、および経度の時系列データである経路ログを検索用データとして過去履歴DB13に記憶させ、その経路ログを用いて行う方法である。他の1つは、取得された時刻、緯度、および経度の時系列データを学習した学習モデルを検索用データとして過去履歴DB13に記憶させ、その学習モデルを用いて行う方法である。学習モデルには、例えば、確率遷移モデルが採用される。
以下では、経路ログを用いて行う場合を、予測装置1の第1の実施の形態として説明し、学習モデルを用いて行う場合を、予測装置1の第2の実施の形態として説明する。
<2.第1の実施の形態>
[第1の実施の形態の予測装置1の構成例]
図6は、第1の実施の形態における予測装置1の構成例を示すブロック図である。
図6の経路ログDB13A、類似経路検索部14A、適合判定部15A、予測経路ログ抽出部16A、出発時刻予測部17A、予測値算出部18A、および検索ログ修正部20Aが、図1の過去履歴DB13、類似検索部14、適合判定部15、予測経路抽出部16、出発時刻予測部17、予測値算出部18、およびDB修正部20に対応する。
経路ログDB13Aは、過去の移動履歴と、目的地リストを記憶する。
図7は、経路ログDB13Aに記憶される過去の移動履歴のデータ例を示している。図7に示されるように、取得された時刻と位置(経度、緯度)が、取得された時間順に記憶される。取得間隔は、センサ制御部19により制御された所定の時間間隔である。
なお、位置センサ部11が位置のデータを一定間隔に取得することができない場合もある。例えば、トンネルや地下にいる場合などには、人工衛星を捕捉することができず、取得間隔が長くなることもある。そのような場合には、例えば、線形補間により等間隔に補間されてから記憶される。過去の移動履歴には、取得時刻の古い順に、例えば、通し番号等が付されて記憶されている。
図8は、経路ログDB13Aに記憶される目的地リストの例を示している。
目的地リストは、目的地に対して順に付されたインデックスと、目的地の位置(経度、緯度)とから構成される。
図9は、経路ログDB13Aに記憶されている、過去の移動履歴と、目的地リストに記載されている目的地を地図上に示した図である。
図9において、丸(○)で囲まれた位置の中心が目的地であり、それらをつなぐように示される灰色の点が、過去の移動履歴をプロットしたものである。
図6に戻り、類似経路検索部14Aは、経路ログDB13Aの過去の移動履歴をスキャンして、バッファ12から供給される直近の移動履歴と、過去の移動履歴の各箇所(位置)との類似度を算出する。
類似経路検索部14Aにおいて、過去の移動履歴のi番目の箇所と、直近の移動履歴との類似度D(i)は、次式(1)で計算される。
式(1)のxpastは、過去の移動履歴を表し、xcurrentは、直近の移動履歴を表す。右下の添え字は、過去の移動履歴または直近の移動履歴の通し番号を表す。また、式(1)のDistance(x,y)は、二つの箇所xとyとの距離を求める関数であり、ユークリッド距離、若しくは、市街地距離(直交方向の差ベクトルの成分の和)、または、それらの二乗などとすることができる。Σは、Kステップ分についての和を表す。
従って、式(1)の類似度D(i)は、バッファ12から供給される直近の移動履歴がKステップ分の位置データであり、Kステップ分の直近の移動履歴と、過去の移動履歴のなかのi番目から過去Kステップ分の移動履歴との、対応するステップ間の距離(総和)に相当する。
なお、式(1)でマイナスを乗じているのは、類似するほど、類似度D(i)が大きい値となるようにするためである。
式(1)の類似度D(i)は、Kステップ分についての和を、さらにステップ数Kで除算して、距離の平均としてもよい。
なお、類似度D(i)の算出方法は、これに限定されるものではない。例えば、もっと簡便に、直近の移動履歴の中から、直近の箇所と、所定時間前のもう一箇所を選択し、過去の移動履歴の中から、選択した直近の二箇所に近く、また、所定時間程度の間隔にある二箇所を検出して、検出された二箇所と直近の二箇所の対応する箇所どうしの距離を利用するものでもよい。
類似経路検索部14Aは、式(1)の類似度D(i)を適合度として求め、適合判定部15Aに供給する。
適合判定部15Aは、類似経路検索部14Aにより求められた、過去の移動履歴の各箇所と直近の移動履歴の適合度が、所定の閾値以上であるかを判定し、取得された直近の移動履歴と適合する過去の移動履歴があるかを判定する。
予測経路ログ抽出部16Aは、所定の閾値以上であるとして検出された過去の移動履歴の箇所に対して、経路ログDB13Aの目的地リストのいずれかに至るまでの移動履歴を、予測経路として抽出する。所定の閾値以上であるとして検出された過去の移動履歴の箇所は、複数検出されることがある。
予測経路ログ抽出部16Aは、抽出した予測経路から到達可能な目的地を、経路ログDB13Aの目的地リストに基づいて、目的地ごとにリストアップする。
予測値算出部18Aは、リストアップされた目的地ごとに、目的地への経路リストおよび代表経路、到達確率、並びに所要時間を算出する。
目的地への代表経路には、抽出された目的地への経路リストのうち、例えば、所要時間の最も短いものが採用される。その他、抽出された複数の予測経路の平均所要時間に最も近い予測経路を、代表経路としてもよい。
目的地の到達確率は、抽出された予測経路の全数を分母として、その目的地へ到達できる予測経路の本数を分子として算出することができる。
目的地の所要時間は、その目的地への予測経路それぞれの所要時間の平均値とすることができる。なお、目的地の所要時間の算出には、明らかな異常値の予測経路については除外した平均値としてもよい。
図10は、予測値算出部18Aにより得られた各目的地と、それぞれの目的地への到達確率と所要時間を地図上に示した例である。
図6に戻り、出発時刻予測部17Aは、予測経路ログ抽出部16Aにより抽出された、適合度が所定の閾値以上の箇所を起点とした1以上の予測経路から、絶対または相対の出発時刻を算出し、センサ制御部19に供給する。
絶対の出発時刻を求める場合には、出発時刻予測部17Aは、起点を中心とする所定の範囲(例えば、半径100m)を設定範囲として、初めて設定範囲から外にでるときの過去の時刻の平均値を算出し、絶対の出発時刻とする。
相対の出発時刻を求める場合には、出発時刻予測部17Aは、起点を中心とする所定の範囲(例えば、半径100m)を設定範囲として、設定範囲内にどれくらいのステップ数(時間)だけ滞在していたかを算出し、その平均値を相対の出発時刻(予測滞在時間)とする。
絶対時刻は、例えば、オフィスへの出勤、退勤など習慣があり、行動の時間帯に規則性がある場合の予測に適している。一方、相対時刻は、休日の外出(買い物や散髪など)など、行動の時間帯に規則性がない場合の予測に適している。
検索ログ修正部20Aは、所定の閾値以上であるとして検出された過去の移動履歴を用いて、直近の移動履歴を修正し、修正後の直近の移動履歴を経路ログDB13Aに供給する。
図11を参照して、検索ログ修正部20Aによる直近の移動履歴の修正について説明する。
検索ログ修正部20Aは、所定の閾値以上であるとして検出された過去の移動履歴の箇所を起点とする、直近の移動履歴と同ステップ数(Kステップ)の過去の移動履歴を、経路ログDB13A内で検索し、検索データとして切り出す。
そして、検索ログ修正部20Aは、切り出された1以上の検索データに対して、ステップごとの平均値を算出し、理想系列を生成する。さらに、検索ログ修正部20Aは、理想系列と直近の移動履歴の平均を算出し、修正後の直近の移動履歴を生成する。
図11において、直近の移動履歴の黒丸(●)が最新の位置データ(箇所)であり、検索データの黒三角(▲)が、最新の位置データに対応する過去の移動履歴の箇所(起点)である。同様に、理想系列の白三角(△)と、修正後の移動履歴の白丸(○)も、直近の移動履歴の最新の位置データに対応する箇所である。
なお、この例では、起点からのステップ数を、類似度を求める場合のステップ数と同一としたが、類似度を求める場合と異なるステップ数としてもよい。
また、上述した例では、修正後の直近の移動履歴を単純平均により求めたが、理想系列と直近の移動履歴とで、理想系列に対する重みを重く設定した重み付け平均により求めてもよい。同様に、理想系列を求める場合も、より過去の移動履歴については重みを小さく設定するような重み付き平均により求めてもよい。
この修正処理により、直近の移動履歴を、自動的に統計的に処理された位置に修正して、経路ログDB13Aに蓄積させることができる。
[予測処理のフローチャート]
図12のフローチャートを参照して、第1の実施の形態における予測処理について説明する。
初めに、ステップS61において、類似経路検索部14Aは、過去の移動履歴と目的地リストを経路ログDB13Aから取得する。
ステップS62において、類似経路検索部14Aは、バッファ12から、直近の移動履歴を取得する。
ステップS63において、類似経路検索部14Aは、過去の移動履歴をスキャンして、過去の移動履歴の各箇所(位置)について、直近の移動履歴との適合度を算出する。ここで、適合度には、例えば、式(1)の類似度D(i)が採用される。
ステップS64において、適合判定部15Aは、類似経路検索部14Aにより求められた適合度に基づいて、所定の閾値以上の適合度を有する箇所が1以上あるかを判定する。
ステップS64で、所定の閾値以上の適合度を有する箇所が1つもないと判定された場合、予測処理は終了する。一方、ステップS64で、所定の閾値以上の適合度を有する箇所が1以上あると判定された場合、処理はステップS65に進む。
ステップS65において、予測経路ログ抽出部16Aは、所定の閾値以上の適合度を有する箇所を選択する。
そして、ステップS66において、予測経路ログ抽出部16Aは、選択した箇所(選択箇所)それぞれについて、選択箇所からいずれかの目的地に至るまでの過去の移動履歴を、予測経路として抽出する。
ステップS67において、予測経路ログ抽出部16Aは、抽出した予測経路から到達可能な目的地を、経路ログDB13Aの目的地リストに基づいて、目的地ごとにリストアップする。
そして、ステップS68において、予測値算出部18Aは、リストアップされた目的地ごとに、目的地への経路リストおよび代表経路を算出する。代表経路には、例えば、目的地への複数の予測経路のうち、所要時間の最も短いものが採用される。
ステップS69において、予測値算出部18Aは、各目的地への到達確率を算出し、ステップS70において、各目的地への所要時間を算出して出力し、処理を終了する。
[絶対の出発予測時刻を用いた第2のセンサ制御処理のフローチャート]
次に、図13のフローチャートを参照して、第1の実施の形態における、絶対の出発予測時刻を用いた第2のセンサ制御処理について説明する。
図13のステップS81乃至S84は、図12のステップS61乃至S64と同様であるので、その説明は省略する。
ステップS84で、所定の閾値以上の適合度を有する箇所が1つもないと判定された場合、処理はステップS85に進み、センサ制御部19は、位置センサ部11を、データ取得間隔が短くなるように制御して、処理を終了する。
一方、ステップS84で、所定の閾値以上の適合度を有する箇所が1以上あると判定された場合、処理はステップS86に進み、予測経路ログ抽出部16Aは、所定の閾値以上の適合度を有する箇所を選択する。
ステップS87において、出発時刻予測部17Aは、適合度が所定の閾値以上の選択箇所から、最初に設定範囲外に出るときの過去の時刻の平均値を算出し、絶対の出発時刻とする。算出された絶対の出発時刻は、センサ制御部19に供給される。
ステップS88において、センサ制御部19は、出発時刻予測部17Aから供給された絶対の出発時刻と、現在時刻との差分を算出する。
そして、ステップS89において、センサ制御部19は、算出された差分が所定の閾値(以下、出発時刻閾値という。)より大であるかを判定する。
ステップS89で、算出された差分が出発時刻閾値以下であると判定された場合、処理はステップS90に進み、センサ制御部19は、データ取得間隔が短くなるように制御して、処理を終了する。
一方、ステップS89で、算出された差分が出発時刻閾値より大であると判定された場合、処理はステップS91に進み、センサ制御部19は、データ取得間隔が長くなるように制御して、処理を終了する。
第1の実施の形態における第1のセンサ制御処理は、上述したステップS86乃至S90を省略した処理となる。
[相対の出発予測時刻を用いた第2のセンサ制御処理のフローチャート]
図14のフローチャートを参照して、第1の実施の形態における、相対の出発予測時刻を用いた第2のセンサ制御処理について説明する。
図14の相対の出発予測時刻を用いた第2のセンサ制御処理は、図13の絶対の出発予測時刻を用いた第2のセンサ制御処理と比較すると、図13のステップS87乃至S89に対応するステップS107およびS108が異なるのみである。従って、図14では、ステップS107およびS108の処理のみ説明し、それ以外の説明は省略する。
ステップS107において、出発時刻予測部17Aは、選択箇所を中心とする設定範囲内を離れるまでの時間(ステップ数)の平均値を予測滞在時間として算出する。
ステップS108において、出発時刻予測部17Aは、算出された予測滞在時間が所定の閾値(以下、滞在時間閾値という。)より大であるかを判定する。
ステップS108で、算出された予測滞在時間が滞在時間閾値以下であると判定された場合、処理はステップS109に進む。
一方、ステップS108で、算出された予測滞在時間が滞在時間閾値より大であると判定された場合、処理はステップS110に進む。
ステップS109またはS110において、所定のデータ取得間隔がセンサ制御部19に設定されて、処理は終了する。
以上のように、絶対の出発予測時刻を用いた第2のセンサ制御処理、または、相対の出発予測時刻を用いた第2のセンサ制御処理は行われるが、両者の処理結果を組み合わせた結果に基づいて、最終的にデータ取得間隔を決定するようにしてもよい。
[データ修正処理のフローチャート]
次に、図15のフローチャートを参照して、第1の実施の形態における、データ修正処理について説明する。
図15のステップS121乃至S125は、図12のステップS61乃至S65と同様であるので、その説明は省略する。
ステップS126において、検索ログ修正部20Aは、選択箇所を起点とする数ステップ(Kステップ)の過去の移動履歴を、経路ログDB13A内で検索し、検索データとして切り出す。これにより、1以上の検索データが切り出される。
ステップS127において、検索ログ修正部20Aは、切り出した1以上の検索データに対して、ステップごとの平均値を算出し、理想系列を生成する。
ステップS128において、検索ログ修正部20Aは、理想系列と直近の移動履歴の平均を算出することで、修正後の直近の移動履歴を生成して、処理を終了する。
以上のように、予測装置1の第1の実施の形態では、過去履歴DB13に記憶されている経路ログを用いて、予測処理、センサ制御処理、およびデータ修正処理を行うことができる。
<3.第2の実施の形態>
[第2の実施の形態の予測装置1の構成例]
図16は、第2の実施の形態における予測装置1の構成例を示すブロック図である。
図16の確率遷移モデルDB13B、類似ノード検索部14B、適合判定部15B、予測ノード探索部16B、出発時刻予測部17B、予測値算出部18B、およびモデル用データ修正部20Bが、図1の過去履歴DB13、類似検索部14、適合判定部15、予測経路抽出部16、出発時刻予測部17、予測値算出部18、およびDB修正部20に対応する。
確率遷移モデルDB13Bは、過去の移動履歴を学習モデルとしての確率遷移モデルにより学習した結果を記憶する。換言すれば、確率遷移モデルDB13Bには、過去の移動履歴を学習モデルとしての確率遷移モデルで学習して得られたパラメータが検索用データとして記憶される。
また、確率遷移モデルDB13Bには、モデル用データ修正部20Bから、新たな移動履歴が供給されるので、確率遷移モデルDB13Bは、所定のタイミングで(例えば、一日おき、一週間おきなど)新たな移動履歴を用いて確率遷移モデルのパラメータを更新し、記憶する。
さらに、確率遷移モデルDB13Bは、第1の実施の形態における経路ログDB13Aと同様に、目的地リストも記憶する。
図17は、過去の移動履歴を学習するための確率遷移モデルの概念図である。
図17に示される確率遷移モデルは、状態数が3(N=3)の隠れマルコフモデル(以下、HMMという。)を示している。HMMは、複数の離散化された状態ノードsiで構成される。さらに詳しく言えば、HMMは、複数の離散化された状態ノードsiについての、正規分布を持つ確率変数などで表される状態を決めるパラメータと、状態遷移を決めるパラメータで表現される。以下では、状態を決めるパラメータと状態遷移を決めるパラメータの両者を合わせて、HMMのパラメータともいい、状態ノードは、単に状態ともいう。
状態を決めるパラメータは、状態ノードsiの観測モデルであり、状態ノードsiの中心値(平均値)μiと分散値σi 2で構成される。状態遷移を決めるパラメータは、状態ノードsiの内部モデルであり、状態ノードsiから状態ノードsjへの状態遷移確率aijで構成される。
図18は、学習モデルとしてのHMMに過去の移動履歴を学習させた場合の、HMMの各状態ノードの観測モデルと内部モデルの例を示している。
内部モデルとしての状態遷移確率aijには、自分の状態ノードsiへ遷移する自己遷移確率も存在する。観測モデルとしての状態ノードsiの中心値μiと分散値σi 2は、時刻、経度、及び緯度のそれぞれについて求められる。なお、学習初期の各状態ノードsiには、初期状態を表す初期値が適宜設定される。
図19は、図9に示した過去の移動履歴と目的地を確率遷移モデルとしてのHMMに学習させたときの学習結果を地図上に示した図である。図19において、経路上をつなぐように示される略楕円が、学習された各状態ノードを示している。
HMMのパラメータを推定する方法としては、Baum-Welchの再尤推定法が広く利用されている。Baum-Welchの再尤推定法は、EMアルゴリズム(EM(Expectation-Maximization) algorithm)に基づくパラメータの推定方法である。
Baum-Welchの再尤推定法によれば、観測される時系列データx=x1,x2,・・・,xTに基づき、その時系列データが観測(生起)される確率である生起確率から求まる尤度を最大化するように、HMMのパラメータの推定が行われる。ここで、xtは、時刻tに観測される信号(サンプル値)を表し、Tは、時系列データの長さ(サンプル数)を表す。
Baum-Welchの再尤推定法については、例えば、“パターン認識と学習のアルゴリズム”,上坂吉則・尾関和彦著,文一総合出版,P.121に記載されている。
図16に戻り、類似ノード検索部14Bは、バッファ12から供給される直近の移動履歴に対応する確率遷移モデルの状態ノードを検索する。換言すれば、類似ノード検索部14Bは、直近の移動履歴の現在地(最新の箇所)に対応する状態ノードの状態確率が最大となる状態ノードを探索(選択)する。
適合判定部15Bは、直近の移動履歴の現在地に対応する状態ノードの適合度が、所定の閾値以上であるかを判定する。確率遷移モデルを用いた場合の適合度の算出方法については後述する。直近の移動履歴の現在地に対応する状態ノードの適合度が所定の閾値以上である場合、既知の判定結果が、センサ制御部19、予測ノード探索部16B、およびモデル用データ修正部20Bに供給される。また、探索して得られた状態ノードが、予測ノード探索部16Bとモデル用データ修正部20Bに供給される。一方、直近の移動履歴(の現在地)に対応する状態ノードの適合度が所定の閾値未満である場合、未知の判定結果が、センサ制御部19に供給される。
予測ノード探索部16Bは、適合判定部15B供給される、探索して得られた現在地に対応する状態ノードから、遷移可能な目的地の状態ノード(目的地ノード)をツリー探索することにより、目的地を探索する。そして、予測ノード探索部16Bは、探索された目的地を、目的地ごとにリストアップする。
予測値算出部18Bは、リストアップされた目的地ごとに、目的地への経路リストおよび代表経路、到達確率、並びに、所要時間を算出する。
出発時刻予測部17Bは、探索して得られた現在地に対応する状態ノードに基づいて、絶対または相対の出発時刻を算出し、センサ制御部19に供給する。
絶対の出発時刻は、探索して得られた現在地に対応する状態ノードの自己遷移以外の1以上の遷移先の時刻の中心値の平均により求めることができる。あるいは、探索して得られた現在地に対応する状態ノードの自己遷移以外の遷移先の時刻のなかで、最も現在時刻に近い将来の時刻を中心値としてもつものを、絶対の出発時刻として選択するようにしてもよい。
また、相対の出発時刻(予測滞在時間)は、探索して得られた現在地に対応する状態ノードの自己遷移確率を用いた次式(2)に、単位ステップの時間を乗算した値により求めることができる。
式(2)において、t
stayが予測滞在時間を表し、a
ssは、探索して得られた状態ノードを表す。なお、式(2)は、自己遷移確率が1であるとき発散するので、予測滞在時間には上限値を設定しておく方がよい。
モデル用データ修正部20Bは、直近の移動履歴に対応する状態ノードの状態ノード系列を用いて、直近の移動履歴を修正し、修正後の直近の移動履歴を確率遷移モデルDB13Bに供給する。
図20を参照して、モデル用データ修正部20Bによる直近の移動履歴の修正について説明する。
モデル用データ修正部20Bは、直近の移動履歴に対応する状態ノードの状態ノード系列(対応ノード系列)を生成し、生成された対応ノード系列の中心値の系列を、理想系列として生成する。そして、モデル用データ修正部20Bは、理想系列と直近の移動履歴の平均を算出し、修正後の直近の移動履歴を生成する。
図21は、モデル用データ修正部20Bによる、その他の修正方法を示している。
図21に示される修正方法が、図20に示した修正方法と異なる点は、直近の移動履歴の各ステップに対して、確率遷移モデルを構成する各状態ノードの確率を用いる点である。即ち、図21では、直近の移動履歴の各ステップに対する各状態ノードの確率δj(t)が確率テーブルとして示されている。直近の移動履歴の各ステップに対する各状態ノードの確率δj(t)の算出方法は、後述する式(5)で求められる。
モデル用データ修正部20Bは、直近の移動履歴に対応する理想系列を、確率テーブルを用いた次式(3)で算出する。
式(3)は、直近の移動履歴の各ステップについて、各状態ノードの緯度および経度の中心値μjを、状態ノードの確率δj(t)で重み付けして加算した値を、直近の移動履歴の各ステップに対応する理想系列の位置<xt>とすることを表す。ここで、tは、直近の移動履歴の各ステップの取得時刻に対応するステップ数(通し番号)である。
[学習装置の構成例]
次に、確率遷移モデルDB13Bに記憶される確率遷移モデルを学習する学習装置について説明する。
図22は、確率遷移モデルDB13Bに記憶される確率遷移モデルのパラメータを求める学習装置60の構成例を示している。
学習装置60は、ログ取得部61、前処理部62、状態ノード割り当て部63、モデル再構成部64、目的地リスト修正部65、およびモデル記憶部66により構成される。
ログ取得部61は、学習データとしての過去の移動履歴を取得し、前処理部62に供給する。
前処理部62は、学習データの一時的なデータの欠落部分に対し、線形補間等の補間処理を行うことで補間して、処理後の過去の移動履歴を状態ノード割り当て部63に供給する。
状態ノード割り当て部63は、前処理部62から供給された過去の移動履歴に対し、確率遷移モデルの状態ノードを割り当てる。より具体的には、状態ノード割り当て部63は、学習データである過去の移動履歴の各位置データに対して既存の確率遷移モデルとの適合度を算出し、適合度が所定の閾値以上であるか否かを判定する。そして、適合度が所定の閾値以上である場合、状態ノード割り当て部63は、その位置データに対しては既存の状態ノードを割り当てる。一方、適合度が所定の閾値未満である場合、状態ノード割り当て部63は、その位置データに対しては新規の状態ノードを割り当てる。そして、過去の移動履歴に対応して割り当てられた、状態ノードのノード番号の系列データ(対応ノード系列)が、モデル再構成部64に供給される。
モデル再構成部64は、状態ノード割り当て部63からの対応ノード系列に基づいて、確率遷移モデルを再構成するモデル再構成処理を行う。即ち、モデル再構成部64は、現在の確率遷移モデルの状態ノードのパラメータの修正、および、新たな状態ノードのパラメータの追加を行う。
目的地リスト修正部65は、過去の移動履歴に新たな目的地が追加された場合、モデル記憶部66に記憶されている目的地リストを修正する。
モデル記憶部66は、学習モデルとしての確率遷移モデルのパラメータを記憶する。また、モデル記憶部66は、目的地リストも記憶する。
図23は、図22の状態ノード割り当て部63の詳細構成例を示している。
状態ノード割り当て部63は、モデル取得部71、対応ノード系列推定部72、適合度閾値判定部73、既存ノード割り当て部74、および新規ノード割り当て部75により構成される。
モデル取得部71は、モデル記憶部66から、確率遷移モデルのパラメータを取得して、対応ノード系列推定部72に供給する。
対応ノード系列推定部72は、学習データである過去の移動履歴に対して、既存の確率遷移モデルを用いて、対応する状態ノード系列である対応ノード系列を生成(推定)する。
適合度閾値判定部73は、対応ノード系列推定部72で推定された対応ノード系列を構成する状態ノードそれぞれについて、適合度が所定の閾値以上であるか否かを判定する。換言すれば、適合度閾値判定部73は、学習データとして供給された過去の移動履歴が既知の経路であるか、または、未知の経路であるかを判定する。そして、適合度閾値判定部73は、適合度が所定の閾値以上である(既知の経路である)と判定された学習データ(過去の移動履歴)を、既存ノード割り当て部74に供給し、適合度が所定の閾値未満である(未知の経路である)と判定された学習データを、新規ノード割り当て部75に供給する。
既存ノード割り当て部74は、適合度閾値判定部73から供給された既知経路の学習データに対して、既存の確率遷移モデルの状態ノードを割り当てる既存ノード割り当て処理を行う。
新規ノード割り当て部75は、適合度閾値判定部73から供給された未知経路の学習データに対し、新規の確率遷移モデルの状態ノードを割り当てる新規ノード割り当て処理を行う。
既存ノード割り当て処理および新規ノード割り当て処理によって割り当てられた状態ノードのノード系列が、図22のモデル再構成部64に供給される。
[学習処理のフローチャート]
図24は、学習装置60による学習処理のフローチャートを示している。
初めに、ステップS161において、ログ取得部61は、学習データとしての過去の移動履歴を取得し、前処理部62に供給する。
ステップS162において、前処理部62は、学習データの一時的なデータの欠落部分に対し、線形補間等の補間処理を行うことで補間して、処理後の過去の移動履歴を状態ノード割り当て部63に供給する。
ステップS163において、状態ノード割り当て部63のモデル取得部71は、モデル記憶部66から、確率遷移モデルのパラメータを取得して、対応ノード系列推定部72に供給する。
ステップS164において、状態ノード割り当て部63の対応ノード系列推定部72は、学習データである過去の移動履歴の各位置データに対して既存の確率遷移モデルとの適合度を算出する適合度算出処理を行う。
ステップS165において、状態ノード割り当て部63の適合度閾値判定部73は、学習データを構成する各位置データを識別するステップ番号iに1をセットして、ステップS166に進み、iステップ目の適合度が所定の閾値以上であるかを判定する。
ステップS166で、iステップ目の適合度が所定の閾値以上であると判定された場合、処理はステップS167に進み、適合度閾値判定部73は、学習データのステップ番号iの位置データは既存ノードに対応すると判定する。
一方、ステップS166で、iステップ目の適合度が所定の閾値未満であると判定された場合、処理はステップS168に進み、適合度閾値判定部73は、学習データのステップ番号iの位置データは新規ノードに対応すると判定する。
ステップS169において、適合度閾値判定部73は、全ての学習データについて既存ノードかまたは新規ノードを判定したかを判定する。
ステップS169で、全ての学習データについて判定していないと判定された場合、処理はステップS170に進み、適合度閾値判定部73は、ステップ番号を1だけインクリメントして、処理はステップS166に戻る。
一方、ステップS169で、全ての学習データについて判定したと判定された場合、処理はステップS171に進み、状態ノード割り当て部63の既存ノード割り当て部74は、既知経路の学習データに対して、既存の確率遷移モデルの状態ノードを割り当てる既存ノード割り当て処理を行う。
次に、ステップS172において、状態ノード割り当て部63の新規ノード割り当て部75は、未知経路の学習データに対し、新規の確率遷移モデルの状態ノードを割り当てる新規ノード割り当て処理を行う。
ステップS171とS172の処理は並行して実行することができる。
そして、ステップS173において、モデル再構成部64は、状態ノード割り当て部63からの対応ノード系列に基づいて、確率遷移モデルを再構成するモデル再構成処理を行う。
ステップS174において、目的地リスト修正部65は、過去の移動履歴に新たな目的地が追加された場合、追加された目的地をモデル記憶部66に記憶されている目的地リストに追加して、処理を終了する。なお、追加の目的地がない場合には、ステップS174の処理は省略される。
[適合度算出処理のフロー]
図25は、図24のステップS164で実行される適合度算出処理のフローチャートである。
この処理では、初めに、ステップS181において、状態ノード割り当て部63は、学習データを構成する各位置データを識別するステップ番号iに1をセットする。
そして、ステップS182において、状態ノード割り当て部63は、次式(4)により、ステップiにおける各状態の観測尤度を算出する。
式(4)の観測尤度は、中心値μ
iと分散値σ
i 2の正規分布を持つ状態ノードs
iから、データx
iが観測される尤度を表す。なお、Π{x
d}は、d=1,2,3としたときのx
dを乗算することを表し、d=1,2,3は、それぞれ、過去の移動経路の時刻、緯度、および経度を表す。
ステップS183において、状態ノード割り当て部63は、次式(5)により、ステップiにおける各状態の状態確率を算出する。
式(5)において、δ
i(1)は、先頭ステップで状態s
iである確率を表す。また、δ
i(t)は、ステップtで、状態s
jである確率を表す。式(5)のmax[a
ijδ
i(t-1)]は、状態s
jに至る状態遷移のうち、ステップt-1での状態確率と、その場所からの遷移確率の積が最大となるものを選択することを意味している。なお、式(5)におけるZ
tは規格化パラメータであり、全ての状態s
iでのδ
i(t)の和である。
式(5)によれば、状態ノード間の遷移で構成されるトポロジーを反映した状態履歴の推定を行うことができる。
ステップS184において、状態ノード割り当て部63は、次式(6)により、ステップiにおける観測尤度の期待値を算出し、適合度とする。
式(6)は、時刻tでの状態s
jの尤度P(x
t|μ
j,s
j)について、状態確率δ
j(t)を用いて期待値を算出したものである。
ステップS185において、状態ノード割り当て部63は、ステップiが最終ステップであるかを判定する。
ステップS185で、ステップiが最終ステップではないと判定された場合、処理はステップS186に進み、状態ノード割り当て部63は、ステップ番号iを1だけインクリメントして、処理はステップS182に戻る。
一方、ステップS185で、ステップiが最終ステップであると判定された場合、処理は図24に戻る。
[既存ノード割り当て処理のフロー]
次に、図26のフローチャートを参照して、図24のステップS171で実行される既存ノード割り当て処理について説明する。
図26のステップS201乃至S203は、上述した図25のステップS181乃至S183と同様であるので、その説明は省略する。ただし、既存ノード割り当て処理でのステップ番号は、既存ノードと判定された学習データに対するステップ番号となる。
ステップS204において、状態ノード割り当て部63は、ステップiにおける各状態に至る親ノードを記憶する。より具体的には、状態ノード割り当て部63は、次式(7)で計算される状態ノードの番号を求め、記憶する。
式(7)のΨ
j(t)は、ステップt-1での状態確率と、その場所からの遷移確率の積が最大となる状態ノードのノード番号となる。argmax
i[x]は、添え字iを、1からNまでの範囲の整数に変えて得られるxを最大にする添え字iを表す。
ステップS205において、状態ノード割り当て部63は、ステップiが最終ステップであるかを判定する。
ステップS205で、ステップiが最終ステップではないと判定された場合、処理はステップS206に進み、状態ノード割り当て部63は、ステップ番号iを1だけインクリメントして、処理はステップS202に戻る。
一方、ステップS205で、ステップiが最終ステップであると判定された場合、処理はステップS207に進み、状態ノード割り当て部63は、最終ステップで状態確率を最大にする状態ノードを選択する。
より具体的には、ステップS207の処理は、最終ステップを例えば、t=Tとすると、S(T)=argmaxi[δi(T)]とする処理であり、最終的に最も状態確率の高い状態ノードを、既知経路の学習データの最終ステップに対応させる処理である。
ステップS208において、状態ノード割り当て部63は、ステップS207で選択された状態ノードから、ステップS204で記憶しておいた親ノードを逆向きに探索する。
ステップS208の処理は、S(t-1)=Ψ(S(t))とする処理である。これにより、移動履歴のtステップ目に対応する状態ノードS(t)を順次求めることができ、最終的に、既知の移動履歴に対応する状態ノード系列が得られる。
ステップS209において、状態ノード割り当て部63は、ステップS208で得られた状態ノード系列を、学習データである既知の移動履歴と対応付けて内部に記憶し、図24に戻る。
[新規ノード割り当て処理のフロー]
次に、図27のフローチャートを参照して、図24のステップS172で実行される新規ノード割り当て処理について説明する。
初めに、ステップS221において、状態ノード割り当て部63は、学習データである未知の移動履歴をHMM(確率遷移モデル)で学習する。ステップS221では、未知の移動履歴の1ステップごとに新しい状態ノードが割り当てられ、未知の移動履歴に対応するHMMのパラメータが求められる。
ステップS222において、状態ノード割り当て部63は、学習により得られた状態ノードに、既存のHMM(確率遷移モデル)に付加する状態ノードとしての新たなノード番号を割り当てる。
ステップS223において、状態ノード割り当て部63は、学習データである未知の移動履歴と、対応する新たなノード番号の状態ノード系列を内部に記憶し、図24に戻る。
[モデル再構成処理のフロー]
次に、図28のフローチャートを参照して、図24のステップS173で実行されるモデル再構成処理について説明する。
初めに、ステップS241において、モデル再構成部64は、遷移頻度テーブルを作成する。
図29は、ステップS241で作成される遷移頻度テーブルの例を示している。遷移頻度テーブルは、図18に示したHMMの状態遷移確率aijが、遷移頻度とされたものである。
ステップS242において、モデル再構成部64は、遷移頻度テーブルの遷移頻度から、次式(8)により、状態頻度テーブルを生成する。
式(8)は、状態s
iの状態頻度f
iが状態s
iの遷移頻度f
ijの総和により得られることを表している。
ステップS243において、モデル再構成部64は、状態頻度テーブルを用いて、次式(9)により、状態頻度の中心値Miと分散Σi 2とからなる統計量テーブルを生成する。
Mi=μi・fi ,Σi 2=(σi 2+μi)・fi ・・・・・(9)
ステップS244において、モデル再構成部64は、図26の既存ノード割り当て処理、および、図27の新規ノード割り当て処理により生成されて記憶されている、学習データに対応する状態ノード系列を用いて、遷移頻度テーブルを更新する。ここで、更新後の遷移頻度fijは遷移頻度fij’で表し、更新後の状態頻度テーブルはfi’で表される。
ステップS245において、モデル再構成部64は、図26の既存ノード割り当て処理、および、図27の新規ノード割り当て処理で出現する状態ノードに対応する位置データと、その二乗値を、状態頻度の中心値Miと分散Σi 2に加算することにより、式(9)の統計量テーブルを更新する。更新後の統計量テーブルの状態頻度の中心値Miと分散Σi 2は、Mi’,Σi 2’で表される。
ステップS246において、モデル再構成部64は、次式(10)により、図26の既存ノード割り当て処理、および、図27の新規ノード割り当て処理で出現する状態ノードの中心値μiと分散値σi 2を、μi’とσi 2’に更新して、図24に戻る。
μi’=Mi’/fi’ ,σi 2’=Σi 2’/fi’−μi’2)・ ・・・・・(10)
以上、図24乃至図28を参照して説明した学習処理により、新たに入力された移動履歴に基づいて、既存の学習モデルを修正(更新)、拡張することができる。なお、既存モデルが存在しない最初の学習処理は、入力された移動履歴が全て未知経路と判定されて確率遷移モデルが学習される処理であり、上述した処理で対応可能である。
[予測処理のフローチャート]
次に、図30のフローチャートを参照して、第2の実施の形態における予測処理について説明する。
初めに、ステップS301において、類似ノード検索部14Bは、事前の学習により得られた確率遷移モデル(のパラメータ)と目的地リストを確率遷移モデルDB13Bから取得する。
ステップS302において、類似ノード検索部14Bは、バッファ12から、直近の移動履歴を取得する。
ステップS303において、類似ノード検索部14Bは、直近の移動履歴に対応する状態ノードを探索して、選択する。具体的には、類似ノード検索部14Bは、上述した学習処理で説明した適合度算出処理(図24のステップS164、図25)を行い、既存ノード割り当て処理(図24のステップS171、図26)を行うことにより、直近の移動履歴に対応する状態ノードを探索して、選択する。
ステップS304において、適合判定部15Bは、類似ノード検索部14Bにより選択された状態ノードの適合度が所定の閾値以上であるかを判定する。
ステップS304で、選択された状態ノードの適合度が所定の閾値未満であると判定された場合、予測処理は終了する。
一方、ステップS304で、選択された状態ノードの適合度が所定の閾値以上であると判定された場合、処理はステップS305に進む。ステップS305では、予測ノード探索部16Bは、選択された状態ノードから遷移可能な目的地ノードをツリー探索することにより目的地を探索する。
ステップS306において、予測ノード探索部16Bは、探索された目的地を、目的地ごとにリストアップする。
ステップS307において、予測値算出部18Bは、リストアップされた目的地ごとに、目的地への経路リストおよび代表経路を算出する。
目的地iへの代表経路r
iは、例えば、次式(11)により求めることができる
式(11)において、T
jは、j番目の経路リストの長さ(ステップ数)を表し、a(s
k,s
k+1)は、状態ノードs
kから状態ノードs
k+1への遷移確率を表す。したがって、s
j kは、j番目の経路リストのk番目の状態ノードを表し、s
j 1は現在地ノードであり、s
j Tjはj番目の経路リストの目的地ノードを表す。
したがって、式(11)は、目的地iについては最も生起確率の高いr番目の経路riを代表経路とし、代表経路riは、{s1,s2,s3,・・・,sTr}の状態ノード系列を有することを意味している。代表経路の選択方法は、これ以外の方法を用いてもよい。
ステップS308において、予測値算出部18Bは、各目的地への到達確率を算出する。
目的地iへの到達確率p
iは、例えば、次式(12)により求めることができる
式(12)において、N
iは、現在地ノードから、目的地iに到達する経路リストの本数を表す。
ステップS309において、各目的地への所要時間を算出して出力し、処理を終了する。
目的地iへの代表経路r
iの所要時間t
iは、例えば、次式(13)により求めることができる
式(13)において、s
kは、代表経路rの状態ノード系列のk番目の状態ノードであり、Tは、代表経路の経路リストの長さ(ステップ数)であり、t=1が現在地ノードで、t=Tが目的地ノードである。
また、式(13)において、ps1(1)は、ステップ1に状態ノードs1にいる確率を表す。psk(t)は、ステップtに状態ノードskにいる確率を表し、一つ前のステップにおいて状態ノードskにいて自己遷移した確率と、一つ前のステップにおいて状態ノードsk-1にいて遷移してきた確率の和である。
さらに、式(13)の所要時間tiは、時刻t-1に目的地ノードsTの一つ手前の状態ノードsT-1にいて、時刻tで初めて目的地ノードsTに移るときのtの期待値である。
[絶対の出発予測時刻を用いた第2のセンサ制御処理のフローチャート]
次に、図31のフローチャートを参照して、第2の実施の形態における、絶対の出発予測時刻を用いた第2のセンサ制御処理について説明する。
図31のステップS321乃至S324は、図30のステップS301乃至S304と同様であるので、その説明は省略する。
ステップS324で、選択された状態ノードの適合度が所定の閾値未満であると判定された場合、処理はステップS325に進み、センサ制御部19は、位置センサ部11を、データ取得間隔が短くなるように制御して、処理を終了する。
一方、ステップS324で、選択された状態ノードの適合度が所定の閾値以上であると判定された場合、処理はステップS326に進む。
ステップS326において、出発時刻予測部17Bは、選択された状態ノードの自己遷移以外の1以上の遷移先の状態ノードの時刻の中心値の平均(平均時刻)を、絶対の出発時刻として算出する。算出された絶対の出発時刻は、センサ制御部19に供給される。
ステップS327において、センサ制御部19は、出発時刻予測部17Bから供給された絶対の出発時刻と、現在時刻との差分を算出する。
ステップS328において、センサ制御部19は、算出された差分が所定の閾値(出発時刻閾値)より大であるかを判定する。
ステップS328で、算出された差分が出発時刻閾値以下であると判定された場合、処理はステップS329に進み、センサ制御部19は、データ取得間隔が短くなるように制御して、処理を終了する。
一方、ステップS328で、算出された差分が出発時刻閾値より大であると判定された場合、処理はステップS330に進み、センサ制御部19は、データ取得間隔が長くなるように制御して、処理を終了する。
第2の実施の形態における第1のセンサ制御処理は、上述したステップS326乃至S329を省略した処理となる。
[相対の出発予測時刻を用いた第2のセンサ制御処理のフローチャート]
次に、図32のフローチャートを参照して、第2の実施の形態における、相対の出発予測時刻を用いた第2のセンサ制御処理について説明する。
図32の相対の出発予測時刻を用いた第2のセンサ制御処理は、図31の絶対の出発予測時刻を用いた第2のセンサ制御処理と比較すると、図31のステップS326乃至S328に対応するステップS346およびS347が異なるのみである。従って、図32では、ステップS346およびS347の処理のみ説明し、それ以外の説明は省略する。
ステップS346において、出発時刻予測部17Bは、選択された状態ノードの自己遷移確率から、相対の出発時刻(予測滞在時間)を算出する。すなわち、選択された状態ノードの自己遷移確率を用いた式(2)に、単位ステップの時間を乗算することにより、予測滞在時間が求められ、センサ制御部19に供給される。
ステップS347において、出発時刻予測部17Bは、算出された予測滞在時間が所定の閾値(滞在時間閾値)より大であるかを判定する。
ステップS347で、算出された予測滞在時間が滞在時間閾値以下であると判定された場合、処理はステップS348に進む。
一方、ステップS347で、算出された予測滞在時間が滞在時間閾値より大であると判定された場合、処理はステップS349に進む。
ステップS348またはS349において、所定のデータ取得間隔がセンサ制御部19に設定されて、処理は終了する。
以上のように、絶対の出発予測時刻を用いた第2のセンサ制御処理、または、相対の出発予測時刻を用いた第2のセンサ制御処理が行われるが、両者の処理結果を組み合わせた結果に基づいて、最終的にデータ取得間隔を決定してもよい。
[データ修正処理のフローチャート]
次に、図33のフローチャートを参照して、第2の実施の形態における、データ修正処理について説明する。
図33のステップS361乃至S364は、図30のステップS301乃至S304と同様であるので、その説明は省略する。
ステップS365において、モデル用データ修正部20Bは、直近の移動履歴の各ステップに対応する各状態ノードの確率δj(t)を取得する。
ステップS366において、モデル用データ修正部20Bは、式(3)により、直近の移動履歴に対応する理想系列を生成する。すなわち、モデル用データ修正部20Bは、直近の移動履歴の各ステップに対応する各状態ノードの中心値に、状態ノードの確率δj(t)を重み付け加算することにより、理想系列を生成する。
ステップS367において、モデル用データ修正部20Bは、理想系列と直近の移動履歴の平均を算出することで、修正後の直近の移動履歴を生成して、処理を終了する。
以上のように、予測装置1の第2の実施の形態では、確率遷移モデルDB13Bに記憶されている確率遷移モデルを用いて、予測処理、センサ制御処理、およびデータ修正処理を行うことができる。
<4.第3実施の形態>
[第3実施の形態の予測装置1の構成例]
上述した例では、予測装置1が、過去履歴DB13の検索用データとして経路ログか、または、確率遷移モデルのいずれか一方を用いて、予測処理、センサ制御処理、およびデータ修正処理を行う例について説明した。
しかしながら、予測装置1は、過去履歴DB13の検索用データとして、経路ログ、および、確率遷移モデルの両方を有し、選択的に実行するようにしてもよい。
図34は、そのような予測装置1の構成例を示すブロック図である。すなわち、図34は、経路ログ、および、確率遷移モデルの両方を有し、それらを選択的に実行する第3の実施の形態の予測装置1の構成例を示している。
過去履歴DB13は、第1の実施の形態の経路ログDB13Aと第2の実施の形態の確率遷移モデルDB13Bを有する。
類似検索部14は、第1の実施の形態の類似経路探索部14Aと第2の実施の形態の類似ノード探索部14Bを有する。
適合判定部15は、第1の実施の形態の適合判定部15Aと第2の実施の形態の適合判定部15Bを有する。
予測経路抽出部16は、第1の実施の形態の予測経路ログ抽出部16Aと第2の実施の形態の予測ノード探索部16Bを有する。
出発時刻予測部17、第1の実施の形態の出発時刻予測部17Aと第2の実施の形態の出発時刻予測部17Bを有する。
DB修正部20は、第1の実施の形態の検索ログ修正部20と第2の実施の形態のモデル用データ修正部20Bを有する。
第3の実施の形態においては、例えば、経路ログ、または、確率遷移モデルのどちらを使用するかが、図示せぬ操作部でユーザにより選択される。経路ログを使用することが選択された場合には、第1の実施の形態として説明した処理が実行される。一方、確率遷移モデルを使用することが選択された場合には、第2の実施の形態として説明した処理が実行される。
<5.第4実施の形態>
[第4実施の形態の予測装置1の構成例]
上述した実施の形態では、予測装置1が、位置センサ部11のデータ取得間隔を制御するセンサ制御機能と、直近の移動履歴を検索用データに基づいて修正するデータ修正機能の両方を有していた。
しかしながら、予測装置1は、センサ制御機能、または、データ修正機能のいずれか一方のみを有するものでもよい。
図35は、予測装置1の第4の実施の形態としての、センサ制御機能のみを有する予測装置1の構成例を示すブロック図である。
図36は、予測装置1の第4の実施の形態としての、データ修正機能のみを有する予測装置1の構成例を示すブロック図である。
第4の実施の形態の予測装置1の処理(動作)については、上述した説明と重複するので省略する。
[コンピュータの構成例]
上述した一連の処理は、ハードウエアにより実行することもできるし、ソフトウエアにより実行することもできる。一連の処理をソフトウエアにより実行する場合には、そのソフトウエアを構成するプログラムが、コンピュータにインストールされる。ここで、コンピュータには、専用のハードウエアに組み込まれているコンピュータや、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば汎用のパーソナルコンピュータなどが含まれる。
図37は、上述した一連の処理をプログラムにより実行するコンピュータのハードウエアの構成例を示すブロック図である。
コンピュータにおいて、CPU(Central Processing Unit)101,ROM(Read Only Memory)102,RAM(Random Access Memory)103は、バス104により相互に接続されている。
バス104には、さらに、入出力インタフェース105が接続されている。入出力インタフェース105には、入力部106、出力部107、記憶部108、通信部109、及びドライブ110が接続されている。
入力部106は、キーボード、マウス、マイクロホンなどよりなる。出力部107は、ディスプレイ、スピーカなどよりなる。記憶部108は、ハードディスクや不揮発性のメモリなどよりなる。通信部109は、ネットワークインタフェースなどよりなる。ドライブ110は、磁気ディスク、光ディスク、光磁気ディスク、或いは半導体メモリなどのリムーバブル記録媒体111を駆動する。
以上のように構成されるコンピュータでは、CPU101が、例えば、記憶部108に記憶されているプログラムを、入出力インタフェース105及びバス104を介して、RAM103にロードして実行することにより、上述した一連の処理が行われる。
コンピュータでは、プログラムは、リムーバブル記録媒体111をドライブ110に装着することにより、入出力インタフェース105を介して、記憶部108にインストールすることができる。また、プログラムは、ローカルエリアネットワーク、インターネット、デジタル衛星放送といった、有線または無線の伝送媒体を介して、通信部109で受信し、記憶部108にインストールすることができる。その他、プログラムは、ROM102や記憶部108に、あらかじめインストールしておくことができる。
なお、本明細書において、フローチャートに記述されたステップは、記載された順序に沿って時系列的に行われる場合はもちろん、必ずしも時系列的に処理されなくとも、並列に、あるいは呼び出しが行われたとき等の必要なタイミングで実行されてもよい。
上述した実施の形態において、各種の条件を判定するための閾値は、それぞれ適切な値を適宜設定することができる。
本技術の実施の形態は、上述した実施の形態に限定されるものではなく、本技術の要旨を逸脱しない範囲において種々の変更が可能である。
なお、本技術は以下のような構成も取ることができる。
(1)
時系列の位置データでなる直近の移動履歴を取得する位置センサ部と、
検索用データを記憶する過去履歴DBと、
前記検索用データのなかから、前記直近の移動履歴と類似する過去の経路を検索する類似検索部と、
前記類似検索部で検索された前記過去の経路と、前記直近の移動履歴との適合度が所定の閾値以上であるかを判定する適合判定部と、
前記適合判定部の判定結果に応じて、前記位置センサ部の前記位置データの取得間隔を制御するセンサ制御部と
を備える情報処理装置。
(2)
前記センサ制御部は、前記適合度が前記所定の閾値以上である場合に、前記位置データの取得間隔が、前記所定の閾値未満である場合よりも長くなるように制御する
前記(1)に記載の情報処理装置。
(3)
現在の位置を離れる時刻である出発時刻を予測する出発時刻予測部をさらに備え、
前記センサ制御部は、前記適合度が前記所定の閾値以上であり、かつ、前記出発時刻予測部で予測された出発予測時刻が所定時間より後である場合に、前記位置データの取得間隔が、前記所定の閾値未満である場合よりも長くなるように制御する
前記(1)または(2)に記載の情報処理装置。
(4)
前記出発時刻予測部は、絶対時刻または相対時刻のいずれかで前記出発時刻を予測する
前記(3)に記載の情報処理装置。
(5)
前記過去履歴DBは、過去の移動履歴を前記検索用データとして記憶し、
前記類似検索部は、前記適合度として、前記過去の移動履歴と前記直近の移動履歴との距離を用いて、前記直近の移動履歴と類似するものを検索する
前記(1)ないし(4)のいずれかに記載の情報処理装置。
(6)
前記過去履歴DBは、過去の移動履歴を確率遷移モデルで学習したときのパラメータを前記検索用データとして記憶し、
前記類似検索部は、前記適合度として、前記直近の移動履歴に対して算出される前記確率遷移モデルの尤度を用いて、前記直近の移動履歴と類似するものを検索する
前記(1)ないし(5)のいずれかに記載の情報処理装置。
(7)
検索用データを記憶する過去履歴DBを備える情報処理装置が、
時系列の位置データでなる直近の移動履歴を取得し、
前記検索用データのなかから、前記直近の移動履歴と類似する過去の経路を検索し、
検索された前記過去の経路と、前記直近の移動履歴との適合度が所定の閾値以上であるかを判定し、
判定結果に応じて、前記位置センサ部の前記位置データの取得間隔を制御する
ステップを含む情報処理方法。
(8)
コンピュータを、
過去履歴DBに記憶されている検索用データのなかから、位置センサ部で取得された、時系列の位置データでなる直近の移動履歴と類似する過去の経路を検索する類似検索部と、
前記類似検索部で検索された前記過去の経路と、前記直近の移動履歴との適合度が所定の閾値以上であるかを判定する適合判定部と、
前記適合判定部の判定結果に応じて、前記位置センサ部の前記位置データの取得間隔を制御するセンサ制御部
として機能させるためのプログラム。