出力女風呂

Lecture 9 of Artificial Intelligence
Fuzzy Logic:
Human-like decision making
Produced by Qiangfu Zhao (Since 2008), All rights reserved ©
AI Lec09/1
Topics of this lecture
•
•
•
•
•
•
•
•
•
ファジィ集合の定義
メンバシップ関数
ファジィ集合の記述方法
ファジィ集合の演算
ファジィ数とその演算
拡張原理
ファジィルール
非ファジィ化
ファジィ制御
•
•
•
•
•
•
•
•
•
Definition of fuzzy set
Membership function
Notation of fuzzy set
Operations of fuzzy set
Fuzzy number and
operations
Extension principle
Fuzzy rules
De-fuzzification
Fuzzy control
Produced by Qiangfu Zhao (Since 2008), All rights reserved ©
AI Lec09/2
ファジィ理論とは?
• Fuzzyの反対言葉はcrispであり、前
者は曖昧さを許し、人間らしい判断が
できる;後者は真と偽の二極判断しか
できない。
• ファジィ理論は
– 1965年にZadeh先生に提案された。
– 1974年にMamdaniがスチームエンジン
の自動制御へ実用化された。
– 1987年に仙台市営地下鉄の自動運転制御に利用された。
• 1990-1991:日本発のファジィブーム
Produced by Qiangfu Zhao (Since 2008), All rights reserved ©
AI Lec09/3
通常の集合ファジィ集合
• 全体集合Xにおける集合A
とは、A={ x | x in X}で定義
される。xはAのメンバーで
あるか、ではないか、はっ
きりしている。
• 通常の集合のメンバシップ
関数が取りうる値は0か1
の2値である。
• 通常集合の境界ははっきり
している。
• ファジィ集合Aとは、Xにあ
るすべてのxはAに属す可
能性がある。その可能性の
度合いを測るものはメンバ
シップ関数(membership
function)という。
• ファジィ集合のメンバシップ
関数が取り得る値は[0,1]に
ある実数である。
• ファジィ集合の境界はあい
まいである。
• 若い人の集合、お年寄りの集合、綺麗な女性の集合
• お風呂のお湯は熱い、ちょうどいい、ぬるいなど
Produced by Qiangfu Zhao (Since 2008), All rights reserved ©
AI Lec09/4
ファジィ集合の記述方法
• ファジィ集合Aのメンバシップ関数: µA: X[0,1]
• 全体集合X={x1,x2,…,xN}とし、Aは以下のように
記述される:
A = µA(x1)/x1+ µA(x2)/x2+…+ µA(xN)/xN
= ΣµA(xi)/xi
• ただし、/ は分離記号で、+ は“または(OR)”を表す。
• 割り算と足し算に間違えないでください!
Produced by Qiangfu Zhao (Since 2008), All rights reserved ©
AI Lec09/5
ファジィ集合の演算
相等 : A = B ⇔ µ A ( x ) = µ B ( x )
包含 : A ⊂ B ⇔ µ A ( x ) ≤ µ B ( x )
補集合 : A ⇔ µ A ( x ) = 1 − µ A ( x )
和集合 : A ∪ B ⇔ µ A∪ B ( x ) = µ A ( x ) ∨ µ B ( x )
= max(µ A ( x ), µ B ( x ))
共通集合 : A ∩ B ⇔ µ A∩ B ( x ) = µ A ( x ) ∧ µ B ( x )
= min(µ A ( x ), µ B ( x ))
Produced by Qiangfu Zhao (Since 2008), All rights reserved ©
AI Lec09/6
図で示すファジィ集合の演算
Produced by Qiangfu Zhao (Since 2008), All rights reserved ©
AI Lec09/7
ファジィ集合の計算例
• 全体集合X={雅弘,つよし,卓哉,五郎,慎吾}
• A=“若い”, B=“背が高い”
• A=0.4/雅弘+0.6/つよし+0.8/卓哉+1.0/五郎+0.9/慎吾
• B=0.3/雅弘+0.5/つよし+0.9/卓哉+0.6/五郎+1.0/慎吾
• A∪B=0.4/雅弘+0.6/つよし+0.9/卓哉+1.0/五郎+1.0/慎吾
• A∩B=0.3/雅弘+0.5/つよし+0.8/卓哉+0.6/五郎+0.9/慎吾
Produced by Qiangfu Zhao (Since 2008), All rights reserved ©
AI Lec09/8
ファジィ数
• ファジィ数は数直線上のファジィ集合で、以下の3つの性
質を満足する(D. Dubois and H. Pradeより):
(1)連続性:Eλ = {x | µ A ( x) ≥ λ}が閉空間である。
(2)正規性:µ A ( x) = 1となるxが存在する
(3)凸性:µ A (λx1 + (1 − λ ) x2 ) ≥ µ A ( x1 ) ∧ µ A ( x2 ),
x1 , x2 ∈ X ; λ ∈ [0,1]
• ファジィ数の例:
– 会津若松から東京までは約300kmの距離があり、
電車で行く場合約3時間かかり、料金は約8千円です。
Produced by Qiangfu Zhao (Since 2008), All rights reserved ©
AI Lec09/9
拡張原理
Superior 上限
• 数直線上の数x1,x2による2項演算x1□x2を拡張し、ファジィ
数A, Bの2項演算A□Bを次のように定義する:
C = A□B : µ A□B ( y ) = sup {µ A ( x1 ) ∧ µ B ( x 2 )}
x1□ x 2 = y
• 2項演算は、加法、減法、乗法、除法などがある。
• 例
約2
約4
約6
約6はもっと曖昧となっている!
1
2
3
4
5
6
7
8
9
10 11 12
Produced by Qiangfu Zhao (Since 2008), All rights reserved ©
AI Lec09/10
ファジィルール
特徴の数 : n
ルールの数 : r
ファジールールの一般的形式:
Rs : if ( x1 = Fs1 ∧ x2 = Fs 2 ∧  ∧ xn = Fsn )then( y = Bs )
但し、Bs , Fsj , s = 1,2,  , r ; j = 1,2,  , n, はファジー数の
言語的値(linguistic value)或はラベルである。
典型的言語的値は、very big, big, normal, small, very small
などがある (big ↔ small; long ↔ short; fast ↔ slow)
Produced by Qiangfu Zhao (Since 2008), All rights reserved ©
AI Lec09/11
ファジィルールの例
Rs : if ( x1 = VeryBright ∧ x2 = VeryBright ∧
x3 = VeryDark ∧ x4 = VeryDark )
then( y = GoForwardQuickly )
Mobile
Robot
VeryDark
Dark
Bright VeryBright
Produced by Qiangfu Zhao (Since 2008), All rights reserved ©
AI Lec09/12
ファジィルールの照合
入力データx = ( x1* , x2* ,  , xn* )に対して、s番目の
ルールの条件部と照合し、その類似度は以下の
ように与える:
Similarity ( x, Rs ) = µ Fs1 ( x1 ) ∧ µ Fs 2 ( x2 ) ∧  ∧ µ Fsn ( xn )
但し、∧ は min で計算される。
Produced by Qiangfu Zhao (Since 2008), All rights reserved ©
AI Lec09/13
マムダニの推論法
入力データx = ( x1* , x2* , , xn* )に対して、その結果
を数値で与えたい場合、以下の方法を使う:
1)結果のファイジー集合B *のメンバシップ関数
を以下のように求める
µ B* ( y ) = µ R1 ( x) ∨ µ R2 ( x) ∨  ∨ µ Rr ( x)
r
= ∑ ( µ Fs1 ( x1 ) ∧ µ Fs 2 ( x2 ) ∧  ∧ µ Fsn ( xn )) ∧ µ Bs ( y )
j =1
但し、Σは max の ∨ 演算である。
Produced by Qiangfu Zhao (Since 2008), All rights reserved ©
AI Lec09/14
非ファジィ化
2)入力xに対する具体的な出力は以下の式で求める:
b
*
∫
=
Y
y × µ B* ( y )dy
∫
Y
µ B ( y )dy
*
• 最終結果は、ファジィ集合B*の重心である。
• 重心の代わりに、中央値、最大値などを使うこともできる。
• ファジィ結果の具現化を非ファジィ化という。
Produced by Qiangfu Zhao (Since 2008), All rights reserved ©
AI Lec09/15
実例(教科書から)
• 右の図は洗濯機の断面図で
ある。
• 洗濯の時間をファジィルール
で制御したい。
• 直感として
– 汚れが酷いとき、洗濯時間を長
くする。
– 脂汚れの場合、洗濯時間を延
ばす。
• 数値的には、排水弁から出
る水の透過度とその飽和時
間で測ることができる。
Produced by Qiangfu Zhao (Since 2008), All rights reserved ©
AI Lec09/16
洗濯水の透過度の変化
Produced by Qiangfu Zhao (Since 2008), All rights reserved ©
AI Lec09/17
ファジィルール
• 知識
– 脂汚れの場合は、泥汚れよりも洗濯
時間を長くする。
– 酷い汚れの場合は洗濯時間を長くす
る。
• ファジィルール
– Rule1: If(T=Big AND V=Small)
Then t=VeryBig
– Rule 2: If(T=Big AND V=Medium)
Then t=Big
但し、Tは飽和時間、Vは水の透過度、tは洗濯時間である
Produced by Qiangfu Zhao (Since 2008), All rights reserved ©
AI Lec09/18
結果のメンバシップ関数
T = 10分, V = 30%とし、結果のメンバシップ関数は
µ B (t ) = ( µ Big (10) ∧ µ Small (30) ∧ µVeryBig (t )) ∨
( µ Big (10) ∧ µ Medium (30) ∧ µ Big (t )) となる
Produced by Qiangfu Zhao (Since 2008), All rights reserved ©
AI Lec09/19
ファジィ制御の問題点
• ファジィ制御は、人間の知識を基に、人間のように
制御しているが、その性能はメンバシップ関数の定
義に依存する。
• 具体的には、メンバシップ関数の形、中心値の位置
などは、別の方法で調整しないといけない。
• 調整(Tuning)する方法としては、進化計算やニュー
ラルネットなどの方法がある。
Produced by Qiangfu Zhao (Since 2008), All rights reserved ©
AI Lec09/20
今週の課題 (1)
• 洗濯機の例をプログラムで
実装し、TとVの全ての値に
ついてtを求めよ.
– 0 ≦ T ≦ 100 [分]
– 0 ≦ V ≦ 100 [%]
• メンバシップ関数の設定は
以下である.
– 表の値をもとにした(2
等辺)三角形とする.
変数 言語的値
(ラベル)
中心値
幅
T
Big
15
10
V
Small
20
40
V
Medium
40
40
t
Big
40
40
t
VeryBig
60
20
(左半分だけ
とする)
Produced by Qiangfu Zhao (Since 2008), All rights reserved ©
AI Lec09/21
今週の課題 (2)
• 課題(1)で得られた結果をgnuplotを使って、3次元図形にプ
ロットし、保存せよ.
• ヒートマップのようにとしてプロットすると見やすくてよい.
• ただし、ファイル名は`plot.png`とし、それぞれの軸は以下の
ようにする.
– (X, Y, Z) = (T, V, t)
• また、図形からtと(T, V)の関係について考察し、
`summary_09.txt`へ書け.
Produced by Qiangfu Zhao (Since 2008), All rights reserved ©
AI Lec09/22
今週の課題(古いバージョン)
• 洗濯機の例をCプルグラムで実
現し、TとVの全ての値に対して、
t を求めよ。但し、Tの範囲は
[0,100] (分)で、Vの範囲は
[0,100] (%)とする。
• すべてのファジィ数のメンバシッ
プ関数は2等辺三角形で、右の
ように定義される。
• 求めた結果をいままで勉強した
図形ソフトで描け。3次元図形と
なる。この図形から、洗濯時間と
(T, V)の関係を議論せよ。
• Tの言語的値「Big」の中心値は
15で、幅は10である。
• Vの言語的値「Small」の中心値
は20で、幅は40である。
• Vの言語的値「Medium」の中心
値は40で、幅は40である。
• tの言語的値「Big」の中心値は
40で、幅は40である。
• tの言語的値「VeryBig」の中心値
は60で、幅は20(左半分だけ)で
ある。
Produced by Qiangfu Zhao (Since 2008), All rights reserved ©
AI Lec09/23
今週のクイズ
(1) 8ページの例にあるファジィ集合AとBの補集合をそれぞ
れ求めなさい。
(3) センサ入力の言語的値の定義(allセンサ共通):
VeryDark=0, Dark=4, Bright=7, VeryBright=10
各言語的値のメンバーシップ関数はページ12のように
定される。センサの入力:
(2) 拡張原理を利用して、ファジィ数約2と約3から約5のメン
バーシップ関数を求め、その略図を書け。
x1=9, x2=9.5, x3=1, x4=2
で与えられた場合、入力と以下のファジィルールの条
件部との類似度を求めよ。
約2 約3
Rs : if ( x1 = VeryBright ∧ x2 = VeryBright ∧
?
x3 = VeryDark ∧ x4 = VeryDark )
1
2
3
4
5
6
7
8
9 10 11 12
then( y = GoForwardQuickly )
Produced by Qiangfu Zhao (Since 2008), All rights reserved ©
AI Lec05/24