I sistemi di inferenza fuzzy

22
04/12/2008 1 I sistemi di inferenza fuzzy G. Castellano 1 Sistema di inferenza fuzzy Un sistema di inferenza fuzzy realizza un mapping di I/O mediante l’inferenza di regole linguistiche (fuzzy) del tipo IF-THEN: Le variabili di input e di output sono variabili linguistiche, poiché assumono valori linguistici che sono espressi matematicamente mediante insiemi fuzzy 2

Transcript of I sistemi di inferenza fuzzy

Page 1: I sistemi di inferenza fuzzy

04/12/2008

1

I sistemi di inferenza fuzzy

G. Castellano 1

Sistema di inferenza fuzzy

• Un sistema di inferenza fuzzy realizza un mapping di I/O mediante l’inferenza di regole linguistiche (fuzzy) del tipo IF-THEN:

– Le variabili di input e di output sono variabili linguistiche, poiché assumono valori linguistici che sono espressi matematicamente mediante insiemi fuzzy

2

Page 2: I sistemi di inferenza fuzzy

04/12/2008

2

Esempio di sistema fuzzy:definizione delle variabili di input

• I valori linguistici (etichette) Verde, Giallo e Rosso sono descrizioni vaghe di tipi di colore– Possiamo esprimerli mediante insiemi fuzzy

• la funzione di membership sarà definita sul dominio delle lunghezze d’onda dello spettro del visibile (colore)

• l'occhio umano percepisce i colori Verde, Giallo e Rosso se illuminato da luce monocromatica di lunghezza d'onda che varia da circa 0.50 μm a circa 0.70 μm – da circa 0.50 a circa 0.56 μm (Verde)

– da circa 0.56 a circa 0.60 μm (Giallo)

– da circa 0.60 a circa 0.70 μm (Rosso)

G. Castellano 3

Esempio di sistema fuzzy:definizione delle variabili di output

• I valori linguistici (etichette) Acerbo, Quasi-

maturo e Maturo sono descrizioni vaghe del grado di maturazione di un frutto

– Possiamo esprimerli mediante insiemi fuzzy

• le funzioni di membership saranno definite sul dominio “percentuale di maturazione”

G. Castellano 4

Page 3: I sistemi di inferenza fuzzy

04/12/2008

3

Esempio di sistema fuzzy:inferenza delle regole

• Dato un input (colore di un frutto), il modello definito dalle tre regole fuzzy

può essere usato per derivare l’output corrispondente, ovvero il grado di maturazione, mediante un processo di inferenza (implicazione)

G. Castellano 5

Inferenza di regole fuzzy

• Dato un fuzzy set di input, denotato con A’, e un insieme di N regole fuzzy, il processo di inferenza prevede i seguenti passi

– per ogni regola fuzzy si effettua l’inferenza, ottenendo un fuzzy set di output

– Gli N fuzzy set di output sono combinati insieme (operatore di aggregazione) per derivare l’output finale

G. Castellano 6

Page 4: I sistemi di inferenza fuzzy

04/12/2008

4

Inferenza di una regola fuzzy Generalized Modus Ponens (GMP)

PremessaPremessa IF (z is A) THEN (v is B)

FattoFatto z is A’

Conseguenza v is B’

il fuzzy set B’ è ottenuto mediante composizione

7

( )BAAB →= o''

Operatore di

composizione

Implicazione fuzzy

B

VZ

'B

A 'A

α

Implicazione fuzzy

• Dati gli insiemi fuzzy– A definito sul dominio Z

– B definito sul dominio V

l’operatore di implicazione fuzzy A�Bproduce un insieme fuzzy bidimensionale definito in Z×V con funzione di membership:

dove τ è un operatore T-norm

8

( ) ( ) ( )( )vzvz BABA µµτµ ,, =→

Page 5: I sistemi di inferenza fuzzy

04/12/2008

5

Implicazione fuzzyEsempio

• Consideriamo come esempio la regola R3

che corrisponde all’implicazione ROSSO����MATURO

• In base alla definizione dell’implicazione fuzzy, considerando il minimo come operatore T-norm, si ha:

G. Castellano 9

Implicazione fuzzyEsempio

G. Castellano 10

ROSSO MATURO

Page 6: I sistemi di inferenza fuzzy

04/12/2008

6

Composizione di insiemi fuzzy

• Dati gli insiemi fuzzy– A definito sul dominio Z– C definito sul dominio Z×V

la loro composizione è un insieme fuzzy bidimensionale definito in Z×V, avente come funzione di membership:

dove τ è un operatore T-norm.

