# エキスパートシステムのパラダイム

By Finn V. Jensen, Dept. of Computer Science, Aalborg University, Denmark

エキスパートシステムの主要な3つのパラダイムの概観を述べる．

## 1. ルールベース・システム

ルールは次の形式で表現される．
if
A then B
ここで，Aはある言明であり，Bはあるアクションまたはもう１つの言明である． たとえば，以下の3つのルールは，水中ポンプのトラブルシューティング用のルールの大規模な集合の一部と考えられる:

1)もしポンプが故障しているなら，圧力が低い
2)もしポンプが故障しているなら，オイル・レベルをチェックせよ
3)もし電源が故障しているなら，ポンプは故障している

ルールベース・システムは，このようなルールのライブラリからなる．これらのルールは，ドメイン内の本質的な関係性を反映するか，あるいはむしろ，ドメインについての判断の道筋を反映する．

ドメインに関する特定の情報が利用可能な場合，結論を導き，適切なアクションを指示するためにルールが使用される．これを推論（inference）と呼ぶ．推論は，一種の連鎖反応として行なわれる． 上記の事例では，もし電源の故障があることを知らされたら，ルール3がポンプの故障があることを述べ，そしてルール1が圧力の低いことを知らせることとなる．またルール2は，オイル・レベルをチェックするという（無用な）勧告をする．

ルールは，反対方向にも使用できる．もし圧力が低いことを知らされたとすると，ルール1は，それはポンプの故障に原因があることを述べ，一方ルール3は電源の故障によってポンプの故障が引き起こされるかもしれないことを述べる．またオイル・レベルをチェックすることを勧告するためにルール2を使うこともできるが，このように同じセッションで前に戻る推論の混合をコントロールすることは，かなり難しい．

不確実性

しばしば，ルールによって反映される接続は，完全に確かではなく，同様に収集された情報は，しばしば不確実性に支配される．このような場合，ルールのシステム内で，確実性の測度が，前提や結論に追加される．ここで，ルールは，前提の確実性での変化が，結論の確実性をどれだけ変えるかを説明する機能を与える．その最も単純な形式は，つぎのようになる．:

4) If A (確実性 x で ) then B (確実性 f(x) で )

ルールベース・システムで不確実性を取り扱うにはたくさんのスキームがある．もっとも一般的なのは ファジィ・ロジック，確信度（certainty factors）そして （適応の）Dempster-Shafer belief functionsである．これらのスキームに共通なのは，不確実性が局所的に取り扱われることである． つまり， その処置は，入力ルールとそれらの要素の不確実性に直接接続されている．たとえば，4)に加えて次のようなルールがあると想像してみよう．

5) If C ( 確実性 x で) then B (確実性 g(x) で)

もし我々が，Aは確実性aを持ち，Cは確実性cを持つという情報を得るならば，Bの確実性はどれだけか？

スキーム次第で，このような不確実性の組み合わせにはさまざまな代数がある．これらの代数に共通しているのは，多くの場合，それらが間違った結論に達するということである．これは，不確実性の組み合わせが局所的な現象ではなく，全体的なシチュエーション（原則的に全体的問題）に強く依存しているからである．

## 2. ニューラルネットワーク

(いわゆるフィード・フォワード・ネットワークについてのみ述べる．)

ニューラル・ネットワークは，ノードの複数の層からなる：最上部には入力ノードの層があり，最下部に出力ノードの層，そして，これらの間に通常1から2個の隠れ層がある．層内のすべてのノードは，原則的に直下の層内のすべてのノードにつながっている．ノードの値は入ってくるエッジに従って変化する．これをパーセプトロンと呼ぶ．

ニューラル・ネットワークは，パターン認識を実行する．たとえば，手書き文字を読むニューラル・ネットワークをイメージすることができる．自動的な追跡により，手書き文字が（ネットワークのための仕事ではなく）曲線上の知見の集合に変換される．ネットワークは，あらゆる可能な知見についての入力ノードとアルファベットの各文字についての出力ノードを持つ．知見の集合がネットワークに送り込まれるとき，システムは知見のパターンとそれに相当するさまざまな文字のパターンを照合する．

技術的には，入力ノードは（0また1の）値が与えられている．この値は，次の層のノードに伝達される．これらのノードは，入ってくる値の荷重合計を実行し，もしこの合計があるしきい値よりも大きければ ，値1の下方に発火する．そして出力ノードの値が，文字を決定する．

そして，ネットワークのアーキテクチャ（層の数や各層のノード数）は別として，重みとしきい値が，ネットワークの挙動を決定する．できるだけうまく実行するために，重みとしきい値がネットワークに設定される．これはトレーニングによって達成される．入力値と出力値がわかっているたくさんの事例があって，これらがネットワークのトレーニング・アルゴリズムに送り込まれる．このアルゴリズムは，ネットワークからの出力の集合と事例からの要求される出力の集合の間の距離を最小化するような方法で，重みとしきい値を決定する．

