オープンキャンパス2025/6/15
ファジィ推論はファジィ命題とファジィ論理による推論システムである。ファジィ集合にもとづいて構築されたあいまいな命題とあいまいな前提からあいまいな結論を導く。たとえば「春である」、「春ならば花が咲く」という命題はどちらもあいまいである。人はこれらの知識を持って、4月頃に花を見れば、今は春だから花が咲いたと考える。計算としては、ある日において春であるかどうか真理値を考え、それをもとに「花が咲く」かどうかの真理値を与えるということである。
ファジィ論理は真理値の与え方や、論理演算の与え方に様々なバリエーションがある。このためファジィ推論も様々な方式が提案されており、全体像の把握は困難である。
ここでは、ファジィ制御や様々なファジィシステムの実現で頻繁に用いられる、マムダニ型の前方推論とその派生に絞って説明を行う。とくに、高木-菅野-姜型のファジィ推論(TSK fuzzy reasoning : Takagi-Sugeno-Kang)とその変形を扱う。
ファジィ述語命題は、暑い(x) のような、変量xをもった言明である。暑い(x)は温度xの数値によりその真理値が変化する。このとき、暑いという概念はあいまいであり、真理値は真偽= 0, 1 の二値ではなく、その中間を連続的に持つファジィ真理値(多値真理値)である。
また、同時に温度xの軸の上に、「暑い」というファジィ集合を考えることができる。たとえば μ_{暑い}(30) = 1.0 とかけば30度が、あいまいな集合「暑い」に含まれる度合いが 1.0 である、となる。
このとき、ファジィ述語命題 暑い(x) を、ファジィ集合 暑い :μ_{暑い}(x) によって定義する。暑いという命題が成り立つかどうかは、xが対応するファジィ集合「暑い」の要素となるかどうかと一致していることになる。
ここから、xのファジィ集合に対するメンバーシップ値を、対応するファジィ命題の真理値と同一視することとする。
マムダニ型のファジィ推論とその派生では、ファジィ述語命題を用いてファジィ推論規則を構成している。
たとえば、エアコンの出力調整プログラムの推論規則を考えよう。気温 x に対して、エアコン(冷房)の出力の強さ y を決める規則は次のようになる。
if 暑い(x) then 出力が強い(y)
if 涼しい(x) then 出力が中くらい(y)
このとき、各規則の前提部分 xをとる述語命題を前件部(ぜんけんぶ)、結論部分のyをとる命題を後件部(こうけんぶ)という。
推論の概略は、ある状態入力 x が与えられたとき、前件部のそれぞれの命題の真理値を取り、真である(真に近い)規則の結論が推論全体の帰結(出力)となる。たとえばある x において、暑い(x)が真(1.0)、涼しい(x)が偽(0.0) となるならば、1の規則だけが採択され、全体の帰結は「出力が強い(y)」が真、となる。システムの出力としては、yとして「出力が強い」を真とするような値が選ばれることになる。
推論は論理演算によって行われるものであるのに対して、マムダニ式の前向きファジィ推論の演算はマムダニが提案した数値的な演算で実行される。
R1 : if A11(x1) and A12(x2) ... then B1(y)
...
Rn : if An1(x1) and An2(x2) .. then Bn(y)
入力 x1 \in X1, x2 \in X2 、、、、出力 y \n Y に対する推論演算の手順は次のとおりである。
入力値 x0 から、全ての前件部 Aij(xj) の真理値(0.0 〜1.0)を求める
ある規則の前件部に複数の命題があれば積和演算(max, min)によって統合し、この値をその規則 Ri の適合度 ei とする
全ての規則 Ri について ei を求める
規則 Ri の後件部Bi(y)に、その規則の適合度 ei を適用し、Riの帰結を Ci(y) = t-normR(ei, Bi(y) ) とする。(ここでBi(y)はBiのメンバーシップ関数も意味することがある)。
R1からRnの帰結 yi を統合し、一つの出力 B(y) を生成する。B(y) = ∪_{i=1 to n} Ci(y)
上記の演算手続きで得られる B(y) は、ファジィ述語命題であり、その実態はY上のファジィ集合である。解釈としては「出力は Bである y 」ということである。たとえば「出力が強い y」となる。このとき、実際のエアコンを制御する場合には、エアコンが受け取る制御指令を決定しなければならない。出力強さが 0, 1, 2, 3, 4 の5段階とすると「出力が強いy」のyは、4あるいは3を意味するだろう。
こうしてファジィ命題、ファジィ集合の意味から、一つの値(非ファジィ値)を決定することを、非ファジィ化 (de-fuzzification) という。
たとえばB(y) = {0.0/0 + 0.0/1 + 0.1/2 + 0.5/3 + 1.0/4} というファジィ集合とする(集合の外延的定義)。ここから一つの値を決める。典型的な方法は、最大値法、重み付き平均法、ランダムサンプル法などがある。
最大値法(max法) メンバーシップ値(真理値)を最大にする値をとる。argmax(B(y)) = 4であり、メンバーシップ値が1.0の4を選ぶ
重み付き平均法 yの値をメンバーシップ値を重みとする重み付き平均で決定する(0.1 x 2 + 0.5 x 3 + 1.0 x 4)/(0.1 + 0.5 + 1.0) =3.56 となる。ただし、エアコンの制御指令が整数であれば、丸めて 4 を最終結果とする。
ランダムサンプル法 メンバーシップ値に比例した確率でランダムに選ぶ。メンバーシップ値は確率ではない(総和は1.0でない)ため、値を総和1.0となるように正規化し確率的に選択する。
TSK推論は、多くの場合 Takagi-Sugeno 推論と呼ばれる。後件部としてファジィ述語命題ではなく、入力変数を用いた数式としたものである。とくに後件部線形式のものが多く使われる。
R1 : if A11(x1) and A12(x2) ... then y1 = c11 x1 + c12 x2 .. + c1
...
Rn : if An1(x1) and An2(x2) .. then yn = cn1 x1 + cn2 x2 .. + cn
統合は重み付き平均を用いる
y = (e1 y1 + e2 y2 .. + en yn )/(e1 + e2 .. + en)
これは、各々の前件部が示す入力空間の部分空間において、出力値がy1からyn の関数で求まり、全体としてはそれをファジィに(なめらかに)繋げた区分線形モデルとして捉えることができる。
簡略型推論は、TSK推論の後件部から前件部の変数を含む項を覗き、定数項 c だけにしたものである。
R1 : if A11(x1) and A12(x2) ... then y1 = c1
...
Rn : if An1(x1) and An2(x2) .. then yn = cn
統合は重み付き平均を用いる
y = (e1 y1 + e2 y2 .. + en yn )/(e1 + e2 .. + en)
これは、各々の前件部が示す部分空間において、ある出力値 ci をとり、それを全体としてファジィに繋げたものである。きわめてシンプルながら数値的入出力関係を見通しよく示したものとして、ファジィ制御やモデリングなどで用いられる。