拡大版

インテリジェント・
コンピューティング⑨
本日のテーマ

プロダクションシステム


前向き推論
後向き推論
プロダクションシステム(復習)

プロダクションシステムとは


1973年,ニューウェル(Newell)によって提案される.
人間の問題解決の行動にまねた機構を計算機で実
現した.
推論エンジン

プロダクションシステムの
構造


記憶場所:長期メモリと短期
メモリをもつ.
推論場所:推論エンジンをもつ.
知識ベース
作業領域
推論エンジン(復習)



作業領域の状態を満足するルールを知識ベース
から獲得し,その中から一つのルールを選択して
実行する.
プロダクションシステムでは,前向き推論と後ろ向
き推論がある.
前向き推論


新しい事実が作業領域に加えられたとき,知識ベース
のルールの条件部と照合し,照合したルールの実行部
を結論として推論する方法である.
後向き推論

証明したい結論から始めて,それを結論づけるルール
と事実が存在するかを推論する方法である.
前向き推論

求める結果を得るまで,または使用できるルール
がなくなるまで,次の認識行動サイクルを繰り返す.
Step 1:照合(matching)
作業領域内の事実に適合する条件部をもつすべての
ルールの集合(競合集合)を求める.
Step 2:競合解消(conflict resolution)
競合集合の中から一定の選択基準に従って特定の
ルールを選択する.
Step 3:実行(action)
選択されたルールの結論部を実行し,作業領域の内
容を更新する.
競合解消



作業領域の事実と条件部が合致するルール
は複数個存在する.
ルールの複数個の同時処理は不可能である
ので,一つのルールを選択する必要がある.
競合解消とは,事実と条件部が合致する複数
個のルールから一つのルールを選択すること
を言う.
競合解消の方法

ルールの重要度


ルール条件部の詳細度


なるべく同じルールを使用しない.
差の小ささ


最近使用されたルールを優先する.
差の大きさ


条件部の記述(条件文)が長いものを優先する.
ルールの使用時刻


ルールの重要度の高いものを優先する.
有益なルールを多く使用する.
事実の生成時刻

作業領域に追加された事実の時刻が新しいものを優先する.
複数の競合解消法の適合


複数の競合解消を実行し,ルールが一つになった時
点で処理を終了する.また,競合集合が空になった
時点で処理を終了する.
一般的競合解消法・LEX戦略(Lexicographic Sort)
1. ルールの重要度の高いものを優先する.
2. 同じ重要度の中では,最近使用されたルールを優先する.
3. しかし,確率 p で,同じルールを使用しない.
4. あるいは,無作為に任意の組を選択する.
ただし,この戦略では,既に実行した組を競合集合から削除
しておく.
前向き推論の動作

