Sistemi neuro-fuzzy (ANFIS): regole fuzzy che imparano dai dati
Un sistema fuzzy di Sugeno come rete a cinque strati, apprendimento ibrido con minimi quadrati e gradiente, apprendimento di una funzione da dati rumorosi, scelta del numero di regole e overfitting, leggibilità delle regole apprese e legame con le reti RBF.
Serie Basi di IA Parte 37 di 52
- Mappa dell’intelligenza artificiale: che cos’è ciascuna cosa e come si incastra tutto
- Breve storia dell’intelligenza artificiale: da Turing ai modelli linguistici
- Dati, modello, addestramento, inferenza: i concetti di base su un unico esempio
- Come leggere la notazione matematica: simboli, indici, sommatorie e quantificatori
- Insiemi e relazioni: i mattoncini con cui si costruiscono le definizioni nell’IA
- Funzioni e applicazioni: perché ogni modello di IA è una funzione
- Logica e dimostrazioni: le regole con cui si ragiona nell’IA
- Grafi e alberi: la struttura su cui poggiano la ricerca e le reti neurali
- Algebra lineare per l’apprendimento automatico: vettori, matrici e perché l’IA soprattutto moltiplica
- Derivate, gradiente e regola della catena: come un modello capisce in quale direzione imparare
- Discesa del gradiente: come impara un modello
- Che cos’è la probabilità: dal lancio di un dado agli assiomi di Kolmogorov
- Probabilità condizionata e teorema di Bayes: come cambiare una stima quando scopri qualcosa di nuovo
- Variabile aleatoria e funzione di ripartizione: una sola funzione che dice tutto sulla distribuzione
- Funzione di densità e funzione di massa: perché una variabile continua ha probabilità zero in un punto
- Valore atteso, varianza e covarianza: dove si trova una distribuzione, quanto è larga e che cosa è legato a che cosa
- Panoramica delle distribuzioni di probabilità: Bernoulli, binomiale, Poisson, uniforme, normale ed esponenziale
- Legge dei grandi numeri e teorema del limite centrale: perché le medie si comportano in modo così prevedibile
- Statistica e stima dei parametri: massima verosimiglianza, MAP e intervalli di confidenza
- Teoria dell’informazione: entropia, entropia incrociata e divergenza KL — da dove vengono le funzioni di perdita
- Ricerca nello spazio degli stati: BFS, DFS, UCS e A* con animazioni
- Giochi e avversari: minimax, potatura alfa-beta e Monte Carlo tree search
- Soddisfacimento di vincoli: backtracking, propagazione dei vincoli e AC-3 su un sudoku e una mappa delle regioni ceche
- Logica e sistemi basati sulla conoscenza: concatenazione in avanti e all’indietro, risoluzione e sistemi esperti
- Pianificazione: STRIPS, il mondo dei blocchi, euristiche dal rilassamento e pianificazione negli agenti IA
- Ricerca locale e ricottura simulata: un commesso viaggiatore tra i capoluoghi di regione cechi
- Algoritmi genetici: popolazione, incrocio, mutazione e selezione su uno zaino per l’escursione
- Strategie evolutive e programmazione genetica: dalla regola di un quinto alla legge di Keplero
- Ottimizzazione con colonie di formiche: come una traccia di feromone trova un percorso breve
- Ottimizzazione a sciame di particelle: inerzia, esperienza propria ed esperienza dello sciame
- Neuroevoluzione: evoluzione dei pesi e della forma delle reti neurali e l’algoritmo NEAT
- Insiemi fuzzy e funzioni di appartenenza: come scrivere «un po’ caldo»
- Logica fuzzy e probabilità: perché «un po’ caldo» non significa «probabilmente caldo»
- Logica fuzzy: t-norme, implicazioni e regole SE–ALLORA
- Controllo fuzzy: Mamdani e Sugeno, dal ventilatore al pendolo inverso su un carrello
- Clustering fuzzy: l’algoritmo fuzzy c-means e i punti tra i cluster
- Sistemi neuro-fuzzy (ANFIS): regole fuzzy che imparano dai dati
- Catene di Markov: matrice di transizione, distribuzione stazionaria e PageRank
- Modelli di Markov nascosti: l’algoritmo di Viterbi e il casinò disonesto
- Reti bayesiane: perché l’erba è bagnata e che cosa significa per l’irrigatore
- Filtro di Kalman: come stimare da misure imprecise dove si trova un’auto e a che velocità va
- Tipi di apprendimento automatico: supervisionato, non supervisionato, semi-supervisionato e altri
- Prompt, contesto e RAG: come dare a un modello le informazioni giuste
- Autoencoder variazionali (VAE): immagini nuove da uno spazio latente continuo
- Reti generative avversarie (GAN): il falsario contro il detective
- Modelli di diffusione: come il rumore puro diventa un’immagine
- Processi decisionali di Markov: stati, azioni, ricompense ed equazioni di Bellman
- Q-learning e DQN: imparare il valore delle azioni, dalla tabella alla rete neurale
- Policy gradient e PPO: imparare direttamente la politica
- Come funziona un agente IA: un modello linguistico in un ciclo con strumenti
- Programmare con agenti IA: incarico, test e controllo
- Valutazione e sicurezza dei sistemi di IA: come misurare e come sorvegliare
Programma completo della serie 52 di 83 argomenti pubblicati
- Come si scrive un sistema fuzzy di Sugeno sotto forma di rete e quali suoi parametri vengono appresi.
- Perché l’apprendimento ibrido (minimi quadrati più gradiente) supera la pura discesa del gradiente.
- Perché aggiungere regole porta al rischio di overfitting e che cosa resta della leggibilità delle regole apprese.
Utile sapere prima: Controllo fuzzy: Mamdani e Sugeno, dal ventilatore al pendolo inverso su un carrello, Discesa del gradiente: come impara un modello
I controllori fuzzy delle parti precedenti avevano un punto debole: regole e funzioni di appartenenza doveva inventarle qualcuno. Quando un operatore esperto esiste, è un vantaggio. Quando no — o quando il sistema deve riprodurre dati misurati —, è un problema. Le reti neurali hanno la natura opposta: imparano qualunque cosa dai dati, ma quello che hanno imparato non lo legge nessuno. Nel 1993 Jyh-Shing Roger Jang unì le due cose nel sistema ANFIS (Adaptive Neuro-Fuzzy Inference System): un sistema fuzzy di Sugeno scritto come rete, i cui parametri si imparano dai dati. Con questa parte si chiude il modulo sulla logica fuzzy.
Riprende le parti Controllo fuzzy: Mamdani e Sugeno e Discesa del gradiente.
1. Un sistema fuzzy come rete
Prendiamo un sistema di Sugeno del primo ordine con un ingresso e quattro regole «SE x è Ai, ALLORA y = pix + ri». Ogni passo del suo calcolo è uno strato della rete:
Definizione — ANFIS (Jang, 1993)
- Appartenenza: μi(x) = exp(−(x − ci)2 / 2σi2) — funzione gaussiana con centro ci e larghezza σi.
- Forza della regola: wi = prodotto delle appartenenze della premessa (con un solo ingresso è solo μi(x)).
- Normalizzazione: w̄i = wi / ∑j wj.
- Conseguente: w̄i · (pix + ri).
- Somma: y = ∑i w̄i (pix + ri).
I parametri delle premesse sono ci, σi; i parametri dei conseguenti pi, ri.
È esattamente il controllore di Sugeno della parte precedente, solo disegnato come rete. Ogni regola ha una «zona di competenza» (una collina gaussiana) e al suo interno una previsione lineare. L’uscita è la media pesata delle previsioni secondo quanto l’ingresso sta nella zona di ciascuna regola. L’intero sistema è derivabile, e quindi si può addestrare proprio come una rete neurale.
y = ∑i wi / ∑j wj · (pix + ri)
- y
- l’uscita dell’intero sistema per l’ingresso x — ciò che confrontiamo con i dati durante l’apprendimento
- ∑i
- somma su tutte le regole — ciascuna contribuisce, nessuna viene «scelta»; per questo l’uscita è liscia e si può derivare
- wi / ∑j wj
- forza normalizzata w̄i — la divisione per la somma garantisce che i pesi diano insieme 1, così l’uscita è una media pesata dei conseguenti e non dipende da quanto sono alte le colline
- pix + ri
- conseguente lineare della regola — una retta locale che descrive la funzione nella zona della regola; una retta invece di una costante permette di seguire anche la pendenza con poche regole
μi(x) = exp( − (x − ci)2 / 2σi2 )
- μi(x)
- grado di appartenenza in [0, 1] — quanto x è «intorno a ci»; l’esponenziale di un numero negativo sta sempre tra 0 e 1 e nel centro vale esattamente 1
- (x − ci)2
- quadrato della distanza dal centro — l’appartenenza cala allo stesso modo da entrambi i lati ed è liscia anche nel centro (con il valore assoluto lì avrebbe una punta e la derivata non esisterebbe)
- 2σi2
- larghezza della collina — la distanza si misura in unità di σi, quindi a distanza σi dal centro l’appartenenza è sempre e−1/2 ≈ 0,61; imparando σi cambia fin dove la regola «arriva»
Esempio — passaggio in avanti nel punto x = 3
Prendiamo il sistema dopo l’epoca zero dell’apprendimento (vedi sotto): centri c = 0, 2, 4, 6, tutte le larghezze σ = 1 e conseguenti dai minimi quadrati. Per x = 3 le distanze dai centri sono 3, 1, 1, 3, e quindi
- appartenenza e forza: w = (e−4,5; e−0,5; e−0,5; e−4,5) = (0,0111; 0,6065; 0,6065; 0,0111);
- normalizzazione: la somma è 1,2353, quindi w̄ = (0,0090; 0,4910; 0,4910; 0,0090);
- conseguenti: le rette pix + ri con i coefficienti appresi (9,54x + 0,01; 9,34x − 17,38; 8,56x − 36,61; 2,60x − 18,90) hanno nel punto 3 i valori (28,63; 10,66; −10,94; −11,09) — i coefficienti sono arrotondati, i valori calcolati da quelli esatti;
- somma: y = 0,2574 + 5,2329 − 5,3698 − 0,0997 ≈ 0,021.
Il valore vero è sin(3) = sin(32/3) ≈ 0,141. Nota che l’uscita nasce sottraendo due contributi grandi e quasi uguali — ci torneremo parlando di leggibilità.
2. Apprendimento ibrido
Vogliamo minimizzare l’errore quadratico medio sui dati di addestramento. Si potrebbe fare tutto con la discesa del gradiente. Jang però notò che l’uscita è lineare nei parametri dei conseguenti.
Definizione — errore quadratico medio e RMSE
Per i dati (x1, y1), …, (xN, yN) e l’uscita del modello ŷ(x), l’errore quadratico medio è E = (1/N) ∑k (ŷ(xk) − yk)2 e l’RMSE (root mean square error) è la sua radice √E. Minimizzare l’uno o l’altra è la stessa cosa; si riporta però l’RMSE perché ha le unità dell’uscita. Tutti gli errori in questa parte sono RMSE.
RMSE = √( (1/N) ∑k (ŷ(xk) − yk)2 )
- ŷ(xk)
- previsione del sistema nel k-esimo punto — l’unico punto da cui i parametri c, σ, p, r entrano nell’errore
- − yk, poi al quadrato
- scarto dal valore misurato, elevato al quadrato — il segno non conta, gli errori grandi pesano più di quelli piccoli e il quadrato si deriva senza problemi (e per i conseguenti permette la soluzione esatta con i minimi quadrati)
- (1/N) ∑k
- media sui punti — l’errore sui 40 punti di addestramento e sui 121 punti di test diventa così confrontabile
Algoritmo — apprendimento ibrido
Con le premesse fisse, y(x) = ∑i (w̄ix) pi + w̄i ri è una funzione lineare dei parametri dei conseguenti. In ogni epoca quindi:
- in avanti: calcola w̄i per tutti i dati e trova i parametri dei conseguenti in modo esatto con il metodo dei minimi quadrati;
- all’indietro: con i conseguenti così trovati fai un passo di discesa del gradiente per i centri ci e le larghezze σi.
Dove il problema si può risolvere esattamente, risolvilo esattamente; lascia al gradiente solo ciò che esattamente non si può risolvere. La regressione lineare della parte sulla statistica trova la retta migliore con un solo calcolo — e qui trova in una volta i migliori conseguenti lineari di tutte le regole. Il gradiente poi si limita a spostare e allargare le colline delle funzioni di appartenenza.
Definizione — minimi quadrati per i conseguenti
Con ci, σi fissi, i w̄i(xk) sono semplici numeri. Mettiamo i parametri dei conseguenti in un vettore θ = (p1, r1, …, pn, rn) e per ogni punto costruiamo la riga
ak = (w̄1xk, w̄1, …, w̄nxk, w̄n), così che ŷ(xk) = ak · θ.
Le righe formano la matrice A (N × 2n) e l’errore è ‖Aθ − y‖2/N. Il suo minimo soddisfa le equazioni normali ATA θ = ATy — un sistema di 2n equazioni lineari. Per 4 regole e 40 punti A è una matrice 40 × 8 e il sistema ha 8 equazioni. Il nostro calcolo aggiunge alla diagonale di ATA anche 10−6 (un piccolo termine ridge), perché il sistema sia risolvibile anche con colonne quasi dipendenti, e lo risolve con l’eliminazione di Gauss.
Teorema — gradiente rispetto a centro e larghezza
Poniamo gi = pix + ri e W = ∑j wj. Da ŷ = ∑j wjgj / W la derivata del quoziente dà ∂ŷ/∂wi = (gi − ŷ)/W. Le derivate della collina gaussiana sono ∂wi/∂ci = wi(x − ci)/σi2 e ∂wi/∂σi = wi(x − ci)2/σi3. Per la regola della catena
∂E/∂ci = (2/N) ∑k (ŷ − yk) (gi − ŷ) w̄i (xk − ci)/σi2,
∂E/∂σi = (2/N) ∑k (ŷ − yk) (gi − ŷ) w̄i (xk − ci)2/σi3,
dove ŷ, gi e w̄i si prendono nel punto xk.
∂E/∂ci = (2/N) ∑k (ŷ − yk) (gi − ŷ) w̄i (xk − ci)/σi2
- ∂E/∂ci
- come cambia l’errore se spostiamo il centro della i-esima collina — il passo di apprendimento va contro questo segno
- ŷ − yk
- errore nel punto — dove il sistema centra il valore, il punto non chiede nulla e non contribuisce al gradiente
- gi − ŷ
- quanto il conseguente della regola differisce dall’uscita complessiva — dare più peso alla regola tira l’uscita verso il suo conseguente; se il conseguente dice la stessa cosa dell’insieme, spostare la collina non ha senso
- w̄i
- quota della regola nell’uscita — i punti lontani dalla collina, dove la regola quasi non parla, ne influenzano appena il centro
- (xk − ci)/σi2
- direzione dello spostamento — un punto a destra del centro tira la collina a destra, uno a sinistra a sinistra; proprio nel centro la collina è piatta e lo spostamento non cambia nulla
L’intero apprendimento dell’esempio qui sotto in pseudocodice (passo η = 0,1, 300 epoche):
c = centri equidistanti su [0, 6] # per 4 regole 0, 2, 4, 6
σ = metà della distanza tra i centri # per 4 regole 1
for epocha in 0 … 300:
# in avanti: strati 1–3, poi conseguenti esatti con i minimi quadrati
wn[k][i] = w̄_i(x_k) per tutti i punti k e le regole i
A = righe (wn[k][1]·x_k, wn[k][1], …, wn[k][n]·x_k, wn[k][n])
p, r = risolvi (AᵀA + 10⁻⁶·I)·θ = Aᵀy
if epocha == 300: break
# all’indietro: passo del gradiente secondo le formule sopra
gc, gσ = ∂E/∂c, ∂E/∂σ
c = c − η·gc
σ = max(0,05; σ − η·gσ) # la collina non deve sparire
3. ANFIS impara una funzione
Il compito: da 40 campioni rumorosi (rumore con deviazione standard 0,1) imparare la funzione y = sin(x2/3) sull’intervallo [0, 6]. Verso destra la funzione ondeggia sempre più in fretta, quindi quattro regole distribuite uniformemente non sono l’ideale. Misuriamo l’errore anche su 121 punti senza rumore fuori dai dati di addestramento:
Già nell’epoca zero — solo con i minimi quadrati per i conseguenti e colline uniformi — l’errore sul test è 0,394 e sui dati di addestramento 0,198. Poi cominciano a imparare le premesse. Dopo 100 epoche l’errore sul test è 0,202 e dopo 300 epoche 0,173. Sui dati di addestramento scende a 0,107 — sotto il livello del rumore nei dati (0,114); ragionevolmente non si può fare meglio. I centri delle colline si sono spostati di poco; il cambiamento principale è nelle larghezze — l’ultima regola a destra, dove la funzione ondeggia più in fretta, si è ristretta da 1 a 0,64.
Definizione — livello del rumore nei dati
I punti di addestramento sono yk = f(xk) + εk, dove f(x) = sin(x2/3) e le εk sono scarti casuali indipendenti da una distribuzione normale con deviazione standard 0,1. Il livello del rumore è l’RMSE che sui dati di addestramento avrebbe la funzione vera stessa: √((1/40) ∑k εk2) = 0,114. È un po’ più grande di 0,1 solo per caso — nei nostri 40 scarti estratti.
Un modello che sui dati di addestramento ha un errore minore del livello del rumore (0,107 < 0,114) comincia già a copiare anche gli scarti casuali. Con una differenza così piccola non è ancora un problema — l’errore sul test continua a scendere —, ma è un primo avvertimento, a cui torneremo parlando del numero di regole.
La discesa del gradiente pura per tutti i parametri parte da conseguenti nulli e impara molto più lentamente: dopo 300 epoche ha un errore sul test di 0,387 e nemmeno dopo 3 000 epoche (0,188) raggiunge l’apprendimento ibrido dopo 300. Un passo di apprendimento più grande, inoltre, porta presto alla divergenza. Dividere il problema in una parte lineare e una non lineare conviene.
4. Quante regole?
| Numero di regole | 2 | 3 | 4 | 6 | 8 | 12 |
|---|---|---|---|---|---|---|
| Errore sui dati di addestramento | 0,510 | 0,181 | 0,107 | 0,098 | 0,089 | 0,085 |
| Errore sul test | 0,590 | 0,177 | 0,173 | 0,172 | 0,566 | 0,319 |
Con l’aumentare delle regole l’errore sui dati di addestramento continua a scendere. Sul test però da otto regole sale bruscamente — il sistema ha cominciato a imparare il rumore: con 40 punti e 32 parametri (8 regole × 4) ha abbastanza libertà per oscillare selvaggiamente tra i punti di addestramento. Questo è l’overfitting, lo stesso fenomeno di una regressione polinomiale troppo curvata. Un numero ragionevole di regole qui sta tra tre e sei.
Esempio — quanti parametri ha ANFIS
Con un ingresso ogni regola ha due parametri della premessa (ci, σi) e due parametri del conseguente (pi, ri), in totale 4n. Su 40 punti di addestramento:
- 4 regole: 16 parametri, di cui 8 lineari — a ogni parametro lineare corrispondono 5 punti;
- 8 regole: 32 parametri, di cui 16 lineari — 2,5 punti per parametro lineare, e i minimi quadrati hanno così abbastanza libertà per interpolare anche il rumore;
- 12 regole: 48 parametri — più dei punti. I minimi quadrati determinano «solo» 24 conseguenti da 40 equazioni, ma altri 24 parametri delle premesse possono spostare e restringere le colline proprio dove il rumore ha appena deviato.
Un’utile regola empirica: i punti dovrebbero essere almeno qualche volta più numerosi dei parametri che se ne stimano.
5. Che cosa si può leggere
La promessa dei sistemi neuro-fuzzy è che il modello appreso resti leggibile. Le premesse sono leggibili: quattro regole «intorno a 0», «intorno a 2,2», «intorno a 4» e «intorno a 6,2». I conseguenti invece no. La regola «SE x è intorno a 2,2, ALLORA y = 10,06 x − 13,83» nel suo centro prevederebbe 8,25, mentre il valore vero è 1,0. Le singole regole si bilanciano a vicenda — le colline si sovrappongono molto e l’uscita ha senso solo nel suo insieme.
Esempio — come si bilanciano le regole nel punto x = 2,195
Il centro appreso della seconda regola è c2 = 2,195. Lì la seconda regola ha appartenenza piena (w2 = 1), ma le vicine non nulla: w = (0,140; 1; 0,331; 0,000), somma 1,471, quindi
| Regola | 1 | 2 | 3 | 4 |
|---|---|---|---|---|
| peso w̄i | 0,095 | 0,680 | 0,225 | 0,000 |
| conseguente gi | 12,64 | 8,25 | −25,64 | −31,68 |
| contributo w̄igi | 1,203 | 5,609 | −5,769 | 0,000 |
La somma è y = 1,203 + 5,609 − 5,769 = 1,043, il valore vero sin(2,1952/3) = 0,999. L’uscita è buona, ma nasce come differenza di due contributi intorno a ±5,7: la seconda regola «tira troppo» verso l’alto e la terza la riporta giù. Nessuna delle regole, da sola, dice quanto vale y.
L’interpretabilità quindi non è gratis. Ad aiutare a mantenerla sono i vincoli: minore sovrapposizione delle funzioni di appartenenza, regolarizzazione dei conseguenti, oppure un Sugeno di ordine zero con conseguenti costanti. Il prezzo si paga in precisione. È lo stesso equilibrio che c’è ovunque nell’apprendimento automatico — tra ciò che il modello sa fare e ciò che sappiamo dire di lui.
6. ANFIS e reti neurali
- Parentela con le reti RBF. Jang e Sun nel 1993 mostrarono che le reti a funzioni di base radiali e i sistemi fuzzy di Sugeno di ordine zero sono, a condizioni blande, la stessa cosa, solo interpretata diversamente.
- Maledizione della dimensionalità. Con n ingressi e k termini per ingresso, la griglia delle regole ha kn regole — per 10 ingressi e 3 termini oltre 59 mila. Per questo ANFIS si usa con pochi ingressi, oppure con regole scelte tramite clustering (per esempio il fuzzy c-means della parte precedente).
- Applicazioni. Previsione di serie temporali (un test classico è la serie caotica di Mackey–Glass), modellazione e controllo di sistemi di cui abbiamo dati misurati, ma poca teoria.
- Oggi. Le reti profonde hanno da tempo preso in carico i compiti con molti ingressi. L’idea «addestrabile, ma leggibile» però vive ancora nell’IA spiegabile — e strati fuzzy vengono talvolta aggiunti anche alle reti profonde dove serve spiegare l’uscita con delle regole.
Definizione — rete a funzioni di base radiali (RBF)
Una rete RBF normalizzata con n neuroni nascosti calcola
y(x) = ∑i vi φ(‖x − ci‖) / ∑j φ(‖x − cj‖),
dove φ è una funzione decrescente della distanza dal centro ci (tipicamente gaussiana) e vi sono i pesi di uscita. Un sistema di Sugeno di ordine zero con appartenenze gaussiane e il prodotto come «e insieme» è y = ∑i w̄i ri — sostituendo wi = φ(‖x − ci‖) e vi = ri è esattamente la stessa formula. In parole semplici: regola = neurone, funzione di appartenenza = funzione di base, conseguente = peso di uscita. (Jang e Sun, 1993, elencano le condizioni con precisione: stesso numero di regole e di neuroni, conseguenti costanti, appartenenze gaussiane con la stessa larghezza all’interno di una regola, il prodotto come «e insieme» e lo stesso modo di comporre l’uscita — media pesata oppure somma pesata.)
Esempio — la maledizione della dimensionalità in numeri
Con n ingressi e k termini per ogni ingresso, la griglia completa ha kn regole. Il conseguente di Sugeno del primo ordine y = p1x1 + … + pnxn + r ha n + 1 parametri, quindi i parametri lineari sono kn(n + 1). I parametri delle premesse sono solo 2kn — ogni ingresso ha le sue k colline, condivise da tutte le regole.
Per n = 10 e k = 3: 310 = 59 049 regole, 59 049 · 11 = 649 539 parametri dei conseguenti e 2 · 3 · 10 = 60 parametri delle premesse. I minimi quadrati dovrebbero risolvere un sistema con 649 539 incognite — e di dati ne servirebbero ancora molti di più.
7. Riepilogo
- ANFIS è un sistema fuzzy di Sugeno scritto come rete a cinque strati: appartenenza, forza, normalizzazione, conseguente, somma.
- L’apprendimento ibrido trova i conseguenti lineari in modo esatto con i minimi quadrati e rifinisce con il gradiente i centri e le larghezze delle funzioni di appartenenza.
- Sulla funzione sin(x2/3) l’apprendimento delle premesse ha ridotto l’errore sul test da 0,394 a 0,173; il gradiente puro ha avuto bisogno di dieci volte più epoche per un risultato peggiore.
- Troppe regole portano all’overfitting — da otto regole l’errore sul test sale bruscamente.
- Le premesse restano leggibili, ma i conseguenti si bilanciano a vicenda; l’interpretabilità va sorvegliata.
Con questa parte si chiude il modulo sulla logica fuzzy: dalla parola «caldo» attraverso la logica e i controllori fino a un sistema che le regole le impara da solo. Vuoi toccarlo con mano? Fai addestrare a un agente IA un ANFIS sul consumo di elettricità in funzione della temperatura a partire da dati pubblici — e poi guarda quali regole hanno senso.
La vedi diversamente? Scrivi a support@coden-app.com.