11

[ ]( ) ( ) ( )( )( )vzzsupvz

VZ

CAVv

CA

CA

,,,

1,0:

µµτµ

µ

∈=

→×

o

o

Risultato dell’inferenza fuzzy

( ) ( ) ( )( )( )vzzsupv BAAZz

B ,,'' →∈

= µµτµ

12

B

YX

'B

A 'A

α

( ) ( ) ( )( )( )( )vzzups BAAZz

µµτµτ ,,'∈

=

( ) ( )( )[ ] ( )

=∈

vzzsup BAAZz

µµµττ ,,'

( )[ ] ( )

= ∩∈

vzsup BAAZz

µµτ ,'

( )( )vBµατ ,=

( )BAAB →= o''

Page 7: I sistemi di inferenza fuzzy

04/12/2008

7

Inferenza di una regola fuzzyEsempio

• Dato un valore di input z0, calcoliamo l’output corrispondente mediante inferenza della regola R3

• Il valore di input può essere – un valore fuzzy: es. un insieme fuzzy “ROSSO SCURO” con una

propria funzione di membership– un valore crisp z0 (valore della frequenza del colore) che avrà un

certo grado di appartenenza all’insieme fuzzy ROSSO: μRosso(z0).

• Applicando l’operatore di composizione tra μRosso(z0) e μ3(z0,v), si ottiene il risultato dell’inferenza della regola R3per z0

G. Castellano 13

Inferenza di una regola fuzzyEsempio

• Q3 è un insieme fuzzy ottenuto dall’inferenza della regola R3 in corrispondenza dell’input z0.

G. Castellano 14

Page 8: I sistemi di inferenza fuzzy

04/12/2008

8

Inferenza delle regole fuzzyEsempio

• Applicando lo stesso procedimento di inferenza per le regole R1 e R2 otteniamo:– Un output (fuzzy) Q1 fornito dalla regola R1 in

corrispondenza del particolare input z0

– Un output (fuzzy) Q2 fornito dalla regola R2 in corrispondenza del particolare input z0

G. Castellano 15

Aggregazione

• Per ottenere l’output finale, si aggregano gli output fuzzy forniti dalle singole regole in corrispondenza dello stesso input

• Per l’aggregazione si utilizza l’operatore di unione tra insiemi fuzzy

• Ricordiamo che l’unione si ottiene mediante operatore s-norm• Considerando il massimo come operatore s-norm si ha

• L’output finale è un insieme fuzzy

G. Castellano 16

U3

1

3210

=

=∪∪=j

jQQQQQ

0

Page 9: I sistemi di inferenza fuzzy

04/12/2008

9

Inferenza delle regole fuzzyEsempio

• Processo di inferenza delle regole in corrispondenza dell’input z0

G. Castellano 17

Insieme fuzzy di output

0

Defuzzificazione

• Una volta ottenuto l’output fuzzy dal processo di inferenza, in molti casi può essere necessario derivare un output crisp

– Nel nostro esempio potremmo voler conoscere la percentuale di maturazione (valore crisp) corrispondente all’input z0

• L’ultimo passo è quindi quello di “defuzzificare” l’output fuzzy per ottenere un output crisp

G. Castellano 18

Page 10: I sistemi di inferenza fuzzy

04/12/2008

10

Defuzzificazione

• Per defuzzificazione si intende la trasformazione di un insieme fuzzy in un valore crisp

• Esistono diversi metodi per la defuzzificazione

19

( )

( )∫∫

=

VQ

VQ

dvv

vdvvv

0

0

µ∑∈

=Ww

Wwv 1

0

V

0Q

Centro di gravitàMedia dei max

{ }Wvwmin0 =

Minimo dei max

( )0QCoreW =

Defuzzificazione

• Nel nostro esempio, applicando il metodo del centro di gravità all’insieme di output Q0

(discretizzato in K valori), si ottiene:

G. Castellano 20

0

0

v0

Q0

= 65.1

Page 11: I sistemi di inferenza fuzzy

04/12/2008

11

Defuzzificazione in FuzzyJ

• Metodi di defuzzificazione disponibili nella libreria FuzzyJ:– maximumDefuzzify

• Restituisce la media dei soli valori massimi dell’insieme fuzzy.

• Questa operazione può portare ad un valore crisp finale non corretto;

– centerOfAreaDefuzzify

• restituisce un numero in virgola mobile che rappresenta il centro dell’area del FuzzySet

– weightedAverageDefuzzify

• calcola la media pesata di tutti i valori x che costituiscono il FuzzySet utilizzando come pesi i rispettivi valori di membership

