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
© Copyright 2024 Paperzz