Soft Computing Fuzzy Logic Alessandro Mazzetti. Definizione Soft Computing –elaborazione graduale...

27
Soft Computing Fuzzy Logic Alessandro Mazzetti

Transcript of Soft Computing Fuzzy Logic Alessandro Mazzetti. Definizione Soft Computing –elaborazione graduale...

Page 1: Soft Computing Fuzzy Logic Alessandro Mazzetti. Definizione Soft Computing –elaborazione graduale dellinformazione Fuzzy Logic Reti Neurali Algoritmi.

Soft ComputingFuzzy Logic

Alessandro Mazzetti

Page 2: Soft Computing Fuzzy Logic Alessandro Mazzetti. Definizione Soft Computing –elaborazione graduale dellinformazione Fuzzy Logic Reti Neurali Algoritmi.

Definizione

• Soft Computing – elaborazione “graduale” dell’informazione

• Fuzzy Logic

• Reti Neurali

• Algoritmi Genetici

Page 3: Soft Computing Fuzzy Logic Alessandro Mazzetti. Definizione Soft Computing –elaborazione graduale dellinformazione Fuzzy Logic Reti Neurali Algoritmi.

Fuzzy Logic

• Logica in cui sono presi in considerazione i valori intermedi fra il Vero ed il Falso– Lofti Zadeh 1965 - Univ Calif. Berkeley

SE età_paziente < 25_anni ALLORA …SE età_paziente = giovane ALLORA …

Fuzzy = sfumato, vago, sfocato, nebuloso

Page 4: Soft Computing Fuzzy Logic Alessandro Mazzetti. Definizione Soft Computing –elaborazione graduale dellinformazione Fuzzy Logic Reti Neurali Algoritmi.

Insiemi Crisp e Fuzzy

Page 5: Soft Computing Fuzzy Logic Alessandro Mazzetti. Definizione Soft Computing –elaborazione graduale dellinformazione Fuzzy Logic Reti Neurali Algoritmi.

Esempi

• Velocità = alta/bassa

• Posizione = lontano/prossimo/vicino

• Temperatura = freddo/fresco/tiepido/caldo

• Stagione= primavera/estate/autunno/inverno

• …

Page 6: Soft Computing Fuzzy Logic Alessandro Mazzetti. Definizione Soft Computing –elaborazione graduale dellinformazione Fuzzy Logic Reti Neurali Algoritmi.

Funzione di appartenenza

• Associa un valore al grado di appartenenza o al grado di verità

25 anni = giovane al 60%

35 anni = giovane al 10%

adulto all’ 80%

anziano allo 0%

Page 7: Soft Computing Fuzzy Logic Alessandro Mazzetti. Definizione Soft Computing –elaborazione graduale dellinformazione Fuzzy Logic Reti Neurali Algoritmi.

Funzioni di appartenenza

Page 8: Soft Computing Fuzzy Logic Alessandro Mazzetti. Definizione Soft Computing –elaborazione graduale dellinformazione Fuzzy Logic Reti Neurali Algoritmi.

Terminologia

• Evidenza = grado di verità

• Descrittore/etichetta = “alto” / “basso” / …

• Ragionamento Fuzzy = ragionamento che considera l’evidenza delle asserzioni

• Fuzzificazione = passare da un valore numerico alla sua evidenza

• Defuzzificazione = passare da un’evidenza ad un valore numerico

Page 9: Soft Computing Fuzzy Logic Alessandro Mazzetti. Definizione Soft Computing –elaborazione graduale dellinformazione Fuzzy Logic Reti Neurali Algoritmi.

Esempio

SE il paziente ha poca febbre (evid=0.4) E starnutisce frequentemente (evid=0.9) E NON siamo in autunno (evid=0) O inverno (evid=0)ALLORA il paziente ha il raffreddore da fieno (evid=?)

SE la temperatura della stanza e' tiepida E la temperatura esterna e' frescaALLORA il ventilatore deve andare veloce

Page 10: Soft Computing Fuzzy Logic Alessandro Mazzetti. Definizione Soft Computing –elaborazione graduale dellinformazione Fuzzy Logic Reti Neurali Algoritmi.

Ragionamento Fuzzyevidenza di x E y = MINIMO fra l'evidenza di x e l'evidenza di y evidenza di x O y = MASSIMO fra l'evidenza di x e l'evidenza di y

