JP6911928B2 - 仮説検証装置、仮説検証方法、及びプログラム - Google Patents

仮説検証装置、仮説検証方法、及びプログラム Download PDF

Info

Publication number
JP6911928B2
JP6911928B2 JP2019544196A JP2019544196A JP6911928B2 JP 6911928 B2 JP6911928 B2 JP 6911928B2 JP 2019544196 A JP2019544196 A JP 2019544196A JP 2019544196 A JP2019544196 A JP 2019544196A JP 6911928 B2 JP6911928 B2 JP 6911928B2
Authority
JP
Japan
Prior art keywords
hypothesis
formula
parameter
observation data
value
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2019544196A
Other languages
English (en)
Other versions
JPWO2019064600A1 (ja
Inventor
細見 格
格 細見
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Corp
Original Assignee
NEC Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NEC Corp filed Critical NEC Corp
Publication of JPWO2019064600A1 publication Critical patent/JPWO2019064600A1/ja
Application granted granted Critical
Publication of JP6911928B2 publication Critical patent/JP6911928B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/14Details of searching files based on file metadata
    • G06F16/148File search processing
    • G06F16/152File search processing using file content signatures, e.g. hash values
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N5/00Computing arrangements using knowledge-based models
    • G06N5/04Inference or reasoning models
    • G06N5/041Abduction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N5/00Computing arrangements using knowledge-based models
    • G06N5/01Dynamic search techniques; Heuristics; Dynamic trees; Branch-and-bound
    • G06N5/013Automatic theorem proving

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Computing Systems (AREA)
  • Evolutionary Computation (AREA)
  • Computational Linguistics (AREA)
  • Artificial Intelligence (AREA)
  • Databases & Information Systems (AREA)
  • Library & Information Science (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Mathematical Analysis (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Optimization (AREA)
  • Computational Mathematics (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Evolutionary Biology (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Operations Research (AREA)
  • Probability & Statistics with Applications (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Algebra (AREA)
  • Debugging And Monitoring (AREA)

Description

本発明は、仮説検証装置、仮説検証方法、及びこれらを実現するためのプログラムに関し、特には、ある結果に至る経緯の仮説を設定し、設定した仮説を検証することによって、経緯の具体化を図る、仮説検証装置、仮説検証方法、及びプログラムに関する。
従来から、論理的推論の一種に、仮説推論またはアブダクションと呼ばれる手法が知られている。仮説推論は、例えば、物体、製造システム、実行中のソフトウェアプログラムなどに生じた異常状態に対して、その状態に至る幾つかの可能性に基づく仮説のうち、得られている関連事実を最もよく説明できる仮説を選択する手法である。
一般に、仮説推論では、仮説が生成又は選択されるが、実際の利用場面の多くでは、その仮説を検証し、検証結果に応じて、仮説の修正又は再選択が必要となる。ここで、仮説推論を現実の問題に利用するシステムの一例について、特許文献1に基づいて説明する。特許文献1は、仮説推論を用いた運転支援システムを開示している。
特許文献1に開示された運転支援システムは、車の運転中に起きうる危険を周囲の観測によって得られた情報から予測する。特許文献1に開示された運転支援システムでは、仮説推論の一種である重み付き仮説推論(非特許文献1参照)が用いられている。
具体的には、特許文献1の図13に示すように、特許文献1に開示された運転支援システムは、まず、観測情報を変換して得られたコスト付きの観測論理式を観測データとして受け付ける。次に、特許文献1に開示された運転支援システムは、仮説推論部によって、観測データに基づいて、危険を表す仮説のうち最も証明コストの低い最安証明を、最も起き易い危険として選択する。続いて、特許文献1に開示された運転支援システムは、選択した最安証明(危険)に関連する物体に対して、物理シミュレーションを実行して、その挙動を推定し、その推定結果を新たな観測論理式として仮説推論部に追加する。その後、仮説推論部は、仮説推論を再度実行する。このように、特許文献1に開示された運転支援システムによれば、物理シミュレーションによる物体の挙動を考慮した危険の予測が可能となる。
特開2016−91039号公報
Hobbs, Jerry R., Mark Stickel,Douglas Appelt, and Paul Martin, "Interpretation asAbduction", ArtificialIntelligence, Vol.63, Nos.1-2,pp.69-142, 1993.
ところで、特許文献1に開示された運転支援システムでは、得られた観測情報を基に仮説推論と物理シミュレーションとが用いられるので、生じうる危険を高い確度で予測できると考えられるが、当該システムが行なうのは、あくまで予測である。特許文献1に開示された運転支援システムでは、実際に起きた事象が何故起きたのかを明らかにすることは困難である。つまり、特許文献1に開示された運転システムで行なわれる物理シミュレーションは、最初に得られた観測情報にはない情報を提供しうるが、それによって予測される危険が変わることはあるものの、その危険が現実となった際の証拠及び経緯の全てを説明するものではない。
このため、特許文献1に開示された運転支援システムには、仮説推論を何らかの問題に適用する場合に、得られた仮説の検証とその検証結果に基づく仮説の修正とを行なうことができないという問題がある。
言い換えると、従来の仮説推論の手法は、より良い仮説を生成することのみを目的としている。よって、従来の仮説推論においては、生成された仮説の検証の手順(どこからどのような手順で検証するのか)、その検証によって仮説に矛盾が生じた場合の対応、他の仮説との比較(他の仮説の方がより良い結果が得られていないか)が考慮されていない。そのため、従来の仮説推論のみでは、最終的に最もよく検証された、又は全てが証明された、結果を得ることが不可能となっている。
本発明の目的は、上記問題を解消し、仮説を検証し、検証結果に基づいた仮説の修正を可能にし得る、仮説検証装置、仮説検証方法、およびプログラムを提供することにある。
上記目的を達成するため、本発明の一側面における仮説検証装置は、
1つの名前及び1つ以上のパラメータを含む論理式の集合によって表現された、観測データから、前記観測データと同じ形式で表現された、知識データを用いて、ありうる帰結に至る前記論理式で構成された仮説を導出する、仮説生成部と、
前記仮説を構成する前記論理式の中に、前記観測データから得られた値を有する第1のパラメータと、前記観測データから得られた値を有していない第2のパラメータとを含む論理式が存在する場合は、これを対象論理式として、前記観測データ及び前記対象論理式の名前に基づいて、前記第2のパラメータの値を取得して、取得した前記第2のパラメータの値を前記対象論理式に入力し、
一方、前記対象論理式となる論理式が存在せず、1つ以上のパラメータに、予め値を持つ、又は推論知識によって得られた値を持つ、論理式が存在する場合は、この存在する論理式に対して真偽を判定する、仮説検証部と、
を備え、
前記仮説生成部は、前記論理式の真偽が判定されるか、または、前記対象論理式に前記第2のパラメータの値が入力されると、真偽判定がなされた論理式又は前記対象論理式を、前記観測データに追加して、再度、仮説を導出する、
ことを特徴とする。
また、上記目的を達成するため、本発明の一側面における仮説検証方法は、
(a)1つの名前及び1つ以上のパラメータを含む論理式の集合によって表現された、観測データから、前記観測データと同じ形式で表現された、知識データを用いて、ありうる帰結に至る前記論理式で構成された仮説を導出する、ステップと、
(b)前記仮説を構成する前記論理式の中に、前記観測データから得られた値を有する第1のパラメータと、前記観測データから得られた値を有していない第2のパラメータとを含む論理式が存在する場合は、これを対象論理式として、前記観測データ及び前記対象論理式の名前に基づいて、前記第2のパラメータの値を取得して、取得した前記第2のパラメータの値を前記対象論理式に入力し、
一方、前記対象論理式となる論理式が存在せず、1つ以上のパラメータに、予め値を持つ、又は推論知識によって得られた値を持つ、論理式が存在する場合は、この存在する論理式に対して真偽を判定する、ステップと、
(c)前記論理式の真偽が判定されるか、または、前記対象論理式に前記第2のパラメータの値が入力されると、真偽判定がなされた論理式又は前記対象論理式を、前記観測データに追加して、再度、仮説を導出する、ステップと、
を有する、
ことを特徴とする。
更に、上記目的を達成するため、本発明の一側面におけるプログラムは、
コンピュータに、
(a)1つの名前及び1つ以上のパラメータを含む論理式の集合によって表現された、観測データから、前記観測データと同じ形式で表現された、知識データを用いて、ありうる帰結に至る前記論理式で構成された仮説を導出する、ステップと、
(b)前記仮説を構成する前記論理式の中に、前記観測データから得られた値を有する第1のパラメータと、前記観測データから得られた値を有していない第2のパラメータとを含む論理式が存在する場合は、これを対象論理式として、前記観測データ及び前記対象論理式の名前に基づいて、前記第2のパラメータの値を取得して、取得した前記第2のパラメータの値を前記対象論理式に入力し、
一方、前記対象論理式となる論理式が存在せず、1つ以上のパラメータに、予め値を持つ、又は推論知識によって得られた値を持つ、論理式が存在する場合は、この存在する論理式に対して真偽を判定する、ステップと、
(c)前記論理式の真偽が判定されるか、または、前記対象論理式に前記第2のパラメータの値が入力されると、真偽判定がなされた論理式又は前記対象論理式を、前記観測データに追加して、再度、仮説を導出する、ステップと、
を実行させる、
ことを特徴とする。
以上のように本発明によれば、仮説を検証でき、検証結果に基づいて、仮説を修正することが可能となる。
図1は、本発明の実施の形態における仮説検証装置の概略構成を示すブロック図である。 図2は、本発明の実施の形態における仮説検証装置の構成を具体的に示すブロック図である。 図3は、本発明の実施の形態において帰結格納部が格納しているデータの一例を示す図である。 図4は、本発明の実施の形態において用いられる知識データの一例を示す図である。 図5は、本発明の実施の形態における仮説検証装置の動作を示すフロー図である。 図6は、本発明の実施の形態において図5に示すステップA5及びA6をより具体的に示すフロー図である。 図7は、本発明の実施の形態における仮説検証装置を実現するコンピュータの一例を示すブロック図である。 図8は、本発明の実施例における仮説の導出過程を示す図であり、各図は一連の主な導出過程を示している。 図9は、本発明の実施例における仮説の導出過程を示す図であり、各図は一連の主な導出過程を示している。 図10は、本発明の実施例における仮説の導出過程を示す図であり、各図は一連の主な導出過程を示している。 図11は、本発明の実施例における仮説の導出過程を示す図であり、各図は一連の主な導出過程を示している。
(発明の前提)
まず、本発明で用いる論理式としては、1つの述語と1つ以上の項とで構成された1つの関数型論理式が挙げられる。例えば、項Xは、項Yの子供(child)であることを表す論理式は、child(X,Y)と記述することができる。また、1つの仮説は、論理式で記述された1つ以上のルールで構成される。1つのルールは、論理式AとBを用いて「A→B」と記述することができる。“→”は、左辺(「前件」とも表記する)が成り立つならば右辺(「後件」とも表記する)が成り立つという意味を表す記号である。
(実施の形態)
以下、本発明の実施の形態における仮説検証装置について、図1〜図6を参照しながら説明する。
[装置構成]
最初に、図1を用いて、本実施の形態における仮説検証装置の概略構成を説明する。図1は、本発明の実施の形態における仮説検証装置の概略構成を示すブロック図である。
図1に示すように、本実施の形態における仮説検証装置10は、仮説生成部11と、仮説検証部12とを備えている。
仮説生成部11は、1つの名前及び1つ以上のパラメータを含む論理式の集合によって表現された、観測データから、前記観測データと同じ形式で表現された、知識データを用いて、ありうる帰結に至る論理式で構成された仮説を導出する。
仮説検証部12は、仮説を構成する論理式の中に、観測データから得られた値を有する第1のパラメータと、観測データから得られた値を有していない第2のパラメータとを含む論理式が存在する場合は、これを対象論理式とする。そして、仮説検証部12は、観測データ及び対象論理式の名前に基づいて、第2のパラメータの値を取得する。更に、この場合は、仮説検証部12は、取得した第2のパラメータの値を対象論理式に入力する。
また、仮説検証部12は、対象論理式となる論理式が存在せず、1つ以上のパラメータに、予め値を持つ、又は推論知識によって得られた値を持つ、論理式が存在する場合は、この存在する論理式に対して真偽を判定する。
そして、仮説検証部12によって、論理式の真偽が判定されるか、又は対象論理式に第2のパラメータの値が入力されると、仮説生成部11は、真偽判定がなされた論理式又は対象論理式を、観測データに追加して、再度、仮説を導出する。
このように、本実施の形態では、仮説を構成する論理式の真偽判定の結果、又は新たなパラメータの値が追加された論理式を用いて、仮説の導出が再度行われる。このため、本実施の形態によれば、仮説を検証でき、検証結果に基づいて、仮説を修正することが可能となる。
続いて、図2を用いて、本実施の形態における仮説検証装置10の構成をより具体的に説明する。図2は、本発明の実施の形態における仮説検証装置の構成を具体的に示すブロック図である。
図2に示すように、本実施の形態における仮説検証装置10は、上述した仮説生成部11及び仮説検証部12に加えて、入力受付部13と、帰結設定部14と、帰結格納部15と、推論知識格納部16と、データ解析部17とを備えている。
入力受付部13は、外部からの観測データの入力を受け付ける。また、本実施の形態では、観測データは、全てのパラメータに、推論の対象となる事象の観測によって得られた値を持つ、論理式の形式で表現されたデータである。入力受付部13は、受け付けた観測データを帰結設定部14に渡す。
帰結設定部14は、観測データを、帰結格納部15に照合して、観測データに対応する帰結を設定する。また、設定された帰結は、仮説推論の起点となる。帰結格納部15は、論理式毎に予め帰結を登録しているデータベースである。図3は、本発明の実施の形態において帰結格納部が格納しているデータの一例を示す図である。図3に示すように、帰結格納部15は、論理式毎に設定された帰結を登録している。
推論知識格納部16は、仮説生成部11による仮説の導出に用いられる知識データを格納している。図4は、本発明の実施の形態において用いられる知識データの一例を示す図である。図4に示すように、本実施の形態において知識データは、推論知識である。
仮説生成部11は、本実施の形態では、観測データと、帰結設定部14によって設定された帰結と、推論知識格納部16が格納している推論知識とを用いて、仮説推論を行って、仮説を導出する。仮説推論の手法としては、上述の特許文献1でも利用されている重み付き仮説推論が挙げられる。
具体的には、仮説生成部11は、推論知識格納部16が格納している推論知識の中から、帰結設定部14によって設定された帰結に結びつく推論知識を選択し、選択した推論知識に観測データを追加する。これにより、選択された推論知識の数だけ、仮説候補が作成される。続いて、仮説生成部11は、観測データに与えられたコストと、各推論知識に付与されている重みとを用いて、作成した仮説候補それぞれのコストを算出し、最もコストが低い仮説候補を仮説として導出する。
データ解析部17は、論理式毎に、その論理式の名前と、その論理式に含まれるパラメータの値を抽出可能な解析ツールとを関連付けて登録する。そして、データ解析部17は、論理式の名前及び観測データ、又は論理式の名前及び第1のパラメータの値が入力されると、入力に応じて、解析ツールを実行する。
また、本実施の形態において利用可能な解析ツールとしては、アプリケーションプログラム(webアプリケーションプログラムを含む)によって提供されている、既知の各種ファイル解析ツールが挙げられる。
仮説検証部12は、本実施の形態では、データ解析部17に、観測データ及び対象論理式の名前を入力し、それによって、対象論理式の真偽の判定、又は第2のパラメータの値の取得を実行する。
具体的には、本実施の形態では、仮説検証部12は、まず、仮説を構成する論理式の中に、2つ以上のパラメータを持ち、且つ、その一部のパラメータ(第1のパラメータ)のみが値を持つ論理式(対象論理式)が存在しているかどうかを判定する。
判定の結果、条件に該当する対象論理式が存在する場合は、仮説検証部12は、これを検索クエリとする。続いて、仮説検証部12は、検索クエリを用いて、データ解析部17が登録している解析ツールに対して検索を行い、これらの中から、検索クエリに適用可能な解析ツールを特定する。続いて、仮説検証部12は、データ解析部17に、特定した解析ツールを実行させ、対象論理式の第1のパラメータの値から、第2のパラメータの値を取得させる。
一方、上述の判定の結果、条件に該当する対象論理式が存在しない場合は、1つ以上のパラメータに、予め値を持つ、又は推論知識によって得られた値を持つ、論理式が存在することを条件に、上述したように、仮説検証部12は、この論理式の真偽を判定する。
真偽の判定は、例えば、予め値を持つパラメータに対し、解析ツールを実行させて値を取得し、その値が予め持つ値と同じであれば真、異なれば偽、または解析ツールを実行させて推論知識によって得られた値を持つ論理式が成立すると判定されれば真、成立しないと判定されれば偽とすることによって行なうことができる。また、この場合の解析ツールは、1つ以上のパラメータに、予め値を持つ、又は推論知識によって得られた値を持つ、論理式を、検索クエリとして用いて検索される。
また、仮説検証部12によって第2のパラメータの値が取得できた場合は、仮説生成部11は、対象論理式の第2のパラメータに、取得できた値を事象の観測によって得た値として入力する。そして、仮説生成部11は、入力後の対象論理式を観測データに追加し、追加した観測データから、仮説を再度導出する。
一方、仮説検証部12によって対象論理式の真偽判定が行われた場合は、仮説生成部11は、真偽判定の結果を、判定対象となった論理式に反映する。例えば、真であれば、判定対象となった論理式に対して何もせず、偽であれば、判定対象となった論理式の予め値を持つパラメータに解析ツールの実行によって得られた値を代入し、値が代入された論理式を新たな論理式とする。または、仮説生成部11は、偽と判定された論理式に否定演算子を付与しても良い。具体的には、否定演算子の付与は、例えばfile(foo.rar, “executable”)の冒頭に“!”を付与して、「!file(foo.rar, “executable”)」を観測データとする。そして、仮説生成部11は、真偽判定の結果が反映された論理式を観測データに追加し、追加した観測データから、仮説を再度導出する。
本実施の形態では、このように、仮説検証部12による検証と、仮説生成部11による仮説の導出とが繰り返し行われる。そして、仮説生成部11は、仮説を構成している論理式のいずれに対しても適用可能な解析ツールが無くなると、即ち、仮説を構成している全ての論理式が全パラメータに値を持つようになると、この仮説を最終的な仮説として出力する。このような、全てのパラメータに値を持つ論理式のみで構成されている仮説は、完全に検証されており、即ち、証明された仮説と言える。
[装置動作]
次に、本発明の実施の形態における仮説検証装置10の動作について、図5を用いて説明する。図5は、本発明の実施の形態における仮説検証装置の動作を示すフロー図である。以下の説明においては、適宜図1〜図4を参酌する。また、本実施の形態では、仮説検証装置10を動作させることによって、仮説検証方法が実施される。よって、本実施の形態における仮説検証方法の説明は、以下の仮説検証装置の動作説明に代える。
図5に示すように、最初に、入力受付部13は、外部からの観測データの入力を受け付ける(ステップA1)。入力受付部13は、受け付けた観測データを帰結設定部14に渡す。
次に、帰結設定部14は、観測データを、帰結格納部15(図3参照)に照合して、観測データに対応する帰結を設定する(ステップA2)。
次に、仮説生成部11は、観測データと、帰結設定部14によって設定された帰結と、推論知識格納部16が格納している推論知識とを用いて、仮説推論を行って、仮説を導出する(ステップA3)。
次に、仮説検証部12は、仮説を構成する論理式の中に、2つ以上のパラメータを持ち、且つ、その一部のパラメータ(第1のパラメータ)のみが値を持つ論理式(対象論理式)が存在しているかどうかを判定する(ステップA4)。
ステップA4の判定の結果、条件に該当する対象論理式が存在する場合は、仮説検証部12は、条件に該当する対象論理式を検索クエリとして、データ解析部17が登録している解析ツールに対して検索を実行する(ステップA5)。
次に、仮説検証部12は、ステップA5の実行によって適用可能な解析ツールを検索できたかどうかを判定する(ステップA6)。ステップA6の判定の結果、検索できなかった場合は、仮説検証部12は、ステップA13を実行する。
一方、ステップA6の判定の結果、検索できた場合は、仮説検証部12は、データ解析部17に、検索した解析ツールを実行させ、対象論理式の第1のパラメータの値から、第2のパラメータの値を取得する(ステップA7)。
次に、ステップA7の実行後は、仮説生成部11は、対象論理式の第2のパラメータに、取得できた値を入力し、入力後の対象論理式を観測データに追加して、追加した観測データから、仮説を再度導出する(ステップA8)。その後、再度、ステップA4が実行される。
また、ステップA4の判定の結果、条件に該当する対象論理式が存在しない場合は、1つ以上のパラメータに、予め値を持つ、又は推論知識によって得られた値を持つ、論理式が存在することを条件に、仮説検証部12は、この論理式を検索クエリとして、データ解析部17が登録している解析ツールに対して検索を実行する(ステップA9)。
次に、仮説検証部12は、ステップA9の実行によって適用可能な解析ツールを検索できたかどうかを判定する(ステップA10)。ステップA10の判定の結果、検索できなかった場合は、仮説検証部12は、ステップA13を実行する。
一方、ステップA10の判定の結果、検索できた場合は、仮説検証部12は、データ解析部17に、検索した解析ツールを実行させ、1つ以上のパラメータに、予め値を持つ、又は推論知識によって得られた値を持つ、論理式の真偽を判定する(ステップA11)。
次に、ステップA11の実行後は、仮説検証部12は、真偽判定の結果を、判定対象となった論理式に反映し、真偽判定の結果が反映された論理式を観測データに追加して、追加した観測データから、仮説を再度導出する(ステップA12)。その後、再度、ステップA4が実行される。
また、ステップA6又はステップA10でNoと判定された場合は、仮説生成部11は、判定対象となった仮説を最終的な仮説として出力する(ステップA13)。
ここで、図6を用いて、図5に示したステップA5〜A8についてより具体的に説明する。図6は、本発明の実施の形態において図5に示すステップA5〜A8をより具体的に示すフロー図である。図6に示すフローに沿って処理を実行した場合は、データ解析部17による解析をバッチ処理で行うことが可能となる。
最初に、図6に示すように、データ解析部17は、対象論理式(検索クエリ)と仮説検証部12によって特定された解析ツールの識別情報とを取得する(ステップA51)。
次に、データ解析部17は、対象論理式を構成しているパラメータとその値とを抽出する(ステップA52)。
次に、データ解析部17は、仮説検証部12によって特定された解析ツール毎に、対応する論理式の名前と観測データとを入力して、当該解析ツールを実行し、解析結果の取得を試みる(ステップA53)。
次に、仮説検証部12は、ステップA53によって解析結果が取得されているかどうかを判定する(ステップA54)。ステップA53の判定の結果、解析結果が取得されていない場合は、仮説検証部12は、検証は失敗であると判断する(ステップA59)。その後、仮説検証部12は、そのことを外部に出力する。
一方、ステップA53の判定の結果、解析結果が取得されている場合は、仮説検証部12は、解析結果に対応する論理式のパラメータに既存の値が存在しているかどうかを判定する(ステップA55)。
ステップA55の判定の結果、解析結果に対応する論理式のパラメータに既存の値が存在していない場合は、仮説検証部12は、検証は成功であると判断する。この場合、仮説生成部は、解析結果で得られた値をパラメータの値とする論理式を、観測データに追加する(ステップA60)。
一方、ステップA55の判定の結果、解析結果に対応する論理式のパラメータに既存の値が存在している場合は、仮説検証部12は、解析結果に対応するパラメータに存在している既存の値と、解析結果で得られた値とが一致しているかどうかを判定する(ステップA56)。
ステップA56の判定の結果、一致していない場合は、仮説検証部12は、検証は失敗であると判断する。この場合、仮説生成部11は、解析結果で得られた値を解析結果に対応するパラメータの値とする論理式を、観測データに追加する(ステップA61)。
一方、ステップA56の判定の結果、一致している場合は、仮説検証部は、検証は成功であると判断する。この場合、仮説生成部11は、解析結果で得られた値を、解析結果に対応するパラメータに存在している既存の値を、パラメータの値とする論理式を、観測データに追加する(ステップA62)。
[実施の形態における効果]
このように、本実施の形態によれば、仮説に対して検証が行われ、完全に検証された仮説のみが最終的な仮説として出力される。即ち、本実施の形態では、仮説の検証を行なうと共に仮説推論を繰り返して仮説の修正も行なわれるので、観測データとデータの解析結果とを含む事実を元に最もよく検証された仮説を得ることが可能となる。また、本実施の形態では、仮説の全ての構成要素が検証された場合に、人手による試行錯誤を必要とすることなく、事実によって証明された結論を得ることができる。
[プログラム]
本発明の実施の形態におけるプログラムは、コンピュータに、図5に示すステップA1〜A10を実行させるプログラムであれば良い。このプログラムをコンピュータにインストールし、実行することによって、本実施の形態における仮説検証装置と仮説検証方法とを実現することができる。この場合、コンピュータのプロセッサは、仮説生成部11、仮説検証部12、入力受付部13、帰結設定部14、及びデータ解析部17として機能し、処理を行なう。
また、本実施の形態では、帰結格納部15と、推論知識格納部16とは、コンピュータに備えられたハードディスク等の記憶装置に、これらを構成するデータファイルを格納することによって実現できる。
また、本実施の形態におけるプログラムは、複数のコンピュータによって構築されたコンピュータシステムによって実行されても良い。この場合は、例えば、各コンピュータが、それぞれ、仮説生成部11、仮説検証部12、入力受付部13、帰結設定部14、及びデータ解析部17のいずれかとして機能しても良い。また、帰結格納部15と、推論知識格納部16とは、本実施の形態におけるプログラムを実行するコンピュータとは別のコンピュータ上に構築されていても良い。
[物理構成]
ここで、本実施の形態におけるプログラムを実行することによって、仮説検証装置10を実現するコンピュータについて図7を用いて説明する。図7は、本発明の実施の形態における仮説検証装置を実現するコンピュータの一例を示すブロック図である。
図7に示すように、コンピュータ110は、CPU111と、メインメモリ112と、記憶装置113と、入力インターフェイス114と、表示コントローラ115と、データリーダ/ライタ116と、通信インターフェイス117とを備える。これらの各部は、バス121を介して、互いにデータ通信可能に接続される。
CPU111は、記憶装置113に格納された、本実施の形態におけるプログラム(コード)をメインメモリ112に展開し、これらを所定順序で実行することにより、各種の演算を実施する。メインメモリ112は、典型的には、DRAM(Dynamic Random Access Memory)等の揮発性の記憶装置である。また、本実施の形態におけるプログラムは、コンピュータ読み取り可能な記録媒体120に格納された状態で提供される。なお、本実施の形態におけるプログラムは、通信インターフェイス117を介して接続されたインターネット上で流通するものであっても良い。
また、記憶装置113の具体例としては、ハードディスクドライブの他、フラッシュメモリ等の半導体記憶装置が挙げられる。入力インターフェイス114は、CPU111と、キーボード及びマウスといった入力機器118との間のデータ伝送を仲介する。表示コントローラ115は、ディスプレイ装置119と接続され、ディスプレイ装置119での表示を制御する。
データリーダ/ライタ116は、CPU111と記録媒体120との間のデータ伝送を仲介し、記録媒体120からのプログラムの読み出し、及びコンピュータ110における処理結果の記録媒体120への書き込みを実行する。通信インターフェイス117は、CPU111と、他のコンピュータとの間のデータ伝送を仲介する。
また、記録媒体120の具体例としては、CF(Compact Flash(登録商標))及びSD(Secure Digital)等の汎用的な半導体記憶デバイス、フレキシブルディスク(FlexibleDisk)等の磁気記録媒体、又はCD−ROM(Compact DiskReadOnly Memory)などの光学記録媒体が挙げられる。
なお、本実施の形態における仮説検証装置10は、プログラムがインストールされたコンピュータではなく、各部に対応したハードウェアを用いることによっても実現可能である。更に、仮説検証装置10は、一部がプログラムで実現され、残りの部分がハードウェアで実現されていてもよい。
次に、本発明の仮説検証装置10の実施例について図8〜図11を用いて説明する。図8〜図11は、本発明の実施例における仮説の導出過程を示す図であり、各図は一連の主な導出過程を示している。また、以下においては、仮説検証装置10が、サイバー攻撃の証拠を発掘するためのデータ解析に用いられた場合を例として説明する。また、以降においては、適宜図1〜図6を参照する。
図8に示すように、観測データとして、IDS(IntrusionDetection System)又はSIEM(Security Information and EventManagement)のツールで異常と判定された通信パケットデータがpacket(pac2208)という論理式で入力されたとする。
packet(pac2208)は、述語名がpacketの論理式であり、パラメータが1つ(DATA)の論理式packet(DATA)に対して、pac2208という識別名の通信パケットデータがその唯一のパラメータの値として代入されて得られている。
この観測データが入力されると、仮説検証装置10においては、図2に示した入力受付部13が当該観測データの入力を受け付ける。これにより、帰結設定部14は、帰結格納部15に照合して、当該観測データに対してありうる帰結の取得を試みる。帰結格納部15は、図3に示したように、帰結を表す論理式と、その帰結に到達しうる観測データを表す1つ以上の論理式とを対応付け、論理式の組を格納している。
図8の例では、ありうる帰結の1つとしてmalware_found(NAME)が、取得されている。malware_found(NAME)は、ある観測データから、NAMEというパラメータの値で表されるマルウェアが見つかったことを表す論理式である。
仮説生成部11は、初期の観測データであるpacket(pac2208)と、帰結を示す論理式であるmalware_found(NAME)と、推論知識格納部16が格納する推論知識(図4参照)とを用いて、仮説推論を実行する。
その結果、仮説生成部11は、例えば、図8に示したグラフ全体で表される仮説を生成する。図8の例では、packet(pac2208)と、malware_found(NAME)とのそれぞれに対して、これらを結びつける推論知識ベース上のルール(推論知識)が適用された結果となっている。
具体的には、仮説生成部11は、図4に示した推論知識のうち、帰結となるmalware_found(NAME)に結び付く下記の3つの推論知識を、上から順に適用する。
file(FILE, “executable”)^known_malware(FILE,NAME)→malware_found(NAME)、
has_file_(DATA,FILE)→file(FILE,“executable”)、
packet(DATA)→has_file(DATA,FILE)
次いで、仮説生成部11は、上記最後のルールの一部である論理式packet(DATA)のパラメータDATAに、観測データpacket(pac2208)のパラメータの値「pac2208」を代入する。これにより、ルール「packet(DATA)→has_file(DATA, FILE)」は、「packet(pac2208)->has_file(pac2208, FILE)」となる。また、同じルール中の「has_file(DATA,FILE)」に含まれるパラメータDATAの値もpac2208となる。
なお、上記のルールにおいて、「→」はその左側の論理式が成立すれば右側の論理式が成立する可能性があること、又は右側の論理式が成立した時、左側の論理式が成立していることが原因となりうること、を表している。「^」は、その左右の論理式が共に成立することを要求するAND条件を表す論理演算子である。
仮説生成部11によって図8に示す仮説が導出されると、仮説検証部12は、データ解析部17を用いて当該仮説の検証を実行する。
データ解析部17は、論理式の述語名と解析ツールの識別情報との対を登録し、述語名及び入力されたパラメータの値の特徴(例えば、ファイルの拡張子)に基づき、解析ツールデータベース(図示せず)から、解析ツールを検索する。解析ツールデータベースは、1つ以上の解析ツールを登録している。また、データ解析部17は、検索した解析ツールを実行する機能も備えている。
仮説検証部12は、仮説を構成する論理式のうち、パラメータの一部のみが値を持つ論理式(第1のパラメータのみが値を有する論理式)を検出する。但し、検出の際に、推論知識格納部16に格納された時点で、予め値を持つパラメータは、値を持たないパラメータとして扱うこととする。
例えば、図4および図8において、「file(FILE,“executable”)」には、値を持たないパラメータFILEと、値“executable”を持つパラメータとがあるが、これは「パラメータの一部が値を持つ論理式」としては検出されないものとする。その仮説における区別は、パラメータの値がダブルクォーテーションで囲まれているものは、値を持つパラメータとして数えないこととし、観測データから得た「pac2208」のような値には、ダブルクォーテーションを付けないとすることで実現できる。
仮説検証部12は、パラメータの一部のみが値を持つ論理式について、データ解析部17を用いて、値を持たないパラメータ(第2のパラメータ)の値の取得を試みる。図8の例では、パラメータの一部のみが値を持つ論理式は「has_file(pac2208,FILE)」のみである。よって、データ解析部17は、その述語名has_fileと対になる解析ツールの識別情報(例えば解析ツールの実行ファイルが置かれたファイルパス)とを、解析ツールデータベースから取得する。
ここで、論理式has_file(DATA,FILE)は、通信パケットデータDATAの中にファイルFILEが含まれていることを表す論理式であり、この論理式と対になる解析ツールは、DATAの値であるデータからファイルを抽出するソフトウェアであるとする。この場合、データ解析部17は、解析ツールによってpac2208からファイルを抽出する。仮説検証部12は、has_file(pac2208, FILE)において、抽出したファイルの識別情報を、パラメータFILEの値として代入する。
例えば、has_file(DATA,FILE)と対になる解析ツールとして、解析ツールデータベースには、オープンソースのパケット解析ツールwireshark(https://www.wireshark.org/)の実行可能なファイルパスが登録されているとする。この場合、データ解析部17は、pac2208のデータをwiresharkに入力して、このパケット解ツールを実行する。これにより、pac2208内にファイルがあれば、そのファイルが抽出される。
例えば、仮説検証部12は、pac2208のデータからfoo.rarというファイルを抽出したとすると、抽出したファイルのファイル名を、識別情報として、has_file(pac2208,FILE)のパラメータFILEに代入する。これにより、has_file(pac2208, foo.rar)が得られる。
続いて、仮説生成部11は、得られたhas_file(pac2208,foo.rar)を、追加の観測データとして、再度仮説を生成する。これにより、図9に示すように、仮説が更新される。具体的には、図8におけるfile(FILE, “executable”)において、パラメータFILEに、has_file(pac2208, foo.rar)に対応するパラメータの値foo.rarが代入され、図9ではfile(foo.rar, “executable”)となっている。
但し、図9に示すfile(foo.rar,“executable”)は、推論知識格納部16上では、予め与えられた値 “executable”が値を持つパラメータとしては数えられない。このため、仮説検証部12は、このパラメータの実際の値を、上述のhas_file(pac2208,FILE)と同様に、データ解析部17を用いて取得する(例えばfoo.rarを引数としてlinuxのfileコマンドを実行することでファイルタイプを確認可能)。
結果、file(foo.rar,“executable”)の第2のパラメータの値としてarchiveが得られるので、仮説生成部11は、これを代入したfile(foo.rar, archive)を追加の観測データとして、再び仮説を生成する。但し、file(foo.rar, archive)は、file(foo.rar, “executable”)と矛盾するため、file(foo.rar, “executable”)を含む図8の仮説は棄却される。その後、図4に示した推論知識を用いて、図10に示す別の新たな仮説が生成される。
図10に示された仮説では、推論知識格納部16に格納されている以下のルールが適用される。
has_file(DATA,FILE)→file(FILE,“archive”)
file(FILE, “archive”)→unpack(FILE,FILE2)
unpack(FILE,FILE2)→file(FILE2, “executable”)
上述のルールのうち、前者2つのルール中の論理式has_file(DATA, FILE)とfile(FILE, “archive”)とは、それぞれ観測データhas_file(pac2208, foo.rar)、又はfile(foo.rar,archive)で置き換えられる。
また、推論知識格納部16が推論知識として格納している論理式known_malware(FILE, NAME)の第1のパラメータFILEは、図10においては、対となる論理式file(FILE, FILE2)の第2のパラメータFILE2に対応するため、known_malware(FILE2,NAME)となっている。これに伴い、unpack(FILE, FILE2)の第1のパラメータにもfoo.rarが代入されunpack(foo.rar, FILE2)となっている。
このunpack(foo.rar,FILE2)に対して、これまでと同様にデータ解析部17で対応する解析ツール(例えばhttp://www.rarlab.com/で公開されている適切なバージョンのrar)を用いて、foo.rarの解析(この場合はアーカイブファイルの解凍)が実行される。これにより、第2のパラメータとして、例えば、foo.exeが得られたとする。
この場合、unpack(foo.rar,FILE2)の第2のパラメータFILE2の値がfoo.exeとなったunpack(foo.rar, foo.exe)が新たな追加の観測データとして得られる。よって、仮説生成部11が、新たな観測データを用いて、再度仮説を生成する。これにより、図10におけるunpack(foo.rar, FILE2)、file(FILE2, “executable”)、及びknown_malware(FILE2, NAME)が、それぞれunpack(foo.rar, foo.exe)、file(foo.exe, “executable”)、known_malware(foo.exe, NAME)に置き換えられた仮説が得られる。
その後、仮説検証部12は、file(foo.exe,“executable”)について、データ解析部17に、foo.exeのファイルタイプを確認させ、executableとの結果を得ると、file(foo.exe, “executable”)と矛盾しない結果として、file(foo.exe,executable)という追加の観測データを取得する。
また、仮説検証部12は、known_malware(foo.exe,NAME)についても、データ解析部17に、foo.exeが既知のマルウェアかどうかを確認する解析ツール(例えばWebサービスVirusTotal PublicAPIを利用。https://www.virustotal.com/ja/documentation/public-api/)を実行させて、第2のパラメータを取得する。
その結果、仮説検証部12は、mal113という既知のマルウェアの名前を取得し、これをNAMEの値とした追加の観測データknown_malware(foo.exe, mal113)も取得する。
続いて、仮説生成部11は、file(foo.exe,executable)とknown_malware(foo.exe,mal113)とを追加の観測データとして、再び仮説の生成を実行する。この結果、推論知識格納部16に格納されているルール「file(FILE, “executable”)^known_malware(FILE,NAME)→malware_found(NAME)」によって、帰結を表す論理式malware_found(NAME)のパラメータNAMEにmal113が代入される。これにより、新たな観測データmalware_found(mal113)が得られる。
この結果、図11に示すように、仮説を構成する全ての論理式が観測データ(検証された事実)で構成されている、証明済み仮説が得られる。また、図11に示された証明済み仮説に対しては、これ以上適用可能な解析ツールが無いため、仮説検証部12は、この仮説を最終的な仮説として出力する。
以上のように、本実施例では、サイバーセキュリティの分野で行なわれているデータ解析を例に説明したが、本発明の用途はこれに限定されるものではない。本発明は、各種のセンサ、又は各種の報告から得られるデータを観測データとした、実世界の事故又は犯罪に関する証拠の発掘、何らかのシステム障害の原因分析、等にも同様に適用可能である。
上述した実施の形態の一部又は全部は、以下に記載する(付記1)〜(付記15)によって表現することができるが、以下の記載に限定されるものではない。
(付記1)
1つの名前及び1つ以上のパラメータを含む論理式の集合によって表現された、観測データから、前記観測データと同じ形式で表現された、知識データを用いて、ありうる帰結に至る前記論理式で構成された仮説を導出する、仮説生成部と、
前記仮説を構成する前記論理式の中に、前記観測データから得られた値を有する第1のパラメータと、前記観測データから得られた値を有していない第2のパラメータとを含む論理式が存在する場合は、これを対象論理式として、前記観測データ及び前記対象論理式の名前に基づいて、前記第2のパラメータの値を取得して、取得した前記第2のパラメータの値を前記対象論理式に入力し、
一方、前記対象論理式となる論理式が存在せず、1つ以上のパラメータに、予め値を持つ、又は推論知識によって得られた値を持つ、論理式が存在する場合は、この存在する論理式に対して真偽を判定する、仮説検証部と、
を備え、
前記仮説生成部は、前記論理式の真偽が判定されるか、または、前記対象論理式に前記第2のパラメータの値が入力されると、真偽判定がなされた論理式又は前記対象論理式を、前記観測データに追加して、再度、仮説を導出する、
ことを特徴とする仮説検証装置。
(付記2)
前記観測データが、論理式の形式を持つデータであり、
当該仮説検証装置は、複数の論理式それぞれに、当該論理式の名前と、当該論理式に含まれるパラメータの値を抽出可能な解析ツールとを関連付けて登録し、論理式の名前及び論理式に含まれるデータが入力されると、入力に応じて、前記解析ツールを実行する、データ解析部を更に備え、
前記仮説検証部は、前記データ解析部に、前記観測データ及び論理式の名前、又は前記第1のパラメータの値及び論理式の名前を入力することによって、前記真偽の判定、又は前記第2のパラメータの値の取得を実行する、
付記1に記載の仮説検証装置。
(付記3)
当該仮説検証装置が、
前記観測データを、論理式毎に予め帰結が登録されたデータベースに照合して、前記観測データに対応する帰結を設定する、帰結設定部を更に備えている、
付記2に記載の仮説検証装置。
(付記4)
(a)1つの名前及び1つ以上のパラメータを含む論理式の集合によって表現された、観測データから、前記観測データと同じ形式で表現された、知識データを用いて、ありうる帰結に至る前記論理式で構成された仮説を導出する、ステップと、
(b)前記仮説を構成する前記論理式の中に、前記観測データから得られた値を有する第1のパラメータと、前記観測データから得られた値を有していない第2のパラメータとを含む論理式が存在する場合は、これを対象論理式として、前記観測データ及び前記対象論理式の名前に基づいて、前記第2のパラメータの値を取得して、取得した前記第2のパラメータの値を前記対象論理式に入力し、
一方、前記対象論理式となる論理式が存在せず、1つ以上のパラメータに、予め値を持つ、又は推論知識によって得られた値を持つ、論理式が存在する場合は、この存在する論理式に対して真偽を判定する、ステップと、
(c)前記論理式の真偽が判定されるか、または、前記対象論理式に前記第2のパラメータの値が入力されると、真偽判定がなされた論理式又は前記対象論理式を、前記観測データに追加して、再度、仮説を導出する、ステップと、
を有することを特徴とする仮説検証方法。
(付記5)
前記観測データが、論理式の形式を持つデータであり、
前記(b)のステップにおいて、
論理式の名前と関連付けて登録され、且つ、当該論理式に含まれるパラメータの値を抽出可能な解析ツールを用い、前記解析ツールに、前記観測データ及び論理式の名前、又は前記第1のパラメータの値及び論理式の名前を入力することによって、前記真偽の判定、又は前記第2のパラメータの値の取得を実行する、
付記4に記載の仮説検証方法。
(付記6)
(d)前記観測データを、論理式毎に予め帰結が登録されたデータベースに照合して、前記観測データに対応する帰結を設定する、ステップを更に有する、
付記5に記載の仮説検証方法。
(付記7)
コンピュータに、
(a)1つの名前及び1つ以上のパラメータを含む論理式の集合によって表現された、観測データから、前記観測データと同じ形式で表現された、知識データを用いて、ありうる帰結に至る前記論理式で構成された仮説を導出する、ステップと、
(b)前記仮説を構成する前記論理式の中に、前記観測データから得られた値を有する第1のパラメータと、前記観測データから得られた値を有していない第2のパラメータとを含む論理式が存在する場合は、これを対象論理式として、前記観測データ及び前記対象論理式の名前に基づいて、前記第2のパラメータの値を取得して、取得した前記第2のパラメータの値を前記対象論理式に入力し、
一方、前記対象論理式となる論理式が存在せず、1つ以上のパラメータに、予め値を持つ、又は推論知識によって得られた値を持つ、論理式が存在する場合は、この存在する論理式に対して真偽を判定する、ステップと、
(c)前記論理式の真偽が判定されるか、または、前記対象論理式に前記第2のパラメータの値が入力されると、真偽判定がなされた論理式又は前記対象論理式を、前記観測データに追加して、再度、仮説を導出する、ステップと、
を実行させる、プログラム。
(付記8)
前記観測データが、論理式の形式を持つデータであり、
前記(b)のステップにおいて、
論理式の名前と関連付けて登録され、且つ、当該論理式に含まれるパラメータの値を抽出可能な解析ツールを用い、前記解析ツールに、前記観測データ及び論理式の名前、又は前記第1のパラメータの値及び論理式の名前を入力することによって、前記真偽の判定、又は前記第2のパラメータの値の取得を実行する、
請求項7に記載のプログラム
(付記9)
記コンピュータに、
(d)前記観測データを、論理式毎に予め帰結が登録されたデータベースに照合して、前記観測データに対応する帰結を設定する、ステップを更に実行させる、
付記8に記載のプログラム
以上、実施の形態を参照して本願発明を説明したが、本願発明は上記実施の形態に限定されるものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
以上のように本発明によれば、仮説を検証でき、検証結果に基づいて、仮説を修正することが可能となる。本発明は、事故、犯罪、サイバー攻撃などの状況または原因を明らかにする作業の効率化に有用である。同様に、本発明は、災害及びシステム障害の原因分析と対策検討にも有用である。
10 仮説検証装置
11 仮説生成部
12 仮説検証部
13 入力受付部
14 帰結設定部
15 帰結格納部
16 推論知識格納部
17 データ解析部
110 コンピュータ
111 CPU
112 メインメモリ
113 記憶装置
114 入力インターフェイス
115 表示コントローラ
116 データリーダ/ライタ
117 通信インターフェイス
118 入力機器
119 ディスプレイ装置
120 記録媒体
121 バス

Claims (9)

  1. 1つの名前及び1つ以上のパラメータを含む論理式の集合によって表現された、観測データから、前記観測データと同じ形式で表現された、知識データを用いて、ありうる帰結に至る前記論理式で構成された仮説を導出する、仮説生成部と、
    前記仮説を構成する前記論理式の中に、前記観測データから得られた値を有する第1のパラメータと、前記観測データから得られた値を有していない第2のパラメータとを含む論理式が存在する場合は、これを対象論理式として、前記観測データ及び前記対象論理式の名前に基づいて、前記第2のパラメータの値を取得して、取得した前記第2のパラメータの値を前記対象論理式に入力し、
    一方、前記対象論理式となる論理式が存在せず、1つ以上のパラメータに、予め値を持つ、又は推論知識によって得られた値を持つ、論理式が存在する場合は、この存在する論理式に対して真偽を判定する、仮説検証部と、
    を備え、
    前記仮説生成部は、前記論理式の真偽が判定されるか、または、前記対象論理式に前記第2のパラメータの値が入力されると、真偽判定がなされた論理式又は前記対象論理式を、前記観測データに追加して、再度、仮説を導出する、
    ことを特徴とする仮説検証装置。
  2. 前記観測データが、論理式の形式を持つデータであり、
    当該仮説検証装置は、複数の論理式それぞれに、当該論理式の名前と、当該論理式に含まれるパラメータの値を抽出可能な解析ツールとを関連付けて登録し、論理式の名前及び論理式に含まれるデータが入力されると、入力に応じて、前記解析ツールを実行する、データ解析部を更に備え、
    前記仮説検証部は、前記データ解析部に、前記観測データ及び論理式の名前、又は前記第1のパラメータの値及び論理式の名前を入力することによって、前記真偽の判定、又は前記第2のパラメータの値の取得を実行する、
    請求項1に記載の仮説検証装置。
  3. 当該仮説検証装置が、
    前記観測データを、論理式毎に予め帰結が登録されたデータベースに照合して、前記観測データに対応する帰結を設定する、帰結設定部を更に備えている、
    請求項2に記載の仮説検証装置。
  4. コンピュータが実行する方法であって、
    (a)1つの名前及び1つ以上のパラメータを含む論理式の集合によって表現された、観測データから、前記観測データと同じ形式で表現された、知識データを用いて、ありうる帰結に至る前記論理式で構成された仮説を導出する、ステップと、
    (b)前記仮説を構成する前記論理式の中に、前記観測データから得られた値を有する第1のパラメータと、前記観測データから得られた値を有していない第2のパラメータとを含む論理式が存在する場合は、これを対象論理式として、前記観測データ及び前記対象論理式の名前に基づいて、前記第2のパラメータの値を取得して、取得した前記第2のパラメータの値を前記対象論理式に入力し、
    一方、前記対象論理式となる論理式が存在せず、1つ以上のパラメータに、予め値を持つ、又は推論知識によって得られた値を持つ、論理式が存在する場合は、この存在する論理式に対して真偽を判定する、ステップと、
    (c)前記論理式の真偽が判定されるか、または、前記対象論理式に前記第2のパラメータの値が入力されると、真偽判定がなされた論理式又は前記対象論理式を、前記観測データに追加して、再度、仮説を導出する、ステップと、
    を有することを特徴とする仮説検証方法。
  5. 前記観測データが、論理式の形式を持つデータであり、
    前記(b)のステップにおいて、
    論理式の名前と関連付けて登録され、且つ、当該論理式に含まれるパラメータの値を抽出可能な解析ツールを用い、前記解析ツールに、前記観測データ及び論理式の名前、又は前記第1のパラメータの値及び論理式の名前を入力することによって、前記真偽の判定、又は前記第2のパラメータの値の取得を実行する、
    請求項4に記載の仮説検証方法。
  6. (d)前記観測データを、論理式毎に予め帰結が登録されたデータベースに照合して、前記観測データに対応する帰結を設定する、ステップを更に有する、
    請求項5に記載の仮説検証方法。
  7. コンピュータに、
    (a)1つの名前及び1つ以上のパラメータを含む論理式の集合によって表現された、観測データから、前記観測データと同じ形式で表現された、知識データを用いて、ありうる帰結に至る前記論理式で構成された仮説を導出する、ステップと、
    (b)前記仮説を構成する前記論理式の中に、前記観測データから得られた値を有する第1のパラメータと、前記観測データから得られた値を有していない第2のパラメータとを含む論理式が存在する場合は、これを対象論理式として、前記観測データ及び前記対象論理式の名前に基づいて、前記第2のパラメータの値を取得して、取得した前記第2のパラメータの値を前記対象論理式に入力し、
    一方、前記対象論理式となる論理式が存在せず、1つ以上のパラメータに、予め値を持つ、又は推論知識によって得られた値を持つ、論理式が存在する場合は、この存在する論理式に対して真偽を判定する、ステップと、
    (c)前記論理式の真偽が判定されるか、または、前記対象論理式に前記第2のパラメータの値が入力されると、真偽判定がなされた論理式又は前記対象論理式を、前記観測データに追加して、再度、仮説を導出する、ステップと、
    を実行させる、プログラム。
  8. 前記観測データが、論理式の形式を持つデータであり、
    前記(b)のステップにおいて、
    論理式の名前と関連付けて登録され、且つ、当該論理式に含まれるパラメータの値を抽出可能な解析ツールを用い、前記解析ツールに、前記観測データ及び論理式の名前、又は前記第1のパラメータの値及び論理式の名前を入力することによって、前記真偽の判定、又は前記第2のパラメータの値の取得を実行する、
    請求項7に記載のプログラム。
  9. 前記コンピュータに、
    (d)前記観測データを、論理式毎に予め帰結が登録されたデータベースに照合して、前記観測データに対応する帰結を設定する、ステップを更に実行させる、
    請求項8に記載のプログラム。
JP2019544196A 2017-09-29 2017-09-29 仮説検証装置、仮説検証方法、及びプログラム Active JP6911928B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2017/035747 WO2019064600A1 (ja) 2017-09-29 2017-09-29 仮説検証装置、仮説検証方法、及びコンピュータ読み取り可能な記録媒体

Publications (2)

Publication Number Publication Date
JPWO2019064600A1 JPWO2019064600A1 (ja) 2020-10-22
JP6911928B2 true JP6911928B2 (ja) 2021-07-28

Family

ID=65901429

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019544196A Active JP6911928B2 (ja) 2017-09-29 2017-09-29 仮説検証装置、仮説検証方法、及びプログラム

Country Status (3)

Country Link
US (1) US11803768B2 (ja)
JP (1) JP6911928B2 (ja)
WO (1) WO2019064600A1 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019064600A1 (ja) * 2017-09-29 2019-04-04 日本電気株式会社 仮説検証装置、仮説検証方法、及びコンピュータ読み取り可能な記録媒体

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5138694A (en) 1991-06-28 1992-08-11 United Technologies Corporation Parallel processing qualitative reasoning system
JPH07129406A (ja) 1993-09-13 1995-05-19 Toshiba Corp モデルベース診断システム構築支援装置
JP4710221B2 (ja) * 2003-11-07 2011-06-29 日本電気株式会社 情報管理システムおよび情報管理プログラム
EP1674958B1 (en) * 2004-12-21 2008-02-27 International Business Machines Corporation A diagnostic method and system
CN102104609B (zh) * 2011-03-17 2013-06-19 天津大学 一种网络协议安全缺陷分析方法
US9317810B2 (en) * 2012-07-26 2016-04-19 The Boeing Company Intelligence analysis
CN104135397B (zh) * 2014-07-01 2018-04-20 浙江工业大学 面向无线传感网安全协议设计与实现的形式化验证方法
JP2016091039A (ja) 2014-10-29 2016-05-23 株式会社デンソー 危険予測装置、運転支援システム
CN105426176B (zh) * 2015-11-03 2018-05-18 南京航空航天大学 一种基于信息隐藏的图转换系统模型检测方法
JP6822220B2 (ja) * 2017-03-01 2021-01-27 日本電気株式会社 推論結果可視化装置、推論結果可視化方法、及びプログラム
WO2018229877A1 (ja) * 2017-06-13 2018-12-20 日本電気株式会社 仮説推論装置、仮説推論方法、及びコンピュータ読み取り可能な記録媒体
US20200250551A1 (en) * 2017-09-21 2020-08-06 Nec Corporation Knowledge acquisition device, knowledge acquisition method, and recording medium
WO2019064600A1 (ja) * 2017-09-29 2019-04-04 日本電気株式会社 仮説検証装置、仮説検証方法、及びコンピュータ読み取り可能な記録媒体

Also Published As

Publication number Publication date
US20200272916A1 (en) 2020-08-27
WO2019064600A1 (ja) 2019-04-04
JPWO2019064600A1 (ja) 2020-10-22
US11803768B2 (en) 2023-10-31

Similar Documents

Publication Publication Date Title
US10657264B2 (en) Techniques for correlating vulnerabilities across an evolving codebase
Eschweiler et al. Discovre: Efficient cross-architecture identification of bugs in binary code.
US11734433B2 (en) Open source vulnerability remediation tool
JP6686529B2 (ja) 脆弱性分析のための自律型推論システム
Ng et al. Expose: Discovering potential binary code re-use
KR102044046B1 (ko) 텔레메트리 파일 해시 및 충돌 검출 기법
BR102015017215A2 (pt) método implementado em computador para classificação de aplicativos móveis, e, programa de computador codificado em um meio de armazenamento não-trasitório
CN109670318B (zh) 一种基于核控制流图循环验证的漏洞检测方法
WO2018127794A1 (en) Management of security vulnerabilities
JP2016152048A (ja) 統計的学習によるブラックボックス・ソフトウェア試験
WO2023241529A1 (zh) 漏洞信息处理方法、服务装置和漏洞检测模块
KR101645019B1 (ko) 소프트웨어 보안취약점 검출을 위한 규칙명세언어
JP5868515B2 (ja) シグニチャ検証装置及びシグニチャ検証方法及びプログラム
JP6911928B2 (ja) 仮説検証装置、仮説検証方法、及びプログラム
KR101583932B1 (ko) 프로그램의 시그니처를 생성하는 시그니처 생성 장치 및 방법, 시그니처의 악성 코드를 검출하는 악성 코드 검출 장치 및 방법
JP7259932B2 (ja) 仮説検証装置、仮説検証方法、及びプログラム
KR102415494B1 (ko) 에뮬레이션 기반의 임베디드 기기 취약점 점검 및 검증 방법
CN111752819A (zh) 一种异常监控方法、装置、系统、设备和存储介质
CN115221051B (zh) 一种用于数据api执行过程验证的程序插桩方法及装置
Cam et al. Detect repackaged android applications by using representative graphs
CN115586920B (zh) 脆弱代码片段克隆检测方法、装置、电子设备及存储介质
Marashdih et al. Infeasible paths in static analysis: Problems and challenges
US20240163297A1 (en) Artificial intelligence-based cyber training method and apparatus
CN117725594A (zh) 智能合约的多重复合检测方法、装置、设备及存储介质
CN116702153A (zh) 基于神经网络的源码漏洞定位方法、系统、设备及介质

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200305

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20200305

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20210224

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210421

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20210608

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20210621

R150 Certificate of patent or registration of utility model

Ref document number: 6911928

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150