ファジィ集合のはなし(8)

今回はファジィな数や演算の話を少し離れて、第6回であまり深く触れなかった拡張原理と分解定理を掘り下げます。
地味。今回の記事はいつになく地味。


まず分解定理とはなにかというと、任意のファジィ集合のメンバーシップ関数は、メンバーシップ関数値が$${\alpha}$$な箇所がどこか示す(普通の)集合 、$${\alpha}$$カットと特性関数(属すなら1,属さないなら0)で表せるというモノでした。普通特性関数は$${\chi}$$で表し、

$$
\mu_A(x)=\displaystyle\sup_{\alpha\in[0,1]}\Bigl[\min\bigl(\alpha,\chi_{A^{\geq\alpha}}(x)\bigr)\Bigr],x\in U
$$

なんだかいかつい式になります。
念のため、全体集合は $${U}$$にしてます。
一方拡張原理はファジィ数の演算後のメンバーシップ関数値をどう決めるかの指針で、ファジィ数 $${A,B}$$、演算$${\;f(x,y)}$$に対し、

$$
\mu_{A\circ B}(z)=\displaystyle\sup_{\alpha}\Bigl[\min\bigl(\mu_A(x),\mu_B(y)\bigr)\Bigr],\;(x,y)\in f^{-1}(z)
$$

と書かれます。
両者を比較すると、形はまあまあ似ています。


ときにこの二つの名前。拡張原理と分解定理なんですね。
数学で原理が出てくるのって、個人的には珍しいなと思ってしまいます。
物理における原理ってまあ、いろいろあるんですけど、どっちかってと「歴史的にそう呼ばれてるからそう言ってるだけのもの」や「これを議論のスタートにする」という公理・公準的意味合いで使うことが多い気がします。

原理って「自然が、だってそうなんだから仕方ない」ってイメージで、自然があろうとなかろうと数学は作れますから、少ないのかもしれません。
物理の場合、常に自然が答えですから。

まあ、そもそもの話として、学問的な意味合いでの「原理」の話か、コトバとしての「原理」か、難しいところも時々ありますよね。
「原理から説明!」っていうのが「それって法則じゃね?」ってこと、たくさんありますし。

そういうのをチクチク言い続けるとめんどくさい人認定されそうです。


原理と定理の話はさておいて、この似ている二つ、拡張の立場から分解定理をみてみるとどうなるのでしょうか。

$$
\begin{array}{}\mu_A(x)&=&\displaystyle\sup_{\alpha\in[0,1]}&
\Bigl[\min\bigl(\alpha,\chi_{A^{\geq\alpha}}(x)\bigr)\Bigr]\\\mu_{A\circ B}(z)&=&\displaystyle\sup_{\alpha}&\Bigl[\min\bigl(\mu_A(x),\mu_B(y)\bigr)\Bigr]\end{array}
$$

まず思いつくのは特性関数$${\chi}$$もメンバーシップ関数の特殊な例だから、前者の$${\alpha}$$もなんらかのメンバーシップ関数なのでは? ということです。
たしかにメンバーシップ関数は $${\mu(x)\in[0,1]}$$で結果を返しますから、$${\alpha}$$だって「いかなる$${x}$$に対しても $${\alpha}$$を返す定数関数」と見做せそうです。
つまり、

$$
\mu_A(x)=\displaystyle\sup_{\alpha\in[0,1]}\Bigl[\min\bigl(\alpha(y),\chi_{A^{\geq\alpha}}(x)\bigr)\Bigr]
$$

演算$${f}$$についても、$${x}$$を直に返し$${y}$$に依存しない関数$${f(x,y)=x}$$にすれば、拡張原理の立場から分解定理を書けそうです。


さて、そうなると、拡張原理の出処はどこなのか気になります。みんなsup-min合成と呼ぶだけで、なんでこれなのかあまり触れている人がいないなぁと思います。
まあたしかに工学的には「なんでそうなるか」より、「どう使うか」が優先されそうですから、世の中のファジィの講義資料は「なぜ」まで踏み込まないのかもしれませんね。
研究者になるならともかくとしても。

