(11)Production_System

Download Report

Transcript (11)Production_System

認知科学
思考のコンピュータシミュレーション(1)
2015年1月15日(木)
今日の内容
知識表現と利用
1. 知識を用いた問題解決
2. ルールによる知識表現
1. プロダクションシステム
2. プロダクションルール
3. 競合解消
人工の専門知識と
人間の専門知識
人工の知識
長
所
短
所
1.
2.
3.
4.
5.
1.
2.
3.
4.
5.
不変である
移植しやすい
ドキュメント化しやすい
一貫性がある
安価である
創造的でない
適応性がない
記号処理が中心
焦点が狭い
専門知識に限られる
人間の知識
短
所
長
所
1.
2.
3.
4.
5.
1.
2.
3.
4.
5.
変化しやすい
移植しにくい
ドキュメント化しにくい
一貫性がない
高価である
創造的である
適応性がある
感覚処理も可
焦点が広い
常識を使う
人工の知識の利点の活用
1.
柔軟な知識表現の実現
知識の獲得と知識の管理→○宣言的知識
問題解決の観点→○手続き的知識
2. 問題解決機能の向上
3. あいまいな知識の取り扱い
4. 対象の構造の表現
5. 知識獲得の実現
知識モデル
知識の表現方法と利用方法を整理したもの
1.
論理モデル
2. 手続きモデル
3. プロダクションモデル
4. 意味ネットワークモデル
5. フレームモデル
ルールによる知識表現
もし~ならば・・・を実行せよ
ルール(規則)に基づく問題解決の基本的形式
日常生活のさまざまな場面で人々が行う判断
専門的作業において専門家が行う判断
ルールの記述形式を利用して問題解決を行うシス
テム ⇒ プロダクションシステム
ルールベース:プロダクションルールを格納するDB
ワーキングメモリ:プロダクションルールとファクトが照合
される一時的記憶領域
プロダクションシステム(PS)
人間の認知のモデルを記述するための知識処理システムの知
識モデルとして発展(NewellやSimonら)
プロダクションシステムの利点
1.
2.
3.
知識がルールの形式で表現されているため,利用者にとって自然
で理解しやすい.
宣言的知識(条件・ファクト)と手続き型知識(行動)の相互作用を
記述できる.
ルールの記述は互いに独立であり,相互干渉が少ないため,知識
の変更,追加,削除が比較的簡単に行える.
プロダクションシステムの欠点
1.
2.
問題解決の制御構造がわかりにくい.すなわち問題解決を行って
いく順序がわかりにくく,アルゴリズム的知識の記述には向かない.
すべての推論を「照合-行動」のサイクルの繰り返しで行うため,
実行効率が悪い.
PSの基本構成
ルールベース
プロダクションルールと呼ば
れる「条件-行動」形式の知識
を蓄積・管理する.
ワーキングメモリ
ファクトと呼ばれるデータを一
時的に記憶・管理する.ファク
トはプロダクションルールの条
件部と同じ形式をしている.
ルールインタプリタ
プロダクションルールの解釈
と実行を管理する制御機構.
if 条件C1 then 行動A1
if 条件C2 then 行動A2
専門家
問題領域
知識
ファクトF1
ファクトF2
利用者
問題
解
知識獲得
学習
ルールベース
ワーキングメモリ
ルールインタプリタ
人間の記憶モデルのアナロジー
人間の記憶のモデル
プロダクションシステム
専門家
刺激
反応
学習
適応
問題領域
知識
利用者
問題
解
知識獲得
学習
短期記憶
長期記憶
推論機構
ルールベース
ワーキングメモリ
ルールインタプリタ
PSの基本動作
1. 問題がWMに書き込まれる
と,これをトリガーとしてRIが
動作を開始する.
2. RIはRBに格納されている問
題解決の知識を適用しながら
中間結果をWMに記録し,こ
れを繰り返すことにより最終
的に解を得る.
3. WMに得られた解はユーザイ
ンタフェースを通して利用者に
表示される.
if 条件C1 then 行動A1
if 条件C2 then 行動A2
専門家
問題領域
知識
ファクトF1
ファクトF2
利用者
問題
解
知識獲得
学習
ルールベース
ワーキングメモリ
ルールインタプリタ
ルールインタプリタの動作
RIはWMに問題がファクト
の形式で与えれると,解が
生成されるまで,条件照合,
競合解消,行動の3つの
フェーズを繰り返す.
このRIの動作は認識-行
動サイクルと呼ばれている.
条件照合
競合解消
行動
条件照合
1.
2.
WMのファクトと呼ばれるデータ形式と,
RBにあるプロダクションルールの条件
部のデータ形式を順次照合していく.
データ形式が一致したルールを選び出
していく.
ルールの条件部とファクトのデータ形
式が一致することを“マッチする”という.
条件照合
競合解消
一般には複数のルールがWMのファク
トのどれかとマッチする.
このファクトとマッチしたルールの集合
を競合集合という.
行動
競合解消
競合集合の中から,実際
に実行するプロダクション
ルールを1つだけ選び出す
操作.
条件照合
この選び方によって問題解
決の種類や能力の違いが
決定される.
競合解消
このルールの選択の仕方
を競合解消戦略と呼ぶ.
行動
後に説明する
行動
競合解消フェーズで選択され
た1つのルールの行動部の実
行を行う.
条件照合
これを“ルールの発火”という.
競合解消
行動部は基本的にWMの内容を書
き換えたり,追加したり,除去したり
することが主であるが,その他入出
力など外部環境とのインタフェースを
定義することもできる.
行動
競合解消戦略
プロダクションシステムでは,ルールの数が多くなると各認
識-行動サイクルでファクトとマッチすることによって発火可
能となるルールが複数存在する可能性が生じる.
ルールの選択の仕方によって,そのPSの推論の性質や能
力が異なる.
ファーストマッチ
ルール 優先順位
最 新 優 先
リフラクトリネス
詳 述 優 先
ルール番号(R
Bの中の並び
順)の小さい
ルールを優先し
て選択する.
各ルールにあら
かじめ優先順位
を指定しておき,
競合集合の中
で最高の優先
順位をもつルー
ルを選択する.
競合集合の中
から,WMに書
込み・修正され
たた順序が最も
新しいファクトと
マッチ し たルー
ルを選択する.
1つのルールは
1つのファクトに
対して一度しか
発火できない.
同じルールが発
火し続ける無限
サイクルを防ぐ.
競合集合の中
で最も複雑な条
件部をもつルー
ルを選択する.
ファクトのデータ形式
ファクトのデータ形式は,オブジェクト・属性・属性値
(object-attribute-value)の3種類のデータからな
る.⇒OAV形式
オブジェクト:記述したい対象を表す文字列(シンボル)
属性:その対象がもつべき性質の名前
属性値:その対象が属性に関してもつ固有の値
A
(積み木: 寸法 10cm)
(積み木: 名前 A: 寸法 10cm: 場所 机の上)
プロダクションルールのデータ形
式
プロダクションルールのデータ形式は条件部のデータと行動部のデータ
に分けられる.
if C1,C2,・・・,Cn then A1,A2,・・・,Am
Ci=(オブジェクト :属性1 属性値1 ・・・ :属性n 属性値n)
各条件Ciはファクトと似たOAV形式で表現される.
条件記述では,属性値は数値や文字列などの定数以外にも,関係式や
変数を取ることができる.
関係式として(>3)などの不等式もOK.
変数xは定数と区別するために?をつけて?xと表す.
条件とファクトのマッチ
条件Ci は次の条件を満足するときに「真」の値をもつ
という.
① Ci と同じOAV形式がWMに存在する.
② Ci の属性値に変数が含まれている場合,その変数
以外のOAV形式が一致するファクトがWMに存在
する.このとき,その変数は対応する属性値の任意
の値にマッチし,その変数はその値に束縛される.
条件Ci を真とするファクトFj がWMに存在するとき“Ci
はFj にマッチする”という.
その他のマッチなど
否定の表現~Ci
Ci にマッチするOAV形式がWMに存在しないときに真
になる.
Ci =?f という書き方
条件Ci とマッチしたファクトを参照するための変数(ファ
クト変数?f)
ファクトの属性attの値を参照したいとき
?f:att
条件部の各条件C1,C2,・・・,Cnが同時になったとき
(C1∧C2∧・・・∧Cn)が真になったとき,そのルールは
“発火可能である”といい,競合集合に登録される.
行動フェーズでの行動 Ai
(基本操作)
競合解消フェーズで競合集合からただ1つのルー
ルが選択され,行動フェーズに選択されたルール
の行動部の各行動Ai が順に実行される.
OAV形式
行動Ai のデータ形式: (操作 データ形式)
プロダクションルール
if
(make OAV形式)
(remove ?f
WMにOAV形式
)に追加
WMからそのルールのCiとマッチ
then するファクト?f を取り除く.
(make (obj: att v1))
(obj: att v1)
ルールベース
プロダクションルール
if
Ci = ?f
then
(modify ?f: att v1)
そのルールの条
件Ci とマッチした
WMのファクト ?f
の属性1~属性nの
属性値を属性値1
~属性値nに変更
(obj: att x)
xをv1に書き換える
ルールベース
(modify ?f : 属性1 属性値1 ・・・?f : 属性n 属性値n)
例題:車の運転のプロダクション
ルール
車Aを運転して道路Pから交差点Q
に進入して右折し,道路Rを走行す
るための運転に関する知識をプロ
ダクションルールで表現せよ.
ルールとしては次のようなものを考
える.
①
②
③
④
⑤
信号が赤か黄であれば停止
信号が青であれば交差点に進入
交差点Qでは右折
対向車があれば停止
対向車がなければ進行
対向車
交差点Q
道路R
車A
道路P
記号の定義
道路の「状況」と「車」の操作を次のようなOAV形式
のファクトで記述する.
(状況 :位置 p :信号 s : 対向車 q)
(車 :操作 h :方向 d)
位置pの値: 「道路P」,「交差点Q」,「道路R]
信号sの値: 「赤」,「黄」,「青」
対向車qの値: 「有」,「無」
操作hの値: 「進行」,「停止」
方向dの値: 「直進」,「右折」,「左折」
ただし信号の色と対向車の状況を表す値はシステム外部から制御され
ているものとする.
知識①~⑤から得られ
たルール(1)
r0
r1
r2
r3
(start)
初期状態を与えるためのルール
→
(make (状況 :位置 道路P :信号 青 :対向車 有))
(make (車 :操作 進行 :方向 直進))
(状況 :位置 道路P :信号 赤 or 黄)
(車 :操作 進行) = ?f
→
(modify ?f:操作 停止)
(状況 :位置 道路P :信号 青) = ?f
(車 :操作 進行)
→
(modify ?f:位置 交差点Q)
(状況 :位置 交差点Q)
(車 :方向 直進) = ?f
→
(modify ?f:方向 右折)
知識①~⑤から得られ
たルール(2)
r4
r5
r6
(状況 :位置 交差点Q :対向車 有)
(車 :操作 進行 :方向 右折) = ?g
→
(modify ?g:操作 停止)
(状況 :位置 交差点Q :対向車 無) = ?f
(車 :操作 停止 :方向 右折) = ?g
→
(modify ?g:操作 走行 ?g:方向 直進)
(modify ?f:位置 道路R)
(状況 :位置 交差点Q :対向車 有)
(車 :操作 停止 :方向 右折)
→
動作を行わないことを表す
(no-operation)
シミュレーション(1)
時刻
t=0
t=1
t=2
t=3
t=4
ワーキングメモリの内容(ファクト)と直前に発火したルール
(start)
ルール r0 を適用
(状況 :位置 道路P :信号 青 :対向車 有)
(車 :操作 進行 :方向 直進)
ルール r2 を適用
(状況 :位置 交差点Q :信号 青 :対向車 有)
(車 :操作 進行 :方向 直進)
ルール r3 を適用
(状況 :位置 交差点Q :信号 青 :対向車 有)
(車 :操作 進行 :方向 右折)
ルール r4 を適用
(状況 :位置 交差点Q :信号 青 :対向車 有)
(車 :操作 停止 :方向 右折)
シミュレーション(2)
時刻
t=5
t=iー1
t=i
ワーキングメモリの内容(ファクト)と直前に発火したルール
ルール r6 を適用
(状況 :位置 交差点Q :信号 青 :対向車 有)
(車 :操作 停止 :方向 右折)
ルール r6 を適用
(状況 :位置 交差点Q :信号 青 :対向車 無)
(車 :操作 停止 :方向 右折)
ルール r5 を適用
(状況 :位置 道路R :信号 青 :対向車 無)
(車 :操作 進行 :方向 直進)
この例題では1つの状
態で1つのルールしか
t=5のあと,対向車が「有」の間はルールr6 が発火し続けるが,t=t-1
で対向車が
「無」になると,t=i でルールr5 が発火し,車は道路Rに進む. マッチしない.
→競合解消の処理の必
要がない
脳内シミュレーション
1. 「ハノイの塔」に適用されるプロダクションルールを記
述してみよう.
2. どんなオペレータがあるか検討してみよう.
3. 必要なデータ形式は何かを検討してみよう.
4. どんな競合解消の方法が良さそうか考えてみよう.
5. t=0から各ステップのWMの状態を記述してみよう.
思考過程のモデル化 → 強い人工知能(AI)の実装