【文献】
松原 拓央 ほか,「積分表現とKernel HerdingによるNeural Networkの学習」,電子情報通信学会技術研究報告,一般社団法人電子情報通信学会,2017年 2月27日,第116巻, 第500号,pp.25-31,ISSN 0913-5685
【文献】
小林 浩一 ほか,「交通流の時空図におけるZRPのパラメータ推定と能動学習」,電子情報通信学会技術研究報告,一般社団法人電子情報通信学会,2012年10月31日,第112巻, 第279号,pp.97-101,ISSN 0913-5685
【文献】
Jovana Mitrovic et al.,"DR-ABC: Approximate Bayesian Computation with Kernel-Based Distribution Regression",arXiv.org [online],Cornell University,2016年 2月,arXiv:1602.04805v1,[令和3年1月26日検索], インターネット:<URL:https://arxiv.org/pdf/1602.04805v1>
(58)【調査した分野】(Int.Cl.,DB名)
前記繰り返す動作を行なう前に、前記パラメータθの冗長性をコントロールしたい場合、前記第1のサンプル取得部は、前記事前分布Pのハイパーパラメータηを調整する、請求項8に記載の人流パターン推定システム。
街中における人流グループ単位での動きである人流パターンを推定する人流パターン推定システムにおける、前記街中の地図情報および施設情報が組み込まれ、前記人流パターンを規定するパラメータθのサンプルから各地点、各時刻での人口分布データyを出力する人流シミュレータを用いて、前記人流シミュレータに設定する前記パラメータθを、繰り返し学習により決定する人流パターン推定方法であって、
第1のサンプル取得部が、事前分布Pから前記パラメータθのN(Nは2以上の整数)個のサンプルθi(1≦i≦N)を取得し、
シミュレーション実行部が、前記N個のサンプルθiを順次前記人流シミュレータに供給することで、それぞれ、前記人流シミュレータから各地点、各時刻でのN個の人口分布データyiを取得し、
類似度算出部が、カーネル関数kを用いて、前記N個の人口分布データyiと各地点、各時刻での真の人口分布を表す正解データy*との間のN個の類似度wiを算出し、
カーネル平均構築部が、前記N個の類似度wiと、前記N個のサンプルθiと、前記カーネル関数kとから、事後分布のカーネル平均μを構築し、
第2のサンプル取得部が、前記カーネル平均μと前記カーネル関数kとから、パラメータθのT(Tは2以上の整数)個の新たなサンプルθt(1≦t≦T)を取得し、
サンプル評価部が、前記T個の新たなサンプルθtから選択した1つのサンプルθkを前記人流シミュレータに供給することによって前記人流シミュレータから得られた新たな人口分布データykと前記正解データy*との間の差分||yk−y*||が、所定の閾値εより小さいか否かを判断し、
前記サンプル評価部は、前記差分||yk−y*||が前記所定の閾値εより小さいと判断した場合に、前記選択したサンプルθkを、前記人流パターンを規定するパラメータθとして推定し、出力することを特徴とする人流パターン推定方法。
街中における人流グループ単位での動きである人流パターンを推定する人流パターン推定システムにおいて、前記街中の地図情報および施設情報が組み込まれ、前記人流パターンを規定するパラメータθのサンプルから各地点、各時刻での人口分布データyを出力する人流シミュレータを用いて、コンピュータに、前記人流シミュレータに設定する前記パラメータθを、繰り返し学習により決定させる人流パターン推定プログラムであって、前記コンピュータに、
事前分布Pから前記パラメータθのN(Nは2以上の整数)個のサンプルθi(1≦i≦N)を取得する第1のサンプル取得手順と、
前記N個のサンプルθiを順次前記人流シミュレータに供給することで、それぞれ、前記人流シミュレータから各地点、各時刻でのN個の人口分布データyiを取得するシミュレーション実行手順と、
カーネル関数kを用いて、前記N個の人口分布データyiと各地点、各時刻での真の人口分布を表す正解データy*との間のN個の類似度wiを算出する類似度算出手順と、
該N個の類似度wiと、前記N個のサンプルθiと、前記カーネル関数kとから、事後分布のカーネル平均μを構築するカーネル平均構築手順と、
前記カーネル平均μと前記カーネル関数kとから、パラメータθのT(Tは2以上の整数)個の新たなサンプルθt(1≦t≦T)を取得する第2のサンプル取得手順と、
該T個の新たなサンプルθtから選択した1つのサンプルθkを前記人流シミュレータに供給することによって前記人流シミュレータから得られた新たな人口分布データykと前記正解データy*との間の差分||yk−y*||が、所定の閾値εより小さいか否かを判断するサンプル評価手順と、
を実行させ、
前記サンプル評価手順は、前記コンピュータに、前記差分||yk−y*||が前記所定の閾値εより小さいと判断した場合に、前記選択したサンプルθkを、前記人流パターンを規定するパラメータθとして推定させ、出力させることを特徴とする人流パターン推定プログラム。
【背景技術】
【0002】
与えられたある地域における人口分布(人流パターン)にもっとも近いデータを生み出す、人流シミュレータのパラメータを求めたいという要望がある。ここで、「パラメータ」とは、その人流パターンの「集団の人数、どこから来たか(出発地点)、何時に来たか(出発時刻)、どこから帰っていくのか(最終到達地点)、どこを経由するのか(経由地)、経由値の滞在時間」から成る。尚、出発地点と最終到達地点とは同じであってもよい。
【0003】
そのようなパラメータを求める手法として、種々の手法が知られている。
【0004】
例えば、近似ベイズ計算法(ABC:Approximate Bayesian Computation)が知られている。ABCとは、モンテカルロ法の一種で、ランダムに選んだパタメータの値から、パフォーマンスの高いパラメータを順次求めていく方法である。例えば、最もシンプルなタイプのABCでは、シミュレータから疑似データを生成し、その擬似データが現実のデータと近ければ、シミュレータに使用されたパラメータを正しいものとして認める。
【0005】
ABCでは、事前知識に基づいてサンプリングを決めてシミュレーションを行う。そして、ABCでは、結果(擬似データ)が現実のデータにうまく適合するものだけをフィルタリングしている。
【0006】
しかしながら、ABCでは、パラメータが高次元であるとなかなか適合しないという問題がある。そのため、ABCでは、多数のサンプルが必要となる。
【0007】
Kernel ABCは、全サンプルを活用して、適合度で重み付けしたカーネル平均(kernel mean)として事後分布を表現する(非特許文献1参照)。多くの場合、事後分布からサンプリングを行いたいという動機が存在する。しかしながら、事後分布のkernel meanからのサンプリングは容易ではない。
【0008】
Kernel Herdingは、事後分布のkernel meanからのサンプリングを可能にする。特に、Kernel Herdingによるサンプリングは分布の特徴を少ない数でうまくカバーでき、スーパサンプルと呼ばれる。
【0009】
Automatic Relevance Determination (ARD)は、与えられたパラメータ集合から重要なものを残し、冗長性を取り除く有効なツールである。
【0010】
一方、人流パターンを推定する方法が種々提案されている。
【0011】
例えば、特許文献1は、都市の効率的な運用を支援する人流分析システムを開示している。特許文献1に開示された人流分析システムは、地域指定部と、人流算出部と、表示制御部とを備える。地域指定部は、地図上の地域を指定する。人流算出部は、時刻および位置の情報を含んだ複数の人流情報に基づき、地域指定部の指定地域に関わる人流を算出する。表示制御部は、表示部に表示された地図上に、人流算出部が算出した主たる人流の動線を表示させる。人流分析システムは、シミュレーション部を備える。シミュレーション部は、人流をシミュレーションによって算出するものであり、例えば、人流データベースに基づき、新たにエージェントを生成した場合の人流を算出する。ここでエージェントとは、環境の変化に基づく人流や交通流の変化を発生させるため、実際の環境の代わりに設定される仮想的な存在であり、例えば居住者の変化や施設の開設や閉鎖などをいう。
【0012】
また特許文献2は、時間的及び空間的相関を持つ時空間変数の値を精度良く予測することができる、時空間変数予測装置を開示している。特許文献2では、時空間変数の時系列データとして、人口分布、人流・交通流の速度・向き、金やダイヤモンドなど鉱物資源の埋蔵量、降水量などの気象データ、土地価格などを想定している。特許文献2では、実施の形態として、人口密度分布の時系列データが観測データとして与えられた条件の下で、未観測地点あるいは未来の時空間変数分布を推定・予測している。
【0013】
特許文献2に開示された時空間変数予測装置は学習部を備える。学習部は、人口密度情報記憶部に格納された観測データの集合に基づいて、観察データ同士の類似度を定義する関数であるカーネル関数の各々のハイパーパラメータと、観測データの各々に対する、複数のガウス過程の各々の寄与度を表すパラメータである負担率とを学習する。学習部は、負担率推定部と、ガウス過程パラメータ推定部と、反復判定部とを含む。負担率推定部は、観測データの集合と、複数のガウス過程のカーネル関数の各々のハイパーパラメータとに基づいて、複数のガウス過程からなる複数のユニットの各々の寄与度を表すパラメータであるユニット負担率と、複数のガウス過程の各々の寄与度を表すパラメータである負担率を推定する。ガウスパラメータ推定部は、観測データの集合と、複数のユニットの各々のユニット負担率と、複数のガウス過程の各々の負担率とに基づいて、複数のガウス過程の各々に対し、ガウス過程のカーネル関数の各々のハイパーパラメータを推定する。反復判定部は、予め定められた反復終了条件を満たすまで、負担率推定部による推定、およびガウス過程パラメータ推定部による推定を繰り返す。
【0014】
さらに特許文献3は、大規模な人流分布推定処理をより効率的に実行する人流調査支援システムを開示している。この特許文献3に開示された人流調査支援システムでは、分散処理プラットフォームを利用して人流の変化を表現する人流モデルにもとづく人流分布の仮説を大量生成している。そして、これらの各仮説と計測データとの適合性を評価することにより、計測データと矛盾しない人流分布を算出している。この際、人流モデルにもとづく人流分布の時間発展処理を類似する人流モデルごとに計算することで、計算を並列化しかつ重複計算を排除している。この人流モデル毎の処理並列化によって計測データとの時空間索引によって実測値との評価を高速化している。
【0015】
特許文献3に開示された人流調査支援システムは、複数のコンピュータに計算を分散する分散処理プラットフォームと、人流分布の仮説データから人流分布を推定した人流分布データを配信する機能を持つ人流分布配信システムと、人流のリアルタイムの計測データを計測する人流計測器とを備える。特許文献3において、分散処理プラットフォームは、人流全数調査データのうち現在時刻と一致するもの全体を所定数分複製し、各仮説の各人物の位置をランダムに少しずらし、人流仮説データとしている。
【0016】
また、特許文献4は、実店舗における商品の購入を支援する商品情報提供システムを開示している。特許文献4では、カメラもしくはGPS(Global Positioning System)情報から動線を分析・推定することで、来訪者の興味を把握し、推薦商品を決定している。
【0017】
非特許文献2は、モバイル空間統計を活用して、250mメッシュ単位でエリア間での回遊行動を分析する、技術的思想を開示している。
【0018】
非特許文献3は、アンケート情報を基にして、階層的な回遊モデルで立ち寄り場所を確率的に推定する、技術的思想を開示している。
【発明の概要】
【発明が解決しようとする課題】
【0021】
先行技術(ABC)には、次に述べるような課題がある。
【0022】
第1の課題は、推定すべきシミュレータのパラメータ数が多いと、パラメータの精度が落ちることである。
【0023】
また、ABCでは、パラメータ候補について、非効率に探索している。したがって、第2の課題は、あまり意味のないパラメータ候補についてもシミュレーションを行うので、無駄な計算時間がかかってしまうことである。
【0024】
さらに、第3の課題は、実際には必要のないパラメータを間違った知識のもとに探索したとき、それを無条件に受け入れてしまうことである。
【0025】
前述した先行技術(特許文献1〜4、非特許文献1〜3)には、それぞれ、次に述べるような問題がある。
【0026】
特許文献1は、単に、人流データベースに基づき、新たにエージェントを生成した場合の人流を算出する技術的思想を開示しているに過ぎない。従って、特許文献1では、各個人の外出行動を、予め人流データベースに格納しておく必要がある。換言すれば、特許文献1は、そのような予め各個人の外出行動が不明である場合には成り立たない技術的思想である。
【0027】
特許文献2は、単に、人口密度分布の時系列データが観測データとして与えられた条件の下で、未観測地点あるいは未来の時空間変数分布を推定・予測する技術的思想を開示しているに過ぎない。また、特許文献2は、時系列データとして人流の速度・向きを対象としたものに適用することができることを記載しているが、具体的にどのように人流の速度・向きに適用するかについては、何ら開示も示唆もしていない。
【0028】
特許文献3では、分散処理プラットフォームは、人流全数調査データのうち現在時刻と一致するもの全体を所定数分複製し、各仮説の各人物の位置をランダムに少しずらし、人流仮説データとしている。そのため、各人物ごとに膨大なデータが必要となる。
【0029】
特許文献4では、カメラやGPSの情報を活用しているので、個人の行動軌跡を取得することができる。しかしながら、特許文献4の技術では、個人特定につながるため、プラバシーの侵害に当たる可能性が高い。
【0030】
非特許文献1に開示されたKernel ABCでは、前述したように、kernel meanを使って再度サンプリングできないという問題がある。すなわち、漸近手法を完成できない。
【0031】
非特許文献2では、モバイル空間統計等の人口分布情報を用いているので、プライバシーを保護することが可能である。しかしながら、非特許文献2の開示する方法は、分析粒度が大まかであるため、細かな回遊行動を推定することが困難である。
【0032】
非特許文献3に開示された方法では、確率的な行動モデルに基づき、人口分布とアンケート情報を基に回遊行動を分析している。しかしながら、そのような分析方法では、詳細な施設間の関連性を把握することができないため、その分析結果を街作りに活用するには不十分な情報となってしまう。
【0033】
本発明の目的は、上述した課題を解決する、人流パターン推定システムおよび人流パターン推定方法を提供することにある。
【課題を解決するための手段】
【0034】
本発明による人流パターン推定システムは、街中における人流グループ単位での動きである人流パターンを推定する人流パターン推定システムであって、前記街中の地図情報および施設情報が組み込まれ、前記人流パターンを規定するパラメータθのサンプルから各地点、各時刻での人口分布データyを出力する人流シミュレータと、前記人流シミュレータに設定する前記パラメータθを、繰り返し学習により決定する機械学習装置と、を備え、前記機械学習装置は、事前分布Pから前記パラメータθのN(Nは2以上の整数)個のサンプルθ
i(1≦i≦N)を取得する第1のサンプル取得部と;前記N個のサンプルθ
iを順次前記人流シミュレータに供給することで、それぞれ、前記人流シミュレータから各地点、各時刻でのN個の人口分布データy
iを取得するシミュレーション実行部と;カーネル関数kを用いて、前記N個の人口分布データy
iと各地点、各時刻での真の人口分布を表す正解データy
*との間のN個の類似度w
iを算出する類似度算出部と;該N個の類似度w
iと、前記N個のサンプルθ
iと、前記カーネル関数kとから、事後分布のカーネル平均μを構築するカーネル平均構築部と;前記カーネル平均μと前記カーネル関数kとから、パラメータθのT(Tは2以上の整数)個の新たなサンプルθ
t(1≦t≦T)を取得する第2のサンプル取得部と;該T個の新たなサンプルθ
tから選択した1つのサンプルθ
kを前記人流シミュレータに供給することによって前記人流シミュレータから得られた新たな人口分布データy
kと前記正解データy
*との間の差分||y
k−y
*||が、所定の閾値εより小さいか否かを判断するサンプル評価部と;を備え、前記サンプル評価部は、前記差分||y
k−y
*||が前記所定の閾値εより小さいと判断した場合に、前記選択したサンプルθ
kを、前記人流パターンを規定するパラメータθとして推定し、出力する。
【0035】
本発明の人流パターン推定方法は、街中における人流グループ単位での動きである人流パターンを推定する人流パターン推定システムにおける、前記街中の地図情報および施設情報が組み込まれ、前記人流パターンを規定するパラメータθのサンプルから各地点、各時刻での人口分布データyを出力する人流シミュレータを用いて、前記人流シミュレータに設定する前記パラメータθを、繰り返し学習により決定する人流パターン推定方法であって、第1のサンプル取得部が、事前分布Pから前記パラメータθのN(Nは2以上の整数)個のサンプルθ
i(1≦i≦N)を取得し;シミュレーション実行部が、前記N個のサンプルθ
iを順次前記人流シミュレータに供給することで、それぞれ、前記人流シミュレータから各地点、各時刻でのN個の人口分布データy
iを取得し;類似度算出部が、カーネル関数kを用いて、前記N個の人口分布データy
iと各地点、各時刻での真の人口分布を表す正解データy
*との間のN個の類似度w
iを算出し;カーネル平均構築部が、前記N個の類似度w
iと、前記N個のサンプルθ
iと、前記カーネル関数kとから、事後分布のカーネル平均μを構築し;第2のサンプル取得部が、前記カーネル平均μと前記カーネル関数kとから、パラメータθのT(Tは2以上の整数)個の新たなサンプルθ
t(1≦t≦T)を取得し;サンプル評価部が、前記T個の新たなサンプルθ
tから選択した1つのサンプルθ
kを前記人流シミュレータに供給することによって前記人流シミュレータから得られた新たな人口分布データy
kと前記正解データy
*との間の差分||y
k−y
*||が、所定の閾値εより小さいか否かを判断し;前記サンプル評価部は、前記差分||y
k−y
*||が前記所定の閾値εより小さいと判断した場合に、前記選択したサンプルθ
kを、前記人流パターンを規定するパラメータθとして推定し、出力する。
【発明の効果】
【0036】
本発明によれば、人流パターンの高次元のパラメータ推定が可能になり、計算時間を減少することが可能となる。
【発明を実施するための形態】
【0038】
まず、本発明の理解を容易にするために、本明細書中で使用する用語の意味に関して簡略的に説明する。
【0039】
近似ベイズ計算法(ABC:Approximate Bayesian Computation)とは、モンテカルロ法の一種で、ランダムに選んだパラメータの値から、パフォーマンスの高いパラメータを順次求めていく方法である。例えば、ABCでは、シミュレータから疑似データを生成し、その擬似データが現実のデータと近ければ、シミュレータに使用されたパラメータを正しいものとして認める。
【0040】
換言すれば、ABCは、観測データとシミュレートしたデータの差異について拒絶アルゴリズム法を適用する、ベイズ推定のための尤度無しの方法である。
【0041】
Kernel ABCは、全サンプルを活用して、適合度で重み付けしたカーネル平均(kernel mean)として分布を表現する。
【0042】
カーネル法は、高次元空間への写像を構成する方法論である。カーネル法は、データを高次元の再生核ヒルベルト空間(一般には無限次元)へ写像し、解析しやすいデータに変換する。ヒルベルト空間(Hilbert space)とは、ベクトル空間であり、内積が備わっており、完備であるような集合である。
【0043】
集合Ω上の関数を要素に持つヒルベルト空間Hが再生核ヒルベルト空間(RKHR:reproducing kernel Hilbert space)であるとは、任意のx∈Ωに対してφ
X∈Hがあって、任意のf∈Hに対し、
<f,φ
X> = f(x)
が成り立つことをいう。φ
Xのことを再生核という。
【0044】
Kernel Herdingは、kernel meanの分布の特徴をうまく利用し、カブリの少ない代表点をスーパサンプルとして選択する。つまり、Kernel Herdingは、少ないサンプル点で、適切な設定の分布を表現する。
【0045】
ARDでは、ハイパーパラメータを調整することにより、事前分布からのサンプルでパラメータのほとんどの値が0を取ることで、余分なものを削除している。通常、これはディリクレ分布やベータ分布を事前分布として導入することにより達成される。ディリクレ分布の例で言えば、それに付随するハイパーパラメータの値を小さくとると、分布からのサンプルがほとんど0に近い値を取り、少ないパラメータで現象を説明しようとする力が働く。
【0046】
別言すると、パラメータの冗長性をコントロールしたい場合には、パラメータのサンプルをディリクレ分布もしくはベータ分布から取得する。ディリクレ分布、ベータ分布にはパラメータの冗長性をコントロールするハイパーパラメータが存在する。そのハイパーパラメータの値を変更することにより、パラメータのサンプルがもつ冗長性を調整する。例えば、冗長性をなくすようにハイパーパラメータを設定すると、サンプルの要素のごく少数のみが非0の値を取り、多くの要素は0の値を取る。これにより、0の値を取った要素は実質影響を持たない。こうして、得られた事後分布のカーネル平均は冗長性が非常に減少したものとなる。
【0047】
[関連技術]
本発明の理解を容易にするために、関連技術とその問題点について説明する。
【0048】
問題の事実(真実)が与えられたときに、その事実(真実)に十分に近接したデータを生成する、シミュレータのパラメータの集合を知りたいとする。ベイズ規則を適用したいが、尤度関数は評価されえない。しかしながら、シミュレータの尤度p(y|θ)から事前確率π(θ)に基づいて、次の式により、サンプリングは可能である。
【数1】
【0049】
そこで、ABCのフレームワークを使用することが考えられる。表1に、ABCのアルゴリズムを示す。
【表1】
【0050】
しかしながら、ABCには、次のような課題がある。
【0051】
第1の課題は、データの次元が高いと、パラメータが採択基準(tolerance level)をなかなか満たさず、現実的な時間でアルゴリズムが終了しないことである。
【0052】
第2の課題は、パラメータの次元が高いと、ABCの性能はすぐに低下することである。
【0053】
第3の課題は、シミュレーションを計算するのに時間がかかるので、実行数を省けないことである。
【0054】
[本発明に係るアルゴリズムの概要説明]
本発明では、第1および第2の課題を解決するためにKernel ABCを使用し、第3の課題を解決するためにKernel Herdingを使用している。
【0055】
本発明のアルゴリズムの概要は次の通りである。
A1.事前分布からパラメータの組をN回取り出す。
A2.N個のパラメータの組を使用してシミュレータからデータをN回生成する。
A3.Kernel ABC
・事後分布のカーネル平均を計算することによって、観測データに近接するデータを生成するシミュレータのパラメータを推察する。
A4.Kernel Herding
・次の繰り返しのために事後分布のカーネル平均から有益なサンプルをT回取り出す。
A5.収束するためにA2.から繰り返す。
【0056】
次に、Kernel ABCについて説明する。
Kernel ABCは、Kernelベイズ規則に基づいており、ベイズ規則のノンパラメトリックな実現である。
B1.事前分布からパラメータの組をN回取り出す。
B2.パラメータの組をシミュレータにN回入力することによって、N個のシミュレートしたデータを取得する。
B3.真のデータと各シミュレートしたデータとの間の類似度(重み)を計算する。
B4.B1.でのパラメータの組をそれらの類似度(重み)で平均化することによって、下記数式に従って、パラメータ事後分布のカーネル平均を計算する。
【数2】
【0057】
次に、カーネル平均について説明する。
Xを測度空間Ω上の値を取るランダム変数とし、kを測度空間Ω上の正定値カーネルであり、Hが正定値カーネルkによって規定された再生核ヒルベルト空間(RKHS:reproducing kernel Hilbert space)であるとする。このとき、カーネル平均は、次式で求められる。
【数3】
【0058】
特性カーネルによって、確率分布を再生核ヒルベルト空間に一意に埋め込むことができる。特性カーネルは、例えば、ガウスカーネルやラプラスカーネルなどである。
【0059】
次に、カーネル平均とカーネルベイズ規則を使用することの利点について説明する。変数間のパラメトリックモデルや、密度関数を想定することなく、ベイズ規則をノンパラメトリックに適用できる。したがって、確率分布を表すカーネル平均は、データからノンパラメトリックに推定される。
【0060】
次に、Kernel Herdingについて説明する。
Kernel ABCの出力は、再生核ヒルベルト空間内の事後分布のカーネル平均であるが、それ自身事後分布ではない。したがって、マルコフ連鎖モンテカルロ法に代表される事後分布からのサンプリング手法を使うことができない。しかし、Kernel Herdingは、事後分布からのサンプルを可能とする。
【0061】
更に、Kernel Herdingからのサンプルは、分布の特徴を上手く反映したスーパサンプルと呼ばれる。
【0062】
Kernel Herdingは、次の誤差を貪欲に最小化することで、サンプリングを行っていると解釈できる。
【数4】
【0063】
Kernel Herdingは、分布において密度が高い領域からサンプルを取る。つまり、分布のモードを探索すると考えられる。また、一度サンプルが取られた領域からは離れて、次のサンプルが取得される。
以上を要約すると、次のようになる。
【0064】
Kernel ABCは、比較的高い次元のパラメータを処理でき、比較的高い次元のデータ(シミュレートされたデータ/問題の真のデータ)を処理でき、扱いやすい計算的な複雑性を持つ。
【0065】
Kernel Herdingは、必要とされるシミュレーションの数を削減することができる。
【0066】
[発明の概要の説明]
人流シミュレータへの適用についてそもそも、モバイル空間統計のような、人口分布の時系列に関しての人流シミュレータのデータ同化はこれまで試みられていない。そのときに、以下の課題があり、本発明に係る提案手法ではそれに対処している。
【0067】
1)人流シミュレータはマルチエージェントシミュレータであり、多くの場合シミュレーションに非常に計算時間がかかる。
【0068】
これに対して、本提案手法では、Kernel herding を用いることにより、より少ない回数のシミュレーションでデータ同化を達成できる。これは、kernel herding が効率的により多くの情報を持つ重要なパラメータのサンプルを取得するからである。
【0069】
また、これについて、O(1/T) で誤差が収束していく。一方、モンテカルロ法などによるパラメータのサンプル取得では、より遅いO(1/√T) である。
【0070】
2)人流シミュレータではないが、他のデータ同化に関して、ABCなどを使ったベイズ推定では、パラメータの次元が高次元の際に、上手く働かないことが分かっている。
【0071】
これに対して、本提案手法では、Kernel ABC が、再生核ヒルベルト空間でベイズ推定を行うことにより、高次元パラメータに対応している。
【0072】
3)事前知識が間違っていた場合に、ある地域において存在しない人流パターンを想定して、事前分布を構築してしまうことがある。例えば、銀座において、吉野家で昼食をとり、ロレックスで時計を買い、フェラーリで車を買い、松屋で夜ご飯を食べるなどの人流パターンである。関連技術では、このような存在すると考えにくい人流パターンをアルゴリズムで自動的に削除する仕組みはなかった。
【0073】
これに対して、本提案手法では、ARD により、そういったパターンを削除するスパース性が導入されている。
【0074】
アルゴリズムについて、本提案手法は、尤度関数が評価できない場合に、点推定を行うことを可能としている。
【0075】
関連技術では、尤度関数が評価できない場合にベイズ推定を行うことはできた(ABCなど)。つまり、それによって正しい事後分布を求めることができた。しかしながら、ABCでは、真値が一点ある状況での点推定を、尤度関数が評価できない場合に行うことはできなかった。
【0076】
これに対して、本提案手法では、Kernel ABC + Kernel Herding で取得された事後分布からのサンプルを、事前分布からのサンプルとみて、Kernel ABC+ Kernel herding を繰り返し適用することで、点推定を達成している。
【0077】
一度目の適用では以下の数式で表される事後分布がえられる。
【数5】
【0078】
このP(θ|y) を事前分布として、二度目の適用をすると、以下の数式が得られる。
【数6】
これは、
【数7】
ということであり、N回目の適用では、
【数8】
となる。つまり、尤度関数l(y|θ) がN乗され、影響が強くなり、一方で事前分布π(θ) の影響が少なくなっている。これを無限回繰り返したあと、P(θ|y)を最大化するθを取得することは、π(θ)の影響が消えているため、l(y|θ)を最大化するθを取得することと一致すると考えられる。つまり、無限回のパラメータに関するベイズ推定を同一のデータに対して繰り返し、P(θ|y)を最大化するθを取得することは点推定の最尤法と一致すると考えることができる。これを踏まえ、尤度関数が評価できないときにベイズ推定を行う手法であるABCを使うことで、尤度関数なしの最尤法を実行できる。これをRecursive ABC-MLEと名づけた。このアルゴリズムの内部でkernel ABCを本明細書では用いているが、尤度関数無しに事後分布を求めることができる手法であればどれでも構わない。また、このアルゴリズム内部でP(θ|y)を最大化するθを取得することは、Kernel Herdingのmode-seeking(最頻値追跡)という特性により可能となっている。しかしながら、取得する手法は、必ずしもKernel Herdingである必要はなく、最頻値をサンプリングする特性のある手法であればよい。
【0079】
Kernel Herding が、事後分布から効率的により多くの情報を持つ重要なパラメータのサンプルを取得する。これについて、O(1/T ) で誤差が収束していく。
【0080】
一方、上記のベイズ推定の繰り返しを、関連技術の手法のマルコフ連鎖モンテカルロ法などによるパラメータのサンプル取得で行った場合は、より遅いO(1/√T) である。
【0081】
またこのアルゴリズムの本質は、尤度関数が評価できない場合に最尤法を可能にすることにある。このアルゴリズムの適用先としては、後で詳述する人流パターンを推定することのみでなく、次のものも考えられる。
【0082】
1)株価など金融時系列の価格変動の分散(ボラティリティ)を適切にモデル化するためによく使われるアルファ定常分布のパラメータをデータに合わせて推定すること。
【0083】
2)ハエなど、生物の個体数の時間発展を記述するモデルのパラメータをデータに合わせて推定すること。
【0084】
3)集団遺伝学において、与えられたデータの遺伝的多様性を実現するようなモデルのパラメータ(突然変異率など)を推定すること。
【0085】
尚、このアルゴリズムは、ソフトウェア関連発明であるとしても、計算時間を減少できる効果を奏するので、コンピュータ関連技術を改善(向上)するものであり、抽象概念には該当しない。
【0086】
[実施の形態]
図1は、本発明の一実施形態に係る人流パターン推定システム100の構成を示すブロック図である。
【0087】
図示の人流パターン推定システム100は、データを処理するデータ処理装置200と、後述するプログラムやデータを記憶する記憶装置300と、データを入力する入力装置400と、データを出力する出力装置500と、を備えている。
【0088】
出力装置500は、LCD(Liquid Crystal Display)やPDP(Plasma Display Panel)などの表示装置やプリンタからなる。出力装置500は、データ処理装置200からの指示に応じて、操作メニューなどの各種情報を表示したり、最終結果を印字出力する機能を有する。
【0089】
記憶装置300は、ハードディスクやリードオンリメモリ(ROM)およびランダムアクセスメモリ(RAM)などのメモリからなる。記憶装置300は、データ処理装置200における各種処理に必要な処理情報310やプログラム320を記憶する機能を有する。
【0090】
データ処理装置200は、MPU(micro processing unit)などのマイクロプロセッサや中央処理装置(CPU)からなる。データ処理装置200は、記憶装置300からプログラム320を読み込んで、プログラム320に従ってデータを処理する各種処理部を実現する機能を有する。
【0091】
データ処理装置200は、人流シミュレータ210と機械学習装置220とを備える。
【0092】
図示の人流パターン推定システム100において、アルゴリズムに必要なデータや、装置モバイル空間統計のような、人流を推定したい地域、時刻においての人口分布のデータが与えられているものとする。これを正解データy
*と呼ぶ。
【0093】
図2は、正解データy
*を示す人口時間分布データの一例を示す図である。人口時間分布データは、時刻T=・・・、t−1,t、t+1、t+2、・・・ごとの、人口分布を示している。時刻Tは、例えば、30分毎の時刻である。このような人口時間分布データは、例えば、統計情報やSNS(Social Networking Service)で取得することが可能である。ここで、SNSとは、人と人との社会的な繋がりを維持・促進する様々な機能を提供する、会員制のオンラインサービスである。記憶装置300は、処理情報310として正解データy
*を保存している。
【0094】
人流パターン推定システム100は、街中における人流グループ単位での動きである人流パターンを推定するシステムである。
【0095】
人流シミュレータ210は、人流パターンを、任意の地域、時刻においてシミュレーションすることができる。
【0096】
詳述すると、人流シミュレータ210には、各地点、各時刻での人口分布の情報および前記街中の地図情報や施設情報が組み込こまれる。
【0097】
図3は、人流シミュレータ210に組み込まれる(設定される)、地図情報および施設情報(地図/建物データ)の一例を示す図である。記憶装置300は、処理情報310として地図情報および施設情報を保存している。これら地図情報および施設情報は、後述するように、人流シミュレータ210に設定される。
【0098】
人流シミュレータ210は、後述するように機械学習装置220から供給される、人流パターンを規定するパラメータθのサンプルから、各地点、各時刻での人口分布データyを出力する。ここで、人流シミュレータ210から得られた人口分布データyは、通常、正解データy
*には一致しないことに注意されたい。何故なら、正解データy
*を満たす人流パターンを誰も知らないからである。
【0099】
図4に、人流パターンの一例を示す。
図4に示す人流パターンは、地点A、B、C、D、E、F、Gにおける、時刻9:00以降の人流パターンを示している。
【0100】
パラメータθは、各集団の、出発点、出発時刻、経由点、滞在時間、目的地、および人数の情報を含む。
【0101】
機械学習装置220は、人流シミュレータ210に設定するパラメータθを、後述するように、繰り返し学習により決定する。
【0102】
図5は、機械学習装置200で実現される主な処理部を示すブロック図である。
【0103】
機械学習装置200は、データ入力部221と、第1のサンプル取得部222と、シミュレーション実行部223と、Kernel ABC実行部224と、カーネル平均構築部225と、第2のサンプル取得部226と、サンプル評価部227とから成る。なお、Kernel ABC実行部224は、後述するように類似度算出部として働く。
【0104】
次に、
図6乃至
図12を参照して、各処理部の動作について説明する。
【0105】
図6を参照して、データ入力部221の動作について説明する。
【0106】
図6に示されるように、データ入力部221は、人流シミュレータ210に人流パターンを推定したい地域の情報を入力する。詳述すると、記憶装置300は、処理情報310に、前述したように、地域の情報として地図情報や施設情報を保存している。データ入力部221は、記憶装置300から地図情報と施設情報とを読み出して、それら情報を人流シミュレータ210に入力(設定)する。
【0107】
尚、本例では、データ入力部221は、記憶装置300に保存されている地図情報および施設情報を読み出して、人流シミュレータ210に設定しているが、入力装置400から供給された地図情報および施設情報を、直接、人流シミュレータ210に設定してもよい。
【0108】
図7を参照して、第1のサンプル取得部222の動作について説明する。第1のサンプル取得部222は、「事前分布からのサンプル取得部」とも呼ばれる。この第1のサンプル取得部22には、ARDが関わっている。
【0109】
図7に示されるように、記憶装置300には、処理情報310として、事前分布Pと、その事前分布Pのハイパーパラメータηと、事前分布Pからのサンプルの個数Nとが格納されている。事前分布Pは、任意のパラメータサンプルの合計が1となるような、mixture モデル、もしくは解の構造がmixture モデルと同じ場合を反映できる適当な事前分布である。
【0110】
この事前分布Pのハイパーパラメータηを調整することにより、このアルゴリズムの最終的な解にスパース性を入れるかどうかが決定される。
【0111】
第1のサンプル取得部222は、下記の数式のように、事前分布からサンプルを取り出す。
【数9】
【0112】
したがって、第1のサンプル取得部222は、人流シミュレータ210へのパラメータのN個のサンプル{θ
i}(i=1〜N)を取得する。この取得したパラメータのN個のサンプル{θ
i}は、処理情報310として記憶装置300に保存される。
【0113】
図8を参照して、シミュレーション実行部223の動作について説明する。
【0114】
図8に示されるように、記憶装置300は、前述したサンプルの個数Nと、パラメータのN個のサンプル{θ
i}と、を処理情報310として保存している。
【0115】
シミュレーション実行部223は、人流シミュレータ310にパラメータのサンプル{θ
i}をN 回入力して、人流シミュレータ310からN個の人口分布データ{y
i}(1≦i≦)を得る。この得られたN個の人口分布データ{yi}は、処理情報310として記憶装置300に保存される。
【0116】
図9を参照して、Kernel ABC 実行部(類似度算出部)224の動作について説明する。
【0117】
図9に示されるように、記憶装置300は、前述したN個の人口分布データ{y
i}と、前述した正解データy
*と、カーネル関数kと、正則化項δと、を処理情報310として保存している。
【0118】
Kernel ABC 実行部224は、下記の数式で表される計算を行い、正解データと各シミュレーションされた人口分布データ{y
i}との類似度{w
i}(1≦i≦N)を得る。
【数10】
ここで、Gはグラム行列を示し、Iは単位行列を示す。この得られたN個の類似度{w
i}は、処理情報310として記憶装置300に保存される。
【0119】
なお、本例では、類似度算出部として、Kernel ABCアルゴリズムにより前記類似度w
iを算出するKernel ABC 実行部224を用いているが、本発明はこれに限られない。すなわち、類似度算出部で使用するアルゴリズムは、後述する事後分布のカーネル平均が構築できるようにN個の類似度{w
i}を出力するアルゴリズムなら何でも構わない。
【0120】
図10を参照して、カーネル平均構築部225の動作について説明する。
【0121】
図10に示されるように、記憶装置300は、前述したパラメータのN個のサンプル{θ
i}と、前述したN個の類似度{w
i}と、前述したカーネル関数kと、を処理情報310として保存している。
【0122】
カーネル平均構築部225は、下記の数式で表される計算を行ない、事後分布のカーネル平均μを得る。
【数11】
この得られたカーネル平均μは、処理情報310として記憶装置300に保存される。
【0123】
図11を参照して、第2のサンプル取得部226の動作について説明する。第2のサンプル取得部226は、「事後分布からのサンプル取得部」とも呼ばれる。この第2のサンプル取得部226は、上述したKernel Herdingを実行する。
【0124】
図11に示されるように、記憶装置300には、前述したカーネル平均μと、前述したカーネル関数kと、取り出すサンプル数Tと、を処理情報310として保存している。
【0125】
第2のサンプル取得部226は、以下の数式で現れる誤差を最小化する計算を行って、新たなパラメータのT個のサンプル{θ
t}(1≦t≦T)を得る。
【数12】
この得られた新たなパラメータのT個のサンプル{θ
t}は、処理情報310として記憶装置300に保存される。
【0126】
最後に、
図12を参照して、サンプル評価部227の動作について説明する。
【0127】
図12に示されるように、記憶装置300には、前述した新たなパラメータのT個のサンプル{θ
t}と、前述した前述した正解データy
*と、閾値εと、を処理情報310として保存している。
【0128】
サンプル評価部227は、先ず、新たなパラメータのT個のサンプル{θ
t}から適当なサンプルθ
kを選び、その選択したサンプルθ
kを人流シミュレータ210へ供給する。それにより、サンプル評価部227は、人流シミュレータ210から新たな人口分布データy
kを取得する。引き続いて、サンプル評価部22は、下記の式が満たされているか否かを判断する。
【数13】
すなわち、サンプル評価部227は、新たな人口分布データy
kと正解データy
*との差分||y
k−y
*||が、閾値εより小さいか否かを判断する。上記式が満たされていれば、サンプル評価部227は、選択したサンプルθ
kを推定された人流パターンを規定する真のパラメータとして推定し出力し、処理を終了する。
【0129】
一方、上記式が満たされなかった場合、シミュレーション実行部223での動作に戻る。
【0130】
もしくは、第1のサンプル取得部222での動作に戻る。このとき、スパース性が十分に入っていなければ、第1のサンプル評価部222の入力であるハイパーパラメータηも変更されるものとする(ARD)。
【実施例】
【0131】
次に、
図13のフローチャートを参照して、具体例を挙げながら、人流パターン推定システム100の動作の一実施例について説明する。
【0132】
先ず、データ入力部221は、地図情報と施設情報とを人流シミュレータ210に設定する(ステップS101)。
【0133】
具体的には、データ入力部221は、人流シミュレータ210に銀座などのマップを与える。
【0134】
次に、第1のサンプル取得部222は、ハイパーパラメータηに基づいて事前分布Pからサンプルを取り出し、人流シミュレータ210へ入力すべきパラメータのN個のサンプル{θ
i}を取得する(ステップS102)。
【0135】
具体的には、第1のサンプル取得部222は、銀座マップにおいてシミュレーションする人口集団を制御するパラメータθのサンプルを、例えば1000個取ってくる(N=1000)。
【0136】
例えば、一つのパラメータθは、以下のような要素で構成される。銀座を訪れるサラリーマンの集団を考えると、パラメータθは、集団の人数、彼らが銀座を訪れる時刻、彼らが銀座を出ていく時刻、銀座で立ち寄る店舗の位置情報、その店舗での滞在時間などである。ハイパーパラメータηは、それを調整することによって余分なパラメータを削除することができる。例えば、銀座には、コンビニエンスストアしか立ち寄らない集団は来ないといった推定がこれによってできる。
【0137】
引き続いて、シミュレーション実行部223は、パラメータのサンプル{θ
i}を、人流シミュレータ210にN回入力して、N個の人口分布データ{y
i}を得る(ステップS103)。
【0138】
具体的には、シミュレーション実行部223は、ステップS102で得られた一つ一つのパラメータのサンプルに関して、シミュレーションを行う。あるパラメータ集合のサンプルでは、集団の人数が1000人かもしれず、別のサンプルでは2000人かもしれないといった違いがある。ステップS002 で、1000個のパラメータ集合を取ってきたので、シミュレーション実行部223は1000回のシミュレーションを行う。そして、人流シミュレータ210から、そのシミュレーションされた人口分布データy
iを取得する。
【0139】
次に、Kernel ABC 実行部(類似度算出部)224は、上記数10の計算を行い、正解データy
*と各シミュレーションされた人口分布データ{y
i}との類似度{w
i}を得る(ステップS104)。
【0140】
具体的には、Kernel ABC 実行部224は、銀座で1000個の違った形でシミュレーションされたデータy
iを、銀座の正解データy
* と比べる。この比較により、正解データy
*とシミュレーションからのデータy
iとの類似度w
iが計算される。Kernel ABC 実行部224は、この類似度w
iをもとに、シミュレーションされたデータに紐づいているパラメータのサンプルθ
iのもっともらしさを決定する。
【0141】
引き続いて、カーネル平均構築部225は、上記数11に従って、事後分布のカーネル平均μを計算する(ステップS105)。
【0142】
具体的には、カーネル平均構築部225は、ステップS104で計算された類似度w
iを元に、パラメータのサンプルθ
iに関して、事後分布のカーネル平均μを構築する。これは、事前分布からのサンプルθ
iを元に、類似度w
iを使い重みを再調整し、確率分布を再生核ヒルベルト空間上で構築することに相当する。
【0143】
次に、第2のサンプル取得部226は、上記数12の誤差を最小化する計算を行なって、新たなパラメータのT個のサンプル{θ
t}を取得する(ステップS106)。
【0144】
具体的には、第1のサンプル取得部226は、事後分布のカーネル平均μからのサンプリングを行う。このとき、サンプルされるのは新たなパラメータのサンプルθ
tだが、ステップS102において取得したパラメータのサンプルθ
iとは違い、正解データy
*を生み出すようなパラメータのサンプルが求められる。
【0145】
引き続いて、サンプル評価部227は、新たなパラメータのT個のサンプル{θ
t}を評価する(ステップS107)。
【0146】
具体的には、サンプル評価部227は、ステップ106で求められたパラメータ集合{θ
t}(1≦t≦T)のなかからパラメータθ
kを一つ適当に選び、それを人流シミュレータ210に入力し、データy
kを獲得する。そして、サンプル評価部227は、獲得したデータy
kを正解データy
*と比べることで、パラメータの確からしさを評価する。選択したパラメータθ
kが充分に確からしい場合、サンプル評価部227は、それを銀座における人流推定値とする(ステップS108)。
【0147】
そのパラメータθ
kには、銀座にどういった集団が、どこから来て、どこに滞在し、どこから帰っていくかという情報が含まれている。パラメータθ
kの確からしさが満足のいくものでない場合(ステップS107のNo)、人流パターン推定システム100は、もう一度、ステップS103もしくはステップS102から動作を繰り返す。
【0148】
次に、人流パターン推定システム100を実行した場合の実験結果について説明する。
【0149】
ここでは、
図14に示すように、銀座の4meshモデルの実験を設定した。本例では、(2×2)の4つのメッシュに分割されているが、実際の例では、例えば、5×5=25メッシュに分割されることに注意されたい。図示の例では、4つのメッシュは、(0,0)、(0,1)、(1,0)、および(1,1)の領域から成る。時刻は、900〜17:00で30分間隔とした。
【0150】
図15に示すような、5つのルールを設定した。そのため、推定パラメータの次元は、(Start, Goal, Transit×2, Stay×2, T, N)×5ルールで、40次元となる。ここで、Tは集団の出発時刻を示し、Nは集団の人数を示す。なお、この各ルールにおいて、Nはパラメータθのサンプル数Nとは異なり、Tは新たなパラメータのサンプル数Tとは異なることに注意されたい。
【0151】
図16は、
図14に示した銀座の4meshモデルの実験結果を示す。
図16において、左側のKernel ABCの図は、シミュレーション実行部223およびKernel ABC 実行部224のみを1回だけ実行した場合の、各メッシュでの人口分布の変化を示している。真ん中のKernel Herding (1
st)の図は、シミュレーション実行部223、Kernel ABC 実行部224、カーネル平均構築部225、および第2のサンプル取得部226を1回だけ実行した場合の、各メッシュでの人口分布の変化を示している。右側のKernel Herding (2nd)の図は、シミュレーション実行部223、Kernel ABC 実行部224、カーネル平均構築部225、および第2のサンプル取得部226を2回実行した場合の、各メッシュでの人口分布の変化を示している。
【0152】
図16から、Kernel ABCだけよりも(Kernel ABC + Kernel Herding)の方が、より正解データに近い人口分布を持つ推定結果が得られることが分かる。また、(Kernel ABC + Kernel Herding)を1回実行するよりも(Kernel ABC + Kernel Herding)を2回実行する方が、より正解データに近い人口分布を持つ推定結果が得られることが分かる。
【0153】
尚、上記実施の形態において、機械学習装置220の各部は、ハードウェアとソフトウェアとの組み合わせを用いて実現可能である。ハードウェアとソフトウェアとを組み合わせた形態では、プログラムメモリ320に人流パターン推定プログラムが格納され、該人流パターン推定プログラムに基づいて機械学習装置220のハードウェアを動作させることによって、各部を各種手段として実現する。また、該人流パターン推定プログラムは、記録媒体に記録されて頒布されても良い。当該記録媒体に記録された人流パターン推定プログラムは、有線、無線、又は記録媒体そのものを介して、メモリに読込まれ、処理部等を動作させる。尚、記録媒体を例示すれば、オプティカルディスクや磁気ディスク、半導体メモリ装置、ハードディスクなどが挙げられる。
【0154】
上記実施の形態を別の表現で説明すれば、機械学習装置220として動作させるコンピュータを、プログラムメモリ320に格納された人流パターン推定プログラムに基づき、データ入力部221、第1のサンプル取得部222、シミュレーション実行部223、Kernel ABC 実行部(類似度算出部)224、カーネル平均構築部225、第2のサンプル取得部226、およびサンプル評価部227として動作させることで実現することが可能である。
【0155】
以上、本発明の実施の形態および実施例を、図面を参照しつつ説明してきたが、当業者であれば、他の類似する実施形態および実施例を使用することができること、また、本発明から逸脱することなく適宜形態の変更又は追加を行うことができることに留意すべきである。