(57)【要約】【課題】  ベイジアンネットのモデルがループを含む場合に、未観測ノードの値を算出する際の収束の可能性を高めた情報処理装置を提供する。【解決手段】  故障診断装置１０は、未観測ノードの初期値を記憶するための初期値記憶部１８と、ベイジアンネットモデルの分散を調整した分散調整モデルに初期値記憶部１８から読み出した初期値を設定して収束計算を行う分散調整モデル計算部２２と、分散調整モデル計算部２２により算出された未観測ノードの確率分布でもって初期値記憶部１８の初期値を更新する初期値更新部２６と、未観測ノードの確率分布の収束計算および初期値の更新が所定回数行われたときに、初期値記憶部１８から読み出した初期値を適用してループ付きベイジアンネットモデルの未観測ノードの確率分布を収束計算により算出する元モデル計算部１４と、未観測ノードの確率分布の算出結果に基づいて故障原因を出力する故障原因出力部２８を備える。【選択図】図１
2005276152.tif 000002
【特許請求の範囲】
【請求項１】
それぞれに条件付確率が付与された複数のノードで構成されるベイジアンネットのモデルを用いて、観測された事象から未観測の事象を評価するための情報処理装置であって、計算対象の前記ベイジアンネットのモデルがループ部分を有するループ付きベイジアンネットモデルである場合に、観測ノードの事象からの確率伝搬の収束計算により前記未観測ノードの確率分布を算出する情報処理装置において、
前記収束計算を行う際に前記未観測ノードに設定する初期値を記憶するための初期値記憶手段と、
前記未観測ノードに設定する初期値として前記初期値記憶手段に無情報事前分布を書き込む初期値設定手段と、
前記ループ付きベイジアンネットモデルの少なくとも１つのノードの条件付き確率の分散を大きく調整した分散調整モデルを収束計算の対象として、前記分散調整モデルに前記初期値記憶手段から読み出した初期値を適用して収束計算を行い未観測ノードの確率分布を算出する分散調整モデル計算手段と、
前記分散調整モデル計算手段により算出された未観測ノードの確率分布に基づいて前記初期値記憶手段に記憶する初期値を更新する初期値更新手段と、
前記分散調整モデル計算手段による未観測ノードの確率分布の収束計算と前記初期値更新手段による前記初期値の更新が所定回数行われたときに、前記初期値記憶手段から読み出した初期値を元のループ付きベイジアンネットモデルに適用して、前記ループ付きベイジアンネットモデルの未観測ノードの確率分布を収束計算により算出する元モデル計算手段と、
を備えることを特徴とする情報処理装置。
【請求項２】
前記初期値更新手段は、前記分散調整モデル計算手段により算出された未観測ノードの確率分布と、前記分散調整モデル計算手段による計算で前記未観測ノードに適用した初期値とに基づいて前記初期値記憶手段に記憶する初期値を更新する、ことを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記収束計算において、少なくとも一の未観測ノードの初期値を固定して確率伝搬の収束計算を行うことを特徴とする請求項１に記載の情報処理装置。
【請求項４】
前記分散調整モデル計算手段は、所定回数行われる前記収束計算において、計算対象の分散調整モデルの分散を前記ループ付きベイジアンネットモデルの分散に段階的に近づけることを特徴とする請求項１に記載の情報処理装置。
【請求項５】
前記分散調整モデル計算手段は、前記分散調整モデルの収束計算における収束の速度に応じて、その収束計算により得られた確率分布を初期値とする次の収束計算の対象となる分散調整モデルの分散を調整することを特徴とする請求項１に記載の情報処理装置。
【請求項６】
前記分散調整モデル計算手段は、
加減算器および乗除算器からなる演算手段と、
係数α（０＜α＜１）の値を複数記憶したテーブルと、
を備え、
前記演算手段が、前記ループ付きベイジアンネットモデルのノードにおける状態数ｎ、各状態が起きる条件付確率Ｐｉ（１≦ｉ≦ｎ）、および前記テーブルから読み出した係数αを用いて、前記分散調整モデルのノードの条件付確率Ｐａｉ＝（Ｐｉ−１／ｎ）×α＋１／ｎを計算して、前記分散調整モデルを求めることを特徴とする請求項１に記載の情報処理装置。
【請求項７】
それぞれに条件付確率が付与された複数のノードで構成されるベイジアンネットのモデルを用いて、観測された事象から未観測の事象を評価するための情報処理装置であって、計算対象の前記ベイジアンネットのモデルがループ部分を有するループ付きベイジアンネットモデルである場合に、観測ノードの事象からの確率伝搬の収束計算により前記観測ノードに対する前記未観測ノードの寄与を算出する情報処理装置において、
前記収束計算を行う際に前記未観測ノードに設定する初期値を記憶するための初期値記憶手段と、
前記未観測ノードに設定する初期値として前記初期値記憶手段に無情報事前分布を書き込む初期値設定手段と、
前記ループ付きベイジアンネットモデルの少なくとも１つのノードの条件付き確率の分散を大きく調整した分散調整モデルを収束計算の対象として、前記分散調整モデルに前記初期値記憶手段から読み出した初期値を適用して収束計算を行い未観測ノードの確率分布を算出する分散調整モデル計算手段と、
前記分散調整モデル計算手段により算出された未観測ノードの確率分布に基づいて前記初期値記憶手段に記憶する初期値を更新する初期値更新手段と、
前記分散調整モデル計算手段による未観測ノードの確率分布の収束計算と前記初期値更新手段による前記初期値の更新が所定回数行われたときに、前記初期値記憶手段から読み出した初期値を元のループ付きベイジアンネットモデルに適用して、前記ループ付きベイジアンネットモデルの未観測ノードの確率分布を収束計算により算出する元モデル計算手段と、
前記元モデル計算手段にて求められた未観測ノードの確率分布に基づいて前記観測ノードに対する前記未観測ノードの寄与を求める寄与計算手段と、
を備え、
前記寄与計算手段は、前記分散調整モデル計算手段による計算が収束しなかった場合に、収束計算が収束した分散調整モデルのうち元のループ付きベイジアンネットモデルの分散に最も近い分散を有する分散調整モデルで求めた前記未観測ノードの確率分布に基づいて前記未観測ノードの寄与を求めることを特徴とする情報処理装置。
【請求項８】
それぞれに条件付確率が付与された複数のノードで構成されるベイジアンネットのモデルを用いて、観測された事象から未観測の事象を評価するための情報処理方法であって、計算対象の前記ベイジアンネットのモデルがループ部分を有するループ付きベイジアンネットモデルである場合に、観測ノードの事象からの確率伝搬の収束計算により前記未観測ノードの確率分布を算出する情報処理方法において、
前記未観測ノードに設定する初期値として前記収束計算を行う際に前記未観測ノードに設定する初期値を記憶するための初期値記憶手段に無情報事前分布を書き込む初期値設定ステップと、
前記ループ付きベイジアンネットモデルの少なくとも１つのノードの条件付き確率の分散を大きく調整した分散調整モデルを収束計算の対象として、前記分散調整モデルに前記初期値記憶手段から読み出した初期値を適用して収束計算を行い未観測ノードの確率分布を算出する分散調整モデル計算ステップと、
前記分散調整モデル計算ステップにおいて算出された未観測ノードの確率分布に基づいて前記初期値記憶手段に記憶する初期値を更新する初期値更新ステップと、
前記分散調整モデル計算ステップにおける未観測ノードの確率分布の収束計算と前記初期値更新ステップにおける前記初期値の更新が所定回数行われたときに、前記初期値記憶手段から読み出した初期値を元のループ付きベイジアンネットモデルに適用して、前記ループ付きベイジアンネットモデルの未観測ノードの確率分布を収束計算により算出する元モデル計算ステップと、
を備えることを特徴とする情報処理方法。
【請求項９】
前記初期値更新ステップは、前記分散調整モデル計算ステップにおいて算出された未観測ノードの確率分布と、前記分散調整モデル計算ステップにおける計算で前記未観測ノードに適用した初期値とに基づいて前記初期値記憶手段に記憶する初期値を更新する、ことを特徴とする請求項８に記載の情報処理方法。
【請求項１０】
前記収束計算において、少なくとも一の未観測ノードの初期値を固定して確率伝搬の収束計算を行うことを特徴とする請求項８に記載の情報処理方法。
【請求項１１】
所定回数行われる前記分散調整モデル計算ステップにおいて、計算対象の分散調整モデルの分散を前記ループ付きベイジアンネットモデルの分散に段階的に近づけることを特徴とする請求項８に記載の情報処理方法。
【請求項１２】
前記分散調整モデル計算ステップにおける収束計算の収束の速度に応じて、その収束計算により得られた確率分布を初期値とする次の分散調整モデル計算ステップで収束計算の対象となる分散調整モデルの分散を調整することを特徴とする請求項８に記載の情報処理方法。
【請求項１３】
前記分散調整モデル計算ステップは、
加減算器および乗除算器からなる演算手段が、前記ループ付きベイジアンネットモデルのノードにおける状態数ｎ、各状態が起きる条件付確率Ｐｉ（１≦ｉ≦ｎ）、および、係数α（０＜α＜１）の値を複数記憶したテーブルから読み出した係数αを用いて、前記分散調整モデルのノードの条件付確率Ｐａｉ＝（Ｐｉ−１／ｎ）×α＋１／ｎを計算して、前記分散調整モデルを求めることを特徴とする請求項８に記載の情報処理方法。
【請求項１４】
それぞれに条件付確率が付与された複数のノードで構成されるベイジアンネットのモデルを用いて、観測された事象から未観測の事象を評価するための情報処理方法であって、計算対象の前記ベイジアンネットのモデルがループ部分を有するループ付きベイジアンネットモデルである場合に、観測ノードの事象からの確率伝搬の収束計算により前記観測ノードに対する前記未観測ノードの寄与を算出する情報処理方法において、
前記未観測ノードに設定する初期値として前記収束計算を行う際に前記未観測ノードに設定する初期値を記憶するための初期値記憶手段に無情報事前分布を書き込む初期値設定ステップと、
前記ループ付きベイジアンネットモデルの少なくとも１つのノードの条件付き確率の分散を大きく調整した分散調整モデルを収束計算の対象として、前記分散調整モデルに前記初期値記憶手段から読み出した初期値を適用して収束計算を行い未観測ノードの確率分布を算出する分散調整モデル計算ステップと、
前記分散調整モデル計算ステップにおいて算出された未観測ノードの確率分布に基づいて前記初期値記憶手段に記憶する初期値を更新する初期値更新ステップと、
前記分散調整モデル計算ステップにおける未観測ノードの確率分布の収束計算と前記初期値更新ステップにおける前記初期値の更新が所定回数行われたときに、前記初期値記憶手段から読み出した初期値を元のループ付きベイジアンネットモデルに適用して、前記ループ付きベイジアンネットモデルの未観測ノードの確率分布を収束計算により算出する元モデル計算ステップと、
前記元モデル計算ステップにて求められた未観測ノードの確率分布に基づいて前記観測ノードに対する前記未観測ノードの寄与を求める寄与計算ステップと、
を備え、
前記寄与計算ステップは、前記分散調整モデル計算ステップにおける計算が収束しなかった場合に、収束計算が収束した分散調整モデルのうち元のループ付きベイジアンネットモデルの分散に最も近い分散を有する分散調整モデルで求めた前記未観測ノードの確率分布に基づいて前記未観測ノードの寄与を求めることを特徴とする情報処理方法。
【請求項１５】
それぞれに条件付確率が付与された複数のノードで構成されるベイジアンネットのモデルを用いて、観測された事象から未観測の事象を評価するために適用され、計算対象の前記ベイジアンネットのモデルがループ部分を有するループ付きベイジアンネットモデルである場合に、観測ノードの事象からの確率伝搬の収束計算により前記未観測ノードの確率分布を算出するプログラムであって、コンピュータに、
前記未観測ノードに設定する初期値として前記収束計算を行う際に前記未観測ノードに設定する初期値を記憶するための初期値記憶手段に無情報事前分布を書き込む初期値設定ステップと、
前記ループ付きベイジアンネットモデルの少なくとも１つのノードの条件付き確率の分散を大きく調整した分散調整モデルを収束計算の対象として、前記分散調整モデルに前記初期値記憶手段から読み出した初期値を適用して収束計算を行い未観測ノードの確率分布を算出する分散調整モデル計算ステップと、
前記分散調整モデル計算ステップにおいて算出された未観測ノードの確率分布に基づいて前記初期値記憶手段に記憶する初期値を更新する初期値更新ステップと、
前記分散調整モデル計算ステップにおける未観測ノードの確率分布の収束計算と前記初期値更新ステップにおける前記初期値の更新が所定回数行われたときに、前記初期値記憶手段から読み出した初期値を元のループ付きベイジアンネットモデルに適用して、前記ループ付きベイジアンネットモデルの未観測ノードの確率分布を収束計算により算出する元モデル計算ステップと、
を実行させることを特徴とするプログラム。
【請求項１６】
それぞれに条件付確率が付与された複数のノードで構成されるベイジアンネットのモデルを用いて、観測された事象から未観測の事象を評価するために適用され、計算対象の前記ベイジアンネットのモデルがループ部分を有するループ付きベイジアンネットモデルである場合に、観測ノードの事象からの確率伝搬の収束計算により前記観測ノードに対する前記未観測ノードの寄与を算出するプログラムであって、コンピュータに、
前記未観測ノードに設定する初期値として前記収束計算を行う際に前記未観測ノードに設定する初期値を記憶するための初期値記憶手段に無情報事前分布を書き込む初期値設定ステップと、
前記ループ付きベイジアンネットモデルの少なくとも１つのノードの条件付き確率の分散を大きく調整した分散調整モデルを収束計算の対象として、前記分散調整モデルに前記初期値記憶手段から読み出した初期値を適用して収束計算を行い未観測ノードの確率分布を算出する分散調整モデル計算ステップと、
前記分散調整モデル計算ステップにおいて算出された未観測ノードの確率分布に基づいて前記初期値記憶手段に記憶する初期値を更新する初期値更新ステップと、
前記分散調整モデル計算ステップにおける未観測ノードの確率分布の収束計算と前記初期値更新ステップにおける前記初期値の更新が所定回数行われたときに、前記初期値記憶手段から読み出した初期値を元のループ付きベイジアンネットモデルに適用して、前記ループ付きベイジアンネットモデルの未観測ノードの確率分布を収束計算により算出する元モデル計算ステップと、
前記元モデル計算ステップにて求められた未観測ノードの確率分布に基づいて前記観測ノードに対する前記未観測ノードの寄与を求める寄与計算ステップと、
を実行させ、
前記寄与計算ステップは、前記分散調整モデル計算ステップにおける計算が収束しなかった場合に、収束計算が収束した分散調整モデルのうち元のループ付きベイジアンネットモデルの分散に最も近い分散を有する分散調整モデルで求めた前記未観測ノードの確率分布に基づいて前記未観測ノードの寄与を求めることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、それぞれに条件付確率が付与された複数のノードで構成されるベイジアンネットのモデルを用いて、観測された事象から未観測の事象を評価するための情報処理装置および情報処理方法に関する。
【背景技術】
【０００２】
情報技術の応用範囲が飛躍的に拡大している中で、これまで計算機にとっては比較的扱いにくかった不確実で非明示的な情報を取り扱うことが必要になってきている。例えばインターネットの発達により、ユーザの年齢、職業などの基本属性、嗜好性、これまでした買物や質問のような行動履歴などのデータなどが集積されているので、そこからある顧客層に人気のある情報や商品、あるいは逆に、ある対象に興味を持つユーザ層を見つけ出し、こうした情報を積極的に使った情報サービスも考えられている。また、知的情報処理システムが実際の問題領域において観測データから自律的に学習を行い、不確実な情報からでも確率的な推論や予測を行う仕組みも期待されている。例えば、複雑なシステムにおいて障害が発生した時の状況を全てデータベースに記録しておき、後で何か障害が発生した時に自動的に原因となる可能性の高い要因を推定することが考えられる。
【０００３】
こうした要請に応えるために，統計データに基づいてモデルを構築する統計的学習理論や、不確実性のもとでの確率推論の研究が重要になっている。とくに意思決定理論に基づいてシステムを制御したり有用な知識を表現するには、比較的複雑な構造を持った確率モデルが必要になる。このような確率モデルの一つに，変数間の依存関係や因果関係を有向グラフで表すベイジアンネットがある。これは不確実性をふくむ事象の予測や合理的な意志決定、障害診断などに利用することのできる確率モデル（グラフィカルモデル）の一種である。最近、このモデル上での確率推論アルゴリズムの進歩や、不確実性を含む様々な問題への応用、ソフトウェアの普及などにより、様々な分野で期待が高まっている。
【０００４】
ベイジアンネットを使うことで、一部の変数を観測した時のその他の変数についての確率分布を求めたり、確率値が最も大きい状態をその変数の予測結果として得ることができる。観測された変数の情報（ｅ）から、求めたい確率変数（Ｘ）の確率値、すなわち事後確率（Ｘ｜ｅ）を求め、それによりＸの期待値や確信度最大の値（ＭＡＰ値）、ある仮説の確信度（いくつかの変数が特定の値の組をとる同時確率）などを評価するわけである。こうした確率計算に基づく推論が確率的推論と呼ばれている。
【０００５】
ベイジアンネットによる確率的推論は、ｉ） 観測された変数の値ｅをノードにセットする、ｉｉ）親ノードも観測値も持たないノードに事前確率分布を与える、ｉｉｉ）知りたい対象の変数Ｘの事後確率Ｐ（Ｘ｜ｅ）を得る、という手順で行なわれる。ｉｉｉ）における事後確率を求めるために、観測された情報からの確率伝搬（変数間の局所計算）によって各変数の確率分布を更新していく確率伝搬法（belief propagation）と呼ばれる計算法が使われる。
【０００６】
ベイジアンネットのリンクの向きを考慮しないグラフ構造内の全てのパスがループを持たない時、そのベイジアンネットはsingly connectedなネットワークと呼ばれる。singly
connectedなベイジアンネットの場合には、親ノード、子ノードが複数存在するような構造のネットワークでも、条件付独立性の性質を使うことで、各ノードについて上流からの伝搬、下流からの伝搬、上流への伝搬、下流への伝搬の４種について確率伝搬計算を行なうことで計算は完了する。またその計算量はノード数にたいして線形オーダである。
【０００７】
リンクの向きを考慮しないでネットワークを見たときに、どこか一つでもパスがループしている部分がある時、このベイジアンネットはmultiply connected と呼ばれる。この場合には単純にリンクに沿って確率を伝搬していくだけでは、その計算の収束性が保証できない。しかし、１９９０年代のはじめにjunction treeアルゴリズムと呼ばれる手法が開発されたことで、様々な構造にたいするベイジアンネットの有用性が高まった。このjunction treeアルゴリズムを実装したソフトウェアも製品化されており、これを使ったシステムの実用化も進みつつある。
【０００８】
一方でmultiply connectedなグラフを変換せず、そのまま確率計算を行う統計力学的な近似アルゴリズムの理論研究が進み、中でもloopy belief propagationアルゴリズムと呼ばれるアルゴリズムが最近注目を集めている。Multiply connectedなベイジアンネットに対して強引に局所的な確率伝搬法を繰り返し適用してみると、経験的に次のような良好な性質、グラフ構造の上の局所計算の相互作用によって部分の結果が徐々に全体に広がる場合には最終的にはほとんどのノードが正しい確率値に近い近似解に収束すること、また近似的な解に収束しないような場合の多くはノードの値が振動し、正しい解でないことも比較的容易に判別できること、などが実験的に示された。このloopy belief propagationはベイジアンネットを含むグラフィカルモデル一般について、アルゴリズムの改良やその収束性の解析などに関する理論研究が最近盛んである（非特許文献１）。
【非特許文献１】本村陽一  「ベイジアンネットワーク」  技術報告NC2003-38、電子情報通信学会、p25-30
【発明の開示】
【発明が解決しようとする課題】
【０００９】
しかし、上記したjunction treeアルゴリズムは、ノード数が増え、グラフ構造が複雑になるにつれ，変換操作自体の計算コストが無視できない問題となる。ネットワーク構造が常に変わらない場合には、一度だけ変換を行えば良いが、状況によってネットワーク構造が変化する場合にはその都度グラフ構造を変換しなければならず、変換のための計算コストは深刻である。またグラフ構造の性質によっては効率のよいjunction treeに変換できず、結果として巨大なクラスターが生じることも起こり得る。その場合にはクラスター内の確率計算のために多数の確率変数の全状態の組み合わせについての計算が必要なために計算量が増大する。
【００１０】
また、loopy belief propagationアルゴリズムによれば、グラフ構造の上の局所計算の相互作用によって部分の結果が徐々に全体に広がる場合には、最終的にほとんどのノードが正しい確率値に近い近似解に収束することが経験的に知られているが、グラフ構造によっては、ノードの値が振動して近似解に収束しない場合もある。
【００１１】
本発明は、上記背景に鑑み、ベイジアンネットのモデルがループを含む場合に、未観測ノードの値を確率伝搬の収束計算によって算出する際の収束の可能性を高めた情報処理装置および情報処理方法を提供することを目的とする。
【課題を解決するための手段】
【００１２】
本発明の情報処理装置は、それぞれに条件付確率が付与された複数のノードで構成されるベイジアンネットのモデルを用いて、観測された事象から未観測の事象を評価するための情報処理装置であって、計算対象の前記ベイジアンネットのモデルがループ部分を有するループ付きベイジアンネットモデルである場合に、観測ノードの事象からの確率伝搬の収束計算により前記未観測ノードの確率分布を算出する情報処理装置において、前記収束計算を行う際に前記未観測ノードに設定する初期値を記憶するための初期値記憶手段と、前記未観測ノードに設定する初期値として前記初期値記憶手段に無情報事前分布を書き込む初期値設定手段と、前記ループ付きベイジアンネットモデルの少なくとも１つのノードの条件付き確率の分散を大きく調整した分散調整モデルを収束計算の対象として、前記分散調整モデルに前記初期値記憶手段から読み出した初期値を適用して収束計算を行い未観測ノードの確率分布を算出する分散調整モデル計算手段と、前記分散調整モデル計算手段により算出された未観測ノードの確率分布に基づいて前記初期値記憶手段に記憶する初期値を更新する初期値更新手段と、前記分散調整モデル計算手段による未観測ノードの確率分布の収束計算と前記初期値更新手段による前記初期値の更新が所定回数行われたときに、前記初期値記憶手段から読み出した初期値を元のループ付きベイジアンネットモデルに適用して、前記ループ付きベイジアンネットモデルの未観測ノードの確率分布を収束計算により算出する元モデル計算手段とを備える。
【００１３】
この構成により、元のループ付きベイジアンネットモデルの分散を調整した分散調整モデルを用いて求めた確率分布に基づいて決定した初期値を未観測ノードに適用して元のループ付きベイジアンネットモデルの収束計算を行うので、最初に設定される無情報事前分布より未観測ノードの正しい確率分布に近い初期値が未観測ノードに設定され、元のループ付きベイジアンネットモデルを用いた収束計算が収束する可能性を高めることができる。また、分散調整モデルを用いた収束計算では、条件付確率の分散が大きいモデルの方が収束する可能性が高いという発明者が見出した知見に基づいて、元のループ付きベイジアンネットモデルより分散を大きく調整した分散調整モデルを用いているので、分散調整モデルを用いた収束計算は元のループ付きベイジアンネットモデルより高い確率で収束する。これにより、元のループ付きベイジアンネットモデルの収束計算に適用する初期値を適切に算出できる可能性を高めることができる。なお、分散調整モデルを用いて求めた確率分布をそのまま初期値として用いて、元のループ付きベイジアンネットモデルの収束計算を行ってもよい。
【００１４】
また、上記情報処理装置において、前記初期値更新手段は、前記分散調整モデル計算手段により算出された未観測ノードの確率分布と、前記分散調整モデル計算手段による計算で前記未観測ノードに適用した初期値とに基づいて前記初期値記憶手段に記憶する初期値を更新してもよい。
【００１５】
このように分散調整モデル計算手段で求めた未観測ノードの確率分布に加えて、その計算に適用した初期値をも考慮して新しい初期値を決定することにより、分散調整モデルの収束計算を収束させた古い初期値の要素を新しい初期値に取り込むので、分散調整モデルの収束計算を収束させる可能性の高い初期値を決定できる。例えば、計算に適用した初期値Ｐ１と算出された確率分布Ｐ２とを用いて、新しい初期値Ｐ３を、Ｐ３＝μ×Ｐ１＋（１−μ）×Ｐ２によって求めることができる。このとき用いる係数μは、分散調整モデル計算手段での計算の収束速度等に応じて決定してもよいし、あらかじめ記憶手段に記憶された値を読み出して用いてもよい。
【００１６】
また、上記情報処理装置は、前記収束計算において、少なくとも一の未観測ノードの初期値を固定して確率伝搬の収束計算を行ってもよい。
【００１７】
この構成により、値が固定された初期値の数が増えるので、収束計算の収束の可能性を高めることができる。
【００１８】
前記分散調整モデル計算手段は、所定回数行われる前記収束計算において、計算対象の分散調整モデルの分散を前記ループ付きベイジアンネットモデルの分散に段階的に近づける構成としてもよい。
【００１９】
この構成により、未観測ノードの初期値を段階的に正しい確率分布に近づけるので、分散調整モデルを用いた収束計算が収束する可能性を高めることができる。
【００２０】
前記分散調整モデル計算手段は、前記分散調整モデルの収束計算における収束の速度に応じて、その収束計算により得られた確率分布を初期値とする次の収束計算の対象となる分散調整モデルの分散を調整する構成としてもよい。
【００２１】
この構成により、分散調整モデルの分散の変化幅を変えることができるので、収束の速度に応じて分散調整モデルでの収束計算を適切な回数にでき、計算コストを低減できる。
【００２２】
前記分散調整モデル計算手段は、加減算器および乗除算器からなる演算手段と、係数α（０＜α＜１）の値を複数記憶したテーブルとを備え、前記演算手段が、前記ループ付きベイジアンネットモデルのノードにおける状態数ｎ、各状態が起きる条件付確率Ｐｉ（１≦ｉ≦ｎ）、および前記テーブルから読み出した係数αを用いて、前記分散調整モデルのノードの条件付確率Ｐａｉ＝（Ｐｉ−１／ｎ）×α＋１／ｎを計算して、前記分散調整モデルを求める構成としてもよい。
【００２３】
この構成により、テーブルから読み出した係数αを用いて適切な分散調整モデルを求めることができる。なお、係数αは数値に限らず、０から１の間の値をとる関数であってもよい。
【００２４】
本発明の別の態様に係る情報処理装置は、それぞれに条件付確率が付与された複数のノードで構成されるベイジアンネットのモデルを用いて、観測された事象から未観測の事象を評価するための情報処理装置であって、計算対象の前記ベイジアンネットのモデルがループ部分を有するループ付きベイジアンネットモデルである場合に、観測ノードの事象からの確率伝搬の収束計算により前記観測ノードに対する前記未観測ノードの寄与を算出する情報処理装置において、前記収束計算を行う際に前記未観測ノードに設定する初期値を記憶するための初期値記憶手段と、前記未観測ノードに設定する初期値として前記初期値記憶手段に無情報事前分布を書き込む初期値設定手段と、前記ループ付きベイジアンネットモデルの少なくとも１つのノードの条件付き確率の分散を大きく調整した分散調整モデルを収束計算の対象として、前記分散調整モデルに前記初期値記憶手段から読み出した初期値を適用して収束計算を行い未観測ノードの確率分布を算出する分散調整モデル計算手段と、前記分散調整モデル計算手段により算出された未観測ノードの確率分布に基づいて前記初期値記憶手段に記憶する初期値を更新する初期値更新手段と、前記分散調整モデル計算手段による未観測ノードの確率分布の収束計算と前記初期値更新手段による前記初期値の更新が所定回数行われたときに、前記初期値記憶手段から読み出した初期値を元のループ付きベイジアンネットモデルに適用して、前記ループ付きベイジアンネットモデルの未観測ノードの確率分布を収束計算により算出する元モデル計算手段と、前記元モデル計算手段にて求められた未観測ノードの確率分布に基づいて前記観測ノードに対する前記未観測ノードの寄与を求める寄与計算手段とを備え、前記寄与計算手段は、前記分散調整モデル計算手段による計算が収束しなかった場合に、収束計算が収束した分散調整モデルのうち元のループ付きベイジアンネットモデルの分散に最も近い分散を有する分散調整モデルで求めた前記未観測ノードの確率分布に基づいて前記未観測ノードの寄与を求める。
【００２５】
このように分散調整モデル計算手段による収束計算が収束しなかった場合には、元のモデルの分散に最も近い分散を有する分散調整モデルで求めた未観測ノードの確率分布に基づいて観測ノードに対する未観測ノードの寄与を求めることにより、収束計算不能の場合にも適切な解を得て後の処理を続行できる。
【００２６】
本発明の情報処理方法は、それぞれに条件付確率が付与された複数のノードで構成されるベイジアンネットのモデルを用いて、観測された事象から未観測の事象を評価するための情報処理方法であって、計算対象の前記ベイジアンネットのモデルがループ部分を有するループ付きベイジアンネットモデルである場合に、観測ノードの事象からの確率伝搬の収束計算により前記未観測ノードの確率分布を算出する情報処理方法において、前記未観測ノードに設定する初期値として前記収束計算を行う際に前記未観測ノードに設定する初期値を記憶するための初期値記憶手段に無情報事前分布を書き込む初期値設定ステップと、前記ループ付きベイジアンネットモデルの少なくとも１つのノードの条件付き確率の分散を大きく調整した分散調整モデルを収束計算の対象として、前記分散調整モデルに前記初期値記憶手段から読み出した初期値を適用して収束計算を行い未観測ノードの確率分布を算出する分散調整モデル計算ステップと、前記分散調整モデル計算ステップにおいて算出された未観測ノードの確率分布に基づいて前記初期値記憶手段に記憶する初期値を更新する初期値更新ステップと、前記分散調整モデル計算ステップにおける未観測ノードの確率分布の収束計算と前記初期値更新ステップにおける前記初期値の更新が所定回数行われたときに、前記初期値記憶手段から読み出した初期値を元のループ付きベイジアンネットモデルに適用して、前記ループ付きベイジアンネットモデルの未観測ノードの確率分布を収束計算により算出する元モデル計算ステップとを備える。
【００２７】
本発明の情報処理方法は、上記情報処理装置と同様に、元のループ付きベイジアンネットモデルの分散を調整した分散調整モデルによって求めた確率分布に基づいて決定した初期値を未観測ノードに適用して元のループ付きベイジアンネットモデルの収束計算を行うので、元のループ付きベイジアンネットモデルの収束計算が収束する可能性を高めることができる。また、本発明の情報処理装置の各種の構成を本発明の情報処理方法に適用することも可能である。
【００２８】
本発明の別の態様に係る情報処理方法は、それぞれに条件付確率が付与された複数のノードで構成されるベイジアンネットのモデルを用いて、観測された事象から未観測の事象を評価するための情報処理方法であって、計算対象の前記ベイジアンネットのモデルがループ部分を有するループ付きベイジアンネットモデルである場合に、観測ノードの事象からの確率伝搬の収束計算により前記観測ノードに対する前記未観測ノードの寄与を算出する情報処理方法において、前記未観測ノードに設定する初期値として前記収束計算を行う際に前記未観測ノードに設定する初期値を記憶するための初期値記憶手段に無情報事前分布を書き込む初期値設定ステップと、前記ループ付きベイジアンネットモデルの少なくとも１つのノードの条件付き確率の分散を大きく調整した分散調整モデルを収束計算の対象として、前記分散調整モデルに前記初期値記憶手段から読み出した初期値を適用して収束計算を行い未観測ノードの確率分布を算出する分散調整モデル計算ステップと、前記分散調整モデル計算ステップにおいて算出された未観測ノードの確率分布に基づいて前記初期値記憶手段に記憶する初期値を更新する初期値更新ステップと、前記分散調整モデル計算ステップにおける未観測ノードの確率分布の収束計算と前記初期値更新ステップにおける前記初期値の更新が所定回数行われたときに、前記初期値記憶手段から読み出した初期値を元のループ付きベイジアンネットモデルに適用して、前記ループ付きベイジアンネットモデルの未観測ノードの確率分布を収束計算により算出する元モデル計算ステップと、前記元モデル計算ステップにて求められた未観測ノードの確率分布に基づいて前記観測ノードに対する前記未観測ノードの寄与を求める寄与計算ステップとを備え、前記寄与計算ステップは、前記分散調整モデル計算ステップにおける計算が収束しなかった場合に、収束計算が収束した分散調整モデルのうち元のループ付きベイジアンネットモデルの分散に最も近い分散を有する分散調整モデルで求めた前記未観測ノードの確率分布に基づいて前記未観測ノードの寄与を求める。
【００２９】
本発明の情報処理方法は、上記した情報処理装置と同様に、分散調整モデルを用いた収束計算が収束せず、元のループ付きベイジアンネットモデルが収束計算不能の場合にも、適切な解を得て後の処理を続行できる。
【００３０】
本発明のプログラムは、それぞれに条件付確率が付与された複数のノードで構成されるベイジアンネットのモデルを用いて、観測された事象から未観測の事象を評価するために適用され、計算対象の前記ベイジアンネットのモデルがループ部分を有するループ付きベイジアンネットモデルである場合に、観測ノードの事象からの確率伝搬の収束計算により前記未観測ノードの確率分布を算出するプログラムであって、コンピュータに、前記未観測ノードに設定する初期値として前記収束計算を行う際に前記未観測ノードに設定する初期値を記憶するための初期値記憶手段に無情報事前分布を書き込む初期値設定ステップと、前記ループ付きベイジアンネットモデルの少なくとも１つのノードの条件付き確率の分散を大きく調整した分散調整モデルを収束計算の対象として、前記分散調整モデルに前記初期値記憶手段から読み出した初期値を適用して収束計算を行い未観測ノードの確率分布を算出する分散調整モデル計算ステップと、前記分散調整モデル計算ステップにおいて算出された未観測ノードの確率分布に基づいて前記初期値記憶手段に記憶する初期値を更新する初期値更新ステップと、前記分散調整モデル計算ステップにおける未観測ノードの確率分布の収束計算と前記初期値更新ステップにおける前記初期値の更新が所定回数行われたときに、前記初期値記憶手段から読み出した初期値を元のループ付きベイジアンネットモデルに適用して、前記ループ付きベイジアンネットモデルの未観測ノードの確率分布を収束計算により算出する元モデル計算ステップとを実行させる。
【００３１】
本発明のプログラムは、上記情報処理装置と同様に、元のループ付きベイジアンネットモデルの分散を調整した分散調整モデルによって求めた確率分布に基づいて決定された初期値を未観測ノードに適用して元のループ付きベイジアンネットモデルの収束計算を行うので、元のループ付きベイジアンネットモデルの収束計算が収束する可能性を高めることができる。また、本発明の情報処理装置の各種の構成を本発明のプログラムに適用することも可能である。
【００３２】
また、本発明の別の態様に係るプログラムは、それぞれに条件付確率が付与された複数のノードで構成されるベイジアンネットのモデルを用いて、観測された事象から未観測の事象を評価するために適用され、計算対象の前記ベイジアンネットのモデルがループ部分を有するループ付きベイジアンネットモデルである場合に、観測ノードの事象からの確率伝搬の収束計算により前記観測ノードに対する前記未観測ノードの寄与を算出するプログラムであって、コンピュータに、前記未観測ノードに設定する初期値として前記収束計算を行う際に前記未観測ノードに設定する初期値を記憶するための初期値記憶手段に無情報事前分布を書き込む初期値設定ステップと、前記ループ付きベイジアンネットモデルの少なくとも１つのノードの条件付き確率の分散を大きく調整した分散調整モデルを収束計算の対象として、前記分散調整モデルに前記初期値記憶手段から読み出した初期値を適用して収束計算を行い未観測ノードの確率分布を算出する分散調整モデル計算ステップと、前記分散調整モデル計算ステップにおいて算出された未観測ノードの確率分布に基づいて前記初期値記憶手段に記憶する初期値を更新する初期値更新ステップと、前記分散調整モデル計算ステップにおける未観測ノードの確率分布の収束計算と前記初期値更新ステップにおける前記初期値の更新が所定回数行われたときに、前記初期値記憶手段から読み出した初期値を元のループ付きベイジアンネットモデルに適用して、前記ループ付きベイジアンネットモデルの未観測ノードの確率分布を収束計算により算出する元モデル計算ステップと、前記元モデル計算ステップにて求められた未観測ノードの確率分布に基づいて前記観測ノードに対する前記未観測ノードの寄与を求める寄与計算ステップとを実行させ、前記寄与計算ステップは、前記分散調整モデル計算ステップにおける計算が収束しなかった場合に、収束計算が収束した分散調整モデルのうち元のループ付きベイジアンネットモデルの分散に最も近い分散を有する分散調整モデルで求めた前記未観測ノードの確率分布に基づいて前記未観測ノードの寄与を求める。
【００３３】
本発明のプログラムは、上記した情報処理装置と同様に、分散調整モデルを用いた収束計算が収束せず、元のループ付きベイジアンネットモデルが収束計算不能の場合にも、適切な解を得て後の処理を続行できる。
【発明の効果】
【００３４】
本発明は、ループ付きベイジアンネットモデルの分散を大きく調整した分散調整モデルを用いて求めた確率分布に基づいて決定した初期値を元のループ付きベイジアンネットモデルに適用して収束計算を行うことにより、元のモデルの収束計算が収束する可能性を高めることができるというすぐれた効果を有する。
【発明を実施するための最良の形態】
【００３５】
以下、本発明の実施の形態の情報処理装置について図面を用いて説明する。以下の説明では、車の故障診断装置を情報処理装置の例として説明する。
【００３６】
図１は、第１の実施の形態の故障診断装置１０を示すブロック図である。故障診断装置１０は、車のエンジンがスタートしない故障が発生したときに、観測された事象から故障の原因を推論して、故障原因の情報を出力する装置である。
【００３７】
故障診断装置１０は、故障診断に用いられるベイジアンネットモデル（以下、「モデル」という）を記憶したベイジアンネットモデル記憶部（以下、「モデル記憶部」という）１２と、モデル記憶部１２に記憶されたモデルを用いて観測された事象から故障原因を推論する元モデル計算部１４とを備えている。
【００３８】
図２は、モデル記憶部１２に記憶されたモデルを示す図である。モデルは、複数のノードが確率的な依存関係を示すリンクにより接続されて構成されている。リンクは、依存関係の向きを示す方向を有する。リンクの元にあるノードを親ノード、リンクの先にあるノードを子ノードという。
【００３９】
親ノードと子ノードとの依存関係は、条件付確率表（Conditional Probability Table：ＣＰＴ）によって定量的に表される。ＣＰＴは、親ノードがとり得るすべての状態のそれぞれに対し、子ノードがとり得るすべての状態のそれぞれが起こる確率を表現した表である。
【００４０】
図３（ａ）は、ＣＰＴの例を示す図である。図３（ａ）に示すように、ＣＰＴは、親ノードの状態に応じて子ノードの状態がとる確率を表す。例えば、親ノードの状態が０という条件の下では、子ノードの状態が０になる確率が０．８、１になる確率が０．２であることが示されている。なお、モデル記憶部１２に記憶されるモデルは、複数の故障事例に基づいて、故障原因と観測事象との関係を分析して作成することができる。また、専門家の知見に基づいてモデルを作成することも可能である。
【００４１】
次に、図１に示す初期値設定部１６について説明する。初期値設定部１６は、確率伝搬による計算の際にモデルの各ノードに与える初期値を設定する機能を有する。ここで初期値とは、ベイジアンネットのモデルを用いた確率伝搬による計算を行う際に各ノードに最初に設定する値である。初期値設定部１６は、モデルのノードのうち、観測されたノードの状態の入力を受け付ける。図２に示すモデルでは、ノードＮ８〜ノードＮ１２が観測可能なノードである。また、故障診断装置１０は、エンジンがスタートしない故障が発生したときの故障診断を行う装置なので、ノードＮ４も状態が観測されたノードである。初期値設定部１６は、入力されたノードの状態を初期値記憶部１８に書き込む。また、初期値設定部１６は、状態が観測されなかったノードについては、初期値として無情報事前分布を書き込む。無情報事前分布は、ノードがとり得る状態のそれぞれが起こる確率が同じであることを示す確率分布である。
【００４２】
元モデル計算部１４は、モデル記憶部１２から読み出したモデルを用いて、観測されたノードから未観測のノードの確率分布を計算する機能を有する。元モデル計算部１４は、初期値記憶部１８から初期値を読み出して、モデルの各ノードに設定する。そして、観測されたノードからの確率伝搬によって各ノードの確率分布を更新していき、未観測のノードの確率分布を計算する。ここで、ベイジアンネットにおける確率伝搬法について説明する。
【００４３】
図４は、確率伝搬法を説明するための図である。図４に示すモデルは、ノードＸ１を親ノード、ノードＸ２を子ノードとする依存関係と、ノードＸ２を親ノード、ノードＸ３を子ノードとする依存関係があり、それぞれ図示しないＣＰＴが与えられている。ノードＸ１とノードＸ３に与えられた観測情報からノードＸ２を計算する場合、確率伝搬法では上流にあるノードＸ１の観測情報とノードＸ２のＣＰＴに基づいてノードＸ１からノードＸ２への寄与を求め、下流にあるノードＸ３の観測情報とノードＸ３のＣＰＴに基づいてノードＸ３からノードＸ２への寄与を求めることにより、ノードＸ２の確率分布を求める。ここでは、ノードが３つの単純な例で説明しているが、ノードの数が多いモデルの場合にも、それぞれのノード間に同様の計算を繰り返し適用することによってモデルの各ノードの確率分布を求めることができる。
【００４４】
ベイジアンネットがループを含んでいる場合には、元モデル計算部１４は、確率伝搬法を繰り返し行う収束計算により、各ノードの確率分布を求める。例えば、図２に示すモデルは、ノードＮ１、ノードＮ２、ノードＮ３、ノードＮ４がループになっている。ノードＮ１とノードＮ４との間には、ノードＮ２を経由するパスＰ１とノードＮ３を経由するパスＰ２の２つのパスがあるので、それぞれのパスをたどる確率伝搬によって異なる計算結果が得られる。このような場合には、一方のパスでの計算結果を他方のパスでの計算に用いて、確率伝搬による計算を繰り返し行う。例えば、最初にノードＮ１、Ｎ２、Ｎ７に初期値として無情報事前分布を設定しておき、観測されたノードＮ４、Ｎ９〜Ｎ１１からの確率伝搬（１回目の確率伝搬）により、ノードＮ１、Ｎ２、Ｎ７の確率分布を求める。次に、ノードＮ１に１回目の確率伝搬で求められた確率分布を初期値として設定し、ノードＮ３に無情報事前確率分布を初期値として設定する。そして、観測されたノードＮ４、Ｎ１０〜Ｎ１２からの確率伝搬（２回目の確率伝搬）により、ノードＮ１、Ｎ３の確率分布を求める。これにより、ノードＮ１の確率分布は、１回目の確率伝搬で求められた確率分布が２回目の確率伝搬で求められた確率分布により更新される。２回目の確率伝搬で求められたノードＮ１、１回目の確率伝搬で求められたＮ２、Ｎ７の確率分布を初期値として、観測されたノードＮ４、Ｎ９〜Ｎ１１からの確率伝搬（３回目の確率伝搬）を行えば、再び、ノードＮ１、Ｎ２、Ｎ７の値は更新される。このように、ループを含むモデルに確率伝搬を適用する場合には、異なるパスをたどる確率伝搬を行う毎にノードの値が変動する。ただし、上記したように初期値を更新しつつ繰り返し確率伝搬の計算を行うことによって、未観測ノードに設定される初期値が次第に真の値に近づく場合には、異なるパスをたどって得られるノードの値が収束する。元モデル計算部１４は、各ノードの値の変動が収束するまで、それぞれのパスをたどる確率伝搬を繰り返す収束計算を行う。
【００４５】
ただし、上記した収束計算では、必ずしもノードの値が収束するとは限らない。一方のパスでの計算結果が他方のパスでの計算に与える影響が大きい場合には、ノードの値が振動し、確率分布を求めることができない。
【００４６】
図１に示す故障診断装置１０は、ループを含むモデルにおける収束計算の収束の可能性を高めるための構成として、分散調整モデル作成部２０および分散調整モデル計算部２２を備える。
【００４７】
分散調整モデル作成部２０は、モデル記憶部１２に記憶されたモデルの少なくとも１つのノードの条件付確率の分散を調整した分散調整モデルを作成する機能を有する。分散調整モデル作成部２０は、モデル記憶部１２からモデルを読み出し、読み出したモデルの少なくとも１つのノードの分散を大きくする。具体的には、ＣＰＴに規定された各状態の条件付確率を平均値に近づけることにより、分散を大きくする。
【００４８】
ＣＰＴに表現される状態数をｎ、各状態が起こる確率をＰｉ（ｉ＝１〜４）とすると、分散調整モデル作成部２０は、分散を大きく調整した条件付確率Ｐａｉを、
Ｐａｉ＝（Ｐｉ−１／ｎ）×α＋１／ｎ  （ただし、０＜α＜１）  ・・・（１）
により求める。この式（１）で用いられる係数αは、係数記憶部２４から読み出した係数である。この式（１）により計算された条件付確率は、元の条件付確率に比べて各状態が起こる確率が平均に近くなるが、各状態が起こる確率の変化割合は一定なので、分散が調整されたＣＰＴは元のＣＰＴの性質を有する。
【００４９】
図３（ｂ）〜図３（ｄ）は、図３（ａ）に示すＣＰＴの分散を大きくしたＣＰＴを示す図である。図３（ｂ）は係数αが０．１の場合、図３（ｃ）は係数αが０．２の場合、図３（ｄ）は係数αが０．９の場合のＣＰＴを示す図である。部３（ａ）〜図３（ｄ）から、分散を調整したＣＰＴが元のＣＰＴと同じ性質を有すること、および、係数αが大きくなるに従って分散調整モデルの分散が徐々に元のモデルに近づくことがわかる。
【００５０】
分散調整モデル計算部２２は、分散調整モデル作成部２０によって作成された分散調整モデルを用いて、観測されたノードから未観測のノードの確率分布を求める計算を行う機能を有する。分散調整モデル計算部２２は、初期値記憶部１８から読み出した初期値をノードに設定し、確率伝搬の収束計算により未観測ノードの確率分布を求める。分散調整モデル計算部２２は、計算された未観測ノードの確率分布を初期値更新部２６に送信する。初期値更新部２６は、初期値記憶部１８に記憶された初期値を分散調整モデルによって計算された初期値に更新する。これにより、初期値記憶部１８の初期値が、未観測ノードの正しい確率分布に近い確率分布に更新される。
【００５１】
以上に説明した構成により、元のモデルの収束計算では、未観測ノードの正しい確率分布に近い初期値を用いることができ、元のモデルの収束計算が収束する可能性が高くなる。
【００５２】
次に、図１に示す故障原因出力部２８について説明する。故障原因出力部２８は、元モデル計算部１４による未観測ノードの計算結果に基づいて、最も確率の高い未観測ノードを故障原因として出力する機能を有する。
【００５３】
以上、第１の実施の形態の故障診断装置１０の構成について説明した。なお、本実施の形態の故障診断装置１０は、図１に示す各構成要素を実現するモジュールを備えたプログラムをコンピュータに読み込むことにより実現することもでき、このようなプログラムも本発明の範囲に含まれる。
【００５４】
続いて、第１の実施の形態の故障診断装置１０の動作について説明する。
【００５５】
図５は、第１の実施の形態の故障診断装置１０の動作を示すフローチャートである。車のエンジンがスタートしない故障が発生したときに、故障診断装置１０は、観測された事象の入力を受け付ける（Ｓ１０）。例えば、カーステレオは動作しているか、セルモータの音は聞こえるか、ＦＵＥＬメータの数値はいくらか、プラグの古さはどの程度か、バッテリの古さはどの程度か、などの観測可能な事象が入力受付の対象となる。
【００５６】
次に、故障診断装置１０は、受け付けた観測事象に基づいて初期値設定部１６によりモデルの計算に用いる初期値を初期値記憶部１８に書き込む（Ｓ１２）。初期値設定部１６は、入力を受け付けた観測事象を対応するノードの初期値として書き込み、観測事象が入力されなかったノードの初期値として、無情報事前分布を書き込む。
【００５７】
続いて、故障診断装置１０は、分散調整モデル作成部２０により分散調整モデルを作成する（Ｓ１４）。具体的には、分散調整モデル作成部２０は、モデル記憶部１２からモデルを読み出し、係数記憶部２４から係数αを読み出す。本実施の形態では、分散調整モデル係数記憶部２４には、０．１から０．９まで０．１刻みで９つの係数が記憶されており、１回目の分散調整モデル作成では、０．１を読み出す。分散調整モデル作成部２０は、ノードＮ４を子ノードとするＣＰＴにおける各確率値を、読み出した係数αを用いて式（１）により計算する。これにより、元のモデルより分散を大きく調整した分散調整モデルが作成される。
【００５８】
故障診断装置１０の分散調整モデル計算部２２は、作成した分散調整モデルを用いて、観測ノードからの確率伝搬の収束計算により未観測ノードの確率分布を求める（Ｓ１６）。分散調整モデルの各ノードの値が収束するまで、ノードＮ１〜ノードＮ４からなるループのパスＰ１での確率伝搬とパスＰ２での確率伝搬とを繰り返し行う。分散調整モデルは、ノードＮ４を子ノードとするＣＰＴの分散が大きく調整されているので、ノードＮ２とノードＮ３に与える影響が少なく、収束計算におけるノードの値の振動が小さいため、収束する可能性が高い。
【００５９】
故障診断装置１０は、分散調整モデルによって求めた未観測ノードの値を初期値更新部２６に送信する。初期値更新部２６は、分散調整モデルで求めた確率分布でもって初期値記憶部１８の初期値を更新する（Ｓ１８）。最初、初期値記憶部１８には、未観測ノードの初期値として無情報事前分布が記憶されていたが、分散調整モデルによって求められた確率分布を初期値として記憶することにより、初期値が未観測ノードの正しい確率分布に近づく。
【００６０】
次に、故障診断装置１０は、モデル記憶部１２に記憶された元のモデルで未観測ノードの計算を行うか否か判定する（Ｓ２０）。第１の実施の形態では、係数記憶部２４に記憶された最大の係数αを使って調整した分散調整モデルでの収束計算が終了した場合に、元のモデルで計算すると判定する。
【００６１】
元のモデルで計算を行うか否かの判定（Ｓ２０）において、元のモデルでの収束計算を行わないと判定された場合には、故障診断装置１０の動作は、分散調整モデルを作成するステップ（Ｓ１４）に移行する。分散調整モデルを作成ステップでは、前回読み出した係数αより一段階大きい係数αを読み出す。２回目の分散調整モデル作成においては０．２が読み出される。これにより、分散調整モデル作成部２０は、前回の分散調整モデルより、元のモデルに分散を近づけた分散調整モデルを作成できる。そして、故障診断装置１０は、分散調整モデル作成部２０で作成した分散調整モデルを用いて、未観測ノードの確率分布を計算し（Ｓ１６）、計算した確率分布でもって初期値記憶部１８の初期値を更新する（Ｓ１８）。前回の分散調整モデルより元のモデルに分散を近づけた分散調整モデルを用いて計算された確率分布なので、初期値が未観測ノードの正しい確率分布にさらに近づく。その後、元のモデルでの計算を行うか否かを判定する（Ｓ２０）。
【００６２】
元のモデルで収束計算を行うと判定されるまで、故障診断装置１０は、ステップＳ１４〜ステップＳ２０を繰り返し、分散を徐々に元のモデルに近づけた分散調整モデルで未観測ノードの値を求め、初期値記憶部１８の初期値を更新する。
【００６３】
元のモデルでの計算を行うか否かの判定（Ｓ２０）において、元のモデルでの計算を行うと判定された場合には、元モデル計算部１４によって元のモデルを用いて未観測ノードの確率分布を計算する（Ｓ２２）。元モデル計算部１４は、初期値記憶部１８から読み出した初期値を元のモデルの対応するノードに設定し、観測されたノードからの確率伝搬の収束計算によって未観測ノードの確率分布を求める。
【００６４】
そして、故障診断装置１０は、求められた未観測ノードの確率分布に基づいて、故障原因として最も確率が大きいノードの情報を故障原因出力部２８によって出力する。
【００６５】
以上、第１の実施の形態の故障診断装置１０について説明した。
【００６６】
第１の実施の形態の故障診断装置１０では、元のモデルを用いて収束計算を行う前に分散調整モデルを用いて未観測ノードの確率分布を求め、求めた未観測ノードの確率分布を元のモデルでの収束計算の初期値として用いる。分散調整モデルを用いて求められた確率分布は、無情報事前分布より未観測ノードの正しい確率分布に近いので、この確率分布を元のモデルでの収束計算の初期値として用いることにより、元のモデルの収束計算におけるノードの値の振動が少なく、収束する可能性を高めることができる。
【００６７】
また、分散調整モデル計算部２２は、元のモデルより分散の大きいモデルを用いて未観測ノードの確率分布を求めている。分散が大きいモデルの方が分散の小さいモデルよりも収束計算におけるノードの値の変動が小さいので、分散を大きく調整した分散調整モデルを用いることで分散調整モデルを用いた収束計算が収束する可能性を高めることができる。すなわち、元のモデルでの収束計算に用いる初期値を算出できる可能性を高くできる。
【００６８】
次に、第２の実施の形態の故障診断装置１０について説明する。第２の実施の形態の故障診断装置１０は、第１の実施の形態の故障診断装置１０と基本的な構成は同じであるが、分散調整モデルを作成する際の係数αの選択の仕方が異なる。第１の実施の形態では、分散調整モデル作成部２０は、前回読み出した係数より一段階大きい係数αを係数記憶部２４から読み出したが、第２の実施の形態の故障診断装置１０では、分散調整モデルを用いた収束計算における収束の速度に基づいて読み出す係数αを選択する。
【００６９】
図６は、第２の実施の形態の故障診断装置１０の動作を示すフローチャートである。車のエンジンがスタートしない故障が発生したときに、故障診断装置１０は、観測された事象の入力を受け付ける（Ｓ１０）。続いて、故障診断装置１０の初期値設定部１６は、受け付けた観測事象に基づいて、モデルの計算に用いる初期値を初期値記憶部１８に書き込む（Ｓ１２）。
【００７０】
次に、故障診断装置１０は、分散調整モデル作成部２０により分散調整モデルを作成する（Ｓ１４）。具体的には、分散調整モデル作成部２０は、モデル記憶部１２からモデルを読み出し、係数記憶部２４から係数αを読み出す。本実施の形態では、分散調整モデル係数記憶部２４には、０．１から０．９まで０．１刻みで９つの係数が記憶されているものとし、１回目の分散調整モデル作成では、０．１を読み出す。分散調整モデル作成部２０は、ノードＮ４を子ノードとするＣＰＴにおける各確率値を、読み出した係数αを用いて式（１）により計算する。これにより、元のモデルより分散を大きく調整した分散調整モデルが作成される。
【００７１】
故障診断装置１０の分散調整モデル計算部２２は、作成した分散調整モデルを用いて未観測ノードの確率分布を求める（Ｓ１６）。分散調整モデルの各ノードの値が収束するまで、ノードＮ１〜ノードＮ４からなるループのパスＰ１での確率伝搬とパスＰ２での確率伝搬とを繰り返し行う。分散調整モデルは、ノードＮ４を子ノードとするＣＰＴの分散が大きく調整されているので、ノードＮ２とノードＮ３に与える影響が少なく、収束計算におけるノードの値の振動が小さいため、収束する可能性が高い。
【００７２】
故障診断装置１０は、分散調整モデルによって求めた未観測ノードの値を初期値更新部２６に送信する。初期値更新部２６は、分散調整モデルで求めた確率分布でもって初期値記憶部１８に記憶される初期値を更新する（Ｓ１８）。最初、初期値記憶部１８には、未観測ノードの初期値として無情報事前分布が記憶されていたが、分散調整モデルによって求められた確率分布でもって初期値を更新することにより、初期値が未観測ノードの正しい確率分布に近づく。
【００７３】
次に、故障診断装置１０は、モデル記憶部１２に記憶された元のモデルでの未観測ノードの計算を行うか否か判定する（Ｓ２０）。第２の実施の形態では、係数記憶部２４に記憶された最大の係数αを使って作成した分散調整モデルを用いた収束計算が終了した場合に、元のモデルで計算すると判定する。
【００７４】
元のモデルでの計算を行うか否かの判定（Ｓ２０）において、元のモデルでの計算を行わないと判定された場合には、故障診断装置１０は、次に読み出す係数αを決定する（Ｓ２６）。分散調整モデル作成部２０は、分散調整モデルを用いた収束計算における未観測ノードの収束の速度に基づいて、分散調整モデル用係数を読み出す係数αを決定する。例えば、未観測ノードが速く収束した場合には、その計算に用いた係数αより２段階大きい係数αを読み出すことを決定し、未観測ノードが遅く収束した場合には、その計算に用いた係数より１段階大きい係数を読み出すことを決定する。なお、収束が速いか遅いかは、例えば、収束計算の繰り返し回数に閾値を設定しておき、その閾値以下の回数で収束した場合に収束が速い、その閾値を超える回数繰り返しをした場合に収束が遅いと判定できる。
【００７５】
係数記憶部２４から読み出す係数が決定された後、故障診断装置１０は、分散調整モデルを作成するステップ（Ｓ１４）に移行する。そして、故障診断装置１０は、決定された係数αを読み出して分散調整モデル作成部２０によって分散調整モデルを作成し（Ｓ１４）、分散調整モデル作成部２０で作成した分散調整モデルを用いて、未観測ノードの確率分布を計算し（Ｓ１６）、計算された確率分布でもって初期値記憶部１８の初期値を更新する（Ｓ１８）。その後、元のモデルでの計算を行うか否かを判定する（Ｓ２０）。
【００７６】
元のモデルでの計算を行うと判定されるまで、故障診断装置１０は、ステップＳ１４〜Ｓ２０およびステップＳ２６を繰り返し、分散調整モデルを用いて未観測ノードの値を求め、初期値記憶部１８の初期値を更新する。
【００７７】
元のモデルでの計算を行うか否かの判定（Ｓ２０）において、元のモデルでの計算を行うと判定された場合には、故障診断装置１０は、元モデル計算部１４によって元のモデルを用いて未観測ノードの確率分布を収束計算する（Ｓ２２）。そして、故障診断装置１０は、求められた未観測ノードの確率分布に基づいて、故障原因として最も確率が大きいノードの情報を故障原因出力部２８によって出力する。
【００７８】
以上、第２の実施の形態の故障診断装置１０について説明した。
【００７９】
第２の実施の形態の故障診断装置１０は、分散調整モデルを用いた収束計算での未観測ノードの収束の速度に応じて、次に作成する分散調整モデルの分散を調整するので、例えば分散調整モデルの収束の速度が速い場合には分散調整モデルの分散を元のモデルの分散に速く近づけることができ、分散調整モデルを用いた計算回数を低減することができる。
【００８０】
また、第２の実施の形態の故障診断装置１０は、第１の実施の形態の故障診断装置１０と同様に、ループを含むモデルを用いた収束計算が収束する可能性を高めることができる。
【００８１】
次に、第３の実施の形態の故障診断装置１０について説明する。第３の実施の形態の故障診断装置１０は、第１の実施の形態の故障診断装置１０と基本的な構成および動作は同じであるが、分散調整モデルでの収束計算に用いる初期値の求め方が異なる。第１の実施の形態では、分散調整モデル計算部２２で計算して得られた未観測ノードの確率分布を次の分散調整モデル計算部２２での計算における初期値としたが、第３の実施の形態では分散調整モデル計算部２２で得られた未観測ノードの確率分布をそのまま初期値として用いるのではなく、得られた確率分布に基づいて初期値を計算により求める。
【００８２】
第３の実施の形態において分散調整モデル計算部２２は、初期値記憶部１８から読み出した初期値Ｐ１をノードに設定し、確率伝搬の収束計算により未観測ノードの確率分布Ｐ２が求められたとすると、初期値Ｐ３を、
Ｐ３＝μ×Ｐ１＋（１−μ）×Ｐ２  （ただし、０＜μ＜１）  ・・・（２）
によって求める。この式（２）で用いられる係数μは収束の速度等に応じて適宜定めてもよいし、あらかじめ記憶された値を読み出して用いてもよい。このように分散調整モデルで求めた確率分布Ｐ２と元の初期値Ｐ１とに基づいて新しい初期値Ｐ３を算出することにより、算出した確率分布Ｐ２をそのまま初期値として用いる場合に比べ、収束した初期値Ｐ１と新しい初期値Ｐ３との差を低減できる。これにより、第３の実施の形態の故障診断装置１０では、徐々に初期値を変化させ、新しい初期値Ｐ３を用いた分散調整モデルの収束計算の収束可能性を高めることができる。
【００８３】
以上、本発明の情報処理装置について、実施の形態を挙げて詳細に説明したが、本発明は上記した実施の形態に限定されない。
【００８４】
上記した実施の形態では、分散調整モデルを用いた収束計算により求めた未観測ノードの確率分布を初期値とし、次の分散調整モデルまたは元のモデルを用いた収束計算において未観測ノードの初期値を更新する例について説明したが、分散調整モデルを用いて求めた未観測ノードの初期値を固定し、次の分散調整モデルまたは元のモデルを用いた収束計算において、確率伝搬の起点となる証拠変数として用いてもよい。
【００８５】
上記した実施の形態では、モデルのノードのうち、ノードＮ４の条件付確率を変更することにより、モデルの分散を調整した分散調整モデルを作成したが、複数のノードの条件付確率を変更して分散調整モデルを作成してもよい。また、モデル内のすべてのノードの条件付確率の分散を大きく調整した分散調整モデルを作成すれば、収束計算の収束に影響を与えるノードを把握する必要がなくなる。
【００８６】
また、上記した分散調整モデルを作成するための条件付確率を計算する式（１）は一例であり、他の算式によって分散調整モデルの条件付確率を計算してもよい。
【００８７】
また、上記した実施の形態では、分散調整モデルを用いた収束計算の終了判定条件は、係数記憶部２４に記憶された最大の係数αを用いて作成された分散調整モデルでの計算終了後であるとしたが、その他の判定条件によって分散調整モデルでの収束計算を終了してもよい。例えば、収束計算における収束の速度を終了判定条件として用いてもよい。また、分散調整モデルを用いた収束計算は必ずしも複数回行う必要はなく、分散調整モデルを用いた収束計算を一回行った時点で終了の判定条件に該当する場合には、元のモデルを用いた収束計算に移行する。
【００８８】
また、上記した実施の形態では、ループ部分の収束計算の説明において、一方のパスで求めた未観測ノードの確率分布を、他方のパスでの次の収束計算の初期値としてそのまま適用する例を挙げたが、一方のパスで求めた未観測ノードの確率分布とその確率分布を求めるために適用した初期値との両方に基づいて新しい初期値を算出してもよい。
【００８９】
上記した実施の形態では、ループ付きのベイジアンネットモデルの収束の可能性を高めるために、故障診断装置１０に分散調整モデル作成部２０、分散調整モデル計算部２２を設け、分散調整モデルの分散を段階的に元のモデルに近づけて計算を行ったが、この計算によっても元のモデルの未観測ノードの値を収束させることが出来ない場合には、以下のようにして故障診断を行ってもよい。すなわち、分散を段階的に小さくしていく過程で、分散調整モデルにおける収束計算が収束しなくなった場合、直前に用いた分散調整モデルで求めた未観測ノードの値に基づいて、エンジンスタートのノードＮ４に対する寄与が最大のノード（ＭＡＰ値）を求め、故障の原因ノードとして特定する。収束計算が収束しなくなった分散調整モデルの直前の分散調整モデルは、収束計算が収束した分散調整モデルのうち元のモデルの分散に最も近い分散を有する分散調整モデルであり、元のモデルのエッセンスを最も強く反映している。従って、計算が収束しなかった分散調整モデルの直前の分散調整モデルで求めた未観測ノードの値に基づいて原因ノードを適切に特定できる。また、この方法によれば、元のモデルを用いた収束計算が収束しないことに起因して故障診断装置１０の動作が停止してしまうという不都合を防止できる。
【００９０】
上記した実施の形態では、車の故障診断装置１０を例として説明したが、本発明は故障診断装置に限定されるものではなく、他の用途にも適用できる。例えば、商品の属性、顧客の属性から購買確率の高い商品を分析するマーケティングシステムや、ユーザの属性、状況からユーザの行動を予測する予測システムなどにも適用できる。
【産業上の利用可能性】
【００９１】
以上説明したように、本発明は、ループ付きベイジアンネットモデルの収束計算が収束する可能性を高めることができるというすぐれた効果を有し、ベイジアンネットのモデルを用いて、観測された事象から未観測の事象を評価するための情報処理装置等として有用である。
【図面の簡単な説明】
【００９２】
【図１】実施の形態の故障診断装置の構成を示す図である。
【図２】モデル記憶部に記憶されたモデルの例を示す図である。
【図３】ＣＰＴの例を示す図である。
【図４】確率伝搬法について説明するための図である。
【図５】第１の実施の形態の故障診断装置の動作を示す図である。
【図６】第２の実施の形態の故障診断装置の動作を示す図である。
【符号の説明】
【００９３】
１０  故障診断装置
１２  モデル記憶部
１４  元モデル計算部
１６  初期値設定部
１８  初期値記憶部
２０  分散調整モデル作成部
２２  分散調整モデル計算部
２４  係数記憶部
２６  初期値更新部
２８  故障原因出力部
【図１】
2005276152.tif 000003
【図２】
2005276152.tif 000004
【図３】
2005276152.tif 000005
【図４】
2005276152.tif 000006
【図５】
2005276152.tif 000007
【図６】
2005276152.tif 000008