(57)【要約】【課題】適切な関数を推定することを課題とする。【解決手段】情報処理装置は、第１変数を第１のモデルの入力変数とした場合の出力値から第２変数を第２のモデルの入力変数としたときに得られる出力値を減じた値を第３変数の推定値とした場合に、第２変数と第３変数の推定値との独立性が最大となるように、第１のモデルおよび第２のモデルのパラメータである第１のパラメータを更新する。情報処理装置は、第１のモデルパラメータ更新の実行過程において、第１変数を第１のモデルの入力変数とした場合に得られる出力値を第３のモデルの入力変数として得られる出力値が第１変数に近づくように第１のモデルのパラメータである第２のパラメータおよび第３のモデルのパラメータである第３のパラメータを更新する。【選択図】図１
2020177427.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータに、
第１変数を第１のモデルの入力変数とした場合の出力値から第２変数を第２のモデルの入力変数としたときに得られる出力値を減じた値を第３変数の推定値とした場合に、前記第２変数と前記第３変数の推定値との独立性が最大となるように、前記第１のモデルおよび前記第２のモデルのパラメータである第１のパラメータを更新し、
前記第１のパラメータの更新過程において、前記第１変数を前記第１のモデルの入力変数とした場合に得られる出力値を第３のモデルの入力変数として得られる出力値が前記第１変数に近づくように前記第１のモデルのパラメータである第２のパラメータおよび前記第３のモデルのパラメータである第３のパラメータを更新する、
処理を実行させることを特徴とする更新プログラム。
【請求項２】
前記更新する処理は、前記第１のパラメータを更新する第１パラメータ更新過程に、前記第２のパラメータおよび前記第３のパラメータを更新する第１パラメータ更新処理を組み込んで、前記第１のパラメータと前記第２のパラメータと前記第３のパラメータとを同時に更新することを特徴とする請求項１に記載の更新プログラム。
【請求項３】
第１データと第２データとの間の因果関係を判定する場合、パラメータ更新済みの前記第１のモデルとパラメータ更新済みの第２のモデルとを用いてＰＮＬ（Post  NonLinear）モデルを構築し、
前記第１データと前記第２データとを前記ＰＮＬモデルに入力して得られる結果に基づいて、前記第１データと前記第２データとの間の因果関係を判定することを特徴とする請求項１に記載の更新プログラム。
【請求項４】
前記第２変数と前記第３変数の推定値との第１誤差が最小化するように前記第１のパラメータの更新を実行するとともに、前記出力値と前記第１変数との第２誤差が最小化するように前記第２のパラメータおよび前記第３のパラメータの更新を実行する、処理を前記コンピュータに実行させることを特徴とする請求項１に記載の更新プログラム。
【請求項５】
前記第１のモデル、前記第２のモデル、前記第３のモデルそれぞれを、ニューラルネットワークまたは線形モデルを用いてモデル化する処理を、処理を前記コンピュータに実行させ、
前記実行する処理は、予め用意された学習データを用いて、前記第１誤差が最小化するように、前記ニューラルネットワークまたは前記線形モデルのパラメータを学習し、
前記実行する処理は、前記学習データを用いて、前記第２誤差が最小化するように、前記ニューラルネットワークまたは前記線形モデルのパラメータを学習することを特徴とする請求項４に記載の更新プログラム。
【請求項６】
前記実行する処理は、相互情報量またはＨＳＩＣ（Hilbert-Schmidt  Independence  Criterion）を用いて、前記第１誤差が最小化するように学習し、
前記実行する処理は、二乗誤差を用いて、前記第２誤差が最小化するように学習することを特徴とする請求項５に記載の更新プログラム。
【請求項７】
第１データと第２データとの間の因果関係を判定する場合、学習済みの前記第１のモデルと学習済みの第２のモデルとを用いてＰＮＬモデルを構築し、
前記第１データと前記第２データとを前記ＰＮＬモデルに入力して得られる結果に基づいて、前記第１データと前記第２データとの間の因果関係を判定することを特徴とする請求項６に記載の更新プログラム。
【請求項８】
コンピュータが、
第１変数を第１のモデルの入力変数とした場合の出力値から第２変数を第２のモデルの入力変数としたときに得られる出力値を減じた値を第３変数の推定値とした場合に、前記第２変数と前記第３変数の推定値との独立性が最大となるように、前記第１のモデルおよび前記第２のモデルのパラメータである第１のパラメータを更新し、
前記第１のパラメータの更新過程において、前記第１変数を前記第１のモデルの入力変数とした場合に得られる出力値を第３のモデルの入力変数として得られる出力値が前記第１変数に近づくように前記第１のモデルのパラメータである第２のパラメータおよび前記第３のモデルのパラメータである第３のパラメータを更新する、
処理を実行することを特徴とする更新方法。
【請求項９】
第１変数を第１のモデルの入力変数とした場合の出力値から第２変数を第２のモデルの入力変数としたときに得られる出力値を減じた値を第３変数の推定値とした場合に、前記第２変数と前記第３変数の推定値との独立性が最大となるように、前記第１のモデルおよび前記第２のモデルのパラメータである第１のパラメータを更新する第１更新部と、
前記第１のパラメータの更新過程において、前記第１変数を前記第１のモデルの入力変数とした場合に得られる出力値を第３のモデルの入力変数として得られる出力値が前記第１変数に近づくように前記第１のモデルのパラメータである第２のパラメータおよび前記第３のモデルのパラメータである第３のパラメータを更新する第２更新部と、
を有することを特徴とする情報処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、更新プログラム、更新方法および情報処理装置に関する。
【背景技術】
【０００２】
データ分析やデータマイニングなどの分野においては、データの関係を明らかにし、その関係に基づく意思決定等が行われる。具体的には、製造、医療、材料などの分野における意思決定のためには、データ間の点の関係性（予測）ではなく、線の関係性（因果）が利用される。例えば、ある検査数値を下げるためにどういう処置をとればよいのかが知りたい場合に、検査数値と因果関係がある項目を探索したり、ある目標強度を持つ物質を作るために、分子構造のどの部分をどの程度変化させればよいのかが知りたい場合に、強度と因果関係がある分子構造を探索したりする。
【０００３】
一般的に、データ間に因果関係が存在するかを探索する因果探索の分野においては、探索に用いるデータが必ずしも因果関係を有しているとは限らないので、因果関係を判定できることが理論的に証明されているモデル（関数）を用いる。このようなモデルとしては、ＰＮＬ（Post  NonLinear）モデルが知られている。ＰＮＬモデルは、理論証明の検証がなされているモデルの中で、表現能力が高いモデルである。理論証明がなされているＰＮＬモデルによりモデル推定を行うことによって、対象のデータ間が因果関係を有するか否かという因果説明を探索することができる。
【先行技術文献】
【非特許文献】
【０００４】
【非特許文献１】Kun  Zhang  and  Aapo  Hyvarinen，“Distinguishing  Causes  from  Effects  using  Nonlinear  Acyclic  Causal  Models”，JMLR  Workshop  and  Conference  Proceedings  6：157−164，2007
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ところで、ＰＮＬモデルの理論証明は、無限のデータの存在を前提とするものであり、現実の有限のデータから因果関係を有するかを判定するためには、ＰＮＬモデルに用いる関数が適切に選択されている必要がある。しかしながら、一般的な関数探索の手法では、関数が適切であるかは保証されないので、探索された関数を適用したＰＮＬモデルでは、データ間の因果関係を正確に判定することができない場合がある。
【０００６】
一つの側面では、適切な関数を推定することができる更新プログラム、更新方法および情報処理装置を提供することを目的とする。
【課題を解決するための手段】
【０００７】
第１の案では、更新プログラムは、コンピュータに、第１変数を第１のモデルの入力変数とした場合の出力値から第２変数を第２のモデルの入力変数としたときに得られる出力値を減じた値を第３変数の推定値とした場合に、前記第２変数と前記第３変数の推定値との独立性が最大となるように、前記第１のモデルおよび前記第２のモデルのパラメータである第１のパラメータを更新する処理を実行させる。更新プログラムは、コンピュータに、前記第１のモデルパラメータ更新の実行過程において、前記第１変数を前記第１のモデルの入力変数とした場合に得られる出力値を第３のモデルの入力変数として得られる出力値が前記第１変数に近づくように前記第１のモデルのパラメータである第２のパラメータおよび前記第３のモデルのパラメータである第３のパラメータを更新する処理を実行させる。
【発明の効果】
【０００８】
一実施形態によれば、データ間の因果関係を正確に推定することができる。
【図面の簡単な説明】
【０００９】
【図１】図１は、実施例１にかかる因果関係の推定を説明する図である。
【図２】図２は、一般的なモデル推定を説明する図である。
【図３】図３は、実施例１にかかる情報処理装置の機能構成を示す機能ブロック図である。
【図４】図４は、実施例１で用いるモデル化を説明する図である。
【図５】図５は、実施例１にかかる処理の流れを示すフローチャートである。
【図６】図６は、ハードウェア構成例を説明する図である。
【発明を実施するための形態】
【００１０】
以下に、本願の開示する更新プログラム、更新方法および情報処理装置の実施例を図面に基づいて詳細に説明する。なお、この実施例によりこの発明が限定されるものではない。また、各実施例は、矛盾のない範囲内で適宜組み合わせることができる。
【実施例１】
【００１１】
［全体構成］
図１は、実施例１にかかる因果関係の推定を説明する図である。実施例１で説明する情報処理装置は、データ間の因果探索を実行するコンピュータ装置である。具体的には、情報処理装置は、データ間の因果関係を表すＰＮＬ（Post  NonLiner）モデルに適応する関数を推定するモデル推定（以下では、関数探索、関数推定と記載する場合がある）を実行し、推定された関数を適応したＰＮＬモデルを用いて、データ間の因果関係を探索する。すなわち、情報処理装置は、データ間の因果探索において、ＰＮＬモデルが満たすべきすべての仮定を充足するようなパラメータを最適化により推定することで、その充足の度合いに応じて因果方向を判定する。
【００１２】
ここで、ＰＮＬモデルを用いた因果探索、ＰＮＬモデルに適用する関数を推定するモデル推定、一般的なモデル推定による問題点を順に説明する。
【００１３】
（因果探索）
ここで、一般的な関数探索によるモデル推定の問題点について説明する。まず、ＰＮＬモデルについて説明する。ＰＮＬモデルは、データ間の因果関係を表すモデル（関数）である。例えば、ｘからｙ（ｘ→ｙ）に因果関係があるとすると、非線形関数ｆ１とｆ２を用いて、式（１）と定義できるとする。このとき、［仮定１］原因ｘとノイズｅは独立、［仮定２］ｆ２は可逆関数の両仮定を満たすとする。
【００１４】
【数１】
2020177427.tif 000003
【００１５】
これらの仮定を満たす関数を適応したＰＮＬモデルを用いて、データ間の因果関係を判定する。例えば、データ（ｘ，ｙ）について、データ間の関係がＰＮＬモデルで記述できうるとする。そして、（１）因果関係がｘからｙ（ｘ→ｙ）であると仮定してＰＮＬモデル（関数ｆ１，ｆ２−１）を具体的に推定し、（２）因果関係がｙからｘ（ｙ→ｘ）であると仮定してＰＮＬモデル（関数ｆ１，ｆ２−１）を具体的に推定する。その後、（１）と（２）のうち、実データに合致する、すなわちＰＮＬモデルの仮定をより満たす方向を因果の方向（因果の向き）と判定する。
【００１６】
上述したように、ＰＮＬモデルによる因果方向の判定においては、上記仮定１および仮定２を満たす関数（モデル）が必要であることから、これらの仮定を満たす関数を推定すること（モデル推定）が行われる。
【００１７】
（一般的なモデル推定）
次に、図２を用いて、一般的なモデル推定を説明する。図２は、一般的なモデル推定を説明する図である。具体的には、ＰＮＬモデルの［仮定１］を満たすモデル推定を実行する。ここでは、式（１）に示したＰＮＬモデルの式（２）における２つの関数を推定する。例えば、関数ｆ１と関数ｆ２−１をパラメトリックモデルとして定めることで式（２）のパラメータを、［仮定１：原因ｘとノイズｅは独立］が満たされるように、最適化で求める。なお、パラメトリックモデルとしては、ニューラルネットワークや線形モデルなどの学習モデル（機械学習）を利用することができる。
【００１８】
【数２】
2020177427.tif 000004
【００１９】
詳細には、図２に示すように、式（２）における第１変数（ｙ）を第１のモデル（ｆ２−１）に入力した場合の出力値から、第２変数（ｘ）を第２のモデル（ｆ１）の入力変数としたときに得られる出力値を減じた値を第３変数（ｅ）の推定値とする。そして、第２変数（ｙ）と第３変数（ｅ）の推定値との独立性が最大となるように、各パラメトリックモデルのパラメータを更新する。
【００２０】
つまり、入力データｘとノイズｅとを比較する独立性比較指標［Ｉ（ｘ，ｅ）］を式（３）に示す誤差関数（目的関数）により最適化する。すなわち、独立性評価指標が最小となる（ｘとｅが独立になる）ように、各学習モデルを学習する。
【００２１】
【数３】
2020177427.tif 000005
【００２２】
このような手法で関数を推定した場合、推定結果が不適切な関数となる場合がある。例えば、関数ｆ１と関数ｆ２−１とが定数関数になると、ｘとｅは独立になるが、ＰＮＬモデル［仮定２］に反するので、推定結果が正しい因果関係である保証が崩れる（問題点１）。また、関数ｆ２−１のモデル化において［仮定２］を満たすように限定することも考えられるが、本来推定したい関数が含まれない範囲に限定してしまう恐れがある（問題点２）。この結果、関数が正しく推定できず、正しく因果の方向も正しく判定できなくなる。
【００２３】
（一般的なモデル推定による問題点１）
次に、具体的な例を用いて、問題点１を説明する。一例として、ｘからｙ（ｘ→ｙ）に因果関係があり、本来は未知であるが真の関係が上記式（１）で表されるものとする。つまり、ここでは、この因果の方向（ｘ→ｙ）をモデル推定から判定する例を説明する。
【００２４】
このときの式（１）における関数および変数の条件を式（４）とする。なお、Ｕ（ａ，ｂ）は区間（ａ，ｂ）の一様分布であり、各関数および変数はＰＮＬモデルに従っているとする。式（４）の場合、変数ｘとノイズｅは、０より大きく１未満からランダムに選択される。
【００２５】
【数４】
2020177427.tif 000006
【００２６】
ここでは、ｆ１およびｆ２−１をニューラルネットワーク（ＮＮ：Neural  Network）でモデル化し、独立性評価指標Ｉ（ｘ，ｅ）をＨＳＩＣ（Hilbert  Schmidt  Independence  Criterion）を利用し、勾配法で各ＮＮを推定する。すなわち、学習データを用いて、式（３）の誤差関数を最小化するようにＮＮのパラメータを最適化する。
【００２７】
まず、因果の方向が「ｘからｙ（ｘ→ｙ）」と仮定してモデル推定を実行する。例えば、以下の推定結果［ａ］、［ｂ］となる場合に、Ｉ（ｘ，ｅ）＝０（最小値）となる。［ａ］ｆ１（ｘ）がｘ２と近似的に等しく、ｆ２−１（ｚ）がｚ１／３と近似的に等しいときのように、各ＮＮが真の関数を近似できた場合（真の関数に等しければｘとｅは独立となる）、［ｂ］ｆ１（ｘ）＝３、ｆ２−１（ｚ）＝４などのように、各ＮＮが定数関数となった場合（変数ｘと変数ｅは独立となる）。
【００２８】
次に、因果の方向が「ｙからｘ（ｙ→ｘ）」と仮定してモデル推定を実行する。例えば、以下の推定結果［ｃ］となる場合に、Ｉ（ｘ，ｅ）＝０（最小値）となる。［ｃ］ｆ１（ｙ）＝２、ｆ２−１（ｚ）＝５などのように、各ＮＮが定数関数となった場合。
【００２９】
したがって、いずれの因果の方向であっても、独立性評価指標を最小化する関数が見つかるので、正しい因果の方向（ｘ→ｙ）と間違った因果の方向（ｙ→ｘ）を識別できない。また、［ｂ］や［ｃ］の結果は、そもそもＰＮＬモデルの仮定２に反するので、理論的に求まる解が保証できない。
【００３０】
このように、変数ｘとノイズｅの独立性を満たすという観点のみでモデル推定を行うと、定数関数となってしまうので、ＰＮＬモデルの制約を満たすこともできず、データ間の因果関係を判定できない。
【００３１】
（一般的なモデル推定による問題点２）
次に、上記問題点１と同様の条件を用いて、問題点２を説明する。具体的には、あらかじめ関数ｆ２−１のモデルに制約を課すことで、取りうる関数の範囲を限定する。
【００３２】
例えば、ｆ２−１を逆関数に持つ関数を、例えばａ≠０（ａは０ではない）をパラメータとする線形関数ｆ２−１（ｚ；ａ）＝ａ＊ｚに限定することで、必ず最終的な関数は仮定２を充足する。しかし、この線形関数では、真の関数ｆ２−１（ｚ）＝ｚ１／３を表現できていない。したがって、正しい因果の方向（ｘ→ｙ）を仮定しても、独立評価指数であるＩ（ｘ，ｅ）を０にできないので、因果の方向が（ｘ→ｙ）か（ｙ→ｘ）かを正しく判定できないおそれがある。
【００３３】
（実施例１による手法）
上述したように、一般的なモデル推定では、ＰＮＬモデルの制約を満たせない場合が発生するので、判定された因果の方向が正しい判定なのかを保証できない。そこで、実施例１では、逆変換器を追加し、逆関数になるように学習することで、結果的に［仮定２］の逆関数が存在する範囲でモデル推定を実行する。
【００３４】
具体的には、図２に示すように、情報処理装置は、一般的な手法と同様に式（２）をモデル化し、生成したモデルに逆変換器を追加した拡張モデル化を実行する。そして、情報処理装置は、学習データを用いた拡張モデル内のＮＮなどのパラメータを学習し、モデル推定を実行する。
【００３５】
その後、情報処理装置は、モデル推定で得られた関数をＰＮＬモデルに適用する。そして、情報処理装置は、当該ＰＮＬモデルを用いて、対象データ間の因果関係を判定する。この結果、適切な関数を推定してＰＮＬモデルに適用することができるので、データ間の因果関係を正確に判定することができる。
【００３６】
［情報処理装置の機能構成］
次に、図１で説明した情報処理装置について説明する。図３は、実施例１にかかる情報処理装置１０の機能構成を示す機能ブロック図である。図３に示すように、情報処理装置１０は、通信部１１、記憶部１２、制御部２０を有する。
【００３７】
通信部１１は、他の装置の間の通信を制御する処理部であり、例えば通信インタフェースなどである。例えば、通信部１１は、処理の開始指示や各種データを管理者端末等から受信し、学習結果や因果関係の判定結果などを管理者端末に送信する。
【００３８】
記憶部１２は、各種データや制御部２０が実行する各種プログラムを記憶する記憶装置の一例であり、例えばメモリやハードディスクなどである。この記憶部１２は、学習データＤＢ１３、学習結果ＤＢ１４、判定結果ＤＢ１５を記憶する。
【００３９】
学習データＤＢ１３は、後述するＮＮや線形モデルなどの学習に利用される学習データを記憶するデータベースである。ここで記憶される情報は、管理者等により格納される。なお、学習データの構成は、一般的な機械学習と同様、入力データと出力データとが対応付けられたデータを用いることができる。
【００４０】
学習結果ＤＢ１４は、後述するＮＮや線形モデルなどの学習結果を記憶するデータベースである。例えば、学習結果ＤＢ１４は、後述する学習部２２により格納されたＮＮの各種パラメータなどを記憶する。判定結果ＤＢ１５は、データ間の因果関係の判定結果を記憶するデータベースである。ここで記憶される情報は、後述する判定部２３により格納される。
【００４１】
制御部２０は、情報処理装置１０全体を司る処理部であり、例えばプロセッサなどである。この制御部２０は、構築部２１、学習部２２、判定部２３を有する。なお、構築部２１、学習部２２、判定部２３は、プロセッサが有する電子回路の一例やプロセッサが実行するプロセスの一例である。
【００４２】
構築部２１は、ＰＮＬモデルに適用する関数を推定するためのモデルを構築する処理部である。具体的には、構築部２１は、一般的な手法と同様に式（２）をモデル化し、生成したモデルに逆変換器を追加した拡張モデル化を実行する。
【００４３】
図４は、実施例１で用いるモデル化を説明する図である。図４に示すように、構築部２１は、ＰＮＬモデルの式（２）における２つの関数ｆ１と関数ｆ２−１をＮＮでモデル化するとともに、関数ｆ２−１の出力を逆変換する逆変換器ｆ２を追加し、逆変換器ｆ２もＮＮでモデル化する。なお、ｆ２とｆ２−１とは明示的に逆関数になるようにモデル化する必要はなく、学習の過程もしくは学習の結果で逆関数に近づく。
【００４４】
具体的には、図２と同様、構築部２１は、式（２）における第１変数（ｙ）を第１のモデル（ｆ２−１）に入力した場合の出力値から、第２変数（ｘ）を第２のモデル（ｆ１）の入力変数としたときに得られる出力値を減算した値（減じた値）を第３変数（ｅ）の推定値を取得するモデルを生成する。さらに、構築部２１は、当該モデルに対して、第１変数（ｙ）を第１のモデル（ｆ２−１）の入力変数とした場合に得られる出力値を、第３のモデル（ｆ２）の入力変数としたときに出力値（ｙ´）が得られる逆変換器を追加する。
【００４５】
学習部２２は、学習データＤＢ１３に記憶される各学習データを用いて、構築部２１により構築されたモデルの各ＮＮを学習する処理部である。例えば、学習部２２は、図４に示すモデルにおいて、ＮＮ（関数ｆ１）への入力データｘと当該ＮＮからの出力データであるノイズｅとの間の評価指標である独立性評価指標Ｉ（ｘ，ｅ）と、ＮＮ（関数ｆ２−１）への入力データｙと当該ＮＮからの出力を入力とするＮＮ（関数ｆ２）からの出力データｙ´との間の評価指標である可逆性評価指標Ｓ（ｙ，ｙ´）とが０（最小）になるように、学習する。
【００４６】
具体的には、学習部２２は、「ｍｉｎ［ｘとｅが独立ではない度合い］＋λ＊［ｆ２が可逆ではない度合い］」で示される式（５）の誤差関数（目的関数）を最適化する。なお、λは、両者のバランスを取るための係数であり、０より大きい任意の値である。つまり、学習部２２は、一般的なモデル推定で実行される独立性評価指標Ｉ（ｘ，ｅ）に基づくＮＮのパラメータ更新の過程において、可逆性評価指標Ｓ（ｙ，ｙ´）に基づくパラメータ更新を入れ込む。
【００４７】
【数５】
2020177427.tif 000007
【００４８】
ここで、独立性評価指標Ｉ（ｘ，ｅ）には、相互情報量（ＭＩ：Mutual  Information）やＨＳＩＣ（Hilbert−Schmidt  Independence  Criterion）などを用いることができる。例えば、確率密度関数推定などが可能である場合や、関数ｆ１やｆ２で直接確率密度関数をモデル化する場合には相互情報量が有効であり、データのみから独立性を評価する場合には、ＨＳＩＣが有効である。
【００４９】
また、可逆性評価指標Ｓ（ｙ，ｙ´）に関して、判定対象が一般のデータの場合には二乗誤差（ＭＳＥ：Mean  Squared  Error）などを用いることができ、判定対象が画像データの場合にはＳＳＩＭ（Structural  Similarity）などを用いることができる。
【００５０】
そして、学習部２２は、学習データを図４のモデルに入力し、式（５）が最小化するように学習を実行し、学習が終了すると、学習結果を学習結果ＤＢ１４に格納する。なお、学習を終了するタイミングは、所定数の学習データを用いた学習が終了した場合、式（５）の値が所定値以下となった場合など、任意に設定することができる。
【００５１】
判定部２３は、ＰＮＬモデルを用いて、対象データ間の因果関係を判定する処理部である。具体的には、判定部２３は、学習結果ＤＢ１４から学習結果を読み出し、学習により得られたパラメータを設定した関数を生成する。そして、判定部２３は、当該関数を適用したＰＮＬモデル（関数ｆ１，関数ｆ２−１）を構築する。続いて、判定部２３は、構築したＰＮＬモデルに判定対象のデータを入力して判定結果を取得し、判定結果を判定結果ＤＢ１５に格納する。
【００５２】
例えば、判定部２３は、θ＝０．０１などと定義して、データｘとデータｙの因果関係を判定する場合、（１）因果関係がｘからｙ（ｘ→ｙ）であると仮定してＰＮＬモデル（関数ｆ１，ｆ２−１）を具体的に推定する。続いて、判定部２３は、（２）因果関係がｙからｘ（ｙ→ｘ）であると仮定してＰＮＬモデル（関数ｆ１，ｆ２−１）を具体的に推定する。その後、判定部２３は、（１）と（２）のうち、ＰＮＬモデルの仮定をより満たす方向を因果の方向（因果の向き）と判定する。
【００５３】
詳細には、判定部２３は、データ間の判定結果とスコア（式（５）の値）とを表示することもできる。例えば、判定部２３は、データＡとデータＢの因果関係の判定結果として、「データＡ→データＢ，スコア（０．０５）」と「データＢ→データＡ，スコア（０．３９）」などを生成して、判定結果を視覚的にディスプレイ等に表示することもできる。
【００５４】
また、データ間の因果関係の判定例としては、血液検査の各項目と発熱との因果関係を判定し、どの項目に対応する処置を行えば効果的に解熱できるかを特定することが考えられる。また、店舗内のお客の人数、駐車場の車の台数、クーポンの発券数などの各項目と売上との因果関係を特定し、売上を上げるためにはどの項目を実行すればよいかを特定することが考えられる。
【００５５】
［問題点の改善］
次に、実施例１による手法により、同様の条件で、一般手法で発生する問題点１および問題点２が改善することを説明する。ここでは、関数ｆ１、ｆ２、ｆ２−１をＮＮでモデル化し、独立性評価指標Ｉ（ｘ，ｅ）としてＨＳＩＣを利用し、可逆性評価指標Ｓ（ｙ，ｙ´）として二乗誤差を利用し、勾配法で各ＮＮを推定する。
【００５６】
まず、データｘとデータｙにおいて、ｘからｙ（ｘ→ｙ）に因果の方向があると仮定して推定する。例えば、ｆ１（ｘ）がｘ２で近似的に等しく、ｆ２−１（ｙ）がｙ１／３で近似的に等しいなど、各ＮＮが真の関数を近似できた場合、式（５）を０（最小値）とすることができる。なお、定数関数の場合、ｅが定数となり独立性評価指標Ｉ（ｘ，ｅ）＝０となるが、ｆ２−１（ｙ）が定数なので、ｙ´＝ｆ２（ｆ２−１（ｙ））≠ｙとなり、可逆性評価指標Ｓ（ｙ，ｙ´）＝０を達成できないので、実施例１による手法では、定数関数を除外して仮定１を満たすことができる。
【００５７】
次に、データｘとデータｙにおいて、ｙからｘ（ｙ→ｘ）に因果の方向があると仮定して推定する。この場合、式（５）の誤差関数「Ｉ（ｘ，ｙ）＋λＳ（ｙ，ｙ´）」＝０となる関数は、残差が存在するので、生成することができない。
【００５８】
したがって、実施例１による手法では、関数ｆ２と関数ｆ２−１とが逆関数となるように学習されるので、仮定２を満たす。この結果、実施例１による手法では、仮定１と仮定２を満たすとともに、適切なモデル（関数）を推定してＰＮＬモデルに適用できるので、データｘとデータｙにおいて、ｘからｙ（ｘ→ｙ）に因果の方向があると正しく判定することができる。
【００５９】
［処理の流れ］
図５は、実施例１にかかる処理の流れを示すフローチャートである。ここでは、学習処理を実行した後に、因果関係の判定処理を行う一連の流れを説明するが、これに限定されず、各処理は別々のタイミングで実行することができる。
【００６０】
図５に示すように、構築部２１は、処理開始が指示されると（Ｓ１０１：Ｙｅｓ）、ＮＬモデルの式（２）における２つの関数ｆ１と関数ｆ２−１をＮＮでモデル化するとともに、関数ｆ２−１の出力を逆変換する逆変換器ｆ２を追加したモデル化を実行する（Ｓ１０２）。
【００６１】
続いて、学習部２２は、学習データを用いて、誤差が最小になるように、構築されたモデル内の各ＮＮを学習し（Ｓ１０３）、学習が完了すると、学習結果を学習結果ＤＢ１４に格納する（Ｓ１０４）。
【００６２】
その後、判定部２３は、判定対象のデータを取得し、判定処理の開始が指示されると（Ｓ１０５：Ｙｅｓ）、学習結果を用いた関数を適用したＰＮＬモデルを構築する（Ｓ１０６）。
【００６３】
そして、判定部２３は、構築したＰＮＬモデルを用いて、判定対象データの因果関係を判定（推定）し（Ｓ１０７）、判定した因果関係を判定結果ＤＢ１５に格納したり、ディスプレイ等の表示部に表示したりする（Ｓ１０８）。
【００６４】
［効果］
上述したように、情報処理装置１０は、ＰＮＬモデルを仮定してデータから因果探索をする際、逆変換器を同時に学習することで逆関数の存在仮定を満たす関数を推定することができる。したがって、情報処理装置１０は、逆関数の存在性の度合いを定量化することができ、関数を正解に推定することができる。この結果、情報処理装置１０は、データ間の因果方向の判定のためにＰＮＬモデルを仮定してデータ間の因果関係をデータから判定することができる。
【実施例２】
【００６５】
さて、これまで本発明の実施例について説明したが、本発明は上述した実施例以外にも、種々の異なる形態にて実施されてよいものである。
【００６６】
［データや数値等］
上記実施例で用いたデータ例、数値例、表示例等は、あくまで一例であり、任意に変更することができる。また、入力データや学習方法などもあくまで一例であり、任意に変更することができる。
【００６７】
また、関数ｆ１、ｆ２、ｆ２−１のモデル化には、ＮＮや線形モデルなどを採用することができる。ＮＮは、あらかじめ強い非線形関係などが判明している場合に有効であり、近似可能な関数の自由度が高いため、複雑な関係を推定することができる。線形モデルは、未知のデータに対する最初の簡単な試行などに有効であり、最適化（学習）が容易であり、学習処理の高速化が図れる。
【００６８】
［学習データの例］
上記学習データには様々な分野のデータを採用することができるので、その一例を説明するが、あくまで一例であり、これらに限定されるものではない。ここでは、ｘからｙに因果関係（ｘ→ｙ）があるもしくはあると想定される例を例示する。
【００６９】
例えば、医療の分野の場合、病状をｘ、体温などの検査項目をｙ、測定機器のノイズなどをｅとする学習データを用いることができる。また、経済の分野では、顧客のポイントカード所持率をｘ、店舗の売上をｙ、天気などのその他の原因因子をｅとする学習データを用いることができる。また、材料の分野では、分子構造をｘ、材料強度をｙ、測定機器のノイズをｅとする学習データを用いることができる。また、製造の分野では、製造温度をｘ、製品の品質をｙ、測定機器のノイズをｅとする学習データを用いることができる。
【００７０】
［システム］
上記文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。
【００７１】
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散や統合の具体的形態は図示のものに限られない。つまり、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。
【００７２】
さらに、各装置にて行なわれる各処理機能は、その全部または任意の一部が、ＣＰＵおよび当該ＣＰＵにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。
【００７３】
［ハードウェア］
図６は、ハードウェア構成例を説明する図である。図６に示すように、情報処理装置１０は、通信装置１０ａ、ＨＤＤ（Hard  Disk  Drive）１０ｂ、メモリ１０ｃ、プロセッサ１０ｄを有する。また、図６に示した各部は、バス等で相互に接続される。
【００７４】
通信装置１０ａは、ネットワークインタフェースカードなどであり、他のサーバとの通信を行う。ＨＤＤ１０ｂは、図３に示した機能を動作させるプログラムやＤＢを記憶する。
【００７５】
プロセッサ１０ｄは、図３に示した各処理部と同様の処理を実行するプログラムをＨＤＤ１０ｂ等から読み出してメモリ１０ｃに展開することで、図３等で説明した各機能を実行するプロセスを動作させる。例えば、このプロセスは、情報処理装置１０が有する各処理部と同様の機能を実行する。具体的には、プロセッサ１０ｄは、構築部２１、学習部２２、判定部２３等と同様の機能を有するプログラムをＨＤＤ１０ｂ等から読み出す。そして、プロセッサ１０ｄは、構築部２１、学習部２２、判定部２３等と同様の処理を実行するプロセスを実行する。
【００７６】
このように、情報処理装置１０は、プログラムを読み出して実行することで探索方法を実行する情報処理装置として動作する。また、情報処理装置１０は、媒体読取装置によって記録媒体から上記プログラムを読み出し、読み出された上記プログラムを実行することで上記した実施例と同様の機能を実現することもできる。なお、この他の実施例でいうプログラムは、情報処理装置１０によって実行されることに限定されるものではない。例えば、他のコンピュータまたはサーバがプログラムを実行する場合や、これらが協働してプログラムを実行するような場合にも、本発明を同様に適用することができる。
【符号の説明】
【００７７】
１０  情報処理装置
１１  通信部
１２  記憶部
１３  学習データＤＢ
１４  学習結果ＤＢ
１５  判定結果ＤＢ
２０  制御部
２１  構築部
２２  学習部
２３  判定部
【図１】
2020177427.tif 000008
【図２】
2020177427.tif 000009
【図３】
2020177427.tif 000010
【図４】
2020177427.tif 000011
【図５】
2020177427.tif 000012
【図６】
2020177427.tif 000013