– momentDefuzzify

• l’insieme è diviso in diverse forme sezionandolo verticalmente in ogni punto utilizzato per la creazione del FuzzySet.

• Per ogni suddivisione (rettangolare, triangolare, ..) viene calcolato il centro di gravità e in seguito vengono utilizzati questi punti per calcolare il primo momento di tutta l’area

G. Castellano 21

Sistema di inferenza fuzzy

Fuzzificazione

Inferenza di regole

Defuzzificazione

G. Castellano 22

inputinput

crispcrisp

outputoutput

crispcrispimplicazione aggregazione

Page 12: I sistemi di inferenza fuzzy

04/12/2008

12

Regole fuzzy con più premesse

• Sinora abbiamo considerato regole fuzzy con una sola premessa

• In generale, è possibile definire regole fuzzy con più premesse– Nel nostro esempio, possiamo aggiungere una

variabile fuzzy che descriva la consistenza della frutta, con valori linguistici che descrivono la frutta come: dura, mediamente soffice, soffice.

G. Castellano 23

G. Castellano 24

IF (il colore è verde ) OR (la consistenza è dura ) THEN la frutta è acerba

IF (il colore è giallo) OR (la consistenza è media) THEN la frutta è quasi matura

IF (il colore è rosso) OR (la consistenza è soffice) THEN la frutta è matura

Input 1

Colore(z0)

Input 2

Consistenza(c0)Output

Grado di

Maturazione(v0)

Page 13: I sistemi di inferenza fuzzy

04/12/2008

13

Regole fuzzy con più premesse

• In generale, un sistema fuzzy utilizza M regole IF-THEN, ciascuna con N antecedenti (tanti quante sono le variabili di input) e uno o più conseguenti (tanti quante sono le variabili di output) – Solitamente si ha un solo conseguente

• Con N variabili di input (z1, z2, …, zN) e una variabile di output v, si hanno regole del tipo:

G. Castellano 25

Regole fuzzy con più premesse

• Le premesse di una regola possono essere legate tra loro – mediante OR (esempio precedente)

• Operatore T-conorm (massimo)

– mediante AND• Operatore T-norm (minimo o o prodotto)

– λi è detto livello di attivazione (strength level) o grado di matching della i-esima regola.

G. Castellano 26

Page 14: I sistemi di inferenza fuzzy

04/12/2008

14

Inferenza di regole fuzzy (Mamdani)

27

•implicazione: minimo

• aggregazione: massimo

( ) ( ) ( )1122

1111 BisvTHENAiszANDAiszIF:R

( ) ( ) ( )2222

2112 BisvTHENAiszANDAiszIF:R

1R

2R

11A

12A

21A

22A

01z

02z

1Z

1Z

2Z

2Z

2BV

1B

minmin0B

02B

01B

• Antecedente: Prodotto cartesiano di fuzzy set• Conseguente: Fuzzy Set

V

V

Inferenza di regole fuzzy (Larsen)

28

•implicazione: prodotto

• aggregazione: massimo

( ) ( ) ( )1122

1111 BiszTHENAiszANDAiszIF:R

( ) ( ) ( )2222

2112 BisvTHENAiszANDAiszIF:R

1R

2R

11A

12A

21A

22A

01z

02z

1Z

1Z

2Z

2Z

2BV

V

1B

minmin

V

0B

02B

01B

– Antecedente: Prodotto cartesiano di fuzzy set- Conseguente: Fuzzy Set

Page 15: I sistemi di inferenza fuzzy

04/12/2008

15

Inferenza di regole fuzzy (modello di Takagi-Sugeno)

29

( ) ( ) ( ) 12111211122

1111 , czbzazzfisvTHENAiszANDAiszIF:R ++=

( ) ( ) ( ) 22212212222

2112 , czbzazzfisvTHENAiszANDAiszIF:R ++=

TT--normnorm

1R

2R

11A

12A

2

1A2

2A

01z

02z

1Z

1Z

2Z

2Z

( ) ( )21

02

0122

02

01110 ,,

αααα

+

+=

zzfzzfv

( ) ( )( )02011 1

211

, zzAA

µµτα =

( ) ( )( )02012 2

221

, zzAA

µµτα =

•Antecedente: Prodotto cartesiano di fuzzy set•Conseguente: Combinazione lineare dei valori di input (crisp)

Inferenza di regole fuzzy (modello fuzzy semplificato)

30

( ) ( ) 1122

1111 bisvTHENAiszANDAiszIF:R

( ) ( ) 2222

