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