裃のお勉強部屋

物理や数学のおぼえがき

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

こいつトロピカル以外も話せるんか!?

って思ったかもしれませんが、そもそもこのブログも裃が興味持ったことをまとめているだけのブログであります。
トロピカル以外にも興味もつよ!

==========

さて、そういうわけでファジィ集合のはなし。
ファジィ集合ってのが何かを話すには、普通の集合をまず考えてみるのがいいでしょう。
10までの自然数があるとして、たとえば8以上の自然数の集合は
\begin{eqnarray*}
A=\{ 8,9,10 \}
\end{eqnarray*}
です。逆に$A$に含まれない奴らは8未満の自然数で、
\begin{eqnarray*}
\bar{A}=\{ 0,1,2,3,4,5,6,7 \}
\end{eqnarray*}
となるわけです*1
ですから例えば「6は$A$に含まれますか」という問いかけに対しては、YESかNOかで答えられます。
\begin{eqnarray*}
6\notin A, 6\in \bar{A}
\end{eqnarray*}
こんなふうに普通の集合は要素が要素でないかがはっきり二分されます。
蝙蝠みたいなどっちつかずなやつはいないんですね*2

つまり、「たぶんそう/部分的にそう」みたいなやつはいません。
それが普通の集合です。

じゃあ、そのYESかNOか、その間を作っちまえというのが大雑把に言ったファジィ集合です。
普通の集合では要素である$=1$、要素でない$=0$というデジタル的状況ですから、これを$0$から$1$の任意の数を取ることにする、アナログ化してしまおうというわけです。

これだけだと何に使えるのか、何をしたいのか分かりにくいので、先の例でファジィ集合化してみましょう。
さきほどの$A$は8以上の自然数でしたが、ファジィ集合では例えばこんなことができます。

$A=$10以下で10に近い数字。

10は自分自身ですからゼロ距離、文句なしかな。
9はまあお隣さんだし近いと言えそう
8も最寄じゃないけど遠くもないでしょう。
7あたり辺りから個人の見解が分かれてきそう。

そもそも近いってなんだよ。人によるじゃん。
そう思いますよね?

==========

閑話休題
距離の近さなんか典型的です。
近いって言ったら徒歩で行ける範囲の人もいれば、
車を使う場合では近場の感覚も変わります。
私の住んでる埼玉県は東京都に近いですが、歩いて行けるかと言ったら要相談です。5万くらいくれるなら。
昔よく鉄道で旅行してた時は、九州からの帰り、大阪あたりで「随分近くまできたもんだな」と思いました。
18きっぷなんかで旅行していると、西は名古屋、北は仙台あたりまで来ると「もう帰ってきたなぁ」って気分になったもんです。

==========

というふうに、ファジィ集合では近いなんていう人間の感想を導入することができます。

この辺りが工学にウケるんですね。例えば調光なんかで、普通の集合だと、何ルクスならON,OFFって判定するのを、このくらいの値だからこのくらいまで明るくするか、暗くするか、みたいな連続関数的な操作にできるわけです。
さらに何ルクス以上が明るいと定義せず、ユーザーアンケートから
「何ルクスなら10パーセントの人間が明るいって感じるみたいだから、ちょっとだけ暗くしようか」
「何ルクスだと80パーセントの人間が明るいっていうから少し多めに暗くしようか」
みたいな制御ができるわけです。

ちょうど実用上の統計の世界なんかがそうですよね、5%で起きるのは「時に」だよねとか、0.1%は「まれに」だよねとか。
もちろん書類上で定義するには普通の集合同様、ここ以下を「まれに」と決めるべきですが、「まれ」かどうかなんて人によるじゃんって思いません?
じゃあそんなあなたはファジィ集合を使いましょう。

==========

さて、ファジィ集合では「近い」「大きい」みたいな人によって変わる尺度を導入できます。
例えば以下のように、各要素にどのくらい大きいといえそうかという情報を乗っけてやります。

  • 10は間違いなく10に一番近いから普通の集合での含むに相当する$1$としよう。
  • 0は一番遠いから、普通の集合での$0$だろうな。
  • その間はじゃあ、各数を10で割った結果にしよう。

こうすると、
\begin{eqnarray*}
\begin{matrix}
要素&0&1&2&3&4&5&6&7&8&9&10\\\
10への近さ&0&0.1&0.2&0.3&0.4&0.5&0.6&0.7&0.8&0.9&1
\end{matrix}
\end{eqnarray*}
という「10への近さ」情報がのります。

しかし一方で、
「え、5でも遠いし、5ぐらいで近さは$0$でよくね?」
という人もいるでしょう。
\begin{eqnarray*}
\begin{matrix}
要素&0&1&2&3&4&5&6&7&8&9&10\\\
10への近さ&0&0&0&0&0&0&0.2&0.4&0.6&0.8&1
\end{matrix}
\end{eqnarray*}
そういう人はこんな感じの「10への近さ」情報を使うのはいかがでしょうか?

というふうに、人間の主観的な尺度をこの付加的な情報、関数として折り込んでしまうわけです。
ここに出てきた「10への近さ関数」を一般にメンバーシップ関数といいます。
まあつまり、どのくらいそのグループか、お友達に含めるかの関数ですね。
メンバーシップ関数がステップ関数的になっているのが普通の集合というわけです。

==========

さて、こうしてファジィ集合について考えると、普通の集合もなにか特別な名前が欲しいところです。
普通の集合はファジィの視点からだとクリスプ集合と呼ばれます。
あくまで普通の集合はファジィの一特例って視点ですね。

ファジィ集合のまとめや講義録なんかを見ると、
「伝統的な数学者からは無視されてる」
みたいな被害者意識が漂ってて、なんだか親近感が湧きます(どうせこんなブログ誰も読んでないでしょ?)
たしかにメンバーシップ関数が個人の尺度で変わってしまうあたり、誰もが同じような定義ではないのが気持ち悪いのはわかります。
ただ、メンバーシップ関数なるものがまああるとして、じゃあそこからどんなことが言えていくのか、というのは数学的に面白いんじゃないですかねぇ?

次回以降ファジィ集合の和集合とか、普通の集合(クリスプ集合)でやったことがどう変わるのかみていこうかなって思います。

というわけで、トロピカルだけじゃないブログ、今日はファジィ集合のお話でした。

*1:自然数に0を含めるか含めないかは数学界でよく喧嘩になる有名な問題ですが、集合では含めることが多そうなので今回は含めてます。

*2:鳥と獣が戦争したとき、蝙蝠が鳥には羽があるから鳥といい、獣には毛むくじゃらだから獣と言って最終的にどっちにも嫌われるという寓話がある。