evidenza di NOT x = 1 - (evidenza di x)

data la regola SE y ALLORA x, evidenza di x = evidenza di y

date piu' regole con lo stesso conseguente: SE y1 ALLORA x ... SE yN ALLORA x evidenza di x = MASSIMO fra l'evidenze di y1,...,yN

Page 11: Soft Computing Fuzzy Logic Alessandro Mazzetti. Definizione Soft Computing –elaborazione graduale dellinformazione Fuzzy Logic Reti Neurali Algoritmi.

Logica classica

• È un caso particolare della Logica Fuzzy (il caso estremo)

falso E falso = MIN(0,0) = 0 = falso

falso E vero = MIN(0,1) = 0 = falso

vero E falso = MIN(1,0) = 0 = falso

vero E vero = MIN(1,1) = 1 = vero

Page 12: Soft Computing Fuzzy Logic Alessandro Mazzetti. Definizione Soft Computing –elaborazione graduale dellinformazione Fuzzy Logic Reti Neurali Algoritmi.

Motore Inferenziale Fuzzy

Page 13: Soft Computing Fuzzy Logic Alessandro Mazzetti. Definizione Soft Computing –elaborazione graduale dellinformazione Fuzzy Logic Reti Neurali Algoritmi.

Strutture dati

Page 14: Soft Computing Fuzzy Logic Alessandro Mazzetti. Definizione Soft Computing –elaborazione graduale dellinformazione Fuzzy Logic Reti Neurali Algoritmi.

Esercizio

• Lanciare FUZZY.COM

• Provare a cambiare alcuni valori

• Ispezionare le regole e le funzioni

Page 15: Soft Computing Fuzzy Logic Alessandro Mazzetti. Definizione Soft Computing –elaborazione graduale dellinformazione Fuzzy Logic Reti Neurali Algoritmi.

Caratteristiche

• Può coesistere il vero ed il falso– il contrario del vero non è il falso– “tanto” al 70% non implica “poco” al 30%– la somma delle evidenze non deve dare 100%

• L’appartenenza dipende dal dominio– gravidanza a 35 anni = vecchia– artrite a 35 anni = giovane– 35 anni = tennista vecchio, dirigente giovane– 100 Km/h in città = veloce– 100 Km/h in autostrada = lento

Page 16: Soft Computing Fuzzy Logic Alessandro Mazzetti. Definizione Soft Computing –elaborazione graduale dellinformazione Fuzzy Logic Reti Neurali Algoritmi.

ATTENZIONE !

• Fuzzy diverso da Probabilità

• Fuzzy = informazione certa elaborata in modo impreciso

• Probabilità = informazione mancante– la probabilità che Paolo sia alto è 0.8

(non conosco Paolo)

– l’evidenza che Paolo sia alto è 0.8(lo conosco, l’ho misurato, so che è alto ma non tanto)

Page 17: Soft Computing Fuzzy Logic Alessandro Mazzetti. Definizione Soft Computing –elaborazione graduale dellinformazione Fuzzy Logic Reti Neurali Algoritmi.

Propagazione

• Propagazione delle probabilità:– moltiplicazione

• Propagazione delle evidenze:– minimo

• Probabilità del tutto– 1 (o 100%)

• Evidenza del tutto– dipende dall’appartenenza

Page 18: Soft Computing Fuzzy Logic Alessandro Mazzetti. Definizione Soft Computing –elaborazione graduale dellinformazione Fuzzy Logic Reti Neurali Algoritmi.

ATTENZIONE !

• Fuzzy non vuole dire incerto

• Fuzzy non vuole dire aleatorio

• Fuzzy = deterministico

• ciò che è sfumato è la terminologia:– grossolana per gli uomini– ben precisa per il computer

Page 19: Soft Computing Fuzzy Logic Alessandro Mazzetti. Definizione Soft Computing –elaborazione graduale dellinformazione Fuzzy Logic Reti Neurali Algoritmi.

Controllo Fuzzy

Controllo guidato da ragionamento anziché da funzioni matematiche

Esempio: prendere al volo una pallina (come fa un tennista)

Page 20: Soft Computing Fuzzy Logic Alessandro Mazzetti. Definizione Soft Computing –elaborazione graduale dellinformazione Fuzzy Logic Reti Neurali Algoritmi.

Descrizione “logica”della conoscenza

