ーーーー講義録始めーーーー
推論エンジンの仕組みと前向き推論・後ろ向き推論の使い分け
推論エンジンの概要
ルールベースを利用した推論エンジンには、次の2種類の推論方法があります:
- 前向き推論(Forward Chaining)
条件部から結論部へと進む推論。 - 後ろ向き推論(Backward Chaining)
結論部から条件部へと進む推論。
図2-2をご覧ください。推論エンジンは、観測データを作業記憶(Working Memory, WM)に保存し、WMの内容とルール条件部を照合します。複数のルールが条件を満たす場合、以下のような競合解消戦略によりルールを選択します:
- より多くの条件節を持つルールを優先する。
- 重要度や確信度の高いルールを優先する。
選ばれたルールの結論部を実行し、競合 → 解消 → 実行のサイクルを繰り返しながら結論を導きます。
前向き推論のイメージ
前向き推論は、センサーなどの観測データを利用して、故障箇所や異常を特定するシナリオを考えると分かりやすいです。データが揃っている状態で適用され、効率的に結論へ到達します。
後ろ向き推論の仕組み
一方、後ろ向き推論では次のように動作します:
- あるルールの結論部が成立すると仮定します。
- そのルールの条件部の条件節を検証します。
- 条件節が別のルールの結論部に関連する場合、そのルールを呼び出し、条件を検証します。
- ルール呼び出しが不可能になった条件節については、ユーザーに確認します。
ユーザーが条件を満たしていると回答した場合、仮定した結論が成立します。不成立であれば、別の仮説を検証します。
前向き推論と後ろ向き推論の違い
- 前向き推論: データが揃っている状態で効率的に結論を導く。
- 後ろ向き推論: ユーザーの回答を基に条件を検証しながら仮説を絞り込む。
使い分けの例
-
機械の故障診断
計測データがすべて揃っているため、前向き推論を採用します。 -
医療診断
患者の問診や検査結果に基づき、新たなデータが逐次得られるため、後ろ向き推論を採用します。
全ての検査を受けるには高コストが伴うため、後ろ向き推論を活用して必要な検査のみを実施します。
医療診断の現実的なアプローチ
検査を全て実施するのが理想的であっても、コストや時間の制約があるため、後ろ向き推論によって重要なデータを効率的に収集し、必要な検査を絞り込むことが現実的なアプローチとなります。
