6. Metodologie di processamento non convenzionali.

annuncio pubblicitario
Marcello Salmeri - Progettazione Automatica di Circuiti e Sistemi Elettronici
6.
Capitolo 6 - 1
Metodologie di processamento non convenzionali.
I sistemi esperti.
Il processamento delle informazioni al fine di prendere una decisione, o di classificare degli
oggetti o del ricavare il valore di una variabile, può essere effettuato secondo diverse
metodologie. Un aspetto molto interessante è quello relativo al processamento attraverso
sistemi esperti piuttosto che per mezzo di algoritmi convenzionali.
Un sistema esperto è un sistema in grado di estrapolare delle decisioni da una base di
conoscenze precedentemente acquisite dall’esperienza di un altro sistema classico in grado di
svolgere lo stesso compito, oppure ricavate da una serie di dati campione.
Fanno parte di questa categoria i sistemi basati sulla logica fuzzy e i sistemi basati sulle reti
neurali artificiali.
Sistemi in logica fuzzy.
I sistemi basati sulla logica fuzzy emulano il modo di ragionare umano molto meglio di quelli
basati sulla logica tradizionale. L’innovazione principale apportata dalla fuzzy logic è il
modo di considerare il concetto di appartenenza ad un insieme. Infatti spesso in natura ci si
trova di fronte ad insiemi che non sono nettamente separati (insiemi crisp) e quindi non è
possibile applicare ad essi i principi dell’insiemistica classica. Vi sono poi insiemi che non
possono essere definiti in modo oggettivo, come ad esempio l’insieme dei numeri molto
maggiori di uno e l’insieme delle donne giovani: tali insiemi non possono essere definiti in
modo strettamente matematico.
La generalizzazione del concetto di insieme è effettuata associando ad un elemento una
coppia: la classe e il grado di appartenenza a quella classe.
Sia dato un insieme di oggetti U, che chiameremo universo del discorso e un suo generico
elemento u. Un insieme fuzzy A in U è caratterizzato da coppie formate da ogni elemento u
appartenente a U e da una funzione fA(u) : U → [0, 1], che fornisce il grado di appartenenza
dell’elemento u rispetto A. Formalmente:
A = { (u, fA(u)) | u ∈ U }
Il concetto classico di insieme è contenuto in questa definizione, nel caso particolare di una
fA(u) che possa assumere i due valori { 0, 1 }. La funzione descritta, viene chiamata funzione
di appartenenza (MF, membership function), e fornisce il grado di somiglianza di un
elemento in U ad uno dei sottoinsiemi fuzzy nell’universo del discorso U stesso. Ad esempio,
consideriamo l’universo dei numeri reali e tra questi l’insieme dei numeri compresi tra 5 e 7.
In un approccio di insiemistica classica, la funzione di appartenenza avrà valore unitario per
i numeri nel suddetto intervallo e nulla altrove. La rappresentazione grafica della funzione di
appartenenza è fornita in Figura 1 a sinistra.
Prendiamo ora ad esempio l’insieme dei numeri vicini a 6. Questo tipo di insieme non è
caratterizzabile in maniera consistente dall’insiemistica classica, in quanto fa riferimento ad
una informazione di per sé molto vaga.
Marcello Salmeri - Progettazione Automatica di Circuiti e Sistemi Elettronici
Grado di appartenenza
Grado di appartenenza
1
1
0
0
0 1 2 3 4 5 6 7 8 9 10
Capitolo 6 - 2
0 1 2 3 4 5 6 7 8 9 10
Figura 1 Funzioni di appartenenza classica e fuzzy
Passando ad un approccio fuzzy, non esiste un’unica funzione di appartenenza che
caratterizzi un tale insieme: la scelta viene effettuata in base alle proprietà che si vogliono
attribuire all’insieme, quindi alle possibili applicazioni.
Nel caso preso ad esempio, la f A (u) dovrà verosimilmente avere un valore unitario se u vale
6, e dovrà presentare un andamento monotono decrescente simmetrico. Una scelta possibile
può essere quella di Figura 1 a destra, ma sicuramente non è l’unica. Spesso le funzione di
appartenenza sono sagomate come triangoli o trapezi, ma non è raro trovare altri modelli.
Nell’esempio, il valore 5 sarà considerato vicino a 6 con un grado di appartenenza pari a
0.5. Riguardo al fatto che la forma delle funzioni di appartenenza non è indipendente dal
contesto, consideriamo il caso in cui si debba definire l’insieme degli uomini alti. Il termine
alto può significare cose diverse a seconda delle situazioni. La relativa funzione di
appartenenza varierà quindi a seconda che si stia parlando di gente comune o di giocatori di
basket. È importante sottolineare che il concetto di funzione de appartenenza è una cosa
nettamente distinta dal concetto di distribuzione di probabilità. La logica fuzzy e la teoria
della probabilità si occupano di aspetti diversi dell’incertezza.
Per poter lavorare con gli insiemi fuzzy, è necessario definire su di essi delle operazioni. Tale
operazioni, al contrario di quanto avviene nell’approccio classico, sono definite non sugli
elementi degli insiemi, bensì sulle funzioni di appartenenza. Siano dunque A e B due insiemi
fuzzy definiti su u con funzioni di appartenenza rispettivamente fA e fB : è possibile definire
relazioni e operazioni analoghe a quelle dell’algebra booleana, come l’uguaglianza,
l’inclusione, il complemento, l’unione e l’intersezione.
La capacità umana di agire e ricevere informazioni in contesti vaghi, è dovuta alla potenza
del linguaggio naturale che consente di modellare, riassumere, dare un senso a questo tipo di
informazioni. Ogni parola in un linguaggio naturale fornisce una descrizione sintetica, un
significato, per un sottoinsieme fuzzy di un universo del discorso. Zadeh afferma che le
variabili fuzzy possono essere considerate delle variabili linguistiche, ovvero delle variabili i
cui valori non sono numeri ma parole o frasi espresse in un linguaggio naturale o artificiale.
Una variabile linguistica è generalmente suddivisa in un insieme di termini che coprono il
suo universo del discorso. Ad esempio, la temperatura può essere interpretata come una
variabile linguistica. Essa può essere decomposta nel seguente insieme di termini:
T(temperatura)= { molto bassa, bassa, normale, alta, molto alta }, dove ciascun termine
contenuto in T(u) è caratterizzato da un insieme fuzzy nell’universo del discorso U = [0°C,
40°C]. si può interpretare come molto bassa una temperatura sotto gli 8°C, bassa una
Marcello Salmeri - Progettazione Automatica di Circuiti e Sistemi Elettronici
Capitolo 6 - 3
temperatura tra i 5°C ed i 20°C, normale tra 18°C e 28°C, alta tra i 27°C e i 34°C, molto alta
tra i 32°C e i 40°C.
Ovviamente, un valore della temperatura pari a 33°C appartiene ad entrambi gli insiemi
fuzzy alta e molto alta con diversi gradi di appartenenza, espressi dai relativi valori delle
funzioni di appartenenza in quel punto.
Una variabile fuzzy permette quindi di associare ad ogni elemento dell’universo del discorso
su cui è definita, diversi gradi di attivazione (uno per ogni termine linguistico) di cui almeno
uno è diverso da zero. Il fatto di appartenere contemporaneamente, con gradi diversi, a più
di un termine linguistico, è una caratteristica essenziale dalla logica fuzzy da cui si può trarre
vantaggio nelle applicazioni.
Un sistema fuzzy, come qualsiasi altro sistema classico, riceve in ingresso n variabili, e
restituisce in uscita m grandezze. Ogni sistema fuzzy è costituito da tre sottosistemi che si
occupano di realizzare le tre operazioni fondamentali: fuzzificazione, inferenza e
defuzzificazione.
Nella fase di fuzzificazione, ogni ingresso del sistema, che è rappresentato da un numero
reale, viene trasformato in un elemento di un insieme fuzzy. Ad ogni variabile d’ingresso
viene associata una variabile linguistica che potrà assumere diversi valori, rappresentati da
sistemi fuzzy. Quindi, per ogni ingresso, si dovrà valutare il grado di attivazione dei vari
insiemi fuzzy in ingresso.
Ritornando all’esempio fatto in precedenza relativo alla variabile linguistica temperatura, se
si ha in ingresso al sistema un sensore di temperatura che fornisce un valore numerico, a
questo andranno associati i gradi di appartenenza ai vari insiemi fuzzy: molto bassa, bassa,
normale, alta, molto alta. Dunque, i blocchi successivi del sistema lavoreranno non più con
valori numerici ma con termini linguistici.
Il compito della inferenza è effettuato da un blocco che rappresenta il cuore del sistema fuzzy.
Esso, in funzione del grado di attivazione degli insiemi fuzzy di ingresso e delle regole
definite al suo interno, andrà ad attivare gli insiemi fuzzy di uscita.
La struttura base delle regole è caratterizzata da una parte di valutazione (IF), l’antecedente,
formato dalla composizione logica di più predicati fuzzy, e da una parte di azione (THEN), il
conseguente.
La forma di una generica base di regole è composta da un insieme di regole aventi aspetto
simile alla seguente:
Ri: IF (x1 is A1, s1) AND (x2 is A2, s2) AND … AND (xn is An, sn) THEN (y is Bj) ;
si ∈ [1,k]
dove le xi e y sono le variabili linguistiche, associate rispettivamente alle n variabili di stato
del processo e alla variabile di uscita del sistema, definite sugli universi del discorso U1,
U2,…, U e W; Ai e Bj sono i valori linguistici delle variabili linguistiche xi e y.
La formalizzazione dell’inferenza consiste nel determinare una funzione con dominio nello
spazio k-dimensionale degli insiemi fuzzy di ingresso dell’antecedente e codominio nel fuzzy
set del conseguente. Detta funzione deve soddisfare proprietà di monotonia, associatività,
commutatività e contorno. L’ultima proprietà assicura che se l’antecedente è sicuramente
falso, lo sarà analogamente il conseguente e viceversa.
Le funzioni usate per operazioni di unione e intersezione negli insiemi fuzzy, cioè massimo e
minimo, soddisfano queste proprietà ma non sono le sole e non è detto che siano, in ogni
caso, le più adatte.
Le funzioni di uso più comune nell’implementazione del processo di inferenza sono le
seguenti.
Marcello Salmeri - Progettazione Automatica di Circuiti e Sistemi Elettronici
Intersezione
Unione
minimo
prodotto algebrico
prodotto limitato
massimo
somma algebrica
somma limitata
Capitolo 6 - 4
min { x, y }
xy
max { 0, x + y - 1 }
max { x, y }
x+y-xy
min { 1, x + y }
In generale, per l’implementazione pratica di un sistema inferenziale fuzzy, si cerca di
utilizzare gli approcci classici, in quanto la complessità introdotta da operatori alternativi
non ne giustifica l’utilizzo in contesti produttivi.
Oltre all’informazione relativa alla strategia di controllo memorizzata sotto forma di regole,
ciò che caratterizzala la base di regole è il meccanismo di calcolo con cui queste regole
determinano l’uscita del sistema fuzzy.
Una configurazione di ingressi, attraverso un calcolo derivato dal ragionamento fuzzy, rende
vera ad un certo grado la condizione di ciascuna regola. Una innovazione portata dalla
logica fuzzy è il fatto di coinvolgere contemporaneamente tutte le regole, anche se con gradi
diversi: nella logica classica, infatti, una certa configurazione di ingressi rende vera una sola
condizione e false tutte le altre, per cui l’uscita che si determina è l’azione specificata da
quell’unica regola attivata. Se consideriamo un classico albero di decisione, vediamo che
partendo dalla radice si arriva alla foglia che rappresenta l’azione da compiere scegliendo,
livello per livello, il nodo successivo a seconda della condizione verificata.
In un albero di decisione fuzzy, non si seleziona per ogni configurazione d’ingresso un solo
cammino fra radice a foglia, ma più di uno, ciascuno caratterizzato da un grado di
credibilità: le azioni indicate dalle foglie attivate determinano l’azione grazie ad una loro
combinazione.
L’uscita ottenuta dalla combinazione di un insieme di regole, e non da una sola di esse, fa
comprendere come uno dei pregi dei sistemi fuzzy sia la robustezza rispetto alle informazioni
possedute. Nel caso di un sistema non fuzzy, l’assenza dell’unica regola per cui la condizione
è vera in corrispondenza di un determinato ingresso, provocherebbe un’indeterminatezza
irresolubile. Nel caso di regole fuzzy questo non accade in quanto esse concorrono
contemporaneamente a determinare l’uscita del sistema e quindi l’assenza di una regola,
nella maggior parte dei casi, viene compensata dalla presenza delle altre. Il rischio di non
riuscire a prendere una decisione è quindi molto più raro, anche se non impossibile.
Consideriamo il sistema fuzzy a due ingressi ed una uscita caratterizzato dalla seguente base
di regole:
R1: IF (x is A1) AND (y is B1) THEN (z is C1)
R2: IF (x is A2) AND (y is B2) THEN (z is C2)
Supponiamo di avere in ingresso un valore x = xi e y = yi , che forniscono il grado di
appartenenza :
f (A1, xi) = 0.6
f (A2, xi) = 0.5
f (B1, yi) = 0.7
f (B2, yi) = 0.4
Marcello Salmeri - Progettazione Automatica di Circuiti e Sistemi Elettronici
Capitolo 6 - 5
e scegliamo come metodo di aggregazione il minimo. La situazione è graficamente
rappresentata in Figura 2. Come si può osservare, R1 ed R2 attiveranno C1 e C2 con un grado
pari rispettivamente a 0.6 e 0.4.
B1
A1
C1
R1
A2
R2
xi
B2
C2
yi
Figura 2 Il processo di inferenza
Il calcolo dell’uscita è delegato al processo di defuzzificazione. In letteratura sono proposte
diverse soluzioni per la defuzzificazione: anche in questo caso si tratta di trovare un
compromesso tra risultati e complessità di implementazione.
Il meccanismo di inferenza descritto permette di ottenere, data una base di regole e gli
ingressi crisp del sistema, un insieme fuzzy che rappresenta la decisione del sistema. Il
processo da controllare, costituito da quanto segue il sistema fuzzy, e avente come ingresso
l’uscita di esso, spesso non è in grado di accettare un valore fuzzy come ingresso. Occorre
quindi stabilire un procedimento per ottenere un valore non fuzzy da un valore fuzzy. Il valore
crisp estrapolato dai risultati ottenuti, deve rappresentare il più fedelmente possibile la
decisione presa dal sistema. Il rischio collegato all’operazione è quello di perdere
informazioni che il sistema fuzzy ha elaborato e comunicato tramite la distribuzione d’uscita.
Il metodo più usato è quello del baricentro. I risultati conseguiti nelle applicazioni lo
indicano come il metodo migliore. Sia al solito fF (u) la MF dell’insieme fuzzy F, risultato
dell’inferenza, definito sull’universo del discorso discreto U : U = { u1, u2, …, un }; il risultato
dell’operazione di defuzzificazione è dato da
n
z0 =
åf
j =1
F
(u j ) ⋅ u j
n
åf
j =1
F
(u j )
Marcello Salmeri - Progettazione Automatica di Circuiti e Sistemi Elettronici
Capitolo 6 - 6
Il metodo del baricentro consente di ottenere i migliori risultati per le prestazioni complessive
del sistema fuzzy, ma questo si paga con una pesantezza computazionale non indifferente: n
prodotti, 2n somme e 1 divisione.
Una importante variante al sistema fuzzy descritto è l’aggiunta del costrutto ELSE. Questo
può essere aggregato ad ogni regola oppure alla fine di tutte le regole. Nel primo caso il
grado di attivazione della MF indicata dall’ELSE può essere calcolato come il complemento
del valore di attivazione del conseguente della regola stessa, mentre nel secondo caso come il
complemento del massimo valore di attivazione dei conseguenti di tutte le regole.
Questa modifica può essere essenziale nel caso si voglia indicare un valore di uscita nel caso
nessuna delle regole del sistema sia stata attivata.
Sistemi neurali artificiali.
Il realizzare i sistemi neurali artificiali nasce dall’idea di emulare, attraverso un approccio
algoritmico le funzioni deduttive del cervello ricostruendone la struttura ed il
comportamento.
Il cervello è costituito da neuroni. Un tipico neurone è costituito da un corpo cellulare, detto
soma, dal quale si originano una serie di derivazioni, dette dendriti, ed una fibra nervosa,
detta assone. Dal punto di vista funzionale il soma ed i dendriti costituiscono l’apparato
ricettivo del neurone, mentre l’assone trasmette l’impulso nervoso generato dal soma verso
contatti specializzati, detti sinapsi, con gli altri neuroni.
Il primo modello di neurone formale fu elaborato nel 1943 da McCulloc e Pitts. Tale modello
calcola l’uscita yi come somma pesata dei segnali afferenti dagli altri neuroni. Se tale somma
supera un valore di soglia θi, tipico del neurone i-esimo, l’uscita assume, dopo un tempo di
ritardo τ, il valore 1, altrimenti rimane 0. Si ha dunque:
æ
ö
yi (t + τ ) = Φ ç å wij yi (t ) − θ i ÷
è i
ø
dove Φ è la funzione a gradino unitario e wij sono le efficienze sinaptiche o pesi del neurone j
verso il neurone i. Se wij > 0 la sinapsi è detta eccitatoria, altrimenti è detta inibitoria.
Un ulteriore sviluppo di questi studi portò gli autori a considerare la possibilità di costruire
reti di neuroni in cui i pesi sinaptici e le soglie potevano essere regolati dinamicamente al
fine di adattare la risposta del sistema al variare degli ingressi o di altre condizioni al
contorno. L’idea di una sinapsi modificabile attraverso meccanismi simili a quelli biologici.
Uno di questi fu formulato da Hebb nel 1949.
Secondo il tipo di architettura e la sua funzionalità, si possono distinguere le reti neurali in
diversi modelli.
Rete neurale perceptron.
Uno dei più semplici modelli di rete neurale è il perceptron, elaborato da Rosenblatt negli
anni ’50 con lo scopo principale di suddividere in due classi pattern visivi. Questo è costituito
da una rete di neuroni a soglia con uscita binaria, organizzata in tre strati con la funzione di
dividere i vari pattern visivi in ingresso in due classi A e B. Tali pattern Xp vengono
presentati uno alla volta al primo strato della macchina, ovvero una matrice di unità
Marcello Salmeri - Progettazione Automatica di Circuiti e Sistemi Elettronici
Capitolo 6 - 7
sensoriali. Questa è connessa, secondo una topologia casuale o guidata da una conoscenza a
priori del problema, ad N unità di associazione del secondo strato. I pesi di interconnessione
tra unità sensoriali ed associative sono fissati a priori e quindi non dinamici. L’ultimo strato
è costituito da una sola unità decisionale, che computa l’uscita y*p attraverso una somma
pesata delle uscite precedenti yp a cui viene successivamente applicato un meccanismo di
soglia. In Figura 3 è illustrata questa struttura.
y1
yθ = 1
w1
yj
wθ = - q
y*
wj
wN
Unità decisionale
yN
Unità associative
Unità sensoriali
Figura 3 Rete neurale perceptron
La procedura di addestramento consiste nel trovare i pesi wj tra il secondo ed il terzo strato e
la soglia θ, tale che
y*p = 1
y*p = 0
se il pattern p ∈ A
se il pattern p ∈ B
dove
ö
æ N
y *p = Φ çç å w j y pj − θ ÷÷
ø
è j =1
Questo corrisponde ad un iperpiano che separa lo spazio dei pattern in due regioni di
decisione con equazione
N
åw
j =1
j
y j −θ = 0
Se si considera un ingresso aggiuntivo y0 di valore 1 con peso w0 = - θ , si avrà
Marcello Salmeri - Progettazione Automatica di Circuiti e Sistemi Elettronici
N
åw
j =0
j
Capitolo 6 - 8
yj = 0
La procedura di adattamento si sviluppa come segue.
Inizializzazione dei pesi wj.
Presentazione dei pattern Xp con le uscite desiderate dp.
Calcolo delle uscite ypi dei neuroni nascosti.
Calcolo dell’uscita y*p.
Modifica dei pesi secondo la formula ∆w j = η d p − y *p y pj dove η è un coefficiente
compreso tra 0 e 1.
6. Se l’errore è superiore ad un certo valore stabilito, si ritorna al passo 2).
1.
2.
3.
4.
5.
(
)
La regola di correzione degli errori si applica ponendo in ingresso un pattern di una delle
due classi. Se l’uscita è quella desiderata, pesi e soglie non variano, altrimenti vengono
aumentati i pesi sulle linee attive (ovvero dove ypi = 1) per facilitare al passo successivo
dell’apprendimento l’uscita corretta.
Il teorema di convergenza del perceptron asserisce che se esiste un iperpiano che può
separare le due classi, la procedura di addestramento converge in un tempo finito alla
soluzione. Altrimenti genera un comportamento oscillante.
L’apprendimento quindi converge se e solo se i pattern di ingresso sono separabili da un
iperpiano.
Rete neurale perceptron multistrato.
Una variante alla tipologia di reti neurali precedente consiste nell’introduzione di ulteriori
strati di neuroni come unità associative. In questo caso il calcolo dei pesi sulle unità degli
strati interni nascosti sarà effettuato da un particolare algoritmo detto Error Back
Propagation che consiste nel propagare a ritroso sulla rete gli errori calcolati. Purtroppo
questo algoritmo, che si basa sul gradiente, soffre del problema dei minimi locali, ma
all’aumentare del numero delle unità nascoste, il rischio di rimanere intrappolati in un
minimo locale diminuisce notevolmente. Il problema principale è piuttosto quello del tempo di
convergenza che può essere molto lungo.
Da un punto di vista delle potenzialità del sistema, esso può discriminare più classi e non
necessariamente separabili tra loro da iperpiani.
Rete neurale ad attrattori.
I modelli precedenti di reti neurali sono in grado di separare tra loro le classi attraverso un
meccanismo di apprendimento che presenta in ingresso al sistema anche l’uscita aspettata.
Ci sono casi in cui può essere utile classificare oggetti senza sapere a priori quale sia la loro
classe. Una rete neurale ad attrattori, in particolare, è un sistema che riceve in ingresso solo
i pattern e risponde non con un identificatore della classe di appartenenza, ma con un pattern
identificativo della classe. Non c’è più una separazione netta tra le fasi di apprendimento e
classificazione, ma ogni volta che viene presentato un pattern il sistema modifica il suo stato
per adattarsi alla classificazione.
Marcello Salmeri - Progettazione Automatica di Circuiti e Sistemi Elettronici
Capitolo 6 - 9
Consideriamo un sistema minimo formato da tre neuroni, come illustrato in Figura 4.
S13
N1
N3
S12
S23
N2
A1
A2
A3
Figura 4 Rete neurale ad attrattori
Gli ingressi vengono dati, per un certo tempo definito, sugli ingressi Ai ai neuroni Ni. Alcuni
di essi risulteranno attivi. Le sinapsi S si configureranno in modo da aumentare il loro peso
se entrambi i neuroni ai quali sono connessi sono attivi.
La fase dell’apprendimento è effettuata ponendo in ingresso un certo numero di pattern.
Durante tale fase la rete si configura in modo da formare un numero di attrattori pari al
numero di classi che man mano vengono identificate.
Un ruolo importante in questa tipologia di rete neurale viene svolto dalla statistica del
rumore che viene appositamente aggiunto in ingresso alle sinapsi.
Durante la fase di riconoscimento un pattern viene posto sempre sugli ingressi Ai e viene
quindi tolto. La rete risponde portando i suoi neuroni su una configurazione prototipale della
classe in cui il pattern viene implicitamente classificato. Le uscite saranno ancora su Ai.
Naturalmente la dinamica della rete fa in modo che i tempi siano molto importanti.
Scarica