2112 bisvTHENAiszANDAiszIF:R

TT--normnorm

1R

2R

1

1A1

2A

2

1A2

2A

01z

02z

2Z

2Z

1Z

1Z

21

22110

αααα

+

+=

bbv

( ) ( )( )02011 1

211

, zzAA

µµτα =

( ) ( )( )02012 2

221

, zzAA

µµτα =

– Antecedente: Prodotto cartesiano di fuzzy set- Conseguente: Valore crisp

Modello di Takagi-Sugenodi ordine zero

Modello di Mamdanicon conseguenti singleton

Page 16: I sistemi di inferenza fuzzy

04/12/2008

16

Confronto di modelli fuzzy

31

modello fuzzy interpretabileCosto

computazionale

Mamdani

Si:conseguentifacilmenteinterpretabili

Elevato: costosa implementazione del defuzzifier

Takagi-Sugeno

No: conseguentidifficilmenteinterpretabili

Basso: non occorre defuzzifier

Semplificato

Si:conseguentifacilmenteinterpretabili

Basso: non occorre defuzzifier

Definizione di regole fuzzy

• Per definire un insieme di regole fuzzy, occorre stabilire– Il numero di regole– i valori fuzzy da associare alle variabili di input– i valori fuzzy da associare alle variabili di output– le associazioni di input-output in ogni regola

• Come già detto per le variabili fuzzy, la definizione delle regole fuzzy non è univoca e può essere effettuata – Manualmente

• in base alla conoscenza dell’esperto del dominio– Problema: soggettività nella definizione

– Automaticamente• In base ai dati empirici relativi al dominio

– Si applicano algoritmi di apprendimento delle reti neurali � Modelli Neuro-Fuzzy

32

Page 17: I sistemi di inferenza fuzzy

04/12/2008

17

Regole fuzzy in FuzzyJ

• FuzzyRule è la classe del toolkit FuzzyJ che gestisce le regole, ma consente solo l’utilizzo di regole semplici con antecedenti e conclusioni fuzzy

• Sfruttando, invece, le capacità della shell Jesse l’integrazione offerta dalla libreria FuzzyJ è possibile definire anche regole più complesse che combinano valori crisp e fuzzy.

G. Castellano 33

Regole fuzzy in FuzzyJ

• Per creare correttamente una regola fuzzy sono necessari tre passi:– creare le variabili fuzzy per i concetti da utilizzare;

– creare un’istanza di una FuzzyRule;

– aggiungere alla regola dei FuzzyValue come antecedenti e conseguenti

G. Castellano 34

Page 18: I sistemi di inferenza fuzzy

04/12/2008

18

Regole fuzzy in FuzzyJ

• Esempio di creazione di una regola fuzzy :IF (temperature is Hot) THEN (pressure is Low or Medium)

G. Castellano 35

...

FuzzyRule rule1 = new FuzzyRule();

FuzzyValue antecedentFval = new FuzzyValue(temp, "hot");

FuzzyValue conclusionFval = new FuzzyValue(pressure,

"low or medium");

rule1.addAntecedent(antecedentFval);

rule1.addConclusion(conclusionFval);

Inferenza di regole fuzzy in FuzzyJ

• Per effettuare l’inferenza di una regola, occorre definire un valore fuzzy di input e utilizzare il metodo execute

– Esempio di input: “temperature is very medium”

G. Castellano 36

...

FuzzyValue inputFval = new FuzzyValue(temp, "very medium");

rule1.addInput(inputFval);

// execute the rule using default rule executor

// MamdaniMinMaxMinRuleExecutor

FuzzyValueVector fvv = rule1.execute();

Page 19: I sistemi di inferenza fuzzy

04/12/2008

19

Inferenza di regole fuzzy in FuzzyJ

• Ogni regola ha associato un FuzzyRuleExecutor per l’inferenza della regola stessa

• L’executor può essere di tre tipi:– MamdaniMinMaxMinRuleExecutor

• Inferenza di Mamdani con la composizione MaxMin;

– LarsenProductMaxMinRuleExecutor

• Inferenza Larsen Product con la composizione MaxMin;

– TsukamotoRuleExecutor• inferenza Larsen Product definita da Tsukamoto.

G. Castellano 37

...

// execute the rule using default rule executor --

// MamdaniMinMaxMinRuleExecutor

FuzzyValueVector fvv = rule1.execute();

// execute again with a different rule executor --

// LarsenProductMaxMinRuleExecutor

fvv = rule1.execute(new LarsenProductMaxMinRuleExecutor());

