Risultati su test svolti per determinare la reiezione del rumore utilizzando
le routines Genfis1 ed Anfis del Toolbox Fuzzy Logic di Matlab
Enzo Gandolfi, Luca Tomasi, Caterina Vitullo
Dipartimento di Fisica - Università di Bologna
V.le Berti Pichat, 6/2. - 40127 Bologna - Italy
Tel. +39 - 51 - 6305077 FAX: +39 - 51 - 6305297
Email: tomasi@bo.infn.it
URL: http://sunvlsi4.bo.infn.it/Welcome.html
Abstract:
In questo articolo si presentano i risultati ottenuti applicando le routines Genfis1 ed Anfis del Toolbox Fuzzy Logic di Matlab ad un set di dati derivante dal campionamento di una sinusoide anche in presenza di rumore.
I risultati più significativi sono:
INTRODUZIONE
Nell’ambito del progetto europeo SMOG (Smart air pollution MOnitorinG network), teso a realizzare un prototipo di una stazione per il monitoraggio di alcune specie gassose inquinanti, si sta mettendo a punto un sistema fuzzy per l’analisi dei dati [1]. A questo scopo è stato scelto il Toolbox Fuzzy Logic di Matlab, che è risultato fin da subito il più efficace tra quelli disponibili commercialmente. Come è noto, il Toolbox Fuzzy Logic di Matlab mette a disposizione alcune routines estremamente utili per la costruzione di sistemi fuzzy adattivi, ovvero sistemi che vengono ottimizzati utilizzando un set di dati nella fase di apprendimento. Più precisamente, la routine Genfis1 realizza il sistema fuzzy iniziale distribuendo uniformemente le funzioni di appartenenza delle variabili di ingresso nell’intervallo relativo ai dati utilizzati per l’apprendimento; la routine Anfis ottimizza i parametri del sistema e la distribuzione delle funzioni di appartenenza utilizzando un algoritmo di Back Propagation di una rete neurale che apprende sugli stessi dati.
Modellare i segnali provenienti dai sensori della stazione di monitoraggio implica saper gestire funzioni relativamente semplici, fornendo però alla routine di apprendimento (Anfis) pochi dati e con un elevato errore intrinseco. Per queste ragioni si è prospettata l’esigenza di realizzare alcune prove specifiche per verificare il comportamento di Anfis in alcuni casi limite, cioè dove il numero di punti di apprendimento è paragonabile o addirittura inferiore al numero di parametri liberi.
In questo articolo verranno proposti alcuni spunti di riflessione che non hanno alcuna pretesa di generalizzazione, né vogliono dare una spiegazione completa del problema.
Quando si cerca di approssimare una funzione utilizzando un sistema fuzzy adattivo sono molti i parametri su cui si può agire, alcuni relativi al sistema fuzzy quali, per esempio, numero e tipo di funzioni di appartenenza, metodo di inferenza e di defuzzificazione, altri relativi al metodo di apprendimento. Anfis utilizza il metodo di inferenza di Sugeno del primo ordine e la tecnica del baricentro per la defuzzificazione, mentre permette all’utente di scegliere tra diversi tipi di funzioni di appartenenza.
I risultati riportati in questo articolo si riferiscono all’utilizzo di funzioni di appartenenza gaussiane, che risultano essere le forme migliori per approssimare funzioni non particolarmente complesse [2]. Fin dalle prime prove è emerso con evidenza che nei casi presi in esame, cioè con pochi punti di apprendimento, il numero di funzioni di appartenenza necessario per ottenere i migliori risultati deve essere quello minimo possibile (2) (fig. 1 e 2).
1 - Ottimizzazione dei punti di apprendimento e loro distribuzione
Qual è il numero minimo di punti di apprendimento necessario per realizzare una modellizzazione soddisfacente? È significativo l’ordine in cui vengono forniti i punti di apprendimento? La forma della curva varia il numero minimo di punti per l’apprendimento? Queste sono le domande a cui si è cercato di rispondere.
Come detto sopra, questo articolo non vuole dare una valutazione sulle capacità di Anfis di ottimizzare un sistema fuzzy da utilizzarsi come approssimatore universale di funzioni, ma vuole essere una presentazione di alcuni risultati ottenuti nel cercare di valutare quali sono i parametri ottimali da utilizzarsi per approssimare funzioni relativamente semplici quali quelle corrispondenti alle risposte dei sensori di gas utilizzati nel progetto SMOG [1]. Poiché tali sensori forniscono una risposta che è sostanzialmente una curva monotona crescente con curvatura variabile, la funzione sin(x) nell’intervallo 0-p/2 è stata scelta come funzione di riferimento. Di seguito verranno riportati alcuni risultati preliminari ottenuti approssimando la stessa funzione nell’intervallo 0-2p, in quanto ci sono sembrati degni di nota.
1.1 Approssimazione della funzione sin(x) nell’intervallo 0-2p
Le figure 1 e 2 mostrano innanzi tutto che con un numero limitato di punti di apprendimento è consigliabile utilizzare un numero ridotto di funzioni di appartenenza. Per questo motivo nelle prove successive i sistemi fuzzy si avvalgono solo di due funzioni di appartenenza.
Dai test effettuati, è emerso, inoltre, che la risposta del sistema non peggiora significativamente riducendo drasticamente il numero di punti utilizzati nella fase di training. Infatti, si può osservare (figure 3 e 4) che l’errore, Sigma, si riduce di circa la metà passando da un apprendimento realizzato con 4 punti ad uno effettuato con 41. In particolare, nel primo caso, utilizzando solo 4 punti di apprendimento, cioè il numero minimo per consentire la doppia inversione di monotonicità, la sinusoide viene riprodotta con un Sigma pari a 0.0017.
Siamo consapevoli che tale risultato non è certamente generalizzabile, ma, come già detto nel paragrafo precedente, ci è parso così anomalo da meritare una citazione.
1.2 Ordinamento dei punti
L’ordine con cui vengono forniti i dati di apprendimento risulta essere generalmente ininfluente per il risultato finale. Al contrario, nel caso in cui si utilizzino solo 4 punti, l’ordine diventa essenziale, come appare evidente dalle figure 5 e 6 che mostrano i risultati ottenuti da un apprendimento realizzato con 4 punti forniti ad Anfis in ordine casuale e non sequenziale (fig.3).

