本文へ移動

G検定(ジェネラリスト検定)

えきすぱーとしすてむ

エキスパートシステム

Expert System

エキスパートシステムは、特定の分野の専門家が持つ知識をプログラムに書き込み、専門家に近い水準で複雑な問題の解決策を示せるようにしたAIプログラムです。知識は「もし条件が成り立つならば、この結論を導く」というIF-THEN形式のルールとして知識ベースに蓄えられ、推論エンジンがそのルールを次々につないで結論を導きます。

詳しい説明

専門家の判断をプログラムに持たせる

エキスパートシステムは、医師のような特定分野の専門家が頭の中に持っている知識をコンピュータに書き込み、専門家に近い判断をプログラムにさせようとする人工知能のしくみです。名前のエキスパート(expert)は英語で専門家を意味します。

エドワード・H・ショートリフ(Edward H. Shortliffe)らは1983年の論文で、エキスパートシステムの条件として3つを挙げています。1つ目は、複雑な問題に対して専門家の水準の解決策を示せることです。2つ目は、システムが出した答えを人が理解できることです。3つ目は、新しい知識を柔軟に取り込めることです。つまり、ただ正しい答えを出すだけでなく、なぜその答えになったのかを人がたどれることと、知識を後から足したり直したりできることも、エキスパートシステムに求められる性質です。

知識ベースと推論エンジンに分けて作る

エキスパートシステムは、大きく2つの部品でできています。

1つ目の部品は知識ベースです。知識ベースは、その分野の事実と、事実どうしの関係をまとめて蓄えた場所です。医療の例なら、どんな検査結果がどんな病気を示すかといった知識がここに入ります。

2つ目の部品は推論エンジンです。推論エンジンは、知識ベースに入っている知識を使って、実際に推論を進める仕組みです。利用者が患者のデータのような個別の情報を入力すると、推論エンジンは知識ベースから当てはまる知識を探し出し、それを組み合わせて結論を出します。

知識と、知識の使い方を別の部品に分けておくと、知識だけを入れ替えたり書き足したりしやすくなります。これは、上で挙げた「新しい知識を柔軟に取り込める」という条件を満たすための工夫でもあります。

IF-THENルールという知識の書き方

知識ベースに知識を書き込む代表的な形式が、IF-THEN形式のルールです。ルールは「もし(IF)この条件が成り立つならば、そのとき(THEN)この結論を導く」という1文で表されます。

ルールの前半の条件の部分を前提部と呼び、英語ではLHS(left-hand side、左辺)と呼びます。後半の結論の部分を結論部と呼び、英語ではRHS(right-hand side、右辺)と呼びます。ルールを左から右へ読む書き方をしたときに、条件が左、結論が右に置かれることに対応した呼び名だと言えます。

説明のための仮の例を挙げます。「もし検査で細菌が見つかったならば、感染症を疑う」というルールでは、「検査で細菌が見つかった」が前提部、「感染症を疑う」が結論部です。

ルールを連鎖させて結論にたどり着く

推論エンジンの働きの中心は、複数のルールを順につないでいくことです。次のような3つの知識があるとします。

1. もしAならば、Bである(ルール)
2. もしBならば、Cである(ルール)

3. Aである(入力されたデータ)

推論エンジンは、データのAが1つ目のルールの前提部に当てはまることから、Bを導きます。次に、そのBが2つ目のルールの前提部に当てはまることから、Cを導きます。こうして、ルールを1本ずつ見るだけでは出てこない結論Cに到達します。

1つのルールが導いた結論が、次のルールの前提部として使われる点が大切です。ルールの数が増えるほど、このつながりによって多くの段階を経た推論ができるようになります。また、どのルールをどの順に使ったかを記録しておけば、結論に至った筋道を人に示せます。これが「答えを人が理解できる」という性質につながります。

医療診断を対象にしたMYCIN

エキスパートシステムの代表例として知られるのがMYCIN(マイシン)です。MYCINは医療診断を対象にしたシステムで、感染症の診断と、その治療に使う抗生物質の処方を扱いました。

医療の診断は、検査結果や症状から段階を追って判断を積み重ねる作業です。IF-THENルールを連鎖させる仕組みは、このように「この所見があればこの可能性が高い、その可能性が高いならこの治療が候補になる」と判断をつないでいく問題と相性がよいと言えます。

データから学ぶ機械学習との違い

エキスパートシステムと機械学習は、どちらもコンピュータに判断をさせる方法ですが、知識の出どころが違います。

エキスパートシステムでは、人がIF-THENルールを書き、知識ベースに入れます。ルールは人が読める形で書かれているので、なぜその結論になったかをルールの連鎖として説明できます。

一方の機械学習は、大量のデータからパターンや規則をコンピュータ自身が見つけ出す方法です。人がルールを1本ずつ書かなくてもよい代わりに、学習した結果がルールの形で読めるとは限りません。

また、知識表現という語とも区別が必要です。知識表現は、知識をコンピュータが扱える形でどう書き表すかという方法の側を指す語です。IF-THENルールは知識表現の一つの形式にあたります。エキスパートシステムは、そうして表現した知識を推論エンジンで使い、実際に問題を解くシステム全体を指します。

ルールを人が書くことの手間

エキスパートシステムの知識は、人が書かなければ増えません。専門家が経験から判断していることを聞き取り、IF-THENルールの形に書き起こす必要があります。専門家自身がうまく言葉にできない判断は、ルールに書き起こすことが難しくなります。

さらに、システムが扱える範囲は、書き込まれたルールの範囲に限られます。ルールに書かれていない状況が来ると、推論エンジンは結論を導けません。専門家の知識をルールとして集める作業は難しく、ここがシステム作りの大きな壁になります。エキスパートシステムには、このような知識獲得のボトルネックという課題があります。

試験で問われること

G検定

  • エキスパートシステムが、専門家の知識をプログラムに書き込んで専門家に近い判断をさせるAIプログラムであることを押さえます。
  • 知識ベース(事実と関係を蓄える部品)と推論エンジン(知識を使って推論を進める部品)という2つの構成要素の名前と役割を区別して答えられるようにします。
  • 知識がIF-THEN形式のルールで書かれること、前提部と結論部の区別、1つのルールの結論が次のルールの前提部になって推論が連鎖することを理解します。
  • 代表例のMYCINが、感染症の診断と抗生物質の処方という医療診断を対象にしたシステムであることを対応づけて覚えます。
  • 人がルールを書くエキスパートシステムと、データから規則を見つけ出す機械学習との違い、そして専門家の知識をルールに書き起こすことが難しいという知識獲得のボトルネックの課題を結びつけて説明できるようにします。

最終更新日: 2026/09/23