情報技術において、推論システムとは、演繹や帰納といった論理的手法を用いて、利用可能な知識から結論を導き出すソフトウェアシステムのことである。推論システムは、人工知能や知識ベースシステムの実現において重要な役割を果たす。
日常的な用法では、すべてのコンピュータシステムは、何らかの論理や決定を自動化するという点で推論システムです。しかし、情報技術分野では、この用語は通常、より複雑な種類の推論を実行するシステムに限定して使用されます。たとえば、売上税や顧客割引の計算といった比較的単純な推論を行うシステムではなく、医学的診断や数学的定理に関する論理的推論を行うシステムです。推論システムには、対話型とバッチ処理の2つのモードがあります。対話型システムは、ユーザーと対話して明確化のための質問をしたり、ユーザーが推論プロセスを誘導できるようにします。バッチシステムは、利用可能なすべての情報を一度に取り込み、ユーザーからのフィードバックやガイダンスなしに可能な限り最良の回答を生成します。[ 1 ]
推論システムは、スケジューリング、ビジネスルール処理、問題解決、複合イベント処理、侵入検知、予測分析、ロボット工学、コンピュータビジョン、自然言語処理など、幅広い分野で応用されています。
最初の推論システムは定理証明器であり、一階述語論理で公理と命題を表現し、モーダス・ポネンスなどの論理規則を用いて新しい命題を推論するシステムでした。もう1つの初期の推論システムは汎用問題解決システムでした。これらは、ニューウェルとサイモンによって設計された汎用問題解決システムなどです。汎用問題解決システムは、構造化された問題を表現し解決できる汎用的な計画エンジンを提供することを目指しました。これらのシステムは、問題をより小さく扱いやすい部分問題に分解し、各部分問題を解決し、部分的な回答を組み立てて最終的な回答を1つ作成することで機能しました。汎用問題解決システムのもう1つの例として、SOARファミリーのシステムがあります。
実際には、これらの定理証明器や一般的な問題解決器は実用的な用途にはほとんど役立たず、論理の知識を持つ専門のユーザーによる利用が必要でした。自動推論の最初の実用的な応用はエキスパートシステムでした。エキスパートシステムは、医療診断や航空機の故障分析など、一般的な問題解決よりもはるかに明確に定義された領域に焦点を当てていました。エキスパートシステムはまた、論理のより限定的な実装に焦点を当てていました。論理式の全範囲を実装しようとするのではなく、通常はIF-THENルールを介して実装されるモーダスポネンスに焦点を当てていました。特定の領域に焦点を当て、論理の限定されたサブセットのみを許可することで、このようなシステムのパフォーマンスが向上し、ほとんどの以前の自動推論システムのように単なる研究デモンストレーションではなく、現実世界での使用に実用的になりました。エキスパートシステムで自動推論に使用されるエンジンは、通常、推論エンジンと呼ばれていました。より一般的な論理推論に使用されるエンジンは、通常、定理証明器と呼ばれています。[ 2 ]
エキスパートシステムの普及に伴い、政府や産業界における様々な問題に、多くの新しいタイプの自動推論が応用されるようになった。事例ベース推論などは、エキスパートシステム研究から派生したものである。制約充足アルゴリズムなどは、意思決定技術や線形計画法といった分野の影響を受けている。また、記号推論ではなくコネクショニストモデルに基づく全く異なるアプローチも、非常に大きな成果を上げている。この後者のタイプの自動推論は、テキスト検索や顔認識といったパターンマッチングや信号検出の問題に特に適している。
推論システムという用語は、以下に説明する特定の分野に見られるように、ほぼあらゆる種類の高度な意思決定支援システムに適用できます。ただし、推論システムという用語の最も一般的な用法は、論理のコンピュータ表現を意味します。さまざまな実装は、論理体系と形式性の点で大きな違いを示しています。ほとんどの推論システムは、命題論理と記号論理(述語論理)のバリエーションを実装しています。これらのバリエーションは、形式論理システム(例:FOL )の数学的に正確な表現である場合もあれば、それらのシステムの拡張版やハイブリッド版(例:Courteous logic [ 3 ])である場合もあります。推論システムは、追加の論理タイプ(例:様相論理、義務論理、時間論理)を明示的に実装する場合もあります。しかし、多くの推論システムは、認識されている論理システムに対する不正確で半形式的な近似を実装しています。これらのシステムは通常、さまざまな推論戦略をモデル化するために、さまざまな手続き的および半宣言的な手法をサポートしています。形式性よりも実用性を重視し、現実世界の問題を解決するためにカスタム拡張機能やアタッチメントに依存する場合があります。
多くの推論システムは、利用可能な知識から推論を導き出すために演繹的推論を採用しています。これらの推論エンジンは、モーダス・ポネンスを介して結論を推論するために、順方向推論または逆方向推論をサポートしています。これらのシステムが採用する再帰的推論方法は、それぞれ「順方向連鎖」および「逆方向連鎖」と呼ばれます。推論システムは広く演繹的推論をサポートしていますが、一部のシステムはアブダクティブ、インダクティブ、デフェイズィブルなどの推論を採用しています。また、ヒューリスティクスは、解決困難な問題に対する許容可能な解決策を決定するためにも使用されることがあります。
推論システムは、閉世界仮定(CWA)または開世界仮定(OWA)を採用する場合があります。OWAは、オントロジー知識表現やセマンティックWebと関連付けられることが多いです。さまざまなシステムは、否定に対してさまざまなアプローチを示します。論理補数やビットごとの補数に加えて、システムは、失敗としての否定や「インフレーション」否定(非基底原子の否定)を含む、強い否定と弱い否定の存在形式をサポートする場合があります。さまざまな推論システムは、単調推論または非単調推論、階層化、およびその他の論理的手法をサポートする場合があります。
多くの推論システムは、不確実性下での推論機能を提供します。これは、不確実な世界の表現を扱わなければならない状況依存型推論エージェントを構築する際に重要です。不確実性を扱うための一般的なアプローチはいくつかあります。これらには、確実性係数の使用、ベイズ推論やデンプスター・シェーファー理論などの確率的手法、多値(「ファジー」)論理、およびさまざまなコネクショニストアプローチが含まれます。[ 4 ]
このセクションでは、一般的な推論システムのタイプを網羅的ではない非公式な形で分類します。これらの分類は絶対的なものではなく、かなりの部分で重複しており、多くの技術、手法、アルゴリズムを共有しています。
制約ソルバーは、制約充足問題(CSP)を解きます。制約ソルバーは制約プログラミングをサポートします。制約とは、問題の有効な解が満たさなければならない条件のことです。制約は宣言的に定義され、指定されたドメイン内の変数に適用されます。制約ソルバーは、探索、バックトラッキング、制約伝播の手法を使用して解を見つけ、最適な解を決定します。線形および非線形プログラミングの形式を採用する場合があります。制約ソルバーは、組み合わせ性の高い問題空間内で最適化を実行するためによく使用されます。たとえば、最適なスケジューリングの計算、効率的な集積回路の設計、製造プロセスの生産性の最大化などに使用できます。 [ 5 ]
定理証明器は、自動推論技術を用いて数学的定理の証明を決定します。また、既存の証明を検証するためにも使用できます。学術的な用途に加え、定理証明器の典型的な応用例としては、集積回路、ソフトウェアプログラム、エンジニアリング設計などの正当性の検証が挙げられます。
論理プログラム(LP)とは、数理論理学から導き出された構成要素を直接表現するプリミティブと式を持つプログラミング言語を用いて記述されたソフトウェアプログラムです。汎用論理プログラミング言語の一例としてPrologが挙げられます。LPは、論理プログラミングを問題解決に直接応用したものです。論理プログラミングは、形式論理に基づいた高度に宣言的なアプローチを特徴とし、多くの分野で幅広く応用されています。
ルールエンジンは、条件付きロジックを個別のルールとして表現します。ルールセットは個別に管理でき、他の機能にも適用できます。ルールエンジンは多くの分野で幅広く活用できます。多くのルールエンジンは推論機能を実装しています。一般的なアプローチは、前方または後方連鎖をサポートするプロダクションシステムを実装することです。各ルール(「プロダクション」)は、述語節の論理積を実行可能なアクションのリストに結び付けます。
実行時、ルールエンジンは生成規則と事実を照合し、一致した各規則に関連付けられたアクションリストを実行(発火)します。これらのアクションによって事実が削除または変更された場合、あるいは新しい事実が主張された場合、エンジンは直ちに一致した規則のセットを再計算します。ルールエンジンは、ビジネスルールのモデリングと適用、自動化されたプロセスにおける意思決定の制御、およびビジネスポリシーと技術ポリシーの適用に広く利用されています。
演繹的分類器はルールベースシステムよりやや遅れて登場し、フレーム言語と呼ばれる新しいタイプの人工知能知識表現ツールの構成要素となった。フレーム言語は、問題領域をクラス、サブクラス、およびクラス間の関係の集合として記述する。これはオブジェクト指向モデルに似ている。しかし、オブジェクト指向モデルとは異なり、フレーム言語は一階述語論理に基づく形式意味論を持つ。
彼らはこの意味論を利用して演繹的分類器に入力情報を提供します。分類器は、与えられたモデル(オントロジーと呼ばれる)を分析し、モデル内で記述された様々な関係が整合しているかどうかを判断します。オントロジーに整合がない場合、分類器は矛盾する宣言を強調表示します。オントロジーに整合がある場合、分類器はさらに推論を行い、オントロジー内のオブジェクトの関係について追加の結論を導き出すことができます。
例えば、オブジェクトが実際にはユーザーによって記述された追加クラスのサブクラスまたはインスタンスであると判断する場合があります。分類器は、セマンティック Webでモデルを記述するために使用されるオントロジーを分析する上で重要な技術です。[ 6 ] [ 7 ]
機械学習システムは、経験に基づいて時間とともに動作を進化させます。これには、観測された事象やトレーニング用に提供されたサンプルデータに対する推論が含まれる場合があります。例えば、機械学習システムは帰納的推論を用いて、観測された事実に対する仮説を生成することがあります。学習システムは、観測結果と一致する結果をもたらす一般化された規則や関数を探し出し、これらの一般化を用いて将来の動作を制御します。
事例ベース推論(CBR)システムは、既知の解決策が存在する他の問題との類似性を分析することで、問題の解決策を提供します。事例ベース推論は、類似性の最上位(表層)レベル、すなわち、対象、特徴、および値の基準を使用します。これは、類推推論が「深い」類似性基準、つまり関係性、あるいは関係性の関係性のみを使用し、より浅いレベルでの類似性を見つける必要がないという点で、事例ベース推論と類推推論との違いです。この違いにより、事例ベース推論は、類似する対象、特徴、および/または値が同じドメインに属している必要があるため、同じドメインの事例間でのみ適用可能です。一方、「関係性」という「深い」類似性基準により、類推推論は、事例間で関係性のみが類似しているクロスドメインにも適用可能です。CBRシステムは、顧客/技術サポートやコールセンターのシナリオで一般的に使用されており、工業製造、農業、医療、法律、その他多くの分野で応用されています。
手続き型推論システム(PRS)は、推論技術を用いて手続き型知識ベースから計画を選択します。各計画は、特定の目標を達成するための行動手順を表します。PRSは、事実(「信念」)に基づいて推論を行い、特定の目標(「欲求」)に適した計画(「意図」)を選択することで、信念・欲求・意図モデルを実装します。PRSの典型的な応用例としては、管理システム、監視システム、障害検出システムなどが挙げられます。