(57)【要約】【課題】現時刻以降の将来に、特定の場所、あるいは、特定の行動を行う場所にいたる確率、経路、経過時間を予測するための学習パラメータを、より簡単に学習することができるようにする。【解決手段】状態系列生成部７２は、位置データの時系列データを、モデル学習部７１から供給されたパラメータに基づくユーザ活動モデルにより、状態ノードsiの時系列データに変換して、状態系列データを生成する。パラメータ演算部６２は、状態系列データおよび行動モードの時系列データを用いて、状態ノードの出現頻度、状態ノード間の遷移の出現頻度、および状態ノードに対応する時系列データのパラメータを計算することにより、ユーザの移動経路と行動モードの確率的状態遷移モデルのパラメータを演算する。本発明は、例えば、ユーザの目的地および移動経路を予測するための学習モデルのパラメータを学習する学習器に適用できる。【選択図】図１２
2011118776.tif 000002
【特許請求の範囲】
【請求項１】
第１の事象と第２の事象の時系列データのうちの前記第１の事象の時系列データから、前記第１の事象の状態遷移モデルを確率的状態遷移モデルとして表したときの状態ノードの時系列データを生成する状態系列生成手段と、
前記第１の事象の時系列データおよび前記状態ノードの時系列データを用いて、前記状態ノードの出現頻度、状態ノード間の遷移の出現頻度、および状態ノードに対応する前記時系列データのパラメータを計算することにより、前記第１の事象と第２の事象の確率的状態遷移モデルのパラメータを演算する演算手段と
を備えるデータ処理装置。
【請求項２】
前記第１の事象の時系列データは、ユーザの位置データの時系列データであり、
前記第２の事象の時系列データは、前記ユーザの行動モードの時系列データであり、
前記状態系列生成手段は、前記ユーザの位置データの時系列データから、前記ユーザの活動状態を表す活動モデルを確率的状態遷移モデルとして表したときの状態ノードの時系列データを生成し、
前記演算手段は、前記位置データの時系列データおよび前記状態ノードの時系列データを用いて、前記状態ノードの出現頻度、状態ノード間の遷移の出現頻度、および状態ノードに対応する前記時系列データのパラメータを計算することにより、前記確率的状態遷移モデルのパラメータを演算する
請求項１に記載のデータ処理装置。
【請求項３】
前記状態系列生成手段は、前記確率的状態遷移モデルとして隠れマルコフモデルを採用し、学習により求めた前記隠れマルコフモデルのパラメータを用いて、前記ユーザの位置データの時系列データから、前記状態ノードの時系列データを生成する
請求項２に記載のデータ処理装置。
【請求項４】
前記演算手段は、
前記状態ノードの時系列データに対し、各状態の頻度と各状態遷移の頻度をカウントするカウント手段と、
前記時系列データを対応する状態ノードで分離して、各状態ノードに分類された前記時系列データの統計量を計算する統計量計算手段とを有し、
前記各状態の頻度と各状態遷移の頻度と、各状態ノードに分類された前記時系列データの統計量から、前記隠れマルコフモデルの遷移確率と観測確率を計算する
請求項３に記載のデータ処理装置。
【請求項５】
前記状態系列生成手段が生成した前記状態ノードの時系列データを修正する状態系列修正手段をさらに備える
請求項４に記載のデータ処理装置。
【請求項６】
前記状態系列修正手段は、状態遷移に新たな制約を満たすように、前記状態ノードの時系列データを修正する
請求項５に記載のデータ処理装置。
【請求項７】
前記状態系列修正手段は、状態ノードの尤度が高くなるように、前記状態ノードの時系列データを修正する
請求項５に記載のデータ処理装置。
【請求項８】
前記状態系列修正手段は、さらに別の情報によって区別することで、前記状態ノードの時系列データを修正する
請求項５に記載のデータ処理装置。
【請求項９】
状態系列生成手段と演算手段とを備え、第１の事象と第２の事象の確率的状態遷移モデルのパラメータを出力するデータ処理装置の
前記状態系列生成手段が、前記第１の事象と第２の事象の時系列データのうちの前記第１の事象の時系列データから、前記第１の事象の状態遷移モデルを確率的状態遷移モデルとして表したときの状態ノードの時系列データを生成し、
前記演算手段が、前記第１の事象の時系列データおよび前記状態ノードの時系列データを用いて、前記状態ノードの出現頻度、状態ノード間の遷移の出現頻度、および状態ノードに対応する前記時系列データのパラメータを計算することにより、前記第１の事象と第２の事象の確率的状態遷移モデルのパラメータを演算する
データ処理方法。
【請求項１０】
コンピュータに、
第１の事象と第２の事象の時系列データのうちの前記第１の事象の時系列データから、前記第１の事象の状態遷移モデルを確率的状態遷移モデルとして表したときの状態ノードの時系列データを生成する状態系列生成手段と、
前記第１の事象の時系列データおよび前記状態ノードの時系列データを用いて、前記状態ノードの出現頻度、状態ノード間の遷移の出現頻度、および状態ノードに対応する前記時系列データのパラメータを計算することにより、前記第１の事象と第２の事象の確率的状態遷移モデルのパラメータを演算する演算手段
として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ処理装置、データ処理方法、およびプログラムに関し、特に、現時刻以降の将来に、特定の場所、あるいは、特定の行動を行う場所にいたる確率、経路、経過時間を予測するための学習パラメータをより簡単に学習するデータ処理装置、データ処理方法、およびプログラムに関する。
【背景技術】
【０００２】
近年、ユーザが身に着けられるセンサであるウェアラブルセンサから得られる時系列データを用いてユーザの状態をモデル化して学習し、学習により得られたモデルを用いてユーザの現在の状態を認識する研究が盛んである（例えば、特許文献１，２、非特許文献１）。
【０００３】
また、本出願人は、未来の所望の時刻におけるユーザの活動状態の複数の可能性を確率的に予測する方法を、特願２００９−１８０７８０（以下、先願１という）として先に提案している。先願１の方法では、時系列データからユーザの活動状態を確率的状態遷移モデルとして学習し、学習した確率的状態遷移モデルを用いて現在の活動状態を認識し、「所定時間後」のユーザの活動状態を確率的に予測することができる。そして、「所定時間後」のユーザの活動状態の予測の一例として、ユーザの現在の位置を認識し、所定時間後のユーザの行き先（場所）を予測する例が示されている。
【０００４】
さらに、本出願人は、先願１をさらに発展させ、「所定時間後」という現在時刻からの経過時間の指定がない場合であっても、複数の目的地への到達確率、経路、時間を予測する方法を、特願２００９−２０８０６４（以下、先願２という）として提案した。先願２の方法では、確率モデルを構成するノードの中から、目的地のノードに対応するものを見つけることで、目的地の候補を自動的に検出することができる。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００６−１３４０８０号公報
【特許文献２】特開２００８−２０４０４０号公報
【非特許文献】
【０００６】
【非特許文献１】“Life Patterns: structure from wearable sensors”,Brian Patrick Clarkson, Doctor Thesis, MIT, 2002
【発明の概要】
【発明が解決しようとする課題】
【０００７】
先願１および先願２の方法では、ユーザの活動状態を表す確率的状態遷移モデルの例として隠れマルコフモデルを採用している。そして、先願２の方法では、ユーザの活動状態を表す隠れマルコフモデルの学習器において、第１の隠れマルコフモデルによる出力結果を後段の第２の隠れマルコフモデルの入力とするような２段階処理が採用されている。２段階処理は、学習時間が２倍かかることになり、処理の負荷が大きかった。
【０００８】
本発明は、このような状況に鑑みてなされたものであり、現時刻以降の将来に、特定の場所、あるいは、特定の行動を行う場所にいたる確率、経路、経過時間を予測するための学習パラメータを、より簡単に学習することができるようにするものである。
【課題を解決するための手段】
【０００９】
本発明の一側面のデータ処理装置は、
第１の事象と第２の事象の時系列データのうちの前記第１の事象の時系列データから、前記第１の事象の状態遷移モデルを確率的状態遷移モデルとして表したときの状態ノードの時系列データを生成する状態系列生成手段と、
前記第１の事象の時系列データおよび前記状態ノードの時系列データを用いて、前記状態ノードの出現頻度、状態ノード間の遷移の出現頻度、および状態ノードに対応する前記時系列データのパラメータを計算することにより、前記第１の事象と第２の事象の確率的状態遷移モデルのパラメータを演算する演算手段と
を備える。
【００１０】
本発明の一側面のデータ処理方法は、
状態系列生成手段と演算手段とを備え、第１の事象と第２の事象の確率的状態遷移モデルのパラメータを出力するデータ処理装置の
前記状態系列生成手段が、前記第１の事象と第２の事象の時系列データのうちの前記第１の事象の時系列データから、前記第１の事象の状態遷移モデルを確率的状態遷移モデルとして表したときの状態ノードの時系列データを生成し、
前記演算手段が、前記第１の事象の時系列データおよび前記状態ノードの時系列データを用いて、前記状態ノードの出現頻度、状態ノード間の遷移の出現頻度、および状態ノードに対応する前記時系列データのパラメータを計算することにより、前記第１の事象と第２の事象の確率的状態遷移モデルのパラメータを演算する。
【００１１】
本発明の一側面のプログラムは、
コンピュータに、
第１の事象と第２の事象の時系列データのうちの前記第１の事象の時系列データから、前記第１の事象の状態遷移モデルを確率的状態遷移モデルとして表したときの状態ノードの時系列データを生成する状態系列生成手段と、
前記第１の事象の時系列データおよび前記状態ノードの時系列データを用いて、前記状態ノードの出現頻度、状態ノード間の遷移の出現頻度、および状態ノードに対応する前記時系列データのパラメータを計算することにより、前記第１の事象と第２の事象の確率的状態遷移モデルのパラメータを演算する演算手段
として機能させるためのものである。
【００１２】
本発明の一側面においては、第１の事象と第２の事象の時系列データのうちの第１の事象の時系列データから、第１の事象の状態遷移モデルを確率的状態遷移モデルとして表したときの状態ノードの時系列データが生成され、第１の事象の時系列データおよび状態ノードの時系列データを用いて、状態ノードの出現頻度、状態ノード間の遷移の出現頻度、および状態ノードに対応する前記時系列データのパラメータを計算することにより、第１の事象と第２の事象の確率的状態遷移モデルのパラメータが演算される。
【００１３】
データ処理装置は、独立した装置であっても良いし、１つの装置を構成している内部ブロックであっても良い。
【発明の効果】
【００１４】
本発明の一側面によれば、現時刻以降の将来に、特定の場所、あるいは、特定の行動を行う場所にいたる確率、経路、経過時間を予測するための学習パラメータを、より簡単に学習することができる。
【図面の簡単な説明】
【００１５】
【図１】先願２における予測システムの構成例を示すブロック図である。
【図２】予測システムのハードウエア構成例を示すブロック図である。
【図３】予測システムに入力される時系列データの例を示す図である。
【図４】HMMの例を示す図である。
【図５】音声認識で利用されるHMMの例を示す図である。
【図６】スパース制約を与えたHMMの例を示す図である。
【図７】行動予測部による経路の探索処理の簡単な例を示す図である。
【図８】図１の行動学習部が採用することができる構成の一例を示す図である。
【図９】予測システム１が識別する行動モードについて説明する図である。
【図１０】到達時間予測処理のフローチャートである。
【図１１】到達時間予測処理のフローチャートである。
【図１２】本発明を適用した予測システムにおける行動学習部の構成例を示すブロック図である。
【図１３】学習処理のフローチャートである。
【図１４】状態系列修正部によるループ修正処理を説明する図である。
【図１５】状態系列修正部によるループ修正処理のフローチャートである。
【図１６】状態系列修正部による共有ノード修正処理を説明する図である。
【図１７】状態系列修正部による共有ノード修正処理のフローチャートである。
【図１８】その他の共有ノード修正処理を説明する図である。
【図１９】図１２の行動学習部を採用した場合の効果について説明する図である。
【図２０】図１２の行動学習部を採用した場合の効果について説明する図である。
【図２１】図１２の行動学習部を採用した場合の効果について説明する図である。
【図２２】状態系列修正部を採用した場合の効果について説明する図である。
【図２３】状態系列修正部を採用した場合の効果について説明する図である。
【図２４】状態系列修正部を採用した場合の効果について説明する図である。
【図２５】本発明を適用したコンピュータの一実施の形態の構成例を示すブロック図である。
【発明を実施するための形態】
【００１６】
以下、本発明を実施するための形態（以下、実施の形態という）について説明する。なお、説明は、［背景技術］に記載した先願と対比するため、先願２で提案した方法を簡単に説明した後、本発明を適用した実施の形態について説明する。即ち、説明は、以下の順序で行う。
１．先願２の実施例
２．本発明の実施の形態（先願２よりも、より簡単に学習パラメータを求める形態）
【００１７】
＜１．先願２の実施例＞
［先願２の予測処理システムの構成例］
図１は、先願２における予測システムの構成例を示すブロック図である。
【００１８】
予測システム１は、GPSセンサ１０、速度演算部１１、時系列データ記憶部１２、行動学習部１３、行動認識部１４、行動予測部１５、目的地予測部１６、操作部１７、および表示部１８により構成される。
【００１９】
予測システム１は、GPSセンサ１０により取得される現在地を示す時系列データから、ユーザの活動状態（行動・活動パターンを表した状態）を確率的状態遷移モデルとして学習する学習処理を行う。また、予測システム１は、学習処理により得られたパラメータで表される確率的状態遷移モデル（ユーザ活動モデル）を用いて、ユーザの目的地を予測し、予測した目的地までの到達確率、経路、および到達時間を予測する予測処理も行う。なお、目的地は、１つだけでなく、複数の目的地が予測されることもある。
【００２０】
目的地とされる自宅や勤務先、駅、買い物先、レストランなどでは、ユーザはその場所に所定時間滞在するのが一般的であり、ユーザの移動速度はほぼゼロに近い状態となる。一方、ユーザが目的地に移動している場合には、ユーザの移動速度は、移動手段に応じた特定のパターンで遷移する状態となる。従って、ユーザの移動速度の情報からユーザの行動状態、即ち、ユーザが目的地に滞在している状態（滞在状態）であるのか、または、移動している状態（移動状態）であるのかを認識し、滞在状態の場所を目的地として予測することができる。
【００２１】
図１において、点線の矢印は、学習処理におけるデータの流れを示しており、実線の矢印は、予測処理におけるデータの流れを示している。
【００２２】
GPSセンサ１０は、自身の位置を示す緯度経度のデータを、一定時間間隔（たとえば、１５秒間隔）で順次取得する。なお、GPSセンサ１０が位置のデータを一定間隔に取得することができない場合もある。例えば、トンネルや地下にいる場合などには、人工衛星を捕捉することができず、取得間隔が長くなることもある。このような場合には、補間処理を行うことなどにより、データを補うことができる。
【００２３】
GPSセンサ１０は、学習処理においては、取得した緯度および経度と、それを取得したときの取得時刻からなる位置データを速度演算部１１に供給する。また、GPSセンサ１０は、予測処理においては、取得される位置データを速度演算部１１に供給する。
【００２４】
速度演算部１１は、GPSセンサ１０から供給される位置データから移動速度を演算する。
【００２５】
具体的には、一定の時間間隔でｋステップ目（ｋ個目）に得られるときの位置データを、時刻ｔｋ、経度ｙｋ、緯度ｘｋと表すと、ｋステップ目のｘ方向の移動速度ｖｘｋおよびｙ方向の移動速度ｖｙｋは、次式（１）により計算することができる。
【００２６】
【数１】
2011118776.tif 000003
【００２７】
式（１）では、GPSセンサ１０から得られる緯度経度のデータをそのまま利用しているが、緯度経度を距離に変換したり、速度を時速や分速で表すように変換するなどの処理は、必要に応じて適宜行うことができる。
【００２８】
また、速度演算部１１は、式（１）で得られる移動速度ｖｘｋおよびｖｙｋからさらに、式（２）で表されるｋステップ目の移動速度ｖｋと進行方向の変化θｋを求め、これを利用することができる。
【００２９】
【数２】
2011118776.tif 000004
【００３０】
式（２）で表される移動速度ｖｋと進行方向の変化θｋを利用する方が、式（２）の移動速度ｖｘｋおよびｖｙｋよりも以下の点で、特徴をうまく取り出すことができる。
【００３１】
１．移動速度ｖｘｋおよびｖｙｋのデータの分布は、緯度経度軸に対して偏りが生じるため、同じ移動手段（電車や徒歩など）であっても角度が異なった場合に識別できない可能性があるが、移動速度ｖｋであればそのような可能性が少ない。
２．移動速度の絶対的な大きさ（｜ｖ｜）だけで学習すると、機器のノイズによって生じる｜ｖ｜のため、徒歩と滞在を区別できない。進行方向の変化も考慮することで、ノイズの影響を軽減することができる。
３．移動している場合は進行方向の変化が少ないが、滞在している場合は進行方向が定まらないので、進行方向の変化を使うと移動と滞在の識別がしやすい。
【００３２】
以上の理由から、速度演算部１１は、移動速度のデータとして、式（２）で表される移動速度ｖｋと進行方向の変化θｋを求め、位置データとともに、時系列データ記憶部１２または行動認識部１４に供給する。
【００３３】
また、速度演算部１１は、移動速度ｖｋと進行方向の変化θｋの演算を行う前に、ノイズ成分を除去するため、移動平均によるフィルタリング処理（前処理）を行う。
【００３４】
なお、以下では、進行方向の変化θｋを、進行方向θｋと略記する。
【００３５】
GPSセンサ１０のなかには、移動速度を出力できるものも存在する。そのようなGPSセンサ１０が採用されている場合、速度演算部１１を省略し、GPSセンサ１０が出力する移動速度をそのまま利用することができる。
【００３６】
時系列データ記憶部１２は、速度演算部１１から時系列に供給される位置データおよび移動速度、すなわち、位置データおよび移動速度の時系列データを記憶する。ユーザの行動・活動パターンを学習するので、例えば、数日分程度など、ある程度の期間について蓄積された時系列データが必要である。
【００３７】
行動学習部１３は、時系列データ記憶部１２に記憶されている時系列データに基づいて、GPSセンサ１０が組み込まれた機器を携行するユーザの活動状態を、確率的状態遷移モデルとして学習する。時系列データはユーザの位置および移動速度を示すデータであるので、確率的状態遷移モデルとして学習されるユーザの活動状態は、ユーザの移動軌跡と行動状態となる。学習に使用される確率的状態遷移モデルとしては、例えば、エルゴディックHMM（Hidden Markov Model）などの、隠れ状態を含む確率的状態遷移モデルを採用することができる。予測システム１では、確率的状態遷移モデルとして、エルゴディックHMMにスパース制約を与えたものを採用する。なお、スパース制約を与えたエルゴディックHMM、エルゴディックHMMのパラメータの算出方法等については、図４乃至図６を参照して後述する。
【００３８】
行動学習部１３は、学習結果を示すデータを表示部１８に供給し、表示させる。また、行動学習部１３は、学習処理により得られた確率的状態遷移モデルのパラメータを行動認識部１４、行動予測部１５、および目的地予測部１６に供給する。
【００３９】
行動認識部１４は、学習により得られたパラメータの確率的状態遷移モデルを用いて、速度演算部１１からリアルタイムに供給される位置および移動速度の時系列データから、ユーザの現在の活動状態、すなわち、ユーザの現在地を認識する。行動認識部１４は、ユーザの現在の状態ノードのノード番号を行動予測部１５に供給する。
【００４０】
行動予測部１５は、学習により得られたパラメータの確率的状態遷移モデルを用いて、行動認識部１４から供給される状態ノードのノード番号が示すユーザの現在地から、ユーザが取りうる経路を過不足なく探索（予測）する。また、行動予測部１５は、探索された経路ごとの生起確率を計算することにより、探索された経路が選択される確率である選択確率を予測する。
【００４１】
目的地予測部１６には、行動予測部１５から、ユーザが取りうる経路と、その選択確率が供給される。また、目的地予測部１６には、必要に応じて、操作部１７から、ユーザが入力した情報が供給される。
【００４２】
目的地予測部１６は、学習により得られたパラメータの確率的状態遷移モデルを用いて、ユーザの目的地を予測する。
【００４３】
具体的には、目的地予測部１６は、最初に、目的地候補を列挙する。目的地予測部１６は、認識されるユーザの行動状態が滞在状態となる場所を目的地候補とする。
【００４４】
そして、目的地予測部１６は、列挙した目的地候補のうち、行動予測部１５により探索されたユーザが取りうる経路上にある目的地候補を目的地に決定し、目的地までの到達時間を経路ごとに予測する。
【００４５】
次に、目的地予測部１６は、決定した目的地ごとの到達確率を算出する。目的地予測部１６は、目的地について複数の経路が存在する場合、その複数の経路の選択確率の和を、目的地の到達確率として算出する。目的地への経路が１つのみである場合には、その経路の選択確率が、そのまま目的地の到達確率となる。
【００４６】
目的地予測部１６は、予測される目的地までの経路の到達時間を計算し、表示部１８に表示させる。
【００４７】
なお、目的地を含む経路が多数あり、全ての経路を表示すると見づらくなる場合や経路の提示数が所定数に設定されている場合には、目的地を含む全ての経路のなかから、表示部１８に表示させる経路（以下、適宜、表示経路ともいう。）を決定する必要がある。そのような場合、行動予測部１５では、各経路について選択確率が算出されているので、目的地予測部１６は、選択確率の高い順に、所定数の経路を表示経路として決定することができる。
【００４８】
また、目的地までの経路が多数存在する場合、選択される可能性の高い順で表示経路を決定する以外に、到達時間の短い順や、目的地までの距離の短い順に、表示経路を決定することも可能である。到達時間の短い順に表示経路を決定する場合には、例えば、目的地予測部１６は、最初に、目的地までの経路の全てについて到達時間を計算し、計算された到達時間に基づいて、表示経路を決定する。目的地までの距離の短い順に表示経路を決定する場合には、例えば、目的地予測部１６は、最初に、目的地までの経路の全てについて、状態ノードに対応する緯度経度の情報に基づいて目的地までの距離を計算し、計算された距離に基づいて、表示経路を決定する。
【００４９】
さらに、目的地についても同様に、到達確率の高い所定個数の目的地や、到達確率が所定値以上の目的地のみを表示するように、表示対象の目的地を絞り込むことができる。なお、目的地と経路の表示個数は異なっていても構わない。
【００５０】
操作部１７は、ユーザが入力した所定の情報（例えば、表示経路の選択指示など）を受け付け、目的地予測部１６に供給する。表示部１８は、行動学習部１３または目的地予測部１６から供給される情報を表示する。
【００５１】
［予測システムのハードウエア構成例］
以上のように構成される予測システム１は、例えば、図２に示されるハードウエア構成を採用することができる。即ち、図２は、予測システム１のハードウエア構成例を示すブロック図である。
【００５２】
図２において、予測システム１は、３台のモバイル端末２１−１乃至２１−３とサーバ２２とにより構成されている。モバイル端末２１−１乃至２１−３は、同一機能を有する同型のモバイル端末２１であるが、モバイル端末２１−１乃至２１−３では、それを所有するユーザが異なる。従って、図２では、３台のモバイル端末２１−１乃至２１−３のみが示されているが、実際には、ユーザ数に応じた数のモバイル端末２１が存在する。
【００５３】
モバイル端末２１は、無線通信及びインターネット等のネットワークを介した通信により、サーバ２２とデータの授受を行うことができる。サーバ２２は、モバイル端末２１から送信されてくるデータを受信し、受信したデータに対し所定の処理を行う。そして、サーバ２２は、データ処理の処理結果を無線通信等によりモバイル端末２１に送信する。
【００５４】
従って、モバイル端末２１とサーバ２２は、無線または有線による通信を行う通信部を少なくとも有する。
【００５５】
さらに、モバイル端末２１が、図１のGPSセンサ１０、速度演算部１１、操作部１７、および表示部１８を備え、サーバ２２が、図１の時系列データ記憶部１２、行動学習部１３、行動認識部１４、行動予測部１５、および目的地予測部１６を備える構成を採用することができる。
【００５６】
この構成が採用される場合、学習処理において、モバイル端末２１が、GPSセンサ１０および速度演算部１１により取得された時系列データを送信する。サーバ２２は、受信した学習用の時系列データに基づき、ユーザの活動状態を確率的状態遷移モデルにより学習する。そして、予測処理において、モバイル端末２１が、GPSセンサ１０および速度演算部１１によりリアルタイムに取得される位置データを送信する。サーバ２２は、学習により得られたパラメータを用いて、ユーザの現在の活動状態、すなわち、ユーザの現在地を認識し、さらに、目的地とそこまでの経路および時間を処理結果としてモバイル端末２１に送信する。モバイル端末２１は、サーバ２２から送信されてきた処理結果を表示部１８に表示する。
【００５７】
また例えば、モバイル端末２１が、図１のGPSセンサ１０、速度演算部１１、行動認識部１４、行動予測部１５、目的地予測部１６、操作部１７、および表示部１８を備え、サーバ２２が、図１の時系列データ記憶部１２および行動学習部１３を備える構成を採用することができる。
【００５８】
この構成が採用される場合、学習処理において、モバイル端末２１が、GPSセンサ１０および速度演算部１１により取得された時系列データを送信する。サーバ２２は、受信した学習用の時系列データに基づき、ユーザの活動状態を確率的状態遷移モデルにより学習し、学習により得られたパラメータをモバイル端末２１に送信する。そして、予測処理において、モバイル端末２１が、GPSセンサ１０および速度演算部１１によりリアルタイムに取得される位置データを、サーバ２２から受信したパラメータを用いて、ユーザの現在地を認識し、さらに、目的地とそこまでの経路および時間を演算する。そして、モバイル端末２１は、演算結果としての目的地とそこまでの経路および時間を表示部１８に表示する。
【００５９】
以上のようなモバイル端末２１とサーバ２２との間の役割分担は、それぞれのデータ処理装置としての処理能力や通信環境に応じて決定することができる。
【００６０】
学習処理は、処理に要する１回あたりの時間は非常に長いが、それほど頻繁に処理する必要はない。従って、一般的には、携行可能なモバイル端末２１よりもサーバ２２の方が処理能力が高いので、サーバ２２に、一日に一回程度蓄積された時系列データに基づいて学習処理（パラメータの更新）を行わせるようにすることができる。
【００６１】
一方、予測処理は、時々刻々とリアルタイムに更新される位置データに対応させて迅速に処理し、表示することが望ましいので、モバイル端末２１で処理を行う方が望ましい。通信環境がリッチであれば、上述したようにサーバ２２に予測処理も行わせ、予測結果のみをサーバ２２から受信する方が、携行可能な小型化が要求されるモバイル端末２１の負荷が軽減され、望ましい。
【００６２】
また、モバイル端末２１単独で、データ処理装置として学習処理および予測処理を高速に行うことが可能である場合には、図１の予測システム１の構成すべてをモバイル端末２１が備えるようにすることも勿論可能である。
【００６３】
［入力される時系列データの例］
図３は、予測システム１で取得された位置データの時系列データの例を示している。図３において、横軸は経度を表し、縦軸は緯度を表している。
【００６４】
図３に示される時系列データは、実験者の１ヶ月半程度の期間に蓄積された時系列データを示している。図３に示されるように、時系列データは、主に、自宅周辺と、勤務先などの４か所の外出先を移動したデータとなっている。なお、この時系列データには、人工衛星を捕捉できず、位置データが飛んでいるデータも含まれている。
【００６５】
なお、図３に示される時系列データは、後述する検証実験に使用したデータとは別のデータ例である。
【００６６】
［エルゴディックHMMについて］
次に、予測システム１が、学習モデルとして採用するエルゴディックHMMについて説明する。
【００６７】
図４は、HMMの例を示している。
【００６８】
HMMは、状態と状態間遷移とを有する状態遷移モデルである。
【００６９】
図４は、３状態のHMMの例を示している。
【００７０】
図４において（以降の図においても同様）、丸印は、状態を表し、矢印は、状態遷移を表す。なお、状態は、上述のユーザの活動状態に対応し、状態ノード、単にノードともいう。
【００７１】
また、図４において、si（図４では、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の最尤推定法については、例えば、“パターン認識と機械学習（下）”，Ｃ．Ｍ．ビショップ著，P. 333（英語原書：“Pattern Recognition and Machine Learning (Information Science and Statistics) ”，Christopher M. BishopSpringer, New York, 2006.）（以下、文献Ａと称する）に記載されている。
【００７７】
なお、Baum-Welchの最尤推定法は、尤度最大化に基づくパラメータ推定方法ではあるが、最適性を保証するものではなく、HMMの構造やパラメータλの初期値によっては、局所解（ローカルミニマム）に収束することがある。
【００７８】
HMMは、音声認識で広く利用されているが、音声認識で利用されるHMMでは、一般に、状態の数や状態遷移の仕方等はあらかじめ決定される。
【００７９】
図５は、音声認識で利用されるHMMの例を示している。
【００８０】
図５のHMMは、left-to-right型と呼ばれる。
【００８１】
図５では、状態数は３になっており、状態遷移は、自己遷移（状態siから状態siへの状態遷移）と、左から右隣の状態への状態遷移とのみを許す構造に制約されている。
【００８２】
図５のHMMのように、状態遷移に制約があるHMMに対して、図４に示した、状態遷移に制約がないHMM、すなわち、任意の状態siから任意の状態sjへの状態遷移が可能なHMMは、エルゴディック(Ergodic)HMMと呼ばれる。
【００８３】
エルゴディックHMMは、構造としては最も自由度の高いHMMであるが、状態数が多くなると、パラメータλの推定が困難となる。
【００８４】
例えば、エルゴディックHMMの状態数が、１０００である場合、状態遷移の数は、１００万（＝１０００×１０００）となる。
【００８５】
したがって、この場合、パラメータλのうちの、例えば、状態遷移確率aijについては、１００万個の状態遷移確率aijを推定することが必要となる。
【００８６】
そこで、状態に対して設定する状態遷移には、例えば、スパース(Sparse)な構造であるという制約（スパース制約）をかけることができる。
【００８７】
ここで、スパースな構造とは、任意の状態から任意の状態への状態遷移が可能なエルゴディックHMMのような密な状態遷移ではなく、ある状態から状態遷移することができる状態が非常に限定されている構造である。なお、ここでは、スパースな構造であっても、他の状態への状態遷移は、少なくとも１つ存在し、また、自己遷移は存在することとする。
【００８８】
図６は、スパース制約を与えたHMMを示している。
【００８９】
ここで、図６では、２つの状態を結ぶ双方向の矢印は、その２つの状態の一方から他方への状態遷移と、他方から一方への状態遷移とを表す。また、図６において、各状態は、自己遷移が可能であり、その自己遷移を表す矢印の図示は、省略されている。
【００９０】
図６では、１６個の状態が、２次元空間上に格子状に配置されている。すなわち、図６では、横方向に、４個の状態が配置され、縦方向にも、４個の状態が配置されている。
【００９１】
いま、横方向に隣接する状態どうしの距離、及び、縦方向に隣接する状態どうしの距離を、いずれも１とすると、図６Ａは、距離が１以下の状態への状態遷移は可能とし、他の状態への状態遷移はできないというスパース制約を与えたHMMを示している。
【００９２】
また、図６Ｂは、距離が√２以下の状態への状態遷移は可能とし、他の状態への状態遷移はできないというスパース制約を与えたHMMを示している。
【００９３】
図１の例では、GPSセンサ１０が取得した位置データが、時系列データx=x1,x2,・・・,xTとして、時系列データ記憶部１２に供給される。行動学習部１３は、時系列データ記憶部１２に記憶されている時系列データx=x1,x2,・・・,xTを用い、ユーザ活動モデルを表すHMMのパラメータλを推定する。
【００９４】
即ち、ユーザの移動軌跡を表す各時刻の位置（緯度経度）のデータが、HMMの状態sjのいずれかに対応する地図上の一点から、所定の分散値の広がりを持って正規分布した確率変数の観測データであると考える。行動学習部１３は、各状態sjに対応する地図上の一点とその分散値、および状態遷移確率aijを最適化する。
【００９５】
なお、状態siの初期確率πiは、一様な値に設定することができる。例えば、M個の状態siそれぞれの初期確率πiが、1/Mに設定される。また、GPSセンサ１０が取得した位置データに対して補間処理などの所定の処理を施した後の位置データを、時系列データx=x1,x2,・・・,xTとして、時系列データ記憶部１２に供給してもよい。
【００９６】
行動認識部１４は、学習により得られたユーザ活動モデル（HMM）に対して、ビタビ法を適用し、GPSセンサ１０からの位置データx=x1,x2,・・・,xTが観測される尤度を最も大にする状態遷移の過程（状態の系列）（パス）（以下、最尤パスともいう）を求める。これにより、ユーザの現在の活動状態、即ち、ユーザの現在地に対応する状態siが認識される。
【００９７】
ここで、ビタビ法とは、各状態siを始点とする状態遷移のパスの中で、時刻tに、状態siから状態sjに状態遷移する状態遷移確率aijと、その状態遷移において、位置データx=x1,x2,・・・,xTのうちの時刻tのサンプル値xtが観測される確率（出力確率密度関数bj(x)から求められる出力確率）とを、処理後時系列データxの長さTに亘って累積した値（生起確率）を最大にするパス（最尤パス）を決定するアルゴリズムである。ビタビ法の詳細については上述の文献ＡのP.347に記載されている。
【００９８】
［行動予測部１５による経路の探索処理］
次に、行動予測部１５による経路の探索処理について説明する。
【００９９】
学習により得られたHMMの各状態siは、地図上の所定の点（位置）を表し、状態siと状態sjが結ばれているとき、状態siから状態sjを移動する経路を表していると考えることができる。
【０１００】
この場合、状態siに対応する各点は、端点、通過点、分岐点、ループのいずれかに分類することができる。端点とは、自己遷移以外の確率が極めて小さく（自己遷移以外の確率が所定の値以下であり）、次に移動可能な点がない点である。通過点とは、自己遷移以外に有意な遷移が一つある、換言すれば、次に移動可能な点が一つある点である。分岐点とは、自己遷移以外に有意な遷移が二つ以上ある、換言すれば、次に移動可能な点が二つ以上ある点である。ループとは、これまで通過した経路上のどれかと一致する点である。
【０１０１】
目的地への経路を探索する場合、異なる経路がある場合には、それぞれの経路について必要時間等の情報を提示することが望まれる。そこで、可能な経路を過不足なく探索するために、次の条件を設定する。
（１）一度分岐した経路は再度合流した場合でも、別の経路とみなす。
（２）経路内に端点か、これまで通過した経路内に含まれる点が現れた場合、その経路の探索を終了する。
【０１０２】
行動予測部１５は、行動認識部１４により認識されたユーザの現在の活動状態、即ち、ユーザの現在の点を出発点として、次の移動先としての状態遷移が可能な点を端点、通過点、分岐点、ループのいずれかに分類することを（２）の終了条件まで繰り返す。
【０１０３】
行動予測部１５は、現在の点が端点であると分類された場合、現在の点をここまでの経路に接続してから、この経路の探索を終了する。
【０１０４】
一方、現在の点が通過点であると分類された場合、行動予測部１５は、現在の点をここまでの経路に接続してから、次の点へ移動する。
【０１０５】
また、現在の点が分岐点であると分類された場合、行動予測部１５は、現在の点をこれまでの経路に接続して、さらに分岐の数だけ、これまでの経路を複製し、分岐点と接続する。そして、行動予測部１５は、分岐点の１つを次の点として移動する。
【０１０６】
現在の点がループであると分類された場合、行動予測部１５は、現在の点をこれまでの経路に接続せずに、この経路の探索を終了する。なお、現在の点から、１つ前の点に経路を逆戻りする場合はループに含まれるため考慮しない。
【０１０７】
［探索処理の例］
図７は、行動予測部１５による経路の探索処理の簡単な例を示している。
【０１０８】
図７の例において、状態s１が現在地である場合、最終的に３通りの経路が探索されることになる。１つめの経路は、状態s１から状態s５，状態s６等を経由して状態s１０までの経路（以下、経路Ａともいう。）である。２つめの経路は、状態s１から状態s５，状態s１１，状態s１４，状態s２３等を経由して状態s２９までの経路（以下、経路Ｂともいう。）である。３つめの経路は、状態s１から状態s５，状態s１１，状態s１９，状態s２３等を経由して状態s２９までの経路（以下、経路Ｃともいう。）である。
【０１０９】
行動予測部１５は、探索された各経路が選択される確率（経路の選択確率）を計算する。経路の選択確率は、経路を構成する状態間の遷移確率を順次乗算することで求められる。ただし、次の状態に遷移する場合のみを考慮し、その場所に滞留する場合は考慮する必要がないので、学習により求められた各状態の状態遷移確率aijから、自己遷移確率を除いて規格化された遷移確率[aij]を用いて、経路の選択確率が求められる。
【０１１０】
自己遷移確率を除いて規格化された遷移確率[aij]は、次式（３）で表すことができる。
【数３】
2011118776.tif 000005
ここで、δは、クロネッカー関数を表し、添え字のｉとｊが一致するときのみ１となり、それ以外は０となる関数である。
【０１１１】
したがって、例えば、図７の状態s５の状態遷移確率aijが、自己遷移確率a５，５＝０．５，遷移確率a５，６＝０．２，遷移確率a５，１１＝０．３である場合、状態s５から状態s６または状態s１１に分岐する場合の遷移確率[a５，６]および遷移確率[a５，１１]は、それぞれ、０．４，０．６となる。
【０１１２】
探索された経路の状態siのノード番号ｉが、（ｙ１，ｙ２，・・・，ｙｎ）であるとき、この経路の選択確率は、規格化された遷移確率[aij]を用いて、次式（４）で表すことができる。
【０１１３】
【数４】
2011118776.tif 000006
【０１１４】
実際には、通過点での規格化された遷移確率[aij]は１であるので、分岐する際の規格化された遷移確率[aij]を順次乗算すれば足りる。
【０１１５】
図７の例では、経路Ａの選択確率は、０．４である。また、経路Ｂの選択確率は、０．２４＝０．６×０．４である。経路Ｃの選択確率は、０．３６＝０．６×０．６である。そして、計算された経路の選択確率の総和は１＝０．４＋０．２４＋０．３６であり、過不足ない探索を実現することができることがわかる。
【０１１６】
以上のように、現在地に基づいて探索された各経路とその選択確率が、行動予測部１５から目的地予測部１６に供給される。
【０１１７】
目的地予測部１６は、行動予測部１５によって探索された経路から、ユーザが指定した目的地を含む経路を抽出し、抽出された各経路について目的地までの時間を予測する。
【０１１８】
例えば、図７の例では、探索された３つの経路Ａ乃至Ｃのうち、目的地である状態s２８を含む経路は経路Ｂと経路Ｃである。目的地予測部１６は、経路Ｂまたは経路Ｃを通って、目的地である状態s２８に到達するまでの時間を予測する。
【０１１９】
現在時刻ｔ１の現在地が状態ｓｙ１であり、時刻（ｔ１，ｔ２，・・・，ｔｇ）における決定された経路が（ｓｙ１，ｓｙ２，・・・，ｓｙｇ）であるとする。換言すれば、決定された経路の状態siのノード番号ｉが（ｙ１，ｙ２，・・・，ｙｇ）であるとする。以下、簡単のため、位置に相当する状態siを、単に、そのノード番号ｉで表わす場合もある。
【０１２０】
現在時刻ｔ１での現在地ｙ１は、行動認識部１４の認識により確定しているので、現在時刻ｔ１の現在地がｙ１である確率Ｐｙ１（ｔ１）は、１である。また、現在時刻ｔ１にｙ１以外の他の状態にいる確率は０である。
【０１２１】
一方、所定の時刻ｔｎにノード番号ｙｎにいる確率Ｐｙｎ（ｔｎ）は、
【数５】
2011118776.tif 000007
で表すことができる。式（５）の右辺第一項は、もともとその位置ｙｎにいて、自己遷移した場合の確率を表し、右辺第二項は、１つ前の位置ｙｎ−１から位置ｙｎに遷移してきた場合の確率を表している。式（５）では、経路の選択確率の計算とは異なり、学習により得られた状態遷移確率aijがそのまま利用される。
【０１２２】
目的地ｙｇへ到達するときの時刻ｔｇの予測値<ｔｇ>は、「その直前の時刻ｔｇ−１に目的地ｙｇの１つ前の位置ｙｇ−１にいて、時刻ｔｇに目的地ｙｇに移動する確率」を用いて、
【数６】
2011118776.tif 000008
と表すことができる。
【０１２３】
即ち、予測値<ｔｇ>は、現在時刻から、「その直前の時刻ｔｇ−１に状態ｓｙｇの１つ前の状態ｓｙｇ−１にいて、時刻ｔｇに状態ｓｙｇに移動するとき」までの時間の期待値で表される。
【０１２４】
［行動学習部１３の詳細構成例］
図８は、図１の行動学習部１３が採用することができる構成の一例を示している。
【０１２５】
行動学習部１３は、時系列データ記憶部１２（図１）に記憶されている位置および移動速度の時系列データを用いて、ユーザの移動軌跡と行動状態を同時に学習する。
【０１２６】
行動学習部１３は、学習データ変換部３１と統合学習部３２により構成されている。
【０１２７】
学習データ変換部３１は、状態系列生成部４１と行動モード生成部４２により構成される。状態系列生成部４１は、位置データの時系列データを、状態ノードsiの時系列データ（状態系列データ）に変換して、統合学習部３２に供給する。行動モード生成部４２は、移動速度のデータを、行動モードの時系列データ（行動モード系列データ）に変換して、統合学習部３２に供給する。
【０１２８】
時系列データ記憶部１２から供給される位置データの時系列データは、状態系列生成部４１に供給される。状態系列生成部４１は、図１の行動認識部１４と同様の構成を採用することができる。即ち、状態系列生成部４１は、学習により得られたパラメータに基づくユーザ活動モデルから、入力されたユーザの現在地に対応する、ユーザの現在の活動状態を認識する。そして、状態系列生成部４１は、認識結果としてのユーザの現在の状態ノードsiを、順次、統合学習部３２に供給する。
【０１２９】
時系列データ記憶部１２から供給される移動速度の時系列データは、行動モード生成部４２に供給される。行動モード生成部４２は、ユーザの行動状態を確率的状態遷移モデルとして学習して得られたパラメータを用いて、供給される移動速度に対応するユーザの行動状態を認識し、認識結果を、順次、行動モードとして統合学習部３２に供給する。行動モード生成部４２が認識するユーザの行動状態としては、少なくとも滞在状態と移動状態が存在する必要がある。また、移動状態の行動モードを、さらに徒歩、自転車、車などの移動手段によって分類することができる。
【０１３０】
［行動モードの分類］
図９は、行動モード生成部４２が認識するユーザの行動状態（行動モード）について説明する図である。
【０１３１】
図９に示されるように、まず、ユーザの行動状態は、滞在状態と移動状態に分類することができる。予測システム１では、行動モード生成部４２が認識するユーザの行動状態としては、上述したように、少なくとも滞在状態と移動状態が存在する必要があるので、この２つに分類することは必須である。
【０１３２】
さらに、移動状態は、移動手段によって、電車、車（バスなども含む）、自転車、徒歩に分類することができる。電車は、さらに、特急、快速、ローカルなどに分類することができ、車は、さらに、高速、一般道などに分類することができる。また、徒歩は、走る、普通、散歩などに分類することができる。
【０１３３】
予測システム１では、ユーザの行動状態を、図９において斜線で示される“滞在”、“電車（快速）”、“電車（ローカル）”、“車（高速）”、“車（一般道）”、“自転車”、および“徒歩”に分類することとする。なお、“電車（特急）”は、学習データが得られなかったため省略した。
【０１３４】
行動モードの分類の仕方が図９に示した例に限定されるものではないことは言うまでもない。また、移動手段による移動速度の変化はユーザによって大きく異なるものではないので、学習データとしての移動速度の時系列データは、認識対象のユーザのものである必要はない。
【０１３５】
図８に戻り、統合学習部３２は、複数の事象（モーダル）の時系列データを確率的状態遷移モデルにより統合学習する。統合学習部３２には、第１の事象の時系列データとして、状態系列データが供給され、第２の事象の時系列データとして、行動モード系列データが供給される。従って、統合学習部３２は、状態系列データと行動モード系列データとを用いて、ユーザの活動状態を表す確率的状態遷移モデルとしてのマルチストリームHMMのパラメータλを学習する。
【０１３６】
マルチストリームHMMは、通常のHMMと同様な遷移確率を有する状態ノードから、複数の異なる確率法則に従うデータが出力されるようなHMMである。マルチストリームHMMでは、パラメータλのうち、出力確率密度関数bj(x)が時系列データごとに別々に用意される。
【０１３７】
この例では、時系列データが、状態系列データと行動モード系列データの２つであるので、出力確率密度関数bj(x)が場所インデックスの時系列データに対応する出力確率密度関数b1j(x)と、行動モードの時系列データに対応する出力確率密度関数b2j(x)とが用意される。出力確率密度関数b1j(x)は、マルチストリームHMMの状態ノードがjであった場合に、地図上のインデックスがxとなる確率である。出力確率密度関数b2j(x)は、マルチストリームHMMの状態ノードがjであった場合に、行動モードがxとなる確率である。したがって、マルチストリームHMMでは、地図上のインデックスと行動モードが関連付けられた形でユーザの活動状態が学習（統合学習）される。
【０１３８】
より具体的には、統合学習部３２は、各状態ノードの確率（どの状態ノードが出力されるかの確率）と、各状態ノードの出力する行動モードの確率（どの行動のモードが出力されるかの確率）を学習する。学習により得られた統合モデル（マルチストリームHMM）によれば、”滞在状態”の行動モードが確率的に出力されやすい状態ノードが求められる。そして、認識された状態ノードから、目的地候補の場所を認識することができる。さらに、目的地候補の場所が示す緯度経度分布から、目的地の位置を認識することができる。
【０１３９】
以上のように、観測される行動モードが“滞在状態”になる確率が高い状態ノードの示す位置がユーザの滞在場所であると推定される。そして、上述したように、“滞在状態”となる場所は多くの場合、目的地であるから、この滞在場所を目的地として推定することができる。
【０１４０】
統合学習部３２は、学習により得られた、ユーザの活動状態を表すマルチストリームHMMのパラメータλを、行動認識部１４、行動予測部１５、および目的地予測部１６に供給する。
【０１４１】
なお、上述した例では、状態系列生成部４１と行動モード生成部４２において、HMMによりモデル化することで、時系列データ記憶部１２から供給される位置および移動速度の時系列データを、状態系列データと行動モード系列データに変換するようにした。
【０１４２】
しかし、これ以外の方法によって、位置および移動速度のデータを、状態系列データと行動モード系列データに変換するようにしてもよい。例えば、行動モードについては、GPSセンサ１０とは別に、加速度センサやジャイロセンサ等のモーションセンサを用いて、加速度等の検出結果から、ユーザの移動の有無を検出し、行動モードを判定した判定結果を取得するようにしてもよい。この場合、行動モード生成部４２は省略することができる。
【０１４３】
［目的地到達時間予測処理］
次に、図１０および図１１のフローチャートを参照して、図１の予測システム１による目的地到達時間予測処理について説明する。
【０１４４】
初めに、ステップＳ５１において、行動認識部１４は、位置および移動速度の時系列データを取得する。即ち、ステップＳ５１において、GPSセンサ１０が、位置データの時系列データを速度演算部１１に供給し、速度演算部１１が、位置のデータから移動速度を演算して、位置と移動速度のデータを順次行動認識部１４に供給する。行動認識部１４には、所定のサンプル数の位置と移動速度の時系列データが一時的に記憶される。
【０１４５】
ステップＳ５２において、行動認識部１４は、学習により得られたパラメータに基づくユーザ活動モデルから、ユーザの現在の活動状態を認識する。即ち、行動認識部１４は、ユーザの現在地を認識する。そして、行動認識部１４は、ユーザの現在の状態ノードのノード番号を行動予測部１５に供給する。
【０１４６】
ステップＳ５３において、行動予測部１５は、現在探索している状態ノード（以下、適宜、現在の状態ノードともいう。）に対応する点が、端点、通過点、分岐点、またはループのいずれであるかを判定する。ステップＳ５２の処理直後は、ユーザの現在地に対応する状態ノードが現在の状態ノードとなる。
【０１４７】
ステップＳ５３で、現在の状態ノードに対応する点が端点であると判定された場合、処理はステップＳ５４に進み、行動予測部１５は、現在の状態ノードをここまでの経路に接続し、この経路の探索を終了し、ステップＳ６１に進む。なお、現在の状態ノードが現在地に対応する状態ノードである場合、ここまでの経路は存在しないため、接続する処理は行われない。ステップＳ５５，Ｓ５７、Ｓ６０でも同様である。
【０１４８】
ステップＳ５３で、現在の状態ノードに対応する点が通過点であると判定された場合、処理はステップＳ５５に進み、行動予測部１５は、現在の状態ノードをここまでの経路に接続する。そして、ステップＳ５６において、行動予測部１５は、次の状態ノードを現在の状態ノードとし、移動する。ステップＳ５６の処理後、処理はステップＳ５３に戻る。
【０１４９】
ステップＳ５３で、現在の状態ノードに対応する点が分岐点であると判定された場合、処理はステップＳ５７に進み、行動予測部１５は、現在の状態ノードをここまでの経路と接続する。そして、ステップＳ５８において、行動予測部１５は、ここまでの経路を分岐の数だけ複製し、分岐先の状態ノードと接続する。さらにステップＳ５９において、行動予測部１５は、複製した経路の１つを選択し、その選択した経路の先の状態ノードを現在の状態ノードとし移動する。ステップＳ５９の処理後、処理はステップＳ５３に戻る。
【０１５０】
一方、ステップＳ５３で、現在の状態ノードに対応する点がループであると判定された場合、処理はステップＳ６０に進み、行動予測部１５は、現在の状態ノードをここまでの経路と接続せずに、この経路の探索を終了し、ステップＳ６１に進む。
【０１５１】
ステップＳ６１において、行動予測部１５は、未探索の経路があるかを判定する。ステップＳ６１で、未探索の経路があると判定された場合、処理はステップＳ６２に進み、行動予測部１５は、現在地の状態ノードに戻り、未探索の経路の次の状態ノードを現在の状態ノードとし移動する。ステップＳ６２の処理後、処理はステップＳ５３に戻る。これにより、未探索の経路について、端点またはループにより探索が終了するまで経路の探索が実行される。
【０１５２】
ステップＳ６１で、未探索の経路がないと判定された場合、処理はステップＳ６３に進み、行動予測部１５は、探索された各経路の選択確率（生起確率）を計算する。行動予測部１５は、各経路と、その選択確率を目的地予測部１６に供給する。
【０１５３】
図１０のステップＳ５１乃至ステップＳ６３の処理により、ユーザの現在地が認識され、そこからユーザが取りうる経路が過不足なく探索され、各経路の選択確率が計算された後、処理は、図１１のステップＳ６４に進む。
【０１５４】
ステップＳ６４において、目的地予測部１６は、ユーザの目的地を予測する。具体的には、目的地予測部１６は、最初に、目的地候補を列挙する。目的地予測部１６は、ユーザの行動状態が滞在状態となる場所を目的地候補とする。そして、目的地予測部１６は、列挙した目的地候補のうち、行動予測部１５により探索された経路上にある目的地候補を目的地に決定する。
【０１５５】
ステップＳ６５において、目的地予測部１６は、目的地ごとの到達確率を計算する。即ち、目的地予測部１６は、複数の経路が存在する目的地については、その複数の経路の選択確率の和を、目的地の到達確率として計算する。１つの経路しかない目的地については、経路の選択確率が、そのまま、目的地の到達確率とされる。
【０１５６】
ステップＳ６６で、目的地予測部１６は、予測された目的地の数が所定個数より多いかを判定する。ステップＳ６６で、予測された目的地の数が所定個数より多いと判定された場合、処理はステップＳ６７に進み、目的地予測部１６は、表示部１８に表示する所定個数の目的地を決定する。例えば、目的地予測部１６は、目的地の到達確率の高い順に、所定個数の経路を決定することができる。
【０１５７】
一方、ステップＳ６６で、予測された目的地の数が所定個数以下であると判定された場合、ステップＳ６７はスキップされる。即ち、この場合、予測された目的地のすべてが表示部１８に表示される。
【０１５８】
ステップＳ６８において、目的地予測部１６は、行動予測部１５によって探索された経路から、予測された目的地を含む経路を抽出する。複数の目的地が予測されている場合には、予測された目的地それぞれについて、経路が抽出される。
【０１５９】
ステップＳ６９において、目的地予測部１６は、抽出された経路の数が提示数として予め設定された所定個数より多いかを判定する。
【０１６０】
ステップＳ６９で、抽出された経路の数が所定個数より多いと判定された場合、処理はステップＳ７０に進み、目的地予測部１６は、表示部１８に表示する所定個数の経路を決定する。例えば、目的地予測部１６は、選択される可能性の高い順に、所定個数の経路を決定することができる。
【０１６１】
一方、ステップＳ６９で、抽出された経路の数が所定個数以下であると判定された場合、ステップＳ７０の処理がスキップされる。即ち、この場合、目的地に到達するための全ての経路が表示部１８に表示される。
【０１６２】
ステップＳ７１において、目的地予測部１６は、表示部１８に表示すると決定された各経路の到達時間を計算し、目的地の到達確率および目的地までの経路と到達時間を表示する画像の信号を表示部１８に供給する。
【０１６３】
ステップＳ７２において、表示部１８は、目的地予測部１６から供給される画像の信号に基づいて、目的地の到達確率および目的地までの経路と到達時間を表示して、処理を終了する。
【０１６４】
以上のように、図１の予測システム１によれば、位置および移動速度の時系列データから、目的地を予測し、かつ、目的地の到達確率および目的地までの経路と到達時間を算出してユーザに提示することができる。
【０１６５】
しかしながら、図１の予測システム１では、学習器の構成として、HMMによる出力結果を後段のHMMの入力とする２段階処理が採用されている。即ち、図８に示したように、状態系列生成部４１におけるHMMの出力結果を統合学習部３２におけるHMMの入力とする２段階処理が採用されている。このような２段階処理は、学習時間が２倍かかることになり、処理の負荷が大きかった。
【０１６６】
＜２．本発明の実施の形態＞
そこで、上述した先願２の方法よりも、現時刻以降の将来に、特定の場所、あるいは、特定の行動を行う場所にいたる確率、経路、経過時間を予測する予測システムの学習パラメータを、より簡単に学習することができる実施の形態について説明する。即ち、本発明の実施の形態について説明する。
【０１６７】
［本発明を適用した予測システムにおける行動学習部の構成例］
図１２は、本発明を適用した予測システムにおける行動学習部の構成例を示すブロック図である。
【０１６８】
本発明を適用した予測システムは、図１の予測システム１と同様の構成が採用される。ただし、図１の予測システム１における行動学習部１３が、図１２の行動学習部５１に取って代わることにより、行動認識部１４、行動予測部１５、および目的地予測部１６に供給するためのパラメータの学習（算出）が、より簡単となっている。
【０１６９】
行動学習部５１は、学習データ変換部６１とパラメータ演算部６２とから構成されている。学習データ変換部６１は、図１の行動学習部１３における学習データ変換部３１（図８）に対応し、パラメータ演算部６２は、図１の行動学習部１３における統合学習部３２（図８）に対応する。
【０１７０】
学習データ変換部６１は、モデル学習部７１、状態系列生成部７２、状態系列修正部７３、および行動モード生成部７４により構成されている。モデル学習部７１、状態系列生成部７２、および状態系列修正部７３の３つが、図８の状態系列生成部４１に対応し、行動モード生成部７４が、図８の行動モード生成部４２に対応する。
【０１７１】
一方、パラメータ演算部６２は、遷移頻度カウント部８１、遷移パラメータ計算部８２、状態頻度カウント部８３、時系列データ分類部８４、および観測パラメータ計算部８５により構成されている。
【０１７２】
以下、学習データ変換部６１およびパラメータ演算部６２を構成する各部について説明する。
【０１７３】
モデル学習部７１は、時系列データ記憶部１２から供給される位置データの時系列データに基づいて、ユーザの活動状態を確率的状態遷移モデルとして学習する。時系列データはユーザの位置を示すデータであるので、確率的状態遷移モデルとして学習されるユーザの活動状態は、ユーザの移動軌跡となる。学習に使用される確率的状態遷移モデルとしては、上述の例と同様に、エルゴディックHMMにスパース制約を与えたものを採用する。
【０１７４】
モデル学習部７１は、学習により得られた学習モデル（HMM）のパラメータを状態系列生成部７２と状態系列修正部７３に供給する。
【０１７５】
状態系列生成部７２は、時系列データ記憶部１２から供給される位置データの時系列データを、ユーザの現在地（経路）に対応する状態ノードsiの時系列データに変換して、状態系列データを生成し、状態系列修正部７３に供給する。具体的には、状態系列生成部７２は、モデル学習部７１から供給されたパラメータに基づくユーザ活動モデルから、入力されたユーザの現在地に対応するユーザの現在の活動状態を認識する。そして、状態系列生成部７２は、認識結果としてのユーザの現在の状態ノードsiを、順次、状態系列修正部７３に供給する。
【０１７６】
状態系列修正部７３は、状態系列生成部７２から供給される状態系列データを必要に応じて修正し、修正後の状態系列データを、遷移頻度カウント部８１、状態頻度カウント部８３、および時系列データ分類部８４に供給する。状態系列修正部７３で状態系列データの修正がされない場合には、状態系列生成部７２から供給される状態系列データが、そのまま、遷移頻度カウント部８１、状態頻度カウント部８３、および時系列データ分類部８４に供給される。従って、以下では、最初に、状態系列生成部７２において状態系列データの修正がないものとして説明し、その後で、状態系列生成部７２で行われる修正処理について説明する。
【０１７７】
行動モード生成部７４は、時系列データ記憶部１２から供給される移動速度の時系列データから、行動モード系列データ、即ち、行動モードの時系列データを生成して、時系列データ分類部８４に供給する。
【０１７８】
行動モード生成部７４は、上述した図８の行動モード生成部４２と同様の方法により、行動モードの時系列データを生成するものでもよいし、それ以外の方法により、行動モードの時系列データを生成するものでもよい。また、上述した先願２の方法と同様に、外部から行動モードの時系列データが供給される場合には、行動モード生成部７４を省略し、外部からの行動モードの時系列データをそのまま使用することができる。
【０１７９】
遷移頻度カウント部８１は、状態系列修正部７３から供給される全ての状態系列データを対象として、各状態遷移の頻度をカウントする。即ち、遷移頻度カウント部８１は、状態ノードsiから状態ノードsjに移動する経路の頻度（カウント値）をｎｉｊと表すと、状態系列修正部７３から供給される全ての状態系列データを対象として、各状態遷移の頻度ｎｉｊ（ｉ＝１乃至Ｎ，ｊ＝１乃至Ｎ，Ｎは、時系列データの最後のノード番号（＝ノード数））を求める。
【０１８０】
遷移パラメータ計算部８２は、HMMの状態遷移確率aijに対応する遷移パラメータを計算する。具体的には、遷移パラメータ計算部８２は、遷移頻度カウント部８１から供給される各状態遷移の頻度ｎｉｊを基に、式（７）により、遷移確率Aｉｊを計算する。
【０１８１】
【数７】
2011118776.tif 000009
【０１８２】
式（７）により、状態遷移が生じていない遷移確率Aｉｊはゼロとなる。通常のHMMを用いた学習モデルでは、繰り返し回数を十分に大きくしなければ、過去発生しなかった遷移の確率を小さくすることができない。しかし、式（７）によれば、状態遷移が生じていない遷移確率Aｉｊをゼロとすることができるという特徴がある。この特徴は、将来の経路の可能性を探索していくアルゴリズムにおいて、不要な経路の探索を削減するために重要なメリットとなる。
【０１８３】
遷移パラメータ計算部８２は、計算された遷移確率Aｉｊを、HMMの状態遷移確率aijに対応する遷移パラメータとして出力する。
【０１８４】
状態頻度カウント部８３は、状態系列修正部７３から供給される全ての状態系列データを対象として、状態頻度をカウントする。即ち、状態頻度カウント部８３は、状態系列修正部７３から供給される全ての状態系列データを対象として、各状態ノードsiの総数cntiをカウントする。カウント結果である各状態ノードsiの総数cntiは、観測パラメータ計算部８５に供給される。
【０１８５】
時系列データ分類部８４には、状態系列修正部７３から、状態系列データが供給される。また、時系列データ分類部８４には、時系列データ記憶部１２から位置データの時系列データが、行動モード生成部７４から行動モードの時系列データが供給される。
【０１８６】
時系列データ分類部８４は、時系列データ記憶部１２から順次供給される位置データｘを、状態ノードごとに分類し、グループ化する。状態siにおける位置データの集合データXｉは、次式（８）で表すことができる。
【０１８７】
【数８】
2011118776.tif 000010
【０１８８】
状態ノードsiの総数がcntiであるので、集合データXｉの要素の個数はcntiとなる。なお、集合データXｉの各要素である位置のデータｘは、詳しくは、緯度、経度、および時刻からなる３次元のデータであるが１次元のように省略して表している。
【０１８９】
また、時系列データ分類部８４は、行動モード生成部７４から順次供給される行動モードｍを、状態ノードごとに分類し、グループ化する。状態ノードsiにおける行動モードの集合データMｉは、次式（９）で表すことができる。
【０１９０】
【数９】
2011118776.tif 000011
【０１９１】
式（９）における集合データMｉの要素の個数もcntiである。
【０１９２】
時系列データ分類部８４は、以上のように、位置データと行動モードの時系列データを状態ノードごとに分類した分類結果を観測パラメータ計算部８５に供給する。換言すれば、時系列データ分類部８４は、各状態ノードの集合データXと集合データMを観測パラメータ計算部８５に供給する。
【０１９３】
観測パラメータ計算部８５は、状態系列修正部７３から供給される状態系列データに含まれる全ての状態ノードについて、位置データと行動モードの時系列データそれぞれの観測パラメータを計算する。
【０１９４】
位置データの時系列データの観測パラメータとして、観測パラメータ計算部８５は、状態頻度カウント部８３からの状態ノードsiの総数cntiと時系列データ分類部８４からの集合データXｉを用いて、状態ノードsiの平均値μｉと標準偏差σｉを計算する。
【０１９５】
【数１０】
2011118776.tif 000012
【０１９６】
この状態ノードsiの平均値μｉと標準偏差σｉは、状態ノードsiにおける位置データｘの観測確率であり、上述した統合学習部３２（図８）が出力するマルチストリームHMMの出力確率密度関数b1ｉ（ｘ）に対応する。
【０１９７】
なお、要素数が少ない場合を考慮して、標準偏差σｉについては、所定の値よりも大きいようにする制約を設けてもよい。あるいは、モデル学習部７１で学習された標準偏差を流用するようにしてもよい。
【０１９８】
さらに、観測パラメータ計算部８５は、行動モードの時系列データの観測パラメータとして、状態ノードsiにおける行動モードの集合データMｉに対し、次式（１２）で表される各行動モードｍの出現頻度Ｐ（ｓｉ｜ｍ）を算出する。
【０１９９】
【数１１】
2011118776.tif 000013
【０２００】
式（１２）において、N（Mｉ＝ｍ）は、集合データMｉのなかでの行動モードｍの個数を表す。
【０２０１】
この行動モードｍの出現頻度Ｐ（ｓｉ｜ｍ）は、状態ノードsiにおける行動モードｍの観測確率であり、上述した統合学習部３２（図８）が出力するマルチストリームHMMの出力確率密度関数b2ｉ（ｘ）に対応する。
【０２０２】
観測パラメータ計算部８５は、位置データと行動モードの観測確率である、各状態の平均値μｉと標準偏差σｉ、および出現頻度Ｐ（ｓｉ｜ｍ）を、観測パラメータとして出力する。
【０２０３】
以上のように、パラメータ演算部６２は、状態系列修正部７３から供給される状態系列データと、行動モード生成部７４から供給される行動モード系列データとから、第１の事象と第２の事象の確率的状態遷移モデルのパラメータを演算することができる。
【０２０４】
［パラメータ学習処理］
図１３のフローチャートを参照して、図１２の行動学習部５１が行う学習処理について説明する。なお、この学習処理より前に、モデル学習部７１による学習処理が行われ、学習結果としてのパラメータが、状態系列生成部７２と状態系列修正部７３に供給されているものとする。
【０２０５】
初めに、ステップＳ１０１において、状態系列生成部７２は、時系列データ記憶部１２から供給される位置データの時系列データから、状態系列データを生成する。即ち、状態系列生成部７２は、位置データの時系列データを状態ノードsiの時系列データに変換して、状態系列修正部７３に供給する。
【０２０６】
ステップＳ１０２において、状態系列修正部７３は、状態系列生成部７２から供給される状態系列データに対して、状態系列データ修正処理を実行し、修正後の状態系列データを、遷移頻度カウント部８１、状態頻度カウント部８３、および時系列データ分類部８４に供給する。状態系列データ修正処理の詳細については、図１４乃至図１８を参照して後述する。状態系列データの修正の必要がない場合には、状態系列生成部７２から供給される状態系列データが、そのまま、遷移頻度カウント部８１、状態頻度カウント部８３、および時系列データ分類部８４に供給される。
【０２０７】
ステップＳ１０３において、行動モード生成部７４は、時系列データ記憶部１２から供給される移動速度の時系列データから、行動モード系列データを生成して、時系列データ分類部８４に供給する。
【０２０８】
ステップＳ１０３の処理は、上述したステップＳ１０１およびＳ１０２の処理より先に実行してもよいし、ステップＳ１０１およびＳ１０２の処理と並行して実行してもよい。
【０２０９】
ステップＳ１０４において、遷移頻度カウント部８１は、状態系列修正部７３から供給される全ての状態系列データを対象として、各状態遷移の頻度をカウントする。即ち、遷移頻度カウント部８１は、各状態遷移の頻度ｎｉｊ（ｉ＝１乃至Ｎ，ｊ＝１乃至Ｎ，Ｎは、時系列データの最後のノード番号（ノード数））を求める。
【０２１０】
ステップＳ１０５において、遷移パラメータ計算部８２は、HMMの状態遷移確率aijに対応する遷移パラメータを計算する。具体的には、遷移パラメータ計算部８２は、遷移頻度カウント部８１から供給される各状態遷移の頻度ｎｉｊを基に、上述した式（７）により、遷移確率Aｉｊを計算する。遷移パラメータ計算部８２は、計算された遷移確率Aｉｊを、HMMの状態遷移確率aijに対応する遷移パラメータとして出力する。
【０２１１】
ステップＳ１０６において、状態頻度カウント部８３は、状態系列修正部７３から供給される全ての状態系列データを対象として、状態頻度をカウントする。即ち、状態頻度カウント部８３は、状態系列修正部７３から供給される全ての状態系列データを対象として、各状態ノードsiの総数cntiをカウントする。カウント結果である各状態ノードsiの総数cntiは、観測パラメータ計算部８５に供給される。
【０２１２】
ステップＳ１０７において、時系列データ分類部８４は、位置データと行動モードの時系列データを状態ノードごとに分類する。即ち、時系列データ分類部８４は、時系列データ記憶部１２から順次供給される位置データｘを、状態ノードごとに分類し、グループ化する。また、時系列データ分類部８４は、行動モード生成部７４から供給される行動モードの時系列データを、状態ノードごとに分類し、グループ化する。
【０２１３】
ステップＳ１０８において、観測パラメータ計算部８５は、状態系列修正部７３から供給される状態系列データに含まれる全ての状態ノードについて、位置データと行動モードの時系列データそれぞれの観測パラメータを計算する。
【０２１４】
具体的には、観測パラメータ計算部８５は、状態頻度カウント部８３からの状態ノードsiの総数cntiと時系列データ分類部８４からの集合データXｉを用いて、状態ノードsiの平均値μｉと標準偏差σｉを計算する。
【０２１５】
また、観測パラメータ計算部８５は、状態ノードsiにおける行動モードの集合データMｉに対し、式（１２）で表される各行動モードｍの出現頻度Ｐ（ｓｉ｜ｍ）を算出する。
【０２１６】
ステップＳ１０８において、観測パラメータ計算部８５は、計算により得られた、位置データと行動モードの時系列データそれぞれの観測パラメータが、行動認識部１４、行動予測部１５、および目的地予測部１６に供給されると、図１３の学習処理が終了する。
【０２１７】
図１３の学習処理によれば、図８の行動学習部１３の統合学習部３２が、出力するパラメータをHMMの学習により求めていたのに対して、図１２の行動学習部５１のパラメータ演算部６２は、統計的処理によって求めることができる。従って、行動認識部１４、行動予測部１５、および目的地予測部１６が予測処理に用いるパラメータを、より簡単に求めることができる。即ち、現時刻以降の将来に、特定の場所、あるいは、特定の行動を行う場所にいたる確率、経路、経過時間を予測するための学習パラメータを、より簡単に求めることができる。
【０２１８】
［状態系列修正部７３による状態系列データの修正処理の説明］
次に、状態系列修正部７３が行う、状態系列データの修正処理について説明する。
【０２１９】
状態系列修正部７３は、状態系列生成部７２から供給される状態系列データを、所定の規則に従って修正し、修正後の状態系列データを、遷移頻度カウント部８１、状態頻度カウント部８３、および時系列データ分類部８４に供給する。
【０２２０】
本実施の形態では、状態系列修正部７３は、状態系列生成部７２から供給される状態系列データを、left-to-right型の状態系列データとなるように修正する。
【０２２１】
本実施の形態において、状態系列生成部７２から供給される状態系列データは、ユーザの移動軌跡を表す、GPSセンサ１０が取得したユーザの位置に対応するデータである。ユーザの移動は、ある目的地から他の目的地へのleft-to-right型の状態遷移モデルに近似できると考えられる。また、ユーザがある場所に長時間滞在しているときには、同一の場所が複数の状態ノードで表される場合があるが、１つの状態ノードに集約できると考えられる。
【０２２２】
そこで、状態系列修正部７３は、状態系列生成部７２から供給される状態系列データを、left-to-right型の状態系列データとなるように簡素化する修正を行う。
【０２２３】
なお、left-to-right型の状態系列データに対応しやすいように、時系列データ記憶部１２に記憶される位置データの時系列データを、１本のデータ系列ではなく、一日ごと、行き若しくは帰りごと、または、目的地（滞在場所）ごと、など、細かく分割されたデータ系列で予め取得することが望ましい。あるいは、時系列データ記憶部１２に記憶された１本の位置データの時系列データを、一日ごと、行き若しくは帰りごと、または、目的地（滞在場所）ごとなどに、細かく分割してから利用することが望ましい。
【０２２４】
図１４は、状態系列修正部７３による修正処理を示している。
【０２２５】
状態系列修正部７３は、状態系列データを、left-to-rightの制約を満たすように修正するために、最初に、状態系列データで、ループ、即ち、同一の状態ノードに戻る部分があるかどうかを探索する。そして、状態系列修正部７３は、ループが検出された場合、そのループをマージ（その状態ノードを削除して親ノードに吸収）するか、または、スプリット（新たな状態ノードを生成して分割）する。
【０２２６】
より詳しくは、状態系列修正部７３は、ループ内のノード数が１つである場合には、マージすることによって、状態系列データを修正し、ループ内のノード数が２以上である場合には、スプリットすることによって、状態系列データを修正する。
【０２２７】
［状態系列修正部７３のループ修正処理］
図１５は、状態系列修正部７３によるループ修正処理のフローチャートを示している。状態系列修正部７３は、所定のステップ数の状態系列データを記憶する内部メモリを有し、状態系列生成部７２から、ある程度のステップ数の状態系列データが内部メモリに蓄積されたとき、この処理が開始される。
【０２２８】
初めに、ステップＳ１２１において、状態系列修正部７３は、状態系列生成部７２から供給された状態系列データに対し、注目ノードを決定する。即ち、状態系列修正部７３は、状態系列生成部７２から供給された状態系列データのなかの先頭の状態ノードを選択し、それを注目ノードとする。
【０２２９】
ステップＳ１２２において、状態系列修正部７３は、注目ノードのノード番号が１つ前のノードと同じかを判定する。状態遷移が自己遷移である場合には、注目ノードのノード番号が同じとなる。従って、換言すれば、状態系列修正部７３は、自己遷移であるか否かを判定する。なお、先頭の状態ノードが注目ノードである場合には、注目ノードのノード番号が１つ前のノードと同じであると判定する。
【０２３０】
ステップＳ１２２で、注目ノードのノード番号が１つ前のノードと同じであると判定された場合、処理は後述するステップＳ１２７に進む。
【０２３１】
一方、ステップＳ１２２で、注目ノードのノード番号が１つ前のノードと同じではないと判定された場合、処理はステップＳ１２３に進み、状態系列修正部７３は、注目ノードが過去の状態系列に存在するかを判定する。状態系列データにループが存在し、ループして過去の状態系列に戻ってきたとき、ステップＳ１２３において、注目ノードが過去の状態系列に存在すると判定される。
【０２３２】
ステップＳ１２３で、注目ノードが過去の状態系列に存在しないと判定された場合、処理は後述するステップＳ１２７に進む。
【０２３３】
一方、ステップＳ１２３で、注目ノードが過去の状態系列に存在すると判定された場合、処理はステップＳ１２４に進み、状態系列修正部７３は、ループ内のノード数が１つであるかを判定する。
【０２３４】
ステップＳ１２４で、ループ内のノード数が１つであると判定された場合、ステップＳ１２５において、状態系列修正部７３は、ループのノードを親ノード（戻り先のノード）にマージする。
【０２３５】
ステップＳ１２４で、ループ内のノード数が２以上であると判定された場合、ステップＳ１２６において、状態系列修正部７３は、新しいノードを生成し、分割する。
【０２３６】
ステップＳ１２５またはＳ１２６の処理後、ステップＳ１２７において、状態系列データに、注目ノードの次のノードがあるかを判定する。
【０２３７】
ステップＳ１２７で、注目ノードの次のノードがあると判定された場合、ステップＳ１２８において、状態系列修正部７３は、次のノードを注目ノードに決定し、処理をステップＳ１２２に戻す。
【０２３８】
一方、ステップＳ１２７で、注目ノードの次のノードがないと判定された場合、即ち、状態系列生成部７２から供給された状態系列データの全ての状態ノードについてループを探索した場合、処理は終了する。
【０２３９】
状態系列修正部７３は、以上の処理を行うことにより、状態系列生成部７２から供給される状態系列データを修正して、修正後の状態系列データを、遷移頻度カウント部８１、状態頻度カウント部８３、および時系列データ分類部８４に供給する。
【０２４０】
なお、本実施の形態では、状態系列修正部７３が、検出されたループを、マージまたはスプリットのいずれで修正するかを、ループ内のノード数が１つであるか否かによって判断した。しかし、マージまたはスプリットのいずれで修正した場合に尤度が高くなるか、または、学習モデルの複雑さなど、その他の判断基準で、マージまたはスプリットのいずれで修正するかを判断するようにしてもよい。
【０２４１】
また、他の情報が使える場合にはそれを用いて、マージまたはスプリットのいずれで修正するかを判断することも可能である。たとえば、ループ内のノードが１つであっても、例えば、目的地候補のノードなど、重要なノードであるかもしれない。このような場合は、マージでなくて、スプリットの処理をすべきである。また、ループ内のノード数が２以上あっても、いずれも重要でないノードかもしれない。また、あるいは、全ノード数に制約があってこれ以上増やせない場合なども考えられる。このような場合には、状況に応じて変更をすればよい。
【０２４２】
［状態系列修正部７３によるその他の修正処理の説明］
次に、状態系列修正部７３による状態系列データのその他の修正処理の例を説明する。
【０２４３】
図１６は、１つのノードが複数の系列で共有されている共有ノードを修正する処理の例を示している。
【０２４４】
図１６の上段の状態遷移図において、斜線を付して示される真ん中のノードは、共有ノードとなっている。即ち、共有ノードの前後のノードは、それぞれ別々のノードとなっている。状態系列修正部７３は、図１６の下段の状態遷移図のように、共有ノードをスプリット（新たな状態ノードを生成して分割）し、２つの系列に、元の状態系列データを修正する。
【０２４５】
ノードの尤度が低い場合には、本来別々のノードになるべきところが、初期条件、モデルのノード数の不足などで、学習時にローカルミニマムに陥って、このような共有ノードとなることがある。位置データを表すノードで、ノードの尤度が低い場合とは、ノードが示す位置（中心位置）と、実際のデータの位置との距離が大きい場合を意味する。
【０２４６】
状態系列修正部７３には、共有ノードをスプリットする処理を、状態系列データの修正処理として行わせることで、初期条件、モデルのノード数の不足などで発生した共有ノードを解消することができる。換言すれば、モデル学習部７１による拘束条件（スパース制約によるエルゴディックHMM）では実現できない処理を、状態系列修正部７３で事後的（付加的に）実現することができる。
【０２４７】
［状態系列修正部７３の共有ノード修正処理］
図１７は、状態系列修正部７３による共有ノード修正処理のフローチャートを示している。状態系列生成部７２から、全ての状態系列データが内部メモリに蓄積されたとき、この処理が開始される。
【０２４８】
初めに、ステップＳ１４１において、状態系列修正部７３は、内部メモリに記憶されている状態系列データのなかで、尤度が所定値以下のノードである低尤度ノードを検索して、ステップＳ１４２に進む。本実施の形態では、学習により得られたノードの中心位置と、実際のデータの位置との距離が大きいノードが、低尤度ノードとなる。
【０２４９】
ステップＳ１４２において、状態系列修正部７３は、低尤度ノードが検出されたかを判定する。
【０２５０】
ステップＳ１４２で、低尤度ノードが検出されたと判定された場合、処理はステップＳ１４３に進み、状態系列修正部７３は、検出された低尤度ノードを注目ノードに決定する。
【０２５１】
ステップＳ１４４において、状態系列修正部７３は、注目ノードが共有ノードであるかを判定する。ステップＳ１４４で、注目ノードが共有ノードではないと判定された場合、処理はステップＳ１４１に戻る。
【０２５２】
一方、ステップＳ１４４で、注目ノードが共有ノードであると判定された場合、処理はステップＳ１４５に進み、状態系列修正部７３は、前後のノードが複数あるかを判定する。
【０２５３】
ステップＳ１４５で、前後のノードのいずれかが複数ないと判定された場合、処理はステップＳ１４１に戻る。一方、ステップＳ１４５で、前後のノードのいずれもが複数あると判定された場合、処理はステップＳ１４６に進み、状態系列修正部７３は、新しいノードを生成することにより、元の状態系列データを、２つの系列に修正する。ステップＳ１４６の処理後も、処理はステップＳ１４１に戻る。
【０２５４】
そして、上述したステップＳ１４１乃至Ｓ１４６の処理を繰り返し実行することで、全ての低尤度ノードが順次検出され、共有ノードがスプリットされる。
【０２５５】
全ての低尤度ノードが検出された場合、ステップＳ１４２で、低尤度ノードが検出されなかったと判定され、処理がステップＳ１４７に進む。そして、ステップＳ１４７において、状態系列修正部７３は、元の状態系列データに対し修正がなされた修正後の状態系列データを出力して、処理を終了する。低尤度ノードが１つも検出されない場合には、元の状態系列データがそのまま出力される。
【０２５６】
状態系列修正部７３は、以上のような共有ノード修正処理を行って、状態系列生成部７２から供給される状態系列データを修正することができる。
【０２５７】
なお、図１６および図１７に示した処理では、前と後ろの両方について複数の系列がある場合のみ、ノードをスプリットするようにした。しかし、図１８右側に示すように、前または後ろのいずれか一方のみ、複数の系列がある場合であっても、ノードをスプリットするようにしてもよい。
【０２５８】
また、図１８左側に示すように、前と後ろの両方で複数の系列が存在しない場合であっても、スプリットした方がノードの尤度が高くなる場合には、スプリットするようにしてもよい。いずれの場合においても、スプリットすることにより、尤度が修正前より高くなることが条件である。また、図１８左側に示すように、前と後ろの両方で複数の系列が存在しない場合のスプリットでは、修正前後でステップ数が変わらないように、修正対象のノードにおいて、自己遷移が発生していることも条件となる。
【０２５９】
以上のような状態系列修正部７３による状態系列データの修正処理によれば、状態系列データに拘束を新しく加えるのみならず、学習でローカルミニマムに陥って十分、尤度を高くすることができなかった場合などの修正が可能である。
【０２６０】
図１６および図１７に示した処理では、学習データに対する尤度のチェックを行っているが、学習データと同時に得られた他のデータによる尤度のチェックを行うようにしてもよい。他のデータ系列のうち、学習モデルの中の状態遷移に影響を及ぼすものがあれば、通常、マルチモーダルモデルとして学習することになる。しかし、そのデータ系列の寄与が大きくなかったりあるいは、不定であるならば、寄与の大きなデータのみで学習するようにして、学習されたモデルから得られる状態系列データを状態系列修正部７３における修正時にのみ、その影響を反映させることで、寄与の少ない時系列データが学習モデルに必要以上の影響を与えるのを回避することができる。
【０２６１】
［行動学習部５１の効果の検証］
図１９乃至図２１を参照して、先願２の方法と比較した、行動学習部５１の効果について説明する。
【０２６２】
図１９は、先願２の方法を用いてあるユーザの行動パターンを学習したときの学習結果を示している。従って、学習モデルは、スパース制約を与えたエルゴディックHMMである。
【０２６３】
図１９に示される小さい楕円は、学習により得られた各状態ノードを示している。状態ノードの個数は４００個とした。楕円は、状態ノードの観測パラメータμを中心としσに応じた大きさとなるように描画されている。
【０２６４】
また、学習結果としては、各状態ノードが、目的地ノード（滞在ノード）か、または、移動ノードであるかが分類されているが、図面の制約上、図１９ではその区別を表現できないため、目的地ノードがある場所を、大きな円で追記している。
【０２６５】
図２０は、図１９の学習モデルにおける状態ノード間の遷移関係をより見やすくするため、書き直した図である。図２０では、円で示した各ノードを格子状に並べて、その遷移が０ではないものだけを矢印で接続して表現している。従って、矢印の接続がないノード間は、その遷移確率が０であることを意味している。各ノードの濃さは、目的地ノードかそうでないかを区別しており、目的地ノードは薄いグレイの円で示され、それ以外は、黒の円で示している。なお、図２０において、目的地ノードの一部について「目的地」と付している。
【０２６６】
図２０の学習結果では、ノード間の遷移が多数存在する。換言すれば、単に、スパース制約を与えたエルゴディックHMMを学習モデルとした場合には、ノード間の遷移が多数となる。先願２の方法では、この多数の遷移によって考えられる多数の経路を探索するので、経路探索に時間がかかり処理が重くなることが予想される。しかし、この処理を簡略化するため、分岐点で、確率の低い経路を切り捨てる処理をすると、切り捨てられた経路のもつ確率分が目的地到達確率に反映されなくなるので、到達確率が低くなってしまうので、そのような処理はできない。
【０２６７】
図２１は、行動学習部５１による学習結果を示している。図示の仕方は、図２０と同様である。
【０２６８】
図２１を参照すると、ノード間の遷移確率が０でない遷移が大幅に削減されていることがわかる。即ち、ノード間の遷移の数が大幅に削減されていることがわかる。従って、目的地の自動探索、経路探索、確率計算、時間予測などの処理を、より高速化することができる。
【０２６９】
また、行動学習部５１による学習結果では、図２１のように、もともと分岐の数が削減されているので、確率の低い経路を切り捨てる処理をする必要がなく、目的地への到達確率が低くなるということもない。なお、実質的には、行動学習部５１においても、確率の低い経路を切り捨てる処理が行われていることになるが、先願２の方法のような、目的地への到達確率が低くなるという現象は顕著には発生しない。
【０２７０】
また、図２１の学習結果では、薄いグレイの円で示される目的地ノードも大幅に削減されている。従って、行動学習部５１では、先願２の方法よりも、目的地ノードの数も大きく抑制することができる。
【０２７１】
次に、図２２乃至図２４を参照して、状態系列修正部７３が、ループ修正処理を行うことにより、状態系列データを修正した場合の効果について説明する。
【０２７２】
図２２は、図１９の例とは異なるユーザの行動パターンを、モデル学習部７１が学習したときの学習結果を示している。図２２で示される学習モデルは、学習した時系列データに、同一経路を通った位置データを使っているにもかかわらず、日によって、位置データが欠落するなどした結果、複数の分岐経路が生じているようなモデルとなっている。この結果、予測処理に非常に長い時間がかかるものとなっている。
【０２７３】
図２２において、ノードの上部に描かれた太線の実線は、予測処理の結果である予測経路を示している。
【０２７４】
図２３は、図２２の学習モデルおよび予測経路を、図２０のように格子状に配列させ、予測経路が存在する一部の状態ノードについて拡大して示した図である。
【０２７５】
図２３において、グレイの太線の実線が、予測経路、即ち、図９に示した予測経路と対応する。
【０２７６】
図２３に示すように、モデル学習部７１の学習結果には、図１４に示したような“Ｔ”の字のループの経路が存在する。図２３では、学習結果に含まれる“Ｔ”の字のようなループの経路の４か所を、太線の丸で囲んで示している。このようなループが１つあると、このループ以降の探索経路は２倍になる。
【０２７７】
そこで、状態系列修正部７３が、図１４および図１５を参照して説明したように、元の状態系列データを、left-to-right型の状態系列データとなるように修正する。
【０２７８】
図２４は、ループ修正処理の処理前後を示している。図２３において太線の丸で囲んで示した４か所について、同様に示している。
【０２７９】
図２４を参照して明らかなように、元の状態系列データで存在していたループが、修正後の状態系列データでは、消滅している。このように、状態系列修正部７３のループ修正処理によって、ループを排除することができる。
【０２８０】
図１４および図１５のループ修正処理では、スパース制約の拘束条件を与えたエルゴディックHMMに対して、left-to-right型の拘束条件をさらに与えるように学習モデルを修正したということができる。即ち、学習時の初期条件によるスパース制約の拘束条件では実現できない制約条件を、状態系列修正部７３で実現することができる。
【０２８１】
一方、図１６および図１７の共有ノード修正処理では、尤度の低下しているノードを選んで、尤度をより高くする修正を行うことができる。これは、学習時にローカルミニマムに陥ったとしても、それを回避する方策となることを意味している。さらに、学習に用いなかった別の条件をこの修正処理で取り込むこともできる。
【０２８２】
上述した一連の処理は、ハードウエアにより実行することもできるし、ソフトウエアにより実行することもできる。一連の処理をソフトウエアにより実行する場合には、そのソフトウエアを構成するプログラムが、コンピュータにインストールされる。ここで、コンピュータには、専用のハードウエアに組み込まれているコンピュータや、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば汎用のパーソナルコンピュータなどが含まれる。
【０２８３】
図２５は、上述した一連の処理をプログラムにより実行するコンピュータのハードウエアの構成例を示すブロック図である。
【０２８４】
コンピュータにおいて、CPU（Central Processing Unit）２０１，ROM（Read Only Memory）２０２，RAM（Random Access Memory）２０３は、バス２０４により相互に接続されている。
【０２８５】
バス２０４には、さらに、入出力インタフェース２０５が接続されている。入出力インタフェース２０５には、入力部２０６、出力部２０７、記憶部２０８、通信部２０９、ドライブ２１０、およびGPSセンサ２１１が接続されている。
【０２８６】
入力部２０６は、キーボード、マウス、マイクロホンなどよりなる。出力部２０７は、ディスプレイ、スピーカなどよりなる。記憶部２０８は、ハードディスクや不揮発性のメモリなどよりなる。通信部２０９は、ネットワークインタフェースなどよりなる。ドライブ２１０は、磁気ディスク、光ディスク、光磁気ディスク、或いは半導体メモリなどのリムーバブル記録媒体２１２を駆動する。GPSセンサ２１１は、図１のGPSセンサ１０に対応する。
【０２８７】
以上のように構成されるコンピュータでは、CPU２０１が、例えば、記憶部２０８に記憶されているプログラムを、入出力インタフェース２０５及びバス２０４を介して、RAM２０３にロードして実行することにより、上述した一連の処理が行われる。
【０２８８】
コンピュータ（CPU２０１）が実行するプログラムは、例えば、パッケージメディア等としてのリムーバブル記録媒体２１２に記録して提供することができる。また、プログラムは、ローカルエリアネットワーク、インターネット、デジタル衛星放送といった、有線または無線の伝送媒体を介して提供することができる。
【０２８９】
コンピュータでは、プログラムは、リムーバブル記録媒体２１２をドライブ２１０に装着することにより、入出力インタフェース２０５を介して、記憶部２０８にインストールすることができる。また、プログラムは、有線または無線の伝送媒体を介して、通信部２０９で受信し、記憶部２０８にインストールすることができる。その他、プログラムは、ROM２０２や記憶部２０８に、あらかじめインストールしておくことができる。
【０２９０】
なお、コンピュータが実行するプログラムは、本明細書で説明する順序に沿って時系列に処理が行われるプログラムであっても良いし、並列に、あるいは呼び出しが行われたとき等の必要なタイミングで処理が行われるプログラムであっても良い。
【０２９１】
なお、本明細書において、フローチャートに記述されたステップは、記載された順序に沿って時系列的に行われる場合はもちろん、必ずしも時系列的に処理されなくとも、並列に、あるいは呼び出しが行われたとき等の必要なタイミングで実行されてもよい。
【０２９２】
なお、本明細書において、システムとは、複数の装置により構成される装置全体を表すものである。
【０２９３】
本発明の実施の形態は、上述した実施の形態に限定されるものではなく、本発明の要旨を逸脱しない範囲において種々の変更が可能である。
【符号の説明】
【０２９４】
１  予測システム，  ６１  学習データ変換部，  ６２  パラメータ演算部，  ７１  モデル学習部，  ７２  状態系列生成部，  ７３  状態系列修正部，  ８１  遷移頻度カウント部，  ８２  遷移パラメータ計算部，  ８３  状態カウント部，  ８４  時系列データ分類部，  ８５  観測パラメータ計算部，  ２０１  CPU，  ２０２  ROM，  ２０３  RAM，  ２０８  記憶部
【図１】
2011118776.tif 000014
【図２】
2011118776.tif 000015
【図３】
2011118776.tif 000016
【図４】
2011118776.tif 000017
【図５】
2011118776.tif 000018
【図６】
2011118776.tif 000019
【図７】
2011118776.tif 000020
【図８】
2011118776.tif 000021
【図９】
2011118776.tif 000022
【図１０】
2011118776.tif 000023
【図１１】
2011118776.tif 000024
【図１２】
2011118776.tif 000025
【図１３】
2011118776.tif 000026
【図１４】
2011118776.tif 000027
【図１５】
2011118776.tif 000028
【図１６】
2011118776.tif 000029
【図１７】
2011118776.tif 000030
【図１８】
2011118776.tif 000031
【図１９】
2011118776.tif 000032
【図２０】
2011118776.tif 000033
【図２１】
2011118776.tif 000034
【図２２】
2011118776.tif 000035
【図２３】
2011118776.tif 000036
【図２４】
2011118776.tif 000037
【図２５】
2011118776.tif 000038