(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2022154457
(43)【公開日】2022-10-13
(54)【発明の名称】因果推論モデル構築プログラム、因果推論モデル構築方法および情報処理装置
(51)【国際特許分類】
G06N 7/00 20060101AFI20221005BHJP
【FI】
G06N7/00 150
【審査請求】未請求
【請求項の数】6
【出願形態】OL
(21)【出願番号】P 2021057508
(22)【出願日】2021-03-30
(71)【出願人】
【識別番号】000005223
【氏名又は名称】富士通株式会社
(74)【代理人】
【識別番号】110002147
【氏名又は名称】弁理士法人酒井国際特許事務所
(72)【発明者】
【氏名】重住 淳一
(72)【発明者】
【氏名】瀬川 英吾
(57)【要約】
【課題】より説明性や安定性の高いモデルを構築すること。
【解決手段】情報処理装置は、因果推論モデルに含まれる複数のノードにそれぞれ対応する複数のセンサから取得したセンサデータを基にして、因果推論モデルの複数のノードを方向付きのエッジで接続する場合に、ノード間の既知の因果関係を持つ組のデータを取得する。情報処理装置は、ノード間の既知の因果関係を持つ組に対して、該因果関係とは逆の因果関係を含まないことを制約とし、かつ、既知の因果関係を持つ組が、共通の原因または結果を持つ場合には、既知の因果関係を持つ組に対して、制約を設けないという制約リストに基づいて、因果推論モデルの構造を構築する。
【選択図】
図4
【特許請求の範囲】
【請求項1】
コンピュータに、
因果推論モデルに含まれる複数のノードにそれぞれ対応する複数のセンサから取得したセンサデータを基にして、前記因果推論モデルの複数のノードを方向付きのエッジで接続する場合に、
ノード間の既知の因果関係を持つ組のデータを取得し、
前記ノード間の既知の因果関係を持つ組に対して、該因果関係とは逆の因果関係を含まないことを制約とし、かつ、前記既知の因果関係を持つ組が、共通の原因または結果を持つ場合には、前記既知の因果関係を持つ組に対して、前記制約を設けないという制約リストに基づいて、前記因果推論モデルの構造を構築する
処理を実行させることを特徴とする因果推論モデル構築プログラム。
【請求項2】
前記因果推論モデルに含まれるノードの組のうち、第1ノードが原因で、第2ノードが結果となる既知の因果関係が前記データに含まれる場合、前記第2ノードから、前記第1ノードの方向に向かうエッジによって、前記第1ノードと前記第2ノードとを接続しないという制約を前記制約リストに追加する処理を更に実行し、前記構築する処理は、前記制約リストを基にして、前記因果推論モデルの構造を構築することを特徴とする請求項1に記載の因果推論モデル構築プログラム。
【請求項3】
前記第1ノードおよび前記第2ノードと共通の因果関係を有する第3ノードが前記データに含まれる場合には、前記第2ノードから、前記第1ノードの方向に向かうエッジによって、前記第1ノードと前記第2ノードとを接続しないという制約を前記制約リストに追加することを抑止する処理を更に実行することを特徴とする請求項2に記載の因果推論モデル構築プログラム。
【請求項4】
前記既知の因果関係を持つ組には優先度が設定され、前記制約を前記制約リストに追加する処理は、前記優先度を基にして、前記制約を前記制約リストに追加することを特徴とする請求項2または3に記載の因果推論モデル構築プログラム。
【請求項5】
コンピュータが実行する因果推論モデル構築方法であって、
因果推論モデルに含まれる複数のノードにそれぞれ対応する複数のセンサから取得したセンサデータを基にして、前記因果推論モデルの複数のノードを方向付きのエッジで接続する場合に、
ノード間の既知の因果関係を持つ組のデータを取得し、
前記ノード間の既知の因果関係を持つ組に対して、該因果関係とは逆の因果関係を含まないことを制約とし、かつ、前記既知の因果関係を持つ組が、共通の原因または結果を持つ場合には、前記既知の因果関係を持つ組に対して、前記制約を設けないという制約リストに基づいて、前記因果推論モデルの構造を構築する
処理を実行することを特徴とする因果推論モデル構築方法。
【請求項6】
因果推論モデルに含まれる複数のノードにそれぞれ対応する複数のセンサから取得したセンサデータを基にして、前記因果推論モデルの複数のノードを方向付きのエッジで接続する場合に、ノード間の既知の因果関係を持つ組のデータを取得する取得部と、
前記ノード間の既知の因果関係を持つ組に対して、該因果関係とは逆の因果関係を含まないことを制約とし、かつ、前記既知の因果関係を持つ組が、共通の原因または結果を持つ場合には、前記既知の因果関係を持つ組に対して、前記制約を設けないという制約リストに基づいて、前記因果推論モデルの構造を構築する構造学習部と
を有することを特徴とする情報処理装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、因果推論モデル構築プログラム等に関する。
【背景技術】
【0002】
故障原因の推定、AI(Artificial Intelligence)の判定結果の説明等において、因果推論モデルが利用される。
図22は、因果推論モデルの一例を示す図である。因果推論モデルは、原因と結果を方向付きのエッジで表したモデルである。
図22では、原因、結果に対応するノードS1,S2,S3,S4,S5,S6,S7,S8,S9が含まれる。エッジの始点に対応するノードが原因に対応するノードとなり、エッジの終点に対応するノードが結果に対応するノードとなる。
【0003】
ノードS7と、ノードS3とに着目すると、ノードS7が原因に対応し、ノードS3が結果に対応する。すなわち、ノードS7,S3の組には、ノードS7からノードS3の方向に、因果関係が存在する。
【0004】
因果推論モデルの学習には、構造の学習と、確率パラメータの学習とが含まれる。たとえば、因果推論モデルの構造を学習する従来技術として、従来技術1、2、3について説明する。
【0005】
従来技術1では、データの相関を基にして、所定のアルゴリズムを用いて、自動的に因果推論モデルの構造を学習する。しかし、従来技術1では、データが少ない場合に、データの取得状況の少しの差によって、学習される構造が大きく変わってしまう。
図23は、従来技術1の問題を説明するための図である。
図23に示す例では、データの取得状況の差により、複数の構造Str1,Str2,Str3が学習される。
【0006】
従来技術2では、機器の接続等、事前に知られている因果関係(専門知識)を基にネットワークを構築する。この従来技術2では、専門知識としてネットワーク全体の情報が事前にわかっていることが前提となっており、ネットワーク全体の情報がわかっていない場合には、ネットワーク(因果推論モデルに相当するネットワーク)を構築することが難しい。
【0007】
従来技術3は、専門家が抽出した因果関係(専門知識)を用いて、データから因果推論モデルの構造を学習する。従来技術3では、K2アルゴリズム等を利用する。
【先行技術文献】
【特許文献】
【0008】
【特許文献1】米国特許第10706104号明細書
【特許文献2】米国特許出願公開第2019/0102688号明細書
【特許文献3】特開2016-122332号公報
【発明の概要】
【発明が解決しようとする課題】
【0009】
上記の従来技術3では、専門知識と、データとを用いて因果推論モデルを構築しているが、専門知識をそのまま用いると、説明性や安定性の低い因果推論モデルが生成される場合がある。
【0010】
図24は、従来技術3の問題を説明するための図(1)である。
図24の因果推論モデルM1-1は、専門知識のみで構築したモデルである。因果推論モデルM1-2は、理想的なモデルである。因果推論モデルM1-1,M1-2に含まれるノードS1,S2,S3,S4,S5,S6,S7,S8,S9は、各種の値(データ)を計測するセンサに対応するものとする。
【0011】
たとえば、相互情報量を指標として、説明性の定量評価を行うと、因果推論モデルM1-1の説明性はグラフG1-1に示され、因果推論モデルM1-2の説明性はグラフG1-2に示される。定量評価として、式(1)を用いる。式(1)のXi,Xjは、比較対象のノードに対応する確率変数となり、xi,xjは、ノードに対応するセンサが計測するデータが入力される。
【0012】
【0013】
グラフG1-1,1-2の横軸には、各ノードの識別情報が設定される。グラフG1-1,1-2の縦軸は、説明性(相互情報量)に対応する軸である。相互情報量が高いほど、不確実の影響が小さく、合理的に説明できることを意味する。グラフG1-1,1-2では、ノードS9と、他のノードS1~S8との相互情報量を示す。
【0014】
グラフG1-1では、ノードS9と、他のノードS1~S8との相互情報量がほぼ0に近い値を取り、説明性が極めて低いことがわかる。一方、グラフG1-2では、ノードS9とノードS1との組、ノードS9とノードS3との組において、相互情報量が高くなっている。
【0015】
図25は、従来技術3の問題を説明するための図(2)である。因果推論モデルM1-1と、因果推論モデルM1-2とを比較すると、因果推論モデルM1-1は、ノード間の依存関係の情報が欠けていることがわかる。
【0016】
たとえば、因果推論モデルM1-1では、ノードS1を終点とするエッジが存在しないが、因果推論モデルM1-2では、ノードS1は、ノードS2,S3,S5を始点とするエッジに接続されている。また、因果推論モデルM1-1のノードS3と、因果推論モデルM1-2のノードS3とを比較すると、因果推論モデルM1-2のノードS3では、因果推論モデルM1-1のノードS3の接続関係に加えて、ノードS4とノードS1との接続関係に関する情報が追加されている。
【0017】
図25のように、因果推論モデルM1-1は、因果推論モデルM1-2と比較して、ノード間の依存関係の情報が欠けているため、多重共線性等の問題が発生し、
図24で説明したように、それぞれのノード(属性)の説明性が低下する。
【0018】
1つの側面では、本発明は、より説明性や安定性の高いモデルを構築することができる因果推論モデル構築プログラム、因果推論モデル構築方法および情報処理装置を提供することを目的とする。
【課題を解決するための手段】
【0019】
第1の案では、コンピュータに次の処理を実行させる。コンピュータは、因果推論モデルに含まれる複数のノードにそれぞれ対応する複数のセンサから取得したセンサデータを基にして、因果推論モデルの複数のノードを方向付きのエッジで接続する場合に、ノード間の既知の因果関係を持つ組のデータを取得する。コンピュータは、ノード間の既知の因果関係を持つ組に対して、該因果関係とは逆の因果関係を含まないことを制約とし、かつ、既知の因果関係を持つ組が、共通の原因または結果を持つ場合には、既知の因果関係を持つ組に対して、制約を設けないという制約リストに基づいて、因果推論モデルの構造を構築する。
【発明の効果】
【0020】
より説明性や安定性の高いモデルを構築することができる。
【図面の簡単な説明】
【0021】
【
図1】
図1は、問題の専門知識の欠損に関する特徴を説明するための図である。
【
図2】
図2は、情報処理装置の処理を説明するための図(1)である。
【
図3】
図3は、情報処理装置の処理を説明するための図(2)である。
【
図4】
図4は、制約の根拠を説明するための図(1)である。
【
図5】
図5は、制約の根拠を説明するための図(2)である。
【
図6】
図6は、本実施例に係る情報処理装置の構成を示す機能ブロック図である。
【
図7】
図7は、センサデータのデータ構造の一例を示す図である。
【
図8】
図8は、因果関係データのデータ構造の一例を示す図である。
【
図9】
図9は、制約リストのデータ構造の一例を示す図である。
【
図10】
図10は、モデル構造データのデータ構造の一例を示す図である。
【
図11】
図11は、制約抽出部の処理手順を示すフローチャートである。
【
図12】
図12は、制約抽出部の処理を説明するための図である。
【
図13】
図13は、構造学習部の処理手順を示すフローチャートである。
【
図14】
図14は、構造学習部の処理を説明するための図(1)である。
【
図15】
図15は、構造学習部の処理を説明するための図(2)である。
【
図16】
図16は、構造学習部の処理を説明するための図(3)である。
【
図17】
図17は、本実施例に係る情報処理装置の処理手順を示すフローチャートである。
【
図18】
図18は、本実施例に係る情報処理装置の効果を説明する図(1)である。
【
図19】
図19は、本実施例に係る情報処理装置の効果を説明する図(2)である。
【
図20】
図20は、本実施例に係る情報処理装置の効果を説明する図(3)である。
【
図21】
図21は、実施例の情報処理装置と同様の機能を実現するコンピュータのハードウェア構成の一例を示す図である。
【
図23】
図23は、従来技術1の問題を説明するための図である。
【
図24】
図24は、従来技術3の問題を説明するための図(1)である。
【
図25】
図25は、従来技術3の問題を説明するための図(2)である。
【発明を実施するための形態】
【0022】
以下に、本願の開示する因果推論モデル構築プログラム、因果推論モデル構築方法および情報処理装置の実施例を図面に基づいて詳細に説明する。なお、この実施例によりこの発明が限定されるものではない。
【実施例0023】
本実施例の説明を行う前に、まず、問題の専門知識の欠損に関する特徴(1)、特徴(2)について説明する。
【0024】
図1は、問題の専門知識の欠損に関する特徴を説明するための図である。
図1では、因果推論モデルM1-1,M1-2を示す。因果推論モデルM1-1は、専門知識のみで構築したモデルである。因果推論モデルM1-2は、理想的なモデルである。
【0025】
図1に示すように、因果推論モデルM1-1は、ノードS1,S2,S3,S4,S5,S6,S7,S8,S9が含まれ、因果関係によって、各ノードがエッジ(方向を有するエッジ)で接続されている。たとえば、ノードS7およびノードS3はエッジで接続され、エッジの方向は、ノードS3の方向となる。ノードS1~S7は、センサに対応するノードである。
【0026】
因果推論モデルM1-2についても同様に、ノードS1~S9が含まれ、因果関係によって、エッジで接続されている。
【0027】
本実施例の説明では、ノードSnと、ノードSmとがエッジで接続され、エッジの向きがノードSnからノードSmに向かっている場合には、「ノードSn→ノードSm」と表記する。
【0028】
因果推論モデルM1-1と、因果推論モデルM1-2とを比較すると、因果関係の基本的な構造(上段→中断→下段)は同じであるという特徴(1)がある。たとえば、因果推論モデルM1-1の「ノードS4→ノードS9」の部分が、因果推論モデルM1-2では「ノードS4→ノードS3→ノードS9」となっている。因果推論モデルM1-1の「ノードS4→ノードS9」と比較すると、因果推論モデルM1-2の「ノードS4→ノードS3→ノードS9」は、間に別の要素が入っているだけで、方向は変わらず「信頼できる」といえる。
【0029】
ただし、特徴(2)として、共通のノード(要素)を結果に持つ場合には、エッジの方向が逆になる場合がある。たとえば、因果推論モデルM1-1では、「ノードS1→ノードS9」と、「ノードS5→ノードS9」、「ノードS1→ノードS5」が存在し、ノードS1,S5が、共通のノードS9を「結果」として持っている。また、因果推論モデルM1-2では、「ノードS5→ノードS1」が存在している。因果推論モデルM1-1と、因果推論モデルM1-2とを比較すると、ノードS1と、ノードS5との間のエッジの方向が逆になっている。
【0030】
共通のノード(要素)を結果に持つ場合には、相関が高く、かかる要素を因果関係と同様に扱ったり、誤って因果関係を逆に捉えてしまったりすることがあり「信頼できない」といえる。
【0031】
続いて、本実施例に係る情報処理装置の処理の一例について説明する。情報処理装置は、事前に専門知識を得る。この専門知識は、専門家等が作成したノード間の既知の因果関係を持つ組のデータである。情報処理装置は、専門知識から、信頼できる部分だけを抽出し、制約として加えることで、センサデータから、因果推論モデルを構築する。
【0032】
情報処理装置は、以下の
図2、
図3で説明するようにして、制約を制約リストに加える。
図2は、情報処理装置の処理を説明するための図(1)である。
図2に示す例では、専門知識として、「ノードSn→ノードSm」が抽出されている場合、その逆のエッジ「ノードSm→ノードSn」が張られないことを制約とする。
【0033】
図3は、情報処理装置の処理を説明するための図(2)である。
図3に示す例では、専門知識として「ノードSn→ノードSm」が含まれているが、ノードSnおよびノードSmは、共通のノードSl(結果)を有している。このため、「ノードSn→ノードSm」は信頼できず、情報処理装置は、「ノードSm→ノードSn」の制約を設けることを抑止する。
【0034】
ここで、
図2で追加した制約の根拠について説明する。
図4は、制約の根拠を説明するための図(1)である。直接的な因果関係を持つとされている場合でも、間に入る他の要因が漏れている可能性があり、学習に用いることで失敗することがある。しかし、逆の関係が存在しないことは確実なので、制約に入れても問題はない。
【0035】
図4に示すように、専門知識として、「ノードSn→ノードSm」が抽出されている。この場合、他の可能性として、「ノードSn→ノードSl→ノードSm」が存在し得る。しかし、その逆のエッジ「ノードSm→ノードSn」が張られないことは確実であり、「ノードSm→ノードSn」を制約に入れても問題はない。また、この制約によって、逆の方向の因果を制限でき、一定の効果が期待できる。
【0036】
続いて、
図3で追加しなかった制約の根拠について説明する。
図5は、制約の根拠を説明するための図(2)である。共通の要素を因果における原因または結果として持つ組については、相関が高く、それを因果関係と同様に扱ったり、誤って因果を逆に捉えてしまったりすることが少なく、信頼性が低い。
【0037】
図5に示す例では、専門知識として「ノードSn→ノードSm」が含まれているが、ノードSnおよびノードSmは、共通のノードSl(結果)を有している。このため、「ノードSn→ノードSm」の信頼性は低くなる。このため、「ノードSn→ノードSm」は信頼できず、情報処理装置は、「ノードSm→ノードSn」の制約から除外する。
【0038】
次に、本実施例に係る情報処理装置の構成の一例について説明する。
図6は、本実施例に係る情報処理装置の構成を示す機能ブロック図である。
図6に示すように、この情報処理装置100は、通信部110、入力部120、表示部130、記憶部140、制御部150を有する。
【0039】
通信部110は、ネットワークを介して、外部装置との間で情報の送受信を行う。たとえば、通信部110は、NIC(Network Interface Card)等によって実現される。通信部110は、外部装置から、後述するセンサデータ141等を取得してもよい。
【0040】
入力部120は、各種の情報を、入力する入力装置である。入力部120は、キーボードやマウス、タッチパネル等に対応する。
【0041】
表示部130は、制御部150から出力される情報を表示する表示装置である。表示部130は、液晶ディスプレイ、有機EL(Electro Luminescence)ディスプレイ、タッチパネル等に対応する。
【0042】
記憶部140は、センサデータ141、因果関係データ142、制約リスト143、モデル構造データ144、モデルデータ145を有する。記憶部140は、たとえば、RAM(Random Access Memory)、フラッシュメモリ(Flash Memory)等の半導体メモリ素子、または、ハードディスク、光ディスク等の記憶装置によって実現される。
【0043】
センサデータ141は、複数のセンサが計測したデータを含む。
図7は、センサデータのデータ構造の一例を示す図である。
図7に示すように、このセンサデータ141は、センサ識別情報と、計測結果とを有する。識別情報は、センサを一意に識別する情報である。識別情報は、ノードを識別する情報でもある。たとえば、識別情報「S1」は、センサS1を識別し、ノードS1に対応する。計測結果は、各センサの計測結果に対応する。センサは、複数回の計測を行い、実施された計測毎に値が登録される。
【0044】
因果関係データ142は、既知の専門知識のデータである。
図8は、因果関係データのデータ構造の一例を示す図である。
図8に示すように、因果関係データ142は、原因と、結果とを対応付ける。原因には、因果関係にあるノード(センサ)の組のうち、原因のノードの識別情報が設定される。結果には、因果関係にあるノード(センサ)の組のうち、結果のノードの識別情報が設定される。
【0045】
たとえば、
図8において、因果関係データ142の1行目では、原因「S1」、結果「S5」が設定されており、専門知識「ノードS1→ノードS5」が示される。
図8の因果関係データ142に対応するモデルは、モデルM142となる。
【0046】
制約リスト143は、複数の制約の情報を有する。
図9は、制約リストのデータ構造の一例を示す図である。
図9に示すように、制約リスト143は、始点と終点とを対応付ける。始点および終点には、ノードの識別情報が設定され、始点および終点によって、制約を示す。
【0047】
たとえば、
図9において、制約リスト143の1行目では、始点「S2」、終点「S6」が設定されており、制約「ノードS1→ノードS6」が示される。これは、ノードS1とノードS6とが因果関係を有しており、エッジで接続される場合に、ノードS1からノードS6の方向を、エッジの方向とすることを抑止する制約である。制約リスト143を視覚的に示したモデルは、モデルM143となる。
【0048】
モデル構造データ144は、後述する処理によって学習される因果推論モデルの構造の情報である。
図10は、モデル構造データのデータ構造の一例を示す図である。
図10に示すように、モデル構造データ144は、原因と、結果とを対応付ける。原因には、因果関係にあるノード(センサ)の組のうち、原因のノードの識別情報が設定される。結果には、因果関係にあるノード(センサ)の組のうち、結果のノードの識別情報が設定される。
【0049】
たとえば、
図10において、因果関係データ142の1行目では、原因「S1」、結果「S9」が設定されており、構造の一部分「ノードS1→ノードS9」が示される。
図8の因果関係データ142に対応するモデルは、モデルM144となる。
【0050】
因果推論モデル145は、モデル構造データ144に確率パラメータを設定したデータである。
【0051】
図6の説明に戻る。制御部150は、取得部151と、制約抽出部152と、構造学習部153、パラメータ学習部154とを有する。制御部150は、たとえば、CPU(Central Processing Unit)やMPU(Micro Processing Unit)により実現される。また、制御部150は、例えばASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)等の集積回路により実行されてもよい。
【0052】
取得部151は、通信部110を介して、センサデータ141、因果関係データ142を取得する。取得部151は、取得したセンサデータ141、因果関係データ142を、記憶部140に記憶させる。取得部151は、センサデータ141、因果関係データ142を、入力部120から取得してもよい。
【0053】
制約抽出部152は、因果関係データ142を基にして制約を抽出し、抽出した制約を制約リスト143に追加する。制約抽出部152は、因果関係データ142から、因果関係を有する組(因果組)を一つ選択する。制約抽出部152は、選択した因果組に含まれるノードに関して、共通する原因、または、結果が存在しない場合に、選択した因果組の原因と結果との関係を入れ替えた制約を生成し、制約リスト143に登録する。
【0054】
一方、制約抽出部152は、選択した因果組に含まれるノードに関して、共通する原因、または、結果が存在する場合に、選択した因果組を基にして制約を生成することを抑止する。
【0055】
図11は、制約抽出部の処理手順を示すフローチャートである。
図11に示すように、制約抽出部152は、全ての因果組をチェックしたか否かを判定する(ステップS101)。制約抽出部152は、全ての因果組をチェックした場合には(ステップS101,Yes)、処理を終了する。
【0056】
一方、制約抽出部152は、全ての因果組をチェックしていない場合には(ステップS101,No)、因果組を一つ選択する(ステップS102)。説明の便宜上、原因のノードが「A」、結果のノードが「B」となる因果組を(A,B)と表記する。
【0057】
制約抽出部152は、全てのノードをチェックしたか否かを判定する(ステップS103)。制約抽出部152は、全てのノードをチェックした場合には(ステップS103,Yes)、制約(B,A)を制約リスト143に追加し(ステップS104)、ステップS101に移行する。
【0058】
一方、制約抽出部152は、全てのノードをチェックしていない場合には(ステップS103,No)、未選択のノードを選択する(ステップS105)。説明の便宜上、選択したノードを、ノードCとする。
【0059】
制約抽出部152は、因果関係データ142を基にして、組(A,C)と(B,C)との両方を因果組として持つという条件を満たすか否かを判定する(ステップS106)。制約抽出部152は、因果関係データ142を基にして、組(C,A)と(C,B)との両方を因果組として持つという条件を満たすか否かを判定する(ステップS107)。
【0060】
制約抽出部152は、ステップS106,S107のどちらかの条件を満たす場合には(ステップSS108,Yes)、ステップS101に移行する。制約抽出部152は、ステップS106,S107のどちらの条件も満たさない場合には(ステップS108,No)、ステップS103に移行する。
【0061】
続いて、制約抽出部152の処理の一例について説明する。
図12は、制約抽出部の処理を説明するための図である。制約抽出部152は、因果組として「原因=S1」、「結果=S5」を選択した場合について説明する。因果組(A=S1,B=S5)の場合、CがS9となった場合に、組(S1,S9)と、組(S5,S9)との両方を因果組として持つ。この場合には、制約抽出部152は、因果組(A=S1,B=S5)に基づく制約を、制約リスト143に追加しない。
【0062】
制約抽出部152は、因果組として「原因=S1」、「結果=S9」を選択した場合について説明する。因果組(A=S1,B=S9)の場合、
図11のステップS106、S107で示した条件を満たすCは、存在しない。この場合、制約抽出部152は、制約(S9,S1)を生成し、生成した制約を、制約リスト143に追加する。
【0063】
制約抽出部152は、上記の処理を繰り返し実行することで、制約リスト143を生成する。
【0064】
図6の説明に戻る。構造学習部153は、センサデータ141と、因果関係データ142と、制約リスト143を基にして、因果推論モデルの構造を生成(構造学習)する。構造学習部153は、制限付きの構造学習に関するアルゴリズムとして、従来技術(Schreiber, J. M. and Noble, W. S., Finding the optimal Bayesian network given a constraint graph, PeerJ Comput. Sci., 3 (2017), e122.)等に記載されたアルゴリズム(動的計画法)を用いればよい。
【0065】
ここでは、説明の便宜上、動的計画法の代わりに、貪欲法を用いて、モデル構造データ144を生成する場合について説明する。貪欲法では、最長記述長(MDL:Minimum Description Length)を用いる。たとえば、MDLは、式(2)によって算出される。
【0066】
【0067】
式(2)において、「D」は、センサデータ141に格納されたデータ(計測結果)に対応する。「M」は、モデル構造データに加えたノードを示す。「|M|」は、ノードに設定されるパラメータの数に対応する。
【0068】
図13は、構造学習部の処理手順を示すフローチャートである。
図13に示すように、構造学習部153は、全てのノードをモデル構造データ144に加えたか否かを判定する(ステップS201)。構造学習部153は、全てのノードをモデル構造データ144に加えた場合には(ステップS201,Yes)、処理を終了する。
【0069】
一方、構造学習部153は、全てのノードをモデル構造データ144に加えていない場合には(ステップS201,No)、残っている各ノードに対してMDL最小となるリンクの組み合わせと、その時(MDL最小となるリンクの組み合わせ時)のMDLを算出する(ステップS202)。
【0070】
構造学習部153は、MDLが最小となるノードを選択し、ノートとリンクをモデル構造データ144に追加し(ステップS203)、ステップS201に移行する。
【0071】
続いて、構造学習部153の処理の一例について説明する。
図14~
図16は、構造学習部の処理を説明するための図である。
【0072】
図14について説明する。モデル構造データ144の初期状態を、モデル144-0とする。モデル144-0に示す破線の矢印は、制約リスト143に設定された制約に対応する。構造学習部153は、
図13で説明した処理を、ループ(1)~ループ(9)まで実行することで、モデル構造データ144を生成する。
【0073】
ループ(1)について説明する。構造学習部153は、残っているノードS1~S9に対して、MDL最小となるリンクの組み合わせと、その時のMDLを算出すると、テーブルT1に示すものとなる。テーブルT1に示す例では、ノードS6のMDLが最小「-1411.7」となる。構造学習部153は、ノードS6を、モデル144-0に加えることで、モデル144-1を生成する。
【0074】
ループ(2)について説明する。構造学習部153は、残っているノードS1~S5,S7~S9に対して、MDL最小となるリンクの組み合わせと、その時のMDLを算出すると、テーブルT2に示すものとなる。テーブルT2では、リンク「ノードS6→ノードS2」が設定されている。テーブルT2に示す例では、ノードS4のMDLが最小「-1198.2」となる。構造学習部153は、ノードS4を、モデル144-1に加えることで、モデル144-2を生成する。
【0075】
ループ(3)について説明する。構造学習部153は、残っているノードS1~S3,S5,S7~S9に対して、MDL最小となるリンクの組み合わせと、その時のMDLを算出すると、テーブルT3に示すものとなる。テーブルT3に示す例では、ノードS8のMDLが最小「-984.1」となる。構造学習部153は、ノードS8を、モデル144-2に加えることで、モデル144-3を生成する。
【0076】
図15の説明に移行する。ループ(4)について説明する。構造学習部153は、残っているノードS1~S3,S5,S7,S9に対して、MDL最小となるリンクの組み合わせと、その時のMDLを算出すると、テーブルT4に示すものとなる。テーブルT4に示す例では、ノードS5のMDLが最小「-767.4」となる。構造学習部153は、ノードS5を、モデル144-3に加えることで、モデル144-4を生成する。
【0077】
ループ(5)について説明する。構造学習部153は、残っているノードS1~S3,S7,S9に対して、MDL最小となるリンクの組み合わせと、その時のMDLを算出すると、テーブルT5に示すものとなる。テーブルT5に示す例では、ノードS7のMDLが最小「-533.5」となる。構造学習部153は、ノードS7を、モデル144-4に加えることで、モデル144-5を生成する。
【0078】
ループ(6)について説明する。構造学習部153は、残っているノードS1~S3,S9に対して、MDL最小となるリンクの組み合わせと、その時のMDLを算出すると、テーブルT6に示すものとなる。テーブルT6に示す例では、リンク「ノードS7→ノードS3」、「ノードS8→ノードS3」が新たに設定されている。構造学習部153は、ノードS2のMDLが最小「-286.0」となるため、ノードS2を、モデル144-5に加えることで、モデル144-6を生成する。また、構造学習部153は、テーブルT6のノードS2のリンク「ノードS6→ノードS2」に対応するエッジを、モデル144-6に追加する。
【0079】
図16の説明に移行する。ループ(7)について説明する。構造学習部153は、残っているノードS1,S3,S9に対して、MDL最小となるリンクの組み合わせと、その時のMDLを算出すると、テーブルT7に示すものとなる。テーブルT7に示す例では、ノードS3のMDLが最小「295.2」となる。構造学習部153は、ノードS3をモデル144-6に追加することで、モデル144-7を生成する。また、構造学習部153は、テーブルT7のノードS3のリンク「ノードS7→ノードS3」、「ノードS8→ノードS3」に対応するエッジを、モデル144-7に追加する。
【0080】
ループ(8)について説明する。構造学習部153は、残っているノードS1,S9に対して、MDL最小となるリンクの組み合わせと、その時のMDLを算出すると、テーブルT8に示すものとなる。テーブルT8に示す例では、ノードS1のMDLが最小「931.1」となる。テーブルT8では、リンク「ノードS2→ノードS1」、「ノードS3→ノードS1」、「ノードS5→S1」が新たに設定されている。構造学習部153は、ノードS1をモデル144-7に追加することで、モデル144-8を生成する。また、構造学習部153は、テーブルT8のノードS1のリンク「ノードS2→ノードS1」、「ノードS3→ノードS1」、「ノードS5→ノードS1」に対応するエッジを、モデル144-8に追加する。
【0081】
ループ(9)について説明する。構造学習部153は、残っているノードS9に対して、MDL最小となるリンクの組み合わせと、その時のMDLを算出すると、テーブルT9に示すものとなる。テーブルT9に示す例では、ノードS9のMDLが最小「1029.7」となる。テーブルT9では、リンク「ノードS1→ノードS9」、「ノードS3→ノードS9」が新たに設定されている。構造学習部153は、ノードS9をモデル144-8に追加することで、モデル144-9を生成する。また、構造学習部153は、テーブルT9のノードS9のリンク「ノードS1→ノードS9」、「ノードS3→ノードS9」に対応するエッジを、モデル144-9に追加する。モデル144-9が、モデル構造データ144に対応する。
【0082】
構造学習部153は、上記の処理を実行することで、モデル構造データ144を学習する。構造学習部153は、モデル構造データ144を、記憶部140に記憶させる。
【0083】
図6の説明に戻る。パラメータ学習部154は、モデル構造データ144と、センサデータとを基にして、モデル構造データ144に含まれる確率パラメータを学習する。パラメータ学習部154が、確率パラメータを学習する処理は、どのような従来技術を用いてもよい。パラメータ学習部154が、モデル構造データ144に、確率パラメータを設定することで、因果推論モデル145を生成する。
【0084】
次に、本実施例に係る情報処理装置100の処理手順の一例について説明する。
図17は、本実施例に係る情報処理装置の処理手順を示すフローチャートである。
図17に示すように、情報処理装置100の取得部151は、外部装置からセンサデータ141を取得し、記憶部140に記憶する(ステップS310)。取得部151は、外部装置から因果関係データ142を取得し、記憶部140に記憶する(ステップS320)。
【0085】
情報処理装置100の制約抽出部152は、制約抽出処理を実行する(ステップS330)。制約抽出部152が実行する制約抽出処理は、
図11で説明した処理に対応する。
【0086】
情報処理装置100の構造学習部153は、構造学習処理を実行する(ステップS340)。構造学習部153が実行する構造学習処理は、
図13で説明した処理に対応する。
【0087】
情報処理装置100のパラメータ学習部154は、モデル構造データのパラメータを学習し、因果推論モデル145を生成する(ステップS350)。パラメータ学習部154は、因果推論モデル145を、記憶部140に記憶する(ステップS360)。
【0088】
次に、本実施例に係る情報処理装置100の効果について説明する。情報処理装置100は、因果推論モデル145を構築する場合に、因果関係データ142に含まれる複数の因果組から、信頼できる因果組のみを用いて制約を抽出し、制約に基づいてモデル構造データ144を学習する。これによって、説明性や信頼性のより高い因果推論モデル145を構築することができる。
【0089】
因果推論モデル145に含まれるノードの組のうち、第1ノードが原因で、第2ノードが結果となる既知の因果関係が因果関係データ142に含まれるものとする。この場合、情報処理装置100は、第2ノードから、第1ノードの方向に向かうエッジによって、第1ノードと第2ノードとを接続しないという制約を抽出する。これによって、信頼できる因果関係によって、モデル構造データ144を構築時の制約を設定できる。この制約の設定は、上記の特徴(1)に基づくものである。
【0090】
因果推論モデル145に含まれるノードの組のうち、第1ノードおよび第2ノードと共通の因果関係を有する第3ノードが因果関係データに含まれるものとする。この場合、情報処理装置100は、第2ノードから、第1ノードの方向に向かうエッジによって、第1ノードと第2ノードとを接続しないという制約を制約リスト143に追加することを抑止する。これによって、信頼性の低い因果関係に基づく制約を設定することを防止することができる。
【0091】
図18は、本実施例に係る情報処理装置の効果を説明する図(1)である。
図18では、情報処理装置100が構築した因果推論モデル145を示す。この因果推論モデル145に対して、説明性の定量評価を行うと、
図18のグラフG145となる。定量評価として、式(1)を用いる。グラフG145の横軸には、各ノードの識別情報が設定される。グラフG145の縦軸は、説明性(相互情報量)に対応する軸である。相互情報量が高いほど、不確実の影響が小さく、合理的に説明できることを意味する。グラフG145では、ノードS9と、他のノードS1~S8との相互情報量を示す。グラフG145では、ノードS9とノードS1との組、ノードS9とノードS3との組において、相互情報量が高くなっている。また、重要な属性の説明性が特に高いといえる。
【0092】
図19は、本実施例に係る情報処理装置の効果を説明する図(2)である。
図19では、サンプリングにより1000個のデータセットを作って、説明性を評価した結果を示す。
図19のグラフG3-1は、専門知識のみで構築したモデルに対して、説明性の定量評価を行った結果を箱ひげ図で示すものである。グラフG3-2は、因果推論モデル145に対して、説明性の定量評価を行った結果を箱ひげ図で示すものである。グラフ3-2は、グラフ3-1と比較して、安定性が向上(分散が減少)しており、S3に関する説明性が向上していることを確認することができる。
【0093】
ところで、情報処理装置100は、特徴(1)、特徴(2)を基にして制約を抽出し、制約リスト143に追加していたが、これに限定されるものではない。たとえば、情報処理装置100の制約抽出部152は、信頼度の高い因果関係のみを制約に加えてもよい。
【0094】
ここで、信頼度が高い因果関係とは、たとえば、文献での出現頻度が高い因果関係となる。たとえば、因果関係データ142の各因果関係に、それぞれ信頼度をそれぞれ設定しておく。制約抽出部152は、信頼度が閾値以上となる因果関係のみを用いて、制約を抽出してもよいし、信頼度の高いものから順に加えて、情報量基準で制約として抽出するか否かを、判定してもよい。情報量基準には、AIC(Akaike's Information Criterion)、MDL等がある。
【0095】
図20は、本実施例に係る情報処理装置の効果を説明する図(3)である。
図20では、サンプリングにより1000個のデータセットを作って、説明性を評価した結果を示す。グラフG3-2は、因果推論モデル145に対して、説明性の定量評価を行った結果を箱ひげ図で示すものである。グラフG3-3は、信頼度が閾値以上となる因果関係のみを用いて抽出した制約を用いて構築した因果推論モデルに対して、説明性の定量評価を行った結果を箱ひげ図で示すものである。グラフG3-2とグラフG3-3とを比較すると、グラフG3-3の方が、更に安定性が向上している。
【0096】
ところで、本実施例では一例として、因果推論モデル145として、最終的な結果となるノードが1つのものを用いて説明したが、最終的な結果のノードが複数の場合でも、本発明を問題なく適用することができる。本発明の制約の判断は局所的なものであり、結果のノードが複数であっても、影響がない。
【0097】
次に、上記実施例に示した情報処理装置100と同様の機能を実現するコンピュータのハードウェア構成の一例について説明する。
図21は、実施例の情報処理装置と同様の機能を実現するコンピュータのハードウェア構成の一例を示す図である。
【0098】
図21に示すように、コンピュータ200は、各種演算処理を実行するCPU201と、ユーザからのデータの入力を受け付ける入力装置202と、ディスプレイ203とを有する。また、コンピュータ200は、有線または無線ネットワークを介して、外部装置等との間でデータの授受を行う通信装置204と、インタフェース装置205とを有する。また、コンピュータ200は、各種情報を一時記憶するRAM206と、ハードディスク装置207とを有する。そして、各装置201~207は、バス208に接続される。
【0099】
ハードディスク装置207は、取得プログラム207a、制約抽出プログラム207b、構造学習プログラム207c、パラメータ学習プログラム207dを有する。また、CPU201は、各プログラム207a~207dを読み出してRAM206に展開する。
【0100】
取得プログラム207aは、取得プロセス206aとして機能する。制約抽出プログラム207bは、制約抽出プロセス206bとして機能する。構造学習プログラム207cは、構造学習プロセス206cとして機能する。パラメータ学習プログラム207dは、パラメータ学習プロセス206dとして機能する。
【0101】
取得プロセス206aの処理は、取得部151の処理に対応する。制約抽出プロセス206bの処理は、制約抽出部152の処理に対応する。構造学習プロセス206cの処理は、構造学習部153の処理に対応する。パラメータ学習プロセス206dの処理は、パラメータ学習部154の処理に対応する。
【0102】
なお、各プログラム207a~207dについては、必ずしも最初からハードディスク装置207に記憶させておかなくても良い。例えば、コンピュータ200に挿入されるフレキシブルディスク(FD)、CD-ROM、DVD、光磁気ディスク、ICカードなどの「可搬用の物理媒体」に各プログラムを記憶させておく。そして、コンピュータ200が各プログラム207a~207dを読み出して実行するようにしてもよい。
【0103】
以上の各実施例を含む実施形態に関し、さらに以下の付記を開示する。
【0104】
(付記1)コンピュータに、
因果推論モデルに含まれる複数のノードにそれぞれ対応する複数のセンサから取得したセンサデータを基にして、前記因果推論モデルの複数のノードを方向付きのエッジで接続する場合に、
ノード間の既知の因果関係を持つ組のデータを取得し、
前記ノード間の既知の因果関係を持つ組に対して、該因果関係とは逆の因果関係を含まないことを制約とし、かつ、前記既知の因果関係を持つ組が、共通の原因または結果を持つ場合には、前記既知の因果関係を持つ組に対して、前記制約を設けないという制約リストに基づいて、前記因果推論モデルの構造を構築する
処理を実行させることを特徴とする因果推論モデル構築プログラム。
【0105】
(付記2)前記因果推論モデルに含まれるノードの組のうち、第1ノードが原因で、第2ノードが結果となる既知の因果関係が前記データに含まれる場合、前記第2ノードから、前記第1ノードの方向に向かうエッジによって、前記第1ノードと前記第2ノードとを接続しないという制約を前記制約リストに追加する処理を更に実行し、前記構築する処理は、前記制約リストを基にして、前記因果推論モデルの構造を構築することを特徴とする付記1に記載の因果推論モデル構築プログラム。
【0106】
(付記3)前記第1ノードおよび前記第2ノードと共通の因果関係を有する第3ノードが前記データに含まれる場合には、前記第2ノードから、前記第1ノードの方向に向かうエッジによって、前記第1ノードと前記第2ノードとを接続しないという制約を前記制約リストに追加することを抑止する処理を更に実行することを特徴とする付記2に記載の因果推論モデル構築プログラム。
【0107】
(付記4)前記既知の因果関係を持つ組には優先度が設定され、前記制約を前記制約リストに追加する処理は、前記優先度を基にして、前記制約を前記制約リストに追加することを特徴とする付記2または3に記載の因果推論モデル構築プログラム。
【0108】
(付記5)コンピュータが実行する因果推論モデル構築方法であって、
因果推論モデルに含まれる複数のノードにそれぞれ対応する複数のセンサから取得したセンサデータを基にして、前記因果推論モデルの複数のノードを方向付きのエッジで接続する場合に、
ノード間の既知の因果関係を持つ組のデータを取得し、
前記ノード間の既知の因果関係を持つ組に対して、該因果関係とは逆の因果関係を含まないことを制約とし、かつ、前記既知の因果関係を持つ組が、共通の原因または結果を持つ場合には、前記既知の因果関係を持つ組に対して、前記制約を設けないという制約リストに基づいて、前記因果推論モデルの構造を構築する
処理を実行することを特徴とする因果推論モデル構築方法。
【0109】
(付記6)前記因果推論モデルに含まれるノードの組のうち、第1ノードが原因で、第2ノードが結果となる既知の因果関係が前記データに含まれる場合、前記第2ノードから、前記第1ノードの方向に向かうエッジによって、前記第1ノードと前記第2ノードとを接続しないという制約を前記制約リストに追加する処理を更に実行し、前記構築する処理は、前記制約リストを基にして、前記因果推論モデルの構造を構築することを特徴とする付記5に記載の因果推論モデル構築方法。
【0110】
(付記7)前記第1ノードおよび前記第2ノードと共通の因果関係を有する第3ノードが前記データに含まれる場合には、前記第2ノードから、前記第1ノードの方向に向かうエッジによって、前記第1ノードと前記第2ノードとを接続しないという制約を前記制約リストに追加することを抑止する処理を更に実行することを特徴とする付記6に記載の因果推論モデル構築方法。
【0111】
(付記8)前記既知の因果関係を持つ組には優先度が設定され、前記制約を前記制約リストに追加する処理は、前記優先度を基にして、前記制約を前記制約リストに追加することを特徴とする付記6または7に記載の因果推論モデル構築方法。
【0112】
(付記9)因果推論モデルに含まれる複数のノードにそれぞれ対応する複数のセンサから取得したセンサデータを基にして、前記因果推論モデルの複数のノードを方向付きのエッジで接続する場合に、ノード間の既知の因果関係を持つ組のデータを取得する取得部と、
前記ノード間の既知の因果関係を持つ組に対して、該因果関係とは逆の因果関係を含まないことを制約とし、かつ、前記既知の因果関係を持つ組が、共通の原因または結果を持つ場合には、前記既知の因果関係を持つ組に対して、前記制約を設けないという制約リストに基づいて、前記因果推論モデルの構造を構築する構造学習部と
を有することを特徴とする情報処理装置。
【0113】
(付記10)前記因果推論モデルに含まれるノードの組のうち、第1ノードが原因で、第2ノードが結果となる既知の因果関係が前記データに含まれる場合、前記第2ノードから、前記第1ノードの方向に向かうエッジによって、前記第1ノードと前記第2ノードとを接続しないという制約を前記制約リストに追加する制約抽出部を更に有し、前記構造学習部は、前記制約リストを基にして、前記因果推論モデルの構造を構築することを特徴とする付記9に記載の情報処理装置。
【0114】
(付記11)前記制約抽出部は、前記第1ノードおよび前記第2ノードと共通の因果関係を有する第3ノードが前記データに含まれる場合には、前記第2ノードから、前記第1ノードの方向に向かうエッジによって、前記第1ノードと前記第2ノードとを接続しないという制約を前記制約リストに追加することを抑止する処理を更に実行することを特徴とする付記10に記載の情報処理装置。
【0115】
(付記12)前記既知の因果関係を持つ組には優先度が設定され、前記制約抽出部は、前記制約を前記制約リストに追加する処理は、前記優先度を基にして、前記制約を前記制約リストに追加することを特徴とする付記10または11に記載の情報処理装置。