以下、本発明を実施するための形態(以下、実施の形態という)について説明する。なお、説明は以下の順序で行う。
1.第1の実施の形態(目的地が指定された場合の目的地までの経路および到達時間を予測する例)
2.第2の実施の形態(目的地も予測して、目的地までの経路および到達時間を予測する場合の例)
<1.第1の実施の形態>
[予測システムの第1の実施の形態のブロック図]
図1は、本発明を適用した予測システムの第1の実施の形態の構成例を示すブロック図である。
予測システム1は、GPSセンサ11、時系列データ記憶部12、行動学習部13、行動認識部14、行動予測部15、到達時間予測部16、操作部17、および表示部18により構成される。
予測システム1は、GPSセンサ11により取得される現在地を示す時系列データから、ユーザの活動状態(行動・活動パターンを表した状態)を確率的状態遷移モデルとして学習する学習処理を行う。また、予測システム1は、学習処理により得られたパラメータで表される確率的状態遷移モデル(ユーザ活動モデル)を用いて、ユーザが指定した目的地までの経路および時間を予測する予測処理も行う。
図1において、点線の矢印は、学習処理におけるデータの流れを示しており、実線の矢印は、予測処理におけるデータの流れを示している。
GPSセンサ11は、自身の位置を示す緯度経度のデータを、一定時間間隔(たとえば、15秒間隔)で順次取得する。なお、GPSセンサ11が位置のデータを一定間隔に取得することができない場合もある。例えば、トンネルや地下にいる場合などには、人工衛星を捕捉することができず、取得間隔が長くなることもある。このような場合には、補間処理を行うことなどにより、データを補うことができる。
GPSセンサ11は、学習処理においては、取得される位置(緯度経度)のデータを時系列データ記憶部12に供給する。また、GPSセンサ11は、予測処理においては、取得される位置データを行動認識部14に供給する。
時系列データ記憶部12は、GPSセンサ11により連続して取得された位置データ、すなわち、位置の時系列データを記憶する。ユーザの行動・活動パターンを学習するので、例えば、数日分程度など、ある程度の期間について蓄積された時系列データが必要である。
行動学習部13は、時系列データ記憶部12に記憶されている時系列データに基づいて、GPSセンサ11が組み込まれた機器を携行するユーザの活動状態を、確率的状態遷移モデルとして学習する。時系列データはユーザの位置を示すデータであるので、確率的状態遷移モデルとして学習されるユーザの活動状態は、ユーザの現在地の時系列変化、すなわちユーザの移動経路を表す状態となる。学習に使用される確率的状態遷移モデルとしては、例えば、エルゴディックHMM(Hidden Markov Model)などの、隠れ状態を含む確率的状態遷移モデルを採用することができる。本実施の形態では、確率的状態遷移モデルとして、エルゴディックHMMにスパース制約を与えたものを採用する。なお、スパース制約を与えたエルゴディックHMM、エルゴディックHMMのパラメータの算出方法等については、図4乃至図6を参照して後述する。
行動学習部13は、学習結果を示すデータを表示部18に供給し、表示させる。また、行動学習部13は、学習処理により得られた確率的状態遷移モデルのパラメータを行動認識部14および行動予測部15に供給する。
行動認識部14は、学習により得られたパラメータの確率的状態遷移モデルを用いて、GPSセンサ11からリアルタイムに供給される位置の時系列データから、ユーザの現在の活動状態、すなわち、ユーザの現在地を認識する。行動認識部14は、ユーザの現在の状態ノードのノード番号を行動予測部15に供給する。
行動予測部15は、学習により得られたパラメータの確率的状態遷移モデルを用いて、行動認識部14から供給される状態ノードのノード番号が示すユーザの現在地から、ユーザが取りうる経路を過不足なく探索(予測)する。また、行動予測部15は、探索された経路ごとの生起確率を計算することにより、探索された経路が選択される確率である選択確率を予測する。
到達時間予測部16には、行動予測部15から、ユーザが取りうる経路と、その選択確率が供給される。また、到達時間予測部16には、操作部17から、ユーザが指定した目的地を示す情報が供給される。
到達時間予測部16は、探索結果としてのユーザが取りうる経路から、ユーザが指定した目的地を含む経路を抽出し、抽出された各経路について目的地までの到達時間を予測する。また、到達時間予測部16は、目的地へ到達する確率である到達確率を予測する。到達時間予測部16は、目的地について複数の経路が存在する場合、その複数の経路の選択確率の和を、目的地の到達確率として算出する。目的地への経路が1つのみである場合には、その経路の選択確率が、そのまま目的地の到達確率となる。そして、到達時間予測部16は、予測結果を示す情報を表示部18に供給し、表示させる。
操作部17は、ユーザが入力した目的地についての情報を受け付け、到達時間予測部16に供給する。表示部18は、行動学習部13または到達時間予測部16から供給される情報を表示する。
[予測システムのハードウエア構成例]
以上のように構成される予測システム1は、例えば、図2に示されるハードウエア構成を採用することができる。即ち、図2は、予測システム1のハードウエア構成例を示すブロック図である。
図2において、予測システム1は、3台のモバイル端末21−1乃至21−3とサーバ22とにより構成されている。モバイル端末21−1乃至21−3は、同一機能を有する同型のモバイル端末21であるが、モバイル端末21−1乃至21−3では、それを所有するユーザが異なる。従って、図2では、3台のモバイル端末21−1乃至21−3のみが示されているが、実際には、ユーザ数に応じた数のモバイル端末21が存在する。
モバイル端末21は、無線通信及びインターネット等のネットワークを介した通信により、サーバ22とデータの授受を行うことができる。サーバ22は、モバイル端末21から送信されてくるデータを受信し、受信したデータに対し所定の処理を行う。そして、サーバ22は、データ処理の処理結果を無線通信等によりモバイル端末21に送信する。
従って、モバイル端末21とサーバ22は、無線または有線による通信を行う通信部を少なくとも有する。
さらに、モバイル端末21が、図1のGPSセンサ11、操作部17、および表示部18を備え、サーバ22が、図1の時系列データ記憶部12、行動学習部13、行動認識部14、行動予測部15、および到達時間予測部16を備える構成を採用することができる。
この構成が採用される場合、学習処理において、モバイル端末21が、GPSセンサ11により取得された時系列データを送信する。サーバ22は、受信した学習用の時系列データに基づき、ユーザの活動状態を確率的状態遷移モデルにより学習する。そして、予測処理において、モバイル端末21が、操作部17を介してユーザによって指定された目的地を送信するとともに、GPSセンサ11によりリアルタイムに取得される位置データを送信する。サーバ22は、学習により得られたパラメータを用いて、ユーザの現在の活動状態、すなわち、ユーザの現在地を認識し、さらに、指定された目的地までの経路および時間を処理結果としてモバイル端末21に送信する。モバイル端末21は、サーバ22から送信されてきた処理結果を表示部18に表示する。
また例えば、モバイル端末21が、図1のGPSセンサ11、行動認識部14、行動予測部15、到達時間予測部16、操作部17、および表示部18を備え、サーバ22が、図1の時系列データ記憶部12および行動学習部13を備える構成を採用することができる。
この構成が採用される場合、学習処理において、モバイル端末21が、GPSセンサ11により取得された時系列データを送信する。サーバ22は、受信した学習用の時系列データに基づき、ユーザの活動状態を確率的状態遷移モデルにより学習し、学習により得られたパラメータをモバイル端末21に送信する。そして、予測処理において、モバイル端末21が、GPSセンサ11によりリアルタイムに取得される位置データと、サーバ22から受信したパラメータを用いて、ユーザの現在地を認識し、さらに、指定された目的地までの経路および時間を演算する。そして、モバイル端末21は、演算結果としての目的地までの経路および時間を表示部18に表示する。
以上のようなモバイル端末21とサーバ22との間の役割分担は、それぞれのデータ処理装置としての処理能力や通信環境に応じて決定することができる。
学習処理は、処理に要する1回あたりの時間は非常に長いが、それほど頻繁に処理する必要はない。従って、一般的には、携行可能なモバイル端末21よりもサーバ22の方が処理能力が高いので、サーバ22に、一日に一回程度蓄積された時系列データに基づいて学習処理(パラメータの更新)を行わせるようにすることができる。
一方、予測処理は、時々刻々とリアルタイムに更新される位置データに対応させて迅速に処理し、表示することが望ましいので、モバイル端末21で処理を行う方が望ましい。通信環境がリッチであれば、上述したようにサーバ22に予測処理も行わせ、予測結果のみをサーバ22から受信する方が、携行可能な小型化が要求されるモバイル端末21の負荷が軽減され、望ましい。
また、モバイル端末21単独で、データ処理装置として学習処理および予測処理を高速に行うことが可能である場合には、図1の予測システム1の構成すべてをモバイル端末21が備えるようにすることも勿論可能である。
[入力される時系列データの例]
図3は、予測システム1で取得された位置の時系列データの例を示している。図3において、横軸は経度を表し、縦軸は緯度を表している。
図3に示される時系列データは、実験者の1ヶ月半程度の期間に蓄積された時系列データを示している。図3に示されるように、時系列データは、主に、自宅周辺と、勤務先などの4か所の外出先を移動したデータとなっている。なお、この時系列データには、人工衛星を捕捉できず、位置データが飛んでいるデータも含まれている。
図3に示される時系列データは、後述する検証実験において学習データとして使用した時系列データでもある。
[エルゴディックHMMについて]
次に、予測システム1が、学習モデルとして採用するエルゴディックHMMについて説明する。
図4は、HMMの例を示している。
HMMは、状態と状態間遷移とを有する状態遷移モデルである。
図4は、3状態のHMMの例を示している。
図4において(以降の図においても同様)、丸印は、状態を表し、矢印は、状態遷移を表す。なお、状態は、上述のユーザの活動状態に対応し、状態ノードと同義である。
また、図4において、si(図4では、i=1,2,3)は、状態(ノード)を表し、aijは、状態siから状態sjへの状態遷移確率を表す。さらに、bj(x)は、状態sjへの状態遷移時に、観測値xが観測される出力確率密度関数を表し、πiは、状態siが初期状態である初期確率を表す。
なお、出力確率密度関数bj(x)としては、例えば、混合正規確率分布等が用いられる。
ここで、HMM(連続HMM)は、状態遷移確率aij、出力確率密度関数bj(x)、及び初期確率πiによって定義される。これらの状態遷移確率aij、出力確率密度関数bj(x)、及び初期確率πiを、HMMのパラメータλ={aij,bj(x), πi,i=1,2,・・・,M,j=1,2,・・・,M}という。Mは、HMMの状態数を表す。
HMMのパラメータλを推定する方法としては、Baum-Welchの再尤推定法が広く利用されている。Baum-Welchの再尤推定法は、EMアルゴリズム(EM(Expectation-Maximization) algorithm)に基づくパラメータの推定方法である。
Baum-Welchの再尤推定法によれば、観測される時系列データx=x1,x2,・・・,xTに基づき、その時系列データが観測(生起)される確率である生起確率から求まる尤度を最大化するように、HMMのパラメータλの推定が行われる。ここで、xtは、時刻tに観測される信号(サンプル値)を表し、Tは、時系列データの長さ(サンプル数)を表す。
Baum-Welchの再尤推定法については、例えば、“パターン認識と機械学習(下)”,C.M.ビショップ著,P. 333(英語原書:“Pattern Recognition and Machine Learning (Information Science and Statistics) ”,Christopher M. BishopSpringer, New York, 2006.)(以下、文献Aと称する)に記載されている。
なお、Baum-Welchの再尤推定法は、尤度最大化に基づくパラメータ推定方法ではあるが、最適性を保証するものではなく、HMMの構造やパラメータλの初期値によっては、局所解に収束することがある。
HMMは、音声認識で広く利用されているが、音声認識で利用されるHMMでは、一般に、状態の数や状態遷移の仕方等はあらかじめ決定される。
図5は、音声認識で利用されるHMMの例を示している。
図5のHMMは、left-to-right型と呼ばれる。
図5では、状態数は3になっており、状態遷移は、自己遷移(状態siから状態siへの状態遷移)と、左から右隣の状態への状態遷移とのみを許す構造に制約されている。
図5のHMMのように、状態遷移に制約があるHMMに対して、図4に示した、状態遷移に制約がないHMM、すなわち、任意の状態siから任意の状態sjへの状態遷移が可能なHMMは、エルゴディック(Ergodic)HMMと呼ばれる。
エルゴディックHMMは、構造としては最も自由度の高いHMMであるが、状態数が多くなると、パラメータλの推定が困難となる。
例えば、エルゴディックHMMの状態数が、1000である場合、状態遷移の数は、100万(=1000×1000)となる。
したがって、この場合、パラメータλのうちの、例えば、状態遷移確率aijについては、100万個の状態遷移確率aijを推定することが必要となる。
そこで、状態に対して設定する状態遷移には、例えば、スパース(Sparse)な構造であるという制約(スパース制約)をかけることができる。
ここで、スパースな構造とは、任意の状態から任意の状態への状態遷移が可能なエルゴディックHMMのような密な状態遷移ではなく、ある状態から状態遷移することができる状態が非常に限定されている構造である。なお、ここでは、スパースな構造であっても、他の状態への状態遷移は、少なくとも1つ存在し、また、自己遷移は存在することとする。
図6は、スパース制約を与えたHMMを示している。
ここで、図6では、2つの状態を結ぶ双方向の矢印は、その2つの状態の一方から他方への状態遷移と、他方から一方への状態遷移とを表す。また、図6において、各状態は、自己遷移が可能であり、その自己遷移を表す矢印の図示は、省略されている。
図6では、16個の状態が、2次元空間上に格子状に配置されている。すなわち、図6では、横方向に、4個の状態が配置され、縦方向にも、4個の状態が配置されている。
いま、横方向に隣接する状態どうしの距離、及び、縦方向に隣接する状態どうしの距離を、いずれも1とすると、図6Aは、距離が1以下の状態への状態遷移は可能とし、他の状態への状態遷移はできないというスパース制約を与えたHMMを示している。
また、図6Bは、距離が√2以下の状態への状態遷移は可能とし、他の状態への状態遷移はできないというスパース制約を与えたHMMを示している。
本実施の形態では、GPSセンサ11が取得した位置データが、時系列データx=x1,x2,・・・,xTとして、時系列データ記憶部12に供給される。行動学習部13は、時系列データ記憶部12に記憶されている時系列データx=x1,x2,・・・,xTを用い、ユーザ活動モデルを表すHMMのパラメータλを推定する。
即ち、ユーザの移動軌跡を表す各時刻の位置(緯度経度)のデータが、HMMの状態sjのいずれかに対応する地図上の一点から、所定の分散値の広がりを持って正規分布した確率変数の観測データであると考える。行動学習部13は、各状態sjに対応する地図上の一点とその分散値、および状態遷移確率aijを最適化する。
なお、状態siの初期確率πiは、一様な値に設定することができる。例えば、M個の状態siそれぞれの初期確率πiが、1/Mに設定される。また、GPSセンサ11が取得した位置データに対して補間処理などの所定の処理を施した後の位置データを、時系列データx=x1,x2,・・・,xTとして、時系列データ記憶部12に供給してもよい。
行動認識部14は、学習により得られたユーザ活動モデル(HMM)に対して、ビタビ法を適用し、GPSセンサ11からの位置データx=x1,x2,・・・,xTが観測される尤度を最も大にする状態遷移の過程(状態の系列)(パス)(以下、最尤パスともいう)を求める。これにより、ユーザの現在の活動状態、即ち、ユーザの現在地に対応する状態siが認識される。
ここで、ビタビ法とは、各状態siを始点とする状態遷移のパスの中で、時刻tに、状態siから状態sjに状態遷移する状態遷移確率aijと、その状態遷移において、位置データx=x1,x2,・・・,xTのうちの時刻tのサンプル値xtが観測される確率(出力確率密度関数bj(x)から求められる出力確率)とを、処理後時系列データxの長さTに亘って累積した値(生起確率)を最大にするパス(最尤パス)を決定するアルゴリズムである。ビタビ法の詳細については上述の文献AのP.347に記載されている。
[行動予測部15による経路の探索処理]
次に、行動予測部15による経路の探索処理について説明する。
学習により得られたHMMの各状態siは、地図上の所定の点(位置)を表し、状態siと状態sjが結ばれているとき、状態siから状態sjを移動する経路を表していると考えることができる。
この場合、状態siに対応する各点は、端点、通過点、分岐点、ループのいずれかに分類することができる。端点とは、自己遷移以外の確率が極めて小さく(自己遷移以外の確率が所定の値以下であり)、次に移動可能な点がない点である。通過点とは、自己遷移以外に有意な遷移が一つある、換言すれば、次に移動可能な点が一つある点である。分岐点とは、自己遷移以外に有意な遷移が二つ以上ある、換言すれば、次に移動可能な点が二つ以上ある点である。ループとは、これまで通過した経路上のどれかと一致する点である。
目的地への経路を探索する場合、異なる経路がある場合には、それぞれの経路について必要時間等の情報を提示することが望まれる。そこで、可能な経路を過不足なく探索するために、次の条件を設定する。
(1)一度分岐した経路は再度合流した場合でも、別の経路とみなす。
(2)経路内に端点か、これまで通過した経路内に含まれる点が現れた場合、その経路の探索を終了する。
行動予測部15は、行動認識部14により認識されたユーザの現在の活動状態、即ち、ユーザの現在の点を出発点として、次の移動先としての状態遷移が可能な点を端点、通過点、分岐点、ループのいずれかに分類することを(2)の終了条件まで繰り返す。
行動予測部15は、現在の点が端点であると分類された場合、現在の点をここまでの経路に接続してから、この経路の探索を終了する。
一方、現在の点が通過点であると分類された場合、行動予測部15は、現在の点をここまでの経路に接続してから、次の点へ移動する。
また、現在の点が分岐点であると分類された場合、行動予測部15は、現在の点をこれまでの経路に接続して、さらに分岐の数だけ、これまでの経路を複製し、分岐点と接続する。そして、行動予測部15は、分岐点の1つを次の点として移動する。
現在の点がループであると分類された場合、行動予測部15は、現在の点をこれまでの経路に接続せずに、この経路の探索を終了する。なお、現在の点から、1つ前の点に経路を逆戻りする場合はループに含まれるため考慮しない。
[探索処理の例]
図7は、行動予測部15による経路の探索処理の簡単な例を示している。
図7の例において、状態s1が現在地である場合、最終的に3通りの経路が探索されることになる。1つめの経路は、状態s1から状態s5,状態s6等を経由して状態s10までの経路(以下、経路Aともいう。)である。2つめの経路は、状態s1から状態s5,状態s11,状態s14,状態s23等を経由して状態s29までの経路(以下、経路Bともいう。)である。3つめの経路は、状態s1から状態s5,状態s11,状態s19,状態s23等を経由して状態s29までの経路(以下、経路Cともいう。)である。
行動予測部15は、探索された各経路が選択される確率(経路の選択確率)を計算する。経路の選択確率は、経路を構成する状態間の遷移確率を順次乗算することで求められる。ただし、次の状態に遷移する場合のみを考慮し、その場所に滞留する場合は考慮する必要がないので、学習により求められた各状態の状態遷移確率aijから、自己遷移確率を除いて規格化された遷移確率[aij]を用いて、経路の選択確率が求められる。
自己遷移確率を除いて規格化された遷移確率[a
ij]は、次式(1)で表すことができる。
ここで、δは、クロネッカー関数を表し、添え字のiとjが一致するときのみ1となり、それ以外は0となる関数である。
したがって、例えば、図7の状態s5の状態遷移確率aijが、自己遷移確率a5,5=0.5,遷移確率a5,6=0.2,遷移確率a5,11=0.3である場合、状態s5から状態s6または状態s11に分岐する場合の遷移確率[a5,6]および遷移確率[a5,11]は、それぞれ、0.4,0.6となる。
探索された経路の状態siのノード番号iが、(y1,y2,・・・,yn)であるとき、この経路の選択確率は、規格化された遷移確率[aij]を用いて、次式(2)で表すことができる。
実際には、通過点での規格化された遷移確率[aij]は1であるので、分岐する際の規格化された遷移確率[aij]を順次乗算すれば足りる。
図7の例では、経路Aの選択確率は、0.4である。また、経路Bの選択確率は、0.24=0.6×0.4である。経路Cの選択確率は、0.36=0.6×0.6である。そして、計算された経路の選択確率の総和は1=0.4+0.24+0.36であり、過不足ない探索を実現することができることがわかる。
以上のように、現在地に基づいて探索された各経路とその選択確率が、行動予測部15から到達時間予測部16に供給される。
到達時間予測部16は、行動予測部15によって探索された経路から、ユーザが指定した目的地を含む経路を抽出し、抽出された各経路について目的地までの時間を予測する。
例えば、図7の例では、探索された3つの経路A乃至Cのうち、目的地である状態s28を含む経路は経路Bと経路Cである。到達時間予測部16は、経路Bまたは経路Cを通って、目的地である状態s28に到達するまでの時間を予測する。
なお、目的地を含む経路が多数あり、全ての経路を表示すると見づらくなる場合や経路の提示数が所定数に設定されている場合には、目的地を含む全ての経路のなかから、表示部18に表示させる経路(以下、適宜、表示経路ともいう。)を決定する必要がある。そのような場合、行動予測部15では、各経路について選択確率が算出されているので、到達時間予測部16は、選択確率の高い順に、所定数の経路を表示経路として決定することができる。
現在時刻t1の現在地が状態sy1であり、時刻(t1,t2,・・・,tg)における決定された経路が(sy1,sy2,・・・,syg)であるとする。換言すれば、決定された経路の状態siのノード番号iが(y1,y2,・・・,yg)であるとする。以下、簡単のため、位置に相当する状態siを、単に、そのノード番号iで表わす場合もある。
現在時刻t1での現在地y1は、行動認識部14の認識により確定しているので、現在時刻t1の現在地がy1である確率Py1(t1)は、
Py1(t1)=1
である。また、現在時刻t1にy1以外の他の状態にいる確率は0である。
一方、所定の時刻t
nにノード番号y
nにいる確率P
yn(t
n)は、
で表すことができる。式(3)の右辺第一項は、もともとその位置y
nにいて、自己遷移した場合の確率を表し、右辺第二項は、1つ前の位置y
n−1から位置y
nに遷移してきた場合の確率を表している。式(3)では、経路の選択確率の計算とは異なり、学習により得られた状態遷移確率a
ijがそのまま利用される。
目的地y
gへ到達するときの時刻t
gの予測値<t
g>は、「その直前の時刻t
g−1に目的地y
gの1つ前の位置y
g−1にいて、時刻t
gに目的地y
gに移動する確率」を用いて、
と表すことができる。
即ち、予測値<tg>は、現在時刻から、「その直前の時刻tg−1に状態sygの1つ前の状態syg−1にいて、時刻tgに状態sygに移動するとき」までの時間の期待値で表される。
[背景技術]の欄で提示した先願の方法により、目的地への到達時刻の予測値を求める場合、「所定時間後」の目的地に相当する状態の状態遷移確率aijを時間tに関して積分する必要があるが、この場合、積分区間をどれくらいに設定するのかが問題となる。先願の方法では、ループする経路を通って目的地に到達する場合を区別できない。そのため、目的地までの途中の経路にループが存在している場合、積分区間を長めに設定すると、ループを介して二度目、三度目に目的地に到達する場合も含まれるため、目的地までの到達時間を正しく算出することができない。
式(4)で表される、本発明による目的地への到達時刻の予測値の演算では、同じく、時刻tについて積分(Σ)する必要はある。しかし、探索経路において、ループする経路を通って目的地に到達する場合が除外されているため、期待値の積分区間として十分長い区間を設定することが可能である。式(4)における積分区間は、例えば、学習した経路のなかで移動時間の最大の移動時間の1倍や2倍程度とすることができる。
[ユーザ活動モデル学習処理]
次に、図8のフローチャートを参照して、ユーザの移動経路を、ユーザの活動状態を表す確率的状態遷移モデルとして学習するユーザ活動モデル学習処理について説明する。
初めに、ステップS1において、GPSセンサ11は、位置データを取得し、時系列データ記憶部12に供給する。
ステップS2において、時系列データ記憶部12は、GPSセンサ11により連続して取得された位置データ、すなわち、位置の時系列データを記憶する。
ステップS3において、行動学習部13は、時系列データ記憶部12に記憶されている時系列データに基づいて、ユーザ活動モデルを確率的状態遷移モデルとして学習する。即ち、行動学習部13は、時系列データ記憶部12に記憶されている時系列データに基づいて、確率的状態遷移モデル(ユーザ活動モデル)のパラメータを算出する。
ステップS4において、行動学習部13は、ステップS3で算出された確率的状態遷移モデルのパラメータを、行動認識部14および行動予測部15に供給し、処理を終了する。
[到達時間予測処理]
次に、図8のユーザ活動モデル学習処理により得られたユーザ活動モデルを表す確率的状態遷移モデルのパラメータを用いて、目的地までの経路を探索し、到達時間を算出してユーザに提示する到達時間予測処理について説明する。
図9は、到達時間予測処理のフローチャートを示している。なお、この例では、図9の処理の前に、目的地が予め決められているものとするが、図9の処理の途中で目的地を入力するようにしてもよい。
初めに、ステップS21において、GPSセンサ11は、位置の時系列データを取得し、行動認識部14に供給する。行動認識部14には、所定のサンプル数の位置の時系列データが一時的に記憶される。
ステップS22において、行動認識部14は、学習により得られたパラメータに基づくユーザ活動モデルから、ユーザの現在の活動状態を認識する。即ち、行動認識部14は、ユーザの現在地を認識する。そして、行動認識部14は、ユーザの現在の状態ノードのノード番号を行動予測部15に供給する。
ステップS23において、行動予測部15は、現在探索している状態ノード(以下、適宜、現在の状態ノードともいう。)に対応する点が、端点、通過点、分岐点、またはループのいずれであるかを判定する。ステップS22の処理直後は、ユーザの現在地に対応する状態ノードが現在の状態ノードとなる。
ステップS23で、現在の状態ノードに対応する点が端点であると判定された場合、処理はステップS24に進み、行動予測部15は、現在の状態ノードをここまでの経路に接続し、この経路の探索を終了し、ステップS31に進む。なお、現在の状態ノードが現在地に対応する状態ノードである場合、ここまでの経路は存在しないため、接続する処理は行われない。ステップS25,S27、S30でも同様である。
ステップS23で、現在の状態ノードに対応する点が通過点であると判定された場合、処理はステップS25に進み、行動予測部15は、現在の状態ノードをここまでの経路に接続する。そして、ステップS26において、行動予測部15は、次の状態ノードを現在の状態ノードとし、移動する。ステップS26の処理後、処理はステップS23に戻る。
ステップS23で、現在の状態ノードに対応する点が分岐点であると判定された場合、処理はステップS27に進み、行動予測部15は、現在の状態ノードをここまでの経路と接続する。そして、ステップS28において、行動予測部15は、ここまでの経路を分岐の数だけ複製し、分岐先の状態ノードと接続する。さらにステップS29において、行動予測部15は、複製した経路の1つを選択し、その選択した経路の先の状態ノードを現在の状態ノードとし移動する。ステップS29の処理後、処理はステップS23に戻る。
一方、ステップS23で、現在の状態ノードに対応する点がループであると判定された場合、処理はステップS30に進み、行動予測部15は、現在の状態ノードをここまでの経路と接続せずに、この経路の探索を終了し、ステップS31に進む。
ステップS31において、行動予測部15は、未探索の経路があるかを判定する。ステップS31で、未探索の経路があると判定された場合、処理はステップS32に進み、行動予測部15は、現在地の状態ノードに戻り、未探索の経路の次の状態ノードを現在の状態ノードとし移動する。ステップS32の処理後、処理はステップS23に戻る。これにより、未探索の経路について、端点またはループにより探索が終了するまで経路の探索が実行される。
ステップS31で、未探索の経路がないと判定された場合、処理はステップS33に進み、行動予測部15は、探索された各経路の選択確率(生起確率)を計算する。行動予測部15は、各経路と、その選択確率を到達時間予測部16に供給する。
ステップS34において、到達時間予測部16は、行動予測部15によって探索された経路から、入力された目的地を含む経路を抽出し、目的地の到達確率を算出する。具体的には、到達時間予測部16は、目的地に複数の経路が存在する場合、その複数の経路の選択確率の和を、目的地の到達確率として計算する。目的地への経路が1つしかない場合、経路の選択確率が、そのまま、目的地の到達確率とされる。
ステップS35において、到達時間予測部16は、抽出された経路の数が提示数として予め設定された所定個数より多いかを判定する。
ステップS35で、抽出された経路の数が所定個数より多いと判定された場合、処理はステップS36に進み、到達時間予測部16は、表示部18に表示する所定個数の経路を決定する。例えば、到達時間予測部16は、選択される可能性の高い順に、所定個数の経路を決定することができる。
一方、ステップS35で、抽出された経路の数が所定個数以下であると判定された場合、ステップS36の処理がスキップされる。即ち、この場合、目的地に到達するための全ての経路が表示部18に表示される。
ステップS37において、到達時間予測部16は、表示部18に表示すると決定された各経路の到達時間を計算する。そして、到達時間予測部16は、目的地の到達確率および目的地までの経路と到達時間を表示する画像の信号を表示部18に供給する。
ステップS38において、表示部18は、到達時間予測部16から供給される画像の信号に基づいて、目的地の到達確率および目的地までの経路と到達時間を表示して、処理を終了する。
以上のように、予測システム1の第1の実施の形態では、GPSセンサ11により取得される位置の時系列データから、ユーザの活動状態を確率的状態遷移モデルとして学習する学習処理を行う。そして、予測システム1は、学習処理により得られたパラメータで表される確率的状態遷移モデルを用いて、入力された目的地の到達確率および目的地までの経路と到達時間を予測して、ユーザに提示する。
したがって、予測システム1の第1の実施の形態によれば、ユーザが指定した目的地の到達確率および目的地までの経路とその到達時間を予測して、ユーザに提示することができる。
<2.第2の実施の形態>
[予測システムの第2の実施の形態のブロック図]
図10は、本発明を適用した予測システムの第2の実施の形態の構成例を示すブロック図である。なお、図10において、上述した第1の実施の形態と対応する部分については同一の符号を付してあり、その説明は適宜省略する(その他の図についても同様)。
図10の予測システム1は、GPSセンサ11、速度演算部50、時系列データ記憶部51、行動学習部52、行動認識部53、行動予測部54、目的地予測部55、操作部17、および表示部18により構成される。
第1の実施の形態では、目的地はユーザが指定することとしたが、第2の実施の形態では、GPSセンサ11により取得される位置の時系列データに基づいて、目的地も予測システム1が予測する。目的地は1つだけでなく、複数の目的地が予測されることもある。予測システム1は、予測した目的地について到達確率、経路、および到達時間を算出してユーザに提示する。
目的地とされる自宅や勤務先、駅、買い物先、レストランなどでは、ユーザはその場所に所定時間滞在するのが一般的であり、ユーザの移動速度はほぼゼロに近い状態となる。一方、ユーザが目的地に移動している場合には、ユーザの移動速度は、移動手段に応じた特定のパターンで遷移する状態となる。従って、ユーザの移動速度の情報からユーザの行動状態、即ち、ユーザが目的地に滞在している状態(滞在状態)であるのか、または、移動している状態(移動状態)であるのかを認識し、滞在状態の場所を目的地として予測することができる。
速度演算部50は、GPSセンサ11から一定時間間隔で供給される位置データから移動速度を演算する。
具体的には、一定の時間間隔でkステップ目(k個目)に得られるときの位置データを、時刻tk、経度yk、緯度xkと表すと、kステップ目のx方向の移動速度vxkおよびy方向の移動速度vykは、次式(5)により計算することができる。
式(5)では、GPSセンサ11から得られる緯度経度のデータをそのまま利用しているが、緯度経度を距離に変換したり、速度を時速や分速で表すように変換するなどの処理は、必要に応じて適宜行うことができる。
また、速度演算部50は、式(5)で得られる移動速度vxkおよびvykからさらに、式(6)で表されるkステップ目の移動速度vkと進行方向の変化θkを求め、これを利用することができる。
式(6)で表される移動速度vkと進行方向の変化θkを利用する方が、式(5)の移動速度vxkおよびvykよりも以下の点で、特徴をうまく取り出すことができる。
1.移動速度vxkおよびvykのデータの分布は、緯度経度軸に対して偏りが生じるため、同じ移動手段(電車や徒歩など)であっても角度が異なった場合に識別できない可能性があるが、移動速度vkであればそのような可能性が少ない。
2.移動速度の絶対的な大きさ(|v|)だけで学習すると、機器のノイズによって生じる|v|のため、徒歩と滞在を区別できない。進行方向の変化も考慮することで、ノイズの影響を軽減することができる。
3.移動している場合は進行方向の変化が少ないが、滞在している場合は進行方向が定まらないので、進行方向の変化を使うと移動と滞在の識別がしやすい。
以上の理由から、本実施の形態では、速度演算部50は、移動速度のデータとして、式(6)で表される移動速度vkと進行方向の変化θkを求め、位置データとともに、時系列データ記憶部12または行動認識部53に供給する。
また、速度演算部50は、移動速度vkと進行方向の変化θkの演算を行う前に、ノイズ成分を除去するため、移動平均によるフィルタリング処理(前処理)を行う。
なお、以下では、進行方向の変化θkを、進行方向θkと略記する。
GPSセンサ11のなかには、移動速度を出力できるものも存在する。そのようなGPSセンサ11が採用されている場合、速度演算部50を省略し、GPSセンサ11が出力する移動速度をそのまま利用することができる。
時系列データ記憶部51は、速度演算部50から供給される位置および移動速度の時系列データを記憶する。
行動学習部52は、時系列データ記憶部51に記憶されている時系列データに基づいて、ユーザの移動軌跡と行動状態を確率的状態遷移モデルとして学習する。即ち、行動学習部52は、ユーザの現在地を認識し、目的地と、その経路および到達時間を予測するためのユーザ活動モデルを確率的状態遷移モデルとして学習する。
行動学習部52は、学習処理により得られた確率的状態遷移モデルのパラメータを行動認識部53、行動予測部54、および目的地予測部55に供給する。
行動認識部53は、学習により得られたパラメータの確率的状態遷移モデルを用いて、位置および移動速度の時系列データから、ユーザの現在地を認識する。行動認識部53は、ユーザの現在の状態ノードのノード番号を行動予測部54に供給する。
行動予測部54は、学習により得られたパラメータの確率的状態遷移モデルを用いて、ユーザの現在地から、ユーザが取りうる経路を過不足なく探索し、探索された経路ごとの選択確率を計算する。
即ち、行動認識部53および行動予測部54は、移動速度の時系列データを加えることにより移動経路以外に行動状態をも学習したパラメータを使用する点以外は、第1の実施の形態の行動認識部14および行動予測部15と同様である。
目的地予測部55は、学習により得られたパラメータの確率的状態遷移モデルを用いて、ユーザの目的地を予測する。
具体的には、目的地予測部55は、最初に、目的地候補を列挙する。目的地予測部55は、認識されるユーザの行動状態が滞在状態となる場所を目的地候補とする。
そして、目的地予測部55は、列挙した目的地候補のうち、行動予測部54により探索された経路上にある目的地候補を目的地に決定する。
次に、目的地予測部55は、決定した目的地ごとの到達確率を算出する。
目的地が多数検出された場合には、そのすべてについて表示部18に表示すると見づらくなったり、行く可能性の少ない目的地まで表示することもあり得る。したがって、第1の実施の形態において、探索された経路を絞り込んだのと同様に、目的地についても、到達確率の高い所定個数の目的地や、到達確率が所定値以上の目的地のみを表示するように、表示対象の目的地を絞り込むことができる。なお、目的地と経路の表示個数は異なっていても構わない。
表示対象の目的地が決定された場合、目的地予測部55は、目的地までの経路の到達時間を計算し、表示部18に表示させる。
なお、目的地までの経路が多数存在する場合には、目的地予測部55は、第1の実施の形態と同様に、選択確率に基づいて目的地への経路を所定個数に絞り込んだ上で、表示経路の到達時間のみを計算することができる。
また、目的地までの経路が多数存在する場合、選択される可能性の高い順で表示経路を決定する以外に、到達時間の短い順や、目的地までの距離の短い順に、表示経路を決定することも可能である。到達時間の短い順に表示経路を決定する場合には、例えば、目的地予測部55は、最初に、目的地までの経路の全てについて到達時間を計算し、計算された到達時間に基づいて、表示経路を決定する。目的地までの距離の短い順に表示経路を決定する場合には、例えば、目的地予測部55は、最初に、目的地までの経路の全てについて、状態ノードに対応する緯度経度の情報に基づいて目的地までの距離を計算し、計算された距離に基づいて、表示経路を決定する。
[行動学習部52の第1の構成例]
図11は、図10の行動学習部52の第1の構成例を示すブロック図である。
行動学習部52は、時系列データ記憶部51(図10)に記憶されている位置および移動速度の時系列データを用いて、ユーザの移動軌跡と行動状態を同時に学習する。
行動学習部52は、学習データ変換部61と統合学習部62により構成されている。
学習データ変換部61は、場所インデックス変換部71と行動状態認識部72により構成され、時系列データ記憶部51から供給される位置および移動速度のデータを、場所インデックスと行動モードのデータに変換し、統合学習部62に供給する。
時系列データ記憶部51から供給される位置の時系列データは、場所インデックス変換部71に供給される。場所インデックス変換部71は、図1の行動認識部14と同様の構成を採用することができる。即ち、場所インデックス変換部71は、学習により得られたパラメータに基づくユーザ活動モデルから、ユーザの現在地に対応する、ユーザの現在の活動状態を認識する。そして、場所インデックス変換部71は、ユーザの現在の状態ノードのノード番号を、場所を示すインデックス(場所インデックス)として、統合学習部62に供給する。
場所インデックス変換部71が採用するパラメータを学習する学習器には、図1の行動認識部14の学習器である、図1の行動学習部13の構成を採用することができる。
時系列データ記憶部51から供給される移動速度の時系列データは、行動状態認識部72に供給される。行動状態認識部72は、ユーザの行動状態を確率的状態遷移モデルとして学習して得られたパラメータを用いて、供給される移動速度に対応するユーザの行動状態を認識し、認識結果を行動モードとして統合学習部62に供給する。行動状態認識部72が認識するユーザの行動状態としては、少なくとも滞在状態と移動状態が存在する必要がある。本実施の形態では、図14等を参照して後述するように、行動状態認識部72は、移動状態を、さらに徒歩、自転車、車などの移動手段によって分類した行動モードを統合学習部62に供給する。
したがって、統合学習部62には、地図上の位置に対応する場所インデックスをシンボルとする時系列離散データと、行動モードをシンボルとする時系列離散データとが、学習データ変換部61から供給される。
統合学習部62は、場所インデックスをシンボルとする時系列離散データと、行動モードをシンボルとする時系列離散データとを用いて、ユーザの活動状態を確率的状態遷移モデルにより学習する。具体的には、統合学習部62は、ユーザの活動状態を表すマルチストリームHMMのパラメータλを学習する。
ここで、マルチストリームHMMは、通常のHMMと同様な遷移確率を有する状態ノードから、複数の異なる確率法則に従うデータが出力されるようなHMMである。マルチストリームHMMでは、パラメータλのうち、出力確率密度関数bj(x)が時系列データごとに別々に用意される。
本実施の形態では、時系列データが、場所インデックスの時系列データと行動モードの時系列データの2つあるので、出力確率密度関数bj(x)が場所インデックスの時系列データに対応する出力確率密度関数b1j(x)と、行動モードの時系列データに対応する出力確率密度関数b2j(x)とが用意される。出力確率密度関数b1j(x)は、マルチストリームHMMの状態ノードがjであった場合に、地図上のインデックスがxとなる確率である。出力確率密度関数b2j(x)は、マルチストリームHMMの状態ノードがjであった場合に、行動モードがxとなる確率である。したがって、マルチストリームHMMでは、地図上のインデックスと行動モードが関連付けられた形でユーザの活動状態が学習(統合学習)される。
より具体的には、統合学習部62は、各状態ノードの出力する場所インデックスの確率(どの場所インデックスが出力されるかの確率)と、各状態ノードの出力する行動モードの確率(どの行動のモードが出力されるかの確率)を学習する。学習により得られた統合モデル(マルチストリームHMM)によれば、”滞在状態”の行動モードが確率的に出力されやすい状態ノードが求められる。そして、認識された状態ノードから、場所インデックスを求めることで、目的地候補の場所インデックスを認識することができる。さらに、目的地候補の場所インデックスが示す緯度経度分布から、目的地の位置を認識することができる。
以上のように、観測される行動モードが“滞在状態”になる確率が高い状態ノードに対応する場所インデックスの示す位置がユーザの滞在場所であると推定される。そして、上述したように、“滞在状態”となる場所は多くの場合、目的地であるから、この滞在場所を目的地として推定することができる。
統合学習部62は、学習により得られた、ユーザの活動状態を表すマルチストリームHMMのパラメータλを、行動認識部53、行動予測部54、および目的地予測部55に供給する。
[行動学習部52の第2の構成例]
図12は、図10の行動学習部52の第2の構成例を示すブロック図である。
図12の行動学習部52は、学習データ変換部61’と統合学習部62’により構成されている。
学習データ変換部61’は、図11の学習データ変換部61と同様の行動状態認識部72のみを有している。学習データ変換部61’では、時系列データ記憶部51から供給される位置データは、そのまま統合学習部62’に供給される。一方、時系列データ記憶部51から供給される移動速度のデータは、行動状態認識部72により行動モードに変換され、統合学習部62’に供給される。
図11の行動学習部52の第1の構成例では、位置データを場所インデックスに変換するため、統合学習部62では、学習モデル(HMM)の尤度に、地図上で近い、遠いといった情報を反映できない。これに対して、図12の行動学習部52の第2の構成例では、位置データをそのまま統合学習部62’に供給することにより、そのような距離の情報を学習モデル(HMM)の尤度に反映させることができる。
また、第1の構成例では、場所インデックス変換部71と行動状態認識部72におけるユーザ活動モデル(HMM)の学習と、統合学習部62におけるユーザ活動モデルの学習の2段階の学習が必要である。第2の構成例では、少なくとも場所インデックス変換部71のユーザ活動モデルの学習は不要となるので、計算処理の負担が軽減される。
一方で、第1の構成例では、インデックスに変換するので、変換前のデータは位置データに限らず、何であっても構わないが、第2の構成例では、位置データに限定されるので汎用性が低くなるともいえる。
統合学習部62’は、位置の時系列データと、行動モードをシンボルとする時系列離散データとを用いて、ユーザの活動状態を確率的状態遷移モデル(マルチストリームHMM)により学習する。具体的には、統合学習部62’は、各状態ノードから出力される緯度経度の分布パラメータと、行動モードの確率を学習する。
統合学習部62’の学習により得られた統合モデル(マルチストリームHMM)によれば、”滞在状態”の行動モードが確率的に出力されやすい状態ノードが求められる。そして、求められた状態ノードから、緯度経度分布を求めることができる。さらに、緯度経度分布から、目的地の位置を求めることができる。
以上のように、観測される行動モードが“滞在状態”になる確率が高い状態ノードに対応する緯度経度分布の示す場所が、ユーザの滞在場所であると推定される。そして、上述したように、“滞在状態”となる場所は多くの場合、目的地であるから、その滞在場所を目的地として推定することができる。
次に、図11および図12の行動状態認識部72で使用されるユーザ活動モデル(HMM)のパラメータを学習する学習器の構成例について説明する。以下では、行動状態認識部72の学習器の構成例として、カテゴリHMMにより学習する学習器91A(図13)の例と、マルチストリームHMMにより学習する学習器91B(図20)の例を説明する。
[行動状態認識部72の学習器の第1の構成例]
図13は、カテゴリHMMにより、行動状態認識部72で使用されるユーザ活動モデルのパラメータを学習する学習器91Aの構成例を示している。
カテゴリHMMでは、学習する教師データが予めどのカテゴリ(クラス)に属するデータであるのかが既知であり、カテゴリごとにHMMのパラメータが学習される。
学習器91Aは、移動速度データ記憶部101、行動状態ラベリング部102、および行動状態学習部103により構成される。
移動速度データ記憶部101は、時系列データ記憶部51(図10)から供給される移動速度の時系列データを記憶する。
行動状態ラベリング部102は、移動速度データ記憶部101から時系列に順次供給される移動速度のデータに対し、ユーザの行動状態をラベル(カテゴリ)として付与する。行動状態ラベリング部102は、移動速度のデータに行動状態が対応付けられたラベル済み移動速度データを行動状態学習部103に供給する。例えば、kステップ目の移動速度vkと進行方向θkに対して、行動状態を表すラベルMを付与したデータが行動状態学習部103に供給される。
行動状態学習部103は、行動状態ラベリング部102から供給されるラベル済み移動速度データを、カテゴリごとに分類し、カテゴリ単位で、ユーザ活動モデル(HMM)のパラメータを学習する。学習の結果得られたカテゴリ毎のパラメータは、図10または図11の行動状態認識部72に供給される。
[行動状態の分類例]
図14は、行動状態をカテゴリごとに分類する場合の分類例を示している。
図14に示されるように、まず、ユーザの行動状態は、滞在状態と移動状態に分類することができる。本実施の形態では、行動状態認識部72が認識するユーザの行動状態としては、上述したように、少なくとも滞在状態と移動状態が存在する必要があるので、この2つに分類することは必須である。
さらに、移動状態は、移動手段によって、電車、車(バスなども含む)、自転車、徒歩に分類することができる。電車は、さらに、特急、快速、ローカルなどに分類することができ、車は、さらに、高速、一般道などに分類することができる。また、徒歩は、走る、普通、散歩などに分類することができる。
本実施の形態では、ユーザの行動状態を、図14において斜線で示される“滞在”、“電車(快速)”、“電車(ローカル)”、“車(高速)”、“車(一般道)”、“自転車”、および“徒歩”に分類することとする。なお、“電車(特急)”は、学習データが得られなかったため省略した。
カテゴリの分類の仕方が図14に示した例に限定されるものではないことは言うまでもない。また、移動手段による移動速度の変化はユーザによって大きく異なるものではないので、学習データとしての移動速度の時系列データは、認識対象のユーザのものである必要はない。
[行動状態ラベリング部102の処理例]
次に、図15および図16を参照して、行動状態ラベリング部102の処理例について説明する。
図15は、行動状態ラベリング部102に供給される移動速度の時系列データの例を示している。
図15では、行動状態ラベリング部102から供給される移動速度のデータ(v,θ)を、(t,v)および(t,θ)の形で示している。図15において、四角(■)のプロットは移動速度vを表し、丸(●)のプロットは進行方向θを表している。また、横軸は時間tを表し、右側の縦軸は進行方向θを、左側の縦軸は移動速度vを表す。
図15の時間軸の下方に示されている“電車(ローカル)”、“徒歩”、“滞在”の文字は、説明のため付加したものである。図15の時系列データの最初は、ユーザが電車(ローカル)で移動中である場合の移動速度のデータであり、次が“徒歩”で移動中である場合、その次が“滞在”である場合の移動速度のデータとなっている。
ユーザが“電車(ローカル)”で移動している場合、電車が駅で停車し、出発するとき加速し、再度減速して駅に停車することを繰り返すので、移動速度vのプロットが繰り返し上下に振れるという特徴が表れている。なお、電車が停止している場合でも移動速度が0になっていないのは、移動平均によるフィルタリング処理を行っているためである。
また、ユーザが“徒歩”で移動している場合と“滞在”している場合は、最も区別しにくい状態であるが、移動平均によるフィルタリング処理により、移動速度vに明らかな違いが見られる。また、“滞在”では、進行方向θが瞬時に大きく変化する特徴がみられ、“徒歩”との差別化が容易であることがわかる。このように、移動平均によるフィルタリング処理、および、ユーザの移動を移動速度vと進行方向θで表すことにより、“徒歩”と“滞在”の区別が容易になっていることがわかる。
なお、“電車(ローカル)”と“徒歩”の間の部分は、フィルタリング処理のため、行動の切り替わり点がはっきりしない部分である。
図16は、図15に示した時系列データに対して、ラベル付けを行う例を示している。
例えば、行動状態ラベリング部102は、図15に示した移動速度のデータをディスプレイに表示する。そして、ユーザは、ディスプレイに表示された移動速度のデータのうち、ラベル付けをしたい部分を矩形の領域で囲む操作を、マウスなどにより行う。また、ユーザは、指定したデータに対して付与するラベルをキーボードなどから入力する。行動状態ラベリング部102は、ユーザによって指定された矩形領域に含まれる移動速度のデータに、入力されたラベルを付与することにより、ラベル付けを行う。
図16では、“徒歩”に相当する部分の移動速度のデータを矩形の領域で指示した例が示されている。なお、このとき、フィルタリング処理のため、行動の切り替わり点がはっきりしない部分については、指示する領域に含めないようにすることができる。時系列データの長さは、行動の違いが時系列データに明確に出る長さから決める。例えば、20ステップ(15秒×20ステップ=300秒)程度とすることができる。
[行動状態学習部103の構成例]
図17は、図13の行動状態学習部103の構成例を示すブロック図である。
行動状態学習部103は、分類部121とHMM学習部1221乃至1227により構成される。
分類部121は、行動状態ラベリング部102から供給されるラベル済み移動速度データのラベルを参照し、ラベルに対応するHMM学習部1221乃至1227のいずれかに供給する。即ち、行動状態学習部103では、ラベル(カテゴリ)ごとにHMM学習部122が用意されており、行動状態ラベリング部102から供給されるラベル済み移動速度データが、ラベルごとに分類されて、供給される。
HMM学習部1221乃至1227それぞれは、供給されるラベル済み移動速度データを用いて、学習モデル(HMM)を学習する。そして、HMM学習部1221乃至1227それぞれは、学習により得られるHMMのパラメータλを、図10または図11の行動状態認識部72に供給する。
HMM学習部1221は、ラベルが“滞在”である場合の、学習モデル(HMM)を学習する。HMM学習部1222は、ラベルが“徒歩”である場合の、学習モデル(HMM)を学習する。HMM学習部1223は、ラベルが“自転車”である場合の、学習モデル(HMM)を学習する。HMM学習部1224は、ラベルが“電車(ローカル)”である場合の、学習モデル(HMM)を学習する。HMM学習部1225は、ラベルが“車(一般道)”である場合の、学習モデル(HMM)を学習する。HMM学習部1226は、ラベルが“電車(快速)”である場合の、学習モデル(HMM)を学習する。HMM学習部1227は、ラベルが“車(高速)”である場合の、学習モデル(HMM)を学習する。
[学習結果の例]
図18は、行動状態学習部103による学習結果の一部を示している。
図18Aは、HMM学習部1221の学習結果、すなわち、ラベルが“滞在”である場合の学習結果を示している。図18Bは、HMM学習部1222の学習結果、すなわち、ラベルが“徒歩”である場合の学習結果を示している。
図18Cは、HMM学習部1223の学習結果、すなわち、ラベルが“自転車”である場合の学習結果を示している。図18Dは、HMM学習部1224の学習結果、すなわち、ラベルが“電車(ローカル)”である場合の学習結果を示している。
図18A乃至図18Dにおいて、横軸は移動速度vを、縦軸は進行方向θを表し、グラフ上の各点は、供給された学習データをプロットしたものである。また、グラフ上の楕円は、学習により得られた状態ノードを表し、それぞれの混合正規確率分布の分布密度は同一である。従って、大きい楕円で示される状態ノードの分散は大きくなっている。
図18Aに示される、ラベルが“滞在”である場合の移動速度のデータは、移動速度vは0付近に集中し、進行方向θは全範囲に広がって、そのばらつきは大きい。
一方、図18B乃至図18Dに示される、ラベルが“徒歩”、“自転車”、“電車(ローカル)”である場合には、進行方向θのばらつきは小さい。従って、進行方向θのばらつきに注目すると、滞在状態と移動状態の大分類が可能であることがわかる。
また、移動状態のなかの“徒歩”、“自転車”、および“電車(ローカル)”では、移動速度vが異なり、その特徴がグラフでも示されている。“徒歩”と“自転車”は、一定速度で走ることが多く、“電車(ローカル)”は、速度の変化が大きいので、速度方向に関するばらつきが大きい。
図18A乃至図18Dにおいて学習結果として示される楕円は、上記のような各カテゴリのプロットの特徴を捉えた形状を示しており、各行動状態が的確に学習されていると言える。
[行動状態認識部72の第1の構成例]
図19は、学習器91Aで学習されたパラメータを利用する場合の行動状態認識部72である、行動状態認識部72Aの構成例を示すブロック図である。
行動状態認識部72Aは、尤度計算部1411乃至1417と尤度比較部142とにより構成されている。
尤度計算部1411は、HMM学習部1221の学習により得られたパラメータを用いて、時系列データ記憶部51から供給される移動速度の時系列データに対する尤度を計算する。即ち、尤度計算部1411は、行動状態が“滞在”である尤度を計算する。
尤度計算部1412は、HMM学習部1222の学習により得られたパラメータを用いて、時系列データ記憶部51から供給される移動速度の時系列データに対する尤度を計算する。即ち、尤度計算部1412は、行動状態が“徒歩”である尤度を計算する。
尤度計算部1413は、HMM学習部1223の学習により得られたパラメータを用いて、時系列データ記憶部51から供給される移動速度の時系列データに対する尤度を計算する。即ち、尤度計算部1413は、行動状態が“自転車”である尤度を計算する。
尤度計算部1414は、HMM学習部1224の学習により得られたパラメータを用いて、時系列データ記憶部51から供給される移動速度の時系列データに対する尤度を計算する。即ち、尤度計算部1414は、行動状態が“電車(ローカル)”である尤度を計算する。
尤度計算部1415は、HMM学習部1225の学習により得られたパラメータを用いて、時系列データ記憶部51から供給される移動速度の時系列データに対する尤度を計算する。即ち、尤度計算部1415は、行動状態が“車(一般道)”である尤度を計算する。
尤度計算部1416は、HMM学習部1226の学習により得られたパラメータを用いて、時系列データ記憶部51から供給される移動速度の時系列データに対する尤度を計算する。即ち、尤度計算部1416は、行動状態が“電車(快速)”である尤度を計算する。
尤度計算部1417は、HMM学習部1227の学習により得られたパラメータを用いて、時系列データ記憶部51から供給される移動速度の時系列データに対する尤度を計算する。即ち、尤度計算部1417は、行動状態が“車(高速)”である尤度を計算する。
尤度比較部142は、尤度計算部1411乃至1417それぞれから供給される尤度を比較し、尤度の最も高い行動状態を選択し、行動モードとして出力する。
[行動状態認識部72の学習器の第2の構成例]
図20は、マルチストリームHMMにより、行動状態認識部72で使用されるユーザ活動モデルのパラメータを学習する学習器91Bの構成例を示している。
学習器91Aは、移動速度データ記憶部101、行動状態ラベリング部161、および行動状態学習部162により構成される。
行動状態ラベリング部161は、移動速度データ記憶部101から時系列に順次供給される移動速度のデータに対し、ユーザの行動状態をラベル(行動モード)として付与する。行動状態ラベリング部161は、移動速度の時系列データ(v,θ)と、それと関連付けられた行動モードMの時系列データを行動状態学習部162に供給する。
行動状態学習部162は、マルチストリームHMMにより、ユーザの行動状態を学習する。マルチストリームHMMでは、異なる種類の時系列データ(ストリーム)を関連付けながら学習することができる。行動状態学習部162には、連続量である移動速度vと進行方向θの時系列データと、離散量である行動モードMの時系列データが供給される。行動状態学習部162は、各状態ノードから出力される移動速度の分布パラメータと、行動モードの確率を学習する。学習により得られたマルチストリームHMMによれば、例えば、移動速度の時系列データから、現在の状態ノードが求められる。そして、求められた状態ノードから、行動モードを認識することができる。
カテゴリHMMを用いた第1の構成例では、HMMをカテゴリごとに7個用意する必要があるが、マルチストリームHMMでは1個のHMMで十分である。ただし、状態ノードの数は、第1の構成例において7個のカテゴリで使用された状態ノードの総数と同程度用意する必要がある。
[行動状態ラベリング部161の処理例]
図21を参照して、行動状態ラベリング部161の処理例について説明する。
上述した第1の構成例における行動状態ラベリング部102によるラベル付けの方法では、移動手段の遷移の情報は失われる。したがって、移動手段の遷移にあまり起こりえないものが生じる場合がある。行動状態ラベリング部161では、移動手段の遷移の情報を失わずに、移動速度のデータに対し、ユーザの行動状態のラベルを付与する。
具体的には、ユーザは、移動速度ではなく、場所(位置)を見れば、その場所でどのような行動をしていたかを把握しやすい。そこで、行動状態ラベリング部161は、移動速度の時系列データに対応する位置データをユーザに示し、位置に対してラベルを付与させることで、移動速度の時系列データに、行動状態をラベル付けする。
図21の例では、移動速度の時系列データに対応する位置データが、横軸を経度、縦軸を緯度とする地図上に表示されている。ユーザは、所定の行動状態に対応する場所を矩形の領域で囲む操作を、マウスなどにより行う。また、ユーザは、指定した領域に対して付与するラベルをキーボードなどから入力する。行動状態ラベリング部161は、矩形の領域で囲まれた領域内にプロットされている位置に対応する移動速度の時系列データに、入力されたラベルを付与することにより、ラベル付けを行う。
図21では、“電車(ローカル)”および“自転車”に相当する部分を矩形の領域で指示した例が示されている。
なお、図21では、入力される時系列データの全てが表示されているが、データ数が多い場合には、例えば、20ステップずつ表示することとし、表示されたデータに対するラベル付けを順次繰り返すような方法でもよい。また、ユーザ自身が過去のデータを振り返って日記のようにラベリングするアプリケーションなどを用意してもよい。即ち、ラベル付けの方法は特に限定されない。また、ラベル付けをするのは、データを作成した本人である必要はない。
[学習結果の例]
図22は、行動状態学習部162による学習結果を示している。
図22において、横軸は進行方向θを、縦軸は移動速度vを表し、グラフ上の各点は、供給された学習データをプロットしたものである。また、グラフ上の楕円は、学習により得られた状態ノードを表し、それぞれの混合正規確率分布の分布密度は同一である。従って、大きい楕円で示される状態ノードの分散は大きくなっている。図22の状態ノードは、移動速度に対応する。行動モードについての情報は、図22では図示されていないが、各状態ノードに、それぞれの行動ノードの観測確率が付随して学習されている。
[行動状態認識部72の第2の構成例]
図23は、学習器91Bで学習されたパラメータを利用する場合の行動状態認識部72である、行動状態認識部72Bの構成例を示すブロック図である。
行動状態認識部72Bは、状態ノード認識部181と行動モード認識部182により構成される。
状態ノード認識部181は、学習器91Bで学習されたマルチストリームHMMのパラメータを用いて、時系列データ記憶部51から供給される移動速度の時系列データから、マルチストリームHMMの状態ノードを認識する。状態ノード認識部181は、認識された現在の状態ノードのノード番号を行動モード認識部182に供給する。
行動モード認識部182は、状態ノード認識部181で認識された状態ノードで、最も確率の高い行動モードを、現在の行動モードとして認識し、出力する。
なお、上述した例では、場所インデックス変換部71と行動状態認識部72において、HMMによりモデル化することで、時系列データ記憶部51から供給される位置および移動速度のデータを、場所インデックスと行動モードのデータに変換するようにした。
しかし、これ以外の方法によって、位置および移動速度のデータを、場所インデックスと行動モードのデータに変換するようにしてもよい。例えば、行動モードについては、GPSセンサ11とは別に、加速度センサやジャイロセンサ等のモーションセンサを用いて、加速度等の検出結果から、ユーザの移動の有無を検出し、行動モードを判定するようにしてもよい。
[目的地到達時間予測処理]
次に、図24および図25のフローチャートを参照して、図10の予測システム1による目的地到達時間予測処理について説明する。
即ち、図24および図25は、位置および移動速度の時系列データから、目的地を予測し、かつ、目的地までの経路および到達時間を算出してユーザに提示する目的地到達時間予測処理のフローチャートである。
図24のステップS51乃至ステップS63の処理は、ステップS51で取得する時系列データが、位置と移動速度のデータである以外は、図9に示した到達時間予測処理のステップS21乃至S33と同様であるので、その説明は省略する。
図24のステップS51乃至ステップS63の処理により、ユーザの現在地が認識され、そこからユーザが取りうる経路が過不足なく探索され、各経路の選択確率が計算された後、処理は、図25のステップS64に進む。
ステップS64において、目的地予測部55は、ユーザの目的地を予測する。具体的には、目的地予測部55は、最初に、目的地候補を列挙する。目的地予測部55は、ユーザの行動状態が滞在状態となる場所を目的地候補とする。そして、目的地予測部55は、列挙した目的地候補のうち、行動予測部54により探索された経路上にある目的地候補を目的地に決定する。
ステップS65において、目的地予測部55は、目的地ごとの到達確率を計算する。即ち、目的地予測部55は、複数の経路が存在する目的地については、その複数の経路の選択確率の和を、目的地の到達確率として計算する。1つの経路しかない目的地については、経路の選択確率が、そのまま、目的地の到達確率とされる。
ステップS66で、目的地予測部55は、予測された目的地の数が所定個数より多いかを判定する。ステップS66で、予測された目的地の数が所定個数より多いと判定された場合、処理はステップS67に進み、目的地予測部55は、表示部18に表示する所定個数の目的地を決定する。例えば、目的地予測部55は、目的地の到達確率の高い順に、所定個数の目的地を決定することができる。
一方、ステップS66で、予測された目的地の数が所定個数以下であると判定された場合、ステップS67はスキップされる。即ち、この場合、予測された目的地のすべてが表示部18に表示される。
ステップS68において、目的地予測部55は、行動予測部54によって探索された経路から、予測された目的地を含む経路を抽出する。複数の目的地が予測されている場合には、予測された目的地それぞれについて、経路が抽出される。
ステップS69において、目的地予測部55は、抽出された経路の数が提示数として予め設定された所定個数より多いかを判定する。
ステップS69で、抽出された経路の数が所定個数より多いと判定された場合、処理はステップS70に進み、目的地予測部55は、表示部18に表示する所定個数の経路を決定する。例えば、目的地予測部55は、選択される可能性の高い順に、所定個数の経路を決定することができる。
一方、ステップS69で、抽出された経路の数が所定個数以下であると判定された場合、ステップS70の処理がスキップされる。即ち、この場合、目的地に到達するための全ての経路が表示部18に表示される。
ステップS71において、目的地予測部55は、表示部18に表示すると決定された各経路の到達時間を計算し、目的地の到達確率および目的地までの経路と到達時間を表示する画像の信号を表示部18に供給する。
ステップS72において、表示部18は、目的地予測部55から供給される画像の信号に基づいて、目的地の到達確率および目的地までの経路と到達時間を表示して、処理を終了する。
以上のように、図10の予測システム1によれば、位置および移動速度の時系列データから、目的地を予測し、かつ、目的地の到達確率および目的地までの経路と到達時間を算出してユーザに提示することができる。
[図10の予測システム1の処理結果例]
図26乃至図29は、図10の予測システム1による学習および目的地到達時間予測の処理を検証した検証実験の結果例を示している。なお、予測システム1の学習処理の学習データは、図3に示したデータが利用されている。
図26は、図11の場所インデックス変換部71に入力されるパラメータの学習結果を示している。
この検証実験では、状態ノードの数を400個で演算した。図26において、状態ノードを示す楕円付近に付された数字は、状態ノードのノード番号を示している。図26に示される学習されたマルチストリームHMMによれば、ユーザの移動経路を覆うように状態ノードが学習されている。即ち、ユーザの移動経路が的確に学習されていることがわかる。この状態ノードのノード番号が、場所インデックスとして統合学習部62に入力される。
図27は、図11の行動状態認識部72に入力されるパラメータの学習結果を示している。
図27では、行動モードが“滞在”であると認識された点(位置)が、黒でプロットされている。また、行動モードが“滞在”以外(“徒歩”、“電車(ローカル)”など)であると認識された点が、灰色でプロットされている。
また、図27では、実際に学習データを作成した実験者が滞在場所としてリストアップした位置に、丸(○)が付されている。丸付近に記された番号は、単に、滞在場所を区別するために付した序数である。
図27によれば、学習により決定された滞在状態を示す位置と、実験者が滞在場所としてリストアップした位置は一致しており、ユーザの行動状態(行動モード)が的確に学習されていることがわかる。
図28は、統合学習部62の学習結果を示している。
図28では、図面の制約上、その区別が現われていないが、学習により得られたマルチストリームHMMの各状態ノードのうち、“滞在”の観測確率が50%以上となっている状態ノードについて調べると、図27に示した位置と一致する。
図29は、統合学習部62が学習した学習モデル(マルチストリームHMM)により、図24および図25の目的地到達時間予測処理を実行した結果を示している。
図29に示される処理結果によれば、現在地に対して、図3に示した外出先1乃至4が、それぞれ、目的地1乃至4として予測され、各目的地までの到達確率と到達時間が算出されている。
目的地1の到達確率は50%で、到達時間は35分である。目的地2の到達確率は20%で、到達時間は10分である。目的地3の到達確率は20%で、到達時間は25分である。目的地4の到達確率は10%で、到達時間は18.2分である。また、目的地1乃至4それぞれまでの経路が太線の実線で示されている。
したがって、図10の予測システム1によれば、ユーザの現在地から目的地を予測し、その予測した目的地までの経路とその到達時間をさらに予測して、ユーザに提示することができる。
なお、上述した例では、目的地をユーザの行動状態から予測するようにしたが、目的地の予測はこれに限定されない。例えば、ユーザが目的地として過去に入力した場所から目的地を予測するようにしてもよい。
図10の予測システム1は、このような予測結果から、さらに、到達確率の最も高い目的地についての情報を表示部18に表示させるようにすることなども可能である。例えば、目的地が駅などである場合には、その駅の時刻表を表示させたり、目的地が店舗である場合には、店舗の詳細情報(営業時間やセール情報など)を表示させることができる。これにより、ユーザの利便性がさらに向上する。
また、図10の予測システム1には、時系列データとして、ユーザの行動を作用するその他の条件を時系列化して入力することで、行動の条件付き予測を行わせることもできる。例えば、曜日(平日休日)などの条件を入力して学習することで、曜日毎に行動(目的地)が異なる場合の目的地の予測を行うことができる。また、時間帯(または午前、午後、夜間)などの条件を入力して学習することで、時間帯別に行動が異なる場合の目的地の予測を行うことができる。さらに、天気(晴れ曇り雨)などの条件を入力して学習することで、天気によって異なる目的地を予測することができる。
なお、上述した実施の形態では、行動状態認識部72が、行動モードを統合学習部62または62’へ入力するため、移動速度から行動モードに変換する変換手段として設けられている。しかしながら、行動状態認識部72を、入力される移動速度に対して、ユーザが移動状態かまたは滞在状態か、さらに移動状態である場合には何の移動手段で移動しているか等を識別して出力する行動状態識別装置として、それ単独で用いることも可能である。この場合、行動状態認識部72の出力を、異なるアプリケーションへ入力することもできる。
上述した一連の処理は、ハードウエアにより実行することもできるし、ソフトウエアにより実行することもできる。一連の処理をソフトウエアにより実行する場合には、そのソフトウエアを構成するプログラムが、コンピュータにインストールされる。ここで、コンピュータには、専用のハードウエアに組み込まれているコンピュータや、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば汎用のパーソナルコンピュータなどが含まれる。
図30は、上述した一連の処理をプログラムにより実行するコンピュータのハードウエアの構成例を示すブロック図である。
コンピュータにおいて、CPU(Central Processing Unit)201,ROM(Read Only Memory)202,RAM(Random Access Memory)203は、バス204により相互に接続されている。
バス204には、さらに、入出力インタフェース205が接続されている。入出力インタフェース205には、入力部206、出力部207、記憶部208、通信部209、ドライブ210、およびGPSセンサ211が接続されている。
入力部206は、キーボード、マウス、マイクロホンなどよりなる。出力部207は、ディスプレイ、スピーカなどよりなる。記憶部208は、ハードディスクや不揮発性のメモリなどよりなる。通信部209は、ネットワークインタフェースなどよりなる。ドライブ210は、磁気ディスク、光ディスク、光磁気ディスク、或いは半導体メモリなどのリムーバブル記録媒体212を駆動する。GPSセンサ211は、図1のGPSセンサ11に対応する。
以上のように構成されるコンピュータでは、CPU201が、例えば、記憶部208に記憶されているプログラムを、入出力インタフェース205及びバス204を介して、RAM203にロードして実行することにより、上述した一連の処理が行われる。
コンピュータ(CPU201)が実行するプログラムは、例えば、パッケージメディア等としてのリムーバブル記録媒体212に記録して提供することができる。また、プログラムは、ローカルエリアネットワーク、インターネット、デジタル衛星放送といった、有線または無線の伝送媒体を介して提供することができる。
コンピュータでは、プログラムは、リムーバブル記録媒体212をドライブ210に装着することにより、入出力インタフェース205を介して、記憶部208にインストールすることができる。また、プログラムは、有線または無線の伝送媒体を介して、通信部209で受信し、記憶部208にインストールすることができる。その他、プログラムは、ROM202や記憶部208に、あらかじめインストールしておくことができる。
なお、コンピュータが実行するプログラムは、本明細書で説明する順序に沿って時系列に処理が行われるプログラムであっても良いし、並列に、あるいは呼び出しが行われたとき等の必要なタイミングで処理が行われるプログラムであっても良い。
なお、本明細書において、フローチャートに記述されたステップは、記載された順序に沿って時系列的に行われる場合はもちろん、必ずしも時系列的に処理されなくとも、並列に、あるいは呼び出しが行われたとき等の必要なタイミングで実行されてもよい。
なお、本明細書において、システムとは、複数の装置により構成される装置全体を表すものである。
本発明の実施の形態は、上述した実施の形態に限定されるものではなく、本発明の要旨を逸脱しない範囲において種々の変更が可能である。