(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-05-08
(45)【発行日】2024-05-16
(54)【発明の名称】推論装置、推論方法、及びプログラム
(51)【国際特許分類】
G06N 5/04 20230101AFI20240509BHJP
G06F 21/55 20130101ALI20240509BHJP
【FI】
G06N5/04
G06F21/55
(21)【出願番号】P 2022531173
(86)(22)【出願日】2020-06-17
(86)【国際出願番号】 JP2020023769
(87)【国際公開番号】W WO2021255861
(87)【国際公開日】2021-12-23
【審査請求日】2022-12-06
(73)【特許権者】
【識別番号】000004237
【氏名又は名称】日本電気株式会社
(74)【代理人】
【識別番号】110002044
【氏名又は名称】弁理士法人ブライタス
(72)【発明者】
【氏名】木村 大地
【審査官】北川 純次
(56)【参考文献】
【文献】特開平03-028929(JP,A)
【文献】特開2011-253270(JP,A)
【文献】特開2016-091039(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06N 5/00 - 5/048
G06F 21/55
(57)【特許請求の範囲】
【請求項1】
観測された事実を論理式で表現した第一の観測論理式に含まれる第一の観測リテラルに基づいて、前記第一の観測リテラルの数値的な関係性を表す第二の観測リテラルを有する第二の観測論理式を生成し、前記第一の観測論理式に追加する、生成手段と、
前記第一の観測論理式と前記第二の観測論理式に、論理式で表現した複数のルールを有する推論知識を適用して仮説推論を実行する、仮説推論手段と、
を有し、
前記ルールは、あらかじめ用意された第一のルールに含まれる第一のリテラルに基づいて生成された数値的な関係性を表す第二のリテラルを、前記第一のルールに追加した論理式である
推論装置。
【請求項2】
請求項
1に記載の推論装置であって、
前記第二の観測リテラルのコストは、前記第一の観測リテラルに前記第二の観測リテラルを追加して実行した仮説推論の結果から前記第二の観測リテラルを取り除くと、前記第二の観測リテラルを追加する前の仮説推論を実行した結果における、複数の同じコストの解仮説のうちのいずれか一つと同じになるような値とする
推論装置。
【請求項3】
情報処理装置が、
観測された事実を論理式で表現した第一の観測論理式に含まれる第一の観測リテラルに基づいて、前記第一の観測リテラルの数値的な関係性を表す第二の観測リテラルを有する第二の観測論理式を生成し、前記第一の観測論理式に追加し、
前記第一の観測論理式と前記第二の観測論理式に、論理式で表現した複数のルールを有する推論知識を適用して仮説推論を実行
し、
前記ルールは、あらかじめ用意された第一のルールに含まれる第一のリテラルに基づいて生成された数値的な関係性を表す第二のリテラルを、前記第一のルールに追加した論理式である
推論方法。
【請求項4】
請求項
3に記載の推論方法であって、
前記第二の観測リテラルのコストは、前記第一の観測リテラルに前記第二の観測リテラルを追加して実行した仮説推論の結果から前記第二の観測リテラルを取り除くと、前記第二の観測リテラルを追加する前の仮説推論を実行した結果における、複数の同じコストの解仮説のうちのいずれか一つと同じになるような値とする
推論方法。
【請求項5】
コンピュータに
観測された事実を論理式で表現した第一の観測論理式に含まれる第一の観測リテラルに基づいて、前記第一の観測リテラルの数値的な関係性を表す第二の観測リテラルを有する第二の観測論理式を生成し、前記第一の観測論理式に追加し、
前記第一の観測論理式と前記第二の観測論理式に、論理式で表現した複数のルールを有する推論知識を適用して仮説推論を実行
する、処理を実行させ、
前記ルールは、あらかじめ用意された第一のルールに含まれる第一のリテラルに基づいて生成された数値的な関係性を表す第二のリテラルを、前記第一のルールに追加した論理式である
プログラム。
【請求項6】
請求項
5に記載のプログラムであって、
前記第二の観測リテラルのコストは、前記第一の観測リテラルに前記第二の観測リテラルを追加して実行した仮説推論の結果から前記第二の観測リテラルを取り除くと、前記第二の観測リテラルを追加する前の仮説推論を実行した結果における、複数の同じコストの解仮説のうちのいずれか一つと同じになるような値とする
プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、観測に対して仮説を導く推論をする推論装置、推論方法に関し、更には、これらを実現するためのプログラムに関する。
【背景技術】
【0002】
サイバーセキュリティでは、例えば、組織のシステムにある事象が観測された場合、観測された事象が、サイバー攻撃により観測されたのかを判定する必要がある。このような判定を実現する方法として、仮説推論を適用する方法が有望である。
【0003】
仮説推論とは、論理式で与えられた推論知識(複数のルール)と観測された事象(観測事象)とを用いて、観測に対して最良な仮説を導く推論である。上述したシステムにサイバー攻撃が実行されたか否かの判定に仮説推論を適用した場合を例に説明する。そのシステムについてあらかじめ用意したルールと観測事象とを用いて仮説を導くことで、サイバー攻撃があったか否かを判定する。
【0004】
さらに、仮説推論には、非特許文献1に開示されている、複数の仮説候補から最良の仮説を特定する重み付き仮説推論がある。重み付き仮説推論では、ルールに対して重みを割り当て、観測事象にはコストを割り当てる。次に、重み付き仮説推論では、重み付きのルールと、コスト付きの観測事象とに対して後ろ向き推論操作を行い、仮説候補を生成する。また、重み付き仮説推論では、単一化操作により仮説候補ごとにコストを算出し、算出したコストに基づいて生成した仮説候補から仮説を特定する。なお、コストが小さい仮説候補ほど良い仮説である。コストが最小の仮説候補を解仮説とも呼ぶ。
【先行技術文献】
【非特許文献】
【0005】
【文献】J. R. Hobbs, M. Stickel, P. Martin, and D. Edwards, “Interpretation as abduction”, Artificial Intelligence, Vol. 63, pp. 69-142, 1993.
【発明の概要】
【発明が解決しようとする課題】
【0006】
しかしながら、仮説推論では論理式を用いているため、数値的な関係性を扱うことができない。例えば、複数の証拠(観測事象)が得られたときに、証拠を得た時間が近いほど証拠同士に関連があると見做したい場合や、同じ種類の証拠が得られたときに、時刻が早い証拠を採用したい場合に、仮説推論に数値的な関係性を反映させたい。しかし、数値的な関係性は論理式で表現しにくい。
【0007】
一つの側面として、仮説推論に数値的な関係性を反映できる推論装置、推論方法、及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【0008】
上記目的を達成するため、一つの側面における推論装置は、
観測された事実を論理式で表現された第一の観測論理式に含まれる第一の観測リテラルに基づいて、前記第一の観測リテラルの数値的な関係性を表す第二の観測リテラルを有する第二の観測論理式を生成し、前記第一の観測論理式に追加する、生成部と、
前記第一の観測論理式と前記第二の観測論理式に、論理式で表現した複数のルールを有する推論知識を適用して仮説推論を実行する、仮説推論部と、
を有することを特徴とする。
【0009】
また、上記目的を達成するため、一側面における推論方法は、
観測された事実を論理式で表現された第一の観測論理式に含まれる第一の観測リテラルに基づいて、前記第一の観測リテラルの数値的な関係性を表す第二の観測リテラルを有する第二の観測論理式を生成し、前記第一の観測論理式に追加する、生成ステップと、
前記第一の観測論理式と前記第二の観測論理式に、論理式で表現した複数のルールを有する推論知識を適用して仮説推論を実行する、仮説推論ステップと、
を有することを特徴とする。
【0010】
さらに、上記目的を達成するため、一側面におけるプログラムは、
コンピュータに、
観測された事実を論理式で表現された第一の観測論理式に含まれる第一の観測リテラルに基づいて、前記第一の観測リテラルの数値的な関係性を表す第二の観測リテラルを有する第二の観測論理式を生成し、前記第一の観測論理式に追加する、生成ステップと、
前記第一の観測論理式と前記第二の観測論理式に、論理式で表現した複数のルールを有する推論知識を適用して仮説推論を実行する、仮説推論ステップと、
を実行させることを特徴とする。
【発明の効果】
【0011】
一つの側面として、仮説推論に数値的な関係性を反映することができる。
【図面の簡単な説明】
【0012】
【
図1】
図1は、重み付き仮説推論と数値的な関係性を説明するための図である。
【
図2】
図2は、重み付き仮説推論と数値的な関係性を説明するための図である。
【
図3】
図3は、推論装置の一例を説明するための図である。
【
図4】
図4は、仮説推論の結果を説明するための図である。
【
図5】
図5は、仮説推論の結果を説明するための図である。
【
図6】
図6は、推論装置を有するシステムの一例を説明するための図である。
【
図7】
図7は、実施例1の説明をするための図である。
【
図8】
図8は、実施例2の説明をするための図である。
【
図9】
図9は、推論装置の動作の一例を説明するための図である。
【
図10】
図10は、推論装置を実現するコンピュータの一例を説明するための図である。
【発明を実施するための形態】
【0013】
はじめに、以降で説明する実施形態の理解を容易にするために概要を説明する。
以降の実施形態ではサイバーセキュリティを例に、
図1、
図2を用いて重み付き仮説推論では数値的な関係性を表現しにくいことを説明する。
図1、
図2は、重み付き仮説推論と数値的な関係性を説明するための図である。
【0014】
なお、実施形態ではサイバーセキュリティを例に説明するが、実施形態で説明する技術はサイバーセキュリティ以外の分野にも適用できる。
【0015】
まず、
図1を用いて、重み付き仮説推論では、複数の観測リテラルが単一化された場合に、観測リテラルの項の値が近い組み合わせを優先的に選ぶことができないことについて説明をする。
【0016】
図1の例は、数1に示すようなルール(論理式の集合)と、数2に示すような証拠(観測事象:一階述語論理リテラルの連言)とを用いて、重み付き仮説推論をした結果を示している。リテラルは、素論理式又は素論理式に否定記号を付けたものである。素論理式が、例えば、p(t1,t2,…)である場合、pが述語記号であり、t1,t2,…が項である。なお、以降では、リテラルの項の値がアルファベットの小文字から始まる場合は変数、大文字から始まる場合は定数とする。
図1の結果は、最小のコストになる解1、解2が導かれたことを示している。
【0017】
(数1)
A(t1)0.0 ^ B(t2)0.0 => X(t1)
C(t2)0.0 ^ B(t3)0.0 => Y(t2)
X(t1)0.0 ^ Y(t2)0.0 => goal(n)
X, Y :攻撃手段
A, B, C :証拠
t1, t2 :時刻
goal :何らかの攻撃があったことを表すクエリ
リテラルの上付き文字:重み
【0018】
(数2)
A(T1)100 ^ B(T1)100 ^ B(T2)100^ C(T2)100 ^ goal(N)1
T1, T2 :時刻
リテラルの上付き文字:コスト
【0019】
図1の例では、まず、後ろ向き推論(矢印)を適用して、仮説を導くための開始を表すクエリである観測リテラルGoal(N)から、仮説リテラルX(t1)、Y(t2)を導く。次に、仮説リテラルX(t1)から仮説リテラルA(t1)、B(t2)を導くとともに、仮説リテラルY(t2)から仮説リテラルC(t2)、B(t3)を導く。なお、
図1には示していないが、後ろ向き推論では、ルールと観測事象を用いて、新しい仮説を導き、コストを伝播させている。
【0020】
続いて、
図1の例では、単一化(破線)を行う。解1は、仮説リテラルA(t1)と観測リテラルA(T1)が同一、仮説リテラルB(t2)と観測リテラルB(T1)が同一、仮説リテラルC(t2)と観測リテラルC(T2)が同一、仮説リテラルB(t3)と観測リテラルB(T2)が同一であることを示している。また、解2は、仮説リテラルA(t1)と観測リテラルA(T1)が同一、仮説リテラルB(t2)と観測リテラルB(T2)が同一、仮説リテラルC(t2)と観測リテラルC(T2)が同一、仮説リテラルB(t3)と観測リテラルB(T1)が同一であることを示している。
【0021】
しかし、
図1の例では、最小のコストとなる解1、解2が生成される。解1、解2が生成される理由は、現状では、証拠A、B、Cが、攻撃手段Xから導かれた証拠A、B、Cのいずれかと同一であると見做すか、攻撃手段Yから導かれた証拠A、B、Cのいずれかと同一であると見做すかしかできないためである。
【0022】
解1と解2とを比較すると、解1では、観測リテラルA(T1)と観測リテラルB(T1)の項がともにT1であり、観測リテラルC(T2)と観測リテラルB(T2)の項がともにT2であるのに対して、解2では、観測リテラルA(T1)と観測リテラルB(T2)の項が異なり、観測リテラルC(T2)と観測リテラルB(T1)の項も異なる。このような場合、証拠が観測された時刻が近い組み合わせを優先的に選択したい、すなわち観測リテラルの項が同じ解1を最良とするのが適当である。
【0023】
そこで、論理式を用いて、解1を最良とする方法が考えられる。例えば、数3に示すようなルールを用意する。数3では、X(n)の証拠としてA(t1)、B(t2)を要求するものであるが、更に、項の値が同じ場合(t1 = t2)と異なる場合(t1 ! = t2)についても考慮している。
【0024】
(数3)
A(t1) ^ B(t2) ^ (t1 = t2) => X(n)
A(t1) ^ B(t2) ^ (t1 ! = t2) => X(n)
! :否定
【0025】
また、数3における上段のルールを用いた方が、数3における下段のルールを用いた場合より評価関数の評価がよくなるように重みを調整する。
【0026】
ところが、ルールの前件のリテラルの数を増やすと、ルールの数が爆発的に増加する。例えば、前件のリテラル(A(t1)、B(t2)、C(t3))の数を三つにしただけで、項(t1、t2、t3)の同異を考慮すると、数4に示すようにルールの数は増加する。
【0027】
(数4)
A(t1) ^ B(t2) ^ C(t3) ^ (t1 = t2) ^ (t2 = t3) => X(n)
A(t1) ^ B(t2) ^ C(t3) ^ (t1 ! = t2) ^ (t2 = t3) => X(n)
A(t1) ^ B(t2) ^ C(t3) ^ (t1 = t2) ^ (t2 ! = t3) => X(n)
A(t1) ^ B(t2) ^ C(t3) ^ (t1 = t3) ^ (t2 ! = t3) => X(n)
A(t1) ^ B(t2) ^ C(t3) ^ (t1 ! = t2) ^ (t2 ! = t3) ^ (t3 ! = t1) => X(n)
【0028】
そのため、ルールの数が増えると解の探索空間が広がり、推論の計算時間が増加する。また、ルールの数が増えると、ルールをメンテナンスするコストも増加する。
【0029】
さらに、上述したように論理式を用いた場合、論理式は真偽しか扱えないので、項が同一かどうかしか扱えない。そのため、時刻の近さという連続的な数値を扱えない。したがって、複数の観測リテラルが単一化される場合に、観測リテラルの項の値が近い組み合わせを優先的に選ぶことができない。
【0030】
次に、
図2を用いて、重み付き仮説推論だけでは、攻撃手段を、初出順に並べることができないことについて説明をする。サイバー攻撃では、複数の攻撃手段を用いて、同じ攻撃手段が繰り返し実行されるため、攻撃手段を初出順に並べることで攻撃の進行具合を把握したいというニーズがある。
【0031】
図2の例は、攻撃手段X、Yを、X→Y→Xの順に実行された場合において、数1に示すようなルールと、数5に示すような証拠(観測事象)とを用いて、重み付き仮説推論をした結果を示している。
図2の例では、最小のコストになる解3、解4が導かれたことを示している。
【0032】
(数5)
A(T1)100 ^ B(T1)100 ^ B(T2)100 ^ C(T2)100 ^ goal(N)1
T1 < T2 < T3
T1, T2, T3 :時刻
【0033】
図2の例では、まず、後ろ向き推論(矢印)を適用して、クエリである観測リテラルGoal(N)から、仮説リテラルX(t1)、Y(t2)を導く。次に、仮説リテラルX(t1)から仮説リテラルA(t1)、B(t2)を導くとともに、仮説リテラルY(t2)から仮説リテラルC(t2)、B(t3)を導く。なお、
図2に示していないが、後ろ向き推論では、ルールと観測事象を用いて、新しい仮説を導き、コストを伝播させる。
【0034】
続いて、
図2の例では、単一化(破線)を行い解3、解4を得る。解3は、仮説リテラルA(t1)と観測リテラルA(T1)が同一、仮説リテラルC(t2)と観測リテラルC(T2)が同一であることを示している。また、解4は、仮説リテラルA(t1)と観測リテラルA(T3)が同一、仮説リテラルC(t2)と観測リテラルC(T2)が同一であることを示している。
【0035】
しかし、最小のコストとなる解3、解4が生成される。解3と解4が生成される理由は、
図2の例では、証拠Aが、攻撃手段Xが実行された時刻t1において観測されるというルールと、証拠Cが、攻撃手段Yが実行された時刻t2において観測されるというルールしかないからである。
【0036】
さらに、観測である証拠A、B、Cが、攻撃手段Xから導かれた証拠A、B、Cのいずれかと同一であると見做すか、攻撃手段Yから導かれた証拠A、B、Cのいずれかと同一であると見做すかしかできないためである。
【0037】
解3と解4とを比較すると、解3では、観測リテラルA(T1)の項がT1であり、観測リテラルC(T2)の項がT2であるのに対して、解4では、観測リテラルA(T3)の項がT3であり、観測リテラルC(T2)の項がT2である。このような場合、実際には、攻撃手段X、YがX→Y→Xの順に実行されているので、初出順X→Yに並べられた解3を最良とするのが適当である。なお、解4は、攻撃手段X、YがY→Xの順に並べられているので適当ではない。
【0038】
そこで、論理式を用いて、解3を最良とする方法が考えられる。例えば、ルールに攻撃手段が実行される順番(時刻)について考慮する。
【0039】
ところが、ルールの前件のリテラルの数が増えるとルールの数が爆発的に増加する。例えば、前件のリテラル(A(t1)、B(t2)、C(t2)、B(t3))の数を四つにしただけでも、t1、t2、t3の順番(時間的な順番)を考慮すると、ルールの数は増加する。
【0040】
また、時間的な順番を増やせば、更にルールの数は増加する。そのため、ルールの数が増えると解の探索空間が広がり、推論の計算時間が増加する。また、ルールの数が増えると、ルールをメンテナンスするコストも増加する。
【0041】
さらに、上述したように論理式を用いた場合、論理式は真偽しか扱えないので、項が同一かどうかしか扱えない。そのため、時間的な順番という連続的な数値を扱えない。したがって、複数の観測リテラルが単一化される場合に、初出順を優先的に選ぶことができない。
【0042】
このようなプロセスを経て、発明者は、非特許文献1などに開示されている重み付け推論だけでは、数値的な関係性を反映できないという課題を見出した。それとともに係る課題を解決する手段を導出するに至った。
【0043】
すなわち、発明者は、複数の観測リテラルが単一化される場合に、観測リテラルの項の値が近い組み合わせを優先的に選ぶ手段、又は、攻撃手段を初出順に並べた組み合わせを優先的に選ぶ手段を導出するに至った。その結果、仮説推論に数値的な関係性を反映できるようにした。
【0044】
以下、図面を参照して実施形態について説明する。なお、以下で説明する図面において、同一の機能又は対応する機能を有する要素には同一の符号を付し、その繰り返しの説明は省略することもある。
【0045】
(実施形態)
図3を用いて実施形態における推論装置の構成について説明する。
図3は、推論装置の一例を説明するための図である。
図3に示す推論装置10は、生成部11と、仮説推論部12とを有する。
【0046】
[装置構成]
生成部11は、観測された事実を論理式で表現された第一の観測論理式に含まれる第一の観測リテラルに基づいて、第一の観測リテラルの数値的な関係性を表す第二の観測リテラルを有する第二の観測論理式を生成し、第一の観測論理式に第二の観測論理式を追加する。
【0047】
例えば、数6に示すルールと、数7に示す観測論理式(第一の観測論理式)とにおいて、時刻t1、t2、t3の値が近いほど良い仮説とする仮説推論の結果を得るためには、数値的な関係性を考慮しなければならない。
【0048】
(数6)
A(t1) ^ B(t2) ^ C(t3) => goal(n)
t1, t2, t3 :時刻
【0049】
(数7)
A(T11) ^ B(T21) ^ B(T22) ^ C(T31) ^ C(T32) ^ C(T33) ^ goal(N)
T11, T21, T22, T31, T32, T33 :時刻
【0050】
そこで、まず、既存のルールに、手動又は自動で、数値的な関係性を表す新しいリテラル(第二のリテラル)を追加する。自動で生成する場合、生成部11は、数6に示すあらかじめ用意されたルール(第一のルール)に含まれるリテラル(第一のリテラル)に基づいて、数値的な関係性を表す新しいリテラル(第二のリテラル)を生成する。
【0051】
本例では、時刻t1、t2、t3の値の近さに着目しているので、生成部11は、例えば、新しいリテラルとしてclose(t1,t2,t3)を生成する。続いて、生成部11は、生成した新しいリテラルclose(t1,t2,t3)を数6に示すルールに追加して、数8に示す新しいルール(第二のルール)を生成する。
【0052】
(数8)
A(t1) ^ B(t2) ^ C(t3) ^ close(t1,t2,t3)=> goal(n)
close(t1,t2,t3) :t1,t2,t3の値の近さについてのリテラル
【0053】
次に、生成部11は、ルール(第一のルール)に追加した新しいリテラル(第二のリテラル)に対応する、数値的な関係性を表す新しい観測リテラル(第二の観測リテラル)を生成する。具体的には、生成部11は、数7に示す観測論理式(第一の観測論理式)に含まれる観測リテラル(第一の観測リテラル)に基づいて、当該観測リテラルの数値的な関係性を表す観測リテラル(第二の観測リテラル)を生成する。
【0054】
次に、生成部11は、数値的な関係性を表す観測リテラル(第二の観測リテラル)を用いて、数9に示す新しい観測論理式(第二の観測論理式)を生成する。そして、生成部11は、数9に示す新しい観測論理式(第二の観測論理式)を、数7に示す観測論理式(第一の観測論理式)に追加する。
【0055】
上述したように、本例では、時刻t1、t2、t3の値の近さに着目しているので、生成部11は、観測リテラルA、B、Cの項の値を組み合わせて、数9に示す観測論理式(第二の観測論理式)を生成する。
【0056】
(数9)
close(T11,T21,T31) ^ close(T11,T21,T32) ^ ... ^ close(T11,T22,T33)
【0057】
また、生成部11は、新しい観測論理式の新しい観測リテラルそれぞれにコストを付与する。具体的には、数9に示す観測リテラルcloseそれぞれに、項t1、t2、t3の値が近いほど値が大きくなるようにコストを与える。例えば、数10に示すような関数を用いて、コストRを算出する。ただし、コストの算出は数10に示す関数に限定されるものではない。
【0058】
(数10)
R = 5 * exp{-|T11-T21|-|T21-T31|-|T31-T11|}
【0059】
なお、新しい観測リテラルに付与するコストは、新しい観測リテラルの追加前と追加後で、仮説推論の結果が整合するような値である。具体的には、新しい観測リテラルに付与するコストは、第一の観測リテラルに第二の観測リテラルを追加して実行した仮説推論の結果から第二の観測リテラルを取り除くと、第二の観測リテラルを追加する前の仮説推論を実行した結果における、複数の同じコストの解仮説のうちのいずれか一つと同じになるような値が望ましい。
【0060】
仮説推論部12は、生成された新しい観測論理式に、論理式で表現した複数のルールを有する推論知識(新しいルール)を適用して仮説推論を実行する。
【0061】
具体的には、仮説推論部12は、数7に示す既存の観測リテラルに、数9に示す観測リテラルを追加した観測論理
式に、数8に示す新しいルールを適用して、重み付け仮説推論を実行する。その結果、例えば、
図4に示すような重み付け仮説推論した結果(コストが最小の仮説候補(解仮説))を得る。
図4は、仮説推論の結果を説明するための図である。
【0062】
図4に示した重み付け仮説推論では、仮説リテラルclose(t1,t2,t3)と、コストの大きい(時刻t1、t2、t3の値が近い)観測リテラルcloseとを単一化をするため、結果として時刻t1、t2、t3の値が近いほど良い仮説になり易くなる。
【0063】
なお、観測リテラルB(T21)とB(T22)、また、C(T31)とC(T32)とC(T33)が、それぞれ同じコストを有している場合には、
図4のA(t1)とA(T11)、B(t2)とB(T21)、C(t3)とC(T31)それぞれの単一化によるコストの減少は、他の観測リテラルと単一化した場合(例えばB(t2)とB(T22))と同じ値になる。
【0064】
また、
図4のルールに追加されたリテラルcloseと観測論理式に追加された観測リテラルの単一化によるコストの減少度合いは、観測リテラルA、B、Cの項の値の組み合わせにより変わる。したがって、数値的な関係性は、追加された観測リテラルのコストで担保される。
【0065】
さらに、数値的な関係性を表した観測リテラルを観測論理式に加える際に与えるコスト(追加する新しい観測リテラルのコスト)の値は、そのリテラルを与える前の推論結果と整合するものでなくてはならない。そのため、新しい観測リテラルの単一化によるコストの減少は、既存の観測リテラルの単一化によるコストの減少より、相対的に小さい値にする。
【0066】
理由は、
図5に示すように、追加した新しい観測リテラルの単一化によるコストの減少が大きすぎると、仮説リテラルA(t1)、B(t2)、C(t3)と観測リテラルA、B、Cの単一化に論理的な矛盾が生じるような項t1、t2、t3の組み合わせの場合であっても、追加した観測リテラルclose(T11,T22,T32)だけが単一化される解仮説が生じるからである。このような解仮説は新しい観測リテラルを追加する前の仮説推論の結果と整合せず、求める仮説とはならない。
図5は、仮説推論の結果を説明するための図である。
【0067】
このように、実施形態によれば、生成部11と仮説推論部12とを用いることで、仮説推論に数値的な関係性を反映できる。
【0068】
[システム構成]
図6を用いて、実施形態における推論装置10の構成をより具体的に説明する。
図6は、推論装置を有するシステムの一例を説明するための図である。
【0069】
図6に示すように、実施形態におけるシステムは、推論装置10と、記憶装置20と、出力装置30とを有する。推論装置10と記憶装置20と出力装置30とは、ネットワークを介して接続されている。
【0070】
推論装置10は、生成部11と、仮説推論部12と、出力情報生成部13とを有する。推論装置10は、例えば、CPU(Central Processing Unit)、又はFPGA(Field-Programmable Gate Array)などのプログラマブルなデバイス、又はそれら両方を搭載したサーバコンピュータ、パーソナルコンピュータなどの情報処理装置である。なお、推論装置10の詳細については後述する。
【0071】
記憶装置20は、観測論理式21と推論知識22とを有する。記憶装置20は、例えば、データベース、又はストレージ、又はサーバコンピュータのなどである。観測論理式21は、観測された事実を論理式で表現したものである(一階述語論理リテラルの連言)。推論知識22は、論理式で表現された複数のルール(論理式の集合)を有する。
【0072】
図6の例では、記憶装置20は、推論装置10の外部に設けられているが、推論装置10の内部に設けてもよい。また、
図6の例では、記憶装置20は一つであるが、記憶装置20は複数の記憶装置を用いて構成してもよい。その場合、観測論理式21と推論知識22とを分散させて記憶してもよい。
【0073】
出力装置30は、出力情報生成部13により、出力可能な形式に変換された、後述する出力情報を取得し、その出力情報に基づいて、生成した画像及び音声などを出力する。出力装置30は、例えば、液晶、有機EL(Electro Luminescence)、CRT(Cathode Ray Tube)を用いた画像表示装置などである。さらに、画像表示装置は、スピーカなどの音声出力装置などを備えていてもよい。なお、出力装置30は、プリンタなどの印刷装置でもよい。
【0074】
推論装置について説明をする。
生成部11は、具体的には、数値的な関係性を表す新しい観測リテラル(第二の観測リテラル)を有する観測論理式(第二の観測論理式)を生成し、記憶装置20に記憶されている既存の観測論理式21(集合)に追加する。
【0075】
なお、記憶装置20に記憶されている推論知識22のルールに、数値的な関係性を表す新しいリテラル(第二のリテラル)を、手動又は自動で追加する。
【0076】
仮説推論部12は、生成された新しい観測論理式に、新しいルールを有する推論知識を適用して仮説推論を実行する。
【0077】
出力情報生成部13は、ルール、観測リテラル、仮説推論の結果などを、出力装置30に出力させるための出力情報を生成し、出力装置30へ出力する。
【0078】
[実施例1]
実施例1では、攻撃手段Xに関連する証拠A、Bと、攻撃手段Yに関連する証拠C、Bとについて、それぞれが近い時刻になる仮説を得る。なお、実施例1では、自動で新しいルールを生成する場合について説明する。
【0079】
実施例1では、生成部11が、まず、数11に示すルールに追加するための、数値的な関係性を表す新しいリテラル(第二のリテラル)を生成する。
【0080】
(数11)
A(t1)0.0 ^ B(t2)0.0=> X(t1)
C(t2)0.0 ^ B(t3)0.0=> Y(t2)
X(t1)0.0 ^ Y(t2)0.0=> goal(n)
【0081】
次に、生成部11は、数12に示すように、新しいリテラルを数11のルールに追加する。実施例1では、リテラルA、Bの時刻の近さを表すリテラルcloseAB(t1,t2)と、リテラルC、Bの時刻の近さを表すリテラルcloseCB(t2,t3)を生成する。
【0082】
(数12)
A(t1)0.0 ^ B(t2)0.0 ^ closeAB(t1,t2)0.0 => X(t1)
C(t2)0.0 ^ B(t3)0.0 ^ closeCB(t2,t3)0.0 => Y(t2)
X(t1)0.0 ^ Y(t2)0.0=> goal(n)
【0083】
なお、数値的な関係性を表す新しいリテラルの生成は、手動で生成してもよい。また、生成した新しいリテラルのルールへの追加は、手動で行ってもよい。
【0084】
次に、生成部11が、数13に示す観測論理式に追加するために、数12に示すルールに追加した新しいリテラルに対応する、数値的な関係性を表す新しい観測リテラルcloseABとcloseCBを有する数14に示す新しい観測論理式を生成する。そして、生成部11は、数14に示す新しい観測論理式を、数13に示す観測論理式に追加する。
【0085】
(数13)
A(T1)100 ^ B(T1)100 ^ B(T2)100 ^ C(T2)100 ^ C(T3)100 ^ goal(N)1
T1 < T2 < T3
【0086】
(数14)
closeAB(T1,T1)5*exp{-|T1-T1|}^ closeAB(T1,T2)5*exp{-|T1-T2|}
^ closeCB(T2,T1)5*exp{-|T2-T1|}^ closeCB(T2,T2)5*exp{-|T2-T2|}
^ closeCB(T3,T1)5*exp{-|T3-T1|}^ closeCB(T3,T2)5*exp{-|T3-T2|}
【0087】
なお、追加した観測リテラルであるcloseABやcloseCBに付与するコストは、
図7に示した解仮説から取り除くと、新しい観測リテラルを追加する前の仮説推論の結果の一つになるような値である。
【0088】
次に、仮説推論部12は、数13と数14に示した観測論理式に、数12に示したルールを有する推論知識を適用して仮説推論を実行する。その結果、
図7に示す解仮説を得ることができる。
図7は、実施例1の説明をするための図である。
【0089】
図7の例では、仮説リテラルA、B(Xに関する部分)、仮説リテラルC、B(Yに関する部分)の組み合わせにおいて、最もコストが高い観測リテラルcloseAB、closeCBが単一化されることでコストが最小となる。すなわち、近い時刻の組み合わせになる。
【0090】
[実施例2]
実施例2では、攻撃手段XとYが初出順になる仮説を得る。なお、実施例2では、自動で新しいルールを生成する場合について説明する。
【0091】
実施例2では、生成部11が、まず、数15に示すルールに追加するための、数値的な関係性を表す新しいリテラル(第二のリテラル)を生成する。
【0092】
(数15)
A(t1)0.0 ^ B(t2)0.0 => X(t1)
C(t2)0.0 ^ B(t3)0.0 => Y(t2)
X(t1)0.0 ^ Y(t2)0.0 => goal(n)
【0093】
次に、生成部11は、数16に示すように、新しいリテラルを数15のルールに追加する。実施例2では、生成部11が、時刻の早さを表すリテラルearly(t1)、early(t2)を生成する。
【0094】
(数16)
A(t1)0.0 ^ B(t2)0.0 ^ early(t1)0.0 => X(t1)
C(t2)0.0 ^ B(t3)0.0 ^ early(t2)0.0 => Y(t2)
X(t1)0.0 ^ Y(t2)0.0 => goal(n)
【0095】
なお、数値的な関係性を表す新しいリテラルの生成は、手動で生成してもよい。また、生成した新しいリテラルのルールへの追加は、手動で行ってもよい。
【0096】
次に、生成部11が、数17に示す既存の観測論理式に追加するために、数16に示すルールに追加した新しいリテラルに対応する、数値的な関係性を表す新しい観測リテラルearly数18に示す新しい観測論理式を生成する。そして、生成部11は、数18に示す新しい観測論理式を、数17に示す観測論理式に追加する。
【0097】
(数17)
A(T1)100^ A(T3)100 ^ C(T2)100 ^ C(T4)100 ^ goal(N)1
T1 < T2 < T3 < T4
【0098】
(数18)
early(T1)(T4-T1)/(T4-T1)
^ early(T2)(T4-T2)/(T4-T1)
^ early(T3)(T4-T3)/(T4-T1)
^ early(T4)(T4-T4)/(T4-T1)
【0099】
なお、本例では、観測リテラルearly(t)のコストは、出現する時刻の中で最大の時刻T4と最小の時刻T1を用いて、(T4-t)/(T4-T1)としている。
【0100】
次に、仮説推論部12は、数17と数18に示した観測論理式に、数16に示したルールを有する推論知識を適用して仮説推論を実行する。その結果、
図8に示す解仮説を得ることができる。
図8は、実施例2の説明をするための図である。
図8に示すようにコストの高い観測リテラルearlyが単一化されることで、コストが最小になる。すなわち、初出順になる。
【0101】
[装置動作]
次に、実施形態における推論装置の動作について
図9を用いて説明する。
図9は、推論装置の動作の一例を説明するための図である。以下の説明においては、適宜図を参照する。また、実施形態では、推論装置を動作させることによって、推論方法が実施される。よって、実施形態における推論方法の説明は、以下の推論装置の動作説明に代える。
【0102】
図9ではルールを自動で生成する場合について説明する。最初に、生成部11は、数値的な関係性を表す新しいリテラルを生成する(ステップA1)。具体的には、ステップA1において、生成部11は、あらかじめ用意されたルール(第一のルール)に含まれるリテラル(第一のリテラル)に基づいて、数値的な関係性を表す新しいリテラル(第二のリテラル)を生成する。
【0103】
次に、生成部11は、既存のルールに新しいリテラルを追加する(ステップA2)。具体的には、ステップA2において、生成部11は、ステップA1で生成した新しいリテラル(第二のリテラル)を、あらかじめ用意されているルール(第一のルール)に追加して、新しいルール(第二のルール)を生成する。
【0104】
次に、生成部11は、新しいリテラルに対応する、数値的な関係性を表す新しい観測リテラルを生成する(ステップA3)。具体的には、ステップA3において、生成部11は、観測論理式(第一の観測論理式)に含まれる観測リテラル(第一の観測リテラル)に基づいて、当該観測リテラルの数値的な関係性を表す観測リテラル(第二の観測リテラル)を生成する。
【0105】
次に、生成部11は、新しい観測リテラルそれぞれにコストを付与する(ステップA4)。具体的には、ステップA4において、生成部11は、新しい観測リテラルそれぞれのコストを、あらかじめ決めた関数などを用いて算出する。
【0106】
次に、生成部11は、既存の観測論理式(集合)に、新しい観測リテラルを有する新しい観測論理式を追加する(ステップA5)。具体的には、ステップA5において、生成部11は、数値的な関係性を表す観測リテラル(第二の観測リテラル)を用いて、新しい観測論理式(第二の観測論理式)を生成する。そして、生成部11は、新しい観測論理式(第二の観測論理式)を、観測論理式(第一の観測論理式)に追加する。
【0107】
次に、仮説推論部12は、観測論理式に推論知識を適用して仮説推論を実行して解仮説を出力する(ステップA6)。具体的には、ステップA6において、仮説推論部12は、既存の観測論理式(第一の観測論理式)と新しい観測論理式(第二の観測論理式)に、新しいルール(第二のルール)を適用して、重み付け仮説推論を実行する。その結果、重み付け仮説推論の結果として、数値的な関係性を反映したコストが最小の仮説候補(解仮説))を得る。
【0108】
[本実施形態の効果]
以上のように実施形態によれば、数値的な関係性を反映した仮説推論の結果が得られる。
【0109】
また、ルールの変更をするが、従来のようにルールの数を増やさないので、解の探索空間が広がらないため、従来のようにルールを増やす場合と比べて、推論の計算時間を抑制できる。
【0110】
また、数値的な関係性は追加された観測リテラルのコストで担保されつつ、この追加された観測リテラルを含んだ状態で仮説推論を行うので、論理的な整合と数値的な関係性が両立できる。
【0111】
[プログラム]
実施形態におけるプログラムは、コンピュータに、
図9に示すステップA1からA6を実行させるプログラムであればよい。このプログラムをコンピュータにインストールし、実行することによって、本実施形態における推論装置と推論方法とを実現することができる。この場合、コンピュータのプロセッサは、生成部11、仮説推論部12、出力情報生成部13として機能し、処理を行なう。
【0112】
また、実施形態におけるプログラムは、複数のコンピュータによって構築されたコンピュータシステムによって実行されてもよい。この場合は、例えば、各コンピュータが、それぞれ、生成部11、仮説推論部12、出力情報生成部13のいずれかとして機能してもよい。
【0113】
[物理構成]
ここで、実施形態におけるプログラムを実行することによって、推論装置を実現するコンピュータについて
図10を用いて説明する。
図10は、実施形態における推論装置を実現するコンピュータの一例を説明するための図である。
【0114】
図10に示すように、コンピュータ110は、CPU(Central Processing Unit)111と、メインメモリ112と、記憶装置113と、入力インターフェイス114と、表示コントローラ115と、データリーダ/ライタ116と、通信インターフェイス117とを備える。これらの各部は、バス121を介して、互いにデータ通信可能に接続される。なお、コンピュータ110は、CPU111に加えて、又はCPU111に代えて、GPU(Graphics Processing Unit)、又はFPGAを備えていてもよい。
【0115】
CPU111は、記憶装置113に格納された、本実施形態におけるプログラム(コード)をメインメモリ112に展開し、これらを所定順序で実行することにより、各種の演算を実施する。メインメモリ112は、典型的には、DRAM(Dynamic Random Access Memory)等の揮発性の記憶装置である。また、本実施形態におけるプログラムは、コンピュータ読み取り可能な記録媒体120に格納された状態で提供される。なお、本実施形態におけるプログラムは、通信インターフェイス117を介して接続されたインターネット上で流通するものであってもよい。なお、記録媒体120は、不揮発性記録媒体である。
【0116】
また、記憶装置113の具体例としては、ハードディスクドライブの他、フラッシュメモリ等の半導体記憶装置があげられる。入力インターフェイス114は、CPU111と、キーボード及びマウスといった入力機器118との間のデータ伝送を仲介する。表示コントローラ115は、ディスプレイ装置119と接続され、ディスプレイ装置119での表示を制御する。
【0117】
データリーダ/ライタ116は、CPU111と記録媒体120との間のデータ伝送を仲介し、記録媒体120からのプログラムの読み出し、及びコンピュータ110における処理結果の記録媒体120への書き込みを実行する。通信インターフェイス117は、CPU111と、他のコンピュータとの間のデータ伝送を仲介する。
【0118】
また、記録媒体120の具体例としては、CF(Compact Flash(登録商標))及びSD(Secure Digital)等の汎用的な半導体記憶デバイス、フレキシブルディスク(Flexible Disk)等の磁気記録媒体、又はCD-ROM(Compact Disk Read Only Memory)などの光学記録媒体があげられる。
【0119】
なお、本実施形態における推論装置10は、プログラムがインストールされたコンピュータではなく、各部に対応したハードウェアを用いることによっても実現可能である。更に、推論装置10は、一部がプログラムで実現され、残りの部分がハードウェアで実現されていてもよい。
【0120】
[付記]
以上の実施形態に関し、更に以下の付記を開示する。上述した実施形態の一部又は全部は、以下に記載する(付記1)から(付記9)により表現することができるが、以下の記載に限定されるものではない。
【0121】
(付記1)
観測された事実を論理式で表現した第一の観測論理式に含まれる第一の観測リテラルに基づいて、前記第一の観測リテラルの数値的な関係性を表す第二の観測リテラルを有する第二の観測論理式を生成し、前記第一の観測論理式に追加する、生成部と、
前記第一の観測論理式と前記第二の観測論理式に、論理式で表現した複数のルールを有する推論知識を適用して仮説推論を実行する、仮説推論部と、
を有する推論装置。
【0122】
(付記2)
付記1に記載の推論装置であって、
前記ルールは、あらかじめ用意された第一のルールに含まれる第一のリテラルに基づいて生成された数値的な関係性を表す第二のリテラルを、前記第一のルールに追加した論理式である
推論装置。
【0123】
(付記3)
付記1又は2に記載の推論装置であって、
前記第二の観測リテラルのコストは、前記第一の観測リテラルに前記第二の観測リテラルを追加して実行した仮説推論の結果から前記第二の観測リテラルを取り除くと、前記第二の観測リテラルを追加する前の仮説推論を実行した結果における、複数の同じコストの解仮説のうちのいずれか一つと同じになるような値とする
推論装置。
【0124】
(付記4)
観測された事実を論理式で表現した第一の観測論理式に含まれる第一の観測リテラルに基づいて、前記第一の観測リテラルの数値的な関係性を表す第二の観測リテラルを有する第二の観測論理式を生成し、前記第一の観測論理式に追加する、生成ステップと、
前記第一の観測論理式と前記第二の観測論理式に、論理式で表現した複数のルールを有する推論知識を適用して仮説推論を実行する、仮説推論ステップと、
を有する推論方法。
【0125】
(付記5)
付記4に記載の推論方法であって、
前記ルールは、あらかじめ用意された第一のルールに含まれる第一のリテラルに基づいて生成された数値的な関係性を表す第二のリテラルを、前記第一のルールに追加した論理式である
推論方法。
【0126】
(付記6)
付記4又は5に記載の推論方法であって、
前記第二の観測リテラルのコストは、前記第一の観測リテラルに前記第二の観測リテラルを追加して実行した仮説推論の結果から前記第二の観測リテラルを取り除くと、前記第二の観測リテラルを追加する前の仮説推論を実行した結果における、複数の同じコストの解仮説のうちのいずれか一つと同じになるような値とする
推論方法。
【0127】
(付記7)
コンピュータに、
観測された事実を論理式で表現した第一の観測論理式に含まれる第一の観測リテラルに基づいて、前記第一の観測リテラルの数値的な関係性を表す第二の観測リテラルを有する第二の観測論理式を生成し、前記第一の観測論理式に追加する、生成ステップと、
前記第一の観測論理式と前記第二の観測論理式に、論理式で表現した複数のルールを有する推論知識を適用して仮説推論を実行する、仮説推論ステップと、
を実行させる命令を含むプログラム。
【0128】
(付記8)
付記7に記載のプログラムであって、
前記ルールは、あらかじめ用意された第一のルールに含まれる第一のリテラルに基づいて生成された数値的な関係性を表す第二のリテラルを、前記第一のルールに追加した論理式である
プログラム。
【0129】
(付記9)
付記7又は8に記載のプログラムであって、
前記第二の観測リテラルのコストは、前記第一の観測リテラルに前記第二の観測リテラルを追加して実行した仮説推論の結果から前記第二の観測リテラルを取り除くと、前記第二の観測リテラルを追加する前の仮説推論を実行した結果における、複数の同じコストの解仮説のうちのいずれか一つと同じになるような値とする
プログラム。
【0130】
以上、実施形態を参照して本願発明を説明したが、本願発明は上記実施形態に限定されるものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
【産業上の利用可能性】
【0131】
以上のように本発明によれば、仮説推論に数値的な関係性を反映することができる。本発明は、仮説推論が必要な分野において有用である。
【符号の説明】
【0132】
10 推論装置
11 生成部
12 仮説推論部
13 出力情報生成部
20 記憶装置
21 観測論理式
22 推論知識
30 出力装置
110 コンピュータ
111 CPU
112 メインメモリ
113 記憶装置
114 入力インターフェイス
115 表示コントローラ
116 データリーダ/ライタ
117 通信インターフェイス
118 入力機器
119 ディスプレイ装置
120 記録媒体
121 バス