知識表現

Download Report

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)
xyz.[ 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