(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-05-08
(45)【発行日】2024-05-16
(54)【発明の名称】推論装置、推論方法、及びプログラム
(51)【国際特許分類】
G06N 5/04 20230101AFI20240509BHJP
【FI】
G06N5/04
(21)【出願番号】P 2022531172
(86)(22)【出願日】2020-06-17
(86)【国際出願番号】 JP2020023768
(87)【国際公開番号】W WO2021255860
(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)
【文献】村川 賀彦 ほか,アブダクションにおける仮説選択の学習機構について,1996年度人工知能学会全国大会(第10回)論文集,1996年,pp. 135-138
(58)【調査した分野】(Int.Cl.,DB名)
G06N 5/00 - 5/048
(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は、実施例1の説明をするための図である。
【
図6】
図6は、実施例2の説明をするための図である。
【
図7】
図7は、実施例3の説明をするための図である。
【
図8】
図8は、推論装置の動作の一例を説明するための図である。
【
図9】
図9は、推論装置を実現するコンピュータの一例を説明するための図である。
【発明を実施するための形態】
【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とを有する。推論装置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は、出力情報生成部13により、出力可能な形式に変換された、後述する出力情報を取得し、その出力情報に基づいて、生成した画像及び音声などを出力する。出力装置30は、例えば、液晶、有機EL(Electro Luminescence)、CRT(Cathode Ray Tube)を用いた画像表示装置などである。さらに、画像表示装置は、スピーカなどの音声出力装置などを備えていてもよい。なお、出力装置30は、プリンタなどの印刷装置でもよい。
【0055】
推論装置について説明をする。
仮説推論部11は、具体的には、
図4に示す記憶装置20に記憶されている観測論理式21に、
図4に示す記憶装置20に記憶されている推論知識22を適用して、重み付き仮説推論を実行し、コストが同じ複数の解仮説(同点解)を出力する。このように、仮説推論部11が、コストが同じ同点解をすべて出力することで、観測リテラルのありえる組み合わせを網羅できる。
【0056】
選択部12は、具体的には、複数の解仮説(同点解)が出力された場合、出力された解仮説それぞれを、数値的な関係性を表す評価関数を用いて評価をする。続いて、選択部12は、評価結果とあらかじめ設定された条件とを比較して、条件に一致する評価結果に対応する解仮説を選択する。例えば、条件が最小値である場合、選択部12は、複数の同点解それぞれの評価結果(値)を参照して、評価結果が最小値の解仮説を選択する。
【0057】
出力情報生成部13は、仮説推論の結果、評価関数、解仮説ごとの評価結果などを、出力装置30に出力させるための出力情報を生成し、出力装置30へ出力する。
【0058】
[実施例1]
図5は、実施例1の説明をするための図である。
図5には、仮説推論部11が、解仮説として解K1、解K2、解K3を出力した例が示されている。詳細には、仮説リテラルB(t2)、B(t3)と単一化できる観測リテラルB(T1)、B(T2)、B(T3)の組み合わせが、解仮説として解K1、解K2、解K3が出力されている。なお、観測リテラルB(T1)、B(T2)、B(T3)は同じコストである。
【0059】
また、
図5では、選択部12が、解K1、解K2、解K3それぞれについて評価関数を算出したことを示している。
図5では、評価関数を用いて算出した評価結果として、解K1の評価結果が30.2、解K2の評価結果が5.7、解K3の評価結果が102.2であることが示されている。
【0060】
そして、条件が最小値であれば、
図5において解K2の評価結果が最小であるので、選択部12は、解K2を望ましい解として選択する。
【0061】
[実施例2]
図6は、実施例2の説明をするための図である。実施例2では、攻撃手段Xに関連する証拠A、Bと、攻撃手段Yに関連する証拠C、Bとについて、それぞれが近い時刻になる仮説を得る。
【0062】
実施例2では、仮説推論部11が、数6に示すようなルールと、数7に示すような証拠(観測事象)とを用いて、重み付き仮説推論を実行する。その結果、
図6に示すような複数の解C1、解C2・・・が得られたとする。
【0063】
(数6)
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)
【0064】
(数7)
A(T1)100 ^ B(T1)100^ B(T2)100 ^ C(T2)100 ^ C(T3)100 ^ goal(N)1
T1 < T2 < T3
【0065】
次に、選択部12は、複数の解C1、解C2・・・ごとに評価関数を用いて評価結果を算出し、評価結果が条件に一致する解を選択する。
【0066】
評価関数としては、例えば、近い時刻になるような仮説を得る場合には、評価結果R =(Xに関連する証拠A、Bの時刻の近さ)+(Yに関連する証拠B、Cの時刻の近さ)のような評価関数を用いて評価をする。
図6の例であれば、数8に示すような評価結果R(R1、R2・・・)が得られる。
【0067】
(数8)
R1 = (T1-T2)2 + (T3-T1)2 > 0
R2 = (T1-T1)2 + (T2-T2)2 = 0
・・・
【0068】
続いて、選択部12は、評価結果(評価値:R1、R2・・・)のうち、あらかじめ設定された条件と一致する評価値を選択する。例えば、条件が最小値である場合、選択部12は、評価値R2に対応する解C2を選択する。
【0069】
実施例2によれば、攻撃手段Xに関連する証拠A、Bと、攻撃手段Yに関連する証拠C、Bとについて、それぞれが近い時刻になる仮説を得ることができる。
【0070】
[実施例3]
図7は、実施例3の説明をするための図である。実施例3では、攻撃手段XとYが初出順になる仮説を得る。
【0071】
実施例3では、仮説推論部11が、数9に示すようなルールと、数10に示すような証拠(観測事象)とを用いて、重み付き仮説推論を実行する。その結果、
図7に示すような複数の解D1、解D2・・・解が得られたとする。
【0072】
(数9)
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)
【0073】
(数10)
A(T1)100 ^ A(T3)100 ^ C(T2)100 ^ C(T4)100 ^ goal(N)1
T1 < T2 < T3 < T4
【0074】
選択部12は、複数の解D1、解D2・・・ごとに評価関数を用いて評価結果を求め、評価結果が条件に一致する解を選択する。
【0075】
評価関数としては、例えば、
攻撃手段XとYが初出順になるような仮説を得る場合には、評価結果R =(X部分の時刻)+(Y部分の時刻)のような評価関数を用いて評価をする。
図7の例であれば、数11に示すような評価結果R(R1、R2・・・)が得られる。
【0076】
(数11)
R1 = (T3) + (T2)
R2 = (T1) + (T2)
・・・
【0077】
続いて、選択部12は、評価結果(評価値:R1、R2・・・)のうち、あらかじめ設定された条件に一致する評価値を選択する。例えば、条件が最小値である場合、選択部12は、評価値R2に対応する解D2を選択する。
【0078】
実施例3によれば、攻撃手段XとYが初出順になる仮説を得ることができる。
【0079】
[装置動作]
次に、実施形態における推論装置の動作について
図8を用いて説明する。
図8は、推論装置の動作の一例を説明するための図である。以下の説明においては、適宜図を参照する。また、実施形態では、推論装置を動作させることによって、推論方法が実施される。よって、実施形態における推論方法の説明は、以下の推論装置の動作説明に代える。
【0080】
図8に示すように、最初に、仮説推論部11は、観測された事実を論理式で表現した観測論理式に、論理式で表現した複数のルールを有する推論知識を適用して仮説推論を実行し、コストが同じ複数の解仮説を出力する(ステップA1)。
【0081】
具体的には、ステップA1において、仮説推論部11は、
図4に示す記憶装置20に記憶されている観測論理式に、
図4に示す記憶装置20に記憶されている推論知識を適用して、重み付き仮説推論を実行し、コストが同じ複数の解仮説(同点解)を出力する。このように、仮説推論部11は、コストが同じ同点解をすべて出力することで、観測リテラルのありえる組み合わせを網羅できる。
【0082】
次に、選択部12は、複数の解仮説が出力された否かを判定する(ステップA2)。複数の解仮説が出力されている場合(ステップA2:Yes)、選択部12は、解仮説ごとに評価関数を用いて評価結果を算出する(ステップA3)。解仮説が一つの場合(ステップA2:No)、選択部12は、当該解仮説を望ましい解とする。
【0083】
選択部12は、複数の解仮説(同点解)が出力された場合、出力された解仮説それぞれを、数値的な関係性を表す評価関数を用いて評価をし、あらかじめ設定された条件に一致する評価結果に対応する解仮説を選択する(ステップA4)。例えば、条件が最小値である場合、選択部12は、複数の同点解それぞれの評価結果(値)を参照して、最小値の評価結果に対応する解仮説を選択する。
【0084】
[本実施形態の効果]
以上のように実施形態によれば、仮説推論で得られた結果を用いて、論理的整合性を保持したまま、仮説推論に数値的な関係性を反映できる。
【0085】
また、ルールの数を増やさないので、解の探索空間が広がらないため、ルールを増やす場合と比べて、推論の計算時間を抑制できる。また、一般に、作成したルールがお互いに矛盾していないかをメンテナンスする必要があるが、ルールの数を増やさないことによりルールをメンテナンスするコストも抑制できる。
【0086】
また、仮説推論を行った後で数値的な関係性を評価するので、数値的な関係性についての評価関数は論理推論の制約を受けずに自由に設計することができる。
【0087】
[プログラム]
実施形態におけるプログラムは、コンピュータに、
図8に示すステップA1からA4を実行させるプログラムであればよい。このプログラムをコンピュータにインストールし、実行することによって、本実施形態における推論装置と推論方法とを実現することができる。この場合、コンピュータのプロセッサは、仮説推論部11、選択部12、出力情報生成部13として機能し、処理を行なう。
【0088】
また、実施形態におけるプログラムは、複数のコンピュータによって構築されたコンピュータシステムによって実行されてもよい。この場合は、例えば、各コンピュータが、それぞれ、仮説推論部11、選択部12、出力情報生成部13のいずれかとして機能してもよい。
【0089】
[物理構成]
ここで、実施形態におけるプログラムを実行することによって、推論装置を実現するコンピュータについて
図9を用いて説明する。
図9は、実施形態における推論装置を実現するコンピュータの一例を説明するための図である。
【0090】
図9に示すように、コンピュータ110は、CPU(Central Processing Unit)111と、メインメモリ112と、記憶装置113と、入力インターフェイス114と、表示コントローラ115と、データリーダ/ライタ116と、通信インターフェイス117とを備える。これらの各部は、バス121を介して、互いにデータ通信可能に接続される。なお、コンピュータ110は、CPU111に加えて、又はCPU111に代えて、GPU(Graphics Processing Unit)、又はFPGAを備えていてもよい。
【0091】
CPU111は、記憶装置113に格納された、本実施形態におけるプログラム(コード)をメインメモリ112に展開し、これらを所定順序で実行することにより、各種の演算を実施する。メインメモリ112は、典型的には、DRAM(Dynamic Random Access Memory)等の揮発性の記憶装置である。また、本実施形態におけるプログラムは、コンピュータ読み取り可能な記録媒体120に格納された状態で提供される。なお、本実施形態におけるプログラムは、通信インターフェイス117を介して接続されたインターネット上で流通するものであってもよい。なお、記録媒体120は、不揮発性記録媒体である。
【0092】
また、記憶装置113の具体例としては、ハードディスクドライブの他、フラッシュメモリ等の半導体記憶装置があげられる。入力インターフェイス114は、CPU111と、キーボード及びマウスといった入力機器118との間のデータ伝送を仲介する。表示コントローラ115は、ディスプレイ装置119と接続され、ディスプレイ装置119での表示を制御する。
【0093】
データリーダ/ライタ116は、CPU111と記録媒体120との間のデータ伝送を仲介し、記録媒体120からのプログラムの読み出し、及びコンピュータ110における処理結果の記録媒体120への書き込みを実行する。通信インターフェイス117は、CPU111と、他のコンピュータとの間のデータ伝送を仲介する。
【0094】
また、記録媒体120の具体例としては、CF(Compact Flash(登録商標))及びSD(Secure Digital)等の汎用的な半導体記憶デバイス、フレキシブルディスク(Flexible Disk)等の磁気記録媒体、又はCD-ROM(Compact Disk Read Only Memory)などの光学記録媒体があげられる。
【0095】
なお、本実施形態における推論装置10は、プログラムがインストールされたコンピュータではなく、各部に対応したハードウェアを用いることによっても実現可能である。更に、推論装置10は、一部がプログラムで実現され、残りの部分がハードウェアで実現されていてもよい。
【0096】
[付記]
以上の実施形態に関し、更に以下の付記を開示する。上述した実施形態の一部又は全部は、以下に記載する(付記1)から(付記9)により表現することができるが、以下の記載に限定されるものではない。
【0097】
(付記1)
観測された事実を論理式で表現した観測論理式に、論理式で表現した複数のルールを有する推論知識を適用して仮説推論を実行し、コストが同じ複数の解仮説を出力する、仮説推論部と、
前記解仮説それぞれを評価基準に基づいて評価をし、評価結果に応じて解仮説を選択する、選択部と、
を有する推論装置。
【0098】
(付記2)
付記1に記載の推論装置であって、
前記選択部は、前記解仮説それぞれを、数値的な関係性を表す評価関数を用いて評価し、評価結果があらかじめ設定された条件に一致する解仮説を選択する
推論装置。
【0099】
(付記3)
付記2に記載の推論装置であって、
前記選択部は、前記評価関数を用いて、同じ仮説リテラルに関連する観測リテラルの項を評価し、前記条件に一致する解仮説を選択する
推論装置。
【0100】
(付記4)
観測された事実を論理式で表現した観測論理式に、論理式で表現した複数のルールを有する推論知識を適用して仮説推論を実行し、コストが同じ複数の解仮説を出力する、仮説推論ステップと、
前記解仮説それぞれを評価基準に基づいて評価をし、評価結果に基づいて解仮説を選択する、選択ステップと、
を有する推論方法。
【0101】
(付記5)
付記4に記載の推論方法であって、
前記選択ステップにおいて、前記解仮説それぞれを、数値的な関係性を表す評価関数を用いて評価し、評価結果があらかじめ設定された条件に一致する解仮説を選択する
推論方法。
【0102】
(付記6)
付記5に記載の推論方法であって、
前記選択ステップにおいて、前記評価関数を用いて、同じ仮説リテラルに関連する観測リテラルの項を評価し、前記条件に一致する解仮説を選択する
推論方法。
【0103】
(付記7)
コンピュータに、
観測された事実を論理式で表現した観測論理式に、論理式で表現した複数のルールを有する推論知識を適用して仮説推論を実行し、コストが同じ複数の解仮説を出力する、仮説推論ステップと、
前記解仮説それぞれを評価基準に基づいて評価をし、評価結果に基づいて解仮説を選択する、選択ステップと、
を実行させる命令を含むプログラム。
【0104】
(付記8)
付記7に記載のプログラムであって、
前記選択ステップにおいて、前記解仮説それぞれを、数値的な関係性を表す評価関数を用いて評価し、評価結果があらかじめ設定された条件に一致する解仮説を選択する
プログラム。
【0105】
(付記9)
付記8に記載のプログラムであって、
前記選択ステップにおいて、前記評価関数を用いて、同じ仮説リテラルに関連する観測リテラルの項を評価し、前記条件に一致する解仮説を選択する
プログラム。
【0106】
以上、実施形態を参照して本願発明を説明したが、本願発明は上記実施形態に限定されるものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
【産業上の利用可能性】
【0107】
以上のように本発明によれば、仮説推論に数値的な関係性を反映することができる。本発明は、仮説推論が必要な分野において有用である。
【符号の説明】
【0108】
10 推論装置
11 仮説推論部
12 選択部
13 出力情報生成部
20 記憶装置
21 観測論理式
22 推論知識
30 出力装置
110 コンピュータ
111 CPU
112 メインメモリ
113 記憶装置
114 入力インターフェイス
115 表示コントローラ
116 データリーダ/ライタ
117 通信インターフェイス
118 入力機器
119 ディスプレイ装置
120 記録媒体
121 バス