ファジイ推論

トップページ研究分野と周辺記号論理非古典論理

高い、重い、暑い、等の形容詞で代表される概念は、例えば感覚と結びついた性質で、特定の数値とだけ結びつくわけではない。
ファジイ推論は、性質と具体的な量(数値)を結びつける推論を可能とする。
ファジイ推論に基づく機械制御は、洗濯機等の家電や地下鉄に応用される等、幅広く使われている。
メンバーシップ関数と推論のルールをいくつか設定すれば、様々な入力データに対して適切な出力値が得られる。

性質に基づくルール

例えば、「外気温が28度であれば、室温は2度下げて26度にする」といったルールは、100%正しいとは言い難い。
暑さに対する感覚は人により違うので、28度くらいで冷房を入れる必要はないと考える人もいれば、もっと下げたいと思う人もいるだろう。
これを「暑ければ室内の気温を下げる(冷房を入れる)」等と、性質だけでルールを記述し直すと、逆に正確になる。

メンバーシップ関数

例えば「暑い」という性質を、実際の気温(数値)と結びつける方法として、ファジイ推論では横軸に気温、縦軸に「暑さの度合い(ここでは、0~1とする)」を取った関数を用いる。
このような関数を、メンバーシップ関数と呼んでいる。
勿論、メンバーシップ関数の在り方も、暑さに対する人の感覚により異なるが、推論を行なう以上、どれかに決めなければならない。大勢の人の感覚を代表するであろう値として以下のように設定する。
ここでは台形の左半分だが、三角形を用いたり、曲線で作る場合もある。

性質の程度を考慮する

ファジイ推論では、性質の程度を考慮に入れる場合も多い。「かなり暑い」「あまり暑くない」といった言葉で表されるのが程度になる。
其々、「かなり暑いかどうか」「あまり暑くないかどうか」のメンバーシップ関数を作ると以下のようになる。

ファジイ推論のルール

推論一般で用いられるIF-THENルールをファジイでも用いる。「もし~ならば、~する(~だ)」という形で書けるルールに適用される。
「もし~ならば」を前件部、「~する(~だ)」を後件部と呼ぶ。
前件部は複数の条件を重ねる場合も多い。「もしAがXで、BがYなら、CをZする」といった形になる。
ファジイ推論のルールは、対象とする問題に応じて設計される。ここでは湿度も導入し、以下の4つを設定する(ルールはいくつでもよい)。
①「もし、かなり暑くて、湿度が高ければ、室温を下げる」
②「もし、あまり暑くなくて、湿度が高ければ、室温はそのまま」
③「もし、かなり暑くて、湿度が低ければ、室温はそのまま」
④「もし、あまり暑くなくて、湿度が低ければ、室温を上げる」
気温が高くても湿度が低ければ、あまり暑いとは感じない場合も多い。また、あまり暑くない場合には、節電の観点から室温を上げる事になる。
ファジイ推論では、後件部も「室温を上げる」「そのまま」「下げる」といった性質を表す言葉になる。従って、これらもメンバーシップ関数化する必要があり、例えば以下のようになる。
「そのまま」に幅があるのはおかしいとも思えるが、少しの室温の変化は「やや、そのまま」と捉える。
「上げる」「下げる」についても、あまり極端な室温変化はしないので、図のような三角形になる。

入力データから前件部の値を求める

仮に、気温が28度、湿度が70%だったとしよう。この入力データから「室温を何度上下させるか」の出力値を求めたい。
用意された推論ルール全てに、この数字を当てはめ、気温と湿度について「かなり暑い」「あまり暑くない」「湿度が高い」「湿度が低い」の適合度(0~1の度合い)を求める。
湿度については、以下のメンバーシップ関数が用意されているものとする(仮に40%~60%を普通の湿度とした)。

4つのルールについて、其々前件部の値を求める。
温度は28度なので、「かなり暑い」の適合度は0.42、「あまり暑くない」の適合度は0.11となる。
(「かなり暑い」を20度で0、39度で1、「あまり暑くない」を30度で0、12度で1と設定したため、この数値となる)
湿度は70%なので、「湿度が高い」の適合度は0.25(60%で0、100%で1と設定したため)となる。
「湿度が低い」は40%で0としたため、70%は範囲外の値となり、適合度は0となる。

これらの値を用いて、4つの各推論ルールの前件部を求める。
各ルールの前件部は、「かなり暑くて」+「湿度が高ければ」といった二つの条件が重なっている(AND結合)。
AND結合の条件の場合は、「数値の低い方を前件部の値とする」のがファジイ推論の方法だ。
従ってルール①の前件部適合度は、「かなり暑い」(0.42)+「湿度が高い」(0.25)だから、低い方の0.25となる。
同様にルール②は、「あまり暑くない」(0.11)+「湿度が高い」(0.25)だから、低い方の0.11となる。
ルール③は、「かなり暑い」(0.42)+「湿度が低い」(0)だから、低い方の0。
ルール④は、「あまり暑くない」(0.11)+「湿度が低い」(0)だから、やはり低い方の0となる。

