Přeskočit na obsah
coden

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.

13 minut Matěj Žalmánek 2026-10-15

Série Základy AI Díl 37 z 83
  1. Mapa umělé inteligence: co je co a jak to do sebe zapadá
  2. Stručná historie umělé inteligence: od Turinga po jazykové modely
  3. Data, model, trénink, inference: základní pojmy na jednom příkladu
  4. Jak číst matematický zápis: symboly, indexy, sumy a kvantifikátory
  5. Množiny a relace: stavebnice, ze které se skládají definice v AI
  6. Funkce a zobrazení: proč je každý model v AI funkce
  7. Logika a důkazy: pravidla, podle kterých se v AI uvažuje
  8. Grafy a stromy: struktura, na které stojí hledání i neuronové sítě
  9. Lineární algebra pro strojové učení: vektory, matice a proč AI hlavně násobí
  10. Derivace, gradient a řetízkové pravidlo: jak model zjistí, kterým směrem se učit
  11. Gradientní sestup: jak se model učí
  12. Co je pravděpodobnost: od hodu kostkou ke Kolmogorovovým axiomům
  13. Podmíněná pravděpodobnost a Bayesova věta: jak změnit odhad, když se dozvíte něco nového
  14. Náhodná veličina a distribuční funkce: jedna funkce, která o rozdělení řekne všechno
  15. Funkce hustoty a pravděpodobnostní funkce: proč má spojitá veličina v bodě pravděpodobnost nula
  16. Střední hodnota, rozptyl a kovariance: kde rozdělení leží, jak je široké a co s čím souvisí
  17. Přehled pravděpodobnostních rozdělení: Bernoulli, binomické, Poisson, rovnoměrné, normální a exponenciální
  18. Zákon velkých čísel a centrální limitní věta: proč se průměry chovají tak předvídatelně
  19. Statistika a odhady parametrů: maximální věrohodnost, MAP a intervaly spolehlivosti
  20. Teorie informace: entropie, křížová entropie a KL divergence — odkud se berou ztrátové funkce
  21. Prohledávání stavového prostoru: BFS, DFS, UCS a A* s animacemi
  22. Hry a protivník: minimax, alfa-beta ořezávání a Monte Carlo tree search
  23. Splňování omezujících podmínek: backtracking, propagace omezení a AC-3 na sudoku a mapě krajů
  24. Logika a znalostní systémy: dopředné a zpětné řetězení, rezoluce a expertní systémy
  25. Plánování: STRIPS, svět kostek, heuristiky z relaxace a plánování v AI agentech
  26. Lokální hledání a simulované žíhání: obchodní cestující přes krajská města
  27. Genetické algoritmy: populace, křížení, mutace a výběr na batohu na výlet
  28. Evoluční strategie a genetické programování: od pravidla jedné pětiny po Keplerův zákon
  29. Optimalizace mravenčí kolonií: jak feromonová stopa najde krátkou cestu
  30. Optimalizace hejnem částic: setrvačnost, vlastní zkušenost a zkušenost hejna
  31. Neuroevoluce: evoluce vah i tvaru neuronových sítí a algoritmus NEAT
  32. Fuzzy množiny a funkce příslušnosti: jak zapsat „trochu teplo“
  33. Fuzzy logika a pravděpodobnost: proč „trochu teplo“ neznamená „pravděpodobně teplo“
  34. Fuzzy logika: t-normy, implikace a pravidla KDYŽ–PAK
  35. Fuzzy řízení: Mamdani a Sugeno od ventilátoru po kyvadlo na vozíku
  36. Fuzzy shlukování: algoritmus fuzzy c-means a body mezi shluky
  37. Neuro-fuzzy systémy (ANFIS): fuzzy pravidla, která se učí z dat
  38. Markovovy řetězce: přechodová matice, stacionární rozdělení a PageRank
  39. Skryté Markovovy modely: Viterbiho algoritmus a nepoctivé kasino
  40. Bayesovské sítě: proč je tráva mokrá a co z toho plyne pro postřikovač
  41. Kalmanův filtr: jak z nepřesných měření odhadnout, kde auto je a jak rychle jede
  42. Druhy strojového učení: s učitelem, bez učitele, s částečným učitelem a další
  43. Přeučení a regularizace: proč model, který zná data nazpaměť, selže
  44. Vyhodnocení modelu: křížová validace, F1 a křivka ROC
  45. Shlukování a snížení dimenze: k-means, PCA a t-SNE
  46. Klasifikace a regrese: dvě úlohy učení s učitelem
  47. Lineární regrese: nejmenší čtverce geometricky i maticově
  48. Polynomiální a nelineární regrese: jak přímku ohnout
  49. Logistická regrese: sigmoida, šance a křížová entropie
  50. Vícetřídní klasifikace a softmax: od dvou tříd k mnoha
  51. Naivní Bayesův klasifikátor: spamový filtr, který funguje lépe, než by měl
  52. Ztrátové funkce: co přesně model minimalizuje
  53. Rozhodovací stromy a k nejbližších sousedů: modely bez vzorců
  54. Ansámbly: náhodný les a gradient boosting
  55. SVM a jádrový trik: nejširší hranice a jak ji ohnout
  56. Signál a vzorkování: proč platí Nyquistův teorém
  57. Fourierova transformace: rozklad signálu na frekvence
  58. Filtry a konvoluce: vyhlazení, hrany a odstranění šumu
  59. Zvuk a řeč: spektrogram, melová škála a MFCC
  60. Obraz jako signál: pixely, barvy, konvoluce a hrany
  61. Perceptron a umělý neuron: nejjednodušší neuronová síť a co neumí
  62. Neuronová síť od nuly: zpětné šíření chyby krok za krokem
  63. Aktivace, inicializace a normalizace: drobnosti, na kterých hluboká síť stojí
  64. Konvoluční sítě: jak síť poznává obrázky
  65. Rekurentní sítě: paměť pro posloupnosti a mizející gradient
  66. LSTM a GRU: brány, které rozhodují, co si síť zapamatuje
  67. Autoenkodéry: síť, která se učí data stlačit a zase rozbalit
  68. Embeddingy a word2vec: jak se slovo stane vektorem
  69. Mechanismus pozornosti: jak se model naučí, kam se dívat
  70. Transformery a velké jazykové modely: architektura krok za krokem
  71. Tokenizace: jak se text rozseká na kousky pro model
  72. Předtrénování a škálování: proč větší model a víc dat funguje
  73. Doladění a RLHF: jak se z doplňovače textu stane asistent
  74. Prompty, kontext a RAG: jak modelu dát správné informace
  75. Variační autoenkodéry (VAE): nové obrázky ze spojitého latentního prostoru
  76. Generativní adversariální sítě (GAN): padělatel proti detektivovi
  77. Difúzní modely: jak se z čistého šumu stane obrázek
  78. Markovovy rozhodovací procesy: stavy, akce, odměny a Bellmanovy rovnice
  79. Q-learning a DQN: učení hodnoty akcí od tabulky po neuronovou síť
  80. Policy gradient a PPO: učení přímo strategie
  81. Jak funguje AI agent: jazykový model ve smyčce s nástroji
  82. Programování s AI agenty: zadání, testy a kontrola
  83. Vyhodnocení a bezpečnost AI systémů: jak měřit a jak hlídat

