Neuro-fuzzy systémy (ANFIS): fuzzy pravidla, která se učí z dat
Sugenův fuzzy systém jako pětivrstvá síť, hybridní učení nejmenšími čtverci a gradientem, učení funkce ze zašuměných dat, volba počtu pravidel a přeučení, čitelnost naučených pravidel a vztah k sítím RBF.
Série Základy AI Díl 37 z 83
- Mapa umělé inteligence: co je co a jak to do sebe zapadá
- Stručná historie umělé inteligence: od Turinga po jazykové modely
- Data, model, trénink, inference: základní pojmy na jednom příkladu
- Jak číst matematický zápis: symboly, indexy, sumy a kvantifikátory
- Množiny a relace: stavebnice, ze které se skládají definice v AI
- Funkce a zobrazení: proč je každý model v AI funkce
- Logika a důkazy: pravidla, podle kterých se v AI uvažuje
- Grafy a stromy: struktura, na které stojí hledání i neuronové sítě
- Lineární algebra pro strojové učení: vektory, matice a proč AI hlavně násobí
- Derivace, gradient a řetízkové pravidlo: jak model zjistí, kterým směrem se učit
- Gradientní sestup: jak se model učí
- Co je pravděpodobnost: od hodu kostkou ke Kolmogorovovým axiomům
- Podmíněná pravděpodobnost a Bayesova věta: jak změnit odhad, když se dozvíte něco nového
- Náhodná veličina a distribuční funkce: jedna funkce, která o rozdělení řekne všechno
- Funkce hustoty a pravděpodobnostní funkce: proč má spojitá veličina v bodě pravděpodobnost nula
- Střední hodnota, rozptyl a kovariance: kde rozdělení leží, jak je široké a co s čím souvisí
- Přehled pravděpodobnostních rozdělení: Bernoulli, binomické, Poisson, rovnoměrné, normální a exponenciální
- Zákon velkých čísel a centrální limitní věta: proč se průměry chovají tak předvídatelně
- Statistika a odhady parametrů: maximální věrohodnost, MAP a intervaly spolehlivosti
- Teorie informace: entropie, křížová entropie a KL divergence — odkud se berou ztrátové funkce
- Prohledávání stavového prostoru: BFS, DFS, UCS a A* s animacemi
- Hry a protivník: minimax, alfa-beta ořezávání a Monte Carlo tree search
- Splňování omezujících podmínek: backtracking, propagace omezení a AC-3 na sudoku a mapě krajů
- Logika a znalostní systémy: dopředné a zpětné řetězení, rezoluce a expertní systémy
- Plánování: STRIPS, svět kostek, heuristiky z relaxace a plánování v AI agentech
- Lokální hledání a simulované žíhání: obchodní cestující přes krajská města
- Genetické algoritmy: populace, křížení, mutace a výběr na batohu na výlet
- Evoluční strategie a genetické programování: od pravidla jedné pětiny po Keplerův zákon
- Optimalizace mravenčí kolonií: jak feromonová stopa najde krátkou cestu
- Optimalizace hejnem částic: setrvačnost, vlastní zkušenost a zkušenost hejna
- Neuroevoluce: evoluce vah i tvaru neuronových sítí a algoritmus NEAT
- Fuzzy množiny a funkce příslušnosti: jak zapsat „trochu teplo“
- Fuzzy logika a pravděpodobnost: proč „trochu teplo“ neznamená „pravděpodobně teplo“
- Fuzzy logika: t-normy, implikace a pravidla KDYŽ–PAK
- Fuzzy řízení: Mamdani a Sugeno od ventilátoru po kyvadlo na vozíku
- Fuzzy shlukování: algoritmus fuzzy c-means a body mezi shluky
- Neuro-fuzzy systémy (ANFIS): fuzzy pravidla, která se učí z dat
- Markovovy řetězce: přechodová matice, stacionární rozdělení a PageRank
- Skryté Markovovy modely: Viterbiho algoritmus a nepoctivé kasino
- Bayesovské sítě: proč je tráva mokrá a co z toho plyne pro postřikovač
- Kalmanův filtr: jak z nepřesných měření odhadnout, kde auto je a jak rychle jede
- Druhy strojového učení: s učitelem, bez učitele, s částečným učitelem a další
- Přeučení a regularizace: proč model, který zná data nazpaměť, selže
- Vyhodnocení modelu: křížová validace, F1 a křivka ROC
- Shlukování a snížení dimenze: k-means, PCA a t-SNE
- Klasifikace a regrese: dvě úlohy učení s učitelem
- Lineární regrese: nejmenší čtverce geometricky i maticově
- Polynomiální a nelineární regrese: jak přímku ohnout
- Logistická regrese: sigmoida, šance a křížová entropie
- Vícetřídní klasifikace a softmax: od dvou tříd k mnoha
- Naivní Bayesův klasifikátor: spamový filtr, který funguje lépe, než by měl
- Ztrátové funkce: co přesně model minimalizuje
- Rozhodovací stromy a k nejbližších sousedů: modely bez vzorců
- Ansámbly: náhodný les a gradient boosting
- SVM a jádrový trik: nejširší hranice a jak ji ohnout
- Signál a vzorkování: proč platí Nyquistův teorém
- Fourierova transformace: rozklad signálu na frekvence
- Filtry a konvoluce: vyhlazení, hrany a odstranění šumu
- Zvuk a řeč: spektrogram, melová škála a MFCC
- Obraz jako signál: pixely, barvy, konvoluce a hrany
- Perceptron a umělý neuron: nejjednodušší neuronová síť a co neumí
- Neuronová síť od nuly: zpětné šíření chyby krok za krokem
- Aktivace, inicializace a normalizace: drobnosti, na kterých hluboká síť stojí
- Konvoluční sítě: jak síť poznává obrázky
- Rekurentní sítě: paměť pro posloupnosti a mizející gradient
- LSTM a GRU: brány, které rozhodují, co si síť zapamatuje
- Autoenkodéry: síť, která se učí data stlačit a zase rozbalit
- Embeddingy a word2vec: jak se slovo stane vektorem
- Mechanismus pozornosti: jak se model naučí, kam se dívat
- Transformery a velké jazykové modely: architektura krok za krokem
- Tokenizace: jak se text rozseká na kousky pro model
- Předtrénování a škálování: proč větší model a víc dat funguje
- Doladění a RLHF: jak se z doplňovače textu stane asistent
- Prompty, kontext a RAG: jak modelu dát správné informace
- Variační autoenkodéry (VAE): nové obrázky ze spojitého latentního prostoru
- Generativní adversariální sítě (GAN): padělatel proti detektivovi
- Difúzní modely: jak se z čistého šumu stane obrázek
- Markovovy rozhodovací procesy: stavy, akce, odměny a Bellmanovy rovnice
- Q-learning a DQN: učení hodnoty akcí od tabulky po neuronovou síť
- Policy gradient a PPO: učení přímo strategie
- Jak funguje AI agent: jazykový model ve smyčce s nástroji
- Programování s AI agenty: zadání, testy a kontrola
- Vyhodnocení a bezpečnost AI systémů: jak měřit a jak hlídat
Celá osnova série 83 z 83 témat hotovo
- Jak se Sugenův fuzzy systém zapíše jako síť a které parametry se v ní učí.
- Proč hybridní učení (nejmenší čtverce plus gradient) předběhne čistý gradientní sestup.
- Proč s přibývajícími pravidly hrozí přeučení a co zbude z čitelnosti naučených pravidel.
Co se hodí znát předem: Fuzzy řízení: Mamdani a Sugeno od ventilátoru po kyvadlo na vozíku, Gradientní sestup: jak se model učí
Fuzzy regulátory z minulých dílů měly jednu slabinu: pravidla i funkce příslušnosti musel někdo vymyslet. Když zkušený operátor existuje, je to výhoda. Když ne — nebo když má systém kopírovat naměřená data —, je to problém. Neuronové sítě mají opačnou povahu: naučí se cokoli z dat, ale co se naučily, nikdo nepřečte. V roce 1993 spojil Jyh-Shing Roger Jang obojí do systému ANFIS (Adaptive Neuro-Fuzzy Inference System): Sugenův fuzzy systém zapsaný jako síť, jejíž parametry se učí z dat. Tímhle dílem končí modul o fuzzy logice.
Navazuje na díly Fuzzy řízení: Mamdani a Sugeno a Gradientní sestup.
1. Fuzzy systém jako síť
Vezměme Sugenův systém prvního řádu s jedním vstupem a čtyřmi pravidly „KDYŽ x je Ai, PAK y = pix + ri“. Každý krok jeho výpočtu je vrstva sítě:
Definice — ANFIS (Jang, 1993)
Nechť n ≥ 1 je počet pravidel a pro každé i = 1, …, n jsou dány parametry předpokladů ci ∈ ℝ, σi > 0 a parametry závěrů pi, ri ∈ ℝ. ANFIS s jedním vstupem a n pravidly „KDYŽ x je Ai, PAK y = pix + ri“ je funkce y : ℝ → ℝ, jejíž hodnota ve vstupu x ∈ ℝ se počítá v pěti vrstvách (pro i = 1, …, n):
- Příslušnost: μi(x) = exp(−(x − ci)2/2σi2) ∈ (0, 1] — gaussovská funkce příslušnosti termínu Ai se středem ci a šířkou σi.
- Síla pravidla: wi = μi(x) (s více vstupy součin příslušností všech podmínek pravidla).
- Normalizace: w̄i = wi/∑j=1n wj (jmenovatel je kladný, protože každé wj > 0).
- Závěr: w̄i · (pix + ri).
- Součet: y(x) = ∑i=1n w̄i (pix + ri).
Je to tedy výstup regulátoru Takagi–Sugeno prvního řádu se součinem jako t-normou, jen zapsaný jako síť; vrstvy 1 a 4 obsahují učené parametry.
Je to přesně Sugenův regulátor z minulého dílu, jen nakreslený jako síť. Každé pravidlo má „oblast působnosti“ (gaussovský kopec) a v ní lineární předpověď. Výstup je vážený průměr předpovědí podle toho, jak moc je vstup v oblasti kterého pravidla. Celý systém je derivovatelný, a tak se dá učit stejně jako neuronová síť.
y = ∑i wi/∑j wj · (pix + ri)
- y
- výstup celého systému pro vstup x — to, co porovnáváme s daty a čím se měří chyba
- ∑i
- součet přes všechna pravidla — každé přispěje, žádné se „nevybírá“; proto je výstup hladký a dá se derivovat
- wi/∑j wj
- normalizovaná síla w̄i — dělení součtem zajistí, že váhy dají dohromady 1, takže výstup je vážený průměr závěrů a nezávisí na tom, jak vysoké jsou kopce
- pix + ri
- lineární závěr pravidla — místní přímka, která funkci popisuje v oblasti pravidla; přímka místo konstanty dovolí s málo pravidly sledovat i sklon
μi(x) = exp( − (x − ci)2/2σi2 )
- μi(x)
- stupeň příslušnosti z [0, 1] — jak moc je x „kolem ci“; exponenciála záporného čísla je vždy mezi 0 a 1 a ve středu je přesně 1
- (x − ci)2
- čtverec vzdálenosti od středu — příslušnost klesá na obě strany stejně a je hladká i ve středu (s absolutní hodnotou by tam měla hrot a derivace by neexistovala)
- 2σi2
- šířka kopce — vzdálenost se měří v jednotkách σi, takže ve vzdálenosti σi od středu je příslušnost vždy exp(−1/2) ≈ 0,61; učením σi se mění, jak daleko pravidlo „dosáhne“
Příklad — dopředný průchod v bodě x = 3
Vezměme systém po nulté epoše učení (viz níže): středy c = 0, 2, 4, 6, všechny šířky σ = 1 a závěry z nejmenších čtverců. Pro x = 3 jsou vzdálenosti od středů 3, 1, 1, 3, a tedy
- příslušnost a síla (barvy podle vzorce pro μi): w1 = exp(−32/2 · 12) = e−4,5, w2 = exp(−12/2 · 12) = e−0,5 a souměrně w3 = e−0,5, w4 = e−4,5; tedy w = (0,0111; 0,6065; 0,6065; 0,0111);
- normalizace (barvy od tohoto kroku podle vzorce pro y): součet je 1,2353, takže w̄ = (0,0090; 0,4910; 0,4910; 0,0090), např. w̄2 = 0,6065/1,2353;
- závěry: přímky pix + ri s naučenými koeficienty (9,54x + 0,01; 9,34x − 17,38; 8,56x − 36,61; 2,60x − 18,90) mají v bodě 3 hodnoty (28,63; 10,66; −10,94; −11,09) — koeficienty jsou zaokrouhlené, hodnoty spočítané z přesných;
- součet součinů w̄i · (pix + ri): y = 0,2574 + 5,2329 − 5,3698 − 0,0997 ≈ 0,021.
Skutečná hodnota je sin(3) = sin(32/3) ≈ 0,141. Všimněte si, že výstup vzniká odečtením dvou velkých, skoro stejných příspěvků — k tomu se vrátíme u čitelnosti.
2. Hybridní učení
Chceme minimalizovat střední kvadratickou chybu na trénovacích datech. Šlo by to celé gradientním sestupem. Jang si ale všiml, že výstup je v parametrech závěrů lineární.
Definice — střední kvadratická chyba a RMSE
Nechť N ≥ 1, (x1, y1), …, (xN, yN) ∈ ℝ × ℝ jsou data a ŷ : ℝ → ℝ model (jeho výstup pro vstup x je ŷ(x)). Střední kvadratická chyba modelu ŷ na těchto datech je číslo
E = 1/N ∑k=1N (ŷ(xk) − yk)2 ≥ 0
a RMSE (root mean square error) je její odmocnina, RMSE = √E. Minimalizovat jednu nebo druhou je totéž; RMSE se ale uvádí, protože má jednotky výstupu. Všechny chyby v tomhle dílu jsou RMSE.
RMSE = √1/N ∑k (ŷ(xk) − yk)2
- ŷ(xk)
- předpověď systému v k-tém bodě — jediné místo, kudy do chyby vstupují parametry c, σ, p, r
- − yk, pak na druhou
- odchylka od naměřené hodnoty, umocněná — znaménko nehraje roli, velké chyby váží víc než malé a čtverec se dá hladce derivovat (a pro závěry dovolí přesné řešení nejmenšími čtverci)
- 1/N ∑k
- průměr přes body — chyba na 40 trénovacích a na 121 testovacích bodech je pak srovnatelná
Algoritmus — hybridní učení
Při pevných předpokladech je y(x) = ∑i ((w̄ix) pi + w̄i ri) lineární funkce parametrů závěrů. Na tom stojí tento algoritmus.
Vstup: trénovací data (xk, yk) ∈ ℝ × ℝ, k = 1, …, N; počet pravidel n; počáteční středy ci ∈ ℝ a šířky σi > 0; krok učení η > 0; počet epoch T ∈ ℕ; nejmenší povolená šířka σmin > 0. Výstup: parametry ci, σi, pi, ri, i = 1, …, n. Pro epochy t = 0, 1, …, T opakuj:
- dopředu: spočítej w̄i(xk) pro všechna i a k a parametry závěrů pi, ri najdi přesně metodou nejmenších čtverců (definice níže);
- zastavení: je-li t = T, skonči a vrať parametry;
- dozadu: s takto nalezenými závěry udělej krok gradientního sestupu pro středy a šířky (gradienty podle věty níže): ci ← ci − η ∂E/∂ci, σi ← max(σmin, σi − η ∂E/∂σi).
V příkladu tohoto dílu je η = 0,1, T = 300 a σmin = 0,05.
Tam, kde jde úloha vyřešit přesně, ji přesně vyřeš; gradient nech jen na to, co přesně vyřešit nejde. Lineární regrese z dílu o statistice najde nejlepší přímku jedním výpočtem — a tady najde najednou nejlepší lineární závěry všech pravidel. Gradient pak jen posouvá a rozšiřuje kopce funkcí příslušnosti.
Definice — nejmenší čtverce pro závěry
Nechť (xk, yk) ∈ ℝ × ℝ, k = 1, …, N, jsou trénovací data, n ≥ 1 počet pravidel a parametry předpokladů ci, σi pevné. Pak jsou w̄i(xk) jen čísla (zkráceně w̄i). Seřaďme parametry závěrů do vektoru θ = (p1, r1, …, pn, rn) ∈ ℝ2n a pro každý bod k sestavme řádek
ak = (w̄1xk, w̄1, …, w̄nxk, w̄n) ∈ ℝ2n, takže ŷ(xk) = ak · θ.
Řádky a1, …, aN tvoří matici A ∈ ℝN×2n a y = (y1, …, yN) ∈ ℝN. Řešení metodou nejmenších čtverců je vektor
θ* ∈ argminθ ∈ ℝ2n ‖Aθ − y‖2/N,
tj. parametry závěrů s nejmenší střední kvadratickou chybou. Každé takové θ* splňuje normální rovnice ATA θ = ATy — soustavu 2n lineárních rovnic (a naopak každé jejich řešení je minimem; jediné je, právě když má A lineárně nezávislé sloupce). Pro 4 pravidla a 40 bodů je A matice 40 × 8 a soustava má 8 rovnic. Náš výpočet přičítá k diagonále ATA ještě 10−6 (malý hřebenový člen), aby soustava byla řešitelná i při téměř závislých sloupcích, a řeší ji Gaussovou eliminací.
Věta — gradient podle středu a šířky
Nechť (xk, yk) ∈ ℝ × ℝ, k = 1, …, N, jsou data a ŷ ANFIS s n pravidly a parametry ci ∈ ℝ, σi > 0, pi, ri ∈ ℝ. Nechť E je jeho střední kvadratická chyba na datech, chápaná jako funkce všech parametrů, a pro vstup x označme wi = exp(−(x − ci)2/2σi2), W = ∑j wj, w̄i = wi/W a gi = pix + ri. Pak pro 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 se berou v bodě x = xk.
Důkaz. Ze ŷ = ∑j wjgj/W plyne derivací podílu ∂ŷ/∂wi = giW − ∑j wjgj/W2 = gi − ŷ/W. Derivace gaussovského kopce jsou ∂wi/∂ci = wi x − ci/σi2 a ∂wi/∂σi = wi (x − ci)2/σi3, a parametry ci, σi ovlivňují ŷ jen přes wi. Řetízkovým pravidlem ∂E/∂ci = 2/N ∑k (ŷ − yk) · gi − ŷ/W · wi xk − ci/σi2 a wi/W = w̄i dá první vzorec; druhý stejně. ∎
∂E/∂ci = 2/N ∑k (ŷ − yk) (gi − ŷ) w̄i xk − ci/σi2
- ∂E/∂ci
- jak se změní chyba, když posuneme střed i-tého kopce — krok učení jde proti tomuto znaménku
- ŷ − yk
- chyba v bodě — kde systém trefuje, tam bod nic nechce a do gradientu nepřispěje
- gi − ŷ
- čím se závěr pravidla liší od celkového výstupu — přidat pravidlu váhu táhne výstup k jeho závěru; když závěr říká totéž co celek, posouvat kopec nemá smysl
- w̄i
- podíl pravidla na výstupu — body daleko od kopce, kde pravidlo skoro nemluví, jeho střed téměř neovlivní
- xk − ci/σi2
- směr posunu — bod vpravo od středu táhne kopec doprava, vlevo doleva; ve středu samém je kopec plochý a posun nic nezmění
Celé učení z příkladu níže v pseudokódu (krok η = 0,1, 300 epoch):
c = středy rovnoměrně na [0, 6] # pro 4 pravidla 0, 2, 4, 6
σ = polovina rozestupu středů # pro 4 pravidla 1
for epocha in 0 … 300:
# dopředu: vrstvy 1–3, pak závěry přesně nejmenšími čtverci
wn[k][i] = w̄_i(x_k) pro všechny body k a pravidla i
A = řádky (wn[k][1]·x_k, wn[k][1], …, wn[k][n]·x_k, wn[k][n])
p, r = vyřeš (AᵀA + 10⁻⁶·I)·θ = Aᵀy
if epocha == 300: break
# dozadu: krok gradientu podle vzorců výše
gc, gσ = ∂E/∂c, ∂E/∂σ
c = c − η·gc
σ = max(0,05; σ − η·gσ) # kopec nesmí zaniknout
3. ANFIS se učí funkci
Úloha: z 40 zašuměných vzorků (šum se směrodatnou odchylkou 0,1) se naučit funkci y = sin(x2/3) na intervalu [0, 6]. Funkce se doprava vlní čím dál rychleji, takže čtyři pravidla rozmístěná rovnoměrně nejsou ideální. Chybu měříme i na 121 bodech bez šumu mimo trénovací data:
Hned v nulté epoše — jen s nejmenšími čtverci pro závěry a rovnoměrnými kopci — je chyba na testu 0,394 a na trénovacích datech 0,198. Pak se začnou učit předpoklady. Po 100 epochách je chyba na testu 0,202 a po 300 epochách 0,173. Na trénovacích datech klesne na 0,107 — pod úroveň šumu v datech (0,114), lépe to s rozumem nejde. Středy kopců se přitom posunuly jen málo; hlavní změna je v šířkách — poslední pravidlo vpravo, kde se funkce vlní nejrychleji, se zúžilo z 1 na 0,64.
Definice — úroveň šumu v datech
Nechť f : ℝ → ℝ je skutečná funkce, x1, …, xN ∈ ℝ vstupy a trénovací výstupy jsou yk = f(xk) + εk, k = 1, …, N, kde εk jsou náhodné odchylky (šum). Úroveň šumu v datech je RMSE, kterou by na trénovacích datech měla sama skutečná funkce f jako model:
√1/N ∑k=1N (f(xk) − yk)2 = √1/N ∑k=1N εk2.
V našem příkladu je N = 40, f(x) = sin(x2/3) a εk jsou nezávislé náhodné odchylky z normálního rozdělení se střední hodnotou 0 a směrodatnou odchylkou 0,1; úroveň šumu vyšla √1/40 ∑k εk2 = 0,114. Je o něco větší než 0,1 jen náhodou — v našich 40 vylosovaných odchylkách.
Model, který má na trénovacích datech chybu menší než úroveň šumu (0,107 < 0,114), už začíná kopírovat i náhodné odchylky. Na tak malém rozdílu to ještě nevadí — chyba na testu dál klesá —, ale je to první varování, ke kterému se vrátíme u počtu pravidel.
Čistý gradientní sestup pro všechny parametry začíná u nulových závěrů a učí se mnohem pomaleji: po 300 epochách má chybu na testu 0,387 a ani po 3 000 epochách (0,188) nedohoní hybridní učení po 300. Větší krok učení navíc rychle vede k divergenci. Rozdělit úlohu na lineární a nelineární část se vyplatí.
4. Kolik pravidel?
| Počet pravidel | 2 | 3 | 4 | 6 | 8 | 12 |
|---|---|---|---|---|---|---|
| Chyba na trénovacích datech | 0,510 | 0,181 | 0,107 | 0,098 | 0,089 | 0,085 |
| Chyba na testu | 0,590 | 0,177 | 0,173 | 0,172 | 0,566 | 0,319 |
S přibývajícími pravidly chyba na trénovacích datech pořád klesá. Na testu ale od osmi pravidel prudce roste — systém se začal učit šum: se 40 body a 32 parametry (8 pravidel × 4) má dost volnosti, aby mezi trénovacími body divoce kmital. To je přeučení, stejný jev jako u příliš ohnuté polynomiální regrese. Rozumný počet pravidel tady leží mezi třemi a šesti.
Příklad — kolik parametrů má ANFIS
S jedním vstupem má každé pravidlo dva parametry předpokladu (ci, σi) a dva parametry závěru (pi, ri), celkem 4n. Na 40 trénovacích bodů:
- 4 pravidla: 16 parametrů, z toho 8 lineárních — na každý lineární parametr připadá 40/8 = 5 bodů;
- 8 pravidel: 32 parametrů, z toho 16 lineárních — 40/16 = 2,5 bodu na lineární parametr, a nejmenší čtverce tak mají dost volnosti proložit i šum;
- 12 pravidel: 48 parametrů — víc, než je bodů. Nejmenší čtverce sice určují „jen“ 24 závěrů ze 40 rovnic, ale dalších 24 parametrů předpokladů může kopce přesunout a zúžit přesně tam, kde šum zrovna vybočil.
Užitečné pravidlo palce: bodů by mělo být aspoň několikrát víc než parametrů, které se z nich odhadují.
5. Co se dá přečíst
Slibem neuro-fuzzy systémů je, že naučený model zůstane čitelný. Předpoklady čitelné jsou: čtyři pravidla „kolem 0“, „kolem 2,2“, „kolem 4“ a „kolem 6,2“. Závěry ale ne. Pravidlo „KDYŽ x je kolem 2,2, PAK y = 10,06 x − 13,83“ by ve svém středu předpovídalo 8,25, přitom skutečná hodnota je 1,0. Jednotlivá pravidla se navzájem vyvažují — kopce se hodně překrývají a výstup dává smysl až jako celek.
Příklad — jak se pravidla vyvažují v bodě x = 2,195
Naučený střed druhého pravidla je c2 = 2,195. Tam má druhé pravidlo plnou příslušnost (w2 = 1), ale sousedé ne nulovou: w = (0,140; 1; 0,331; 0,000), součet 1,471, takže např. w̄2 = 1/1,471 ≈ 0,680 (barvy podle vzorce pro y v první části, gi = pix + ri):
| Pravidlo | 1 | 2 | 3 | 4 |
|---|---|---|---|---|
| váha w̄i | 0,095 | 0,680 | 0,225 | 0,000 |
| závěr gi | 12,64 | 8,25 | −25,64 | −31,68 |
| příspěvek w̄igi | 1,203 | 5,609 | −5,769 | 0,000 |
Součet je y = 1,203 + 5,609 − 5,769 = 1,043, skutečná hodnota sin(2,1952/3) = 0,999. Výstup je dobrý, ale vzniká jako rozdíl dvou příspěvků kolem ±5,7: druhé pravidlo „přestřeluje“ nahoru a třetí ho stahuje dolů. Žádné z pravidel samo o sobě neříká, kolik je y.
Interpretovatelnost tedy není zadarmo. Udržet ji pomáhají omezení: menší překryv funkcí příslušnosti, regularizace závěrů, nebo Sugeno nultého řádu s konstantními závěry. Za to se platí přesností. Je to stejná rovnováha jako všude ve strojovém učení — mezi tím, co model umí, a tím, co o něm umíme říct.
6. ANFIS a neuronové sítě
- Příbuznost se sítěmi RBF. Jang a Sun v roce 1993 ukázali, že sítě s radiálními bázovými funkcemi a Sugenovy fuzzy systémy nultého řádu jsou za mírných podmínek totéž, jen jinak vyložené.
- Prokletí dimenze. S n vstupy a k termíny na vstup má mřížka pravidel kn pravidel — pro 10 vstupů a 3 termíny přes 59 tisíc. Proto se ANFIS používá pro málo vstupů, nebo s pravidly vybranými shlukováním (třeba fuzzy c-means z minulého dílu).
- Aplikace. Předpovědi časových řad (klasickým testem je chaotická Mackeyova–Glassova řada), modelování a řízení soustav, kde máme naměřená data, ale málo teorie.
- Dnes. Hluboké sítě dávno převzaly úlohy s mnoha vstupy. Myšlenka „učitelné, ale čitelné“ ale žije dál ve vysvětlitelné AI — a fuzzy vrstvy se občas přidávají i do hlubokých sítí tam, kde je třeba výstup vyložit pravidly.
Definice — síť s radiálními bázovými funkcemi (RBF)
Nechť d ≥ 1 je počet vstupů, n ≥ 1 počet skrytých neuronů, c1, …, cn ∈ ℝd středy, v1, …, vn ∈ ℝ výstupní váhy a φ : [0, ∞) → (0, ∞) klesající radiální bázová funkce (typicky gaussovská, φ(t) = exp(−t2/2σ2) s σ > 0). Normalizovaná síť RBF je funkce y : ℝd → ℝ,
y(x) = ∑i=1n vi φ(‖x − ci‖)/∑j=1n φ(‖x − cj‖),
kde ‖·‖ je euklidovská norma; jmenovatel je kladný, protože φ má kladné hodnoty. Výstup je tedy vážený průměr výstupních vah, kde váha neuronu i klesá se vzdáleností vstupu od jeho středu ci. Sugenův systém nultého řádu s gaussovskými příslušnostmi a součinem jako „a zároveň“ je y = ∑i w̄i ri — po dosazení wi = φ(‖x − ci‖) a vi = ri přesně týž vzorec. Zjednodušeně řečeno: pravidlo = neuron, funkce příslušnosti = bázová funkce, závěr = výstupní váha. (Jang a Sun, 1993, vyjmenovávají podmínky přesně: stejný počet pravidel a neuronů, konstantní závěry, gaussovské příslušnosti, v rámci jednoho pravidla se stejnou šířkou, součin jako „a zároveň“ a stejný způsob skládání výstupu — vážený průměr, nebo vážený součet.)
Příklad — prokletí dimenze v číslech
S n vstupy a k termíny na každý vstup má úplná mřížka kn pravidel. Sugenův závěr prvního řádu y = p1x1 + … + pnxn + r má n + 1 parametrů, takže lineárních parametrů je kn(n + 1). Parametrů předpokladů je jen 2kn — každý vstup má svých k kopců, sdílených všemi pravidly.
Pro n = 10 a k = 3: 310 = 59 049 pravidel, 59 049 · 11 = 649 539 parametrů závěrů a 2 · 3 · 10 = 60 parametrů předpokladů. Nejmenší čtverce by řešily soustavu o 649 539 neznámých — a dat by bylo potřeba ještě mnohem víc.
7. Shrnutí
- ANFIS je Sugenův fuzzy systém zapsaný jako pětivrstvá síť: příslušnost, síla, normalizace, závěr, součet.
- Hybridní učení najde lineární závěry přesně nejmenšími čtverci a středy a šířky funkcí příslušnosti doladí gradientem.
- Na funkci sin(x2/3) snížilo učení předpokladů chybu na testu z 0,394 na 0,173; čistý gradient potřeboval desetkrát víc epoch na horší výsledek.
- Příliš mnoho pravidel vede k přeučení — od osmi pravidel chyba na testu prudce roste.
- Předpoklady zůstanou čitelné, závěry se ale navzájem vyvažují; interpretovatelnost je třeba hlídat.
Tímhle dílem končí modul o fuzzy logice: od slova „teplo“ přes logiku a regulátory až k systému, který se pravidla učí sám. Chcete si to osahat? Nechte AI agenta naučit ANFIS spotřebu elektřiny podle teploty z veřejných dat — a pak se podívejte, která pravidla dávají smysl.
Máte na to jiný názor? Napište na support@coden-app.com.