(57)【特許請求の範囲】
【請求項１】
割り当てられたデータをバッファへ格納し、前記バッファに格納した所定数のデータ単位で当該データに学習モデルを適用して当該データのタイムスタンプを基準とした所定時間内に当該データを処理する複数のノードと、
データを前記複数のノードに分配して割り当てる分配部と、
入力データをもとに更新用の学習モデルを作成し、該更新用の学習モデルを前記複数のノードへ送信する学習モデル更新部と、
前記学習モデル更新部により前記複数のノードへ送信された前記更新用の学習モデルと対応する、該更新用の学習モデルの適用対象であるデータのタイムスタンプに関する適用タイミング情報を前記複数のノードへ送信する適用タイミング情報配布部と、
を有し、
前記複数のノードは、前記学習モデル更新部から前記更新用の学習モデルを受信し、前記適用タイミング情報配布部から前記適用タイミング情報を受信すると、前記適用タイミング情報より前のタイミングに対応するデータには更新前の学習モデルを適用し、前記適用タイミング情報より以後のタイミングに対応するデータには前記更新用の学習モデルを適用する
ことを特徴とする分散処理システム。
【請求項２】
前記適用タイミング情報配布部は、前記適用タイミング情報を、前記分配部が前記ノードに分配するデータとともに送信する
ことを特徴とする請求項１に記載の分散処理システム。
【請求項３】
前記複数のノードそれぞれは、前記更新用の学習モデルを、データの不可分性およびデータの一貫性を有する分散ファイルシステムから読み出す
ことを特徴とする請求項１に記載の分散処理システム。
【請求項４】
コンピュータが、
入力データをもとに更新用の学習モデルを作成し、該更新用の学習モデルを、データに学習モデルを適用して当該データのタイムスタンプを基準とした所定時間内に当該データを処理する複数のノードへ送信し、
前記複数のノードへ送信された前記更新用の学習モデルと対応する、該更新用の学習モデルの適用対象であるデータのタイムスタンプに関する適用タイミング情報を前記複数のノードへ送信する
各処理を実行することを特徴とする学習モデル作成方法。
【請求項５】
コンピュータが、
受信データをバッファへ格納し、前記バッファに格納した所定数の受信データ単位で当該受信データに学習モデルを適用して当該受信データのタイムスタンプを基準とした所定時間内に当該受信データを処理し、
更新用の学習モデルと、該更新用の学習モデルと対応する、該更新用の学習モデルの適用対象である受信データのタイムスタンプに関する適用タイミング情報とを受信し、
前記適用タイミング情報より前のタイミングに対応する受信データには更新前の学習モデルを適用し、前記適用タイミング情報より以後のタイミングに対応する受信データには前記更新用の学習モデルを適用するように、受信データに適用する学習モデルを切り替える
各処理を実行することを特徴とするデータ処理方法。
【請求項６】
コンピュータに、
入力データをもとに更新用の学習モデルを作成し、該更新用の学習モデルを、データに学習モデルを適用して当該データのタイムスタンプを基準とした所定時間内に当該データを処理する複数のノードへ送信し、
前記複数のノードへ送信された前記更新用の学習モデルと対応する、該更新用の学習モデルの適用対象であるデータのタイムスタンプに関する適用タイミング情報を前記複数のノードへ送信する
各処理を実行させることを特徴とする学習モデル作成プログラム。
【請求項７】
コンピュータに、
受信データをバッファへ格納し、前記バッファに格納した所定数の受信データ単位で当該受信データに学習モデルを適用して当該受信データのタイムスタンプを基準とした所定時間内に当該受信データを処理し、
更新用の学習モデルと、該更新用の学習モデルと対応する、該更新用の学習モデルの適用対象である受信データのタイムスタンプに関する適用タイミング情報とを受信し、
前記適用タイミング情報より前のタイミングに対応する受信データには更新前の学習モデルを適用し、前記適用タイミング情報より以後のタイミングに対応する受信データには前記更新用の学習モデルを適用するように、受信データに適用する学習モデルを切り替える
各処理を実行させることを特徴とするデータ処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、分散処理システム、学習モデル作成方法、データ処理方法、学習モデル作成プログラムおよびデータ処理プログラムに関する。
【背景技術】
【０００２】
近年、ビッグデータを機械学習する技術が注目されている。機械学習には、訓練データをもとに、種々のアルゴリズムによって学習モデルを作成する学習フェーズと、作成した学習モデルを用いて、これから生起する事象を予測する予測フェーズがある。一般に、学習フェーズにおいて、学習モデルの作成に用いるデータが多いほど、作成される学習モデルの精度が高くなる。この特徴から、ビッグデータにおける機械学習は、高精度な学習モデルを作成することができる技術として注目されている。
【０００３】
また、ビッグデータを用いた学習モデルの作成には、多数の計算機リソースを用いるため、並列処理の仕組みを使ったバッチ処理が用いられる。近年、インメモリ処理技術の発展に伴い、機械学習の分析処理が高速に実行できるようなり、バッチ処理で予め作成した学習モデルをリアルタイムの入力データに適用して予測処理を行う技術が注目を集めている。リアルタイムの入力データに対して、タイムリーに処理結果を返す仕組みをストリーム処理と呼ぶ。
【０００４】
例えば、ストリーム処理を用いる機械学習では、時間が経つにつれて入力データの性質が変化すると、学習モデルの作成に用いた入力データが参考にならなくなることから、予測処理結果の精度が低下することがある。そこで、同一の学習モデルを適用し続けるのではなく、直近の入力データを用いて定期的に学習モデルを再作成し、ストリーム処理に適用する学習モデルを更新する。そして、ストリーム処理において、入力データを所定の処理単位でまとめて処理することで、入力データの処理単位の切り替わりのタイミングで学習モデルを更新する。入力データを所定の処理単位でまとめて処理する一例として、例えば、入力データを一時的に蓄えておき、数秒に一回程度の頻度で処理して結果を返すミニバッチ処理がある。ミニバッチ処理により、ストリーム処理における予測処理のリアルタイム性を保ちつつ、学習モデルを更新することができる。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１３−１６７９８５号公報
【特許文献２】特開平０６−０６７９６６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、ミニバッチ処理を用いてストリーム処理を複数のノードで分散処理する場合には、分散処理される入力データに本来適用されるべき学習モデルとは異なる学習モデルが適用されてしまう場合がある。例えば、ノードが、更新前の学習モデルを適用するタイミングで、更新後の学習モデルを適用して入力データを処理するという、入力データと学習モデルとのタイミングの不整合が生じる場合がある。このような入力データと学習モデルとのタイミングの不整合が生じると、予測処理結果の精度が低下することになる。
【０００７】
１つの側面では、入力データと学習モデルとのタイミングの不整合により、ストリーム処理による学習モデルを用いた予測処理結果の精度が低下することを防止することを目的とする。
【課題を解決するための手段】
【０００８】
第１の案では、例えば、分散処理システムは、複数のノードと、分配部と、学習モデル更新部と、適用タイミング情報配布部とを有する。複数のノードは、割り当てられたデータをバッファへ格納し、当該データに学習モデルを適用して当該データのタイムスタンプを基準とした所定時間内に当該データを処理する。分配部は、データを複数のノードに分配して割り当てる。学習モデル更新部は、入力データをもとに更新用の学習モデルを作成し、該更新用の学習モデルを複数のノードへ送信する。適用タイミング情報配布部は、複数のノードへ送信された更新用の学習モデルと対応する、更新用の学習モデルの適用対象であるデータのタイムスタンプに関する適用タイミング情報を複数のノードへ送信する。複数のノードは、更新用の学習モデルおよび適用タイミング情報を受信すると、適用タイミング情報より前のタイミングに対応するデータには更新前の学習モデルを適用する。また、複数のノードは、適用タイミング情報より以後のタイミングに対応するデータには更新用の学習モデルを適用する。
【発明の効果】
【０００９】
入力データと学習モデルとのタイミングの不整合により、ストリーム処理による学習モデルを用いた予測処理結果の精度が低下することを防止できる。
【図面の簡単な説明】
【００１０】
【図１】図１は、実施例に係る分散処理システムを示す図である。
【図２】図２は、実施例に係る処理対象のデータの一例を示す図である。
【図３】図３は、実施例に係るミニバッチ単位のデータ処理の一例を示す図である。
【図４】図４は、実施例に係る学習モデル作成処理の一例を示すフローチャートである。
【図５】図５は、実施例に係る予測処理の一例を示すフローチャートである。
【図６】図６は、プログラムを実行するコンピュータを示す図である。
【発明を実施するための形態】
【００１１】
以下に、本発明にかかる分散処理システム、学習モデル作成方法、データ処理方法、学習モデル作成プログラムおよびデータ処理プログラムの実施例を図面に基づいて詳細に説明する。なお、この実施例によりこの発明が限定されるものではない。そして、各実施例は、処理内容を矛盾させない範囲で適宜組み合わせることが可能である。
【実施例】
【００１２】
実施例に係る分散処理システムについて説明する。図１は、実施例に係る分散処理システムを示す図である。分散処理システム１は、例えばラムダアーキテクチャを採用したシステムである。
【００１３】
分散処理システム１は、サーバ装置１０と、学習モデル作成装置２０と、学習モデル記憶装置３０と、複数のノード４０−１，・・・，４０−ｎ（ｎは所定の自然数）とを有する。複数のノード４０−１，・・・，４０−ｎを、ノード４０と総称する。サーバ装置１０と学習モデル作成装置２０と学習モデル記憶装置３０とノード４０との間は、ネットワーク２を介して通信可能に接続される。かかるネットワーク２の一態様としては、有線または無線を問わず、ＬＡＮ（Local  Area  Network）やＶＰＮ（Virtual  Private  Network）などの任意の通信網が挙げられる。
【００１４】
サーバ装置１０は、データ分配部１１を有する。データ分配部１１は、データバッファを含む。データ分配部１１は、ネットワーク２もしくはその他のネットワークを介して外部から受信したデータまたは図示しない所定のファイルシステムから取得したデータを、ノード４０のいずれかへ割り当てて、送信する。データ分配部１１がデータをノード４０のいずれかへ割り当てる方法は、既存の様々な負荷分散処理のスケジューリング技術を用いることができる。図２は、実施例に係る処理対象のデータの一例を示す図である。図２に例示するように、データは、データ毎にタイムスタンプが付与されている、ストリームデータである。
【００１５】
また、データ分配部１１は、ネットワーク２もしくはその他のネットワークを介して外部から受信したデータまたは図示しない所定のファイルシステムから取得したデータを、学習モデル作成装置２０へ送信する。
【００１６】
学習モデル作成装置２０は、例えばラムダアーキテクチャのバッチレイヤに該当し、バッチ処理を行って学習モデルの作成を行う。学習モデル作成装置２０は、データ記憶部２１と、学習モデル作成部２２と、タイミング情報更新部２３とを有する。学習モデル作成装置２０は、バッチ処理により学習モデルを作成する。
【００１７】
データ記憶部２１は、サーバ装置１０から受信したデータを蓄積して記憶するファイルシステムである。学習モデル作成部２２は、新たに学習モデルを作成する所定条件が充足された場合に、データ記憶部２１に記憶されるデータを読み出し、このデータをもとに機械学習を行って学習モデルを作成する。学習モデルの作成は、予め定められた既存の手法を用いて行われる。なお、新たに学習モデルを作成する所定条件は、例えば、前回学習モデルを作成してから所定時間が経過した場合や、後述するように学習モデルを適用したストリーム処理による予測精度が所定以上低下した場合などである。学習モデル作成部２２は、作成した学習モデルを、学習モデル記憶装置３０へ送信する。
【００１８】
タイミング情報更新部２３は、学習モデル作成部２２により学習モデルが作成されると、作成された学習モデルと対応するタイミング情報を生成する。そして、タイミング情報更新部２３は、生成したタイミング情報を、学習モデル記憶装置３０へ送信する。
【００１９】
学習モデル記憶装置３０は、学習モデル作成部２２により作成された学習モデルと、タイミング情報更新部２３により生成された、当該学習モデルと対応するタイミング情報とを対応付けて記憶する。なお、タイミング情報は、対応する学習モデルを処理対象のデータに適用する時刻を示すタイムスタンプなどである。また、タイミング情報の生成は、種々の既存の手法を用いて行われる。
【００２０】
学習モデル記憶装置３０は、学習モデル作成装置２０により作成された学習モデルおよびタイミング情報を記憶する、データの不可分性およびデータの一貫性を保証する、例えば分散メモリファイルシステムである。なお、図１では、簡単のため、１つの学習モデル記憶装置３０を示すが、学習モデルは、複数の学習モデル記憶装置に記憶されてもよい。学習モデル記憶装置３０は、学習モデル記憶部３１を有する。学習モデル記憶部３１は、ＲＡＭ（Random  Access  Memory）などの高速アクセス可能な記憶部である。学習モデル記憶部３１は、学習モデル作成部２２により作成された学習モデルと、タイミング情報更新部２３により生成された、当該学習モデルと対応するタイミング情報とを対応付けて記憶する。学習モデル記憶装置３０は、最新の学習モデルおよび当該学習モデルと対応するタイミング情報を記憶する。
【００２１】
ノード４０は、例えばラムダアーキテクチャのスピードレイヤに該当し、ストリーム処理により、データに学習モデルを適用する予測処理を行うデータ処理装置である。ノード４０は、サーバなどの計算資源である。ノード４０は、それぞれ、切替部４１と、第１の学習モデル記憶部４２−１と、第２の学習モデル記憶部４２−２と、予測部４３とを有する。第１の学習モデル記憶部４２−１は、予測部４３が予測処理に用いる学習モデルおよび対応するタイミング情報を記憶する以下、第１の学習モデル記憶部４２−１が記憶する学習モデルを、旧学習モデルと呼ぶ場合がある。また、第２の学習モデル記憶部４２−２は、学習モデル作成装置２０により作成された最新の学習モデルおよび対応するタイミング情報を記憶する。第１の学習モデル記憶部４２−１および第２の学習モデル記憶部４２−２は、ＲＡＭなどの記憶装置である。第１の学習モデル記憶部４２−１および第２の学習モデル記憶部４２−２は、物理的に一体の記憶装置であってもよい。
【００２２】
切替部４１は、学習モデル記憶装置３０の学習モデル記憶部３１に記憶されている学習モデルのＭＤ（Message  Digest  Algorithm）５と、第１の学習モデル記憶部４２−１に記憶されている学習モデルのＭＤ５とを比較する。そして、切替部４１は、学習モデル記憶部３１および第１の学習モデル記憶部４２−１それぞれに記憶されている学習モデルのＭＤ５が異なる場合に、学習モデル記憶部３１に記憶されている最新の学習モデルおよび対応するタイミング情報を取得する。そして、切替部４１は、取得した最新の学習モデルおよび対応するタイミング情報を、第２の学習モデル記憶部４２−２へ記憶させる。なお、学習モデル記憶装置３０の学習モデル記憶部３１に記憶されている学習モデルと、第１の学習モデル記憶部４２−１に記憶されている学習モデルとの比較は、ＭＤ５の比較に限らず、種々の既存のデータ比較、照合方法を用いることができる。
【００２３】
また、切替部４１は、サーバ装置１０から受信したデータに付与されているタイムスタンプと、第１の学習モデル記憶部４２−１に記憶されている学習モデルと対応するタイミング情報と比較する。切替部４１は、比較結果から、サーバ装置１０から受信したデータに適用する学習モデルが第２の学習モデル記憶部４２−２に記憶されている最新の学習モデルであると判定した場合に、第１の学習モデル記憶部４２−１に記憶されている学習モデルを破棄する。そして、切替部４１は、第２の学習モデル記憶部４２−２に記憶されている最新の学習モデルを第１の学習モデル記憶部４２−１に記憶させる。
【００２４】
予測部４３は、第１の学習モデル記憶部４２−１に記憶されている学習モデルを、サーバ装置１０から受信したミニバッチに適用して、予測処理を行う処理部である。予測部４３は、データバッファを含む。そして、予測部４３は、サーバ装置１０のデータ分配部１１から受信してバッファに格納したデータの数が、ウィンドウに相当する所定数、例えば１秒単位のタイムスタンプを有するデータが５つになると、ウィンドウ単位でデータをデータバッファから出力する。そして、予測部４３は、データバッファから出力したデータに第１の学習モデル記憶部４２−１に記憶される学習モデルを適用して、予測処理を行う。なお、ウィンドウ単位のデータを、ミニバッチと呼ぶ。また、ウィンドウ単位で行うデータ処理を、ミニバッチ処理と呼ぶ。
【００２５】
図３は、実施例に係るミニバッチ単位のデータ処理の一例を示す図である。実施例における処理対象のデータは、図２に示すように、タイムスタンプ、データ本体の順序で一つのデータである。実施例では、ノード４０で実行されるストリームプロセスにおいて、例えば幅が５秒のウィンドウのミニバッチ単位でデータを処理する。図３に示すように、ストリームプロセスにおいて、最新の学習モデルを受け取ったことが検知されると、最新の学習モデルと対応するタイムスタンプ“10:00:06”が読み込まれる。そして、ストリームプロセスにおいて、“10:00:06”以降のタイムスタンプを有するデータに対して最新の学習モデルを適用すべきであることが認識される。
【００２６】
しかし、ストリームプロセスにおいて、図２に示すように、処理対象のデータのタイムスタンプが“10:00:01”〜“10:00:05”である場合には、旧学習モデルを適用してデータが処理される。そして、タイムスタンプ“10:00:01”〜“10:00:05”のミニバッチ処理終了後、かつ、タイムスタンプ“10:00:06”以降のミニバッチ処理の開始前に、最新の学習モデルが第２の学習モデル記憶部４２−２から第１の学習モデル記憶部４２−１へ展開される。全てのノード４０で実行されるストリームプロセスにおいて、上記のようにして最新の学習モデルが処理データに対して適用される。このため、並列分散処理における異なるストリームプロセス間であっても、同じタイムスタンプを有するデータに対して同一の学習モデルを適用することができる。
【００２７】
図４は、実施例に係る学習モデル作成処理の一例を示すフローチャートである。学習モデル作成処理は、学習モデル作成装置２０により繰り返し実行されるバッチ処理である。先ず、学習モデル作成部２２は、新たに学習モデルを作成する所定条件が充足されたか否かを判定する（ステップＳ１１）。
【００２８】
ここで、新たに学習モデルを作成する所定条件は、例えば、前回学習モデルを作成してから所定時間が経過した場合や、後述するように学習モデルを適用したストリーム処理による予測精度が所定以上低下した場合などである。予測精度が所定以上低下した場合とは、ノード４０で実行されるストリームプロセスによる予測結果（予測値）と、後で到着するデータ（実測値）との間に所定以上の乖離があることをいう。例えば、予測値と実測値の差が所定閾値を超えた場合、入力データの性質が変化したと見なすことができる。所定閾値は、分析または予測の対象に応じて適切な値とすることができる。
【００２９】
学習モデル作成部２２は、新たに学習モデルを作成する所定条件が充足されたと判定した場合（ステップＳ１１：Ｙｅｓ）には、ステップＳ１２へ処理を移す。一方、学習モデル作成部２２は、新たに学習モデルを作成する所定条件が充足されていないと判定した場合（ステップＳ１１：Ｎｏ）には、ステップＳ１１の処理を繰り返す。
【００３０】
ステップＳ１２では、学習モデル作成部２２は、データ記憶部２１から、所定期間分の学習用のデータを読み出す。次に、学習モデル作成部２２は、ステップＳ１２で読み出した学習用のデータをもとに学習モデルを作成する（ステップＳ１３）。次に、タイミング情報更新部２３は、ステップＳ１３で学習モデル作成部２２により作成された学習モデルと対応するタイミング情報を生成する（ステップＳ１４）。次に、学習モデル作成部２２およびタイミング情報更新部２３は、作成した学習モデルおよび対応するタイミング情報を、学習モデル記憶装置３０へ出力する（ステップＳ１５）。
【００３１】
図５は、実施例に係る予測処理の一例を示すフローチャートである。予測処理は、ノード４０それぞれにより繰り返し実行されるストリームプロセスである。先ず、切替部４１は、学習モデル記憶装置３０に記憶される学習モデルと、使用中の学習モデルすなわち第１の学習モデル記憶部４２−１に記憶される学習モデルとのＭＤ５を比較して、２つのモデルが異なるか否かを判定する（ステップＳ２１）。切替部４１は、２つのモデルが異なる場合（ステップＳ２１：Ｙｅｓ）には、ステップＳ２２へ処理を移す。一方、切替部４１は、２つのモデルが同一である場合（ステップＳ２１：Ｎｏ）には、ステップＳ２５へ処理を移す。
【００３２】
ステップＳ２２では、切替部４１は、学習モデル記憶装置３０に記憶される学習モデルおよび対応するタイミング情報をロードして、第２の学習モデル記憶部４２−２に記憶させる。次に、切替部４１は、ステップＳ２２でロードしたタイミング情報と、処理対象のデータのタイムスタンプとを比較し、最新の学習モデルを適用してデータを処理するか否かを判定する（ステップＳ２３）。切替部４１は、最新の学習モデルを適用してデータを処理すると判定した場合（ステップＳ２３：Ｙｅｓ）には、ステップＳ２４へ処理を移す。一方、切替部４１は、旧学習モデルを適用してデータを処理すると判定した場合（ステップＳ２３：Ｎｏ）には、ステップＳ２５へ処理を移す。
【００３３】
ステップＳ２４では、切替部４１は、第１の学習モデル記憶部４２−１に記憶されている旧学習モデルを破棄し、第２の学習モデル記憶部４２−２に記憶されている最新の学習モデルを第１の学習モデル記憶部４２−１に記憶させる。そして、切替部４１は、最新の学習モデルを処理対象のデータに適用して予測処理を行う（以上、ステップＳ２４）。ステップＳ２４が終了すると、ノード４０は、ステップＳ２１へ処理を移す。
【００３４】
他方、ステップＳ２５では、第１の学習モデル記憶部４２−１に記憶されている旧学習モデルを処理対象のデータに適用して予測処理を行う。ステップＳ２５が終了すると、ノード４０は、ステップＳ２１へ処理を移す。
【００３５】
以上の実施例によれば、リアルタイムに行う機械学習において、時間が経つとともに発生するデータの性質（傾向）の変化に対して、ストリームプロセスのリアルタイム性を損ねることなく最新の学習モデルを適用し、予測結果の精度低下を低減することができる。
【００３６】
また、以上の実施例によれば、学習モデルの作成をストリームプロセスから独立して行い、ストリーム処理部と、最新の学習モデルの記憶部とを分離することで、データの性質（傾向）の変化に対して適時に最新の学習モデルの適用を行うことができる。また、最新の学習モデルの記憶部が、データ一貫性が保証される分散メモリファイルシステムであるため、ミニバッチ処理における学習モデル更新時のオーバヘッドを抑えることができる。さらには、分散ストリーム処理において、ノード毎に用いる学習モデルが異なる状況の発生を回避できる。
【００３７】
なお、上記の実施例では、学習モデル記憶装置３０の学習モデル記憶部３１に最新の学習モデルを記憶させるとした。しかし、開示の技術は、これに限定されず、処理対象のデータを取得する図示しないファイルシステムと同一のファイルシステムに最新の学習モデルを記憶させるとしてもよい。
【００３８】
また、上記の実施例では、学習モデル作成部２２は、作成した学習モデルを学習モデル記憶装置３０へ送信し、学習モデル記憶装置３０に記憶させる。そして、学習モデル記憶装置３０に記憶される学習モデルは、ノード４０によって取得される。しかし、開示の技術は、これに限定されず、学習モデル作成部２２が、作成した学習モデルをノード４０へ送信するとしてもよい。
【００３９】
また、上記の実施例では、タイミング情報更新部２３は、生成したタイミング情報を学習モデル記憶装置３０へ送信し、学習モデル記憶装置３０に記憶させる。そして、後述するように、学習モデル記憶装置３０に記憶されるタイミング情報は、ノード４０によって取得される。しかし、開示の技術は、これに限定されず、タイミング情報更新部２３が、生成したタイミング情報をノード４０へ送信するとしてもよい。または、タイミング情報更新部２３が、生成したタイミング情報をノード４０へ送信する場合には、サーバ装置１０のデータ分配部１１がノード４０へ送信するデータとともにタイミング情報をノード４０へ送信するとしてもよい。
【００４０】
また、図示した各装置および各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的状態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。例えば、上記の実施例におけるサーバ装置１０と、学習モデル作成装置２０とは、統合されてもよい。
【００４１】
例えば、図１に示す学習モデル作成部２２と、タイミング情報更新部２３との各処理部が適宜統合されてもよい。また、例えば、図１に示す切替部４１と、予測部４３との各処理部が適宜統合されてもよい。また、例えば、図１に示す第１の学習モデル記憶部４２−１と、第２学習モデル記憶部４２−２との各記憶部が適宜統合されてもよい。さらに、各処理部にて行なわれる各処理機能は、その全部または任意の一部が、ＣＰＵおよび当該ＣＰＵにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現されうる。
【００４２】
［プログラム］
また、上記の実施例で説明した各種の処理は、あらかじめ用意されたプログラムをパーソナルコンピュータやワークステーションなどのコンピュータシステムで実行することによって実現することもできる。そこで、以下では、上記の実施例と同様の機能を有するプログラムを実行するコンピュータシステムの一例を説明する。図６は、プログラムを実行するコンピュータを示す図である。
【００４３】
図６に示すように、コンピュータ１００は、ＣＰＵ（Central  Processing  Unit）１１０、ＲＯＭ（Read  Only  Memory）１２０、ＨＤＤ（Hard  Disk  Drive）１３０、ＲＡＭ（Random  Access  Memory）１４０を有する。これら１１０〜１４０の各部は、バス２００を介して接続される。なお、ＨＤＤ１３０に代えて、ＳＳＤ（Solid  State  Drive）、ＳＳＨＤ（Solid  State  Hybrid  Drive）、フラッシュメモリなどの外部記憶装置を用いてもよい。
【００４４】
例えば、コンピュータ１００が、上記の実施例におけるサーバ装置１０と同様の機能を実現する場合には、ＲＯＭ１２０に予め記憶されるプログラム１２０ａは、データ配分プログラムなどである。また、例えば、コンピュータ１００が、上記の実施例における学習モデル作成装置２０と同様の機能を実現する場合には、ＲＯＭ１２０に予め記憶されるプログラム１２０ａは、学習モデル作成プログラム、タイミング更新プログラムなどである。また、例えば、コンピュータ１００が、上記の実施例におけるノード４０と同様の機能を実現する場合には、ＲＯＭ１２０に予め記憶されるプログラム１２０ａは、切替プログラム、予測プログラムなどである。なお、ＲＯＭ１２０に予め記憶される各プログラム１２ａは、適宜分離・統合してもよい。
【００４５】
そして、ＣＰＵ１１０は、各プログラム１２０ａをＲＯＭ１２０から読み出して実行することで、上記の実施例の各処理部と同様の動作を実行する。すなわち、ＣＰＵ１１０は、データ配分プログラムを実行することにより、上記の実施例のデータ分配部１１と同様の動作を実行する。また、ＣＰＵ１１０は、学習モデル作成プログラム、タイミング更新プログラムを実行することにより、上記の実施例の学習モデル作成部２２、タイミング情報更新部２３それぞれと同様の動作を実行する。また、ＣＰＵ１１０は、切替プログラム、予測プログラムを実行することにより、上記の実施例の切替部４１、予測部４３それぞれと同様の動作を実行する。
【００４６】
なお、上記したプログラム１２０ａについては、必ずしも最初からＲＯＭ１２０に記憶させることを要しない。プログラム１２０ａはＨＤＤ１３０に記憶させてもよい。
【００４７】
例えば、コンピュータ１００に挿入されるフレキシブルディスク（ＦＤ）、ＣＤ−ＲＯＭ、ＤＶＤディスク、光磁気ディスク、ＩＣカードなどの「可搬用の物理媒体」にプログラムを記憶させておく。そして、コンピュータ１００がこれらからプログラムを読み出して実行するようにしてもよい。
【００４８】
さらには、公衆回線、インターネット、ＬＡＮ、ＷＡＮなどを介してコンピュータ１００に接続される「他のコンピュータ（またはサーバ）」などにプログラムを記憶させておく。そして、コンピュータ１００がこれらからプログラムを読み出して実行するようにしてもよい。
【符号の説明】
【００４９】
１    分散処理システム
２    ネットワーク
１０  サーバ装置
１１  データ分配部
２０  学習モデル作成装置
２１  データ記憶部
２２  学習モデル作成部
２３  タイミング情報更新部
３０  学習モデル記憶装置
３１  学習モデル記憶部
４０、４０−１〜４０−ｎ  ノード
４１  切替部
４２−１  第１の学習モデル記憶部
４２−２  第２の学習モデル記憶部
４３  予測部
【図１】
0006558188.tif 000002
【図２】
0006558188.tif 000003
【図３】
0006558188.tif 000004
【図４】
0006558188.tif 000005
【図５】
0006558188.tif 000006
【図６】
0006558188.tif 000007