推論エンジンとは? わかりやすく解説

推論エンジン

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2023/03/28 04:51 UTC 版)

推論エンジン(すいろんエンジン、英語: inference engine)とは、知識ベースから答えを導き出す仕組みである。エキスパートシステムの頭脳であり、知識ベース内の情報を元に推論を実行する方法を提供し、結論を導く。

アーキテクチャ

推論エンジンを独立したソフトウェアコンポーネントとして分離させたのは、プロダクションシステムのアーキテクチャが最初である。このアーキテクチャは、データ格納部あるいはワーキングメモリを独立させて、問題に関する事実や表明を表す記号列のデータベースとする。また、プログラム本体を表す推論規則群を別に独立させ、その規則を実行するための推論エンジンを設ける。推論エンジンは、その時点のデータ格納部の内容に対してどの推論規則を適用すべきかを選択する。規則選択の制御戦略は「衝突の解決; conflict resolution」と呼ばれる。

推論エンジンは主に以下の3つの部分から構成される。

  1. インタプリタ。対応する基本のルールを適用することによって、インタプリタは指定された課題を実行する。
  2. スケジューラー。アイテム優先度または課題に関する他の標準を考慮して、推論規則を適用したときの効果を見積もることにより、スケジューラーは課題に対する制御を行う。
  3. 一貫性保持部。一貫性保持部は得られた解決策に対して一貫した表現をするよう務める。

認知-行動サイクル

推論エンジンは、3つの動作段階(規則のマッチング、規則の選択、規則の実行)を持つ有限状態機械として表現できる。

規則のマッチングの段階では、推論エンジンはデータ格納部のその時点の内容を満足する全ての規則を探し出す。規則が典型的な「条件-行動」形式である場合、条件部とワーキングメモリの内容のマッチングをすることを意味する。マッチングが見つかった規則は全て実行候補となり、これらを「衝突集合; conflict set」と呼ぶ。衝突集合では、規則の条件部が複数の事実とマッチした場合、1つの規則が複数回出現することもある。規則とそれにマッチしたデータの部分集合の組合せを、規則のインスタンスと呼ぶ。

多くの場合、データが非常に膨大だったり、要求される性能が厳しいため、衝突集合を求める処理はそれほど単純な問題ではない。初期の推論エンジンの研究では規則とデータのマッチングに関するアルゴリズムの追求が盛んであった。チャールズ・フォーギーが開発したReteアルゴリズムがそのような例として挙げられる。これは OPS5 などのプロダクションシステムで使われた。Daniel P. Miranker は Rete アルゴリズムを改良した TREAT を開発した。これは、関係データベースの最適化技法を取り入れたものである。

衝突集合が得られると、推論エンジンは第二段階として規則選択を行う。この段階では、実際にどの規則を実行すべきかの判断に一種の選択戦略を適用する。この選択戦略はエンジン内にコードとして備わっている場合もあるし、モデルの一部として外部から指定される場合もある。人工知能の中では、この選択戦略をアレン・ニューウェルUnified theory of cognition に倣ってヒューリスティックスと呼ぶことが多い。

例えば OPS5 では、プログラマは2つの衝突の解決戦略のいずれかを選択可能である。LEX 戦略はインスタンスをデータに付与された時刻タグが現在時刻に近い順に並べる。すなわち、最近実行した規則にマッチしたデータを持つインスタンスが高い優先順位となる。この順序付けではさらに、規則の条件部の複雑さによってソートする。MEA 戦略は、規則の最初の条件にマッチするワーキングメモリ要素の新しさを重視する(特に手段目標解析でよく使われるヒューリスティック)。

さらに選択したインスタンスが第三段階に渡され、その規則が実行される。推論エンジンは選択された規則をインスタンス内のデータを引数として実行(あるいは発火)する。一般に規則の右辺にあるアクションはデータ格納部を変化させるが、それ以外に推論エンジン外の処理を変化させる場合もある(ユーザーとやり取りしたり、外部プログラムを呼び出したりなど)。データ格納部は一般に規則の実行によって更新されるので、次のサイクルでデータにマッチする規則の集合は変化する。

以上の段階を経て、推論エンジンは次のサイクルの第一段階を開始可能な状態となる。このようなサイクルを「認知-行動サイクル」と呼ぶ。推論エンジンの停止条件としては、指定された回数のサイクルを実行したか、ユーザーが停止を要求したか、サイクルの第一段階でマッチする規則が無い状態になった場合がある。

データ駆動処理と手続き的制御

