知識表現 知識の表現形式 宣言的表現 手続き的表現 プロダクション・ルール フレーム 意味ネットワーク
知識 知識の種類 宣言的知識 : “what”に関する知識 手続き的知識 : “how”に関する知識 加減算をする機械である 加減数に相当する個数の珠を移動する
知識表現 知識の表現形式 宣言的表現 モジュール性に優れた 静的表現 手続き的表現 処理の効率を重視した 動的表現 宣言的知識 手続き的知識
例 足し算 2+3=5 s(s(0)) s(s(s(0))) 自然数 記号表現 1 s(0) 2 s(s(0)) 3 s(s(s(0))) 1 s(0) 2 s(s(0)) 3 s(s(s(0))) s(s(0)) s(s(s(0))) ・・・ ・・・
例 足し算 2+3=5 s(s(0)) s(s(s(0))) s(0) s(s(s(s(0)))) 自然数 記号表現 1 s(0) 2 1 s(0) 2 s(s(0)) 3 s(s(s(0))) s(s(0)) s(s(s(0))) s(0) s(s(s(s(0)))) ・・・ ・・・
例 足し算 2+3=5 s(s(0)) s(s(s(0))) s(0) s(s(s(s(0)))) (0) s(s(s(s(s(0))))) 自然数 記号表現 1 s(0) 2 s(s(0)) 3 s(s(s(0))) s(s(0)) s(s(s(0))) s(0) s(s(s(s(0)))) ・・・ ・・・ (0) s(s(s(s(s(0)))))
例(手続き的表現) LISPによる表現 (s (s (s (s (s (0)))))) x=(s (s (0))) y=(s (s (s (0)))) (defun plus (x y) (cond ((null (cdr x)) y) (t (plus (cadr x) (list ’s y))) ) ) x=(s (0)) y=(s (s (s (s (0))))) x=(0) y=(s (s (s (s (s (0))))))
例(宣言的表現) 論理式による表現 2+3=? 5-2=?
宣言的知識表現 一階述語論理式による表現 プロダクション・ルールによる表現 フレームによる表現 意味ネットワークによる表現
プロダクション・ルール if-then型の知識表現単位 (例) ルール名 if 条件1, 条件2, ・・・ P1 if (<x> is a bird) (<x> cannot fly) then (<x> is a penguin)
プロダクション・システム ルール集合(PM) P1 if (<x> has wings) then (<x> is a bird) P2 if (<x> is a bird) (<x> cannot fly) then (<x> is a penguin) P3 if (<x> is a bird) (<x> is yellow) then (<x> is a canary) インタプリタ(PSI) 作業記憶(WM) (John has wings) (John is yellow) 外部世界
認識・行動サイクル 照合 競合解消 行動 PM WM if C1 then A1 if C1 C2 then A2 A1=(make C5) C1 C3 C4
認識・行動サイクル 照合 競合解消 行動 PM WM if C1 then A1 if C1 C2 then A2 C1 C3 C4 C5
競合解消戦略 以前に選択されたルールは再び選択しない. ⇒ 無限ループを防ぐ. WM内の新しく追加された要素と照合したルールを選択する. ⇒ 無限ループを防ぐ. WM内の新しく追加された要素と照合したルールを選択する. ⇒ 縦形探索に相当する. 条件部の記述が最も詳細なルールを選択する.
照合の効率化 Reteアルゴリズム(Forgy,1982) P1 if C1 C2 then C3 P2 if C2 C3 then C4 P3 if C2 C3 C4 then C5 C1? C2? C3? C4? L R L R A1 A2 R L A3 P1 P2 P3
照合の効率化 C2 P1 if C1 C2 then C3 P2 if C2 C3 then C4 P3 if C2 C3 C4 then C5 C1? C2? C3? C4? L R L R A1 A2 R L C2 C3 A3 P1 P2 P3
照合の効率化 C2 P1 if C1 C2 then C3 P2 if C2 C3 then C4 P3 if C2 C3 C4 then C5 C1? C2? C3? C4? L R L R A1 A2 R L C2 C3 A3 P1 P2 P3
照合の効率化 C3 P1 if C1 C2 then C3 P2 if C2 C3 then C4 P3 if C2 C3 C4 then C5 C1? C2? C3? C4? L R L R A1 A2 R L C2 C3 A3 P1 P2 P3
照合の効率化 C3 P1 if C1 C2 then C3 P2 if C2 C3 then C4 P3 if C2 C3 C4 then C5 C1? C2? C3? C4? L R L R A1 A2 R L C2 C3 A3 P1 P2 P3
照合の効率化 P1 if C1 C2 then C3 P2 if C2 C3 then C4 P3 if C2 C3 C4 then C5 L R L R A1 A2 R L C2 C3 A3 P1 P2 P3
照合の効率化 C4 P1 if C1 C2 then C3 P2 if C2 C3 then C4 P3 if C2 C3 C4 then C5 C1? C2? C3? C4? L R L R A1 A2 R L C2 C3 C4 A3 P1 P2 P3
照合の効率化 C4 P1 if C1 C2 then C3 P2 if C2 C3 then C4 P3 if C2 C3 C4 then C5 C1? C2? C3? C4? L R L R A1 A2 R L C2 C3 C4 A3 P1 P2 P3
照合の効率化 P1 if C1 C2 then C3 P2 if C2 C3 then C4 P3 if C2 C3 C4 then C5 L R L R A1 A2 R L C2 C3 C4 A3 P1 P2 P3
ルールベース・プログラミング ルールの書式統一 OPS(Official Production System) 作業記憶要素の記述 ルールの記述 (クラス名 ^属性1 値1 ・・・ ^属性n 値n) (P P5 (履修 ^科目名 〈科目〉 ^状態 未履修) (必修 ^科目名 〈科目〉) → (make 再履修 ^科目名 〈科目〉 ^必要 有) )
エキスパート・システム 例: MYCIN(診断),PROSPECTOR(探鉱) DENDRAL(化合物構造解析)など 作業記憶 知識ベース 事実 中間結果 ルール 推論機構 (推論エンジン) ユーザインタフェイス
フレーム 人間の認知活動の特徴 基本構造 トップダウン処理 プロトタイプの利用 frame slot1: $VALUE: $DEFAUT: $REQUIRE $IF-ADDED $IF-REMOVED $IF-NEEDED 人間の認知活動の特徴 トップダウン処理 プロトタイプの利用 基本構造 frame 付加手続き slot1: (facet1: data1 ・・・) (facet2: data1 ・・・) IS-A INST HAS-A slot2: (facet1: data1 ・・・) (facet2: data1 ・・・)
例 ANIMAL (animal (num-legs ($DEFAULT 4)) (age ($IF-NEEDED calculate-age)) ) HUMAN (human (IS-A ($VALUE animal)) (num-legs ($VALUE 2)) (height ($DEFAULT 170)) (weight ($DEFAULT 60)) ) TARO ・太郎は2000年生まれである. (Taro (INST ($VALUE human)) (year-of-birth ($VALUE 2000)) )
例 ANIMAL (animal (num-legs ($DEFAULT 4)) (age ($IF-NEEDED calculate-age)) ) HUMAN (human (IS-A ($VALUE animal)) (num-legs ($VALUE 2)) (height ($DEFAULT 170)) (weight ($DEFAULT 60)) ) TARO ・太郎は2000年生まれである. (Taro (INST ($VALUE human)) (year-of-birth ($VALUE 2000)) ) ・太郎の年齢は?
例 ANIMAL (animal (num-legs ($DEFAULT 4)) (age ($IF-NEEDED calculate-age)) ) HUMAN (human (IS-A ($VALUE animal)) (num-legs ($VALUE 2)) (height ($DEFAULT 170)) (weight ($DEFAULT 60)) ) TARO ・太郎は2000年生まれである. (Taro (INST ($VALUE human)) (year-of-birth ($VALUE 2000)) ) ・太郎の年齢は? ・太郎の身長は?
意味ネットワーク 知識の構造的表現 基本要素 〈概念 属性 値〉 動物 IS-A 節点 有向枝 人間 (例)
例 animal eat fly bird dog run yellow canary chihuahua spitz not-fly ACT animal eat IS-A IS-A ACT ACT fly bird dog run IS-A IS-A IS-A IS-A COLOR yellow canary chihuahua spitz ACT not-fly penguin
意味ネットワーク上の推論 属性の継承 animal eat fly bird ペンギンは飛ぶか? yellow canary NO ACT animal eat IS-A ACT 属性の継承 fly bird IS-A IS-A ペンギンは飛ぶか? COLOR yellow canary NO ACT not-fly penguin
意味ネットワーク上の推論 属性の継承 animal eat fly bird カナリアは飛ぶか? yellow canary YES ACT animal eat IS-A ACT 属性の継承 fly bird IS-A IS-A カナリアは飛ぶか? COLOR yellow canary YES ACT not-fly penguin
多重継承の問題 elephant gray royal elephant write Clyde クライドの色は? COLOR IS-A
知識の表現形式と推論形式 手続き的パラダイム 宣言的パラダイム 制約的パラダイム 手続き 逐次的評価 ルール フレーム 述語論理 制約式 逐次的評価 手続き的プログラミング 前向き,後向き連鎖 ルールベース・プログラミング 継承,付加手続き オブジェクト指向プログラミング 演繹 論理プログラミング 制約伝播,制約解消 制約論理プログラミング