不確実性の取り扱いが要求されるドメインでのニューラル・ネットワークの活用には何ら制約はない．もし関係が不確実なら（たとえば医療診断において）適切なトレーニングによるニューラル・ネットワークは，症状の集合が与えられると，最も可能性の高い診断を行なうことができるだろう．しかしながら，ネットワークからの結論の不確実性を読み取ることができないし，次に可能性の高い診断や-たぶん最も可能性の低い診断-を得ることもできないし，ドメインに関するどの仮定において提案された診断が最も可能性が高いかを知ることはできない．

## 3. ベイジアンネットワーク

ベイジアンネットワークは，ベイズ・ネット，因果確率ネットワーク（CPN)，ベイジアン信念ネットワーク（BBN)または単に信念ネットワークとも呼ばれる．

ベイジアンネットワークは，ノードの集合とこれらのノード間の有向辺（エッジ）の集合からなる．エッジはドメイン内の因果関係を反映する．これらの結果は，通常，完全に決定論的ではない（例　病気　-> 症状）．結果の強さが確率でモデル化される：

6) If へんとう炎 then P(体温>37.9) = 0.75
7) If 百日咳 then P(体温>37.9) = 0.65

これらのステートメントをルールとして導く人がいるかもしれない．しかし，そうするべきではない．それで，異なる表記法が使用される:

P(体温>37.9 | 百日咳) = 0.65

もし 6) と 7) が 'If otherwise healthy and...then...'という形であれば，どのようにして2つの原因を組み合わせるかを指定する必要がある．つまり，両方の症状が現れて，もし患者が完全に健康であるときに熱が出ている確率が必要である． 結局のところ，次の条件つき確率を指定しなければならない：

P(体温>37.9 | 百日咳, へんとう炎),

ここで '百日咳' と 'へんとう炎' の各々は，yes と noの状態(ステート）を取ることができる．そして，あらゆるノードで，可能な原因のステートのすべての組み合わせの強さを指定しなければならない．

基本的に，ベイジアンネットワークは，情報が現れたときに，確率を更新するために用いられる．この数学的な基礎は，ベイズの定理である．

P(A | B) P(B) = P(B | A) P(A)

ルールベース・システムの手法とは反して，ベイジアンネットワークの更新法は，全体的な観点を用いていて，もしモデルと情報が正しければ，この手法は新しい確率を正確に（伝統的な確率理論の公理について正しく）計算することが証明できる．

この手法は，エッジの向きの推論か，それともその反対の推論かを区別をしないので，ネットワーク内のどのノードも情報を受け取ることができる．また，複数のノードへの同時の情報入力は，更新アルゴリズムに影響しない．

ルールベース・システムとベイジアンネットワークに基づくシステムの間の本質的な違いは，ルールベース・システムでは専門家が推論する方法をモデルしようとするが，ベイジアンネットワークではドメインそれ自身の従属性をモデルしようとすることである．後者は，しばしば，意思決定支援システム（decision support systems）または規範的エキスパート・システム（normative expert systems）と呼ばれる．

## 4. ニューラルネットワークとベイジアンネットワークの比較

この2つのタイプのネットワークの基本的な違いは，パーセプトロンの隠れ層が，それ自身ではシステムのドメインでの解釈を持たないのに対して，ベイジアンネットワークのすべてのノードは，そのドメインに関してよく定義されたコンセプトを表現している点である．

ノードの意味とその確率表は，ネットワークでのそれらの機能とは関係なしに，外面的な議論の課題でありうる．これはニューラルネットワークでは意味をなさない．パーセプトロンの隠れ層は，ネットワークの機能の文脈での意味しか持たない．

これは，ベイジアンネットワークの構築が，問題になっているドメインの詳細な知識を必要とすることを意味する．もしそのような知識が，事例の系列から得られるなら，ニューラル・ネットワークがより簡単なアプローチである．これは，手書き文字の認識，顔の認証やその他の領域など，その活動がもっぱら経験に基づく'職人的'能力であるようなところでは当てはまる．

ベイジアンネットワークを構築するために，あまりにたくさんの確率を'知らなければならない'ことが，よく批判される．しかしながら，この数と，ニューラルネットワークを構築するのに必要で，トレーニングによってのみ学習される重みやしきい値の数とは，それほどの違いはない．事前に持っているであろう知識を活用できないことこそが，ニューラルネットワークの大きな弱点である．

一方，確率は，理論的な洞察，構築されるシステムとは独立の経験的調査，トレーニングおよび，多かれ少なかれさまざまな主観的推定などの組み合わせを用いて評価することができる．

最後に，ニューラルネットワークの構築では，推論のルートが固定されていることを言及しなければならない．どの関係性の情報を集めて，システムがどの関係性を計算することが期待されるかがあらかじめ決定されている．ベイジアンネットワークは， その点において，たいへん柔軟である．

Back