推論エンジンの制御はデータ格納部の状態を頻繁に評価することに基づいており、静的なプログラムの制御構造には依存しない。このような処理を「データ駆動」あるいは「パターン誘導」と言い、一般的な手続き的制御と対比される。規則はデータを介してのみ相互にやり取りが発生するのであって、一般的なプログラミング言語では手続きや関数は明示的に互いに呼び出しあう。命令とは異なり、規則は逐次的に実行されず、規則群だけを見てもどれが次に実行されるかは分からず、推論エンジンがいつ停止するかもわからない。

手続き的処理では、問題領域についての知識は制御構造の中に命令としてちりばめられるが、推論エンジンでは知識(規則)と制御(推論エンジン)がより明確に分離されている。オブジェクト指向プログラミングは、それらの中間レベルの分離がなされていると言える。

関連項目

外部リンク

いずれも英文


推論エンジン

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2021/03/30 05:03 UTC 版)

エキスパートシステム」の記事における「推論エンジン」の解説

推論エンジンは、規則群を使って推論を行うプログラムである。推論を行うため、論理基づいている。推論エンジンが使う論理としては、命題論理一階または高階述語論理認識論理様相論理時相論理ファジィ論理などがある。命題論理以外の論理は複雑であり、数学者論理学者計算機科学者でないと扱い難しい。命題論理基本的な論理であり、三段論法定式化したものと言える。推論エンジンは論理使って規則データ処理し新たな情報生成する。 推論エンジンには、バッチ式と対話式の2つ動作方式がある。バッチ式では、当初から処理すべきデータ揃っている利用者から見れば通常のプログラム同じよう動作しデータ入力する即座に結果得られ推論過程見えない対話式は、問題あまりにも複雑など、運用開始時点開発者利用者から必要な全ての知識集められなかった場合に必要となったソフトウェア問題を解く方法を「考案」しなければならないので、利用者欠けているデータ要求し徐々にかつ可能な限り素早くゴール到達する結果は、専門家誘導した会話影響を受ける。対話誘導するため、エンジンには「前向き連鎖」、「後向き連鎖」、あるいはそれらの混合といったいくつかの技法備わっている前向き連鎖は、解法を全く知らない専門家が行質問であり、次第解法つきとめていく(例えば、障害診断)。後向き連鎖は、エンジン結論候補持っている場合である(例えば、これは大丈夫か?、何らかの危険がありそうだが、そのレベルは? など)。可能な限り素早く解法を見つけられそうな結論から開始する混合型連鎖では、エンジンには結論候補があるが、それだけでは十分ではない。その場合、直前利用者応答から前向き連鎖推論して可能性のある候補洗い出す。したがって次の質問利用者答え前にその答え推論済みであることが多い。 論理使った場合の非常に興味深い点は、この種のソフトウェア利用者に対して明確に何をしているか」(Why)と「どう推論したのか」(How)を説明できる点である。さらに論理使ったエキスパートシステムは、利用者提供する情報知識ベースにおける矛盾検出できることが多く明確にそれを指摘できる

※この「推論エンジン」の解説は、「エキスパートシステム」の解説の一部です。
「推論エンジン」を含む「エキスパートシステム」の記事については、「エキスパートシステム」の概要を参照ください。

ウィキペディア小見出し辞書の「推論エンジン」の項目はプログラムで機械的に意味や本文を生成しているため、不適切な項目が含まれていることもあります。ご了承くださいませ。 お問い合わせ


英和和英テキスト翻訳>> Weblio翻訳
英語⇒日本語日本語⇒英語
  

辞書ショートカット

すべての辞書の索引

「推論エンジン」の関連用語

推論エンジンのお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



推論エンジンのページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

   
ウィキペディアウィキペディア
All text is available under the terms of the GNU Free Documentation License.
この記事は、ウィキペディアの推論エンジン (改訂履歴)の記事を複製、再配布したものにあたり、GNU Free Documentation Licenseというライセンスの下で提供されています。 Weblio辞書に掲載されているウィキペディアの記事も、全てGNU Free Documentation Licenseの元に提供されております。
ウィキペディアウィキペディア
Text is available under GNU Free Documentation License (GFDL).
Weblio辞書に掲載されている「ウィキペディア小見出し辞書」の記事は、Wikipediaのエキスパートシステム (改訂履歴)の記事を複製、再配布したものにあたり、GNU Free Documentation Licenseというライセンスの下で提供されています。

©2025 GRAS Group, Inc.RSS