Fuzzy množiny a funkcie príslušnosti: ako zapísať „trochu teplo“
Ostrá hranica a paradox kopy, fuzzy množina a stupeň príslušnosti, tvary funkcií príslušnosti, lingvistická premenná, nosič, jadro a α-rezy, Zadehove operácie a modifikátory „veľmi“ a „trochu“ — na teplote od zimy po horúčavu.
Séria Základy AI Diel 32 z 52
- Mapa umelej inteligencie: čo je čo a ako to do seba zapadá
- Stručná história umelej inteligencie: od Turinga po jazykové modely
- Dáta, model, tréning, inferencia: základné pojmy na jednom príklade
- Ako čítať matematický zápis: symboly, indexy, sumy a kvantifikátory
- Množiny a relácie: stavebnica, z ktorej sa skladajú definície v AI
- Funkcie a zobrazenia: prečo je každý model v AI funkcia
- Logika a dôkazy: pravidlá, podľa ktorých sa v AI uvažuje
- Grafy a stromy: štruktúra, na ktorej stojí hľadanie aj neurónové siete
- Lineárna algebra pre strojové učenie: vektory, matice a prečo AI hlavne násobí
- Derivácie, gradient a reťazové pravidlo: ako model zistí, ktorým smerom sa učiť
- Gradientný zostup: ako sa model učí
- Čo je pravdepodobnosť: od hodu kockou ku Kolmogorovovým axiómam
- Podmienená pravdepodobnosť a Bayesova veta: ako zmeniť odhad, keď sa dozviete niečo nové
- Náhodná premenná a distribučná funkcia: jedna funkcia, ktorá o rozdelení povie všetko
- Funkcia hustoty a pravdepodobnostná funkcia: prečo má spojitá premenná v bode pravdepodobnosť nula
- Stredná hodnota, rozptyl a kovariancia: kde rozdelenie leží, aké je široké a čo s čím súvisí
- Prehľad pravdepodobnostných rozdelení: Bernoulliho, binomické, Poissonovo, rovnomerné, normálne a exponenciálne
- Zákon veľkých čísel a centrálna limitná veta: prečo sa priemery správajú tak predvídateľne
- Štatistika a odhady parametrov: maximálna vierohodnosť, MAP a intervaly spoľahlivosti
- Teória informácie: entropia, krížová entropia a KL divergencia — odkiaľ sa berú stratové funkcie
- Prehľadávanie stavového priestoru: BFS, DFS, UCS a A* s animáciami
- Hry a protivník: minimax, alfa-beta orezávanie a Monte Carlo tree search
- Splňovanie obmedzujúcich podmienok: backtracking, propagácia obmedzení a AC-3 na sudoku a mape krajov
- Logika a znalostné systémy: dopredné a spätné reťazenie, rezolúcia a expertné systémy
- Plánovanie: STRIPS, svet kociek, heuristiky z relaxácie a plánovanie v AI agentoch
- Lokálne hľadanie a simulované žíhanie: obchodný cestujúci cez krajské mestá
- Genetické algoritmy: populácia, kríženie, mutácia a výber na batohu na výlet
- Evolučné stratégie a genetické programovanie: od pravidla jednej pätiny po Keplerov zákon
- Optimalizácia mravčou kolóniou: ako feromónová stopa nájde krátku cestu
- Optimalizácia rojom častíc: zotrvačnosť, vlastná skúsenosť a skúsenosť roja
- Neuroevolúcia: evolúcia váh aj tvaru neurónových sietí a algoritmus NEAT
- Fuzzy množiny a funkcie príslušnosti: ako zapísať „trochu teplo“
- Fuzzy logika a pravdepodobnosť: prečo „trochu teplo“ neznamená „pravdepodobne teplo“
- Fuzzy logika: t-normy, implikácie a pravidlá AK–TAK
- Fuzzy riadenie: Mamdani a Sugeno od ventilátora po kyvadlo na vozíku
- Fuzzy zhlukovanie: algoritmus fuzzy c-means a body medzi zhlukmi
- Neuro-fuzzy systémy (ANFIS): fuzzy pravidlá, ktoré sa učia z dát
- Markovove reťazce: prechodová matica, stacionárne rozdelenie a PageRank
- Skryté Markovove modely: Viterbiho algoritmus a nepoctivé kasíno
- Bayesovské siete: prečo je tráva mokrá a čo z toho vyplýva pre postrekovač
- Kalmanov filter: ako z nepresných meraní odhadnúť, kde auto je a ako rýchlo ide
- Druhy strojového učenia: s učiteľom, bez učiteľa, s čiastočným učiteľom a ďalšie
- Prompty, kontext a RAG: ako modelu dať správne informácie
- Variačné autoenkodéry (VAE): nové obrázky zo spojitého latentného priestoru
- Generatívne adversariálne siete (GAN): falšovateľ proti detektívovi
- Difúzne modely: ako sa z čistého šumu stane obrázok
- Markovove rozhodovacie procesy: stavy, akcie, odmeny a Bellmanove rovnice
- Q-learning a DQN: učenie hodnoty akcií od tabuľky po neurónovú sieť
- Policy gradient a PPO: učenie priamo stratégie
- Ako funguje AI agent: jazykový model v slučke s nástrojmi
- Programovanie s AI agentmi: zadanie, testy a kontrola
- Vyhodnocovanie a bezpečnosť AI systémov: ako merať a ako strážiť
Celá osnova série Hotovo: 52 z 83 tém
- Čo je fuzzy množina a prečo stupeň príslušnosti nie je pravdepodobnosť.
- Ako sa slová ako „teplo“ alebo „príjemne“ zapíšu funkciami príslušnosti a ako sa prekrývajú.
- Ako fungujú fuzzy prienik, zjednotenie a doplnok a prečo neplatí zákon vylúčenia tretieho.
Čo sa hodí vedieť vopred: Množiny a relácie: stavebnica, z ktorej sa skladajú definície v AI, Funkcie a zobrazenia: prečo je každý model v AI funkcia
Koľko zrniek piesku tvorí kopu? Milión určite. Jedno určite nie. A keď z kopy odoberiete jedno zrnko, stále je to kopa — takže podľa tej logiky by aj jedno zrnko bolo kopou. Tento paradox poznali už starí Gréci a ukazuje, že veľa slov, ktorými hovoríme o svete, nemá ostrú hranicu: vysoký, teplo, rýchlo, skoro plno. Klasická matematika s nimi zaobchádza zle, pretože prvok do množiny buď patrí, alebo nepatrí. V roku 1965 navrhol Lotfi Zadeh z Kalifornskej univerzity v Berkeley jednoduché riešenie: dovoliť, aby prvok do množiny patril trochu.
Týmto dielom sa začína modul o fuzzy logike. Nadväzuje na diely Množiny a relácie a Funkcie a zobrazenia.
1. Ostrá hranica a jej problém
Definícia — charakteristická funkcia
Nech X je neprázdna množina (univerzum — všetky prvky, o ktorých hovoríme) a A ⊆ X je klasická (ostrá) množina. Charakteristická funkcia množiny A je funkcia χA : X → {0, 1} daná pre každé x ∈ X predpisom
χA(x) = 1, ak x ∈ A; χA(x) = 0, ak x ∉ A.
Naopak každá funkcia χ : X → {0, 1} je charakteristickou funkciou práve jednej množiny, totiž A = {x ∈ X : χ(x) = 1}. Ostrá množina je teda svojou charakteristickou funkciou jednoznačne určená: prvok x do nej patrí práve vtedy, keď χA(x) = 1.
Ostrá množina je zoznam s jasným áno a nie. Povedzme, že „teplo“ je od 25 °C vyššie. Potom je 25 °C teplo a 24,9 °C nie je — hoci rozdiel nikto nespozná. Hranica na jednom mieste je ľubovoľná a malá zmena vstupu urobí skok vo výsledku.
2. Fuzzy množina
Definícia — fuzzy množina (Zadeh, 1965)
Nech X je neprázdna množina (univerzum). Fuzzy množina A na X je daná funkciou μA : X → [0, 1], ktorú nazývame funkcia príslušnosti; formálne je to množina dvojíc
A = {(x, μA(x)) : x ∈ X} ⊆ X × [0, 1].
Pre x ∈ X je číslo μA(x) ∈ [0, 1] stupeň príslušnosti prvku x do A: hodnota 1 znamená „patrí úplne“, 0 „nepatrí vôbec“ a čísla medzi tým „patrí čiastočne“. Dve fuzzy množiny A, B na X sa rovnajú práve vtedy, keď μA(x) = μB(x) pre každé x ∈ X.
Ostrá množina je osobitný prípad: ak platí μA(x) ∈ {0, 1} pre každé x ∈ X, je μA charakteristická funkcia ostrej množiny {x ∈ X : μA(x) = 1}.
Namiesto „patrí, nepatrí“ dostane každý prvok číslo od nuly po jednotku: ako veľmi do množiny patrí. 28 °C je „teplo“ úplne (1), 25 °C napoly (0,5), 20 °C vôbec (0). Medzi tým sa príslušnosť mení plynulo — žiadny skok medzi 24,9 a 25.
Dôležité je, čím stupeň príslušnosti nie je: nie je to pravdepodobnosť. Keď je 25 °C „teplo“ na 0,5, neznamená to, že s päťdesiatpercentnou šancou je teplo. Teplota je známa presne; nejasné je slovo. Rozdielu medzi neurčitosťou slova a neistotou náhody sa venuje nasledujúci diel.
3. Tvary funkcií príslušnosti
Definícia — bežné funkcie príslušnosti
Vo všetkých prípadoch je univerzum X = ℝ (alebo jeho interval) a μ : ℝ → [0, 1] je funkcia príslušnosti; exp(t) = et je exponenciála.
- Trojuholníková funkcia s parametrami a, b, c ∈ ℝ, a < b < c: μ(x) = max(0, min(x − a/b − a, c − x/c − b)). Teda μ(x) = 0 pre x ≤ a aj pre x ≥ c, na [a; b] rastie lineárne z 0 do 1 a na [b; c] lineárne klesá z 1 do 0.
- Lichobežníková funkcia s parametrami a, b, c, d ∈ ℝ, a ≤ b ≤ c ≤ d: pre každé x ∈ ℝ je
- μ(x) = 0, ak x < a alebo x > d;
- μ(x) = x − a/b − a, ak a ≤ x < b;
- μ(x) = 1, ak b ≤ x ≤ c;
- μ(x) = d − x/d − c, ak c < x ≤ d.
- Gaussovská funkcia so stredom m ∈ ℝ a šírkou s > 0: μ(x) = exp(−(x − m)2/2s2) — hladký kopec s vrcholom μ(m) = 1.
- Sigmoidná funkcia so strmosťou a > 0 a stredom c ∈ ℝ: μ(x) = 1/1 + exp(−a(x − c)) — rastúci plynulý prechod od 0 (pre x → −∞) do 1 (pre x → ∞) s hodnotou μ(c) = 0,5; pre a < 0 je prechod klesajúci.
Tvar sa volí podľa toho, čo je prirodzené a čo sa ľahko počíta. V praxi zďaleka najčastejšie vyhrajú trojuholníky a lichobežníky: stačí pár čísel, každý im rozumie a výpočty sú rýchle. Na presnom tvare obvykle záleží menej, než by sa zdalo — dôležité je, kde funkcia začína, kde vrcholí a kde končí.
μ(x) = max( 0, min( x − a/b − a, c − x/c − b ) )
- x − a/b − a
- ľavá hrana — priamka, ktorá má v a hodnotu 0 a v b hodnotu 1; delenie dĺžkou b − a zaistí, že vrchol vyjde presne 1 bez ohľadu na šírku
- c − x/c − b
- pravá hrana — zrkadlovo: v b hodnota 1, v c hodnota 0
- min
- vyberie tú hranu, ktorá je práve nižšie — naľavo od b je pravá hrana nad 1, napravo od b ľavá; minimum tak „odreže“ špičku presne v b
- max(0, …)
- mimo intervalu (a; c) by hrany vyšli záporné; stupeň príslušnosti však nesmie klesnúť pod 0
trojuhelnik nižšie. Pre „teplo“ (22, 28, 34) a 25 °C: max(0, min(25 − 22/28 − 22, 34 − 25/34 − 28)) = max(0, min(3/6, 9/6)) = 0,5.def trojuhelnik(a, b, c):
return lambda x: max(0.0, min((x - a) / (b - a), (c - x) / (c - b)))
def lichobeznik(a, b, c, d):
def mu(x):
if x < a or x > d:
return 0.0
if x < b:
return (x - a) / (b - a)
return 1.0 if x <= c else (d - x) / (d - c)
return mu
teplo = trojuhelnik(22, 28, 34)
print(teplo(25), teplo(28), teplo(31)) # 0.5 1.0 0.5
4. Lingvistická premenná
Definícia — lingvistická premenná (Zadeh, 1975)
Pre neprázdnu množinu X označme 𝓕(X) množinu všetkých fuzzy množín na X. Lingvistická premenná je štvorica (v, T, X, M), kde
- v je meno premennej (napríklad „teplota“);
- X je neprázdna množina, univerzum (napríklad interval [0; 40] °C);
- T je neprázdna množina slov, termov — hodnôt, ktoré premenná nadobúda (napríklad {zima, príjemne, teplo, horúco});
- M : T → 𝓕(X) je sémantické pravidlo, ktoré každému termu t ∈ T priradí fuzzy množinu M(t) na X — jeho význam.
Prvok x ∈ X teda zodpovedá termu t v stupni μM(t)(x). Zadehova pôvodná definícia je pätica: navyše obsahuje syntaktické pravidlo, ktoré termy generuje (napríklad „veľmi teplo“ z „teplo“); tu berieme termy ako pevný zoznam.
Slová, ktorými opisujeme teplotu, sa prekrývajú — a to je v poriadku. 25 °C je trochu „príjemne“ a trochu „teplo“, presne ako by to povedal človek.
Naša teplota má štyri termy: zima je lichobežník (0, 0, 6, 14), príjemne lichobežník (10, 17, 23, 28), teplo trojuholník (22, 28, 34) a horúco lichobežník (30, 36, 40, 40). Zvislá čiara preskakuje medzi ukážkovými teplotami:
- 12 °C je „zima“ na 0,25 a „príjemne“ na 0,29 — chladná jar, keď sa nedá rozhodnúť.
- 25 °C je „príjemne“ na 0,6 a „teplo“ na 0,5.
- 31 °C je „teplo“ na 0,5 a už aj „horúco“ na 0,17.
Príklad — príslušnosti krok za krokom
Na každej hrane stačí pomer „koľko už z hrany prešla“ ku „aká je hrana dlhá“ (farby podľa vzorca trojuholníka vyššie: rastúca hrana ako ľavá, klesajúca ako pravá):
12 °C, zima (0, 0, 6, 14) na klesajúcej hrane: 14 − 12/14 − 6 = 2/8 = 0,25
12 °C, príjemne (10, 17, 23, 28) na rastúcej hrane: 12 − 10/17 − 10 = 2/7 ≈ 0,29
25 °C, príjemne na klesajúcej hrane: 28 − 25/28 − 23 = 3/5 = 0,6
25 °C, teplo (22, 28, 34) na rastúcej hrane: 25 − 22/28 − 22 = 3/6 = 0,5
31 °C, teplo na klesajúcej hrane: 34 − 31/34 − 28 = 3/6 = 0,5
31 °C, horúco (30, 36, 40, 40) na rastúcej hrane: 31 − 30/36 − 30 = 1/6 ≈ 0,17
Ostatné termy majú pri týchto teplotách príslušnosť 0 — teplota leží mimo ich nosiča.
Všimnite si, že príslušnosti jednej teploty sa nemusia sčítať na 1 (pri 25 °C dávajú 1,1). Fuzzy množiny nie sú podiely jedného celku, ale nezávislé odpovede na otázky „je zima?“, „je príjemne?“…
5. Nosič, jadro a α-rezy
Definícia — nosič, jadro, výška, α-rez
Nech X je neprázdna množina a A fuzzy množina na X s funkciou príslušnosti μA : X → [0, 1].
- Nosič (support) množiny A je ostrá množina supp A = {x ∈ X : μA(x) > 0} — prvky, ktoré do A patria aspoň trochu.
- Jadro (core) množiny A je ostrá množina core A = {x ∈ X : μA(x) = 1} — prvky, ktoré patria úplne.
- Výška množiny A je číslo hgt A = sup {μA(x) : x ∈ X} ∈ [0, 1], kde sup (suprémum) je najmenšie horné ohraničenie množiny čísel. A je normálna práve vtedy, keď hgt A = 1.
- Pre α ∈ (0, 1] je α-rez množiny A ostrá množina Aα = {x ∈ X : μA(x) ≥ α}.
- Ak je X ⊆ ℝ interval, je A konvexná práve vtedy, keď pre každé α ∈ (0, 1] je Aα interval (prázdnu množinu považujeme za interval). Ekvivalentne: pre všetky x1, x2 ∈ X a λ ∈ [0, 1] platí μA(λx1 + (1 − λ)x2) ≥ min(μA(x1), μA(x2)).
Slovami: nosič sú prvky s nenulovou príslušnosťou, jadro prvky s plnou príslušnosťou a α-rez prvky, ktoré do A patria aspoň v stupni α.
α-rez je „akí prísni chceme byť“. Rez na úrovni 0,5 obsahuje teploty, ktoré sú príjemné aspoň napoly. Z α-rezov sa dá fuzzy množina späť zložiť — sú to vrstevnice kopca. A vďaka nim sa ostrá matematika dá použiť aj na fuzzy množiny: stačí ju vykonať osobitne na každej úrovni α.
Pre „príjemne“ je nosič otvorený interval (10; 28), jadro [17; 23] a α-rez na úrovni 0,5 interval [13,5; 25,5]. Množina je normálna (výška 1) a konvexná — ako všetky naše termy. (Suprémum sup v definícii výšky je najmenšie horné ohraničenie hodnôt; pri našich spojitých funkciách na uzavretom intervale je to jednoducho maximum.)
Aα = [ a + α (b − a) ; d − α (d − c) ]
- α
- úroveň rezu (na obrázku jantárová čiara) — koľko príslušnosti požadujeme; čím vyššia, tým ďalej od okrajov musíme ísť, a rez sa zužuje
- a
- ľavý okraj nosiča — odtiaľ ľavá hrana stúpa; pri α → 0 začína rez práve tu
- (b − a)
- šírka ľavej hrany — na nej stúpne príslušnosť z 0 na 1, takže úroveň α dosiahne po prejdenom zlomku α tejto šírky
- d
- pravý okraj nosiča — odtiaľ sa meria späť doľava
- (d − c)
- šírka pravej hrany — zrkadlovo: od d prejdeme doľava zlomok α tejto šírky
Príklad — α-rezy termu „príjemne“ (10, 17, 23, 28)
α = 0,5: [10 + 0,5 · 7; 28 − 0,5 · 5] = [13,5; 25,5]
α = 0,8: [10 + 0,8 · 7; 28 − 0,8 · 5] = [15,6; 24]
α = 1: [10 + 7; 28 − 5] = [17; 23] = jadro
Farby podľa vzorca α-rezu vyššie: a = 10, b − a = 7, d = 28, d − c = 5.
Rezy do seba zapadajú: čím vyššie α, tým menší interval, a každý vyšší leží vnútri nižšieho. Späť sa fuzzy množina zloží ako μA(x) = sup {α : x ∈ Aα} — príslušnosť bodu je najvyšší rez, do ktorého ešte padne.
Keď funkcia príslušnosti nie je daná vzorcom, ale napríklad nameranými bodmi, počíta sa α-rez na jemnej mriežke. Presne tak to robí program, ktorý kreslí obrázky v tomto diele:
def alfa_rez(mu, alfa, od=0.0, do=40.0, kroku=4000):
body = [od + i * (do - od) / kroku for i in range(kroku + 1)]
uvnitr = [x for x in body if mu(x) >= alfa]
return (uvnitr[0], uvnitr[-1]) if uvnitr else None # pri konvexnej množine interval
prijemne = lichobeznik(10, 17, 23, 28)
print(alfa_rez(prijemne, 0.5)) # (13.5, 25.5)
6. Doplnok, prienik a zjednotenie
Definícia — Zadehove operácie
Nech X je neprázdna množina a A, B fuzzy množiny na X s funkciami príslušnosti μA, μB : X → [0, 1]. Doplnok ¬A, prienik A ∩ B a zjednotenie A ∪ B sú fuzzy množiny na X, ktorých funkcie príslušnosti sú pre každé x ∈ X dané predpismi
- μ¬A(x) = 1 − μA(x),
- μA ∩ B(x) = min(μA(x), μB(x)),
- μA ∪ B(x) = max(μA(x), μB(x)).
Prvok x teda patrí do prieniku v takej miere, v akej patrí do tej z množín, do ktorej patrí menej, a do zjednotenia v miere tej, do ktorej patrí viac. Ak sú A, B ostré (μA, μB nadobúdajú iba hodnoty 0 a 1), dávajú tieto predpisy presne charakteristické funkcie klasického doplnku X ∖ A, prieniku a zjednotenia.
„Príjemne a zároveň teplo“ je také pravdivé, aká pravdivá je slabšia z oboch častí; „príjemne alebo teplo“ také, aká je silnejšia. Reťaz je silná ako najslabší článok, a keď stačí jedno z dvoch, rozhoduje to lepšie.
Pri 25 °C je „príjemne a teplo“ min(0,6; 0,5) = 0,5 a „príjemne alebo teplo“ max(0,6; 0,5) = 0,6 (farby podľa vzorca nižšie). Prienik najvyššie dosiahne 0,545 okolo 25,3 °C, kde sa obe krivky krížia — žiadna teplota nie je oboje úplne.
μP ∩ T(x) = min( μP(x), μT(x) )
- μP(x)
- ako veľmi je teplota x „príjemne“ (na obrázku zelená krivka)
- μT(x)
- ako veľmi je „teplo“ (jantárová krivka) — obe príslušnosti sa počítajú nezávisle, každá svojou funkciou
- min
- „a zároveň“ smie byť najviac také pravdivé ako slabšia časť — keby bolo viac, tvrdili by sme o teplote viac, než unesie jedno z oboch slov; a pre hodnoty 0 a 1 dá min presne klasické „a“
Príklad — kde je prienik najvyšší
Medzi 23 a 28 °C príjemne klesá a teplo rastie, takže minimum je najvyššie tam, kde sa krivky pretnú (farby podľa vzorca vyššie):
28 − x/5 = x − 22/6
6 (28 − x) = 5 (x − 22) ⇒ 168 − 6x = 5x − 110 ⇒ x = 278/11 ≈ 25,27 °C
μ = 28 − 278/11/5 = 6/11 ≈ 0,545
Naľavo od priesečníka je nižšie teplo, napravo príjemne — minimum tam vždy klesá.
Tu sa fuzzy množiny od klasických líšia v niečom zásadnom. Platia pre ne skoro všetky známe pravidlá — komutativita, asociativita, De Morganove zákony —, ale nie zákon vylúčenia tretieho. Prienik A ∩ ¬A nemusí byť prázdny: „príjemne a zároveň nie je príjemne“ má pri 13,5 °C hodnotu 0,5. Pre neurčité slová je to správne — o teplote, ktorá je príjemná napoly, sa dá zároveň napoly povedať, že príjemná nie je. Iné možnosti prieniku a zjednotenia (takzvané t-normy) prídu v diele o fuzzy logike.
Veta — De Morganove zákony platia, vylúčenie tretieho nie
Nech X je neprázdna množina, A, B sú fuzzy množiny na X a ¬, ∩, ∪ sú Zadehove operácie (definícia vyššie). Potom
- ¬(A ∩ B) = ¬A ∪ ¬B a ¬(A ∪ B) = ¬A ∩ ¬B, t. j. pre každé x ∈ X je μ¬(A ∩ B)(x) = μ¬A ∪ ¬B(x) a μ¬(A ∪ B)(x) = μ¬A ∩ ¬B(x);
- pre každé x ∈ X je μA ∩ ¬A(x) ≤ ½ a μA ∪ ¬A(x) ≥ ½, pričom v oboch nerovnostiach nastane rovnosť práve vtedy, keď μA(x) = ½.
Dôkaz. (1) Označme p = μA(x), q = μB(x) a bez ujmy na všeobecnosti p ≤ q. Potom 1 − min(p, q) = 1 − p, a keďže 1 − p ≥ 1 − q, je aj max(1 − p, 1 − q) = 1 − p. Druhý zákon rovnako s vymeneným min a max.
(2) Čísla p a 1 − p majú súčet 1, takže menšie z nich je najviac ½ a väčšie aspoň ½. ∎
Klasický zákon vylúčenia tretieho žiada A ∪ ¬A = X, teda hodnotu 1 všade. Pri fuzzy množine platí len tam, kde je μA 0 alebo 1; najhoršie je to v bodoch s príslušnosťou ½ — pri „príjemne“ pri 13,5 a 25,5 °C, kde A ∩ ¬A aj A ∪ ¬A majú hodnotu 0,5.
Kontrola na čísle (farby podľa vzorca prieniku vyššie): pri 25 °C je ¬(P ∩ T) = 1 − min(0,6; 0,5) = 0,5 a ¬P ∪ ¬T = max(0,4; 0,5) = 0,5.
7. Veľmi teplo, trochu teplo
Definícia — jazykové modifikátory (Zadeh, 1972)
Nech X je neprázdna množina a A fuzzy množina na X. Koncentrácia veľmi A („veľmi“) a dilatácia trochu A („trochu“, „viac-menej“) sú fuzzy množiny na X s funkciami príslušnosti danými pre každé x ∈ X predpismi
μveľmi A(x) = (μA(x))2, μtrochu A(x) = √μA(x).
Keďže μA(x) ∈ [0, 1], leží v [0, 1] aj druhá mocnina a odmocnina, takže ide opäť o fuzzy množiny; hodnoty 0 a 1 sa nezmenia.
Umocnenie čísla medzi 0 a 1 ho zmenší — a to tým viac, čím je menšie: 0,5 sa zmení na 0,25, ale 1 zostane 1. „Veľmi teplo“ je preto užšie a prísnejšie ako „teplo“. Odmocnina naopak množinu rozšíri: 25 °C je „teplo“ na 0,5, „trochu teplo“ na √0,5 ≈ 0,71 a „veľmi teplo“ len na 0,52 = 0,25 (farby podľa vzorca nižšie).
Definícia — inklúzia fuzzy množín
Nech X je neprázdna množina a A, B fuzzy množiny na X. Fuzzy množina A je podmnožinou B, píšeme A ⊆ B, práve vtedy, keď
∀x ∈ X : μA(x) ≤ μB(x).
Každý prvok teda patrí do B aspoň v takej miere ako do A. Pre ostré množiny je to obvyklá inklúzia: kde je χA(x) = 1, musí byť aj χB(x) = 1.
μ(x)2 ≤ μ(x) ≤ √μ(x) pre μ(x) ∈ [0, 1]
- μ2
- „veľmi“ (červená krivka) — násobenie číslom najviac 1 nikdy nezväčší, takže štvorec leží pod pôvodnou krivkou; najviac uberie pri stredných hodnotách, nulu a jednotku nechá
- μ
- „teplo“ samo (jantárová krivka) — východiskový term, ktorý modifikátory len pretvarujú; nosič ani jadro sa nezmenia
- √μ
- „trochu“ (fialová krivka) — odmocnina je inverzia k štvorcu, takže dvíha to, čo štvorec stláča: √0,25 = 0,5
Príklad — o koľko „veľmi“ zúži a „trochu“ rozšíri
α-rez na úrovni 0,5 pre „teplo“ (22, 28, 34) je [25; 31]. Pre modifikované termy stačí previesť úroveň späť na pôvodné μ:
veľmi teplo: μ² ≥ 0,5 ⇔ μ ≥ √0,5 ≈ 0,707 → [22 + 0,707 · 6; 34 − 0,707 · 6] ≈ [26,24; 29,76]
trochu teplo: √μ ≥ 0,5 ⇔ μ ≥ 0,25 → [22 + 0,25 · 6; 34 − 0,25 · 6] = [23,5; 32,5]
Intervaly počíta vzorec α-rezu vyššie (farby podľa neho) s trojuholníkom „teplo“ ako lichobežníkom (22, 28, 28, 34): a = 22, b − a = 6, d = 34, d − c = 6.
Interval „aspoň napoly“ má 6 °C pre teplo, asi 3,5 °C pre veľmi teplo a 9 °C pre trochu teplo.
8. Fuzzy množiny v praxi
- Fuzzy riadenie. Metro v japonskom Sendai jazdí od roku 1987 s fuzzy regulátorom, ktorý rozbieha a brzdí plynulejšie ako človek. Okolo roku 1990 nasledovala v Japonsku vlna fuzzy práčok, kamier a klimatizácií. Ako taký regulátor funguje, vysvetlí diel o fuzzy riadení.
- Spracovanie obrazu a zhlukovanie. Pixel na rozhraní dvoch oblastí môže patriť trochu do oboch; fuzzy zhlukovanie priraďuje body do viacerých zhlukov naraz.
- Strojové učenie. Mäkké výstupy klasifikátorov alebo technika label smoothing (namiesto istého „je to mačka“ cieľ „mačka na 0,9“) nie sú fuzzy množiny v Zadehovom zmysle, ale zdieľajú s nimi myšlienku, že príslušnosť do triedy nemusí byť iba 0 alebo 1.
- Jazyk. Jazykové modely pracujú so slovami ako „celkom“, „skoro“ alebo „skôr nie“ každý deň. Fuzzy množiny sú jedným z mála nástrojov, ktoré takým slovám dávajú presný, overiteľný význam.
9. Zhrnutie
- Fuzzy množina priraďuje každému prvku stupeň príslušnosti z intervalu [0, 1]; ostrá množina je osobitný prípad s hodnotami 0 a 1.
- Funkcie príslušnosti mávajú tvar trojuholníka, lichobežníka, gaussovského kopca alebo sigmoidy.
- Lingvistická premenná má ako hodnoty slová — termy, ktoré sa môžu prekrývať; 25 °C je „príjemne“ na 0,6 a „teplo“ na 0,5.
- Nosič, jadro a α-rezy opisujú tvar fuzzy množiny ostrými množinami.
- Doplnok je 1 − μ, prienik minimum a zjednotenie maximum; neplatí zákon vylúčenia tretieho. Modifikátor „veľmi“ je μ², „trochu“ √μ.
Chcete si to vyskúšať? Nechajte AI agenta nakresliť funkcie príslušnosti pre slová, ktorými opisujete vlastný deň — „skoro“, „neskoro“, „dlho“ — a opýtajte sa pár ľudí, kde by hranice dali oni.
Máte na to iný názor? Napíšte na support@coden-app.com.