動物園の柵の前で,ある動物(名前:太郎)を観察
する.
作業領域
D1
D2
D3
D4
D5
(太郎は体毛をもつ)
(太郎は鋭い歯をもつ)
(太郎は鋭い爪をもつ)
(太郎の体の色は黄褐色)
(太郎は黒い斑点をもつ)
推論エンジン
前向き推論の動作
知識ベース
R1
R2
¦
R9
If (Xは体毛をもつ) Then (Xは哺乳動物)
If (Xは授乳する) Then (Xは哺乳動物)
¦
¦
If (Xは肉食動物)(Xは黒い斑点をもつ)
(Xの体の色は黄褐色) Then (Xはチータ)
推論エンジン
知識ベース
R1
R2
R3
R4
R5
If
(Xは体毛をもつ)
Then (Xは哺乳動物である)を追加する.
If
(Xは授乳する)
Then (Xは哺乳動物である)を追加する.
If
(Xは飛ぶ)(Xは卵を産む)
Then (Xは鳥類である)を追加する.
If
(Xは翼をもつ)(Xはペンギンでない)
Then (Xは飛ぶ)を追加する.
If
(Xは哺乳動物である)(Xは肉を食べる)
Then (Xは肉食動物である)を追加する.
知識ベース
R6
R7
R8
R9
If
(Xは哺乳動物である)(Xは鋭い歯をもつ)
(Xは鋭い爪をもつ)
Then (Xは肉食動物である)を追加する.
If
(Xは哺乳動物である)(Xはひづめをもつ)
Then (Xは有帝動物である)を追加する.
If
(Xは肉食動物である)(Xは黒い縞をもつ)
(Xの体の色は黄褐色である)
Then (Xは虎である)を追加する.
If
(Xは肉食動物である)(Xは黒い斑点をもつ)
(Xの体の色は黄褐色である)
Then (Xはチータである)を追加する.
第1サイクル
推論エンジン
D1:(太郎は体毛をもつ)
①照合
②競合解消
R1:If (Xは体毛をもつ) Then (Xは哺乳動物)
③実行
太郎
③実行
D6:太郎は哺乳動物
③実行
第2サイクル
推論エンジン
D2:太郎は鋭い歯をもつ
D3:太郎は鋭い爪をもつ
D6:太郎は哺乳動物
①照合
②競合解消
R6:If (Xは哺乳動物)(Xは鋭い歯をもつ) (Xは鋭い爪をもつ)
Then (Xは肉食動物)
③実行
③実行
③実行
太郎
D7:太郎は肉食動物
第3サイクル
推論エンジン
D4:太郎の体の色は黄褐色
D5:太郎は黒い斑点をもつ
D7:太郎は肉食動物
①照合
②競合解消
R9:If (Xは肉食動物)(Xは黒い斑点をもつ)(Xの体の色は黄褐色)
Then (Xはチータ)
③実行
③実行
③実行
太郎
結論:太郎はチータ
問題:前向き推論

循環型の知識ベースのルールを作成しなさい.




If A Then B
If B Then C
If C Then A
事実の集合を用意し,前向き推論を実行しな
さい.
後向き推論