Inferenza di regole fuzzy in FuzzyJ

• Per verificare che ci sia una corrispondenza (matching), anche parziale, tra l’input e gli antecedenti della regola, può essere utilizzato il metodo testRuleMatching() della classe FuzzyRule che restituisce un valore booleano– se questo valore è false allora l’esecuzione della regola

restituisce un valore fuzzy vuoto– se questo valore true significa che c’è una corrispondenza, e il

grado di matching è maggiore di un valore soglia (di default 0.0)• il valore soglia può essere modificato utilizzando il metodo setMatchThreshold()

G. Castellano 38

if (rule1.testRuleMatching())

{

FuzzyValueVector fvv = rule1.execute();

...

}

Page 20: I sistemi di inferenza fuzzy

04/12/2008

20

Inferenza di regole fuzzy in FuzzyJ

• È possibile utilizzare il metodo plotFuzzyValues()della classe FuzzyRule per visualizzare graficamente: – gli antecedenti di una regola– I conseguenti di una regola– il valore fuzzy di input– il valore fuzzy risultante dall’inferenza

G. Castellano 39

...

// show the results using the plotting methods for FuzzyValues

FuzzyValue fvals[] = new FuzzyValue[2];

fvals[0] = antecedentFval;

fvals[1] = inputFval;

System.out.println(FuzzyValue.plotFuzzyValues("*+", 0, 50, fvals));

System.out.println(fval2.plotFuzzyValue("*", 0, 10));

System.out.println(fvv.fuzzyValueAt(0).plotFuzzyValue("*", 0, 10));

Fuzzy Value: temperature

Linguistic Value: hot (*), very medium (+)

1.00 +++++++++++ ****************

0.95

0.90 *

0.85

0.80 + + *

0.75

0.70 *

0.65 + +

0.60 *

0.55

0.50 + + *

0.45

0.40 *

0.35 + +

0.30 *

0.25 + +

0.20 *

0.15 + +

0.10 + * +

0.05 + +

0.00+++++++******************* +++++++++++++++++

|----|----|----|----|----|----|----|----|----|----|

0.00 10.00 20.00 30.00 40.00 50.00

G. Castellano 40

Plot di:- Valore fuzzy relativo all’antecedente- Valore fuzzy relativo all’input

Page 21: I sistemi di inferenza fuzzy

04/12/2008

21

Fuzzy Value: pressure

Linguistic Value: low or medium (*)

1.00************ ***

0.95 * * *

0.90 * * *

0.85 *

0.80 * *

0.75 *

0.70 *

0.65 * *

0.60

0.55 * * *

0.50

0.45 *

0.40 * *

0.35

0.30

0.25 *

0.20

0.15 *

0.10 *

0.05 *

0.00 **************

|----|----|----|----|----|----|----|----|----|----|

0.00 2.00 4.00 6.00 8.00 10.00

G. Castellano 41

Plot del valore fuzzyrelativo al conseguente

Fuzzy Value: pressure

Linguistic Value: ??? (*)

1.00

0.95

0.90

0.85

0.80

0.75

0.70

0.65

0.60

0.55

0.50

0.45

0.40*********************************

0.35

0.30

0.25 *

0.20

0.15 *

0.10 *

0.05 *

0.00 **************

|----|----|----|----|----|----|----|----|----|----|

0.00 2.00 4.00 6.00 8.00 10.00

G. Castellano 42

Plot del risultato dell’inferenzamediante MamdaniMinMaxMinRuleExecutor

Page 22: I sistemi di inferenza fuzzy

04/12/2008

22

Fuzzy Value: pressure

Linguistic Value: ??? (*)

1.00

0.95

0.90

0.85

0.80

0.75

0.70

0.65

0.60

0.55

0.50

0.45

0.40************ *

0.35 *** *** ***

0.30 * * *

0.25 * * *

0.20 * * *

0.15 ** *

0.10 *

0.05 **

0.00 ***************

|----|----|----|----|----|----|----|----|----|----|

0.00 2.00 4.00 6.00 8.00 10.00

G. Castellano 43

Plot del risultato dell’inferenzamediante LarsenProductMaxMinRuleExecutor

Aggregazione di regole fuzzy in FuzzyJ

• In presenza di più regole fuzzy, è necessario combinare il risultato dell’inferenza di ciascuna in modo da ottenere un unico risultato

• A tal fine, è possibile utilizzare l’operatore FuzzyUnion che restituisce un unico output (insieme fuzzy)– Questo output fuzzy può essere poi defuzzificato

per ottenere un output finale crisp

G. Castellano 44