SoftComputing lab.
 
Googleでサイト内検索:

Fuzzy Theory
ファジィ理論
Neural Network
ニューラルネットワーク
Chaos
カオス
Artifical Intelligence <AI>
人工知能
Genetic Algorithm <GA>
遺伝的アルゴリズム
お勧めの本

ファジィ推論

コンピュータに推論を行わせるには様々な手法がありますが、ファジィ推論はその中の一つです。特徴としては推論機構にファジィの考え方を含めたことで、前提条件と答えとの関係に幅を持たせることができます。しかし、ファジィ推論はあいまいさを扱う推論なので、常にはっきりとした(クリスプな)内容の推論しか行わないのであれば、意味を成しません。以下では、ファジィ推論の概要を説明することでどんな場面に有用であるのかということについても理解していただけるものと思います。

ファジィ推論は、命題論理の演算に、あいまいさ(ファジィネス)を用いることにより拡張を行った推論法と言えます。そこで、まず命題論理について簡単に説明したいと思います。

命題論理では、いわゆる「三段論法」により推論を行います。具体的手順としては、まず前提条件として、「常識的知識」と「現在の条件」を用意します。そして、帰納的に答えを導きます。例えば

(1) トマトが赤ければ、トマトは熟している。
(2) トマトが赤い。


(3) トマトは熟している。

のように答えが導かれます。このように書いてしまうと当たり前のことをしているだけのようですが、コンピュータに推論を行わせるにはこのように、はっきりとした形式で示してやる必要があります。

この形式には、人間的な推論を行おうとすると大きな欠点があることがわかります。人間の推論(推理)を考えると、常にあいまいな情報を処理しています。例えば、上の例では、トマトの赤さや熟し具合には、あいまいさがあります。人間は、それを赤さの度合によって自然に見分けて熟し具合を判断できます。しかし、命題論理を用いて段階的な判断を行おうとすると、段階ごとにたくさんの前提条件を作る必要があります。例えば、

トマトが少しだけ赤ければ、トマトは少しだけ熟している。
トマトがとても赤ければ、トマトはとても熟している。

といった具合です。しかし、このようにしても、やはり前提条件として用意されているものにぴったりと一致しなければ、答えは求まりません。つまり、連続的に変化する状態についての推論が行えないといえます。

そこで、ファジィ推論の登場となります。

ファジィ推論では「トマトが赤ければ」の「赤い」と、「トマトは熟している」の「熟している」について、ファジィ集合を用いて、その度合を表現します。つまり、トマトの赤い度合が0.8ならば、トマトの熟している度合は0.8であるといった表現も可能となるわけです。

ファジィ推論では、このような推論をIF−THEN形式のルールにして表現します。つまり、

IF トマトが赤い THEN トマトは熟している

一般形にすると、

IF x is A THEN y is B

となります。A is Bは前件部、C is Dは後件部といいます。

ファジィ推論の特徴として前件部の条件を増やすことができます。具体的には、

IF (x1 is A1)AND(x2 is A2) THEN y is B

のようになります。この場合は、前件部を二つとしましたが、いくつでも増やすことができます。このことにより、「トマトが赤く、かつ、柔らかければ、トマトはとても熟れている」などといった表現も可能になります。ファジィ推論が特に有効なのは、このように複数の前件部条件から解を求めるような場合だといえるでしょう。

それでは、前の例について実際に推論の過程をたどってみます。

ここで、簡略化のためにルールを一つにしていますが、通常は、より細かく推論を行うために、複数のルールを用い、その答えを解の重心として求めます。(詳しくは後述します)

IF (トマト is 赤い)AND(トマト is 柔らかい) THEN トマト is とても熟している

このルールに対して、「赤い」の度合が0.8で「柔らかい」の度合が0.6だったとします。

前件部の演算はAND演算なので、二つの値の小さいほうをとって、前件部のグレード値は0.6となります。したがって、熟している度合は0.6となります。図的に示すと図5.1のようになります。


簡単な推論の例
図5.1 簡単な推論の例

次に、ルールが多い場合について考えます。

ルールが多い場合には、後件部から求まる解が複数あります。このようなときには、解の合成を行う必要があります。合成の手法はいろいろありますが、代表的なところではMin-Max法、代数積-加算重心法、簡略化推論法などがあります。

ここでは、Min-Max法について取りあげたいと思います。Min-Max法では、後件部のグレード値(前件部の解)を求める際にはAND演算(Min)をもちい、後件部の重心を求める際にはOR演算(Max)をもちいます。以下に具体例をあげます。

トマトの赤さと柔らかさから、どのくらい熟しているかを求める問題を考えます。ここで、各ファジィ集合は図5.2のように与えられているとします。


各要素のファジィ集合
図5.2 各要素のファジィ集合

ここで、BG=big、MD=middle、SM=small、とします。BGは赤さ、柔らかさなどが大きい(強い)、MDは中ぐらい、SMは小さい(弱い)ということです。例えば、赤さのファジィ集合では、BG=とても赤い、MD=やや赤い、SM=あまり赤くない、といったように考えるといいでしょう。それぞれ、となりの集合と重なっているのは、中間ぐらいのときなどをはっきりと分けてしまわずに、両方の属性を持たせるようにして、よりファジィ的な扱いをしやすいようにするためです。

ルール1  IF (赤さ is BG) AND (柔らかさ is BG) THEN 熟度 is BG
ルール2  IF (赤さ is MD) AND (柔らかさ is MD) THEN 熟度 is MD
ルール3  IF (赤さ is SM) AND (柔らかさ is SM) THEN 熟度 is SM

のような、簡単なルールが与えられている場合で、赤さの度合が0.8、柔らかさの度合が0.6としたときの熟度を求めます。

まず、赤さのファジィ集合について調べます。ここで、赤さの度合は0.8と与えられているので、そこから図5.2を使って、赤さのBG、MD、SMの集合の適合度を求めます。BGについては、適合度は0.6となります。MDについては、適合度は0.4となります。また、SMについては、集合の範囲に入らないので、0となります。

次に、柔らかさのファジィ集合についても求めます。柔らかさの度合は0.6なので、BGの適合度は0.2、MDの適合度は0.8、SMの適合度は0となります。

これで、前件部の条件はすべて求まりました。そこで、各ルールについてAND演算(Min)を行います。
ルール1の前件部  0.6 AND 0.2=0.2
ルール2の前件部  0.4 AND 0.8=0.4
ルール3の前件部    0 AND   0=  0

したがって、各ルールの後件部より、熟度については以下のようになります。
ルール1より、BG=0.2
ルール2より、MD=0.4
ルール3より、SM=  0

最後にこれらの集合OR演算(Max)を施して得られたファジィ集合の重心をとって、解とします。Min-Max法では、後件部のファジィ集合を前件部から求まったグレード値で切り取って台形型のファジィ集合を作り、この集合の和の重心をとります。

重心をとる演算は、求める重心をy0、横軸をy、合成したファジィ集合をμ(y)とすると

重心を求める式

となります。これを使って、重心は0.5625と求まります。したがって、この例での熟度は0.5625となります。


Min-Max法
図5.3 Min-Max法

ファジィ推論では、単純なルールをいくつか用意することで、中間にあるような値についても、推論を行って解を求めることができます。また、ルール数を増やすことで推論の精度をあげていくこともできます。このことは、裏返すとルールがいくつか欠損してしまったとしても、精度が落ちるだけで、動作を続けることができるということを示しています。

1999/07/31