事実とルールから仮説が説明できるかを調べ,
仮説が完全に説明できるまで,認識行動サイク
ルを繰り返す.
ただし,同時に満たすべき仮説をAND関係とし,
仮説を説明するための候補ルール間はOR関
係とする.
認識行動サイクル
Step 1:照合(matching)
検証されていない一つの仮説を決定する.仮説に適合する結論
部をもつルール集合(競合集合)を求め,AND/OR木に付加する.
AND/OR木の仮説に適合しない親ルールは削除する.
Step 2:ルール選択(rule selection)
AND/OR木の競合集合からルールを一つ選択する.
Step 3:検証(verification)
選択されたルールの条件部の条件と作業領域の事実とを照合し,
条件が満足されているかを調べる.ルール内の全ての条件が満
足されていれば,その選択されたルールの結論部は検証される.
過去に遡って親ルールを検証を確認し,AND/OR木の根が検証
されれば,推論は成功となる.
後向き推論におけるAND/OR木
仮説:太郎はチータ
R9
太郎は肉食動物
太郎は黒い
斑点をもつ
太郎の体の
色は黄褐色
後向き推論におけるAND/OR木
仮説:太郎はチータ
②
太郎は肉食動物
R9
①
太郎は黒い
斑点をもつ
D5
太郎の体の
色は黄褐色
D4
後向き推論におけるAND/OR木
仮説:太郎はチータ
②
太郎は肉食動物
③
R5
太郎は哺
乳動物
太郎は肉
を食べる
R9
①
太郎は黒い
斑点をもつ
D5
太郎の体の
色は黄褐色
D4
後向き推論におけるAND/OR木
仮説:太郎はチータ
②
太郎は肉食動物
③
R5
太郎は哺
乳動物
R1
太郎は肉
を食べる
④
太郎は体毛
をもつ
D1
R9
①
太郎は黒い
斑点をもつ
D5
太郎の体の
色は黄褐色
D4
後向き推論におけるAND/OR木
仮説:太郎はチータ
②
太郎は肉食動物
③
R5
太郎は哺
乳動物
R1
太郎は肉
を食べる
検証できない
④
⑤
太郎は体毛
をもつ
D1
R9
①
太郎は黒い
斑点をもつ
D5
太郎の体の
色は黄褐色
D4
後向き推論におけるAND/OR木
仮説:太郎はチータ
②
①
R9
太郎は肉食動物
⑥
太郎は黒い
斑点をもつ
D5
太郎の体の
色は黄褐色
D4
③
R5
太郎は哺
乳動物
R1
太郎は肉
を食べる
検証できない
④
⑤
太郎は体毛
をもつ
D1
R6
太郎は哺
乳動物
太郎は鋭い
歯をもつ
D2
太郎は鋭い
爪をもつ
⑦
D3
後向き推論におけるAND/OR木
仮説:太郎はチータ
②
①
R9
太郎は肉食動物
⑥
太郎は黒い
斑点をもつ
D5
太郎の体の
色は黄褐色
D4
③
R5
太郎は哺
乳動物
R1
太郎は肉
を食べる
検証できない
④
⑤
太郎は体毛
をもつ
D1
R6
太郎は鋭い
歯をもつ
太郎は哺
乳動物
R1
D2
⑧
太郎は体毛
をもつ
D1
太郎は鋭い
爪をもつ
⑦
D3
全てが検証できた!!
故に,太郎はチータである.
後向き推論におけるAND/OR木
太郎はチータ
R9
太郎は黒い
斑点をもつ
太郎は肉食動物
D5
太郎の体の
色は黄褐色
D4
R6
太郎は哺
乳動物
太郎は鋭い
歯をもつ
D2
R1
太郎は体毛
をもつ
D1
太郎は鋭い
爪をもつ
D3
推論ネットワーク
推論ネットワークを用いて,質問に回答できる.
太郎はチータ
R9
データの必要性
太郎は肉食動物
「なぜ(太郎は肉食動物)を調べる
必要があるのか?」
R9
(太郎は黒い斑点をもつ)と(太郎の
体の色は黄褐色)が検証され,(太
郎は肉食動物)が検証されると,
チータであることが判定できるから.
太郎の体の
色は黄褐色
太郎は黒い
斑点をもつ
D5
D4
R6
太郎は哺
乳動物
太郎は鋭い
歯をもつ
太郎は鋭い
爪をもつ
D2
D3
R1
太郎は体毛
をもつ
D1
推論ネットワーク
推論ネットワークを用いて,質問に回答できる.
太郎はチータ
R9
結論の導出
太郎は肉食動物
「どのようにして(太郎は
肉食動物)を判定できたのか?」
R1,R6
太郎の体の
色は黄褐色
太郎は黒い
斑点をもつ
D5
D4
R6
太郎は哺
乳動物
事実(太郎は体毛をもつ)とルールR1
R1
から(太郎は哺乳動物)が検証され,
(太郎は鋭い歯をもつ),(太郎は鋭
太郎は体毛
い爪をもつ)と,ルールR6から,(太
をもつ
郎は肉食動物)が検証されるから.
太郎は鋭い
歯をもつ
太郎は鋭い
爪をもつ
D2
D3
D1
プロダクションシステムの特徴

作業領域の状況に適応したルールが選択できる.



プロダクションシステムは作業領域の状況に適応した
ルールを自動的に選択し,その競合集合から適切な
ルールを用いて推論する.
ルールの順番や関係を考慮する必要がないので,整
理されていない膨大な知識を取り扱うことができる.
ルールは互いに独立である.


ルールは条件と結論の関係を表現しているだけであり,
プログラムのような処理とデータとの関係を考慮する
必要はない.
ルールの追加,修正,削除が自由に行えるので,知識
の追加,修正,削除に容易に対応できる.