エキスパートシステム

Question book-4.svg

この記事は検証可能な参考文献や出典が全く示されていないか、不十分です。
出典を追加して記事の信頼性向上にご協力ください。(2012年2月)

エキスパートシステム英語:expert system)は人工知能研究から生まれたコンピュータシステムで、人間の専門家(エキスパート)の意思決定能力をエミュレートするものである[1]。専門家のように知識についての推論によって複雑な問題を解くよう設計されており、通常のプログラミングのようにソフトウェア開発者が設定した手続きに従うわけではない。1970年代人工知能研究者によって開発され、1980年代にわたって商業的に適用され[5]AIソフトウェアとして最初に成功を収めた形態である。日本語訳では専門家システムと言う場合もある。

エキスパートシステムは基本的に、特定の分野の問題についての情報を解析するルール群から構成されるプログラムであり、その情報はシステムの利用者が提供する。 問題の分析結果を提供するだけでなく、設計によっては利用者の行動を正しく導く指針を与えることもできる。通常のプログラムとは異なった独特の構造をしている。2つの部分で構成されており、1つはそのエキスパートシステムから独立している推論エンジンであり固定である。もう1つは知識ベースで、可変である。推論エンジンが知識ベースを使って推論を行う[12]。80年代になると、利用者とやりとりするための対話インタフェースが第3の部分として登場した[13]。利用者との会話によって知識ベースを構築することから、後に会話型 (en:Conversational Programming System) と呼ばれるようになった[14][15]

関連用語としてウィザードがある。エキスパートシステムのように、ウィザードもユーザが問題を解決するのを手助けする対話型コンピュータプログラムである。普通、ウィザードという用語は、ユーザにより入力された指針に従ってデータベースで検索するプログラムを指す。あいにく、これらの2つの定義の区別は確定したものではなくルールベースのプログラムの中にはウィザードと呼ばれるものもある。

 

目次

1歴史
2アーキテクチャ
2.1ルールベースと知識ベース
2.2推論エンジン
3利点
4欠点
5エキスパートシステムが解決する問題のタイプ
6応用例
7知識工学
8特筆すべきエキスパートシステム
9脚注・出典
10参考文献
10.1教科書
10.2歴史
10.3その他
11関連項目
12外部リンク

 

歴史

[icon] この節の加筆が望まれています。

エキスパートシステムはスタンフォード大学のヒューリスティック・プログラミング・プロジェクトの研究者らが提唱したもので、「エキスパートシステムの父」ともいわれるエドワード・ファイゲンバウムが含まれる。初期のシステムとしては Dendral (1965-) や Mycin (1972) がある。主な貢献者としては、ブルース・ブキャナン、エドワード・ショートリッフェ、ランダール・デイヴィス、ウィリアム・ヴァン・メレ、カルリ・スコット、その他スタンフォード大学の人々がいる。エキスパートシステムはAIソフトウェアとして初めて真の成功を収めた[6][7][8][9][10][11]

フランスでも盛んに研究され、特に推論の自動化と論理エンジンの研究が進んでいる。Prologは1972年、フランスで開発された言語であり、エキスパートシステムの発展において重要である。Prologは一種のシェルであり[16]、任意のエキスパートシステムを受容し動作させるソフトウェア構造と言える。一階述語論理を使ったエンジンを備え、規則と事実を記述できる。エキスパートシステムの開発の道具であり、実際に使える初の宣言型言語であり[17]、人工知能開発用言語として広く使われた[18]。しかし、Prologは扱いやすい言語とは言えず、その論理の階層は人間の論理とは乖離している[19][20][21]

1980年代になると、実世界の問題を解く実用的ツールとしてエキスパートシステムが広く商用利用されるようになった。多くの大学が関連コースを開設し、フォーチュン500の大企業の3分の2が日常業務にこの技術を適用した[5][22]。日本の第五世代コンピュータのプロジェクトやヨーロッパでの研究など、世界的に関心を集めた。

エキスパートシステムの開発は、記号処理言語であるLISPPrologの開発で促進された。車輪の再発明を防ぐため、大規模エキスパートシステムの構築に特化したエキスパートシステムも作られた[23]

アーキテクチャ

ルールベースと知識ベース

エキスパートシステムでは、知識ベースは「もし…ならば…」という形式の自然言語の規則で表現される。例えば、次のような文である。

  • もしそれが生きているならば、それは死ぬ」
  • もし彼の年齢が既知ならば、彼の生年は(現在の年 - 彼の年齢)である」
  • もし細菌の種類が不確かでかつその細菌がグラム陽性でかつその有機体の形状が「桿状」でかつその細菌が好気性ならば、その細菌が「腸内細菌科」に属する可能性が高い (0.8)」[24]

このような定式化は日常の話し言葉にも通じる利点があり、計算機科学(一般にプログラムはコード化される)では非常に珍しい。規則はエキスパートシステムが利用する知識を表現している。規則の定式化には他のものもあり、その場合は日常の言語とは程遠く、計算機科学者にしか理解できない。規則のスタイルは推論エンジンのスタイルに合うように選択される。エキスパートシステム最大の問題は、この普段は無意識に専門家が使っている知識を集めることである。そのための方法論がいくつかあるが、その多くは計算機科学者のみが使用可能である。

推論エンジン