各ルールの前件部の値から後件部の値を求める

ルール①の後件部は「室温を下げる」となっている。前件部の値は0.25なので、後件部の「室温を下げる」のメンバーシップ関数の高さ0.25のところに線を引く。
同様にルール②の後件部は「室温はそのまま」なので、そのメンバーシップ関数の高さ0.11のところに線を引く。
ルール③④については、前件部の値が0なので、何もしない。
後件部については、各ルールの和(OR結合)を求める。
ここでは、「室温を下げる」のメンバーシップ関数を0.25の高さで切った台形と、「室温はそのまま」のメンバーシップ関数を0.11の高さで切った台形を重ね合わせた部分(赤線で囲った部分)が後件部の値となる。

重心法による非(脱)ファジイ化

合成された台形が得られただけでは、具体的に温度をどうすればいいのか分からない。
ファジイ推論の仕上げは、合成図形を数値化する事だ。これを非ファジイ化(脱ファジイ化)という。
最も簡単な方法が重心法で、合成図形(赤線で囲った部分)の重心を求めて数値とする。
横軸の温度をx、赤線で示すグラフをf(x)とすると、重心(X0とする)は以下の式で求められる。

ここでは合成台形の面積を扱ったりするので、以下の積分の基本公式を利用する(F(x)はf(x)の不定積分で、微分するとf(x)になる関数)。

横軸の温度をxとすると、図の赤線部分のグラフf(x)は以下のようになる。
一番左の左上がりの直線は、-6(度)でf(x)=0、-3(度)でf(x)=1にメンバーシップ関数を設定したため、f(x)=ax+bに其々代入して、-6a+b=0、-3a+b=1の連立方程式が出来、a=1/3、b=2が求まる。
0.25=1/3x+2から、x=-5.25(度)でグラフは水平になる事が分かる。
次の右下がりの直線の部分は、x=-3(度)でf(x)=1、x=0(度)でf(x)=0でメンバーシップ関数を設定したため、同様の計算でa=-1/3、b=0となり、同様に其々の交点の座標は求まる。
0.11の水平の後の右下がりの直線は、x=0(度)でf(x)=1、x=2(度)でf(x)=0と設定したため、このような式になる。

この積分計算を行なうと、結果は約-2.128となった。
「気温28度、湿度70%では、約2.128度室温を下げる」が、このファジイ推論で得られた結論という事になる。

高木・菅野のファジイ推論(関数型推論)

上記のファジイ推論は、前件部で最も小さい(min)適合度、後件部では各ルールの和(max)を取り、非ファジイ化に重心法を用いているため、min-max重心法と呼ばれ、最も一般的に使われているファジイ推論法となる。
また、最初に提唱したロンドン大学のマムダニ教授の名前から、マムダニの推論とも呼ばれる。
これとは別に、日本人が作成した有名なファジイ推論法がある。後件部に関数を用いるため関数型推論、又は高木・菅野のファジイ推論と呼ばれている。
高木・菅野のファジイ推論では、ルールの前件部は基本的にmin-max重心法と同じだが、後件部は例えばf=(気温,湿度)といった関数になる。
この関数の気温、湿度には具体的な入力データが入る。ルール毎に関数fは異なるものとして定義される。
一般的には、以下のように記述される場合が多い。

ここで、xやyは気温、湿度といった変数、A1やA2は「かなり暑い」「あまり暑くない」、B1やB2は「高い」「低い」等の性質の程度等に対応している。
違うルール、例えば「かなり暑くて湿度が高ければ」と「あまり暑くなくて湿度が高ければ」の異なる前件部に対して、対応する後件部の関数f1とf2は、前件部に応じて適切に設定される。

関数型推論の適合度

各ルール毎に前件部の適合度を求めるが、min-max重心法が「小さい方の値」を用いたのに対し、関数型推論では適合度の積を用いる。
上記の例で、ルール①の前件部適合度は、「かなり暑い」(0.42)+「湿度が高い」(0.25)だった。
関数型推論では、この積、0.42×0.25=0.105が、前件部適合度として用いられる。
後件部の値として、min-max重心法では合成台形を求めたが、関数型推論ではいったんルール別に求める。これは、各関数に入力データをそのまま代入すればよい。

関数型推論の推論結果

全てのルールを統合した推論結果は、以下の式で求められる。ここで、w1、w2は各ルールの前件部適合度、f1(X0,Y0)、f2(X0,Y0)等は、各ルールの後件部の値、X0、Y0は具体的な入力データとなる。

式を見れば分かる通り、関数型推論でも、前件部適合度の高いルールが重視されている。
応用する対象によってはmin-max重心法より適切な推論結果が得られる事も多く、幅広く使われている。

ファジイ推論用計算ツール