IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 日本電気株式会社の特許一覧

<>
  • 特許-推論装置、推論方法、及びプログラム 図1
  • 特許-推論装置、推論方法、及びプログラム 図2
  • 特許-推論装置、推論方法、及びプログラム 図3
  • 特許-推論装置、推論方法、及びプログラム 図4
  • 特許-推論装置、推論方法、及びプログラム 図5
  • 特許-推論装置、推論方法、及びプログラム 図6
  • 特許-推論装置、推論方法、及びプログラム 図7
  • 特許-推論装置、推論方法、及びプログラム 図8
  • 特許-推論装置、推論方法、及びプログラム 図9
  • 特許-推論装置、推論方法、及びプログラム 図10
  • 特許-推論装置、推論方法、及びプログラム 図11
< >
(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
【請求項の数】 9
(21)【出願番号】P 2022531171
(86)(22)【出願日】2020-06-17
(86)【国際出願番号】 JP2020023767
(87)【国際公開番号】W WO2021255859
(87)【国際公開日】2021-12-23
【審査請求日】2022-12-06
(73)【特許権者】
【識別番号】000004237
【氏名又は名称】日本電気株式会社
(74)【代理人】
【識別番号】110002044
【氏名又は名称】弁理士法人ブライタス
(72)【発明者】
【氏名】木村 大地
【審査官】北川 純次
(56)【参考文献】
【文献】特開2016-091039(JP,A)
【文献】特開2011-253270(JP,A)
【文献】特開平03-028929(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06N 5/00 ー 5/048
G06F 21/55
(57)【特許請求の範囲】
【請求項1】
観測された事実を論理式で表現した観測論理式に、論理式で表現された複数のルールを有する推論知識を適用して仮説推論を実行する、仮説推論手段と、
前記仮説推論により生成された解仮説のうち一つの観測リテラルを、当該観測リテラルの述語と同じ述語を有する他の観測リテラルと置き換える、置換手段と、
生成された前記観測リテラルの置き換えの組み合わせごとに、数値的な関係性を表す評価関数を用いて評価をし、評価結果があらかじめ設定された条件に一致する組み合わせを選択する、選択手段と、
を有する推論装置。
【請求項2】
請求項1に記載の推論装置であって、
前記置換手段は、前記解仮説の仮説リテラルと単一化された観測リテラルを、当該観測リテラルの述語と同じ述語を有する他の観測リテラルに置き換える
推論装置。
【請求項3】
請求項1に記載の推論装置であって、
前記置換手段は、観測リテラルから導かれた仮説リテラルが単一化されている場合、当該観測リテラルを、当該観測リテラルの述語と同じ述語を有する他の観測リテラルに置き換える
推論装置。
【請求項4】
請求項1から3のいずれか一つに記載の推論装置であって、
前記置換手段は、置き換え対象となる前記観測リテラルに含まれる項が、前記ルールの複数のリテラルで共通する項に対応する場合、前記共通する項に対応する項を含む他の観測リテラルに置き換える
推論装置。
【請求項5】
情報処理装置が、
観測された事実を論理式で表現した観測論理式に、論理式で表現された複数のルールを有する推論知識を適用して仮説推論を実行し、
前記仮説推論により生成された解仮説のうち一つの観測リテラルを、当該観測リテラルの述語と同じ述語を有する他の観測リテラルと置き換え
生成された前記観測リテラルの置き換えの組み合わせごとに、数値的な関係性を表す評価関数を用いて評価をし、評価結果があらかじめ設定された条件に一致する組み合わせを選択する、
推論方法。
【請求項6】
観測された事実を論理式で表現した観測論理式に、論理式で表現された複数のルールを有する推論知識を適用して仮説推論を実行し、
前記仮説推論により生成された解仮説のうち一つの観測リテラルを、当該観測リテラルの述語と同じ述語を有する他の観測リテラルと置き換え
生成された前記観測リテラルの置き換えの組み合わせごとに、数値的な関係性を表す評価関数を用いて評価をし、評価結果があらかじめ設定された条件に一致する組み合わせを選択する、
処理をコンピュータに実行させる命令を含むプログラム。
【請求項7】
請求項に記載のプログラムであって、
前記置き換えにおいて、前記解仮説の仮説リテラルと単一化された観測リテラルを、当該観測リテラルの述語と同じ述語を有する他の観測リテラルに置き換える
プログラム。
【請求項8】
請求項に記載のプログラムであって、
前記置き換えにおいて、観測リテラルから導かれた仮説リテラルが単一化されている場合、当該観測リテラルを、当該観測リテラルの述語と同じ述語を有する他の観測リテラルに置き換える
プログラム。
【請求項9】
請求項からのいずれか一つに記載のプログラムであって、
前記置き換えにおいて、置き換え対象となる前記観測リテラルに含まれる項が、前記ルールの複数のリテラルで共通する項に対応する場合、前記共通する項に対応する項を含む他の観測リテラルに置き換える
プログラム。
【発明の詳細な説明】
【技術分野】
【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は、置き換えを説明するための図である。
図8図8は、実施例1の説明をするための図である。
図9図9は、実施例2の説明をするための図である。
図10図10は、推論装置の動作の一例を説明するための図である。
図11図11は、推論装置を実現するコンピュータの一例を説明するための図である。
【発明を実施するための形態】
【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は、推論装置の一例を説明するための図である。
【0046】
[装置構成]
図3に示す推論装置10は、推論を実行する装置である。また、図3に示すように、推論装置10は、仮説推論部11と、置換部12とを有する。
【0047】
このうち、仮説推論部11は、観測された事実を論理式で表現した観測論理式に、論理式で表現した複数のルールを有する推論知識を適用して仮説推論を実行する。置換部12は、仮説推論により生成された解仮説のうち一つの観測リテラルを、当該観測リテラルの述語と同じ述語を有する他の観測リテラルと置き換える。
【0048】
実施形態においては、以上のように仮説推論部11と置換部12とを用いることで、仮説推論に数値的な関係性を反映できる。
【0049】
[システム構成]
図4を用いて、実施形態における推論装置10の構成をより具体的に説明する。図4は、推論装置を有するシステムの一例を説明するための図である。
【0050】
図4に示すように、実施形態におけるシステムは、推論装置10と、記憶装置20と、出力装置30とを有する。推論装置10と記憶装置20と出力装置30とは、ネットワークを介して接続されている。
【0051】
推論装置10は、仮説推論部11と、置換部12と、選択部13と、出力情報生成部14とを有する。推論装置10は、例えば、CPU(Central Processing Unit)、又はFPGA(Field-Programmable Gate Array)などのプログラマブルなデバイス、又はそれら両方を搭載したサーバコンピュータ、パーソナルコンピュータなどの情報処理装置である。なお、推論装置10の詳細については後述する。
【0052】
記憶装置20は、観測論理式21と推論知識22とを有する。記憶装置20は、例えば、データベース、又はストレージ、又はサーバコンピュータのなどである。観測論理式21は、観測された事実を論理式で表現したものである(一階述語論理リテラルの連言)。推論知識22は、論理式で表現された複数のルール(論理式の集合)を有する。
【0053】
図4の例では、記憶装置20は、推論装置10の外部に設けられているが、推論装置10の内部に設けてもよい。また、図4の例では、記憶装置20は一つであるが、記憶装置20は複数の記憶装置を用いて構成してもよい。その場合、観測論理式21と推論知識22とを分散させて記憶してもよい。
【0054】
出力装置30は、出力情報生成部14により、出力可能な形式に変換された、後述する出力情報を取得し、その出力情報に基づいて、生成した画像及び音声などを出力する。出力装置30は、例えば、液晶、有機EL(Electro Luminescence)、CRT(Cathode Ray Tube)を用いた画像表示装置などである。さらに、画像表示装置は、スピーカなどの音声出力装置などを備えていてもよい。なお、出力装置30は、プリンタなどの印刷装置でもよい。
【0055】
推論装置について説明をする。
仮説推論部11は、具体的には、図4に示す記憶装置20に記憶されている観測論理式に、図4に示す記憶装置20に記憶されている推論知識を適用して、重み付き仮説推論を実行し、重み付け仮説推論の結果を出力する。
【0056】
置換部12は、具体的には、重み付き仮説推論により生成された解仮説の仮説リテラルと単一化された観測リテラルを、当該観測リテラルの述語と同じ述語を有する他の観測リテラルに置き換える。なお、上述したような置換をした場合、同じ述語の観測リテラルのコストがすべて同じであれば、解全体のコストは不変である。
【0057】
図5は、置き換えを説明するための図である。図5の例では、重み付き仮説推論の結果を示す解Aにおいて、仮説リテラルB(t2)、B(t3)のそれぞれと単一化された観測リテラルB(T1)、B(T2)を、同じ述語を有する他の観測リテラルB(T2)、B(T3)に置き換え、解A′を生成している。図5の例では、観測リテラルB(T1)、B(T2)、B(T3)のコストが同じであるので、解A′に示すように置き換えをしても、解全体のコストは変わらない。
【0058】
また、置換部12は、観測リテラルから導かれた仮説リテラルが単一化されている場合、当該観測リテラルを、当該観測リテラルの述語と同じ述語を有する他の観測リテラルに置き換える。
【0059】
図6は、置き換えを説明するための図である。図6の例では、重み付き仮説推論の結果を示す解Bにおいて、観測リテラルA(T1)から導かれた仮説リテラルX(T1)がリテラルX(t1)と単一化している場合に、観測リテラルA(T1)を観測リテラルA(T2)に置き換え、解B′を生成している。図6の例では、観測リテラルA(T1)、A(T2)のコストが同じであるので、解B′に示すように置き換えをしても、解全体のコストは変わらない。
【0060】
さらに、置換部12は、置き換え対象となる観測リテラルに含まれる項が、ルールの複数のリテラルで共通する項に対応する場合、共通する項に対応する項を含む他の観測リテラルに置き換える。
【0061】
図7は、置き換えを説明するための図である。図7の例では、仮説リテラルA(t1,x)の項xは、数6のルールを参照しても、仮説リテラルB(t2,y)、C(t3,y,z)に含まないので、他の観測リテラルに影響しない。
【0062】
(数6)
A(t1,x) ^ B(t2,y) ^ C(t3,y,z)=> X(t1)
【0063】
したがって、仮説リテラルA(t1,x)に対応する観測リテラルA(T1,X)は、同じ述語を有する他の観測リテラルへの置き換えが、他の述語を有する観測リテラルB(T2,Y)、C(T3,Y,Z)と独立して可能である。
【0064】
例えば、観測リテラルA(T1,X)は、同じ述語を有する観測リテラルA(T1,X1)、又はA(T1,X2)、又はA(T3,X3)などに置き換えができる。
【0065】
仮説リテラルB(t2,y)の項yは、数6のルールを参照すると、C(t3,y,z)にも含まれているので、他の観測リテラルに影響する。仮説リテラルC(t3,y,z)の項zは、数6のルールを参照しても、他の仮説リテラルA(t1,x)、B(t2,y)に含まれないので、他の観測リテラルに影響しない。
【0066】
したがって、観測リテラルB(T2,Y)と観測リテラルC(T3,Y,Z)を置き換える場合、共通する項Yに対応する項を含む他の観測リテラルに置き換えなければならない。すなわち、観測リテラルB(T2,Y)と観測リテラルC(T3,Y,Z)はそれぞれ独立して置き換えることはできず、置き換えることのできる組み合わせを考慮しなければならない。
【0067】
例えば、観測リテラルB(T2,Y)と観測リテラルC(T3,Y,Z)は、共通の項Y1を有する観測リテラルB(T2,Y1)と観測リテラルC(T3,Y1,Z1)、又は観測リテラルB(T2,Y1)と観測リテラルC(T3,Y1,Z3)などの組み合わせであれば置き換えができる。しかし、観測リテラルB(T2,Y1)と観測リテラルC(T3,Y2,Z1)は、共通の項Y1を有していないのでこの組み合わせでは置き換えができない。
【0068】
選択部13は、生成された観測リテラルの置き換えの組み合わせごとに、数値的な関係性を表す評価関数を用いて評価をし、評価結果があらかじめ設定された条件に一致する組み合わせを選択する。
【0069】
出力情報生成部14は、仮説推論の結果、生成された観測リテラルの置き換えの組み合わせ、評価関数、組み合わせごとの評価結果などを、出力装置30に出力させるための出力情報を生成し、出力装置30へ出力する。
【0070】
[実施例1]
図8は、実施例1の説明をするための図である。実施例1では、数7に示すようなルールと、数8に示すような証拠(観測事象)とを用いて重み付き仮説推論をし、図8に示す解が得られたとする。この解をもとに、攻撃手段Xに関連する証拠A、Bと、攻撃手段Yに関連する証拠C、Bとについて、それぞれが近い時刻になる仮説を得る場合について説明をする。
【0071】
(数7)
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)
【0072】
(数8)
A(T1)100^ B(T1)100 ^ B(T2)100 ^ C(T2)100 ^ C(T3)100^ goal(N)1
T1 < T2 < T3
【0073】
置換部12は、まず、観測リテラルを抽出する。図8の例では、観測リテラルA(T1)、B(T2)、C(T3)、B(T1)、C(T2)、goal(N)を抽出する。続いて、置換部12は、数7のルールを参照して、抽出した観測リテラルが、共通の項を有するかどうかを判定する。
【0074】
続いて、置換部12は、観測リテラルA(T1)、B(T2)、C(T3)、B(T1)、C(T2)、goal(N)について、数9に示すような同じ述語を持つ他の観測リテラルと置き換えが可能である組み合わせを生成する。
【0075】
(数9)
B(T2)→B(T2)、C(T3)→C(T3)、B(T1)→B(T1)、C(T2)→C(T2)
B(T2)→B(T1)、C(T3)→C(T3)、B(T1)→B(T2)、C(T2)→C(T2)
B(T2)→B(T2)、C(T3)→C(T2)、B(T1)→B(T1)、C(T2)→C(T3)
B(T2)→B(T1)、C(T3)→C(T2)、B(T1)→B(T2)、C(T2)→C(T3)
【0076】
ここで、B(T2)→B(T1)は、矢印の左側が図8に示す解の観測リテラルB(T2)を表し、矢印の右側がそれを置き換えたあとの観測リテラルB(T1)を表す。ただし、置換部12は、共通の項を有する観測リテラルの組み合わせについて、ありえない組み合わせは除外する。図8の例では、共通の項を持つ観測リテラルがないので除外はしない。また、A(T1)およびgoal(N)に関しては、同じ述語を持つ観測リテラルが一つしかないため置き換えの対象としない。
【0077】
続いて、選択部13は、生成された観測リテラルの置き換えの組み合わせごとに評価関数を用いて評価結果を求める。評価結果が条件に一致する組み合わせを選択する。
【0078】
評価関数としては、例えば、近い時刻になるような仮説を得る場合には、評価結果R =(Xに関連する証拠A、Bの時刻の近さ)+(Yに関連する証拠B、Cの時刻の近さ)のような評価関数を用いて評価をする。図8の例であれば、数9に示すそれぞれの置き換えの組み合わせについて、数10に示すような評価結果R(R1、R2、R3、R4)が得られる。
【0079】
(数10)
R1 = (T1-T2)2 + (T3-T1)2
R2 = (T1-T1)2 + (T3-T2)2
R3 = (T1-T2)2 + (T2-T1)2
R4 = (T1-T1)2 + (T2-T2)2
【0080】
続いて、選択部13は、評価結果(評価値:R1からR4)のうち、あらかじめ設定された条件に一致する、例えば、最小の評価値R4に対応する組み合わせを選択する。
【0081】
実施例1によれば、攻撃手段Xに関連する証拠A、Bと、攻撃手段Yに関連する証拠C、Bとについて、それぞれが近い時刻になる仮説を得ることができる。
【0082】
[実施例2]
図9は、実施例2の説明をするための図である。実施例2では、数11に示すようなルールと、数12に示すような証拠(観測事象)とを用いて重み付き仮説推論をし、図9に示す解が得られたとする。この解をもとに、攻撃手段XとYが初出順になる仮説を得る場合について説明をする。
【0083】
(数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)
【0084】
(数12)
A(T1)100 ^ A(T3)100^ C(T2)100 ^ C(T4)100 ^ goal(N)1
T1 < T2 < T3 < T4
【0085】
置換部12は、まず、観測リテラルを抽出する。図9の例では、観測リテラルA(T3)、C(T2)、A(T1)、C(T4)、goal(N)を抽出する。続いて、置換部12は、抽出した観測リテラルが、数11のルールを参照して共通の項を有するかどうかを判定する。
【0086】
続いて、置換部12は、観測リテラルを置き換える組み合わせを生成する。図9の例であれば、数13に示すような組み合わせが生成される。
【0087】
(数13)
A(T3)→A(T3)、C(T2)→C(T2)、A(T1)→A(T1)、C(T4)→C(T4)
A(T3)→A(T1)、C(T2)→C(T2)、A(T1)→A(T3)、C(T4)→C(T4)
A(T3)→A(T3)、C(T2)→C(T4)、A(T1)→A(T1)、C(T4)→C(T2)
A(T3)→A(T1)、C(T2)→C(T4)、A(T1)→A(T3)、C(T4)→C(T2)
【0088】
ここで、A(T3)→A(T1)は、矢印の左側が図9に示す解の観測リテラルA(T3)を表し、矢印の右側がそれを置き換えたあとの観測リテラルA(T1)を表す。ただし、置換部12は、共通の項を持つ観測リテラルの組み合わせについては、共通の項を有する観測リテラルについて、ありえない組み合わせは除外する。図9の例では、共通の項を有する観測リテラルがないので除外はしない。また、goal(N)に関しては、同じ述語を持つ観測リテラルが一つしかないため置き換えの対象としない。
【0089】
続いて、選択部13は、生成された観測リテラルの置き換えの組み合わせごとに評価関数を用いて評価結果を求める。評価結果が条件に一致する組み合わせを選択する。
【0090】
評価関数としては、例えば、近い時刻になるような仮説を得る場合には、評価結果R =(X部分の時刻)+(Y部分の時刻)のような評価関数を用いて評価をする。図9の例であれば、数13に示すそれぞれの置き換えの組み合わせについて、数14に示すような評価結果R(R1、R2、R3、R4)が得られる。
【0091】
(数14)
R1 = (T3) + (T2)
R2 = (T1) + (T2)
R3 = (T3) + (T4)
R4 = (T1) + (T4)
【0092】
続いて、選択部13は、評価結果(評価値:R1からR4)のうち、あらかじめ設定された条件に一致する、例えば、最小の評価値R2に対応する組み合わせを選択する。
【0093】
このように、実施例2によれば、攻撃手段XとYが初出順になる仮説を得ることができる。
【0094】
[装置動作]
次に、実施形態における推論装置の動作について図10を用いて説明する。図10は、推論装置の動作の一例を説明するための図である。以下の説明においては、適宜図を参照する。また、実施形態では、推論装置を動作させることによって、推論方法が実施される。よって、実施形態における推論方法の説明は、以下の推論装置の動作説明に代える。
【0095】
図10に示すように、最初に、仮説推論部11は、観測論理式に推論知識を適用して仮説推論を実行する(ステップA1)。具体的には、ステップA1において、仮説推論部11は、図4に示す記憶装置20に記憶されている観測論理式に、図4に示す記憶装置20に記憶されている推論知識を適用して、重み付き仮説推論を実行する。
【0096】
次に、置換部12は、重み付き仮説推論の結果において、観測リテラルを抽出する(ステップA2)。
【0097】
次に、置換部12は、置き換える観測リテラルの組み合わせを生成する(ステップA3)。ただし、ステップA3において、置換部12は、推論知識の複数のルールを参照して、抽出した観測リテラルに他の観測リテラルと共通する項があるかを判定する。その後、置換部12は、置き換え対象となる観測リテラルに含まれる項が、ルールの複数のリテラルで共通する項に対応する場合、置き換え対象となる観測リテラルを、共通する項に対応する項を含む他の観測リテラルに置き換える。
【0098】
次に、選択部13は、組み合わせごとに評価関数を用いて、評価結果を求め、評価結果が条件に一致する組み合わせを選択する(ステップA4)。
【0099】
[本実施形態の効果]
以上のように実施形態によれば、仮説推論で得られた結果を用いて、論理的整合性を保持したまま、仮説推論に数値的な関係性を反映できる。
【0100】
また、ルールの数を増やさないので、解の探索空間が広がらないため、ルールを増やす場合と比べて、推論の計算時間を抑制できる。また、一般に、作成したルールがお互いに矛盾していないかをメンテナンスする必要があるが、ルールの数を増やさないことによりルールをメンテナンスするコストも抑制できる。
【0101】
また、仮説推論を行った後で数値的な関係性を評価するので、数値的な関係性についての評価関数は論理推論の制約を受けずに自由に設計することができる。
【0102】
また、仮説推論を行い、最小のコストとなる複数の解仮説を得たのちに、数値的な関係性を考慮して所望の解仮説を選ぶ方法も考えられるが、仮説推論の方法によっては、複数の解仮説を得るためには、複数回の仮説推論を行う必要がある場合がある。それに対して、実施形態によれば、一つの解仮説を得ればよいため仮説推論を行う回数が一度で済む。これにより、仮説推論を何度も行う必要がないため、処理にかかる時間を短縮することができる。
【0103】
[プログラム]
実施形態におけるプログラムは、コンピュータに、図10に示すステップA1からA4を実行させるプログラムであればよい。このプログラムをコンピュータにインストールし、実行することによって、本実施形態における推論装置と推論方法とを実現することができる。この場合、コンピュータのプロセッサは、仮説推論部11、置換部12、選択部13、出力情報生成部14として機能し、処理を行なう。
【0104】
また、実施形態におけるプログラムは、複数のコンピュータによって構築されたコンピュータシステムによって実行されてもよい。この場合は、例えば、各コンピュータが、それぞれ、仮説推論部11、置換部12、選択部13、出力情報生成部14のいずれかとして機能してもよい。
【0105】
[物理構成]
ここで、実施形態におけるプログラムを実行することによって、推論装置を実現するコンピュータについて図11を用いて説明する。図11は、実施形態における推論装置を実現するコンピュータの一例を説明するための図である。
【0106】
図11に示すように、コンピュータ110は、CPU(Central Processing Unit)111と、メインメモリ112と、記憶装置113と、入力インターフェイス114と、表示コントローラ115と、データリーダ/ライタ116と、通信インターフェイス117とを備える。これらの各部は、バス121を介して、互いにデータ通信可能に接続される。なお、コンピュータ110は、CPU111に加えて、又はCPU111に代えて、GPU(Graphics Processing Unit)、又はFPGAを備えていてもよい。
【0107】
CPU111は、記憶装置113に格納された、本実施形態におけるプログラム(コード)をメインメモリ112に展開し、これらを所定順序で実行することにより、各種の演算を実施する。メインメモリ112は、典型的には、DRAM(Dynamic Random Access Memory)等の揮発性の記憶装置である。また、本実施形態におけるプログラムは、コンピュータ読み取り可能な記録媒体120に格納された状態で提供される。なお、本実施形態におけるプログラムは、通信インターフェイス117を介して接続されたインターネット上で流通するものであってもよい。なお、記録媒体120は、不揮発性記録媒体である。
【0108】
また、記憶装置113の具体例としては、ハードディスクドライブの他、フラッシュメモリ等の半導体記憶装置があげられる。入力インターフェイス114は、CPU111と、キーボード及びマウスといった入力機器118との間のデータ伝送を仲介する。表示コントローラ115は、ディスプレイ装置119と接続され、ディスプレイ装置119での表示を制御する。
【0109】
データリーダ/ライタ116は、CPU111と記録媒体120との間のデータ伝送を仲介し、記録媒体120からのプログラムの読み出し、及びコンピュータ110における処理結果の記録媒体120への書き込みを実行する。通信インターフェイス117は、CPU111と、他のコンピュータとの間のデータ伝送を仲介する。
【0110】
また、記録媒体120の具体例としては、CF(Compact Flash(登録商標))及びSD(Secure Digital)等の汎用的な半導体記憶デバイス、フレキシブルディスク(Flexible Disk)等の磁気記録媒体、又はCD-ROM(Compact Disk Read Only Memory)などの光学記録媒体があげられる。
【0111】
なお、本実施形態における推論装置10は、プログラムがインストールされたコンピュータではなく、各部に対応したハードウェアを用いることによっても実現可能である。更に、推論装置10は、一部がプログラムで実現され、残りの部分がハードウェアで実現されていてもよい。
【0112】
[付記]
以上の実施形態に関し、更に以下の付記を開示する。上述した実施形態の一部又は全部は、以下に記載する(付記1)から(付記15)により表現することができるが、以下の記載に限定されるものではない。
【0113】
(付記1)
観測された事実を論理式で表現した観測論理式に、論理式で表現された複数のルールを有する推論知識を適用して仮説推論を実行する、仮説推論部と、
前記仮説推論により生成された解仮説のうち一つの観測リテラルを、当該観測リテラルの述語と同じ述語を有する他の観測リテラルと置き換える、置換部と、
を有する推論装置。
【0114】
(付記2)
付記1に記載の推論装置であって、
前記置換部は、前記解仮説の仮説リテラルと単一化された観測リテラルを、当該観測リテラルの述語と同じ述語を有する他の観測リテラルに置き換える
推論装置。
【0115】
(付記3)
付記1に記載の推論装置であって、
前記置換部は、観測リテラルから導かれた仮説リテラルが単一化されている場合、当該観測リテラルを、当該観測リテラルの述語と同じ述語を有する他の観測リテラルに置き換える
推論装置。
【0116】
(付記4)
付記1から3のいずれか一つに記載の推論装置であって、
前記置換部は、置き換え対象となる前記観測リテラルに含まれる項が、前記ルールの複数のリテラルで共通する項に対応する場合、前記共通する項に対応する項を含む他の観測リテラルに置き換える
推論装置。
【0117】
(付記5)
付記1から4のいずれか一つに記載の推論装置であって、
生成された前記観測リテラルの置き換えの組み合わせごとに、数値的な関係性を表す評価関数を用いて評価をし、評価結果があらかじめ設定された条件に一致する組み合わせを選択する、選択部を有する
推論装置。
【0118】
(付記6)
観測された事実を論理式で表現した観測論理式に、論理式で表現された複数のルールを有する推論知識を適用して仮説推論を実行する、仮説推論ステップと、
前記仮説推論により生成された解仮説のうち一つの観測リテラルを、当該観測リテラルの述語と同じ述語を有する他の観測リテラルと置き換える、置換ステップと、
を有する推論方法。
【0119】
(付記7)
付記6に記載の推論方法であって、
前記置換ステップにおいて、前記解仮説の仮説リテラルと単一化された観測リテラルを、当該観測リテラルの述語と同じ述語を有する他の観測リテラルに置き換える
推論方法。
【0120】
(付記8)
付記6に記載の推論方法であって、
前記置換ステップにおいて、観測リテラルから導かれた仮説リテラルが単一化されている場合、当該観測リテラルを、当該観測リテラルの述語と同じ述語を有する他の観測リテラルに置き換える
推論方法。
【0121】
(付記9)
付記6から8のいずれか一つに記載の推論方法であって、
前記置換ステップにおいて、置き換え対象となる前記観測リテラルに含まれる項が、前記ルールの複数のリテラルで共通する項に対応する場合、前記共通する項に対応する項を含む他の観測リテラルに置き換える
推論方法。
【0122】
(付記10)
付記6から9のいずれか一つに記載の推論方法であって、
生成された前記観測リテラルの置き換えの組み合わせごとに、数値的な関係性を表す評価関数を用いて評価をし、評価結果があらかじめ設定された条件に一致する組み合わせを選択する、選択ステップを有する
推論方法。
【0123】
(付記11)
コンピュータに、
観測された事実を論理式で表現した観測論理式に、論理式で表現された複数のルールを有する推論知識を適用して仮説推論を実行する、仮説推論ステップと、
前記仮説推論により生成された解仮説のうち一つの観測リテラルを、当該観測リテラルの述語と同じ述語を有する他の観測リテラルと置き換える、置換ステップと、
を実行させる命令を含むプログラム。
【0124】
(付記12)
付記11に記載のプログラムであって、
前記置換ステップにおいて、前記解仮説の仮説リテラルと単一化された観測リテラルを、当該観測リテラルの述語と同じ述語を有する他の観測リテラルに置き換える
プログラム
【0125】
(付記13)
付記11に記載のプログラムであって、
前記置換ステップにおいて、観測リテラルから導かれた仮説リテラルが単一化されている場合、当該観測リテラルを、当該観測リテラルの述語と同じ述語を有する他の観測リテラルに置き換える
プログラム
【0126】
(付記14)
付記11から13のいずれか一つに記載のプログラムであって、
前記置換ステップにおいて、置き換え対象となる前記観測リテラルに含まれる項が、前記ルールの複数のリテラルで共通する項に対応する場合、前記共通する項に対応する項を含む他の観測リテラルに置き換える
プログラム
【0127】
(付記15)
付記11から14のいずれか一つに記載のプログラムであって、
前記プログラムが、前記コンピュータに、
生成された前記観測リテラルの置き換えの組み合わせごとに、数値的な関係性を表す評価関数を用いて評価をし、評価結果があらかじめ設定された条件に一致する組み合わせを選択する、選択ステップ
を実行させる命令を含むプログラム。
【0128】
以上、実施形態を参照して本願発明を説明したが、本願発明は上記実施形態に限定されるものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
【産業上の利用可能性】
【0129】
以上のように本発明によれば、仮説推論に数値的な関係性を反映することができる。本発明は、仮説推論が必要な分野において有用である。
【符号の説明】
【0130】
10 推論装置
11 仮説推論部
12 置換部
13 選択部
14 出力情報生成部
20 記憶装置
21 観測論理式
22 推論知識
30 出力装置
110 コンピュータ
111 CPU
112 メインメモリ
113 記憶装置
114 入力インターフェイス
115 表示コントローラ
116 データリーダ/ライタ
117 通信インターフェイス
118 入力機器
119 ディスプレイ装置
120 記録媒体
121 バス
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11