とはいえそういうのに抗って、なんでだろうを考えるのが裃のnoteですから。

で、いろいろ資料を漁ってみて、個人的に納得行ったものをいくつか紹介します。


まずは直積を定義するという話です。

直積は2つの集合の元から新しい集合をつくるので、二項演算もいわば直積です。
じゃあファジィで直積をどう決めるかというときに、メンバーシップ関数の$${\min}$$をとるようです。

$$
A\times B:\mu(x,y)=\min\bigl[\mu_A(x),\mu_B(y)\bigr]
$$

こういうことです。
で、この外側にsupを施したのが求めたい拡張原理の式になります。
このsupは最終的なメンバーシップ関数の決定、採用のプロセスと言えます。直積の中で同一の元がある場合、どれを選ぶか決める必要がありますからね。
選ぶ段で何か新たな演算を作り出してもいいのですが、最もシンプルなのは大きさの判定です。つまり、max,minやsup,infとなります。
連続ならsupかinfを取ったほうが後々よさそうですね。

じゃあここでもしsupでなくinfを取ってしまうとどうなるのか。これはダメです。
メンバーシップ関数値がほとんど0になることもあります。
たとえば

$$
「2ぐらいの数」+「6ぐらいの数」
$$

の例ですと、正しい計算は

$$
2+6=8
$$

ですが、ここであえて「2ぐらいとは言えない数」「6ぐらいとは言えない数」たとえば$${-10000,10008}$$などを使っても

$$
-10000+(10008)=8
$$

のように$${8}$$を作れてしまいます。
メンバーシップ関数は各々どうせほぼ0でしょう。
ですからこの場合、結果$${8}$$になるメンバーシップ関数値をinfで取捨選択すると、結果はだいたい0にできてしまいます。
つまり、結果 $${8}$$はふさわしくないなんて、誤った判断をすることになります。
これでは我々のやりたい「大体足し算」になってないので、やっぱりinfはダメ、supにすべしというわけです。


もう少し大雑把な解釈として、
「ある元に複数メンバーシップ関数値があるなら、それは"または"なんだから和集合とすべき」
たしかに和集合はmax関数なので、sup-min構成になります。
ですけど、出てきた複数のメンバーシップ関数値を"または"と解して良いものか、ちょっと気になります。


もう一つの解釈、といいますか、拡張原理らしい話をしますと、
「結局のところ普通の集合(クリスプ集合)になったとき、うまくいくかじゃない?」

たしかにそうで、この言葉に従うと「原理」というのもなんだか納得です。
例を挙げるなら、「2という数」と「6という数」の和ですから、

$$
\mu_Z(x)=\begin{cases}1&x=Z\\0&その他\end{cases}
$$

こんなメンバーシップ関数を考えることになります。
この場合演算結果は

$$
\min(x,y)=\begin{cases}1&(x,y)=(2,6)\\0&その他\end{cases}
$$

ですから、値1で結果8になる$${(x,y)}$$は $${(2,6)}$$の時のみです。それ以外、$${(1,7)}$$などで8になる場合、minまでの結果は0です。

結果8は普通の集合では正しい結果ですので、$${\mu(2,6)=1}$$となるべきです。

そうなるように0と1どちらを選択するかといったら、大きい方を選ぶように決めればいい。

というわけで、普通の集合で同様なことをして結果がおかしくならないためにはsup-min合成が妥当でしょう。


さて、そういうわけで今回はまあまあ地味なお話でした。
次回はどうしようかなぁ、タイプ2ファジィの話をするか、応用的にはファジィ論理、クリスプ化とかの話をするべきなんでしょうけど、私がしてもねぇ、という気もしてます。
ひとまず、ファジィ数演算でお茶をにごしましょうか。
これってエキゾチック代数なんすかね?

この記事が気に入ったらサポートをしてみませんか?