メンバーシップ関数 — 「少し暑い」を数にする
境界を 1 本で切る代わりに、ラベルとの相性を 0〜1 の所属度として表す。
温度ラベルは互いに少し重なります。26℃ なら「快適 0.50、暑い 0.25」のように、複数ラベルへ同時に所属できます。
用語の整理 — メンバーシップ関数と所属度
本章では 2 つの言葉を使い分けます。
- メンバーシップ関数 (membership function):入力値
xを受け取って、ラベルとの相性を 0〜1 で返す関数そのもの。三角形・台形などの形状を持ちます。 - 所属度 (membership degree):その関数が
xに対して返した出力値。たとえば「快適(26)=0.50」の右辺 0.50 が所属度です。
つまり「メンバーシップ関数は所属度を返す関数」「所属度はその関数の出力」という関係です。以降の本文ではこの定義に従います。
関数形の選び方 — なぜ三角形・台形なのか
メンバーシップ関数の形状にはガウス型 (滑らかな釣鐘曲線)、シグモイド型 (片側だけ立ち上がる S 字)、三角形、台形などがあります。本講座で三角形と台形だけを使うのは、次の 3 点が初学者向けに有利なためです。
- パラメータが少ない:三角形は 3 点、台形は 4 点で決まり、設計が容易です。
- 手計算しやすい:直線の式で書けるので、所属度を電卓なしでも追えます。
- 区間の意味が読みやすい:頂点・肩の位置がそのまま「もっとも合うところ」「飽和域」を表します。
連続的な微分が必要なとき (適応制御や最適化に組み込むとき) はガウス型を選ぶこともあります。本講座の範囲では精度差はわずかなので、扱いの簡単な三角形・台形で進めます。
温度ラベルを 3 本だけ用意する
この講座では温度を 寒い / 快適 / 暑い の 3 ラベルで扱います。関数は次の 3 本だけです。
| ラベル | 関数 | 意味 |
|---|---|---|
| 寒い | trapmf(x, 16, 16, 19, 23) | 16〜19℃ はしっかり寒い。23℃ に向かって徐々に弱まる。 |
| 快適 | trimf(x, 20, 24, 28) | 24℃ がいちばん快適で、その前後へ行くほど弱まる。 |
| 暑い | trapmf(x, 25, 29, 34, 34) | 25℃ を超えると徐々に暑くなり、29℃ 以上はしっかり暑い。 |
たとえば 26℃ では、快適は右の斜面、暑いは左の斜面にいます。
快適(26) = (28 - 26) / (28 - 24) = 0.50
暑い(26) = (26 - 25) / (29 - 25) = 0.25
つまり 26℃ は「快適でもあるし、少し暑くもある」と表現できます。ここが 0/1 のしきい値と本質的に異なる点です。
小問 2-1 — 温度の所属度を計算する
温度ラベルは 寒い=trap(16,16,19,23)、快適=tri(20,24,28)、暑い=trap(25,29,34,34) です。
Q1. 快適の三角形 tri(20,24,28) で、22℃ の所属度はいくつですか。
22℃ は左の斜面なので (22-20)/(24-20)=0.50 です。
Q2. 暑いの台形 trap(25,29,34,34) で、26℃ の所属度はいくつですか。
26℃ は立ち上がり区間なので (26-25)/(29-25)=0.25 です。
Q3. 快適の三角形 tri(20,24,28) で、27℃ の所属度はいくつですか。
27℃ は右の斜面なので (28-27)/(28-24)=0.25 です。
湿度ラベルも同じように重ねる
湿度も 乾燥 / ふつう / 蒸し暑い の 3 ラベルで持ちます。
| ラベル | 関数 | 例 |
|---|---|---|
| 乾燥 | trapmf(x, 20, 20, 30, 45) | 40% なら (45-40)/(45-30)=0.33 |
| ふつう | trimf(x, 35, 55, 75) | 68% なら (75-68)/(75-55)=0.35 |
| 蒸し暑い | trapmf(x, 60, 75, 90, 90) | 68% なら (68-60)/(75-60)=0.53 |
68% は「ふつう 0.35、蒸し暑い 0.53」です。1 本だけに決め打ちせず、両方を少しずつ持つことで、次章のルールが複数同時に効けるようになります。
小問 2-2 — 湿度の所属度を計算する
湿度ラベルは 乾燥=trap(20,20,30,45)、ふつう=tri(35,55,75)、蒸し暑い=trap(60,75,90,90) です。
Q1. 蒸し暑いの台形 trap(60,75,90,90) で、68% の所属度はいくつですか。
68% は立ち上がり区間なので (68-60)/(75-60)=8/15≈0.53 です。
Q2. 乾燥の台形 trap(20,20,30,45) で、40% の所属度はいくつですか。
40% は右の斜面なので (45-40)/(45-30)=5/15≈0.33 です。
所属度は確率ではない
ここでの 0.53 は「68% である確率 53%」ではありません。意味はただ 1 つ、68% が『蒸し暑い』というラベルにどれくらい合うかです。だから快適と暑い、ふつうと蒸し暑いが同時に少しずつ成り立っても問題ありません。
ファジィ制御では、曖昧さを消すのではなく、曖昧さを数のまま次の計算へ渡します。
所属度だけでは制御にならない — 次章への橋渡し
所属度は「入力ラベルにどれくらい合うか」を表すだけで、まだ出力 (ファン何 %?) を決める仕組みがありません。たとえば 26℃・68% で「快適 0.50・暑い 0.25・ふつう 0.35・蒸し暑い 0.53」が出ても、これだけではファンを弱風で回すか強風で回すかは決まりません。
そこで第 3 章では、入力ラベルの所属度から出力ラベル (弱風 / 中風 / 強風) を導くIF-THEN ルールを導入します。所属度はルールに渡す素材であり、ルールがその素材を組み合わせて主張を作る、という分業になります。