1.3 Approssimazione della funzione sin(x) nell’intervallo 0-p/2
L’approssimazione di sin(x) nell’intervallo 0-
p/2 è in realtà il problema che a noi maggiormente interessa. In particolare, nnnnnon potendo disporre di un alto numero di punti di apprendimento, si è voluto capire quanto sia rilevante la distribuzione e l’ordine con cui i dati vengono forniti ad Anfis. Per quanto riguarda l’ordine, valgono le stesse considerazioni fatte relativamente alla funzione sin(x) nell’intervallo 0-2p, ovvero esso è, generalmente, indifferente tranne nel caso in cui il numero di punti a disposizione sia esiguo, nel qual caso diventa importante la loro distribuzione.
Partendo dal sistema fuzzy dove in fase di apprendimento sono stati forniti solamente 3 punti distribuiti uniformemente tra 0 e p/2 (fig. 7) e aggiungendo un punto di apprendimento tra 0 e p/4 otteniamo una riduzione di un fattore 6 dell’errore sigma (fig. 8). Inserendo, quindi, prima 2 e poi 3 punti, sempre tra 0 e p/4, l’errore non diminuisce, ma si stabilizza (fig. 9).

Al contrario, aumentando i punti di apprendimento nella zona tra p/4 e p/2 si ha un progressivo miglioramento; infatti, partendo dallo stesso sistema fuzzy ottenuto con 3 punti distribuiti uniformemente tra 0 e p/2 (fig. 7) l’errore, sigma, diminuisce di un fattore 3 aggiungendo un punto di apprendimento tra p/4 e p/2 (fig. 10), di un ulteriore fattore 9 inserendo un secondo punto, ed ancora di un fattore 2 con l’aggiunta di un terzo punto (fig. 11).
Quanto visto sopra risulta ragionevole in considerazione del fatto che nelle zone dove il raggio di curvatura è maggiore, un numero più elevato di punti può migliorare l’approssimazione.

2 - COMPORTAMENTO DI ANFIS IN PRESENZA DI RUMORE
In questa seconda parte dell’articolo si riportano alcuni dei risultati più significativi ottenuti sovrapponendo del rumore a sin(x) nell’intervallo 0-2p . Si è ritenuto opportuno affrontare questo tipo di analisi per simulare una situazione reale in cui si hanno a disposizione per l’apprendimento non valori precisi, ma misure sperimentali affette da incertezza.
Dalle prove effettuate si nota che, in presenza di rumore di valore assoluto massimo pari a 0.5, l’approssimazione della sinusoide peggiora in media di circa un fattore 20 rispetto al caso della sinusoide in assenza di rumore (figure 12 e 13).
In questa fase, sempre per cercare di riprodurre una situazione reale in cui si hanno a disposizione misure sperimentali con le relative incertezze, si è deciso di generare più di una volta il set di dati necessario per l’apprendimento e di fornire ad Anfis i valori risultanti da una media fatta tra le varie serie. Procedendo in questo modo, si nota che l’errore Sigma si riduce alla metà (fig. 14) e che l’errore massimo è pari a 0.21. Ciò implica una riduzione dell’effetto prodotto dal rumore di oltre il 50%.
Utilizzando dati affetti da un rumore di valore assoluto massimo pari a 0.2, l’errore assoluto massimo riportato nella modellizzazione è di 0.04, quello medio di 0.002 (fig. 15).
CONCLUSIONI
L’utilizzo di sistemi neurali o neuro-fuzzy in grado di approssimare funzioni analitiche è un argomento attuale ed interessante, anche in considerazione delle differenti applicazioni realizzabili.
Si ritiene che quest’articolo, lungi dall’essere esaustivo nella descrizione delle capacità di Anfis di approssimare funzioni, possa aiutare a comprendere alcuni dei problemi che devono essere affrontati quando si vuole utilizzare un sistema neuro-fuzzy adattivo.
L’aspetto più eclatante è sicuramente la capacità del sistema neuro-fuzzy realizzato di apprendere in modo più che soddisfacente anche in presenza di un’incertezza elevata sui dati utilizzati per l’apprendimento.
Inoltre si può affermare che:
NOTE
(1) Nei grafici riportati nel presente articolo la legenda va cosě interpretata:(2) Nei grafici riportati nel presente articolo la legenda va cosě interpretata:
(3)
RIFERIMENTI
[1] Gandolfi, Tomasi, Vitullo - Utilizzo del toolbox Fuzzy Logic di Matlab per l’analisi di dati provenienti da sensori nell’ambito del progetto europeo SMOG - articolo presentato a questa stessa conferenza.
[2] B. Kosko - The shape of fuzzy sets in function approximation - proceeding WCNN San Diego, USA 15-18 set 1996 pp. 1118-1122.