(57)【要約】【課題】分析アルゴリズムの実行に時間がかかる場合でも、試行錯誤が妨げられない分析システムを提供する。【解決手段】分析システム１００は、指示受付部１７０、アルゴリズム実行部１３０、及び、結果出力部１４０を含む。指示受付部１７０は、ユーザの指示を受け付ける。アルゴリズム実行部１３０は、入力データに基づき、学習モデルを構築する。結果出力部１４０は、学習モデルの構築状況を逐次表示する。アルゴリズム実行部１３０は、指示受付部１７０が指示を受け付けると、学習モデルの構築を停止する。【選択図】      図１
2017058848.tif 000002
【特許請求の範囲】
【請求項１】
ユーザの指示を受け付ける受付手段と、
入力データに基づき、学習モデルを構築する構築手段と、
前記学習モデルの構築状況を逐次表示する表示手段と、
を備え、
前記構築手段は、前記受付手段が前記指示を受け付けると、学習モデルの構築を停止する、
情報処理システム。
【請求項２】
前記構築手段は、前記入力データに対して処理パラメータを用いてモデル更新処理を繰り返すことにより前記入力データに係る前記学習モデルを構築する学習モデル構築処理を実行し、前記学習モデル構築処理が実行されている過程において前記指示を受け付けると前記学習モデル構築処理を中断する、
請求項１に記載の情報処理システム。
【請求項３】
さらに、前記学習モデル構築処理が中断された場合、または、前記学習モデル構築処理が終了した場合の、当該学習モデル構築処理におけるモデル更新処理の処理結果を、前記入力データ、及び、前記処理パラメータに関連付けて格納する、格納部を備え、
前記構築手段は、新たな前記学習モデル構築処理を行う場合に、前記格納部に格納された当該新たな前記学習モデル構築処理の入力データ、及び、処理パラメータに対応する処理結果を用いて、当該新たな前記学習モデル構築処理を実行する、
請求項２に記載の情報処理システム。
【請求項４】
さらに、前記処理パラメータの修正を受け付ける、パラメータ入力手段を備え、
前記構築手段は、前記修正された前記処理パラメータを用いて、前記学習モデル構築処理を再実行する、
請求項２、または、３に記載の情報処理システム。
【請求項５】
さらに、前記入力データの修正を受け付ける、データ入力手段を備え、
前記実行手段は、前記修正された前記入力データを用いて、前記学習モデル構築処理を再実行する、
請求項２乃至４のいずれかに記載の情報処理システム。
【請求項６】
前記モデル更新処理は、前記モデルのモデルパラメータの更新を含み、
前記モデル更新処理の処理結果は、前記更新されたモデルパラメータを含み、
前記表示手段は、前記モデル更新処理の繰り返しごとに、前記更新されたモデルパラメータを表示する、
請求項２乃至５のいずれかに記載の情報処理システム。
【請求項７】
前記学習モデル構築処理は、ＥＭ（Expectation Maximization）アルゴリズムに従って、前記モデルパラメータを更新する、
請求項６に記載の情報処理システム。
【請求項８】
前記モデルパラメータは、回帰式の回帰係数、及び、回帰式を適用するグループを決定するための決定木を含み、
前記表示手段は、前記モデル更新処理の繰り返しごとに、更新された前記回帰式の回帰係数、及び、決定木を表示する、
請求項７に記載の情報処理システム。
【請求項９】
入力データに基づき、学習モデルを構築し、
前記学習モデルの構築状況を逐次表示し、
ユーザの指示を受け付けると、学習モデルの構築を停止する、
情報処理方法。
【請求項１０】
前記学習モデルを構築する場合、前記入力データに対して処理パラメータを用いてモデル更新処理を繰り返すことにより前記入力データに係る前記学習モデルを構築する学習モデル構築処理を実行し、
前記学習モデル構築処理が実行されている過程において前記指示を受け付けると前記学習モデル構築処理を中断する、
請求項９に記載の情報処理方法。
【請求項１１】
さらに、前記学習モデル構築処理が中断された場合、または、前記学習モデル構築処理が終了した場合の、当該学習モデル構築処理におけるモデル更新処理の処理結果を、前記入力データ、及び、前記処理パラメータに関連付けて格納し、
新たな前記学習モデル構築処理を行う場合に、前記格納された当該新たな前記学習モデル構築処理の入力データ、及び、処理パラメータに対応する処理結果を用いて、当該新たな前記学習モデル構築処理を実行する、
請求項１０に記載の情報処理方法。
【請求項１２】
コンピュータに、
入力データに基づき、学習モデルを構築し、
前記学習モデルの構築状況を逐次表示し、
ユーザの指示を受け付けると、学習モデルの構築を停止する、
処理を実行させるプログラム。
【請求項１３】
前記学習モデルを構築する場合、前記入力データに対して処理パラメータを用いてモデル更新処理を繰り返すことにより前記入力データに係る前記学習モデルを構築する学習モデル構築処理を実行し、
前記学習モデル構築処理が実行されている過程において前記指示を受け付けると前記学習モデル構築処理を中断する、
処理を実行させる請求項１２に記載のプログラム。
【請求項１４】
さらに、前記学習モデル構築処理が中断された場合、または、前記学習モデル構築処理が終了した場合の、当該学習モデル構築処理におけるモデル更新処理の処理結果を、前記入力データ、及び、前記処理パラメータに関連付けて格納し、
新たな前記学習モデル構築処理を行う場合に、前記格納された当該新たな前記学習モデル構築処理の入力データ、及び、処理パラメータに対応する処理結果を用いて、当該新たな前記学習モデル構築処理を実行する、
処理を実行させる、請求項１３に記載のプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理システム、情報処理方法、及び、プログラムに関し、特に、分析アルゴリズムを実行する情報処理システム、情報処理方法、及び、プログラムに関する。
【背景技術】
【０００２】
データに対して分析アルゴリズムを実行し、データに係るモデルを生成する分析システムとして、分析者が分析アルゴリズムで用いるパラメータ（アルゴリズムパラメータ）等を修正しながらモデル生成を試行錯誤で行う、対話型の分析システムが知られている。このような対話型分析システムの一例が、特許文献１、非特許文献１に開示されている。
【０００３】
図１２は、特許文献１、非特許文献１に開示されている、一般的な対話型の分析システム９００の構成を示すブロック図である。図１２を参照すると、一般的な対話型の分析システムは、データ入力部９１０、パラメータ入力部９２０、アルゴリズム実行部９３０、及び、結果表示部９４０を含む。
【０００４】
データ入力部９１０は、分析対象のデータの入力を受け付ける。パラメータ入力部９２０は、分析者からアルゴリズムパラメータの入力を受け付ける。アルゴリズム実行部９３０は、入力されたデータに対して、アルゴリズムパラメータを用いて分析アルゴリズムを実行する。結果表示部９４０は、分析アルゴリズムの実行結果を表示する。分析者は、表示された実行結果を参照して、アルゴリズムパラメータを修正する。アルゴリズム実行部９３０は、修正されたアルゴリズムパラメータを用いて分析アルゴリズムを再実行する。結果表示部９４０は、分析アルゴリズムの再実行の結果を表示する。分析者は、さらに、再実行の結果を参照してアルゴリズムパラメータを再修正する。このように、分析者は、分析アルゴリズムの実行、アルゴリズムパラメータ等の修正を繰り返すことにより、モデル生成における試行錯誤を行うことできる。
【０００５】
なお、関連技術として、非特許文献２、及び、非特許文献３には、データの同一のパターンや規則性を持つグループごとにモデルを生成する、異種混合学習技術が開示されている。また、他の関連技術として、特許文献２には、シミュレーション実行過程で生成される解析データを順次表示するシュミレーションシステムが開示されている。特許文献３には、複数モデルのシミュレーション過程を逐次表示するシミュレーションシステムが開示されている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特許第４１８０５４０号公報
【特許文献２】特許昭６３−３１８６６４号公報
【特許文献３】特許平０７−０３６８５２号公報
【非特許文献】
【０００７】
【非特許文献１】Dong Hyun Jeong, et.al、「iPCA: An Interactive System for PCA-based Visual Analytics」、EuroVis'09 Proceedings of the 11th Eurographics、IEEE - VGTC conference on Visualization、p.767-774
【非特許文献２】藤巻遼平、森永聡、「ビッグデータ時代の最先端データマイニング」、ＮＥＣ技報、Vol.65、No.2、2012年、p.81-85
【非特許文献３】Riki Eto, et al.、「Fully-Automatic Bayesian Piecewise Sparse Linear Models」、Proceedings of the 17th International Conference on Artificial Intelligence and Statistics (AISTATS), 2014年、p.238-246
【発明の概要】
【発明が解決しようとする課題】
【０００８】
大量のデータから複雑なパターンを発見するようなデータ分析においては、モデルの表現力を増やすために、例えば潜在変数の導入等が行われるため、分析アルゴリズムは複雑化し、探索型になる。このような分析アルゴリズムとして、例えば、ＥＭ（Expectation Maximization）アルゴリズムが知られている。探索型のアルゴリズムの演算は、一般に複雑であり、実行に時間がかかる。 
上述の、特許文献１、非特許文献１に開示されているような一般的な対話型分析システムでは、分析アルゴリズムに時間がかかると、分析者は、アルゴリズムパラメータを修正して分析アルゴリズムを実行するたびに、実行結果を長時間待たなければならない。このため、モデル生成における試行錯誤が妨げられるという問題がある。
【０００９】
本発明の目的は、上述の課題を解決し、分析アルゴリズムの実行に時間がかかる場合でも試行錯誤を妨げない、情報処理システム、情報処理方法、及び、プログラムを提供することである。
【課題を解決するための手段】
【００１０】
本発明の情報処理システムは、ユーザの指示を受け付ける受付手段と、入力データに基づき、学習モデルを構築する構築手段と、前記学習モデルの構築状況を逐次表示する表示手段と、を備え、前記構築手段は、前記受付手段が前記指示を受け付けると、学習モデルの構築を停止する。
【００１１】
本発明の情報処理方法は、入力データに基づき、学習モデルを構築し、前記学習モデルの構築状況を逐次表示し、ユーザの指示を受け付けると、学習モデルの構築を停止する。
【００１２】
本発明のプログラムは、コンピュータに、入力データに基づき、学習モデルを構築し、
前記学習モデルの構築状況を逐次表示し、ユーザの指示を受け付けると、学習モデルの構築を停止する、処理を実行させる。
【発明の効果】
【００１３】
本発明の効果は、分析アルゴリズムの実行に時間がかかる場合でも、試行錯誤を妨げないことである。
【図面の簡単な説明】
【００１４】
【図１】本発明の第１の実施の形態の特徴的な構成を示すブロック図である。
【図２】本発明の第１の実施の形態における、分析システム１００の構成を示すブロック図である。
【図３】本発明の実施の形態における、コンピュータにより実現された分析システム１００の構成を示すブロック図である。
【図４】本発明の第１の実施の形態における、分析システム１００の処理を示すフローチャートである。
【図５】本発明の第１の実施の形態における、入力データの例を示す図である。
【図６】本発明の第１の実施の形態における、アルゴリズムパラメータの例を示す図である。
【図７】本発明の第１の実施の形態における、画面１４１の例を示す図である。
【図８】本発明の第１の実施の形態における、モデル表示エリア１４４の表示内容の例を示す図である。
【図９】本発明の第１の実施の形態における、モデル表示エリア１４４の表示内容の他の例を示す図である。
【図１０】本発明の第２の実施の形態における、分析システム１００の構成を示すブロック図である。
【図１１】本発明の第２の実施の形態における、途中結果格納部１８０に格納された分析アルゴリズムの途中結果の例を示す図である。
【図１２】一般的な対話型の分析システム９００の構成を示すブロック図である。
【発明を実施するための形態】
【００１５】
（第１の実施の形態）
はじめに、本発明の分析システム１００が実行する分析アルゴリズム（以下、学習モデル構築処理とも記載）について説明する。
【００１６】
分析アルゴリズムは、入力されたデータに対して所定のモデル更新処理（以下、モデル更新ステップとも記載）を繰り返し、モデルパラメータの最適解を探索することで、学習モデル（以下、単にモデルとも記載）を生成（構築）する。このような分析アルゴリズムには、例えば、サポートベクタマシン、ニューラルネットワーク、ＥＭアルゴリズム等が挙げられる。分析アルゴリズムにより生成されたモデルにより、データの予測、識別、分類等が行われる。
【００１７】
以下、本発明の実施の形態では、分析アルゴリズムとして、ＥＭアルゴリズムを用いる場合を例に説明する。この場合、ＥＭアルゴリズムとして、非特許文献２、非特許文献３に開示されているような、異種混合学習を利用してもよい。
【００１８】
なお、所定のモデル更新処理を繰り返すことによりモデルを生成するアルゴリズムであれば、分析アルゴリズムは、サポートベクタマシンや、ニューラルネットワーク等、ＥＭアルゴリズム以外の他のアルゴリズムでもよい。
【００１９】
分析アルゴリズムには、モデルの生成対象（分析対象）である、データが入力される。例えば、ＥＭアルゴリズムの入力データとして、複数の説明変数、及び、１以上の目的変数を含む属性値の集合が入力される。
【００２０】
分析アルゴリズムは、入力されたアルゴリズムパラメータ（以下、処理パラメータとも記載）に従って実行される。アルゴリズムパラメータは、分析アルゴリズムにより生成されるモデルの性能や、繰り返し処理の終了条件等、分析アルゴリズムの挙動を指定するパラメータである。例えば、ＥＭアルゴリズムのアルゴリズムパラメータとして、モデルの性能を指定する「モデルの複雑さ」、「エラー許容度」、「モデルの集約度」や、繰り返し処理の終了条件を指定する「収束判定条件」、「最大繰り返し回数」が入力される。
【００２１】
分析アルゴリズムは、繰り返し処理の終了条件に達するまで、所定のモデル更新処理を繰り返す。各モデル更新処理では、分析アルゴリズムで定義される処理に従って、モデルパラメータが更新される。ここで、モデルパラメータは、例えば、モデルに係る所定のスコア関数の値が上昇するように（モデルパラメータが最適解に近づくように）更新される。そして、繰り返し処理の終了条件が満たされると、分析アルゴリズムは終了し、最終的なモデルパラメータが出力される。例えば、ＥＭアルゴリズムでは、各モデル更新処理において、Ｅ（Expectation）ステップとＭ（Maximization）ステップとの組が実行される。Ｅステップでは、現在のパラメータに対して、潜在変数の事後確率である負担率が算出される。Ｍステップでは、現在の負担率に対して、モデルパラメータが算出される。モデルパラメータとしては、例えば、モデルとして生成される回帰式の回帰係数、及び、データの分布に係る混合係数等が出力される。
【００２２】
次に、本発明の第１の実施の形態の構成を説明する。
【００２３】
図２は、本発明の第１の実施の形態における、分析システム１００の構成を示すブロック図である。分析システム１００は、本発明の情報処理システムの一実施形態である。
【００２４】
分析システム１００は、データ入力部１１０、データ格納部１１１、パラメータ入力部１２０、パラメータ格納部１２１、アルゴリズム実行部１３０、結果出力部１４０、途中結果抽出部１５０、制御部１６０、及び、指示受付部１７０を含む。
【００２５】
データ入力部１１０は、分析システム１００を用いて分析を行う分析者等であるユーザから、分析対象のデータの入力を受け付ける。データの形式はアルゴリズムに依存する。データの形式は、例えば、実数の行列である。データをデータファイルとして入力する場合、データファイルの形式は、例えば、ＣＳＶ（Comma-Separated Values）ファイルでもよい。
【００２６】
データ格納部１１１は、データ入力部１１０が受け付けたデータを格納する。データの入力が１回でも、分析アルゴリズムの再実行のたびに、データ格納部１１１に格納されたデータが、アルゴリズム実行部１３０により読み出される。
【００２７】
パラメータ入力部１２０は、ユーザから、アルゴリズムパラメータの入力を受け付ける。アルゴリズムパラメータは、例えば、ｋｅｙ／ｖａｌｕｅ形式で記述される。アルゴリズムパラメータをデータファイルとして入力する場合、データファイルの形式は、例えば、ＹＡＭＬファイルでもよい。
【００２８】
パラメータ格納部１２１は、パラメータ入力部１２０が受け付けたアルゴリズムパラメータを格納する。
【００２９】
アルゴリズム実行部１３０（以下、構築部とも記載）は、データ格納部１１１に格納されたデータに対して、パラメータ格納部１２１に格納されたアルゴリズムパラメータを用いて、分析アルゴリズムを実行する。分析アルゴリズムは、所定のモデル更新処理の繰り返しにより、モデルを生成（構築）する。
【００３０】
途中結果抽出部１５０は、分析アルゴリズムの各モデル更新処理が終了するたびに、当該モデル更新処理の処理結果（以下、途中結果とも記載）を抽出し、結果出力部１４０に出力する。ここで、途中結果として、モデル更新処理によって更新されるモデルパラメータ等のモデル情報が出力される。途中結果（モデル情報）は、モデルパラメータに加えて、潜在変数の値や負担率、スコア関数の値等、分析アルゴリズムの状態に係る他の情報を含んでいてもよい。各モデル更新処理において、途中結果がシリアライズ等されてファイルに保存される場合、途中結果抽出部１５０は当該ファイルを読み込むことにより、途中結果を抽出する。また、途中結果がメモリに保存される場合、途中結果抽出部１５０は、当該メモリの内容を読み込むことにより、途中結果を抽出する。
【００３１】
結果出力部１４０（以下、表示部とも記載）は、分析アルゴリズムの各モデル更新処理が終了するたびに、途中結果抽出部１５０から入力された途中結果を、モデルの構築状況として逐次出力（表示）する。ここで、結果出力部１４０は、例えば、途中結果に含まれる、更新されたモデルパラメータを出力（表示）する。分析アルゴリズムによっては、例えば、ＥＭアルゴリズムのように、分析アルゴリズムの各モデル更新処理で得られるモデルパラメータの形式と分析アルゴリズムの終了時に得られるモデルパラメータの形式とは同一である。すなわち、モデルパラメータの構造が同じで、その構成要素である数値のみが異なる。また、結果出力部１４０は、途中結果として、更新されたモデルパラメータを用いて予測したデータの値と実測値を表示してもよい。また、結果出力部１４０は、途中結果に加えて、入力されたデータやアルゴリズムパラメータを表示してもよい。さらに、結果出力部１４０は、分析アルゴリズムの実行履歴を表示してもよい。
【００３２】
指示受付部１７０（以下、単に受付部とも記載）は、ユーザから、分析アルゴリズムの中断や再実行の指示の入力を受け付ける。
【００３３】
制御部１６０は、分析アルゴリズムの中断が指示された場合、アルゴリズム実行部１３０に、分析アルゴリズムを中断（停止）させる。また、制御部１６０は、分析アルゴリズムの再実行が指示された場合、アルゴリズム実行部１３０に、分析アルゴリズムを再実行させる。なお、再実行が指示される場合は、事前に、ユーザにより、データやアルゴリズムパラメータがパラメータ入力部１２０を介して修正される。
【００３４】
なお、分析システム１００は、ＣＰＵ（Central Processing Unit）とプログラムを記憶した記憶媒体を含み、プログラムにもとづく制御によって動作するコンピュータであってもよい。
【００３５】
図３は、本発明の実施の形態における、コンピュータにより実現された分析システム１００の構成を示すブロック図である。
【００３６】
この場合、分析システム１００は、ＣＰＵ１０１、ハードディスクやメモリ等の記憶デバイス１０２（記憶媒体）、キーボード、ディスプレイ等の入出力デバイス１０３、及び、他の装置等と通信を行う通信デバイス１０４を含む。ＣＰＵ１０１は、データ入力部１１０、パラメータ入力部１２０、アルゴリズム実行部１３０、結果出力部１４０、途中結果抽出部１５０、制御部１６０、及び、指示受付部１７０を実現するためのプログラムを実行する。記憶デバイス１０２は、データ格納部１１１、及び、パラメータ格納部１２１のデータを記憶する。入出力デバイス１０３は、ユーザからのデータ、アルゴリズムパラメータ、分析アルゴリズムの中断や再実行の指示を入力する。また、入出力デバイス１０３は、ユーザへ、途中結果を出力（表示）する。なお、通信デバイス１０４が、他の装置等からデータ、アルゴリズムパラメータを受信してもよい。また、通信デバイス１０４は、他の装置等へ、途中結果を送信してもよい。
【００３７】
また、分析システム１００の各構成要素は、論理回路で実現されていてもよい。この場合、複数の構成要素が、１つの論理回路で実現されていてもよいし、それぞれ、複数の独立した論理回路で実現されていてもよい。
【００３８】
また、分析システム１００の各構成要素は、有線または無線で接続された複数の物理的な装置に分散的に配置されていてもよい。この場合、分析システム１００は、複数のコンピュータによる分散処理により実現されていてもよい。
【００３９】
次に、本発明の第１の実施の形態の動作について説明する。
【００４０】
図４は、本発明の第１の実施の形態における、分析システム１００の処理を示すフローチャートである。
【００４１】
はじめに、データ入力部１１０は、ユーザから、分析対象のデータの入力を受け付ける（ステップＳ１）。ここで、データ入力部１１０は、入力されたデータを、結果出力部１４０を介して後述する画面１４１等により可視化して表示してもよい。また、データ入力部１１０は、画面１４１等において、ユーザからデータの加工や修正を受け付けてもよい。例えば、データ入力部１１０は、入力されたデータを表形式で表示し、分析アルゴリズムで用いるデータの選択、用いないデータの削除を、ユーザから受け付けてもよい。結果出力部１４０がデータをスプレッドシートとして処理できる場合、結果出力部１４０は、データの修正、行の追加や削除、列の追加や削除等の操作を、ユーザから受け付けてもよい。データ入力部１１０は、入力、修正されたデータをデータ格納部１１１に保存する。
【００４２】
図５は、本発明の第１の実施の形態における、入力データの例を示す図である。例えば、データ入力部１１０は、図５のようなデータの入力を受け付ける。
【００４３】
パラメータ入力部１２０は、ユーザから、アルゴリズムパラメータの入力を受け付ける（ステップＳ２）。ここで、パラメータ入力部１２０は、入力されたアルゴリズムパラメータを、結果出力部１４０を介して後述する画面１４１等により可視化して表示してもよい。また、データ入力部１１０は、画面１４１等において、ユーザからアルゴリズムパラメータの修正を受け付けてもよい。パラメータ入力部１２０は、入力、修正されたアルゴリズムパラメータをパラメータ格納部１２１に保存する。なお、分析アルゴリズムによっては、アルゴリズムパラメータの初期値が決まっていることがある。この場合、初期値のみを用いて分析アルゴリズムを実行するのであれば、アルゴリズムパラメータの入力は省略されてもよい。
【００４４】
図６は、本発明の第１の実施の形態における、アルゴリズムパラメータの例を示す図である。例えば、パラメータ入力部１２０は、図６のようなアルゴリズムパラメータの入力を受け付ける。
【００４５】
アルゴリズム実行部１３０は、分析アルゴリズムで繰り返し実行すべき所定のモデル更新処理（モデル更新ステップ）を１回（１ステップ）実行する（ステップＳ３）。ここで、アルゴリズム実行部１３０は、途中結果を、ファイル、または、メモリに出力する。分析アルゴリズムがモデル更新処理を１回実行するごとに停止可能である場合、分析アルゴリズムは一時停止する。
【００４６】
例えば、アルゴリズム実行部１３０は、図５のデータに対して、図６のアルゴリズムパラメータを用いて、ＥＭアルゴリズムのＥステップとＭステップとの組を１回実行する。
【００４７】
途中結果抽出部１５０は、途中結果を抽出する（ステップＳ４）。ここで、途中結果抽出部１５０は、ファイル、または、メモリから途中結果を抽出し、結果出力部１４０に出力する。
【００４８】
結果出力部１４０は、途中結果を出力（表示）する（ステップＳ５）。ここで、結果出力部１４０は、途中結果をユーザが分かりやすい形式で表示する。
【００４９】
図７は、本発明の第１の実施の形態における、画面１４１の例を示す図である。図７の画面１４１は、データ表示エリア１４２、パラメータ表示エリア１４３、モデル表示エリア１４４、予測値表示エリア１４５、履歴表示エリア１４６、中断ボタン１４７、及び、再実行ボタン１４８を含む。
【００５０】
データ表示エリア１４２は、入力データの表示、編集のためのエリアである。図７の例では、データ表示エリア１４２に、入力データの値が表形式で表示されている。
【００５１】
パラメータ表示エリア１４３は、アルゴリズムパラメータの表示、編集のためのエリアである。図７の例では、パラメータ表示エリア１４３に、各アルゴリズムパラメータの値が表示されている。
【００５２】
モデル表示エリア１４４は、途中結果に含まれる、更新されたモデルパラメータを表示するためのエリアである。モデルが、例えば、ノードが接続されたネットワーク構造を含む場合、当該ネットワーク構造と、各ノードに係るパラメータが表示されてもよい。この場合、各ノードに係るパラメータは、ノードがマウスオーバされたときに表示されてもよい。図８、及び、図９は、本発明の第１の実施の形態における、モデル表示エリア１４４の表示内容の例を示す図である。図８の例は、非特許文献２、非特許文献３に記載されている異種混合学習によりモデルを生成する場合の例であり、モデルパラメータとして、回帰式を適用するグループを決定するための決定木と、各グループの回帰式が表示されている。図９の例は、ニューラルネットワークによりモデルを生成する場合の例であり、モデル表示エリア１４４に、モデルパラメータとして、ニューラルネットワークモデルにおけるノード間の重みが表示されている。
【００５３】
予測値表示エリア１４５は、途中結果に含まれる、更新されたモデルパラメータを用いて予測したデータの値を表示するためのエリアである。図７の例では、予測値表示エリア１４５に、モデルパラメータを用いて予測されたデータの値（予測値）と、実際のデータの値（実測値）とが、折れ線グラフで表示されている。
【００５４】
履歴表示エリア１４６は、分析アルゴリズムの実行履歴を表示するためのエリアである。図７の例では、履歴表示エリア１４６に、分析アルゴリズムの実行、再実行ごとに、分析アルゴリズムが中断されたか、終了したかを示す情報（状態）と、中断、あるいは、終了した時点のスコア関数の値（スコア）が表示されている。また、スコア関数の値だけでなく、分析アルゴリズムで用いたデータに対する誤差（学習誤差）や他のテストデータに対する誤差（テスト誤差）等、モデルに係る様々な指標が表示されていてもよい。これらの指標は、例えば、途中結果抽出部１５０等により、図示しない履歴格納部に格納される。そして、履歴表示エリア１４６が、これらの指標を、履歴格納部から取得して表示する。さらに、分析アルゴリズムの各実行、再実行ごとに、モデル更新処理による指標の変化の様子が、グラフ等により表示されてもよい。
【００５５】
例えば、結果出力部１４０は、図７のような画面１４１を表示する。
【００５６】
アルゴリズム実行部１３０は、分析アルゴリズムが終了したかどうかを判定する（ステップＳ６）。分析アルゴリズムの終了判定は、アルゴリズムの実装に依存する。例えば、ＥＭアルゴリズムでは、スコア関数であるモデルの尤度の更新量が「収束判定条件」を満たした場合や、モデル更新処理の繰り返し回数が「最大繰り返し回数」に達した場合、分析アルゴリズムは終了する。
【００５７】
分析アルゴリズムが終了した場合（ステップＳ６／Ｙ）、分析システム１００の処理が終了する。また、分析アルゴリズムが終了した場合、ステップＳ１、または、Ｓ２からの処理が繰り返されてもよい。
【００５８】
分析アルゴリズムが終了していない場合（ステップＳ６／Ｎ）、指示受付部１７０は、ユーザから、分析アルゴリズムの中断の指示の入力を受け付ける（ステップＳ７）。
【００５９】
ユーザは、画面１４１に表示されたモデルパラメータ等をモニタし、実行中の分析アルゴリズムを中断すべきかどうかを判断する。
【００６０】
分析アルゴリズムでは、入力されたアルゴリズムパラメータやデータ、モデルパラメータの初期値等の条件により、モデルパラメータが、取りうると考えられる適切な値の範囲から外れた最適解に近づいていく可能性がある。ユーザはモデル表示エリア１４４上のモデルパラメータを確認し、例えば、モデル更新処理が繰り返されても、適切な値の範囲外にあり、ほとんど変化しないモデルパラメータを見つけることにより、このような状況を検出できる。この場合、ユーザは、最適解を得る前に分析アルゴリズムを中断し、別のアルゴリズムパラメータやデータで再実行することにより、試行錯誤を効率的に行うことができる。例えば、ユーザは、モデル表示エリア１４４において、決定木の各ノードに設定された条件や回帰式の回帰係数をもとに、分析アルゴリズムを中断すべきかどうかを判断する。
【００６１】
また、ユーザは、予測値表示エリア１４５上の予測値と実測値を示すグラフや、スコア関数の値、学習誤差、テスト誤差等の指標の値を確認し、実行中の分析アルゴリズムを中断すべきかどうかを判断してもよい。例えば、ユーザは、予測値表示エリア１４５のグラフを確認し、特定のデータセットに対する予測誤差が大きい場合に、分析アルゴリズムを中断すべきと判断してもよい。
【００６２】
ユーザは、分析アルゴリズムを中断する場合、例えば、画面１４１の中断ボタン１４７を押すことにより、中断を指示する。
【００６３】
所定時間以内に中断指示が入力されなかった場合（ステップＳ７／Ｎ）、制御部１６０は、アルゴリズム実行部１３０に、一時停止していた分析アルゴリズムの実行を再開させる。分析アルゴリズムの再開方法は、アルゴリズムの実装に依存する。例えば、制御部１６０は、分析アルゴリズムの一時停止を解除する関数を呼び出す、あるいは、分析アルゴリズムがチェックするフラグを設定することにより、分析アルゴリズムを再開させる。アルゴリズム実行部１３０は、ステップＳ３において、次のモデル更新処理（モデル更新ステップ）を実行する。
【００６４】
一方、所定時間以内に中断指示が入力された場合（ステップＳ７／Ｙ）、制御部１６０は、アルゴリズム実行部１３０に、分析アルゴリズムを中断させる（ステップＳ８）。分析アルゴリズムの中断方法は、アルゴリズムの実装に依存する。例えば、アルゴリズム実行部１３０は、一時停止している分析アルゴリズムを完全停止する関数を呼び出す、あるいは、分析アルゴリズムがチェックするフラグを設定することにより、分析アルゴリズムを中断させる。
【００６５】
分析アルゴリズムの中断後、ステップＳ１、または、Ｓ２からの処理が繰り返される。すなわち、データ入力部１１０は、ステップＳ１において、ユーザから、入力データの修正を受け付ける。また、パラメータ入力部１２０は、ステップＳ２において、ユーザから、アルゴリズムパラメータの修正を受け付ける。
【００６６】
指示受付部１７０が、ユーザから分析アルゴリズムの再実行の指示の入力を受け付けた場合、制御部１６０は、アルゴリズム実行部１３０に分析アルゴリズムを再実行させる。アルゴリズム実行部１３０は、ステップＳ３において、修正されたデータやアルゴリズムパラメータを用いて、分析アルゴリズムを最初のモデル更新処理から再実行する。
【００６７】
例えば、ユーザは、画面１４１のパラメータ表示エリア１４３でアルゴリズムパラメータを修正し、再実行ボタン１４８を押すことにより、修正されたアルゴリズムパラメータを用いた分析アルゴリズムの再実行を指示する。
【００６８】
以降、ユーザは、分析アルゴリズムの途中に逐次出力される途中結果を確認しながら、必要に応じて、分析アルゴリズムの中断、アルゴリズムパラメータや入力データの修正、分析アルゴリズムの再実行を行うことにより、所望のモデルを生成する。
【００６９】
なお、上述の説明では、分析アルゴリズムが、モデル更新処理を１回実行するごとに一時停止する場合を例に説明した。しかしながら、分析アルゴリズムと分析アルゴリズムの操作に係る他の処理とが異なるＯＳ（Operating System）プロセス等で並行に実行されている場合、分析アルゴリズムを一時停止することなく、モデル更新処理の繰り返しが継続されてもよい。この場合、制御部１６０は、中断指示が入力された場合に、分析アルゴリズムを実行するＯＳプロセスに処理を停止するためのシグナルを送信することにより、分析アルゴリズムを中断してもよい。
【００７０】
次に、本発明の第１の実施の形態の特徴的な構成を説明する。図１は、本発明の第１の実施の形態の特徴的な構成を示すブロック図である。
【００７１】
分析システム１００（情報処理システム）は、指示受付部１７０（受付部）、アルゴリズム実行部１３０（構築部）、及び、結果出力部１４０（表示部）を含む。指示受付部１７０は、ユーザの指示を受け付ける。アルゴリズム実行部１３０は、入力データに基づき、学習モデルを構築する。結果出力部１４０は、学習モデルの構築状況を逐次表示する。アルゴリズム実行部１３０は、指示受付部１７０が指示を受け付けると、学習モデルの構築を停止する。
【００７２】
次に、本発明の第１の実施の形態の効果を説明する。
【００７３】
本発明の第１の実施の形態によれば、分析アルゴリズムの実行に時間がかかる場合でも、試行錯誤が妨げられない。その理由は、結果出力部１４０が、学習モデルの構築状況を逐次表示し、指示受付部１７０が指示を受け付けると、アルゴリズム実行部１３０が、学習モデルの構築を停止するためである。これにより、分析アルゴリズムの実行（学習モデルの構築）に時間がかかる場合でも、ユーザはその構築状況を確認でき、必要に応じて分析アルゴリズムを中断し、再実行できる。したがって、モデル生成における試行錯誤が妨げられることはない。
【００７４】
（第２の実施の形態）
次に、本発明の第２の実施の形態について説明する。
【００７５】
本発明の第２の実施の形態では、分析アルゴリズムの途中結果を過去の途中結果として格納し、分析アルゴリズムの再実行時に利用する点において、本発明の第１の実施の形態と異なる。
【００７６】
図１０は、本発明の第２の実施の形態における、分析システム１００の構成を示すブロック図である。本発明の第２の実施の形態の分析システム１００は、本発明の第１の実施の形態の分析システム１００の構成要素に加えて、途中結果格納部１８０を含む。
【００７７】
途中結果格納部１８０（以下、格納部とも記載）は、過去に実行、または、再実行された分析アルゴリズムで抽出された途中結果（過去の途中結果）を格納する。過去の途中結果としては、分析アルゴリズムが中断された場合については、例えば、中断された時点で途中結果抽出部１５０により抽出されていた最新の途中結果が格納される。分析アルゴリズムが中断されずに終了した場合については、分析アルゴリズムにおける最後のモデル更新処理の処理結果（以下、最終結果とも記載）が格納される。なお、過去の途中結果として、過去に実行された分析アルゴリズムにおける任意のモデル更新処理の処理結果が格納されてもよい。
【００７８】
図１１は、本発明の第２の実施の形態における、途中結果格納部１８０に格納された分析アルゴリズムの途中結果の例を示す図である。図１１に示すように、途中結果格納部１８０は、途中結果を、分析アルゴリズムで用いた入力データ、及び、アルゴリズムパラメータに関連付けて格納する。なお、入力データのサイズが大きい場合は、入力データの代わりに、一意性を保証される、入力データのハッシュ値を用いてもよい。また、途中結果は、上述のモデル情報に加えて、分析アルゴリズムの再開に必要な任意の情報を含んでいてもよい。
【００７９】
途中結果抽出部１５０は、上述のステップＳ４において、抽出した途中結果を途中結果格納部１８０に格納する。
【００８０】
制御部１６０は、アルゴリズム実行部１３０に分析アルゴリズムを再実行させる場合に、途中結果格納部１８０に格納されている過去の途中結果を検索する。ここで、制御部１６０は、過去の途中結果から、再実行で用いられる入力データ、及び、アルゴリズムパラメータと同じ入力データ、及び、アルゴリズムパラメータに関連づけられた途中結果を取得する。そして、制御部１６０は、アルゴリズム実行部１３０に、取得した途中結果を用いて分析アルゴリズムを再実行（再開）させる。
【００８１】
アルゴリズム実行部１３０は、分析アルゴリズムを再実行する場合に、制御部１６０から入力された途中結果（モデル情報）で示される、分析アルゴリズムの状態（モデルパラメータ、潜在変数の値や負担率等）を再現する。そして、再現された状態から、ステップＳ３におけるモデル更新処理を実行する。制御部１６０から入力された途中結果が最終結果である場合、アルゴリズム実行部１３０は、モデル更新処理の演算を行うことなく分析アルゴリズムを終了できる。
【００８２】
なお、アルゴリズムパラメータの種類によっては、そのアルゴリズムパラメータが変化しても、モデル更新処理ごとの途中結果は変わらない（途中結果に影響しない）ことがある。この場合、制御部１６０は、当該途中結果に影響しない種類のアルゴリズムパラメータが異なっていても、入力データ、及び、当該影響しない種類以外のアルゴリズムパラメータが同じであれば、途中結果を利用できる。例えば、最大繰り返し回数は、このような、途中結果に影響しないアルゴリズムパラメータである。
【００８３】
また、指示受付部１７０は、途中結果格納部１８０から取得した途中結果（モデル情報）の修正をユーザから受け付け、制御部１６０が、アルゴリズム実行部１３０に、当該修正した途中結果で分析アルゴリズムを再実行（再開）させてもよい。例えば、指示受付部１７０は、モデルパラメータのうちのいずれか（例えば、重み数値等）の修正を受け付け、制御部１６０は、修正されたモデルパラメータで分析アルゴリズムを再実行（再開）させてもよい。
【００８４】
次に、本発明の第２の実施の形態の効果を説明する。
【００８５】
上述の、特許文献１、非特許文献１に開示されているような一般的な対話型分析システムでは、分析アルゴリズムの実行に時間がかかると、分析アルゴリズムの試行回数に比例して分析全体の合計時間が増大するという課題があった。
【００８６】
本発明の第２の実施の形態によれば、分析アルゴリズムの実行に時間がかかる場合でも、分析全体にかかる合計時間の増大を抑制できる。その理由は、途中結果格納部１８０が分析アルゴリズムの途中結果を格納し、アルゴリズム実行部１３０が途中結果を用いて分析アルゴリズムを再実行するためである。これにより、既に実行済みのモデル更新処理の繰り返しが省略されるため、試行回数が増えても分析全体の合計時間の増大が抑えられる。
【００８７】
以上、実施形態を参照して本願発明を説明したが、本願発明は上記実施形態に限定されるものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
【産業上の利用可能性】
【００８８】
本発明は、データから規則を見つけたり、知識を発見したり、予測をしたり、最適化したりする等のデータ分析に広く適用できる。また、本発明は、分析アルゴリズムの途中結果が可視化して表示できることから、分析アルゴリズムの教育や研究といった用途にも適用できる。
【符号の説明】
【００８９】
１００    分析システム
１０１    ＣＰＵ
１０２    記憶デバイス
１０３    入出力デバイス
１０４    通信デバイス
１１０    データ入力部
１１１    データ格納部
１２０    パラメータ入力部
１２１    パラメータ格納部
１３０    アルゴリズム実行部
１４０    結果出力部
１４１    画面
１４２    データ表示エリア
１４３    パラメータ表示エリア
１４４    モデル表示エリア
１４５    予測値表示エリア
１４６    履歴表示エリア
１４７    中断ボタン
１４８    再実行ボタン
１５０    途中結果抽出部
１６０    制御部
１７０    指示受付部
１８０    途中結果格納部
９００    分析システム
９１０    データ入力部
９２０    パラメータ入力部
９３０    アルゴリズム実行部
９４０    結果表示部
【図１】
2017058848.tif 000003
【図２】
2017058848.tif 000004
【図３】
2017058848.tif 000005
【図４】
2017058848.tif 000006
【図５】
2017058848.tif 000007
【図６】
2017058848.tif 000008
【図７】
2017058848.tif 000009
【図８】
2017058848.tif 000010
【図９】
2017058848.tif 000011
【図１０】
2017058848.tif 000012
【図１１】
2017058848.tif 000013
【図１２】
2017058848.tif 000014