Celá osnova série 83 z 83 témat hotovo

Co si odnesete
  • 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ě:

x A1 w N f1 A2 w N f2 A3 w N f3 A4 w N f4 ∑ y 1. příslušnost μ_A(x) c, σ 2. síla w_i — 3. normalizace w_i / ∑ w — 4. závěr w̄ (p x + r) p, r 5. součet ∑ —
ANFIS s jedním vstupem a čtyřmi pravidly; oranžově vrstvy s učenými parametry
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):

  1. 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.
  2. Síla pravidla: wi = μi(x) (s více vstupy součin příslušností všech podmínek pravidla).
  3. Normalizace: w̄i = wi/∑j=1n wj (jmenovatel je kladný, protože každé wj > 0).
  4. Závěr: w̄i · (pix + ri).
  5. 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.

Laicky řečeno

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
Výstup je průměr místních přímek vážený tím, jak moc vstup patří do oblasti kterého pravidla.

μ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

  1. 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);
  2. 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;
  3. 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;
  4. 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á
Odmocnina na konci vrací chybu do jednotek y: RMSE 0,1 znamená „typicky o 0,1 vedle“.
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:

  1. 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);
  2. zastavení: je-li t = T, skonči a vrať parametry;
  3. 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.

Laicky řečeno

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í
Pro šířku je vzorec stejný, jen poslední člen je (xk − ci)2/σi3: vzdálené body chtějí kopec rozšířit nebo zúžit, na směru nezáleží.

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:

−101 01 0123456 epocha 0 · chyba na testu 0,394 epocha 25 · chyba na testu 0,367 epocha 100 · chyba na testu 0,202 epocha 300 · chyba na testu 0,173 vstup x (bez jednotky) výstup y (bez jednotky) příslušnost μ (0–1)
Učení ANFIS se čtyřmi pravidly: nahoře výstup, dole funkce příslušnosti

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.

00,20,40,6 0100200300 epocha (počet průchodů daty) chyba na testu (RMSE)
Chyba na testu: hybridní učení proti čistému gradientu hybridní jen gradient přerušovaně šum v datech

Č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 pravidel2346812
Chyba na trénovacích datech0,5100,1810,1070,0980,0890,085
Chyba na testu0,5900,1770,1730,1720,5660,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):

Pravidlo1234
váha w̄i0,0950,6800,2250,000
závěr gi12,648,25−25,64−31,68
příspěvek w̄igi1,2035,609−5,7690,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.

Agent na vašem počítači, ovládaný z telefonu