Quando la pallina e' in salita, il tennista deve portarsi senza fretta nella zona dove potra' cadere, quindi dovra' stare lontano se la pallina va veloce e a media distanza se va lenta.

Quando la pallina e' nella cresta della sua traiettoria, il tennista deve muoversi piu' celermente, sempre nell'intento di portarsi in zona.

Quando la pallina e' in discesa, il tennista deve soltanto inseguirla, cioe' deve avvicinarsi, o star fermo se e' gia' vicino.

In ogni caso, se la pallina sorpassa il tennista, questo deve inseguirla a gambe levate.

Page 21: Soft Computing Fuzzy Logic Alessandro Mazzetti. Definizione Soft Computing –elaborazione graduale dellinformazione Fuzzy Logic Reti Neurali Algoritmi.

Regole per controllo fuzzyse fase=salita e va=lenta e è=lontana_davanti allora movimento=avvicinati_lentose fase=salita e va=lenta e è=vicina_davanti allora movimento=allontanati_lentose fase=salita e va=veloce e è=lontana_davanti allora movimento=fermose fase=salita e va=veloce e è=vicina_davanti allora movimento=allontanati_veloce

se fase=cresta e va=lenta e è=lontana_davanti allora movimento=avvicinati_velocese fase=cresta e va=lenta e è=vicina_davanti allora movimento=fermo...

se fase=discesa e va=lenta e è=lontana_davanti allora movimento=avvicinati_veloce...

se è=dietro allora movimento=avvicinati_veloce

Page 22: Soft Computing Fuzzy Logic Alessandro Mazzetti. Definizione Soft Computing –elaborazione graduale dellinformazione Fuzzy Logic Reti Neurali Algoritmi.

Defuzzificazione

Page 23: Soft Computing Fuzzy Logic Alessandro Mazzetti. Definizione Soft Computing –elaborazione graduale dellinformazione Fuzzy Logic Reti Neurali Algoritmi.

Aggregazione delle evidenze

Page 24: Soft Computing Fuzzy Logic Alessandro Mazzetti. Definizione Soft Computing –elaborazione graduale dellinformazione Fuzzy Logic Reti Neurali Algoritmi.

Il sistema all’opera

regola 1: se ... allora movimento=fermo (evid=0.10)regola 2: se ... allora movimento=fermo (evid=0.18)regola 3: se ... allora movimento=allontanati (evid=0.68)regola 4: se ... allora movimento=allontanati (evid=0.20)

(0.18 * 0.0) + (0.68 * 2.365) movimento = ----------------------------- = 1.87 0.18 + 0.68

Page 25: Soft Computing Fuzzy Logic Alessandro Mazzetti. Definizione Soft Computing –elaborazione graduale dellinformazione Fuzzy Logic Reti Neurali Algoritmi.

Esercizio

• Lanciare il programma PALLINA.COM

• Ispezionare i dati

Page 26: Soft Computing Fuzzy Logic Alessandro Mazzetti. Definizione Soft Computing –elaborazione graduale dellinformazione Fuzzy Logic Reti Neurali Algoritmi.

Campi d’applicazione

• presenza di dati a spettro continuo di difficile categorizzazione

• problema ben padroneggiato ma mal formalizzato• difficolta' nell'individuazione di un modello

matematico• esigenza di una soluzione deterministica ma

elastica• esistenza di esperti aventi una conoscenza

appropriata ma soggettiva

Page 27: Soft Computing Fuzzy Logic Alessandro Mazzetti. Definizione Soft Computing –elaborazione graduale dellinformazione Fuzzy Logic Reti Neurali Algoritmi.

Applicazioni di successo• messa a fuoco automatica per videocamera (Canon e Sanyo)• compensazione di instabilita' di immagine in videocamere

(Panasonic)• scelta del tipo di lavaggio per lavatrici domestiche (Matsushita)• pilotaggio di condizionatori d'aria e scaldabagni (Mitsubishi)• selezione del rapporto in cambi automatici automobilistici (Subaru)• regolazione luminosita' in televisori (Sony)• modulazione di potenza di motori di aspirapolveri (Matsushita)• interpretazione caratteri manoscritti (Sony)• controllo di fornace di cementifici• pilotaggio dei freni nella metropolitana di Sendai• controllo di ascensori• supporto alle decisioni in campo medico