(57)【要約】  演算装置及びメモリを有する計算機を備える計算機システムであって、学習データを用いてグラフィカルモデルを構築するグラフィカルモデル構築部と、エビデンスデータの入力を受け付け、推論対象のノードが所定の状態値になる確率値の分布である推論結果を算出する推論部と、を備え、推論部は、影響評価値を算出する影響度算出部と、確率値微分量を算出する確率値微分量算出部と、を含み、確率値微分量算出部は、推論対象のノードと依存関係を有するノードを抽出し、抽出されたノードの中から処理対象のノードを選択し、処理対象のノードの確率テーブルを取得し、処理対象のノードと依存関係を有する一つの以上のノードの集合を家族ノードとして抽出し、推論対象のノード、処理対象のノード、及び家族ノードを組み合わせた同時確率変数の同時確率分布を算出し、同時確率分布及び処理対象のノードの確率テーブルを用いて確率値微分量を算出する。
2016121053.tif 000002
【特許請求の範囲】
【請求項１】
プログラムを実行する演算装置、及び前記プログラムを格納するメモリを有する一つ以上の計算機を備える計算機システムであって、
確率変数に対応する複数の項目を含むレコードから構成される学習データを管理する学習データ記憶部と、
前記学習データを用いて、前記確率変数に対応するノード、前記ノード間の依存関係を示すエッジ、及び前記ノードに対応する前記確率変数の状態値毎の確率値の分布を示す確率テーブルから構成されるグラフィカルモデルを構築するグラフィカルモデル構築部と、
前記グラフィカルモデル構築部によって構築された前記グラフィカルモデルの構造情報、及び前記グラフィカルモデルに含まれる複数のノードの各々の前記確率テーブルを管理するモデル情報記憶部と、
前記確率変数に対応する複数の項目を含むレコードから構成され、少なくとも一つの項目に値が格納されるエビデンスデータの入力を受け付け、推論対象のノードが所定の状態値になる確率値の分布である推論結果を算出する推論部と、を備え、
前記推論部は、
前記推論対象のノードと依存関係を有するノードの確率値が前記推論対象のノードの確率値に与える影響の大きさを示す影響評価値を算出する影響度算出部と、
前記影響評価値の算出に用いられ、前記推論対象のノードと依存関係を有するノードの確率値の微小変化に対する前記推論対象のノードの確率値の変化量である確率値微分量を算出する確率値微分量算出部と、
を含み、
前記確率値微分量算出部は、
前記モデル情報記憶部によって管理される前記グラフィカルモデルの構造情報を参照して、前記推論対象のノードと依存関係を有するノードを抽出し、
前記抽出されたノードの中から処理対象のノードを選択し、前記モデル情報記憶部によって管理される前記処理対象のノードの前記確率テーブルを取得し、
前記モデル情報記憶部によって管理される前記グラフィカルモデルの構造情報を参照して、前記処理対象のノードと依存関係を有する一つの以上のノードの集合を家族ノードとして抽出し、
前記推論対象のノード、前記処理対象のノード、及び前記家族ノードの前記確率テーブルを用いて、前記推論対象のノード、前記処理対象のノード、及び前記家族ノードを組み合わせた同時確率変数の同時確率分布を算出し、
前記同時確率分布及び前記処理対象のノードの確率テーブルを用いて前記確率値微分量を算出することを特徴とする計算機システム。
【請求項２】
請求項１に記載の計算機システムであって、
前記確率値微分量算出部は、前記確率値微分量を式（１）を用いて算出することを特徴とする計算機システム。
【数１】
2016121053.tif 000019
【請求項３】
請求項２に記載の計算機システムであって、
前記推論部は、前記影響評価値を変数とする関数を用いて前記推論結果における確率値の信頼区間を算出する信頼区間算出部を有し、
前記計算機システムは、前記推論結果の確率値と、前記信頼区間とを対応付けた推論結果管理情報を管理する推論結果記憶部を備えることを特徴とする計算機システム。
【請求項４】
請求項２に記載の計算機システムであって、
前記確率テーブルの確率値と、前記影響評価値とを対応付けた影響度管理情報を前記抽出されたノードの前記確率テーブル毎に管理する影響度記憶部を備え、
前記学習データ記憶部は、前記確率変数に対応する複数の項目を含むレコードから構成される補強データを管理し、
前記推論部は、
前記抽出されたノードの前記確率テーブルの全ての確率値について前記影響評価値を算出した後に、処理対象の確率テーブルを選択し、
前記処理対象の確率テーブルに対応する前記影響度管理情報を参照し、前記影響評価値に基づいて、前記補強データを用いた再学習が必要な確率値を選択し、
前記選択された確率値に対応する前記確率変数の状態値の組み合わせに基づいて、前記補強データに含まれるレコードと照合を行い、
前記照合の結果に基づいて、前記補強データの中から前記再学習に用いるレコードを抽出し、
前記抽出されたレコードを追加することによって前記学習データを更新し、
前記グラフィカルモデル構築部は、前記更新された学習データを用いて再度前記グラフィカルモデルを構築することを特徴とする計算機システム。
【請求項５】
請求項２に記載の計算機システムであって、
前記確率テーブルの確率値と、前記影響評価値とを対応付けた影響度管理情報を前記抽出されたノードの前記確率テーブル毎に管理する影響度記憶部を備え、
前記推論部は、
前記影響度管理情報に基づいて、前記抽出されたノードが前記推論対象のノードに与える影響の大きさを示す総影響評価値を算出し、
前記総影響評価値の値に基づいて、前記抽出されたノードの中から重要ノードを選択し、
前記グラフィカルモデル構築部は、前記重要ノードの依存関係のみを考慮して再度前記グラフィカルモデルを構築することを特徴とする計算機システム。
【請求項６】
請求項２に記載の計算機システムであって、
前記グラフィカルモデル構築部は、
状態値が連続値となる前記ノードの状態値を所定の粒度に離散化することによって前記グラフィカルモデルを構築し、
前記計算機システムは、前記確率テーブルの確率値と、前記確率テーブルの確率値に対応する確率変数の状態値の組み合わせと一致する前記学習データのレコードの数であるサンプル数と、前記影響評価値とを対応付けた影響度管理情報を前記抽出されたノードの前記確率テーブル毎に管理する影響度記憶部を備え、
前記推論部は、
前記状態値が連続値となるノードを選択し、
前記ノードの確率値テーブルに対応する前記影響度管理情報を読み出し、
前記影響度管理情報の前記サンプル数及び前記影響評価値に基づいて、前記ノードの状態値の離散化の粒度を決定し、
前記グラフィカルモデル構築部は、新たに決定された前記ノードの状態値の離散化の粒度に基づいて再度前記グラフィカルモデルを構築することを特徴とする計算機システム。
【請求項７】
一つ以上の計算機を備える計算機システムにおける、確率変数に対応するノード、前記ノード間の依存関係を示すエッジ、及び前記ノードに対応する前記確率変数の状態値毎の確率値の分布を示す確率テーブルから構成されるグラフィカルモデルの統計的な不確実さを考慮したグラフィカルモデルの管理方法であって、
前記一つ以上の計算機は、プログラムを実行する演算装置、及び前記プログラムを格納するメモリを有し、
前記計算機システムは、確率変数に対応する複数の項目を含むレコードから構成される学習データを管理する学習データ記憶部を備え、
前記グラフィカルモデルの管理方法は、
前記演算装置が、前記学習データを用いて前記グラフィカルモデルを構築し、構築された前記グラフィカルモデルの構造情報、及び前記グラフィカルモデルに含まれる複数のノードの各々の前記確率テーブルを前記メモリに格納する第１のステップと、
前記演算装置が、前記確率変数に対応する複数の項目を含むレコードから構成され、少なくとも一つの項目に値が格納されるエビデンスデータの入力を受け付け、推論対象のノードが所定の状態値になる確率値の分布である推論結果を算出する第２のステップと、
前記演算装置が、前記推論対象のノードと依存関係を有するノードの確率値の微小変化に対する前記推論対象のノードの確率値の変化量である確率値微分量を算出する第３のステップと、
前記演算装置が、前記確率値微分量を用いて、前記推論対象のノードと依存関係を有するノードの確率値が前記推論対象のノードの確率値に与える影響の大きさを示す影響評価値を算出する第４のステップと、を含み、
前記第３のステップは、
前記メモリに格納される前記グラフィカルモデルの構造情報を参照して、前記推論対象のノードと依存関係を有するノードを抽出する第５のステップと、
前記抽出されたノードの中から処理対象のノードを選択し、前記メモリから、前記処理対象のノードの前記確率テーブルを取得する第６のステップと、
前記メモリに格納される前記グラフィカルモデルの構造情報を参照して、前記処理対象のノードと依存関係を有する一つの以上のノードの集合を家族ノードとして抽出する第７のステップと、
前記推論対象のノード、前記処理対象のノード、及び前記家族ノードの前記確率テーブルを用いて、前記推論対象のノード、前記処理対象のノード、及び前記家族ノードを組み合わせた同時確率変数の同時確率分布を算出する第８のステップと、
前記同時確率分布及び前記処理対象のノードの確率テーブルを用いて前記確率値微分量を算出する第９のステップと、を含むことを特徴とするグラフィカルモデルの管理方法。
【請求項８】
請求項７に記載のグラフィカルモデルの管理方法であって、
前記第９のステップでは、式（２）を用いて前記確率値微分量が算出されることを特徴とするグラフィカルモデルの管理方法。
【数２】
2016121053.tif 000020
【請求項９】
請求項８に記載のグラフィカルモデルの管理方法であって、
前記第４のステップは、
前記影響評価値が算出された後、前記影響評価値を変数とする関数を用いて前記推論結果における確率値の信頼区間を算出するステップと、
前記推論結果の確率値と、前記信頼区間とを対応付けた推論結果管理情報を前記メモリに格納するステップと、を含むことを特徴とするグラフィカルモデルの管理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、グラフィカルモデルにおける確率推論方法に関する。
【背景技術】
【０００２】
ベイジアンネットワーク等のグラフィカルモデルは因果関係分析及び予測モデル構築においてよく用いられる。【０００３】
グラフィカルモデルは、確率変数であるノードと、ノード間を接続するエッジとから構成される。エッジは確率変数間の依存関係を示す。依存関係のある二つのノードうち、一方のノードに影響を与えるノードを親ノードと呼び、一方のノードの影響を受けるノードを子ノードと呼ぶ。さらに、一つのノードと当該ノードの親ノードの集合を当該ノードの家族ノードと呼ぶ。【０００４】
各ノードには条件付確率テーブルが与えられる。条件付確率テーブルは、あるノードの親ノードの状態値ベクトルごとの、該当あるノードの条件付確率値の分布を表す。ここで、条件付確率分布は、ノードが取り得る状態値の条件付確率値の分布を意味する。【０００５】
グラフィカルモデルでは、所定の確率変数に値を入力すると、予測対象の確率変数の確率値を得ることができる。これによって、例えば、過去のデータから将来の動向等を予測することができる。【０００６】
本明細書では、予測対象の確率変数を推論対象と呼び、条件付確率値を用いて推論対象の確率値の分布（確率分布）を算出することを推論と呼び、推論対象の確率分布を推論結果と呼ぶ。また、本明細書では、推論対象の確率分布における各確率値の信頼区間を信頼区間と呼ぶ。
【先行技術文献】
【非特許文献】
【０００７】
【非特許文献１】Tim Van Allen, Ajit Singh, Russell Greiner, Peter Hooper、“Quantifying the uncertainty of a belief net response: Bayesian error-bars for belief net inference”、Artificial Intelligence 172 (2008) 483-513
【発明の概要】
【発明が解決しようとする課題】
【０００８】
グラフィカルモデルは、有限の数のデータを用いた学習によって生成されるため、統計的な信頼性という指標を有する。グラフィカルモデルの統計的な不確実さを定量化し、これに基づいて、グラフィカルモデルを用いた予測の信頼性を評価し、また、グラフィカルモデルを再構築することが重要である。【０００９】
非特許文献１に記載されているように、確率テーブルにおける確率値が推論対象に与える影響は、下式（１）に示すように与えられる。なお、式（１）は非特許文献１の式（８）に対応する。【００１０】
【数１】
2016121053.tif 000003
【００１１】
ここで、確率値微分量は、条件付確率値の微小変化に対する推論結果の確率値の変化量を表す。式（１）に示すように、影響評価値は確率値微分量の関数として与えられる。【００１２】
ここで、非特許文献１には、確率値微分量が下式（２）のように定義され、具体的には下式（３）を算出すればよいことが記載されている。なお、式（２）は非特許文献１の式（６）に対応し、式（３）は非特許文献１の式（１４）に対応する。【００１３】
【数２】
2016121053.tif 000004
【００１４】
【数３】
2016121053.tif 000005
【００１５】
式（３）に示すような従来の変数消去法の中間結果を用いた計算機方法の場合、グラフィカルモデルの規模が大きくなると、厳密推論法である変数消去法における計算コストが大きくなり、実際に計算できないという問題がある。【００１６】
本発明では、規模が大きいグラフィカルモデルにおいても計算コストを抑えて、影響評価値を算出できる装置及び方法を提供する。
【課題を解決するための手段】
【００１７】
本願において開示される発明の代表的な一例を示せば以下の通りである。すなわち、プログラムを実行する演算装置、及び前記プログラムを格納するメモリを有する一つ以上の計算機を備える計算機システムであって、確率変数に対応する複数の項目を含むレコードから構成される学習データを管理する学習データ記憶部と、前記学習データを用いて、前記確率変数に対応するノード、前記ノード間の依存関係を示すエッジ、及び前記ノードに対応する前記確率変数の状態値毎の確率値の分布を示す確率テーブルから構成されるグラフィカルモデルを構築するグラフィカルモデル構築部と、前記グラフィカルモデル構築部によって構築された前記グラフィカルモデルの構造情報、及び前記グラフィカルモデルに含まれる複数のノードの各々の前記確率テーブルを管理するモデル情報記憶部と、前記確率変数となる複数の項目を含むレコードから構成され、少なくとも一つの項目に値が格納されるエビデンスデータの入力を受け付け、推論対象のノードが所定の状態値になる確率値の分布である推論結果を算出する推論部と、を備え、前記推論部は、前記推論対象のノードと依存関係を有するノードの確率値が前記推論対象のノードの確率値に与える影響の大きさを示す影響評価値を算出する影響度算出部と、前記影響評価値の算出に用いられ、前記推論対象のノードと依存関係を有するノードの確率値の微小変化に対する前記推論対象のノードの確率値の変化量である確率値微分量を算出する確率値微分量算出部と、を含み、前記確率値微分量算出部は、前記モデル情報記憶部によって管理される前記グラフィカルモデルの構造情報を参照して、前記推論対象のノードと依存関係を有するノードを抽出し、前記抽出されたノードの中から処理対象のノードを選択し、前記モデル情報記憶部によって管理される前記処理対象のノードの前記確率テーブルを取得し、前記モデル情報記憶部によって管理される前記グラフィカルモデルの構造情報を参照して、前記処理対象のノードと依存関係を有する一つの以上のノードの集合を家族ノードとして抽出し、前記推論対象のノード、前記処理対象のノード、及び前記家族ノードの前記確率テーブルを用いて、前記推論対象のノード、前記処理対象のノード、及び前記家族ノードを組み合わせた同時確率変数の同時確率分布を算出し、前記同時確率分布及び前記処理対象のノードの確率テーブルを用いて前記確率値微分量を算出することを特徴とする。
【発明の効果】
【００１８】
本発明によれば、確率値微分量が同時確率分布を用いて算出される。そのため、近似推論手法を用いて影響評価値を算出できるため、規模が大きいグラフィカルモデルにおいても計算コストを抑えて、影響評価値を算出できる。上記した以外の課題、構成及び効果は、以下の実施例の説明により明らかにされる。
【図面の簡単な説明】
【００１９】
【図１】実施例１の計算機の推論部が実行する処理の一例を説明するフローチャートである。
【図２】実施例１の計算機システムの構成の一例を示すブロック図である。
【図３】実施例１のデータベースに格納される学習データの一例を示す説明図である。
【図４】実施例１のグラフィカルモデルの一例を示す説明図である。
【図５Ａ】実施例１のグラフィカルモデルの構造情報の一例を示す説明図である。
【図５Ｂ】実施例１のグラフィカルモデルの構造情報の一例を示す説明図である。
【図６】実施例１の条件付確率テーブルの一例を示す説明図である。
【図７】実施例１のエビデンスデータの一例を示す説明図である。
【図８】実施例１の推論結果管理情報の一例を示す説明図である。
【図９Ａ】実施例１の影響度管理情報の一例を示す説明図である。
【図９Ｂ】実施例１の影響度管理情報の一例を示す説明図である。
【図１０】実施例１の計算機のグラフィカルモデル構築部が実行する処理の一例を説明するフローチャートである。
【図１１】実施例１の表示部によって表示されるユーザインタフェースの一例を示す説明図である。
【図１２】実施例２の計算機が実行するグラフィカルモデルの再構築処理を説明するフローチャートである。
【図１３】実施例３の計算機が実行するグラフィカルモデルの再構築処理を説明するフローチャートである。
【図１４】実施例４の計算機が実行するグラフィカルモデルの再構築処理を説明するフローチャートである。
【発明を実施するための形態】
【実施例１】
【００２０】
実施例１では、計算機２００が、入力された学習データに基づいて、複数の確率変数間の因果関係及び遷移関係をグラフィカルモデルとして構築する。また、計算機２００が、構築されたグラフィカルモデルに対して入力されたエビデンスデータに基づいて、近似推論方法を用いて推論対象の確率分布（推論結果）を算出する。このとき、計算機２００は、影響評価値を算出し、当該影響評価値を用いて推論結果の条件付確率値の信頼区間も算出する。【００２１】
グラフィカルモデルを用いて、過去のデータ（サンプルデータ）から将来の動向等を予測する場合、推論結果だけではなく、推論結果における確率値の信頼区間を示すことができれば、当該推論結果の信頼性及び説得力の向上に繋がる。【００２２】
例えば、コインを投げてコインが表面又は裏面になる事象を考えた場合、コインが表面及び裏面になる真実の確率はそれぞれ５０％である。しかし、コインを投げる回数が有限回、例えば、１０回である場合、１０回中必ず５回が表面になるとは限らない。ここで、コインを投げる回数をサンプル数と呼ぶ。【００２３】
したがって、サンプル数が有限値である場合に、コインが表面になる確率は、５０％からずれた値となる。前述した試行では、コインが表面になる確率は６０％になる。コインを投げる回数が多いほど、得られる結果の揺らぎが小さくなることから、例えば、コインを１０回投げて得られる確率値は、コインを１００回投げて得られる確率値より信頼性が低いことが分かる。【００２４】
前述のような有限のサンプル数から得られた確率値は、真実の確率値の推測値となるため、当該確率値の信頼度を評価する必要がある。この確率値の信頼度を評価する信頼性評価値は、サンプル数の関数として与えられる。【００２５】
学習データを用いた機械学習によってグラフィカルモデルを構築する場合、各ノードに対して条件付確率テーブルを与えることができる。各ノードの条件付確率テーブルの条件付確率値は、前述の試行と同様に、学習データの数、すなわち、サンプル数が多いほど信頼性が高い。【００２６】
したがって、当該グラフィカルモデルを用いた推論結果の信頼性もサンプル数に依存するため、サンプル数を多いほど、より正確な推論結果を得ることができる。すなわち、推論結果の信頼区間が小さくなる。このことから、推論結果の信頼度についても、サンプル数の関数として表すことができる。【００２７】
このような繋がりで、学習データの有限性による、条件付確率値の信頼度は最終的に推論結果の信頼度に反映し、信頼区間という形式で表す。【００２８】
ここで、学習データは後述するように、確率変数に対応する項目を複数含むレコードの集合であり、少なくとも一つ以上の項目に値が格納される。グラフィカルモデルは、各確率変数をノードとして扱い、また、ノード間の依存関係をエッジとして表現したグラフである。また、グラフィカルモデルでは、ノードに確率テーブルが与えられる。【００２９】
グラフィカルモデルには、ベイジアンネットワーク及びマルコフネットワークなどの種類がある。本実施例ではベイジアンネットワークを例に説明する。ベイジアンネットワークでは、確率変数間の依存関係は条件付確率として表され、また、ノードの確率値の分布を示す確率テーブルは条件付確率テーブルとなる。また、本実施例では、後述するエビデンスデータの確率変数に対応する項目の中で、値を持っていない項目（確率変数）の一部又は全てが推論対象として扱われる。【００３０】
なお、近似推論手法は、推論対象の確率分布を算出するための近似方法である。代表的な近似推論手法には、Ｌｏｏｐｙ  ｂｅｌｉｅｆ  ｐｒｏｐａｇａｔｉｏｎ法又はＧｉｂｂｓ  ｓａｍｐｌｉｎｇ法などが知られている。【００３１】
図２は、実施例１の計算機システムの構成の一例を示すブロック図である。【００３２】
計算機システムは、計算機２００及びデータベース２０６から構成される。【００３３】
計算機２００は、グラフィカルモデルを構築し、また、グラフィカルモデルを用いて推論結果及び推論結果における確率値の信頼区間等を算出する。本実施例の計算機２００は、演算装置２０１、メモリ２０２、記憶媒体２０３、入力装置２０４、及び出力装置２０５を有し、内部バス等を介して互いに接続される。【００３４】
演算装置２０１は、メモリ２０２に格納されるプログラムを実行する演算装置であり、例えば、ＣＰＵ及びＧＰＵ等がある。以下の、機能部を主語として処理及び機能を説明する場合、演算装置２０１によって当該機能部を実現するプログラムが実行されていることを示す。メモリ２０２は、演算装置２０１によって実行されるプログラム及び当該プログラムによって使用される情報を格納する。メモリ２０２は、揮発性のメモリ及び不揮発性のメモリのいずれであってもよい。【００３５】
記憶媒体２０３は、計算機２００が有する各種機能を実現するプログラム等を格納する。本実施例では、演算装置２０１が、記憶媒体２０３からプログラムを読み出し、読み出されたプログラムをメモリ２０２上にロードし、さらに、ロードされたプログラムを実行する。本実施例の記憶媒体２０３に格納されるプログラム等については後述する。【００３６】
なお、記憶媒体２０３に格納されるプログラムは、ＣＤ−ＲＯＭ及びフラッシュメモリ等のリムーバブルメディア又はネットワークを介して接続される配信サーバから取得する方法が考えられる。リムーバブルメディアからプログラムを取得する場合、計算機２００は、リムーバブルメディアに接続されるインタフェースを備える。【００３７】
入力装置２０４は、計算機２００に各種情報を入力するための装置であり、例えば、キーボード、マウス、及びタッチパネル等が含まれる。出力装置２０５は、計算機２００が実行した処理結果を出力する装置であり、例えばディスプレイ等が含まれる。【００３８】
データベース２０６は、計算機２００が管理する各種データを格納する。本実施例では、図示しないストレージシステムを用いてデータベース２０６が構築されるものとする。ストレージシステムは、コントローラ、外部インタフェース、及び複数の記憶媒体を備える。ストレージシステムは、複数の記憶媒体を用いてＲＡＩＤを構成することができる。また、ストレージシステムは、ＲＡＩＤボリュームを用いて複数の論理的な記憶領域を提供することもできる。【００３９】
データベース２０６は、学習データ記憶部２４１、モデル情報記憶部２４２、エビデンスデータ記憶部２４３、推論結果記憶部２４４、及び影響度記憶部２４５を含む。【００４０】
学習データ記憶部２４１は、グラフィカルモデルの構築時に用いられる学習データ３００を記憶する。学習データ３００の詳細は図３を用いて説明する。モデル情報記憶部２４２は、グラフィカルモデルの構造を示す構造情報５００、５１０、及び条件付確率テーブル６００を記憶する。構造情報５００、５１０の詳細については図５Ａ及び図５Ｂを用いて説明し、また、条件付確率テーブル６００の詳細については図６を用いて説明する。【００４１】
エビデンスデータ記憶部２４３は、エビデンスデータ７００を記憶する。ここで、エビデンスデータ７００は、健康検診等を行う患者等から取得される検査値及び画像データ等の健康に関する情報、並びに、医師による診断情報、処置及び処方薬等の診療に関する情報等を示す。エビデンスデータ７００の詳細は図７を用いて説明する。推論結果記憶部２４４は、推論結果管理情報８００を記憶する。推論結果管理情報８００の詳細は図８を用いて説明する。影響度記憶部２４５は、影響度管理情報９００を記憶する。影響度管理情報９００の詳細は図９を用いて説明する。【００４２】
ここで、記憶媒体２０３に格納されるプログラムについて説明する。【００４３】
記憶媒体２０３は、グラフィカルモデル構築部２１０、推論部２２０、及び表示部２３０を実現するプログラムを格納する。【００４４】
グラフィカルモデル構築部２１０は、グラフィカルモデルを構築し、また、構築されたグラフィカルモデルに関する各種情報を生成する。グラフィカルモデル構築部２１０は複数のモジュールから構成される。本実施例のグラフィカルモデル構築部２１０は、モデル構造学習部２１１、サンプル数算出部２１２、及び確率テーブル算出部２１３を含む。【００４５】
モデル構造学習部２１１は、学習データ３００を用いて、グラフィカルモデル（ベイジアンネットワーク）を構築する。また、モデル構造学習部２１１は、モデル情報記憶部２４２を介してデータベース２０６に構築されたグラフィカルモデルの構造情報５００、５１０を格納する。ここで、モデル構造学習部２１１は、ベイジアンネットワークの既存の構造学習アルゴリズムを用いてグラフィカルモデルを構築するものとする。ベイジアンネットワークの既存の構造学習アルゴリズムとしては、例えば、Ｈｉｌｌ  Ｃｌｉｍｂｉｎｇ法等がある。【００４６】
サンプル数算出部２１２は、学習データ３００に含まれるレコードの中から所定の条件に合致するレコードの数をサンプル数として算出する。サンプル数算出部２１２は、影響度記憶部２４５を介して、影響度管理情報９００に算出されたサンプル数を格納する。【００４７】
確率テーブル算出部２１３は、構築されたグラフィカルモデルの各ノードの条件付確率テーブル６００を算出する。確率テーブル算出部２１３は、モデル情報記憶部２４２を介して、条件付確率テーブル６００を格納する。【００４８】
推論部２２０は、推論対象の入力を受け付け、入力された推論対象の条件付確率値の分布（推論結果）を算出する。また、本実施例の推論部２２０は、ある条件付確率値が推論結果の確率値に与える影響の大きさを影響評価値として算出し、算出された影響評価値に基づいて推論結果の確率値の信頼区間を算出する。推論部２２０は、複数のモジュールから構成される。本実施例の推論部２２０は、推論結果算出部２２１、確率値微分量算出部２２２、影響度算出部２２３、及び信頼区間算出部２２４を含む。【００４９】
推論結果算出部２２１は、変数消去法等の厳密推論手法、又は、Ｌｏｏｐｙ  Ｂｅｌｉｅｆ  Ｐｒｏｐａｇａｔｉｏｎ等の近似推論手法を用いて、推論対象の確率分布を算出する。【００５０】
確率値微分量算出部２２２は、影響評価値を算出するために必要となる確率値微分量を算出する。ここで、確率値微分量は、条件付確率値の微小な変化量に対する推論結果の確率値の変化量であり、式（２）のように表される。【００５１】
本実施例では、確率値微分量を下式（４）で与える。厳密推論を用いて式（４）に含まれる同時確率分布を算出する場合、非特許文献１に記載する確率値微分量の計算結果と一致する。なお、影響評価値及び確率値微分量の具体的な算出方法については後述する。【００５２】
【数４】
2016121053.tif 000006
【００５３】
ここで、式（４）の導出について説明する。以下の説明では、推論対象をＴとし、条件付確率値の子ノードに対応する確率変数をＡとし、親ノードに対応する確率変数をＢｉとする。なお、ｉは１からｍまでの整数であるものとする。また、Ｔの取り得る値の集合をＲ（Ｔ）とし、Ａの取り得る値の集合をＲ（Ａ）とし、Ｂｉの取り得る値の集合をＲ（Ｂｉ）とする。このとき、下式（５）が成り立つ。【００５４】
【数５】
2016121053.tif 000007
【００５５】
下式（６）、（７）に示すようなベイズの定理の式を用いると、式（５）は下式（８）のようになる。【００５６】
【数６】
2016121053.tif 000008
【００５７】
【数７】
2016121053.tif 000009
【００５８】
【数８】
2016121053.tif 000010
【００５９】
ここで、ｔｌをＲ（Ｔ）の任意の値、ａｋをＲ（Ａ）の任意の値、ｂｉ,ｊをＲ（Ｂｉ）の任意の値として下式（９）を計算する。【００６０】
【数９】
2016121053.tif 000011
【００６１】
このとき、右辺には下式（１０）に示す項以外に下式（１１）を含む項がないため、式（９）は式（１２）に示すようになる。【００６２】
【数１０】
2016121053.tif 000012
【００６３】
【数１１】
2016121053.tif 000013
【００６４】
【数１２】
2016121053.tif 000014
【００６５】
式（１２）の右辺にベイズの定理を用いて変形すると下式（１３）のようになる。したがって、式（１２）は式（１４）に示すような形に表せる。すなわち、式（４）に一致する。以上が、式（４）の導出方法の説明である。【００６６】
【数１３】
2016121053.tif 000015
【００６７】
【数１４】
2016121053.tif 000016
【００６８】
影響度算出部２２３は、確率値微分量を用いて影響評価値を算出する。信頼区間算出部２２４は、影響評価値及びサンプル数に基づいて、推論結果の確率値の信頼区間を算出する。【００６９】
表示部２３０は、出力装置２０５等を介して、ユーザに対して出力する各種情報を表示する。表示部２３０は複数のモジュールから構成される。本実施例の表示部２３０は、モデル表示部２３１及び推論結果表示部２３２を含む。【００７０】
モデル表示部２３１は、構築されたグラフィカルモデルを表示するための表示データを生成し、生成された表示データに基づいて出力装置２０５を介してグラフィカルモデルに関する情報を出力する。【００７１】
推論結果表示部２３２は、算出された推論結果を表示するための表示データを生成し、生成された表示データに基づいて出力装置２０５を介して推論結果に関する情報を出力する。【００７２】
図３は、実施例１のデータベース２０６に格納される学習データ３００の一例を示す説明図である。【００７３】
学習データ３００は、識別情報、及び確率変数に対応する複数のカラムから構成されるレコードを含む。本実施例のレコードは、患者ＩＤ３０１、ＢＭＩ値３０２、血圧値３０３、血糖値３０４、心臓病３０５、及び糖尿病３０６を含む。【００７４】
患者ＩＤ３０１は、患者の識別情報である。ＢＭＩ値３０２、血圧値３０３、及び血糖値３０４は、患者のＢＭＩ値、血圧値、及び血糖値である。心臓病３０５及び糖尿病３０６は、患者が心臓病及び糖尿病に該当するか否かを示す情報である。患者ＩＤ３０１がレコードの識別情報であり、ＢＭＩ値３０２、血圧値３０３、血糖値３０４、心臓病３０５、及び糖尿病３０６は、確率変数である。【００７５】
患者が心臓病又は糖尿病に該当する場合には、心臓病３０５又は糖尿病３０６には「Ｙｅｓ」が格納され、患者が心臓病又は糖尿病に該当しない場合には、心臓病３０５又は糖尿病３０６には「Ｎｏ」が格納される。【００７６】
図３の上から１行目のレコードは、患者ＩＤ３０１が「Ｋ０００１」、ＢＭＩ値が「３２」、血圧値が「９０」、及び血糖値が「５」であり、また、心臓病及び糖尿病のいずれにも該当しないことを示す。【００７７】
なお、ＢＭＩ値３０２、血圧値３０３、血糖値３０４、心臓病３０５、及び糖尿病３０６には、必ずしも値が格納されていなくてもよい。この場合、当該カラムにはデータが欠損していることを示す情報が格納される。データの欠損を示す情報は、数値、文字、及びブール値のいずれであってもよい。【００７８】
次に、図３に示す学習データ３００に対応するグラフィカルモデル及び構造情報５００、５１０について説明する。【００７９】
図４は、実施例１のグラフィカルモデル４００の一例を示す説明図である。【００８０】
グラフィカルモデル４００は、複数のノード４１０、及びノード４１０間を接続するエッジ４２０から構成される。図４に示すグラフィカルモデル４００の各ノード４１０は、学習データ３００のＢＭＩ値３０２、血圧値３０３、血糖値３０４、心臓病３０５、及び糖尿病３０６に対応する。【００８１】
本実施例ではベイジアンネットワークを想定しているため、ノード４１０を接続するエッジ４２０には向きが存在する。また、エッジ４２０の始点に対応するノード４１０を親ノードと呼び、エッジ４２０の終点に対応するノード４１０を子ノードと呼ぶ。例えば、「糖尿病」のノード４１０は「血糖値」のノードの子ノードであり、「血糖値」のノードは「糖尿病」のノードに対する親ノードである。各ノード４１０には条件付確率テーブルが与えられる。ベイジアンネットワークでは、子ノードの確率分布は親ノードの確率値に依存する。【００８２】
図５Ａ及び図５Ｂは、実施例１のグラフィカルモデル４００の構造情報５００、５１０の一例を示す説明図である。本実施例のグラフィカルモデル４００の構造情報には、ノード４１０の情報及びエッジ４２０の情報が含まれる。【００８３】
図５Ａは、グラフィカルモデル４００におけるノード４１０に関する構造情報５００を示す。構造情報５００は、一つのノード４１０に対して一つのレコードを含み、レコードはノードＩＤ５０１及び項目名５０２を含む。【００８４】
ノードＩＤ５０１は、ノード４１０を一意に識別するための識別情報である。項目名５０２は、ノード４１０に対応する確率変数の識別情報である。項目名５０２は、学習データ３００の項目名に対応する。【００８５】
図５Ｂは、グラフィカルモデル４００におけるエッジ４２０に関する構造情報５１０を示す。構造情報５１０は、一つのエッジ４２０に対して一つのレコードを含み、レコードはエッジＩＤ５１１、親ノード５１２、及び子ノード５１３を含む。【００８６】
エッジＩＤ５１１は、エッジ４２０を一意に識別するための識別情報である。親ノード５１２は、親ノードに対応するノード４１０の識別情報である。子ノード５１３は、子ノードに対応するノード４１０の識別情報である。親ノード５１２及び子ノード５１３には項目名５０２と同一の情報が格納される。なお、親ノード５１２及び子ノード５１３にはノードＩＤ５０１と同一の情報が格納されてもよい。【００８７】
図６は、実施例１の条件付確率テーブル６００の一例を示す説明図である。【００８８】
条件付確率テーブル６００は、親ノードの状態値に対して子ノードが任意の状態値を取る条件付確率値を格納する。条件付確率テーブル６００は、子ノードに対応するノード４１０に与えられるものである。【００８９】
条件付確率テーブル６００は、親ノード６０１、子ノード６０２、条件付確率６０３、及びサンプル数６０４を含む。【００９０】
親ノード６０１は、親ノードの状態値である。親ノードが複数存在する場合、親ノード６０１には親ノードの数だけカラムが存在する。子ノード６０２は、子ノードの状態値である。条件付確率６０３は、親ノード６０１に設定された状態値に対して、子ノード６０２に設定された状態値を取る確率値である。サンプル数６０４は、学習データ３００に含まれるレコードのうち、親ノード６０１の状態値と一致するレコードの数である。【００９１】
なお、サンプル数は、条件付確率テーブル６００とは別のテーブルにて管理されてもよい。【００９２】
図６の一番上のレコードの場合、血圧値が「９０」かつ血糖値が「５」である場合に、心臓病になる確率が「９％」であることを示す。また、図６の一番上のレコードの場合、親ノードである血圧値及び血糖値の状態値がそれぞれ「９０」及び「５」であるレコードの数が「１５６３」であることを示す。条件付確率６０３は、学習データ３００に含まれる親ノード６０１の状態値に一致するレコードの数と、親ノード６０１及び子ノード６０２の状態値に一致するレコードの数とから求めることができる。【００９３】
一般的に、サンプル数６０４の値が大きいほど条件付確率６０３が示す信頼性は高くなる。【００９４】
図７は、実施例１のエビデンスデータ７００の一例を示す説明図である。【００９５】
実施例１のエビデンスデータ７００は、学習データ３００に含まれるレコードと同一の構成である。具体的には、エビデンスデータ７００は、患者ＩＤ７０１、ＢＭＩ値７０２、血圧値７０３、血糖値７０４、心臓病７０５、及び糖尿病７０６を含む。なお、患者から取得されていない項目の値には、データが欠損していることを示す記号が格納される。【００９６】
図８は、実施例１の推論結果管理情報８００の一例を示す説明図である。【００９７】
推論結果管理情報８００は、グラフィカルモデル４００及びエビデンスデータ７００を用いて算出された推論対象のノード４１０が任意の状態値となる条件付確率値を格納する。実施例１の推論結果管理情報８００は、エビデンス８０１、推論対象８０２、条件付確率８０３、及び信頼区間８０４を含む。【００９８】
エビデンス８０１は、エビデンスデータ７００のうち、推論対象８０２に関連するノード４１０と依存関係のあるノード４１０の状態値である。推論対象８０２は、推論対象であるノード４１０の状態値である。【００９９】
推論結果管理情報８００には、エビデンスデータ７００に含まれる一つのレコードに対して、推論対象のノード４１０が取り得る状態値の数だけレコードが生成される。本実施例では、「心臓病」に対応するノード４１０は「Ｙｅｓ」又は「Ｎｏ」のいずれかの状態値を取るため、推論結果管理情報８００には、エビデンスデータ７００の一つのレコードに対して、二つのレコードが格納される。例えば、エビデンスデータ７００のレコードの数が「Ｍ」の場合、推論結果管理情報８００のレコードの数は「２Ｍ」となる。【０１００】
条件付確率８０３は、推論対象の条件付確率値である。エビデンスデータ７００の一つのレコードに対応する推論結果管理情報８００の二つのレコードの条件付確率８０３の集合が、当該エビデンスデータ７００の一つのレコードにおける推論結果となる。【０１０１】
信頼区間８０４は、条件付確率値の信頼性を評価する信頼区間である。本実施例では、信頼区間８０４には、９５％信頼区間の値を格納されるものとする。【０１０２】
図８に示す一番上のレコードは、ＢＭＩ値が「２１」、血圧値が「９０」、かつ血糖値が「５」である患者が心臓病となる確率は、９５％の確率で５％から９％であることを示す。【０１０３】
図９Ａ及び図９Ｂは、実施例１の影響度管理情報９００の一例を示す説明図である。なお、影響度管理情報９００のレコード数が多いため、図９Ａ及び図９Ｂの二つに分けて影響度管理情報９００を示している。【０１０４】
影響度管理情報９００は、条件付確率６０３の推論結果への影響度を示す影響評価値を管理する。影響度管理情報９００は、親ノード９０１、子ノード９０２、条件付確率９０３、サンプル数９０４、推論対象９０５、同時確率９０６、確率値微分量９０７、及び影響評価値９０８を含む。【０１０５】
親ノード９０１、子ノード９０２、条件付確率９０３、及びサンプル数９０４は、親ノード６０１、子ノード６０２、条件付確率６０３、及びサンプル数６０４と同一のものである。【０１０６】
なお、推論対象と依存関係を有するノード４１０の条件付確率テーブル６００に対して一つの影響度管理情報９００が存在する。図９は血糖値のノード４１０に対応する影響度管理情報９００である。また、影響度管理情報９００には、一つの条件付確率値に対して、推論対象が取り得る状態値の数だけレコードが生成される。「心臓病」に対応するノード４１０は「Ｙｅｓ」又は「Ｎｏ」の二つの状態値を取るため、影響度管理情報９００には、条件付確率テーブル６００の一つのレコードに対して、二つのレコードが格納される。例えば、条件付確率テーブル６００のレコードの数が「Ｎ」の場合、影響度管理情報９００のレコードの数は「２Ｎ」となる。【０１０７】
推論対象９０５は、推論対象の状態値である。同時確率９０６は、当該レコードに対応する状態値の組み合わせにおける関連確率変数の同時確率値である。確率値微分量９０７は、条件付確率９０３の確率値微分量である。影響評価値９０８は、条件付確率９０３が推論結果の確率値に与える影響度である。【０１０８】
例えば、図９の一番目のレコードは、ＢＭＩ値が「２０」及び血糖値が「５」である場合に心臓病となる条件付確率値「９％」が推論結果の確率値に与える影響の大きさ、すなわち、影響評価値が「０．２」であることを示す。【０１０９】
影響評価値９０８に格納される値は、条件付確率６０３の微小変化に対する推論結果の確率値の変化量の関数の値として与えられる。影響評価値を算出するための関数は、推論部２２０に予め設定されているものとする。また、推論結果管理情報８００の信頼区間８０４に格納される値は、後述するようにサンプル数及び影響評価値に基づいて算出される。【０１１０】
次に、計算機２００が実行する処理について説明する。まず、グラフィカルモデル４００の構築処理について図１０を用いて説明する。図１０は、実施例１の計算機２００のグラフィカルモデル構築部２１０が実行する処理の一例を説明するフローチャートである。【０１１１】
計算機２００は、グラフィカルモデル４００の構築が指示された場合等に以下で説明する処理を開始する。【０１１２】
計算機２００は、学習データ３００の入力を受け付ける（ステップＳ１００１）。学習データ３００は、例えば、入力装置２０４等を用いて入力する方法が考えられる。【０１１３】
このとき、計算機２００は、データベース２０６の学習データ記憶部２４１を介して入力された学習データ３００をデータベース２０６に格納する。なお、様々なデータ形式の学習データ３００が入力される場合、学習データ記憶部２４１は、入力されたデータを図３に示すような形式に変換した後、変換された学習データ３００を格納してもよい。【０１１４】
次に、計算機２００は、学習データ３００の離散化処理を実行する（ステップＳ１００２）。具体的には、グラフィカルモデル構築部２１０のモデル構造学習部２１１が、学習データ３００のレコードの項目のうち、当該項目に格納される状態値が連続値をとる項目について状態値を離散化する。例えば、血糖値の状態値として整数のみを扱うように離散化する。この場合、小数点以下の数は、四捨五入、切り捨て、切り上げ等が行われる。なお、離散化の粒度は任意に設定できる。【０１１５】
次に、計算機２００は、グラフィカルモデル４００の構築に用いられる制限条件の設定処理を実行する（ステップＳ１００３）。例えば、グラフィカルモデル構築部２１０のモデル構造学習部２１１が、入力装置２０４等を用いて入力された制限条件を受け付け、当該制約条件をメモリ２０２に格納する。【０１１６】
ここで、制限条件としては、ノード４１０間の依存関係等が考えられる。例えば、「第１のノードと第２のノードとの間にはエッジなし」、「第３のノードと第４のノードとの間にはエッジあり」等の情報が制限情報として入力される。【０１１７】
次に、計算機２００は、学習データ３００を用いたモデル構造の学習処理を実行する（ステップＳ１００４）。具体的には、グラフィカルモデル構築部２１０のモデル構造学習部２１１が、学習データ３００及び制約条件に基づいて、ノード４１０の構造情報５００及びエッジ４２０の構造情報５１０を生成することによって、グラフィカルモデル４００を構築する。なお、ベイジアンネットワークの構造学習アルゴリズムとしてＨｉｌｌ  Ｃｌｉｍｂｉｎｇ法等が知られている。本実施例は、どのような学習アルゴリズムを用いてもよい。【０１１８】
次に、計算機２００は、データ照合処理を実行する（ステップＳ１００５）。具体的には、グラフィカルモデル構築部２１０のサンプル数算出部２１２が、学習データ３００に含まれるレコードの中から、あるノード４１０を子ノードとした場合における、子ノードの状態値、及び親ノードの状態値の組み合わせと一致するレコードを抽出する。【０１１９】
次に、計算機２００は、サンプル数算出処理を実行する（ステップＳ１００６）。具体的には、グラフィカルモデル構築部２１０のサンプル数算出部２１２が、データ照合処理において抽出されたレコードの数をサンプル数として算出し、算出されたサンプル数を子ノードの状態値及び親ノードの状態値と対応付けて、メモリ２０２に一時的に格納する。【０１２０】
次に、計算機２００は、条件付確率テーブル６００の算出処理を実行する（ステップＳ１００７）。具体的には、以下のような処理が実行される。【０１２１】
グラフィカルモデル構築部２１０の確率テーブル算出部２１３が、処理対象のノード４１０を選択し、構造情報５００、５１０に基づいて、選択されたノード４１０に対する親ノードを特定し、条件付確率テーブル６００に子ノード及び親ノードの状態値の組み合わせの数だけレコードを生成する。さらに、確率テーブル算出部２１３は、生成されたレコードのサンプル数６０４に、ステップＳ１００６において算出されたサンプル数を格納する。【０１２２】
また、確率テーブル算出部２１３は、学習データ３００に含まれるレコードのうち、子ノード６０２の状態値が所定値になるレコードの割合を条件付確率値として算出する。さらに、確率テーブル算出部２１３は、算出された条件付確率値を条件付確率テーブル６００の所定のレコードの条件付確率６０３に格納する。【０１２３】
以上の処理によって、図５Ａ及び図５Ｂに示すような構造情報５００、５１０、並びに、図６に示すような条件付確率テーブル６００が生成される。すなわち、図４に示すようなグラフィカルモデル４００が構築される。【０１２４】
次に、推論結果を算出するための処理について図１を用いて説明する。図１は、実施例１の計算機２００の推論部２２０が実行する処理の一例を説明するフローチャートである。【０１２５】
推論部２２０は、処理の開始を指示される場合、以下で説明する処理を開始する。このとき、推論部２２０には、エビデンスデータ７００が入力される。なお、エビデンスデータ７００を用いた推論結果の算出方法は公知のものであるため、説明を省略する。ここでは、推論結果算出部２２１が、変数消去法等の厳密推論手法、又は、Ｌｏｏｐｙ  Ｂｅｌｉｅｆ  Ｐｒｏｐａｇａｔｉｏｎ等の近似推論法を用いて、推論結果が算出されているものとする。【０１２６】
推論部２２０は、推論対象を選択する（ステップＳ１０１）。具体的には、推論部２２０の確率値微分量算出部２２２が、入力装置２０４を介してユーザ等からノード４１０の識別情報を受け付け、当該ノード４１０を推論対象として設定する。【０１２７】
次に、推論部２２０は、処理対象となる条件付確率テーブル６００を選択する（ステップＳ１０２）。具体的には、以下のような処理が実行される。【０１２８】
推論部２２０の確率値微分量算出部２２２は、構造情報５００、５１０を参照して、推論対象を葉ノードとして、根ノードまでエッジ４２０に沿ってグラフィカルモデル４００を辿ることによって、推論対象と依存関係のある複数のノード４１０を抽出する。確率値微分量算出部２２２は、抽出された複数のノード４１０の各々に対応する条件付確率テーブル６００をデータベース２０６から読み出し、メモリ２０２に格納する。【０１２９】
確率値微分量算出部２２２は、抽出された複数のノード４１０の中から処理対象のノード４１０を一つ選択する。例えば、推論対象を子ノードとした場合の親ノード、さらにその親ノードの順に選択する方法が考えられる。なお、本実施例は、処理対象のノード４１０の選択方法に依存しない。以下、選択されたノード４１０を選択ノード４１０とも記載する。【０１３０】
確率値微分量算出部２２２は、メモリ２０２に格納された複数の条件付確率テーブル６００の中から、選択ノード４１０に対応する条件付確率テーブル６００を取得する。また、確率値微分量算出部２２２は、取得された条件付確率テーブル６００に基づいて、図９Ａ及び図９Ｂに示すような影響度管理情報９００を生成する。具体的には、親ノード及び子ノードの状態値の組み合わせに対して、推論対象が取り得る状態値毎にレコードを生成する。推論対象が「心臓病」の場合、状態値は二つであるため、条件付確率テーブル６００の一つのレコードに対して、二つのレコードが影響度管理情報９００に生成される。【０１３１】
確率値微分量算出部２２２は、生成されたレコードの親ノード９０１、子ノード９０２、条件付確率９０３、及びサンプル数９０４に、選択された条件付確率テーブル６００の親ノード６０１、子ノード６０２、条件付確率６０３、サンプル数６０４の値を格納し、また、推論対象に推論対象が取り得る状態値を格納する。この時点では、同時確率９０６、確率値微分量９０７、及び影響評価値９０８には値が格納されない。以上がステップＳ１０２の処理の説明である。【０１３２】
次に、推論部２２０は、関連確率変数を抽出する（ステップＳ１０３）。具体的には、推論部２２０の確率値微分量算出部２２２は、構造情報５００、５１０を参照して、選択ノード４１０を子ノードとして、選択ノード４１０と依存関係がある選択ノードの親ノード４１０の集合を家族ノード４１０として抽出する。さらに、推論部２２０は、推論対象、選択ノード４１０、及び抽出された家族ノード４１０を関連確率変数として抽出する。【０１３３】
次に、推論部２２０は、関連確率変数の同時確率分布を算出する（ステップＳ１０４）。具体的には、推論部２２０の確率値微分量算出部２２２が、推論対象、選択ノード４１０、及び抽出された家族ノード４１０の条件付確率テーブル６００を用いた、Ｌｏｏｐｙ  Ｂｅｌｉｅｆ  Ｐｒｏｐａｇａｔｉｏｎ等の近似推論法に基づいて、関連確率変数の同時確率分布を算出する。このとき、確率値微分量算出部２２２は、算出された同時確率分布に基づいて、親ノード、子ノード、及び推論対象９０５の状態値の組み合わせが一致するレコードの同時確率９０６に同時確率値を格納する。【０１３４】
次に、推論部２２０は、選択された条件付確率テーブル６００及び算出された同時確率分布を用いて、確率値微分量を算出する（ステップＳ１０５）。具体的には、以下のような処理が実行される。【０１３５】
推論部２２０の確率値微分量算出部２２２は、選択された条件付確率テーブル６００の親ノード６０１及び子ノード６０２の状態値を参照して、算出された同時確率分布における任意の状態値の組み合わせと一致するレコードを選択する。確率値微分量算出部２２２は、検索されたレコードの条件付確率９０３及び同時確率９０６の値を読み出す。【０１３６】
確率値微分量算出部２２２は、条件付確率９０３及び同時確率９０６の値を式（４）に代入することによって確率値微分量を算出する。確率値微分量算出部２２２は、選択されたレコードの確率値微分量９０７に算出された確率値微分量を格納する。以上がステップＳ１０５の処理の説明である。【０１３７】
次に、推論部２２０は、確率値微分量を用いて、選択ノード４１０の条件付確率値が推論結果の確率値に与える影響度の大きさを影響評価値として算出する（ステップＳ１０６）。【０１３８】
一般的に影響評価値は確率値微分量の関数として与えられ、また、様々な条件に応じて任意の関数として設定できる。本実施例では、確率値微分量そのものが影響評価値となるように定義する。なお、重み付き関数を用いて複数の確率値微分量の関数を平均化し、当該関数を影響評価値として用いてもよい。【０１３９】
ステップＳ１０６では、推論部２２０の確率値微分量算出部２２２が、所定のレコードの確率値微分量９０７の値を予め設定された関数に代入することによって影響評価値を算出し、当該レコードの影響評価値９０８に算出された影響評価値を格納する。【０１４０】
次に、推論部２２０は、読み出された全ての条件付確率テーブル６００について処理が完了したか否かを判定する（ステップＳ１０７）。【０１４１】
読み出された全ての条件付確率テーブル６００について処理が完了していないと判定された場合、推論部２２０は、ステップＳ１０２に戻り同様の処理を実行する。【０１４２】
読み出された全ての条件付確率テーブル６００について処理が完了していると判定された場合、推論部２２０は、サンプル数９０４及び影響評価値９０８に基づいて、推論結果の確率値の信頼区間を算出する（ステップＳ１０８）。例えば、下式（１５）のような公知の方法を用いて信頼区間を算出できる。なお、分散の２乗は、下式（１６）のように与えられる。【０１４３】
【数１５】
2016121053.tif 000017
【０１４４】
【数１６】
2016121053.tif 000018
【０１４５】
ここで、ノードＤ、ノードＤの親ノードであるノードＣ、ノードＣの親ノードであるノードＢ、ノードＢの親ノードであるノードＡという直列的なベイジアンネットワークを例に図１の処理の具体的な流れについて説明する。このとき、ノードＡの条件付確率テーブル６００は条件付確率Ｐ（Ａ）の分布、ノードＢの条件付確率テーブル６００は条件付確率Ｐ（Ｂ｜Ａ）の分布、ノードＣの条件付確率テーブル６００は条件付確率Ｐ（Ｃ｜Ｂ）の分布、ノードＤの条件付確率テーブル６００は条件付確率Ｐ（Ｄ｜Ｃ）の分布として与えられる。【０１４６】
ステップＳ１０１において、推論部２２０は、ノードＤを推論対象として選択する。ステップＳ１０２において、推論部２２０は、ノードＡ、ノードＢ、及びノードＣを推論対象と依存関係のあるノード４１０として抽出する。また、推論部２２０は、ノードＣを選択ノード４１０として選択する。【０１４７】
ステップＳ１０３において、推論部２２０は、ノードＢ及びノードＣを家族ノード４１０として抽出し、また、ノードＢ、ノードＣ、及びノードＤを関連確率変数として抽出する。ステップＳ１０４において、推論部２２０は、同時確率Ｐ（Ｂ，Ｃ，Ｄ）の分布を算出する。【０１４８】
ステップＳ１０５において、推論部２２０は、ノードＢ、ノードＣ、及びノードＤの状態値の組み合わせ毎に、同時確率Ｐ（Ｂ＝ｂ，Ｃ＝ｃ，Ｄ＝ｄ）を条件付確率Ｐ（Ｃ＝ｃ｜Ｂ＝ｂ）で除算して、確率微分量を算出する。ステップＳ１０６において、推論部２２０は、確率微分量を用いて影響評価値を算出する。これによって、ノードＣの条件付確率値がノードＤの確率値に与える影響の大きさを見積もることができる。【０１４９】
ステップＳ１０７において、推論部２２０は、全ての条件付確率テーブル６００について処理が完了していないと判定する。そのため、推論部２２０は、ステップＳ１０２に戻り、ノードＢを選択ノード４１０として選択する。ステップＳ１０３において、推論部２２０は、ノードＡ及びノードＢを家族ノードとして抽出し、また、ノードＡ、ノードＢ、及びノードＤを関連確率変数として抽出する。ステップＳ１０４において、推論部２２０は、同時確率Ｐ（Ａ，Ｂ，Ｄ）の分布を算出する。【０１５０】
ステップＳ１０５において、推論部２２０は、ノードＡ、ノードＢ、及びノードＤの状態値の組み合わせ毎に、同時確率Ｐ（Ａ＝ａ’，Ｂ＝ｂ’，Ｄ＝ｄ’）を条件付確率Ｐ（Ｂ＝ｂ’｜Ａ＝ａ’）で除算して、確率微分量を算出する。ステップＳ１０６において、推論部２２０は、確率微分量を用いて影響評価値を算出する。これによって、ノードＢの条件付確率値がノードＤの確率値に与える影響の大きさを見積もることができる。【０１５１】
ステップＳ１０７において、推論部２２０は、全ての条件付確率テーブル６００について処理が完了していないと判定する。そのため、推論部２２０は、ステップＳ１０２に戻り、ノードＡを選択ノード４１０として選択する。ステップＳ１０３において、推論部２２０は、ノードＡは根ノード４１０であるため親ノード４１０が存在しないため、ノードＡ及びノードＤを関連確率変数として抽出する。ステップＳ１０４において、推論部２２０は、同時確率Ｐ（Ａ，Ｄ）の分布を算出する。【０１５２】
ステップＳ１０５において、推論部２２０は、ノードＡ及びノードＤの状態値の組み合わせ毎に、同時確率Ｐ（Ａ＝ａ’’，Ｄ＝ｄ’’）を条件付確率Ｐ（Ａ＝ａ’’）で除算して、確率微分量を算出する。ステップＳ１０６において、推論部２２０は、確率微分量を用いて影響評価値を算出する。これによって、ノードＡの条件付確率値がノードＤの確率値に与える影響の大きさを見積もることができる。【０１５３】
ステップＳ１０７において、推論部２２０は、全ての条件付確率テーブル６００について処理が完了したと判定する。ステップＳ１０８において、推論部２２０は、算出された影響評価値を用いて推論結果の確率値の影響度を算出する。以上が、図１の処理の具体的な流れの説明である。【０１５４】
表示部２３０によって表示される情報の一例を図１１を用いて説明する。図１１は、実施例１の表示部２３０によって表示されるユーザインタフェース１１００の一例を示す説明図である。【０１５５】
ユーザインタフェース１１００は、推論結果表示領域１１１０、グラフィカルモデル表示領域１１２０、影響評価値ソートボタン１１３０、及びサンプル数ソートボタン１１４０を含む。【０１５６】
推論結果表示領域１１１０は、推論結果に関する各種情報を表示する領域である。図１１では、推論結果表示領域１１１０には、影響度管理情報９００及び推論結果管理情報８００が表示される。この場合、表示部２３０は、影響度記憶部２４５から影響度管理情報９００を取得し、また、推論結果記憶部２４４から推論結果管理情報８００を取得し、取得された各情報を表示領域に表示する。【０１５７】
グラフィカルモデル表示領域１１２０は、推論結果の算出に用いられたグラフィカルモデル４００を表示する領域である。表示部２３０は、モデル情報記憶部２４２からノード４１０の構造情報５００及びエッジ４２０の構造情報５１０を取得して、グラフィカルモデル４００の表示データを生成することによって表示領域にグラフィカルモデル４００を表示する。【０１５８】
影響評価値ソートボタン１１３０及びサンプル数ソートボタン１１４０は、影響度管理情報９００のレコードをソートするための操作ボタンである。影響評価値ソートボタン１１３０が操作された場合、表示部２３０は、影響評価値９０８の値が小さい順又は大きい順にレコードがソートされた影響度管理情報９００を表示する。また、サンプル数ソートボタン１１４０が操作された場合、表示部２３０は、サンプル数９０４の値が小さい順又は大きい順にレコードがソートされた影響度管理情報９００を表示する。【０１５９】
なお、ユーザインタフェース１１００の表示形式及び表示される情報は一例であってこれに限定されない。表示部２３０は、データベース２０６に格納される情報を用いて様々な表示形式で様々な情報を表示することができる。【０１６０】
実施例１によれば、計算機２００は、式（４）に示すような数式を用いて影響評価値を算出するための確率値微分量を算出する。同時確率分布は、近似推論手法に基づいて算出できるため、従来の式（２）によりも計算コストを小さくすることができる。そのため、規模が大きいグラフィカルモデルにおいても、影響評価値を算出できる。また、影響度評価値を用いて推論結果の確率値の信頼区間を算出することができる。信頼区間とともに推論結果を表示することによって、推論結果の信頼性及び説得力を向上させることができる。
【実施例２】
【０１６１】
実施例２では、影響評価値に基づいて補強データを追加することによって、グラフィカルモデルが再構築される。以下、実施例１との差異を中心に実施例２について説明する。【０１６２】
実施例２の計算機システムは実施例１のものと同一である。また、実施例２の計算機２００のハードウェア構成及びソフトウェア構成は実施例１のものと同一である。また、実施例２のデータベース２０６に格納される情報は、学習データ記憶部２４１によって管理される補強データが新たに格納される点が実施例１と異なる。その他の情報は実施例１と同一である。【０１６３】
実施例２では、推論結果及び推論結果の確率値の信頼区間が算出された後に以下のような処理が実行される。このとき、複数の補強データを含む補充データ情報が入力されているものとする。【０１６４】
図１２は、実施例２の計算機２００が実行するグラフィカルモデルの再構築処理を説明するフローチャートである。【０１６５】
計算機２００は、影響度管理情報９００を選択し（ステップＳ１２０１）、選択された影響度管理情報９００に対応する条件付確率テーブル６００のレコードを影響評価値９０８の値が大きい順にソートする（ステップＳ１２０２）。【０１６６】
次に、計算機２００は、影響評価値９０８の値が所定の閾値より大きいレコードを補強対象の条件付確率値として選択する（ステップＳ１２０３）。【０１６７】
次に、計算機２００は、選択された条件付確率値に対応するノード４１０の状態値の組み合わせに基づいて、補充データに含まれるレコードと照合を行い、使用可能なレコードを抽出する（ステップＳ１２０４）。例えば、計算機２００は、複数のノード４１０の状態値を状態値ベクトルとして、補充データの照合を行う。【０１６８】
次に、計算機２００は、補強データから抽出されたレコードを学習データ３００に追加することによって、学習データ３００を更新する（ステップＳ１２０５）。【０１６９】
計算機２００は、全ての影響度管理情報９００について処理が完了したか否かを判定する（ステップＳ１２０６）。【０１７０】
全ての影響度管理情報９００について処理が完了していないと判定された場合、計算機２００は、ステップＳ１２０１に戻り、同様の処理を実行する。【０１７１】
全ての影響度管理情報９００について処理が完了していると判定された場合、計算機２００は、更新された学習データ３００を用いてグラフィカルモデル４００の構築処理を実行する（ステップＳ１２０７）。なお、グラフィカルモデル４００の構築処理は図１０と同一の処理である。【０１７２】
ステップＳ１２０１からステップＳ１２０６までの処理は、推論部２２０が実行するものとする。なお、グラフィカルモデル構築部２１０、又はその他の機能部が実行してもよい。【０１７３】
実施例２によれば、影響評価値に基づいて、グラフィカルモデル４００を再構築することによって、推論結果の信頼区間を小さくすることができる。すなわち、信頼性の高い推論結果が算出可能なグラフィカルモデル４００を構築することができる。
【実施例３】
【０１７４】
実施例３では、影響評価値を用いて推論結果に対する任意のノード４１０の依存関係を再評価することによって、グラフィカルモデル４００をコンパクト化する。以下、実施例１との差異を中心に実施例３について説明する。【０１７５】
実施例３の計算機システムは実施例１のものと同一である。また、実施例３の計算機２００のハードウェア構成及びソフトウェア構成は実施例１のものと同一である。また、実施例３のデータベース２０６に格納される情報は実施例１のものと同一である。【０１７６】
実施例３では、推論結果及び推論結果の確率値の信頼区間が算出された後に以下のような処理が実行される。【０１７７】
図１３は、実施例３の計算機２００が実行するグラフィカルモデルの再構築処理を説明するフローチャートである。【０１７８】
計算機２００は、各影響度管理情報９００を用いて、対応するノード４１０の総影響評価値を算出する（ステップＳ１３０１）。【０１７９】
例えば、計算機２００は、選択された影響度管理情報９００の全てのレコードの影響評価値９０８の重み付き平均を、ノードの４１０の総影響評価値として算出する。条件付確率値の影響評価値は、推論対象の状態値ごとに存在するため、算出されたノード４１０の総影響評価値も推論対象の状態値ごとに存在する。一つのノード４１０について、推論対象の全ての状態値に対する影響評価値９０８の重み付き平均を算出することによって、推論対象に対する当該ノード４１０の影響評価値として見積もることができる。【０１８０】
なお、前述したノード４１０の総影響評価値は一例であって他の算出方法を用いてもよい。【０１８１】
次に、計算機２００は、算出されたノード４１０の総影響評価値に基づいて、推論対象と依存関係のある複数のノード４１０の中から重要ノード４１０を選択する（ステップＳ１３０２）。【０１８２】
例えば、計算機２００は、予め設定された閾値に基づいて、ノード４１０の総影響評価値が当該閾値より大きいノード４１０を重要ノード４１０として選択する。なお、閾値は、計算機２００の計算機リソース量及び計算時間等に基づいて設定することができる。【０１８３】
計算機２００は、再度、グラフィカルモデル４００の構築処理を実行する（ステップＳ１３０３）。ステップＳ１３０３の処理は、図１０とほぼ同一であるが、ステップＳ１００３において、選択された重要ノード４１０のみが依存関係を有するノード４１０の情報とし入力される点が異なる。その他の処理は、図１０と同一の処理である。【０１８４】
ステップＳ１３０１、ステップＳ１３０２の処理は、推論部２２０が実行するものとする。なお、グラフィカルモデル構築部２１０、又はその他の機能部が実行してもよい。【０１８５】
前述した処理を繰り返し実行することによって、グラフィカルモデルをコンパクト化することも可能である。【０１８６】
実施例３によれば、影響評価値に基づいて、グラフィカルモデルをコンパクト化することができる。
【実施例４】
【０１８７】
実施例４では、影響評価値及びサンプル数を用いて学習データの離散化粒度を修正することによって、グラフィカルモデル４００を再構築する。ここで、離散化粒度とは、連続である数値の幅の大きさを示す。【０１８８】
例えば、連続する実数について、整数値のみを扱う離散化は、小数点第１までの数値を扱う離散化より粒度が大きい。より具体的な医療データを考えた場合、血圧値は連続値となり、その値が「６０」から「２００」まで広い範囲に分布する。実施例１でも述べたように、グラフィカルモデルを構築するときに、ノード４１０の状態値を有限にする必要ある場合がある。このとき、血糖値を、「８０以下」、「８０から１００」、「１００から１２０」、「１２０以上」の四つに離散化する方法が考えられる。【０１８９】
離散化の幅はグラフィカルモデルの予測性能に影響する。すなわち、離散化した場合、推論結果は本来の連続値の近似値となるため、離散化の幅を細かくすれば、離散化による誤差が小さくなる。一方、離散化の幅が細かいと、ノードの状態値に一致する学習データの数が少なくなる。そのため、条件付確率テーブル６００における条件付確率値の信頼性が低くなり、結果として推論結果の信頼性及び精度の低下をまねく。したがって、適切な離散化の幅を設定する必要がある。【０１９０】
以下、実施例１との差異を中心に実施例４について説明する。【０１９１】
実施例４の計算機システムは実施例１のものと同一である。また、実施例４の計算機２００のハードウェア構成及びソフトウェア構成は実施例１のものと同一である。また、実施例４のデータベース２０６に格納される情報は実施例１のものと同一である。【０１９２】
実施例４では、推論結果及び推論結果の確率値の信頼区間が算出された後に以下のような処理が実行される。【０１９３】
図１４は、実施例４の計算機２００が実行するグラフィカルモデルの再構築処理を説明するフローチャートである。【０１９４】
計算機２００は、影響度管理情報９００が存在するノード４１０の中から状態値が離散化されたノード４１０を一つ選択する（ステップＳ１４０１）。例えば、グラフィカルモデル４００の構築時に、予め、状態値が離散化されたノード４１０にフラグ等を付与しておくことが考えられる。【０１９５】
次に、計算機２００は、影響度管理情報９００に基づいて、選択されたノード４１０の離散化の粒度を決定する（ステップＳ１４０２）。離散化の粒度の決定方法は例えば、以下のような四つの方法が考えられる。【０１９６】
（１）サンプル数９０４の値が全てのレコードについて同一又は誤差が小さくなるように離散化の粒度を決定する。【０１９７】
（２）各レコードの影響評価値９０８とサンプル数９０４との積又は重み付き平均値が同一又は誤差が小さくなるように離散化の粒度を決定する。【０１９８】
（３）影響評価値９０８が所定の閾値以上であるレコードの数が、影響評価値９０８が当該所定の閾値より小さいレコードの数の半分となるように離散化の粒度を決定する。【０１９９】
（４）影響評価値９０８に基づいて状態値の幅を所定数に分類することによって離散化の粒度を決定する。【０２００】
なお、前述した離散化の粒度の決定方法は一例であって、影響度管理情報９００を用いたものであればどのような方法であってもよい。【０２０１】
次に、計算機２００は、状態値が離散化された全てのノード４１０について処理が完了したか否かを判定する（ステップＳ１４０３）。【０２０２】
状態値が離散化された全てのノード４１０について処理が完了していないと判定された場合、計算機２００は、ステップＳ１４０１に戻り同様の処理を実行する。【０２０３】
状態値が離散化された全てのノード４１０について処理が完了したと判定された場合、計算機２００は、再度、グラフィカルモデル４００の構築処理を実行する（ステップＳ１４０４）。このとき、ステップＳ１００２において、決定された離散化の粒度に基づいて学習データの離散化処理が実行される。その他の処理は、図１０と同一の処理である。【０２０４】
ステップＳ１４０１からステップＳ１４０３までの処理は、推論部２２０が実行するものとする。なお、グラフィカルモデル構築部２１０、又はその他の機能部が実行してもよい。【０２０５】
前述した処理を繰り返し実行することによって、適切な離散化の粒度を決定できる。【０２０６】
実施例４によれば、影響評価値及びサンプル数等に基づいて離散化の粒度を調整することによって、信頼度の高い推論結果が算出可能なグラフィカルモデル４００を構築することができる。【０２０７】
なお、本発明は上記した実施例に限定されるものではなく、様々な変形例が含まれる。また、例えば、上記した実施例は本発明を分かりやすく説明するために構成を詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、各実施例の構成の一部について、他の構成に追加、削除、置換することが可能である。【０２０８】
また、上記の各構成、機能、処理部、処理手段等は、それらの一部又は全部を、例えば集積回路で設計する等によりハードウェアで実現してもよい。また、本発明は、実施例の機能を実現するソフトウェアのプログラムコードによっても実現できる。この場合、プログラムコードを記録した記憶媒体をコンピュータに提供し、そのコンピュータが備えるＣＰＵが記憶媒体に格納されたプログラムコードを読み出す。この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施例の機能を実現することになり、そのプログラムコード自体、及びそれを記憶した記憶媒体は本発明を構成することになる。このようなプログラムコードを供給するための記憶媒体としては、例えば、フレキシブルディスク、ＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ、ハードディスク、ＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）、光ディスク、光磁気ディスク、ＣＤ−Ｒ、磁気テープ、不揮発性のメモリカード、ＲＯＭなどが用いられる。【０２０９】
また、本実施例に記載の機能を実現するプログラムコードは、例えば、アセンブラ、Ｃ／Ｃ＋＋、ｐｅｒｌ、Ｓｈｅｌｌ、ＰＨＰ、Ｊａｖａ等の広範囲のプログラム又はスクリプト言語で実装できる。【０２１０】
さらに、実施例の機能を実現するソフトウェアのプログラムコードを、ネットワークを介して配信することによって、それをコンピュータのハードディスクやメモリ等の記憶手段又はＣＤ−ＲＷ、ＣＤ−Ｒ等の記憶媒体に格納し、コンピュータが備えるＣＰＵが当該記憶手段や当該記憶媒体に格納されたプログラムコードを読み出して実行するようにしてもよい。【０２１１】
上述の実施例において、制御線や情報線は、説明上必要と考えられるものを示しており、製品上必ずしも全ての制御線や情報線を示しているとは限らない。全ての構成が相互に接続されていてもよい。
【図１】
2016121053.tif 000021
【図２】
2016121053.tif 000022
【図３】
2016121053.tif 000023
【図４】
2016121053.tif 000024
【図５Ａ】
2016121053.tif 000025
【図５Ｂ】
2016121053.tif 000026
【図６】
2016121053.tif 000027
【図７】
2016121053.tif 000028
【図８】
2016121053.tif 000029
【図９Ａ】
2016121053.tif 000030
【図９Ｂ】
2016121053.tif 000031
【図１０】
2016121053.tif 000032
【図１１】
2016121053.tif 000033
【図１２】
2016121053.tif 000034
【図１３】
2016121053.tif 000035
【図１４】
2016121053.tif 000036
【国際調査報告】
2016121053.tif 000037
2016121053.tif 000038