(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-08-26
(45)【発行日】2024-09-03
(54)【発明の名称】機械学習プログラム、機械学習方法及び推定装置
(51)【国際特許分類】
G06N 20/00 20190101AFI20240827BHJP
G06N 3/006 20230101ALI20240827BHJP
G06Q 10/04 20230101ALI20240827BHJP
G08G 1/00 20060101ALI20240827BHJP
【FI】
G06N20/00
G06N3/006
G06Q10/04
G08G1/00 C
(21)【出願番号】P 2021030320
(22)【出願日】2021-02-26
【審査請求日】2023-11-09
(73)【特許権者】
【識別番号】000005223
【氏名又は名称】富士通株式会社
(74)【代理人】
【識別番号】110002147
【氏名又は名称】弁理士法人酒井国際特許事務所
(72)【発明者】
【氏名】山田 広明
(72)【発明者】
【氏名】小川 雅俊
【審査官】多賀 実
(56)【参考文献】
【文献】国際公開第2018/131214(WO,A1)
【文献】特開2020-091756(JP,A)
【文献】米国特許出願公開第2017/0146351(US,A1)
【文献】特開2022-088278(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06N 3/00-99/00
G06Q 10/04-10/047
G08G 1/00- 1/16
(57)【特許請求の範囲】
【請求項1】
環境を表す第1のパラメータと複数の移動体のそれぞれの前記環境における移動の属性を表す第2のパラメータとを取得し、
前記第2のパラメータに基づいて、前記複数の移動体を複数のグループに分類し、
前記複数のグループのそれぞれに分類された移動体の数を示す第3のパラメータを生成し、
前記第1のパラメータと前記第3のパラメータとを機械学習モデルに入力し、前記複数の移動体の前記環境における移動に関する推定情報を生成する、
処理をコンピュータに実行させることを特徴とする機械学習プログラム。
【請求項2】
前記第2のパラメータは、独立に意思決定を行う主体の前記環境における移動に関わる情報であることを特徴とする請求項1に記載の機械学習プログラム。
【請求項3】
前記第2のパラメータの類似度が高い移動体が同じ前記グループに属するように、前記複数の移動体を複数の前記グループに分類することを特徴とする請求項1又は2に記載の機械学習プログラム。
【請求項4】
生成した前記推定情報、並びに、前記第1のパラメータ及び前記第2のパラメータを用いて行ったシミュレーションの結果を用いて前記機械学習モデルの訓練を行う処理を前記コンピュータにさらに実行させることを特徴とする請求項1~3のいずれか一つに記載の機械学習プログラム。
【請求項5】
第2の環境を表す第4のパラメータと第2の複数の移動体のそれぞれの前記第2の環境における移動の属性を表す第5のパラメータの情報を取得し、
前記第2の環境における前記第5のパラメータに基づいて、前記第2の環境における前記複数の移動体のそれぞれが前記複数のグループのいずれに属するかを判定し、
判定結果を基に、前記複数のグループのそれぞれに分類された第2の移動体の数を示す第6のパラメータを生成し、
前記第2の環境における前記第4のパラメータ及び前記第6のパラメータを訓練済みの前記機械学習モデルに入力し、前記第2の複数の移動体の前記第2の環境における移動に関する推定情報を生成する、
処理を前記コンピュータに実行させることを特徴とする請求項4に記載の機械学習プログラム。
【請求項6】
環境を表す第1のパラメータと複数の移動体のそれぞれの前記環境における移動の属性を表す第2のパラメータとを取得し、
前記第2のパラメータに基づいて、前記複数の移動体を複数のグループに分類し、
前記複数のグループのそれぞれに分類された移動体の数を示す第3のパラメータを生成し、
前記第1のパラメータと前記第3のパラメータとを機械学習モデルに入力し、前記複数の移動体の前記環境における移動に関する推定情報を生成する、
ことを特徴とする機械学習方法。
【請求項7】
環境を表す第1のパラメータと複数の移動体のそれぞれの前記環境における移動の属性を表す第2のパラメータとを取得し、
前記第2のパラメータに基づいて、前記複数の移動体を複数のグループに分類し、
前記複数のグループのそれぞれに分類された移動体の数を示す第3のパラメータを生成し、
前記第1のパラメータと前記第3のパラメータとを機械学習モデルに入力し、前記複数の移動体の前記環境における移動に関する推定情報を生成する、
処理を実行する制御部を有することを特徴とする推定装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、機械学習プログラム、機械学習方法及び推定装置に関する。
【背景技術】
【0002】
近年、都市への人口集中により、慢性的な渋滞、騒音、大気汚染などといった様々な社会問題が引き起こされる。そこで、各都市において交通システムなどの社会システムの最適化が重要な課題である。
【0003】
例えば、都市における人々の移動により、人流や交通流が発生する。そこで、都市における人々の安全や安心のために、混雑が起きないように人流や交通流を管理することが望ましい。人流や交通流の管理手法として、都市計画、交通網の整備及び信号やインセンティブによる誘導などの方法が存在する。
【0004】
人流や交通流の管理を効果的に行うにあたり、混雑発生の状況や混雑緩和施策の効果の予測が重要となる。そこで、人流や交通流のシミュレーションによる社会システムの設計が注目されている。例えば、人流や交通流のシミュレーションにより、人流や交通流の各管理方法の評価を行い、評価結果をフィードバックすることで、管理をより効率化することができる。また、シミュレーションは、社会実験をするよりも低コストといった利点を有する。
【0005】
人流や交通流のシミュレーションとして、エージェントシミュレーションと呼ばれる手法が存在する。エージェントとは独立に意思決定を行う主体を表し、それらエージェントの行動単位で行われるシミュレーションがエージェントシミュレーションである。
【0006】
ただし、シミュレーションにより最適な施策を発見しようとすると、シミュレーションの実行を何度も繰り返すことになり、多大な計算コストがかかる。そこで、深層学習(Deep Learning)技術によりシミュレーションを代替させる技術が提案されている。例えば、シミュレーションを用いて求められた様々な都市の状況と混雑の関係を学習させ、訓練済みモデルを用いて未知の状況の混雑を高速に予測するサロゲートモデル手法と呼ばれる方法がある。深層学習技術によりシミュレーションを代替させることで、CPU(Central Processing Unit)の使用率の低減や時間を短縮することが可能となり、安価に最適施策を求めることができる。
【0007】
都市の状況と混雑の関係の機械学習方法としては、通常の時系列データの機械学習方法を用いてシステムの入出力を学習する方法が考えられる。例えば、シミュレーションで用いられる各パラメータを、LSTM((Long-Short Term Model)などのRecurrent Neural Networkの特徴量とし、正解ラベルを各時刻の混雑状況として学習を行わせることができる。
【先行技術文献】
【非特許文献】
【0008】
【文献】Yamada, H., Ohori, K., Iwao, T., Kira, A., Kamiyama, ., Yoshida, H., & Anai, H., “Modeling and managing airport passenger flow under uncertainty: A case of fukuokaairport in Japan”, Social Informatics -9th International Conference, SocInfo2017, Proceedings, pp. 419-430, Vol. 10540, Lecture Notes in Computer Science, Springer Verlag, 2017.
【文献】KarevanZ, SuykensJAK. “Transductive LSTM for time-series prediction: An application to weather forecasting”, Neural Networks: the Official Journal of the International Neural Network Society, Vol. 125 pp. 1-9, 08 Jan 2020.
【発明の概要】
【発明が解決しようとする課題】
【0009】
しかしながら、シミュレーションを深層学習で代替する場合に、シミュレーションで用いられる各パラメータをそのまま使用すると、シミュレーションで用いられるパラメータの数が膨大であることから、入力系列が長くなる。入力系列が長くなると、計算量の増加が顕著となり、機械学習が進まなくなるおそれがある。
【0010】
開示の技術は、上記に鑑みてなされたものであって、人流や交通流の推定を効率的に行う機械学習プログラム、機械学習方法及び推定装置を提供することを目的とする。
【課題を解決するための手段】
【0011】
本願の開示する機械学習プログラム、機械学習方法及び推定装置の一つの態様において、以下の処理をコンピュータに実行させる。環境を表す第1のパラメータと複数の移動体のそれぞれの前記環境における移動の属性を表す第2のパラメータとを取得する処理。前記第2のパラメータに基づいて、前記複数の移動体を複数のグループに分類する処理。前記複数のグループのそれぞれに分類された移動体の数を示す第3のパラメータを生成する処理。前記第1のパラメータと前記第3のパラメータとを機械学習モデルに入力し、前記複数の移動体の前記環境における移動に関する推定情報を生成する処理。
【発明の効果】
【0012】
1つの側面では、本発明は、人流や交通流の推定を効率的に行うことができる。
【図面の簡単な説明】
【0013】
【
図1】
図1は、実施例に係る推定装置のブロック図である。
【
図2】
図2は、エージェントシミュレーションの対象の一例を示す図である。
【
図3】
図3は、パラメータの情報の格納状態を表す図である。
【
図4】
図4は、エージェントのセグメンテーションを説明するための図である。
【
図5】
図5は、セグメントのパラメータの情報の一例を示す図である。
【
図6】
図6は、Attentionモデルによる機械学習の概要を説明するための図である。
【
図7】
図7は、実施例に係る推定装置によるエージェントシミュレーションのサロゲートモデルの訓練処理のフローチャートである。
【
図8】
図8は、実施例に係る推定装置によるエージェントシミュレーションの予測処理のフローチャートである。
【
図9】
図9は、他の要約方法を用いた場合との予測精度の比較を示す図である。
【
図10】
図10は、実施例に係る推定装置によるAttentionモデルを用いた予測結果の一例を示す図である。
【
図11】
図11は、実施例に係る推定装置のハードウェア構成の一例を示す図である。
【発明を実施するための形態】
【0014】
以下に、本願の開示する機械学習プログラム、機械学習方法及び推定装置の実施例を図面に基づいて詳細に説明する。なお、以下の実施例により本願の開示する機械学習プログラム、機械学習方法及び推定装置が限定されるものではない。
【実施例】
【0015】
図1は、実施例に係る推定装置のブロック図である。本実施例に係る推定装置1は、複数のエージェントシミュレーションの実行結果及びそれらのエージェントシミュレーションで用いたパラメータの情報を訓練データとして訓練を行い、エージェントシミュレーションのサロゲートモデルを構築する。そして、推定装置1は、構築したサロゲートモデルを用いて推定対象の状態におけるパラメータの情報から人流の推定を行う。本実施例では、人流の推定として混雑の時間変化の推定を行う。以下の説明では、推定対象とした都市における人流の推定を例に説明する。推定装置1は、
図1に示すように制御部10、推定部20、シミュレーション情報保持部30及び出力部40を有する。
【0016】
シミュレーション情報保持部30は、実行済みの複数のエージェントシミュレーションの実行結果及び各エージェントシミュレーションにおけるパラメータの値が格納される。エージェントシミュレーションにおけるパラメータは、都市状況を表す情報であり、都市のインフラや移動ニーズが含まれる。以下では、エージェントシミュレーションを実行する際に用いられるパラメータを、「シミュレーションのパラメータ」と呼ぶ。シミュレーションのパラメータは、以下のような情報を数値化した値で表される。
【0017】
都市のインフラを表すパラメータは、環境パラメータと呼ばれる。環境パラメータは、例えば、シミュレーション対象におけるノードの性質と各ノードを結ぶネットワークの情報である。都市におけるノードとは、例えば店舗や広場などの各種施設である。ノードの性質は、例えば、店の処理速度などである。そして、ネットワークとは、道などを表し、例えば店同士がどの様につながっているかを表す情報である。この環境パラメータが、「第1のパラメータ」の一例にあたる。
【0018】
また、移動ニーズを表すパラメータは、エージェントパラメータと呼ばれ、独立に意思決定を行う主体であるエージェント毎にそれぞれ与えられる情報である。エージェントパラメータは、例えば、各エージェントがどのような経路を用いるかといった情報や、いつ到着するかといった情報や、どの様な時に到着をあきらめるかといった情報などの、エージェント毎の移動に関わる情報である。このエージェントパラメータが、「第2のパラメータ」の一例にあたる。
【0019】
図2は、エージェントシミュレーションの対象の一例を示す図である。例えば、
図2は、複数のノード31がそれぞれ道路32により接続された都市状況を表す。この都市状況が、学習の対象となる環境にあたる。そして、エージェントPがノード31及び道路32を有する都市の中を移動する。エージェントPは、多数存在しており、それぞれが異なる対象である。そして、エージェントシミュレーションを行うことで、各エージェントPの都市での動きが計算され、時間毎の各ノード31や道路32における混雑状況が求められる。
【0020】
制御部10は、シミュレーション情報保持部30に格納された情報を用いて、RNN(Recurrent Neural Networks)の一種であるAttentionモデルの訓練を行う。Attentionモデルは、入力されたベクトルによって重みを計算し、その重みに基づいて索引ベクトルから任意のベクトルを出力するモデルである。訓練を行う際、制御部10は、シミュレーションのパラメータを要約したパラメータを訓練データとして用いる。以下に、制御部10の詳細について説明する。以下では、要約されたシミュレーションのパラメータを、「シミュレーションの要約パラメータ」と呼ぶ。
図1に示すように、制御部10は、パラメータ取得部11、分類部12及び機械学習部13を有する。
【0021】
パラメータ取得部11は、実行済みのエージェントシミュレーションで用いられたシミュレーションのパラメータの値をシミュレーション情報保持部30から取得する。
図3は、パラメータの情報の格納状態を表す図である。パラメータ取得部11は、
図3に示すシミュレーションのパラメータ101を取得する。シミュレーションのパラメータ101には、各パラメータの値が格納される。
【0022】
パラメータ取得部11は、取得したシミュレーションのパラメータ101にどの様な構成でパラメータの値が格納されているかを示すモデル知識110を有する。例えば、パラメータ取得部11は、パラメータ101の先頭の領域112に環境パラメータの値が格納され、それ以外の領域113にエージェントパラメータの値が格納されるといったモデル知識110を有する。さらに、モデル知識110には、領域113は3つずつのパラメータを含む領域131~133を有するといった情報が含まれる。そして、領域131~133のそれぞれには、異なるエージェントの情報が格納されることが、モデル知識110として示される。ここでは分かりやすいように、シミュレーションのパラメータ101には、環境パラメータが1つ存在し、3つのパラメータの情報を含むエージェントのパラメータの情報が3つ存在する場合を例に説明したが、これらの数に特に制限はない。環境パラメータが複数であってもよいし、エージェントパラメータはさらに多くの数がであってもよい。
【0023】
パラメータ取得部11は、モデル知識110にしたがって、取得したシミュレーションのパラメータ101からエージェント毎のエージェントパラメータの値を取得する。例えば、パラメータ取得部11は、シミュレーションのパラメータ101のうち領域131から1人目のエージェントの3つのエージェントパラメータの値を取得する。また、パラメータ取得部11は、領域132から2人目のエージェントの3つのエージェントパラメータの情報を取得する。また、パラメータ取得部11は、領域131から3人目のエージェントのエージェントパラメータの値を取得する。そして、パラメータ取得部11は、実行済みの各エージェントシミュレーションにおける、エージェント毎の各エージェントパラメータの値を分類部12へ出力する。
【0024】
分類部12は、実行済みのエージェントシミュレーションにおける、エージェント毎の各エージェントパラメータの値の入力をパラメータ取得部11から受ける。次に、分類部12は、各エージェントパラメータの値から、エージェントを類似度に基づきセグメンテーションする。例えば、分類部12は、K-meansを用いてエージェントのパラメータの情報をクラスタリングすることで、エージェントのセグメンテーションを実行する。
【0025】
図4は、エージェントのセグメンテーションを説明するための図である。例えば、
図3のシミュレーションのパラメータ101を用いる場合、分類部12は、各エージェントパラメータの値として
図4に示すような、3つのパラメータ値を含むパラメータ値141~143を取得する。この場合、分類部12は、パラメータ値の類似度から、パラメータ値141を有するエージェントとパラメータ値143とを有するエージェントを同じクラスタに分類する。また、分類部12は、パラメータ値142を有するエージェントを、パラメータ値141やパラメータ値143を有するエージェントとは異なるクラスタに分類する。
【0026】
次に、分類部12は、クラスタリングで生成したクラスタ毎にそれぞれを1つずつのセグメントとしてラベリングを行う。例えば、分類部12は、ラベリング144に示すように、パラメータ値141及びパラメータ値143に対応するエージェントが含まれるクラスタをセグメント#1とし、パラメータ値142に対応するエージェントが含まれるクラスタをセグメント#2とする。
【0027】
そして、分類部12は、セグメント毎に属するエージェントの数を集計する。そして、分類部12は、セグメント毎の集計結果を各セグメントのパラメータの値とする。
図5は、セグメントのパラメータの情報の一例を示す図である。例えば、
図4のようにラベリングを行った場合、分類部12は、表150に示すように、セグメント#1の値を2とし、セグメント#2の値を1とする。
【0028】
これにより、分類部12は、エージェントパラメータを、セグメントのパラメータとして要約できる。例えば、分類部12は、
図3におけるシミュレーションのパラメータ101に含まれる9つのエージェントパラメータを、
図5の表150に示すように2つのセグメントのパラメータに要約することができる。ここで、セグメントは、類似するエージェントをまとめたものであり、そのセグメントが表す意味は容易に把握され得る。より具体的には、各セグメントに含まれるエージェントの中心点がそのセグメントの意味を表すといえる。
【0029】
このセグメントのパラメータが、「第3のパラメータ」の一例にあたる。そして、分類部12は、第2のパラメータであるエージェントパラメータに基づいて、複数の移動体であるエージェントを複数のグループに分類する。そして、分類部12は、複数のグループのそれぞれに分類された移動体であるエージェントの数を表す第3のパラメータであるセグメントのパラメータを生成する。
【0030】
その後、分類部12は、実行済みのエージェントシミュレーション毎に、生成した各セグメントのパラメータの情報を環境パラメータに結合してシミュレーションの要約パラメータを生成する。その後、分類部12は、生成したシミュレーションの要約パラメータの値を訓練データとして機械学習部13へ出力する。この場合、各セグメントのパラメータの値を含むシミュレーションの要約パラメータの値がAttentionモデルへ入力される訓練データとなるため、分類部12は、シミュレーションのパラメータの要約により訓練データを削減したといえる。
【0031】
図1に戻って説明を続ける。機械学習部13は、実行済みのエージェントシミュレーション毎の、シミュレーションの要約パラメータの情報を含む訓練データの入力を分類部12から受ける。次に、機械学習部13は、各実行済みのエージェントシミュレーションの実行結果をシミュレーション情報保持部30から取得する。そして、機械学習部13は、取得した訓練データをAttentionモデルへ入力して各時刻での混雑状況の予測値を得る。そして、機械学習部13は、実行済みのエージェントシミュレーションの実行結果を各時刻での混雑状況の正解ラベルとしてAttentionモデルを訓練することで、シミュレーションの要約パラメータと混雑の時間変化との関係をAttentionモデルに学習させる。その後、機械学習部13は、訓練済みのAttentionモデルを推定部20の推定実行部16へ出力する。このAttentionモデルが、「機械学習モデル」の一例にあたる。そして、都市における各時刻での混雑状況の予測値が、「複数の移動体の環境における移動に関する推定情報」にあたる。
【0032】
図6は、Attentionモデルによる機械学習の概要を説明するための図である。ここで、
図6を参照して、機械学習部13によるAttentionモデルを用いた機械学習の概要を説明する。
【0033】
本実施例に係るAttentionモデルは、エンコーダとデコーダとを有する。機械学習部13は、エンコーダにおいて、各パラメータの情報であるパラメータP1~Pnを順番にAttentionモデルに入力する。ここで、機械学習部13は、1つ前のパラメータを入力した状態のAttentionモデルに対して次のパラメータを入力して、次の内部状態を取得することを繰り返す。機械学習部13は、エンコーダにより、各パラメータP1~Pnを入力した際のそれぞれ内部状態h-s0~h-snを取得する。デコーダ側では、機械学習部13は、時刻0における最初の入力にはエンコーダ側の最後のパラメータPnを入力した際の出力データを入力データとして用いる。その後、機械学習部13は、1つ前の時刻の出力データを次の時刻の入力データとして用いる。
【0034】
そして、機械学習部13は、デコーダの時刻tの内部状態h
tと、エンコーダでパラメータP1~Pnのそれぞれを入力した際に出力されるエンコーダの各内部状態との内積を計算して、類似度のスコアを求める。
図6では、各内部状態は、h
s0~h
snの上部にバーを付けた記号で表される。次に、機械学習部13は、各スコアについてsoftmaxを取って次の数式(1)を用いてattention weightであるa
t(s0)を計算する。
【0035】
【0036】
次に、機械学習部13は、次の数式(2)を用いて、エンコーダの各内部状態に対して、at(s0)と表されるattention weightで重みを付けたものの和を取って、context vectorを作成する。ctは、時刻tの内部状態に対するcontext vectorである。
【0037】
【0038】
次に、機械学習部13は、デコーダの出力であるhtとコンテキストベクトルであるCtとを連結させたベクトル(
図6では、h
tの上部にバーを付けた記号で表される。)を用いて時刻tの予測を行う。そして、機械学習部13は、時刻tの予測結果とシミュレーションの実行結果との差を最小化するようにAttentionモデルのパラメータの調整を行う。
【0039】
ここで、本実施例では、機械学習部13は、Attentionモデルを用いて機械学習を行ったが、他のRNNを用いることも可能である。例えば、機械学習部13は、機械学習モデルとしてLSTMやSequence-to-Sequenceを用いてもよい。
【0040】
推定部20は、推定対象とする都市におけるシミュレーションを実行する際の初期状態での各シミュレーションのパラメータの値を基に訓練済みのAttentionモデルを用いて推定対象における混雑の時間変化の予測を行う。この推定対象とする都市が、「第2の環境」の一例にあたる。以下に、推定部20の詳細について説明する。推定部20は、
図1に示すように、推定対象パラメータ取得部21、推定用データ生成部22及び推定実行部23を有する。以下では、推定対象とする都市におけるシミュレーションを実行する際の初期状態での各シミュレーションのパラメータの値を、推定対象におけるシミュレーションのパラメータの値という。
【0041】
推定対象パラメータ取得部21は、推定対象におけるシミュレーションのパラメータの値の入力を利用者端末2から受ける。次に、推定対象パラメータ取得部21は、モデル知識を用いて取得したシミュレーションのパラメータの値の中からエージェントパラメータの値を抽出する。その後、推定対象パラメータ取得部21は、抽出したエージェントパラメータの値を推定用データ生成部22へ出力する。この推定対象におけるエージェントが「第2の複数の移動体」の一例にあたる。また、この推定対象におけるエージェントパラメータが、「第5のパラメータ」の一例にあたる。
【0042】
推定用データ生成部22は、推定対象におけるシミュレーションのパラメータに含まれるエージェントパラメータの値の入力を推定対象パラメータ取得部21から受ける。次に、推定用データ生成部22は、分類部12により生成されたそれぞれのクラスタに属するエージェント毎のエージェントパラメータの値を取得する。そして、推定用データ生成部22は、取得したエージェントパラメータの値を用いて、各クラスタの中心点を計算する。
【0043】
次に、推定用データ生成部22は、各エージェントのエージェントパラメータの値を用いて、各エージェントと各クラスタの中心点との距離を計算する。次に、推定用データ生成部22は、最も距離が近いクラスタに各エージェントを割り当てる。次に、推定用データ生成部22は、各クラスタに対応するセグメント毎にエージェントを集計する。そして、推定用データ生成部22は、エージェントパラメータをセグメントのパラメータに置き換えることで、推定対象におけるシミュレーションのパラメータに含まれていたエージェントパラメータをセグメントのパラメータとして要約する。この推定対象におけるセグメントのパラメータが、「第6のパラメータ」の一例にあたる。次に、推定用データ生成部22は、セグメントのパラメータの値を環境パラメータの値と結合して推定用データを生成する。この推定対象における環境パラメータが、「第6のパラメータ」の一例にあたる。その後、推定用データ生成部22は、生成した推定用データを推定実行部23へ出力する。
【0044】
推定実行部23は、エージェントシミュレーションのサロゲートモデルとして、訓練済みのAttentionモデルを制御部10の機械学習部13から取得する。次に、推定実行部23は、セグメントのパラメータとして要約されたエージェントパラメータを含む推定用データの入力を推定用データ生成部22から受ける。そして、推定実行部23は、訓練済みのAttentionモデルに推定用データを入力して、混雑の時間変化の推定結果を取得し、推定対象における混雑の時間変化を予測する。
【0045】
出力部40は、推定対象における混雑の時間変化の予測結果を推定部20の推定実行部23から取得する。そして、出力部40は、推定対象における混雑の時間変化の予測結果を利用者端末2へ送信する。
【0046】
図7は、実施例に係る推定装置によるエージェントシミュレーションのサロゲートモデルの訓練処理のフローチャートである。次に、
図7を参照して、実施例に係る推定装置1によるシミュレーションのサロゲートモデルの訓練処理の流れを説明する。
【0047】
パラメータ取得部11は、実行済みの各エージェントシミュレーションのエージェントのパラメータの値をシミュレーション情報保持部30から取得する(ステップS101)。
【0048】
次に、パラメータ取得部11は、モデル知識を用いて、取得した各シミュレーションのパラメータからエージェントパラメータを抽出する(ステップS102)。
【0049】
分類部12は、利用者からの指定などを受けて、セグメント数を決定する(ステップS103)。
【0050】
次に、分類部12は、実行済みの各エージェントシミュレーションにおけるエージェントパラメータの値をパラメータ取得部11から取得する。そして、分類部12は、エージェントパラメータの値を用いて各エージェントの類似度を算出する(ステップS104)。
【0051】
次に、分類部12は、求めた類似度を用いてエージェントのクラスタリングを実行する(ステップS105)。
【0052】
次に、分類部12は、各クラスタにセグメントを表すラベリングを行い、エージェントのセグメンテーションを実行する。そして、分類部12は、セグメント毎にエージェント数を集計する(ステップS106)。
【0053】
次に、分類部12は、エージェントパラメータを各セグメントに属するエージェント数を値として有するセグメントのパラメータとして要約する(ステップS107)。
【0054】
次に、分類部12は、エージェントパラメータを要約したパラメータを環境パラメータに結合して、各エージェントシミュレーションにおけるエージェントの要約パラメータの情報を生成する(ステップS108)。
【0055】
機械学習部13は、各シミュレーションの要約パラメータの情報を取得する。また、機械学習部13は、実行済みの各エージェントシミュレーションの実行結果をシミュレーション情報保持部30から取得する。そして、機械学習部13は、各シミュレーションの要約パラメータを入力とし、各エージェントシミュレーションの実行結果を正解ラベルとして、Attentionモデルの訓練を実行する(ステップS109)。
【0056】
図8は、実施例に係る推定装置によるエージェントシミュレーションの予測処理のフローチャートである。次に、
図8を参照して、実施例に係る推定装置1によるエージェントシミュレーションの予測処理の流れを説明する。
【0057】
推定対象パラメータ取得部21は、推定対象とするシミュレーションのパラメータの値を取得する(ステップS201)。
【0058】
次に、推定対象パラメータ取得部21は、モデル知識を用いて、推定対象とするシミュレーションのパラメータの情報からエージェントパラメータを抽出する(ステップS202)。
【0059】
推定用データ生成部22は、推定対象とするシミュレーションのパラメータに含まれていたエージェントパラメータの情報を推定対象パラメータ取得部21から受ける。また、推定用データ生成部22は、クラスタの情報の入力を制御部10の分類部12から受ける。そして、推定用データ生成部22は、各クラスタの中心点を算出する(ステップS203)。
【0060】
次に、推定用データ生成部22は、各エージェントと中心点との距離を算出し、最も近いクラスタにそれぞれのエージェントを割り当てる(ステップS204)。
【0061】
次に、推定用データ生成部22は、それぞれのクラスタに対応するセグメント毎にエージェント数を集計する(ステップS205)。
【0062】
そして、推定用データ生成部22は、エージェントパラメータを各セグメントに属するエージェント数を値として有するセグメントのパラメータとして要約する(ステップS206)。
【0063】
次に、推定用データ生成部22は、要約したエージェントパラメータを環境パラメータに結合して、推定対象とするシミュレーションの要約パラメータの情報を生成する(ステップS207)。
【0064】
推定実行部23は、訓練済みのAttentionモデルを機械学習部13から取得する。次に、推定対象とするシミュレーションの要約パラメータの情報の入力を推定用データ生成部22から受ける。そして、推定実行部23は、要約されたパラメータの情報をAttentionモデルに入力して、Attentionモデルによって推定対象の都市における混雑の時間変化を予測する(ステップS208)。その後、出力部40は、推定対象の都市における混雑の時間変化の予測結果を利用者端末2へ送信する。
【0065】
ここで、本実施例に係る推定装置1による機械学習の効果について説明する。まず、サロゲートモデルを訓練する1つの方法として、シミュレーションのパラメータを要約せずに訓練を行う方法が考えられるが、その場合、機械学習が進まなくなり適切なサロゲートモデルを得ることが困難となる可能性がある。そのため、シミュレーションのパラメータを要約してサロゲートモデルの訓練を行うことが望ましいが、要約方法には本実施例に係る推定装置1で実行した要約方法の他にもいくつかの要約方法が考えられる。
図9は、他の要約方法を用いた場合との予測精度の比較を示す図である。
図9は、縦軸でLossを表し、横軸で学習のepochを表す。Lossは、予測結果と正解の差を表す値である。Lossが小さいほど、予測の精度が良いといえる。
【0066】
第1の要約方法として、シミュレーションのパラメータの情報の一部を入力する方法がある。この場合、具体的には、冒頭の150ステップの系列を入力して続くステップを予測することで、この第1の要約方法を用いて予測を行う。
図9において、第1の要約方法の結果は、グラフ201で表される。200epochの学習を行った時点で、グラフ201に示すように、第1の要約方法のLossは、3.513となる。この方法の場合、シミュレーションパラメータの全体を網羅していないため、精度が悪い。
【0067】
第2の要約方法として、シミュレーションのパラメータのうちエージェントパラメータ以外のパラメータを用いる方法がある。この場合、シミュレーションのパラメータのうちエージェントパラメータ以外のパラメータをAttentionモデルに入力して訓練を行い、その訓練済みのAttentionモデルを用いて予測を行う。
図9において、第2の要約方法の結果は、グラフ202で表される。200epochの学習を行った時点で、グラフ202に示すように、第2の要約方法のLossは、0.984となる。この方法の場合、シミュレーションの全体を表す環境パラメータを用いるため、第1の要約方法より精度は上がるが、やはりシミュレーションパラメータの全体を網羅していないため、精度の向上は進まない。
【0068】
第3の要約方法として、オートエンコーダーでエージェントパラメータの潜在変数を推定する方法がある。この場合、オートエンコーダーを用いて推定したエージェントパラメータの潜在変数を入力としてAttentionモデルの訓練を行い、その訓練済みのAttentionモデルを用いて予測を行う。
図9において、第3の要約方法の結果は、グラフ203で表される。200epochの学習を行った時点で、グラフ203に示すように、第3の要約方法のLossは、0.539となる。この方法の場合、要約後のパラメータがシミュレーションパラメータの全体を網羅しているため、予測精度が良好である。
【0069】
第4の要約方法として、主成分分析で潜在変数を推定する方法がある。この場合、主成分分析で推定した潜在変数を入力としてAttentionモデルの訓練を行い、その訓練済みのAttentionモデルを用いて予測を行う。
図9において、第4の要約方法の結果は、グラフ204で表される。200epochの学習を行った時点で、グラフ204に示すように、第4の要約方法のLossは、0.520となる。この方法の場合、要約後のパラメータがシミュレーションパラメータの全体を網羅しているため、予測精度が良好である。
【0070】
また、
図9におけるグラフ205が、本実施例に係る推定装置1による予測結果を表す。200epochの学習を行った時点で、グラフ205に示すように、本実施例に係る推定装置1を用いた場合の予測結果のLossは、0.481となる。本実施例に係る推定装置1の場合、エージェントを分類したセグメントに含まれるエージェント数で表される要約後のパラメータがシミュレーションパラメータの全体を網羅しているため、予測精度が良好である。
【0071】
このように、第3の要約方法を用いた予測、第4の要約方法を用いた予測及び本実施例に係る推定装置1による予測は、いずれも精度は同程度である。ただし、本実施例に係る推定装置1による予測では、解釈可能な値を用いて予測が行われることが他の要約方法を用いた場合と異なる。
図10は、実施例に係る推定装置によるAttentionモデルを用いた予測結果の一例を示す図である。
【0072】
グラフ201は、各ステップにおける各パラメータの予測に対する寄与度を表す図である。グラフ201は、縦軸で入力パラメータを表し、横軸でシミュレーションステップを表す。グラフ201では輝度で寄与度が表される。輝度が高いほど寄与度が高いことを表す。
【0073】
グラフ201に示すように、Attentionモデルでは、入力したパラメータ毎の予測に寄与する入力値を特定することが可能である。すなわち、入力値が解釈できる値であれば、予測の妥当性を吟味することが可能である。
【0074】
例えば、グラフ202のような予測結果が得られたものとする。ここで、グラフ202の各グラフは、推定対象の都市の各ノードにおける混雑状況の予測結果である。グラフ2202の各グラフは、縦軸で滞留人数を表し、横軸でシミュレーションステップを表す。そして、グラフ202の各グラフにおいて、実線221は予測結果を表し、グレーの領域222が正解を表す。この場合、予測結果はおおよそ正解を表していることがわかる。ただし、予測が適切な情報を用いて行われたか否かの妥当性が問題となる。予測結果が正解に近くても、不適切な情報の影響を大きく受けた上での予測であれば、たまたま結果が正しくなったおそれがある。
【0075】
そこで、グラフ201の寄与度を用いて予測の妥当性を吟味する。例えば、グラフ202の点223において混雑状況がピークを迎えている。この場合、シミュレーションステップはおよそ300ステップの位置である。そして、グラフ201において、シミュレーションステップが300の位置では、領域211に対応するパラメータの寄与度が大きい。そこで、領域211に対応するパラメータがどのような内容のパラメータであるかが解釈可能であれば、予測に用いられたパラメータが正しいか否かが判定でき、予測の妥当性が判定できる。
【0076】
本実施例に係る推定装置1では、エージェントをクラスタリングしてセグメントとしてそのセグメントに含まれるエージェント数をパラメータとしてシミュレーションのパラメータの要約を行った。そのため、各パラメータは、それぞれのセグメントを表しており、各セグメントはそこに属するエージェントの特徴を代表する情報といえる。そのため、本実施例に係る推定装置1による要約後のパラメータは解釈可能である。したがって、本実施例に係る推定装置1による予測の妥当性を判定することが可能である。
【0077】
これに対して、オートエンコーダーや主成分分析を用いた場合、要約後のパラメータはもとのシミュレーションのパラメータが有していた意味を反映しないため、入力値を解釈することは困難である。したがって、第3の要約方法や第4の要約方法を用いた予測では、予測の妥当性を判定することが困難となる。
【0078】
このように、本実施例に係る推定装置1が、他の要約方法を用いた場合と異なり、予測の妥当性が判定できるといった特徴がある。そのため、本実施例に係る推定装置1は、シミュレーションのサロゲートモデルを生成して予測を行った場合に、適切な予測が行えているか否かを判定でき、シミュレーションを適切に代替するサロゲートモデルを構築することが可能となる。
【0079】
以上に説明したように、本実施例に係る推定装置は、エージェントシミュレーションのパラメータを要約したパラメータを作成し、要約したパラメータを用いてエージェントシミュレーションのサロゲートモデルを構築して、人流や交通流の予測を行う。このように、パラメータの数を減らすことで、学習が確実に進むようになり、予測精度の高いサロゲートモデルを構築することが可能となる。また、本実施例に係る推定装置が用いる要約したパラメータは、解釈可能な内容を有するため、予測の妥当性を判定することができ、適切なサロゲートモデルの構築及びそのサロゲートモデルを用いた適切な予測を行うことが可能となる。
【0080】
図11は、実施例に係る推定装置のハードウェア構成の一例を示す図である。次に、
図11を参照して、本実施例に係る推定装置1を実現するハードウェア構成について説明する。
【0081】
推定装置1は、例えば、
図11に示すように、CPU91、メモリ92、ハードディスク93及びネットワークインタフェース94を有する。CPU91は、バスを介してメモリ92、ハードディスク93及びネットワークインタフェース94と接続される。
【0082】
ネットワークインタフェース94は、推定装置1と外部装置との通信インタフェースである。例えば、ネットワークインタフェース94は、CPU91と利用者端末2との通信を中継する。
【0083】
ハードディスク93は、補助記憶装置である。ハードディスク93は、例えば、シミュレーション情報保持部30の機能を実現する。また、ハードディスク93は、Attentionモデルを記憶してもよい。さらに、ハードディスク93は、
図1に例示した、制御部10、推定部20及び出力部40の機能を実現するための機械学習プログラムを含む各種プログラムを格納する。
【0084】
例えば、機械学習プログラムは、推定装置1により読み出し可能な記録媒体の一例であるDVDに記憶され、DVDから読み出されて推定装置1にインストールされる。あるいは、機械学習プログラムは、ネットワークインタフェース94を介して接続された他のコンピュータシステムのデータベース等に記憶され、これらのデータベースから読み出されて推定装置1にインストールされる。そして、インストールされた機械学習プログラムは、ハードディスク93に記憶され、メモリ92に読み出されてCPU91によって実行される。
【0085】
CPU91は、ハードディスク93から各種プログラムを読み出してメモリ92上に展開して実行することで、
図1に例示した、制御部10、推定部20及び出力部40の機能を実現する。
【符号の説明】
【0086】
1 推定装置
2 利用者端末
10 制御部
11 パラメータ取得部
12 分類部
13 機械学習部
20 推定部
21 推定対象パラメータ取得部
22 推定用データ生成部
23 推定実行部
30 シミュレーション情報保持部
40 出力部