Neuro-fuzzy systémy (ANFIS): fuzzy pravidlá, ktoré sa učia z dát
Sugenov fuzzy systém ako päťvrstvová sieť, hybridné učenie najmenšími štvorcami a gradientom, učenie funkcie zo zašumených dát, voľba počtu pravidiel a preučenie, čitateľnosť naučených pravidiel a vzťah k sieťam RBF.
Séria Základy AI Diel 37 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
- Ako sa Sugenov fuzzy systém zapíše ako sieť a ktoré parametre sa v nej učia.
- Prečo hybridné učenie (najmenšie štvorce plus gradient) predbehne čistý gradientný zostup.
- Prečo s pribúdajúcimi pravidlami hrozí preučenie a čo zostane z čitateľnosti naučených pravidiel.
Čo sa hodí vedieť vopred: Fuzzy riadenie: Mamdani a Sugeno od ventilátora po kyvadlo na vozíku, Gradientný zostup: ako sa model učí
Fuzzy regulátory z minulých dielov mali jednu slabinu: pravidlá aj funkcie príslušnosti musel niekto vymyslieť. Keď skúsený operátor existuje, je to výhoda. Keď nie — alebo keď má systém kopírovať namerané dáta —, je to problém. Neurónové siete majú opačnú povahu: naučia sa čokoľvek z dát, ale čo sa naučili, nikto neprečíta. V roku 1993 spojil Jyh-Shing Roger Jang oboje do systému ANFIS (Adaptive Neuro-Fuzzy Inference System): Sugenov fuzzy systém zapísaný ako sieť, ktorej parametre sa učia z dát. Týmto dielom sa končí modul o fuzzy logike.
Nadväzuje na diely Fuzzy riadenie: Mamdani a Sugeno a Gradientný zostup.
1. Fuzzy systém ako sieť
Vezmime Sugenov systém prvého rádu s jedným vstupom a štyrmi pravidlami „AK x je Ai, TAK y = pix + ri“. Každý krok jeho výpočtu je vrstva siete:
Definícia — ANFIS (Jang, 1993)
Nech n ≥ 1 je počet pravidiel a pre každé i = 1, …, n sú dané parametre predpokladov ci ∈ ℝ, σi > 0 a parametre záverov pi, ri ∈ ℝ. ANFIS s jedným vstupom a n pravidlami „AK x je Ai, TAK y = pix + ri“ je funkcia y : ℝ → ℝ, ktorej hodnota vo vstupe x ∈ ℝ sa počíta v piatich vrstvách (pre i = 1, …, n):
- Príslušnosť: μi(x) = exp(−(x − ci)2/2σi2) ∈ (0, 1] — gaussovská funkcia príslušnosti termu Ai so stredom ci a šírkou σi.
- Sila pravidla: wi = μi(x) (s viacerými vstupmi súčin príslušností všetkých podmienok pravidla).
- Normalizácia: w̄i = wi/∑j=1n wj (menovateľ je kladný, pretože každé wj > 0).
- Záver: w̄i · (pix + ri).
- Súčet: y(x) = ∑i=1n w̄i (pix + ri).
Je to teda výstup regulátora Takagi–Sugeno prvého rádu so súčinom ako t-normou, len zapísaný ako sieť; vrstvy 1 a 4 obsahujú učené parametre.
Je to presne Sugenov regulátor z minulého dielu, len nakreslený ako sieť. Každé pravidlo má „oblasť pôsobnosti“ (gaussovský kopec) a v nej lineárnu predpoveď. Výstup je vážený priemer predpovedí podľa toho, ako veľmi je vstup v oblasti ktorého pravidla. Celý systém je derivovateľný, a tak sa dá učiť rovnako ako neurónová sieť.
y = ∑i wi/∑j wj · (pix + ri)
- y
- výstup celého systému pre vstup x — to, čo porovnávame s dátami a čím sa meria chyba
- ∑i
- súčet cez všetky pravidlá — každé prispeje, žiadne sa „nevyberá“; preto je výstup hladký a dá sa derivovať
- wi/∑j wj
- normalizovaná sila w̄i — delenie súčtom zaistí, že váhy dajú dokopy 1, takže výstup je vážený priemer záverov a nezávisí od toho, aké vysoké sú kopce
- pix + ri
- lineárny záver pravidla — miestna priamka, ktorá funkciu opisuje v oblasti pravidla; priamka namiesto konštanty dovolí s málo pravidlami sledovať aj sklon
μi(x) = exp( − (x − ci)2/2σi2 )
- μi(x)
- stupeň príslušnosti z [0, 1] — ako veľmi je x „okolo ci“; exponenciála záporného čísla je vždy medzi 0 a 1 a v strede je presne 1
- (x − ci)2
- štvorec vzdialenosti od stredu — príslušnosť klesá na obe strany rovnako a je hladká aj v strede (s absolútnou hodnotou by tam mala hrot a derivácia by neexistovala)
- 2σi2
- šírka kopca — vzdialenosť sa meria v jednotkách σi, takže vo vzdialenosti σi od stredu je príslušnosť vždy exp(−1/2) ≈ 0,61; učením σi sa mení, ako ďaleko pravidlo „dosiahne“
Príklad — dopredný prechod v bode x = 3
Vezmime systém po nultej epoche učenia (pozri nižšie): stredy c = 0, 2, 4, 6, všetky šírky σ = 1 a závery z najmenších štvorcov. Pre x = 3 sú vzdialenosti od stredov 3, 1, 1, 3, a teda
- príslušnosť a sila (farby podľa vzorca pre μi): w1 = exp(−32/2 · 12) = e−4,5, w2 = exp(−12/2 · 12) = e−0,5 a súmerne w3 = e−0,5, w4 = e−4,5; teda w = (0,0111; 0,6065; 0,6065; 0,0111);
- normalizácia (farby od tohto kroku podľa vzorca pre y): súčet je 1,2353, takže w̄ = (0,0090; 0,4910; 0,4910; 0,0090), napr. w̄2 = 0,6065/1,2353;
- závery: priamky pix + ri s naučenými koeficientmi (9,54x + 0,01; 9,34x − 17,38; 8,56x − 36,61; 2,60x − 18,90) majú v bode 3 hodnoty (28,63; 10,66; −10,94; −11,09) — koeficienty sú zaokrúhlené, hodnoty vypočítané z presných;
- súčet súčinov w̄i · (pix + ri): y = 0,2574 + 5,2329 − 5,3698 − 0,0997 ≈ 0,021.
Skutočná hodnota je sin(3) = sin(32/3) ≈ 0,141. Všimnite si, že výstup vzniká odčítaním dvoch veľkých, takmer rovnakých príspevkov — k tomu sa vrátime pri čitateľnosti.
2. Hybridné učenie
Chceme minimalizovať strednú kvadratickú chybu na trénovacích dátach. Dalo by sa to celé gradientným zostupom. Jang si však všimol, že výstup je v parametroch záverov lineárny.
Definícia — stredná kvadratická chyba a RMSE
Nech N ≥ 1, (x1, y1), …, (xN, yN) ∈ ℝ × ℝ sú dáta a ŷ : ℝ → ℝ model (jeho výstup pre vstup x je ŷ(x)). Stredná kvadratická chyba modelu ŷ na týchto dátach je číslo
E = 1/N ∑k=1N (ŷ(xk) − yk)2 ≥ 0
a RMSE (root mean square error) je jej odmocnina, RMSE = √E. Minimalizovať jednu alebo druhú je to isté; RMSE sa však uvádza, pretože má jednotky výstupu. Všetky chyby v tomto diele sú RMSE.
RMSE = √1/N ∑k (ŷ(xk) − yk)2
- ŷ(xk)
- predpoveď systému v k-tom bode — jediné miesto, kadiaľ do chyby vstupujú parametre c, σ, p, r
- − yk, potom na druhú
- odchýlka od nameranej hodnoty, umocnená — znamienko nehrá rolu, veľké chyby vážia viac ako malé a štvorec sa dá hladko derivovať (a pre závery dovolí presné riešenie najmenšími štvorcami)
- 1/N ∑k
- priemer cez body — chyba na 40 trénovacích a na 121 testovacích bodoch je potom porovnateľná
Algoritmus — hybridné učenie
Pri pevných predpokladoch je y(x) = ∑i ((w̄ix) pi + w̄i ri) lineárna funkcia parametrov záverov. Na tom stojí tento algoritmus.
Vstup: trénovacie dáta (xk, yk) ∈ ℝ × ℝ, k = 1, …, N; počet pravidiel n; počiatočné stredy ci ∈ ℝ a šírky σi > 0; krok učenia η > 0; počet epoch T ∈ ℕ; najmenšia povolená šírka σmin > 0. Výstup: parametre ci, σi, pi, ri, i = 1, …, n. Pre epochy t = 0, 1, …, T opakuj:
- dopredu: vypočítaj w̄i(xk) pre všetky i a k a parametre záverov pi, ri nájdi presne metódou najmenších štvorcov (definícia nižšie);
- zastavenie: ak t = T, skonči a vráť parametre;
- dozadu: s takto nájdenými závermi urob krok gradientného zostupu pre stredy a šírky (gradienty podľa vety nižšie): ci ← ci − η ∂E/∂ci, σi ← max(σmin, σi − η ∂E/∂σi).
V príklade tohto dielu je η = 0,1, T = 300 a σmin = 0,05.
Tam, kde sa úloha dá vyriešiť presne, ju presne vyriešte; gradient nechajte len na to, čo presne vyriešiť nejde. Lineárna regresia z dielu o štatistike nájde najlepšiu priamku jedným výpočtom — a tu nájde naraz najlepšie lineárne závery všetkých pravidiel. Gradient potom len posúva a rozširuje kopce funkcií príslušnosti.
Definícia — najmenšie štvorce pre závery
Nech (xk, yk) ∈ ℝ × ℝ, k = 1, …, N, sú trénovacie dáta, n ≥ 1 počet pravidiel a parametre predpokladov ci, σi pevné. Potom sú w̄i(xk) len čísla (skrátene w̄i). Zoraďme parametre záverov do vektora θ = (p1, r1, …, pn, rn) ∈ ℝ2n a pre každý bod k zostavme riadok
ak = (w̄1xk, w̄1, …, w̄nxk, w̄n) ∈ ℝ2n, takže ŷ(xk) = ak · θ.
Riadky a1, …, aN tvoria maticu A ∈ ℝN×2n a y = (y1, …, yN) ∈ ℝN. Riešenie metódou najmenších štvorcov je vektor
θ* ∈ argminθ ∈ ℝ2n ‖Aθ − y‖2/N,
t. j. parametre záverov s najmenšou strednou kvadratickou chybou. Každé také θ* spĺňa normálne rovnice ATA θ = ATy — sústavu 2n lineárnych rovníc (a naopak každé ich riešenie je minimom; jediné je práve vtedy, keď má A lineárne nezávislé stĺpce). Pre 4 pravidlá a 40 bodov je A matica 40 × 8 a sústava má 8 rovníc. Náš výpočet pripočítava k diagonále ATA ešte 10−6 (malý hrebeňový člen), aby bola sústava riešiteľná aj pri takmer závislých stĺpcoch, a rieši ju Gaussovou elimináciou.
Veta — gradient podľa stredu a šírky
Nech (xk, yk) ∈ ℝ × ℝ, k = 1, …, N, sú dáta a ŷ ANFIS s n pravidlami a parametrami ci ∈ ℝ, σi > 0, pi, ri ∈ ℝ. Nech E je jeho stredná kvadratická chyba na dátach, chápaná ako funkcia všetkých parametrov, a pre vstup x označme wi = exp(−(x − ci)2/2σi2), W = ∑j wj, w̄i = wi/W a gi = pix + ri. Potom pre každé i = 1, …, n
∂E/∂ci = 2/N ∑k=1N (ŷ − yk) (gi − ŷ) w̄i xk − ci/σi2,
∂E/∂σi = 2/N ∑k=1N (ŷ − yk) (gi − ŷ) w̄i (xk − ci)2/σi3,
kde ŷ, gi a w̄i sa berú v bode x = xk.
Dôkaz. Zo ŷ = ∑j wjgj/W vyplýva derivovaním podielu ∂ŷ/∂wi = giW − ∑j wjgj/W2 = gi − ŷ/W. Derivácie gaussovského kopca sú ∂wi/∂ci = wi x − ci/σi2 a ∂wi/∂σi = wi (x − ci)2/σi3, a parametre ci, σi ovplyvňujú ŷ len cez wi. Reťazovým pravidlom ∂E/∂ci = 2/N ∑k (ŷ − yk) · gi − ŷ/W · wi xk − ci/σi2 a wi/W = w̄i dá prvý vzorec; druhý rovnako. ∎
∂E/∂ci = 2/N ∑k (ŷ − yk) (gi − ŷ) w̄i xk − ci/σi2
- ∂E/∂ci
- ako sa zmení chyba, keď posunieme stred i-teho kopca — krok učenia ide proti tomuto znamienku
- ŷ − yk
- chyba v bode — kde systém trafí, tam bod nič nechce a do gradientu neprispeje
- gi − ŷ
- čím sa záver pravidla líši od celkového výstupu — pridať pravidlu váhu ťahá výstup k jeho záveru; keď záver hovorí to isté čo celok, posúvať kopec nemá zmysel
- w̄i
- podiel pravidla na výstupe — body ďaleko od kopca, kde pravidlo takmer nehovorí, jeho stred takmer neovplyvnia
- xk − ci/σi2
- smer posunu — bod vpravo od stredu ťahá kopec doprava, vľavo doľava; v samotnom strede je kopec plochý a posun nič nezmení
Celé učenie z príkladu nižšie v pseudokóde (krok η = 0,1, 300 epoch):
c = stredy rovnomerne na [0, 6] # pre 4 pravidlá 0, 2, 4, 6
σ = polovica rozostupu stredov # pre 4 pravidlá 1
for epocha in 0 … 300:
# dopredu: vrstvy 1–3, potom závery presne najmenšími štvorcami
wn[k][i] = w̄_i(x_k) pre všetky body k a pravidlá i
A = riadky (wn[k][1]·x_k, wn[k][1], …, wn[k][n]·x_k, wn[k][n])
p, r = vyrieš (AᵀA + 10⁻⁶·I)·θ = Aᵀy
if epocha == 300: break
# dozadu: krok gradientu podľa vzorcov vyššie
gc, gσ = ∂E/∂c, ∂E/∂σ
c = c − η·gc
σ = max(0,05; σ − η·gσ) # kopec nesmie zaniknúť
3. ANFIS sa učí funkciu
Úloha: zo 40 zašumených vzoriek (šum so smerodajnou odchýlkou 0,1) sa naučiť funkciu y = sin(x2/3) na intervale [0, 6]. Funkcia sa doprava vlní čoraz rýchlejšie, takže štyri pravidlá rozmiestnené rovnomerne nie sú ideálne. Chybu meriame aj na 121 bodoch bez šumu mimo trénovacích dát:
Hneď v nultej epoche — len s najmenšími štvorcami pre závery a rovnomernými kopcami — je chyba na teste 0,394 a na trénovacích dátach 0,198. Potom sa začnú učiť predpoklady. Po 100 epochách je chyba na teste 0,202 a po 300 epochách 0,173. Na trénovacích dátach klesne na 0,107 — pod úroveň šumu v dátach (0,114), lepšie to s rozumom nejde. Stredy kopcov sa pritom posunuli len málo; hlavná zmena je v šírkach — posledné pravidlo vpravo, kde sa funkcia vlní najrýchlejšie, sa zúžilo z 1 na 0,64.
Definícia — úroveň šumu v dátach
Nech f : ℝ → ℝ je skutočná funkcia, x1, …, xN ∈ ℝ vstupy a trénovacie výstupy sú yk = f(xk) + εk, k = 1, …, N, kde εk sú náhodné odchýlky (šum). Úroveň šumu v dátach je RMSE, ktorú by na trénovacích dátach mala sama skutočná funkcia f ako model:
√1/N ∑k=1N (f(xk) − yk)2 = √1/N ∑k=1N εk2.
V našom príklade je N = 40, f(x) = sin(x2/3) a εk sú nezávislé náhodné odchýlky z normálneho rozdelenia so strednou hodnotou 0 a smerodajnou odchýlkou 0,1; úroveň šumu vyšla √1/40 ∑k εk2 = 0,114. Je o niečo väčšia ako 0,1 len náhodou — v našich 40 vylosovaných odchýlkach.
Model, ktorý má na trénovacích dátach chybu menšiu ako úroveň šumu (0,107 < 0,114), už začína kopírovať aj náhodné odchýlky. Pri takom malom rozdiele to ešte nevadí — chyba na teste ďalej klesá —, ale je to prvé varovanie, ku ktorému sa vrátime pri počte pravidiel.
Čistý gradientný zostup pre všetky parametre začína pri nulových záveroch a učí sa oveľa pomalšie: po 300 epochách má chybu na teste 0,387 a ani po 3 000 epochách (0,188) nedobehne hybridné učenie po 300. Väčší krok učenia navyše rýchlo vedie k divergencii. Rozdeliť úlohu na lineárnu a nelineárnu časť sa oplatí.
4. Koľko pravidiel?
| Počet pravidiel | 2 | 3 | 4 | 6 | 8 | 12 |
|---|---|---|---|---|---|---|
| Chyba na trénovacích dátach | 0,510 | 0,181 | 0,107 | 0,098 | 0,089 | 0,085 |
| Chyba na teste | 0,590 | 0,177 | 0,173 | 0,172 | 0,566 | 0,319 |
S pribúdajúcimi pravidlami chyba na trénovacích dátach stále klesá. Na teste však od ôsmich pravidiel prudko rastie — systém sa začal učiť šum: so 40 bodmi a 32 parametrami (8 pravidiel × 4) má dosť voľnosti, aby medzi trénovacími bodmi divoko kmital. To je preučenie, rovnaký jav ako pri príliš ohnutej polynomiálnej regresii. Rozumný počet pravidiel tu leží medzi tromi a šiestimi.
Príklad — koľko parametrov má ANFIS
S jedným vstupom má každé pravidlo dva parametre predpokladu (ci, σi) a dva parametre záveru (pi, ri), spolu 4n. Na 40 trénovacích bodov:
- 4 pravidlá: 16 parametrov, z toho 8 lineárnych — na každý lineárny parameter pripadá 40/8 = 5 bodov;
- 8 pravidiel: 32 parametrov, z toho 16 lineárnych — 40/16 = 2,5 bodu na lineárny parameter, a najmenšie štvorce tak majú dosť voľnosti preložiť aj šum;
- 12 pravidiel: 48 parametrov — viac, než je bodov. Najmenšie štvorce síce určujú „len“ 24 záverov zo 40 rovníc, ale ďalších 24 parametrov predpokladov môže kopce presunúť a zúžiť presne tam, kde šum práve vybočil.
Užitočné pravidlo palca: bodov by malo byť aspoň niekoľkokrát viac než parametrov, ktoré sa z nich odhadujú.
5. Čo sa dá prečítať
Sľubom neuro-fuzzy systémov je, že naučený model zostane čitateľný. Predpoklady čitateľné sú: štyri pravidlá „okolo 0“, „okolo 2,2“, „okolo 4“ a „okolo 6,2“. Závery však nie. Pravidlo „AK x je okolo 2,2, TAK y = 10,06 x − 13,83“ by vo svojom strede predpovedalo 8,25, pritom skutočná hodnota je 1,0. Jednotlivé pravidlá sa navzájom vyvažujú — kopce sa veľmi prekrývajú a výstup dáva zmysel až ako celok.
Príklad — ako sa pravidlá vyvažujú v bode x = 2,195
Naučený stred druhého pravidla je c2 = 2,195. Tam má druhé pravidlo plnú príslušnosť (w2 = 1), ale susedia nie nulovú: w = (0,140; 1; 0,331; 0,000), súčet 1,471, takže napr. w̄2 = 1/1,471 ≈ 0,680 (farby podľa vzorca pre y v prvej časti, gi = pix + ri):
| Pravidlo | 1 | 2 | 3 | 4 |
|---|---|---|---|---|
| váha w̄i | 0,095 | 0,680 | 0,225 | 0,000 |
| záver gi | 12,64 | 8,25 | −25,64 | −31,68 |
| príspevok w̄igi | 1,203 | 5,609 | −5,769 | 0,000 |
Súčet je y = 1,203 + 5,609 − 5,769 = 1,043, skutočná hodnota sin(2,1952/3) = 0,999. Výstup je dobrý, ale vzniká ako rozdiel dvoch príspevkov okolo ±5,7: druhé pravidlo „prestreľuje“ nahor a tretie ho sťahuje nadol. Žiadne z pravidiel samo osebe nehovorí, koľko je y.
Interpretovateľnosť teda nie je zadarmo. Udržať ju pomáhajú obmedzenia: menšie prekrytie funkcií príslušnosti, regularizácia záverov alebo Sugeno nultého rádu s konštantnými závermi. Platí sa za to presnosťou. Je to rovnaká rovnováha ako všade v strojovom učení — medzi tým, čo model dokáže, a tým, čo o ňom dokážeme povedať.
6. ANFIS a neurónové siete
- Príbuznosť so sieťami RBF. Jang a Sun v roku 1993 ukázali, že siete s radiálnymi bázovými funkciami a Sugenove fuzzy systémy nultého rádu sú za miernych podmienok to isté, len inak vyložené.
- Prekliatie dimenzionality. S n vstupmi a k termami na vstup má mriežka pravidiel kn pravidiel — pre 10 vstupov a 3 termy vyše 59 tisíc. Preto sa ANFIS používa pre málo vstupov alebo s pravidlami vybranými zhlukovaním (napríklad fuzzy c-means z minulého dielu).
- Aplikácie. Predpovede časových radov (klasickým testom je chaotický Mackeyho–Glassov rad), modelovanie a riadenie sústav, kde máme namerané dáta, ale málo teórie.
- Dnes. Hlboké siete dávno prevzali úlohy s mnohými vstupmi. Myšlienka „učiteľné, ale čitateľné“ však žije ďalej vo vysvetliteľnej AI — a fuzzy vrstvy sa občas pridávajú aj do hlbokých sietí tam, kde treba výstup vyložiť pravidlami.
Definícia — sieť s radiálnymi bázovými funkciami (RBF)
Nech d ≥ 1 je počet vstupov, n ≥ 1 počet skrytých neurónov, c1, …, cn ∈ ℝd stredy, v1, …, vn ∈ ℝ výstupné váhy a φ : [0, ∞) → (0, ∞) klesajúca radiálna bázová funkcia (typicky gaussovská, φ(t) = exp(−t2/2σ2) s σ > 0). Normalizovaná sieť RBF je funkcia y : ℝd → ℝ,
y(x) = ∑i=1n vi φ(‖x − ci‖)/∑j=1n φ(‖x − cj‖),
kde ‖·‖ je euklidovská norma; menovateľ je kladný, pretože φ má kladné hodnoty. Výstup je teda vážený priemer výstupných váh, kde váha neurónu i klesá so vzdialenosťou vstupu od jeho stredu ci. Sugenov systém nultého rádu s gaussovskými príslušnosťami a súčinom ako „a zároveň“ je y = ∑i w̄i ri — po dosadení wi = φ(‖x − ci‖) a vi = ri presne ten istý vzorec. Zjednodušene povedané: pravidlo = neurón, funkcia príslušnosti = bázová funkcia, záver = výstupná váha. (Jang a Sun, 1993, vymenúvajú podmienky presne: rovnaký počet pravidiel a neurónov, konštantné závery, gaussovské príslušnosti, v rámci jedného pravidla s rovnakou šírkou, súčin ako „a zároveň“ a rovnaký spôsob skladania výstupu — vážený priemer alebo vážený súčet.)
Príklad — prekliatie dimenzionality v číslach
S n vstupmi a k termami na každý vstup má úplná mriežka kn pravidiel. Sugenov záver prvého rádu y = p1x1 + … + pnxn + r má n + 1 parametrov, takže lineárnych parametrov je kn(n + 1). Parametrov predpokladov je len 2kn — každý vstup má svojich k kopcov, zdieľaných všetkými pravidlami.
Pre n = 10 a k = 3: 310 = 59 049 pravidiel, 59 049 · 11 = 649 539 parametrov záverov a 2 · 3 · 10 = 60 parametrov predpokladov. Najmenšie štvorce by riešili sústavu so 649 539 neznámymi — a dát by bolo treba ešte oveľa viac.
7. Zhrnutie
- ANFIS je Sugenov fuzzy systém zapísaný ako päťvrstvová sieť: príslušnosť, sila, normalizácia, záver, súčet.
- Hybridné učenie nájde lineárne závery presne najmenšími štvorcami a stredy a šírky funkcií príslušnosti doladí gradientom.
- Na funkcii sin(x2/3) znížilo učenie predpokladov chybu na teste z 0,394 na 0,173; čistý gradient potreboval desaťkrát viac epoch na horší výsledok.
- Príliš veľa pravidiel vedie k preučeniu — od ôsmich pravidiel chyba na teste prudko rastie.
- Predpoklady zostanú čitateľné, závery sa však navzájom vyvažujú; interpretovateľnosť treba strážiť.
Týmto dielom sa končí modul o fuzzy logike: od slova „teplo“ cez logiku a regulátory až k systému, ktorý sa pravidlá učí sám. Chcete si to vyskúšať? Nechajte AI agenta naučiť ANFIS spotrebu elektriny podľa teploty z verejných dát — a potom sa pozrite, ktoré pravidlá dávajú zmysel.
Máte na to iný názor? Napíšte na support@coden-app.com.