(57)【要約】  仮説推論装置１は、観測された状況を論理表現によって表現する観測論理式に、前向きの推論を行なう場合の信頼度及び後向きの推論を行なう場合の信頼度が付与された推論知識を適用して推論を行ない、観測論理式を導くことが可能な仮説候補を生成する、仮説候補生成部２と、生成された仮説候補に適用された推論知識それぞれにおける推論の向きを特定し、推論知識それぞれの、特定した推論の向きに対応する信頼度を用いて、仮説候補の評価値を計算する、仮説候補評価部３と、を備えている。
2018229877.tif 000002
【特許請求の範囲】
【請求項１】
観測された状況を論理表現によって表現する観測論理式に、前向きの推論を行なう場合の信頼度及び後向きの推論を行なう場合の信頼度が付与された推論知識を適用して推論を行ない、前記観測論理式を導くことが可能な仮説候補を生成する、仮説候補生成部と、
生成された前記仮説候補に適用された前記推論知識それぞれにおける推論の向きを特定し、前記推論知識それぞれの、特定した推論の向きに対応する前記信頼度を用いて、前記仮説候補の評価値を計算する、仮説候補評価部と、
を備えている、ことを特徴とする仮説推論装置。
【請求項２】
前記仮説候補生成部が、
前記観測論理式に後向きに前記推論知識を適用して推論を行なう第１の推論部と、前記観測論理式に前向きに前記推論知識を適用して推論を行なう第２の推論部とを備え、
前記第１の推論部による推論の結果と、前記第２の推論部による推論の結果とを用いて、前記仮説候補を生成する、
請求項１に記載の仮説推論装置。
【請求項３】
（ａ）観測された状況を論理表現によって表現する観測論理式に、前向きの推論を行なう場合の信頼度及び後向きの推論を行なう場合の信頼度が付与された推論知識を適用して推論を行ない、前記観測論理式を導くことが可能な仮説候補を生成する、ステップと、
（ｂ）生成された前記仮説候補に適用された前記推論知識それぞれにおける推論の向きを特定し、前記推論知識それぞれの、特定した推論の向きに対応する前記信頼度を用いて、前記仮説候補の評価値を計算する、ステップと、
を有する、ことを特徴とする仮説推論方法。
【請求項４】
前記（ａ）のステップは、
（ａ１）前記観測論理式に後向きに前記推論知識を適用して推論を行なう、ステップと、
（ａ２）前記観測論理式に前向きに前記推論知識を適用して推論を行なう、ステップと、
（ａ３）前記（ａ１）のステップによる推論の結果と、前記（ａ２）ステップによる推論の結果とを用いて、前記仮説候補を生成する、ステップと、を含む、
請求項３に記載の仮説推論方法。
【請求項５】
コンピュータに、
（ａ）観測された状況を論理表現によって表現する観測論理式に、前向きの推論を行なう場合の信頼度及び後向きの推論を行なう場合の信頼度が付与された推論知識を適用して推論を行ない、前記観測論理式を導くことが可能な仮説候補を生成する、ステップと、
（ｂ）生成された前記仮説候補に適用された前記推論知識それぞれにおける推論の向きを特定し、前記推論知識それぞれの、特定した推論の向きに対応する前記信頼度を用いて、前記仮説候補の評価値を計算する、ステップと、
を実行させる命令を含む、プログラムを記録しているコンピュータ読み取り可能な記録媒体。
【請求項６】
前記（ａ）のステップは、
（ａ１）前記観測論理式に後向きに前記推論知識を適用して推論を行なう、ステップと、
（ａ２）前記観測論理式に前向きに前記推論知識を適用して推論を行なう、ステップと、
（ａ３）前記（ａ１）のステップによる推論の結果と、前記（ａ２）ステップによる推論の結果とを用いて、前記仮説候補を生成する、ステップと、を含む、
請求項５に記載のコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、仮説推論を行なうための仮説推論装置及び仮説推論方法に関し、更には、これらを実現するためのプログラムを記録したコンピュータ読み取り可能な記録媒に関する。
【背景技術】
【０００２】
仮説推論は、既存の知識に基づいて、観測した事実を説明付ける、仮説を導く推理方法であり、古くから行なわれている。近年においては、処理速度の飛躍的向上により、計算機を用いて行なわれるようになっている（例えば、非特許文献１参照）。【０００３】
非特許文献１は、計算機を用いた仮説推論の方式の一例を開示している。非特許文献１では、仮説推論は、仮説候補生成手段と、仮説候補評価手段とを用いて行なわれる。具体的には、仮説候補生成手段は、観測論理式（Observation）と知識ベース（Background knowledge）とを入力として、仮説候補の集合（Candidate hypotheses）を生成する。仮説候補評価手段は、個々の仮説候補の蓋然性を評価することにより、生成された仮説候補の集合の中から、観測論理式を最も過不足なく説明できる仮説候補、即ち、観測論理式に対する説明として最も良い仮説候補（最良仮説、解仮説、Solution hypothesis）を選出し、これを出力する。【０００４】
また、通常、既存の仮説推論の多くにおいて、観測論理式には「どの観測情報を重視するか」を表すパラメータ（コスト）が与えられる。知識ベースには、推論知識が格納されており、個々の推論知識（Axiom）には「後件が成り立つ時に前件が成り立つ信頼度」を表すパラメータ（重み，Weights）が与えられている。そして、仮説候補の蓋然性の評価においては、それらのパラメータを考慮して評価値（Evaluation）が計算される。【０００５】
ここで具体例を用いて、非特許文献１に開示された仮説推論について説明する。例えば、観測論理式として、「犯罪者Ａと警察Ｂが居て、２人とも同じパトカーに乗っている」という情報を表した論理式が与えられているとする。また、知識ベースは、推論知識として、「ｘがｙを逮捕するなら、ｘは警察でありｙは犯罪者である」、「逮捕された人物はパトカーに乗る」、「警察はパトカーに乗る」、といった知識を格納しているとする。【０００６】
この場合において、仮説候補生成手段は、推論知識毎に、それを観測論理式に対して後ろ向きに適用できるかどうかを判定する。上記の具体例では、推論知識「ｘがｙを逮捕するなら、ｘは警察でありｙは犯罪者である」のみが適用可能である。従って、仮説候補生成手段は、図７に示すように、「警察Ｂが犯罪者Ａを逮捕した」を仮説候補として生成する。また、仮説候補評価手段は、「警察Ｂが犯罪者Ａを逮捕した」を仮説候補として選出する。図７は、従来の方式によって生成された仮説候補の一例を示す図である。【０００７】
このように、非特許文献１に開示された仮説推論の方式によれば、上述した具体例において、「警察Ｂが犯罪者Ａを逮捕した」という仮説候補が選出されることから、全ての観測情報は、その仮説から背景知識を用いて演繹的に導出される。即ち、「警察Ｂが犯罪者Ａを逮捕した」という仮説候補によって、観測論理式は過不足なく説明される。
【先行技術文献】
【非特許文献】
【０００８】
【非特許文献１】Naoya Inoue and Kentaro Inui, “ ILP-based Reasoning for Weighted Abduction”, In Proceedings of AAAI Workshop on Plan, Activity and Intent Recognition, pp. 25-32, August 2011.
【発明の概要】
【発明が解決しようとする課題】
【０００９】
しかしながら、上述の非特許文献１に開示された仮説推論の方式には、２つの問題点がある。以下、２つの問題点について具体的に説明する。【００１０】
第１の問題点は、非特許文献１に開示された仮説推論の方式では、観測論理式に対して後ろ向きの推論しか行なうことができず、適切な仮説候補を選出できない場合がある点である。【００１１】
例えば、「強盗Ａと警察Ｂが居て、２人とも同じパトカーに乗っている」という観測情報を表す観測論理式があるとする。また、これに対する説明が、「強盗は犯罪者である」、「ｘがｙを逮捕するなら、ｘは警察でありｙは犯罪者である」、「逮捕された人物はパトカーに乗る」、「警察はパトカーに乗る」という推論知識を用いて生成されるとする。この場合、最も過不足なく観測論理式を説明できる仮説候補は、「警察Ｂが強盗Ａを逮捕する」ことであると考えられる。【００１２】
但し、この仮説候補を選出するためには、この仮説候補に含まれる論理式「犯罪者(A)」を導く必要があり、観測論理式に対して、前向きの推論「強盗が犯罪者である」を適用する必要がある。従って、上述の非特許文献１に開示された仮説推論の方式では、仮説候補「警察Ｂが強盗Ａを逮捕する」は、仮説候補集合の中に含まれることはなく、解仮説として出力されることはない。【００１３】
第２の問題点は、例えば「鳥ならば飛ぶ」のような、絶対的に成り立つとは限らない知識を推論知識としてシステムに与えたとき、それによって生成された仮説候補の蓋然性が、適切に評価できない点である。【００１４】
その理由は上述の非特許文献１に開示された仮説推論の方式では、仮説候補評価手段は、各推論知識が論理的に真であるという前提の元で、仮説候補を評価しているためである。即ち、上述の非特許文献１に開示された仮説推論の方式では、各推論知識について、前件の論理式が成り立つなら後件の論理式もまた必ず成り立つという前提が存在しているからである。【００１５】
そのため、仮説候補評価手段は、その前提を満たさない推論知識を用いて作られた仮説候補については適切に評価できず、観測論理式に対する説明として不適切な仮説候補が、解仮説として出力される可能性が生じてしまう。この前提を満たさない推論知識、即ち「多くの場合成立するが、成り立たない状況も存在し得る」を用いたい状況は、実運用においては数多く存在する。このため、第２の問題は解決するべき問題である。【００１６】
なお、第１の問題を解決するため、推論知識の前件と後件とを反転させた推論知識を用いて、後ろ向き推論を適用することで、擬似的に前向き推論を表現するという手段がとられる場合がある。しかしながら、この場合においても、仮説の評価についての第２の問題は依然として未解決のままである。これは、前件と後件とを反転させた推論知識は、殆どの場合において、上述の前提を満たさない推論知識、即ち、多くの場合成立するが、成り立たない状況が存在し得る推論知識に該当するからである。【００１７】
本発明の目的は、上記問題を解消し、前向きの推論を行なうことができ、且つ、常には成り立たない推論知識を用いた場合でも仮説候補の蓋然性を適切に評価し得る、仮説推論装置、仮説推論方法、及びコンピュータ読み取り可能な記録媒体を提供することにある。
【課題を解決するための手段】
【００１８】
上記目的を達成するため、本発明の一側面における仮説推論装置は、
観測された状況を論理表現によって表現する観測論理式に、前向きの推論を行なう場合の信頼度及び後向きの推論を行なう場合の信頼度が付与された推論知識を適用して推論を行ない、前記観測論理式を導くことが可能な仮説候補を生成する、仮説候補生成部と、
生成された前記仮説候補に適用された前記推論知識それぞれにおける推論の向きを特定し、前記推論知識それぞれの、特定した推論の向きに対応する前記信頼度を用いて、前記仮説候補の評価値を計算する、仮説候補評価部と、
を備えている、ことを特徴とする。【００１９】
また、上記目的を達成するため、本発明の一側面における仮説推論方法は、
（ａ）観測された状況を論理表現によって表現する観測論理式に、前向きの推論を行なう場合の信頼度及び後向きの推論を行なう場合の信頼度が付与された推論知識を適用して推論を行ない、前記観測論理式を導くことが可能な仮説候補を生成する、ステップと、
（ｂ）生成された前記仮説候補に適用された前記推論知識それぞれにおける推論の向きを特定し、前記推論知識それぞれの、特定した推論の向きに対応する前記信頼度を用いて、前記仮説候補の評価値を計算する、ステップと、
を有する、ことを特徴とする。【００２０】
更に、上記目的を達成するため、本発明の一側面におけるコンピュータ読み取り可能な記録媒体は、
コンピュータに、
（ａ）観測された状況を論理表現によって表現する観測論理式に、前向きの推論を行なう場合の信頼度及び後向きの推論を行なう場合の信頼度が付与された推論知識を適用して推論を行ない、前記観測論理式を導くことが可能な仮説候補を生成する、ステップと、
（ｂ）生成された前記仮説候補に適用された前記推論知識それぞれにおける推論の向きを特定し、前記推論知識それぞれの、特定した推論の向きに対応する前記信頼度を用いて、前記仮説候補の評価値を計算する、ステップと、
を実行させる命令を含む、プログラムを記録している。
【発明の効果】
【００２１】
以上のように、本発明によれば、前向きの推論を行なうことができ、且つ、常には成り立たない推論知識を用いた場合でも仮説候補の蓋然性を適切に評価することができる。
【図面の簡単な説明】
【００２２】
【図１】図１は、本発明の実施の形態における仮説推論装置の構成を概略的に示すブロック図である。
【図２】図２は、本発明の実施の形態における仮説推論装置の構成を具体的に示すブロック図である。
【図３】図３は、本発明の実施の形態における仮説推論装置の動作全体を示すフロー図である。
【図４】図４は、本発明の実施の形態における仮説推論装置の動作全体を示すフロー図である。
【図５】図５は、本発明の実施の形態における仮説推論装置を実現するコンピュータの一例を示すブロック図である。
【図６】図６は、本発明の実施例において生成される仮説候補の一例を示す図である。
【図７】図７は、従来の方式によって生成された仮説候補の一例を示す図である。
【発明を実施するための形態】
【００２３】
（実施の形態）
以下、本発明の実施の形態における、仮説推論装置、仮説推論方法、及びプログラムについて、図１〜図６を参照しながら説明する。
【００２４】
［装置構成］
最初に、図１を用いて、本実施の形態における仮説推論装置の構成について説明する。図１は、本発明の実施の形態における仮説推論装置の構成を概略的に示すブロック図である。
【００２５】
図１に示す本実施の形態における仮説推論装置１は、観測された状況を論理表現によって表現する観測論理式に推論知識を適用して、最も適切な仮説を導き出すための装置である。図１に示すように、仮説推論装置１は、仮説候補生成部２と、仮説候補評価部３とを備えている。
【００２６】
仮説候補生成部２は、観測論理式に、推論知識を適用して推論を行ない、観測論理式を導くことが可能な仮説候補を生成する。但し、このとき用いられる推論知識には、前向きの推論を行なう場合の信頼度と、後向きの推論を行なう場合の信頼度とが付与されている。
【００２７】
仮説候補評価部３は、まず、仮説候補生成部２によって生成された仮説候補に適用された推論知識それぞれにおける推論の向きを特定する。次いで、仮説候補評価部３は、推論知識それぞれの、特定した推論の向きに対応する信頼度を用いて、仮説候補の評価値を計算する。
【００２８】
このように、本実施の形態では、推論知識には、前向きの推論を行なう場合の信頼度と、後向きの推論を行なう場合の信頼度とが付与されているので、後向きの推論だけでなく、前向きの推論も行なわれる。つまり、本実施の形態では、従来の推論では行なうことができなかった前向きの推論を行なうことができる。また、前向きの推論が可能となるので、常には成り立たない推論知識を用いた場合でも仮説候補の蓋然性が適切に評価されることになる。
【００２９】
続いて、図２を用いて、本実施の形態における仮説推論装置１の構成をより具体的に説明する。図２は、本発明の実施の形態における仮説推論装置の構成を具体的に示すブロック図である。
【００３０】
まず、図２に示すように、本実施の形態では、観測論理式は、外部の端末装置等から仮説推論装置１に入力される。更に、本実施の形態では、観測論理式としては、例えば、実数値のコストが割り当てられた、一階述語論理上の原子論理式の連言が挙げられる。この場合、コストは「その観測情報をどれだけ深く説明したいか」を定量的に表したものである。具体的には、原子論理式 apple(x) に対して 10.0 のコストが割り当てられているとすると、観測論理式は、「apple(x)$10」と記述される。
【００３１】
図２に示すように、本実施の形態においては、仮説推論装置１は、推論知識を格納する知識データベース１０に接続されている。知識データベース１０に格納されている推論知識には、上述したように、前向きの推論を行なう場合の信頼度と後向きの推論を行なう場合の信頼度とが付与されている。
【００３２】
ここで、Pi及びQiを一階述語論理における原子論理式とする。また、aiを後件が成り立つ時にPiが成り立つ尤度を表すパラメータ、即ち、後向きの推論を行なう場合の信頼度とする。更に、biを前件が成り立つ時にQiが成り立つ尤度を表すパラメータ、即ち、前向きの推論を行なう場合の信頼度とする。この場合、推論知識は、含意型の論理式であって、下記の数１に示す形式の論理式で表現される。パラメータai及びbiは、それぞれ実数値である。
【００３３】
【数１】
2018229877.tif 000003
【００３４】
上記数１において、一辺の重みの総和は「逆側の辺からこの辺が演繹的に導かれる確率」に応じた値である。その上で、各ai及びbiの値の大きさは、その連言における重要度に応じて決定される。また、推論知識の前件に含まれる変数は、全て全称限量されているものとして、推論知識の後件のみに含まれる変数は全て存在限量されているものとする。以降、限量子が省略されている場合においても、そのような前提に基づいて各変数は限量されているものとする。
【００３５】
また、図２に示すように、本実施の形態では、仮説候補生成部２は、第１の推論部２１と、第２の推論部２２とを備えている。第１の推論部２１は、観測論理式に後向きに推論知識を適用して推論を行なう。第２の推論部２２は、観測論理式に前向きに推論知識を適用して推論を行なう。仮説候補生成部２は、第１の推論部２１による推論の結果と、第２の推論部２２による推論の結果とを用いて、仮説候補の集合を生成する。
【００３６】
また、仮説候補生成部２は、１つの観測論理式に対して複数の仮説候補を生成しても良いし、複数の観測論理式それぞれ毎に、１又は複数の仮説候補を生成しても良い。仮説候補生成部２は、生成した複数の仮説候補の集合を、仮説候補評価部３に出力する。
【００３７】
また、本実施の形態では、仮説候補は、例えば、一階述語論理上の原子論理式をノードとした有向非循環グラフによって示される（図６参照）。有向非循環グラフは、ノード間を繋ぐエッジは「どの原子論理式が、どの原子論理式を、どの推論知識を用いて説明しているか」という関係を表現している。なお、有向非循環グラフにおいて、推論知識の向きとエッジの向きとは必ずしも一致するわけではない。
【００３８】
有向非循環グラフにおいて、エッジを向きに沿って辿ったときの終端ノードは、観測論理式に含まれる原子論理式のいずれかに一致する。また、有向非循環グラフにおいて、説明されていないノード、即ち、どのエッジの始点にもなっていないノードに対応する原子論理式をそれぞれ仮説論理式（Hypotheses）と呼ぶ。
【００３９】
仮説候補評価部３は、本実施の形態では、まず、仮説候補生成部２から出力されてきた仮説候補の集合（図６参照）を受け取ると、仮説候補毎に評価値を計算する。次いで、仮説候補評価部３は、各仮説候補の評価値に基づいて、最も評価値の高い仮説候補を特定し、この仮説候補を、観測論理式を過不足なく説明する仮説候補、即ち、最良仮説と判断する。
【００４０】
［装置動作］
次に、本実施の形態における仮説推論装置１の動作について説明する。以下の説明においては、適宜図１及び図２を参酌する。また、本実施の形態では、仮説推論装置１を動作させることによって、仮説推論方法が実施される。よって、本実施の形態における仮説推論方法の説明は、以下の仮説推論装置１の動作説明に代える。
【００４１】
まず、図３を用いて、本実施の形態における仮説推論装置１の動作全体について説明する。図３は、本発明の実施の形態における仮説推論装置の動作全体を示すフロー図である。図３に示すように、最初に、仮説候補生成部２は、外部、例えば、仮説推論を求めるユーザの端末装置から、仮説推論の対象となる観測論理式を取得する（ステップＡ１）。
【００４２】
次に、仮説候補生成部２は、知識データベース１０から推論知識を取得し、ステップＡ１で取得した観測論理式に、取得した推論知識を適用して推論（後向きの推論及び前向きの推論）を行ない、観測論理式を導くことが可能な仮説候補を生成する（ステップＡ２）。また、仮説候補生成部２は、生成した仮説候補の集合を、仮説候補評価部３に出力する。
【００４３】
次に、仮説候補評価部３は、ステップＡ２で出力されてきた仮説候補の集合を受け取ると、仮説候補毎に評価値を計算する（ステップＡ３）。
【００４４】
具体的には、本実施の形態において、仮説候補に与えられる評価値は、その仮説候補が観測論理式を過不足なく説明しているかどうかを実数値の大小で表現する。従って、仮説候補評価部３は、仮説候補毎に、その仮説候補において、どの推論知識がどのように用いられているかを判断し、判断結果に基づいて評価値を算出する。
【００４５】
例えば、仮説候補評価部３は、仮説候補毎に、各推論知識に付与されている「後ろ向きの推論を行なう場合の信頼度」と、「前向きの推論を行なう場合の信頼度」との双方を用いて評価値を計算する。また、本実施の形態では、この２つの信頼度を用いて評価値を計算するため、常には成り立ち得ない推論知識を用いた仮説候補に対しても適切な評価値を与えることが可能となる。
【００４６】
その後、仮説候補評価部３は、各仮説候補の評価値に基づいて、最も評価値の高い仮説候補を最良仮説として特定し、特定した最良仮説を、例えば、仮説推論を求めるユーザの端末装置に出力する（ステップＡ４）。
【００４７】
続いて、図４を用いて、図３に示したステップＡ２についてより具体的に説明する。図４は、本発明の実施の形態における仮説推論装置の動作全体を示すフロー図である。
【００４８】
図４に示すように、ステップＡ１の実行後、最初に、第１の推論部２１は、知識データベース１０を対象にして、現在の仮説候補の集合に対して後向きに適用可能な推論知識の検索を行なう（ステップＡ２１）。なお、仮説候補が未だ１つも生成されていない状態では、仮説候補の集合は、初期状態にあり、観測論理式のみとなる。つまり、この場合の仮説候補の集合には、仮説論理式のみが仮説候補として含まれている。
【００４９】
具体的には、ステップＡ２１では、第１の推論部２１は、推論知識それぞれについて、仮説候補の集合に現在含まれている仮説候補毎に、仮説候補に含まれる原子論理式と、推論知識の後件に含まれる原子論理式とを比較する。そして、第１の推論部２１は、比較結果に基づいて、仮説候補に含まれる原子論理式で構成された連言と後件が等価となるような変数代入の仕方が存在する推論知識を抽出する。
【００５０】
例えば、仮説候補H=q(A)に対しては、推論知識p(x)→q(x)は後ろ向きに適用可能であり、推論知識p(x)→r(x)は後ろ向きに適用可能でない。従って、第１の推論部２１は、検索によって、推論知識p(x)→q(x)を抽出する。
【００５１】
次に、第１の推論部２１は、ステップＡ２１の検索において、全部又は一部の仮説候補に対して後向きに適用可能な推論知識を抽出できたかどうかを判定する（ステップＡ２２）。
【００５２】
ステップＡ２２の判定の結果、全部又は一部の仮説候補に対して後向きに適用可能な推論知識を抽出できなかった場合は、第１の推論部２１は、仮説候補の集合に現在含まれているいずれの仮説候補に対しても、新たに後向きに適用できる推論知識は存在しないので、現在の仮説候補の集合を第２の推論部２２に出力する。これにより、後述のステップＡ２４が実行される。
【００５３】
一方、ステップＡ２２の判定の結果、後向きに適用可能な推論知識を抽出できた場合は、第１の推論部２１は、適用可能な仮説候補に対して、抽出できた推論知識を後向きに適用する（ステップＡ２３）。
【００５４】
ステップＡ２３の実行により、観測論理式に対して新たな仮説候補が生成される。例えば、仮説候補H=q(A)に対して、推論知識p(x)→q(x)が後ろ向きに適用されるとすると、仮説候補の集合に、新たな仮説候補H=q(A)∧p(A)が追加される。この後、第１の推論部２１は、再度、ステップＡ２１を実行する。
【００５５】
ステップＡ２４では、第２の推論部２２は、知識データベース１０を対象にして、第１の推論部２１から受け取った仮説候補の集合に対して前向きに適用可能な推論知識の検索を行なう。
【００５６】
具体的には、ステップＡ２４では、第２の推論部２２は、ステップＡ２１の場合と同様に、推論知識それぞれについて、仮説候補の集合に現在含まれている仮説候補毎に、仮説候補に含まれる原子論理式と、推論知識の前件に含まれる原子論理式とを比較する。そして、第２の推論部２２は、比較結果に基づいて、仮説候補に含まれる原子論理式で構成された連言と前件が等価となるような変数代入の仕方が存在する推論知識を抽出する。
【００５７】
例えば、仮説候補H=q(A)に対しては、推論知識p(x)→q(x)は前向きに適用可能でないが、推論知識q(x)→r(x)は前向きに適用可能である。従って、第２の推論部２２は、検索によって、推論知識q(x)→r(x)を抽出する。
【００５８】
次に、第２の推論部２２は、ステップＡ２４の検索によって、全部又は一部の仮説候補に対して前向きに適用可能な推論知識を抽出できたかどうかを判定する（ステップＡ２５）。
【００５９】
ステップＡ２５の判定の結果、全部又は一部の仮説候補に対して前向きに適用可能な推論知識を抽出できなかった場合は、第２の推論部２２は、仮説候補の集合に現在含まれているいずれの仮説候補に対しても、新たに前向きに適用できる推論知識は存在しないので、現在の仮説候補の集合を仮想候補評価部３に出力する。この後、ステップＡ３が実行される。
【００６０】
一方、ステップＡ２５の判定の結果、前向きに適用可能な推論知識を抽出できた場合は、第２の推論部２２は、適用可能な仮説候補に対して、抽出できた推論知識を前向きに適用する（ステップＡ２６）。例えば、仮説候補H=q(A)に対して、推論知識q(x)→r(x)が前向きに適用されるとする。この場合、仮説候補の集合には、新たな仮説候補H= r(x)∧q(A)が追加される。
【００６１】
なお、図４の例では、第１の推論部２１による処理が実行されてから、第２の推論部２２による処理が実行されているが、本実施の形態は、この例に限定されることはない。本実施の形態では、第２の推論部２２による処理が実行されてから、第１の推論部２１による処理が実行されても良い。
【００６２】
［実施の形態における効果］
以上のように本実施の形態１によれば、従来方式では扱えなかった、前向きの推論を行なって仮説候補を生成することができるため、従来方式より広範な事象に対応できることができる。
【００６３】
また、本実施の形態では、仮説候補の評価において、推論知識の前向きの信頼度が勘案できるため、従来方式よりも精緻に仮説候補を評価することができる。この結果、常に成り立つとは限らないような推論知識を用いて作られた仮説候補に対する蓋然性を、適切に評価でき、仮説推論装置１における推論の精度を高めることが可能となる。
【００６４】
［プログラム］
本実施の形態におけるプログラムは、コンピュータに、図３に示すステップＡ１〜Ａ４を実行させるプログラムであれば良い。このプログラムをコンピュータにインストールし、実行することによって、本実施の形態における仮説推論装置１と仮説推論方法とを実現することができる。この場合、コンピュータのＣＰＵ（Central Processing Unit）は、仮説候補生成部２、及び仮説候補評価部３として機能し、処理を行なう。
【００６５】
また、本実施の形態におけるプログラムは、複数のコンピュータによって構築されたコンピュータシステムによって実行されても良い。この場合は、例えば、各コンピュータが、それぞれ、仮説候補生成部２、及び仮説候補評価部３のいずれかとして機能しても良い。
【００６６】
ここで、本実施の形態におけるプログラムを実行することによって、仮説推論装置１を実現するコンピュータについて図４を用いて説明する。図５は、本発明の実施の形態における仮説推論装置を実現するコンピュータの一例を示すブロック図である。
【００６７】
図５に示すように、コンピュータ１１０は、ＣＰＵ１１１と、メインメモリ１１２と、記憶装置１１３と、入力インターフェイス１１４と、表示コントローラ１１５と、データリーダ／ライタ１１６と、通信インターフェイス１１７とを備える。これらの各部は、バス１２１を介して、互いにデータ通信可能に接続される。
【００６８】
ＣＰＵ１１１は、記憶装置１１３に格納された、本実施の形態におけるプログラム（コード）をメインメモリ１１２に展開し、これらを所定順序で実行することにより、各種の演算を実施する。メインメモリ１１２は、典型的には、ＤＲＡＭ（Dynamic Random Access Memory）等の揮発性の記憶装置である。また、本実施の形態におけるプログラムは、コンピュータ読み取り可能な記録媒体１２０に格納された状態で提供される。なお、本実施の形態におけるプログラムは、通信インターフェイス１１７を介して接続されたインターネット上で流通するものであっても良い。
【００６９】
また、記憶装置１１３の具体例としては、ハードディスクドライブの他、フラッシュメモリ等の半導体記憶装置が挙げられる。入力インターフェイス１１４は、ＣＰＵ１１１と、キーボード及びマウスといった入力機器１１８との間のデータ伝送を仲介する。表示コントローラ１１５は、ディスプレイ装置１１９と接続され、ディスプレイ装置１１９での表示を制御する。
【００７０】
データリーダ／ライタ１１６は、ＣＰＵ１１１と記録媒体１２０との間のデータ伝送を仲介し、記録媒体１２０からのプログラムの読み出し、及びコンピュータ１１０における処理結果の記録媒体１２０への書き込みを実行する。通信インターフェイス１１７は、ＣＰＵ１１１と、他のコンピュータとの間のデータ伝送を仲介する。
【００７１】
また、記録媒体１２０の具体例としては、ＣＦ（Compact Flash（登録商標））及びＳＤ（Secure Digital）等の汎用的な半導体記憶デバイス、フレキシブルディスク（Flexible Disk）等の磁気記録媒体、又はＣＤ−ＲＯＭ（Compact Disk Read Only Memory）などの光学記録媒体が挙げられる。
【００７２】
なお、本実施の形態における仮説推論装置１は、プログラムがインストールされたコンピュータではなく、各部に対応したハードウェアを用いることによっても実現可能である。更に、仮説推論装置１は、一部がプログラムで実現され、残りの部分がハードウェアで実現されていてもよい。
【実施例】
【００７３】
次に、図６を用いて、具体的な実施例を用いて本発明について説明する。図６は、本発明の実施例において生成される仮説候補の一例を示す図である。以下の説明では、図３に示した各ステップに準じて本実施例における仮説推論装置１の動作を説明する。【００７４】
［ステップＡ１］
まず、仮説候補生成部２は、ユーザの端末装置から、観測論理式として、「強盗Aと警察Bが同じパトカーCに乗っている」という観測情報を論理表現で表現した連言「強盗(A) ∧ 警察(B) ∧ パトカー(C) ∧ 乗る(A,C) ∧ 乗る(B,C)」（図６参照）を取得する。【００７５】
また、観測論理式に含まれる個々の原子論理式には、その原子論理式をどれだけ重視して説明したいかを表す、実数値のコストが割り当てられている。ここでは、最も単純な定義として、観測論理式中の全ての原子論理式に定数値の0.0のコストが与えられている場合を仮定する。【００７６】
［ステップＡ２］
知識データベース１０には、背景知識となる推論知識として、「ｘが強盗ならｘは犯罪者である」、「ｘがｙを逮捕するならｙは犯罪者である」、「ｘがｙを逮捕するならｘは警察である」、「ｘがｙを逮捕するならｙはパトカーに乗る」、「ｘが警察ならパトカーに乗る」が格納されているとする。【００７７】
また、知識データベース１０に含まれる個々の推論知識は、実際には、図６に示すように、論理表現で表されている。更に、推論知識には、前向きの推論を行なう場合の信頼度に対応する値と、後ろ向きの推論を行なう場合の信頼度に対応する値とが付与されている。本実施例では、最も単純な定義として、推論知識 P→Qに対して、確率 p(Q|P)が前向きの信頼度として付与され、確率 p(P|Q) が後向きの信頼度として付与されている。【００７８】
図６に示した各推論知識に付与される信頼度は、例えば、下記の通りとなる。
∀x, y  逮捕する(x,y)0.9 → 犯罪者(y)1.0
∀x, y  逮捕する(x,y)0.9 → 警察(x)1.0
∀x  強盗(x)0.2 → 犯罪者(x)1.0
∀x, y ∃z  逮捕する(x,y)0.4 → パトカー(z)0.9 ∧ 乗る(y,z)0.7
∀x ∃y  警察(x)0.8 → パトカー(y)0.9 ∧ 乗る(x,y)0.8【００７９】
仮説候補生成部２は、観測論理式と、知識データベース１０に格納されている推論知識とを用いて、仮説候補の集合を生成する。なお、仮説候補の集合は、初期状態では、観測論理式のみで構成されている。即ち、初期状態では、観測論理式「強盗(A)∧警察(B)∧パトカー(C)∧乗る(A,C)∧乗る(B,C)」が、１つの仮説候補として存在する。【００８０】
具体的には、第１の推論部２１は、知識データベース１０を対象にして、仮説候補の集合に対して後向きに適用可能な推論知識の検索を行なう。例えば、推論知識「∀x, y ∃z  逮捕する(x,y) → パトカー(z) ∧ 乗る(y,z)」に、x=B，y=A，z=C を代入すると、この推論知識の後件と観測論理式の一部とが一致する。よって、第１の推論部２１は、この推論知識は後向きに適用可能であると判断し、これを抽出する。【００８１】
また、第１の推論部２１は、抽出した推論知識を、仮説候補の集合に現在含まれている仮説候補それぞれに対して後向きに適用する。例えば、推論知識 「∀x, y ∃z  逮捕する(x,y) → パトカー(z) ∧ 乗る(y,z)」を、上述した仮説候補集合の初期状態（観測論理式）に適用する。この場合、観測論理式に含まれる連言「パトカー(C) ∧ 乗る(A,C) 」と、推論知識の「∃x 逮捕する(x,A)」とは、変数代入の仕方が等価であるので、仮説が成立する。よって、新たな仮説候補として「∃x 逮捕する(x,A) ∧ 強盗(A) ∧ 警察(B) ∧ パトカー(C) ∧ 乗る(A,C) ∧ 乗る(B,C)」が仮説候補の集合に追加される。【００８２】
ところで、一般的には、仮説推論においては、仮説候補において、存在限量された変数に別の変数を代入することによって同一となる原子論理式の対が存在する場合、そのような変数代入によって得られる仮説候補も別途生成される。【００８３】
例えば、上述した観測論理式に対して推論知識「∀x, y  逮捕する(x,y) → 警察(x)」及び推論知識「∀x, y ∃z  逮捕する(x,y) → パトカー(z) ∧ 乗る(y,z)」を後向きに適用するとする。この場合、仮説候補として「∃x,y 逮捕する(B,y) ∧ 逮捕する(x,A) ∧ 強盗(A) ∧ 警察(B) ∧ パトカー(C) ∧ 乗る(A,C) ∧ 乗る(B,C)」が生成される。【００８４】
ここでx=B，y=Aとすると、仮説候補中の原子論理式の「逮捕する(B,y)」と「逮捕する(x,A)」とが同一の式になる。このことから、そのような変数代入を行った場合の仮説候補「逮捕する(x,A) ∧ 強盗(A) ∧ 警察(B) ∧ パトカー(C) ∧ 乗る(A,C) ∧ 乗る(B,C)」についても仮説候補集合に追加される。以降、このような手続きを単一化操作（Unification）と呼ぶ。【００８５】
また、第２の推論部２２は、第１の推論部２１と同様の手続きによって推論知識を検索する。例えば、推論知識「∀x 強盗(x) → 犯罪者(x)」は、x=A と代入することで、前件において、観測論理式に含まれる原子論理式「強盗(A)」と一致するので、第２の推論部２２は、この推論知識を前向きに適用可能なものとして抽出する。【００８６】
次に、第２の推論部２２は、抽出した推論知識を、仮説候補の集合に現在含まれている仮説候補それぞれに対して前向きに適用する。例えば、上述の推論知識「∀x 強盗(x) → 犯罪者(x)」を、上述した仮説候補集合の初期状態（観測論理式）に適用する。この場合、第２の推論部２２は、新たな仮説候補として「犯罪者(A) ∧ 強盗(A) ∧ 警察(B) ∧ パトカー(C) ∧ 乗る(A,C) ∧ 乗る(B,C)」を生成し、これを仮説候補集合に追加する。なお、第２の推論部２２も、第１の推論部２１と同様に、単一化操作を適宜実行する。【００８７】
第１の推論部２１及び第２の推論部２２の両方において、新たに適用可能な推論知識を抽出できなくなると、仮説候補の生成は完了する。【００８８】
［ステップＡ３］
次に、仮説候補評価部３は、仮説候補生成部２から出力された仮説候補の集合を入力として受け取ると、その中で最も良い説明として評価された仮説候補を最良仮説として出力するため、各仮説候補の評価値を計算する。【００８９】
具体的には、仮説候補評価部３は、仮説候補毎に、各推論知識に付与されている「後ろ向きの推論を行なう場合の信頼度」と、「前向きの推論を行なう場合の信頼度」との双方を用いて評価値を計算する。また、評価値は、過不足なく観測論理式を説明できているような仮説候補ほど高い値が割り当てられるようにする。例えば、仮説候補Ｈに対する評価値の計算式として、下記の数２が考えられる。【００９０】
【数２】
2018229877.tif 000004
【００９１】
上記数２において、B(H)は、仮説候補中で用いられている推論知識の集合である。hyp(H)は、仮説候補における仮説論理式に含まれる原子論理式の集合である。path(H)は、原子論理式xから観測論理式のいずれかへと至るような経路のそれぞれにおいて用いられる推論知識の集合を、経路ごとに集合として返すような関数である。【００９２】
W←(a)は、推論知識aが前向きに適用されているならば、推論知識aの後向き信頼度を1.0から差し引いた値を返し、推論知識aが後向きに適用されているならば、推論知識aの前向き信頼度を1.0から差し引いた値を返す関数である。【００９３】
W→(a)は、推論知識aが前向きに適用されているならば、推論知識aの前向き信頼度を1.0から差し引いた値を返し、推論知識aが後ろ向きに適用されているならば、推論知識aの後向き信頼度を1.0から差し引いた値を返す関数である。【００９４】
上記数２において、第１項は、仮説論理式から観測論理式を説明できる尤度を評価している。また、第２項は、観測論理式から仮説論理式を仮定できる尤度を評価している。従って、例えば、図６に示した仮説候補であれば、各Wの値は、図中の表記の通りとなるので、第１項が {0.8+0.1+0.2+0.1+0.3} となり、第二項が min(0.1, (0.1+0.2), 0.6) = 0.1 となる。従って、図６に示す仮説候補に対する評価値は {0.8+(0.1+0.2)+(0.1+0.3)}+0.1=1.6 となる。【００９５】
［ステップＡ４］
次に、仮説候補評価部３は、仮説候補の集合に含まれる仮説候補のうち、最も評価値が高いものを選択する。なお、選択手法としては、非特許文献１に開示された手法が用いられていても良い。非特許文献１は、最良仮説を選択する手続きを、等価な整数線形計画問題として表現し、外部の整数線形計画問題ソルバを用いて解くことで、高速に最良仮説を導く手法を提案している。【００９６】
以上のように、本実施例では、推論知識には、前向きの推論を行なう場合の信頼度と、後向きの推論を行なう場合の信頼度とが付与されているので、後向きの推論だけでなく、前向きの推論も行なわれる。つまり、本実施の形態では、従来の推論では行なうことができなかった前向きの推論を行なうことができる。また、前向きの推論が可能となるので、常には成り立たない推論知識を用いた場合でも仮説候補の蓋然性が適切に評価されることになる。【００９７】
上述した実施の形態の一部又は全部は、以下に記載する（付記１）〜（付記６）によって表現することができるが、以下の記載に限定されるものではない。【００９８】
（付記１）
観測された状況を論理表現によって表現する観測論理式に、前向きの推論を行なう場合の信頼度及び後向きの推論を行なう場合の信頼度が付与された推論知識を適用して推論を行ない、前記観測論理式を導くことが可能な仮説候補を生成する、仮説候補生成部と、
生成された前記仮説候補に適用された前記推論知識それぞれにおける推論の向きを特定し、前記推論知識それぞれの、特定した推論の向きに対応する前記信頼度を用いて、前記仮説候補の評価値を計算する、仮説候補評価部と、
を備えている、ことを特徴とする仮説推論装置。【００９９】
（付記２）
前記仮説候補生成部が、
前記観測論理式に後向きに前記推論知識を適用して推論を行なう第１の推論部と、前記観測論理式に前向きに前記推論知識を適用して推論を行なう第２の推論部とを備え、
前記第１の推論部による推論の結果と、前記第２の推論部による推論の結果とを用いて、前記仮説候補を生成する、
付記１に記載の仮説推論装置。【０１００】
（付記３）
（ａ）観測された状況を論理表現によって表現する観測論理式に、前向きの推論を行なう場合の信頼度及び後向きの推論を行なう場合の信頼度が付与された推論知識を適用して推論を行ない、前記観測論理式を導くことが可能な仮説候補を生成する、ステップと、
（ｂ）生成された前記仮説候補に適用された前記推論知識それぞれにおける推論の向きを特定し、前記推論知識それぞれの、特定した推論の向きに対応する前記信頼度を用いて、前記仮説候補の評価値を計算する、ステップと、
を有する、ことを特徴とする仮説推論方法。【０１０１】
（付記４）
前記（ａ）のステップは、
（ａ１）前記観測論理式に後向きに前記推論知識を適用して推論を行なう、ステップと、
（ａ２）前記観測論理式に前向きに前記推論知識を適用して推論を行なう、ステップと、
（ａ３）前記（ａ１）のステップによる推論の結果と、前記（ａ２）ステップによる推論の結果とを用いて、前記仮説候補を生成する、ステップと、を含む、
付記３に記載の仮説推論方法。【０１０２】
（付記５）
コンピュータに、
（ａ）観測された状況を論理表現によって表現する観測論理式に、前向きの推論を行なう場合の信頼度及び後向きの推論を行なう場合の信頼度が付与された推論知識を適用して推論を行ない、前記観測論理式を導くことが可能な仮説候補を生成する、ステップと、
（ｂ）生成された前記仮説候補に適用された前記推論知識それぞれにおける推論の向きを特定し、前記推論知識それぞれの、特定した推論の向きに対応する前記信頼度を用いて、前記仮説候補の評価値を計算する、ステップと、
を実行させる命令を含む、プログラムを記録しているコンピュータ読み取り可能な記録媒体。【０１０３】
（付記６）
前記（ａ）のステップは、
（ａ１）前記観測論理式に後向きに前記推論知識を適用して推論を行なう、ステップと、
（ａ２）前記観測論理式に前向きに前記推論知識を適用して推論を行なう、ステップと、
（ａ３）前記（ａ１）のステップによる推論の結果と、前記（ａ２）ステップによる推論の結果とを用いて、前記仮説候補を生成する、ステップと、を含む、
付記５に記載のコンピュータ読み取り可能な記録媒体。
【産業上の利用可能性】
【０１０４】
以上のように、本発明によれば、前向きの推論を行なうことができ、且つ、常には成り立たない推論知識を用いた場合でも仮説候補の蓋然性を適切に評価することができる。本発明は、背景知識と観測情報とを用いた説明生成、状況理解などの用途に適用できる。より具体的には、本発明は、医療、法律相談、リスク検知等を行う自動システムに有用である。
【符号の説明】
【０１０５】
１  仮説推論装置
２  仮説候補生成部
３  仮説候補評価部
１０  知識データベース
２１  第１の推論部
２２  第２の推論部
１１０  コンピュータ
１１１  ＣＰＵ
１１２  メインメモリ
１１３  記憶装置
１１４  入力インターフェイス
１１５  表示コントローラ
１１６  データリーダ／ライタ
１１７  通信インターフェイス
１１８  入力機器
１１９  ディスプレイ装置
１２０  記録媒体
１２１  バス
【図１】
2018229877.tif 000005
【図２】
2018229877.tif 000006
【図３】
2018229877.tif 000007
【図４】
2018229877.tif 000008
【図５】
2018229877.tif 000009
【図６】
2018229877.tif 000010
【図７】
2018229877.tif 000011
【国際調査報告】
2018229877.tif 000012
2018229877.tif 000013