Bandiera inglese Bandiera italiana

PAGINA IN COSTRUZIONE

I sistemi adattivi fuzzy

Premessa

Gli argomenti presentati in questa pagina richiedono come requisiti propedeutici la conoscenza dei controlli fuzzy o almeno dei concetti fondamentali della logica fuzzy. L'approccio all'argomento consiste nell'introdurre brevemente il concetto di rete neurale e mostrare com'è possibile ottenere un comportamento simile utilizzando i cosidetti sistemi adattativi fuzzy. Per maggiori dettagli sul funzionamento delle rete neurali si rimanda alla voce su wikipedia.

Contenuti

  • Introduzione alle reti neurali (leggi)
  • La memoria associativa bidirezionale (leggi)
  • Configurazioni di equilibrio nelle reti neurali (leggi)
  • I sistemi fuzzy adattivi (leggi)

Le reti neurali

Una rete neurale è un insieme di nodi connessi tra loro: ogni nodo può essere collegato a pochi nodi, a molti nodi o addirittura a tutti gli altri nodi della rete. Se pensiamo alle città come "nodi" e alle strade come "collegamenti", anche la rete stradale potrebbe essere considerata una rete neurale. Il cervello è ritenuto ad oggi la rete neurale per eccellenza, i cui nodi sono detti neuroni e i collegamenti tra i nodi sono chiamati sinapsi.
L'elemento più importante di una rete neurale sono i collegamenti (o le sinapsi) tra i vari nodi (o neuroni). Consideriamo ad esempio le figure qui sotto: la prima rete (a sinistra) e la seconda (al centro) sono simili tra loro, anche se risultano composte da un numero diverso di nodi: in entrambi i casi la rete ha infatti un "comportamento circolare".

Rete neurale a 10 nodi Rete neurale a 4 nodi Rete neurale a 4 nodi
Rete neurale a 10 nodi Rete neurale a 4 nodi Rete neurale a 4 nodi

La terza rete (a destra) è invece molto diversa dalle altre, anche se ha lo stesso numero di nodi della seconda rete (addirittura nelle stesse posizioni). Essa è diversa perché contempla collegamenti nuovi e "incrociati" tra alcuni nodi. Questa è una delle forze delle reti neurali: quel conta non è il numero di nodi (o neuroni) ma la strategia di collegamento tra di essi. E' meglio una rete con collegamenti efficienti e pochi nodi, piuttosto che una piena di nodi non collegati o addirittura collegati male. Ciò suggerisce che anche nel caso del cervello umano non è il numero di neuroni che conta, ma la quantità e l'efficienza delle sinapsi.

In una rete neurale generalmente non esistono nodi che fungono esclusivamente da input o da output, anzi: spesso i nodi associati all'output sono collegati agli stessi nodi di input, per cui quando la rete viene sollecitata al suo interno si attiva una sorta di
retroazione globale, detta appunto massive feedback: i diversi nodi si mandano messaggi l'un l'altro, attivandosi in parallelo e contemporaneamente, fino a che la rete si stabilizza verso una configurazione di equilibrio.

Una configurazione della rete coincide (in prima approssimazione) con la "lista" dello stato di tutti i nodi.
Se consideriamo una rete con soli 3 nodi le configurazioni possibili sarebbero 8: 000, 001, 010, 011, 100, 101, 110, 111. La configurazione "100" ad esempio indica che il primo nodo è attivo, mentre gli altri sono spenti. In realtà le cose sono un pò più complicate, perché i nodi possono accendersi in modo fuzzy, ovvero essere solo un po' accesi, mediamente accesi, molto accesi ecc. Inoltre alcune configurazioni della rete possono essere in realtà delle sequenze di configurazioni che si ripetono in modo ciclico (un po' come un disco rotto o un'immagine GIF animata). Quel che conta è che ogni rete prevede quasi sempre delle configurazioni finali stabili, che vengono dette anche stati o equilibri delle rete.

Neurone Un aspetto molto importante delle reti neurali è la loro capacità di apprendimento. Consideriamo il cervello umano: ogni volta che la rete (il cervello) viene attivata alcune sinapsi sono attraversate da segnali elettrici, altre no. Più una sinapsi viene usata, più si "ingrossa" e più diventa efficiente. Al contrario, se un collegamento sinaptico viene usato raramente, esso si atrofizza e perde efficienza. Ciò fa in modo che - col tempo - alcune configurazioni diventino più efficienti e/o che la rete "impari" nuove configurazioni. Mediante questo meccanismo ogni rete acquisisce con l'esperienza degli stati "preferenziali", ovvero degli equilibri stabili verso i quali la rete tende a convergere quando viene sollecitata.

La memoria associativa bidirezionale

Un semplice esempio di rete neurale è la rete BAM, o memoria associativa bidirezionale (Bidirectional Associative Memory). Se trascuriamo la struttura interna della rete e ci concentriamo solamente sul suo comportamento, una rete BAM assomiglia molto al concetto di regola FAM dei controlli automatici fuzzy. In prima approssimazione la rete BAM funziona proprio come una FAM, ovvero: SE vale S ALLORA vale A. La prima differenza sta nel fatto che nella regola FAM gli stati S ed A sono due condizioni fuzzy (o insiemi fuzzy), mentre nella rete BAM gli stati S ed A sono due configurazioni di equilibrio della rete. L'altra differenza è che la rete BAM, per effetto del massive feedback visto sopra, funziona in modo bidirezionale, per cui si attiva anche nella direzione opposta, cioè

SE vale A ALLORA vale S

Una rete BAM è quindi in grado di "autoconfermarsi" (o meglio retroazionarsi) usando lo stato d'uscita per modificare lo stato d'ingresso e compiere così dei cicli di adattamento progressivi verso una configurazione di equilibrio. Precisiamo che nel caso di una rete neurale "ingresso" e "uscita" sono parti della rete stessa, ovvero sono dei "grappoli" o delle "sezioni" di nodi appartenenti alla rete: nel caso di una rete BAM questi "grappoli" possono essere considerati come delle "sottoreti" ben separate e distinte all'interno della rete.

Regola BAM: uscita Retroazione in una regola BAM Regola BAM: ingresso L'evoluzione di una rete BAM può essere spiegata come segue: all'inizio in ingresso c'è qualcosa che è un pochino una lettera S, quindi in uscita c'è un pochino di lettera A. Siccome in uscita c'è un pochino di A, correggo l'ingresso con un pochino di S, ed in ingresso adesso c'è un po' più S. Ma allora anche l'uscita è un pochino più A di prima, per cui l'ingresso diventa parecchio S ... e così via.

Si potrebbe dire che "una rete BAM funziona per forza", e difatti questo è vero se abbiamo a disposizione una sola regola. Se l'unico ingresso possibile è una S e l'unica uscita possibile è una A, è naturale che qualsiasi "disturbo" in ingresso provochi l'attivazione della rete BAM e la convergenza verso la coppia di stati S-A. Le cose si fanno più interessanti quando al sistema vengono insegnate altre regole, ad esempio: SE M ALLORA G, SE P ALLORA E, SE D ALLORA L ecc.
In tal modo si costruisce un sistema che è in grado di riconoscere efficacemente i vari casi e riesce a scegliere la configurazione più appropriata al segnale d'ingresso, anche quando esso è difficilmente riconoscibile. Un sistema di questo tipo è a sua volta una rete neurale, composta dalla sovrapposizione di molte reti BAM, le quali condividono in generale sia dei nodi, sia dei collegamenti, per cui vale che

uno stato di equilibrio stabile di una rete neurale può essere associato ad una rete BAM

In altre parole è possibile pensare ad una rete BAM sia come un particolare schema d'attivazione di una rete più vasta, sia come una regola fuzzy bidirezionale che lega tra loro due configurazione stabili della rete.

E' interessante osservare che il riconoscimento di certe situazioni da parte del cervello umano assomiglia all'attivazione delle regole BAM. Supponiamo di voler scegliere una bevanda: il nostro cervello valuta tutte le configurazioni che hanno in ingresso la voglia di acqua, vino, aranciata, thè, gassosa ecc. e facendo ciò visualizza in parte le varie uscite, ovvero le diverse scelte corrispondenti. Se la scelta "thè" si attiva un pò più delle altre, al "secondo ciclo" il cervello metterà più a fuoco la possibile voglia di thè (per via dell'azione bidirezionale). Nell'arco di pochi passaggi si convergerà verso la configurazione "se ho voglia di thè allora scelgo un thè". Tutto ciò avviene in una frazione di secondo, e viene percepito dal nostro io cosciente semplicemente come "mi è venuta voglia di un thè".

Punti di equilibrio

Abbiamo già visto che quando una rete neurale viene attivata (stimolando i suoi nodi di input), essa oscilla per qualche istante e poi converge verso uno stato di equilibrio. Tale stato è detto anche attrattore (in questo caso attrattore a punto fisso). Shun-ichi Amari ha dimostrato che la configurazione d'equilibrio verso la quale converge una rete è uno stato che minimizza l'energia della rete.

Rete neurale e regole BAM Il concetto assomiglia un pò a quello di una pallina che rotola su un campo da minigolf: la pallina potrà rimbalzare qua e là, ma alla fine si fermerà sempre in uno stato di equilibrio, ovvero di minima energia potenziale. Se potessimo rappresentare (cosa tutt'altro che facile) il livello di energia di una rete neurale in funzione dei suoi stati, le configurazioni di equilibrio sarebbero delle "buche" sulla superficie di potenziale: quando sollecitiamo la rete è un po' come se lanciassimo una pallina sopra la superficie, per cui la pallina tenderà a fermarsi in una di queste buche, ciascuna delle quali è detta bacino dell'attrattore, come indicato nella figura qui a lato.

Abbiamo già visto che una configurazione di equilibrio della rete può essere associata ad una regola BAM (e viceversa). E' per questo motivo che nel grafico qui sopra abbiamo riportato la scritta BAM sull'asse delle x : ogni attrattore a punto fisso della rete può essere associato ad una regola BAM. La corrispondenza tra configurazioni di equilibrio, buche di potenziale e regole BAM aiuta a capire in che modo funziona l'apprendimento in una rete neurale.

Apprendimento in una rete neurale Ogni volta che attiviamo una rete neurale è come se una pallina ne "scolpisse" la superficie di potenziale. In questo modo le buche che accolgono la pallina vengono "scavate" e diventano bacini di attrazione sempre più profondi, per cui la loro attivazione diventa più efficace. Può anche accadere che la pallina cada ripetutamente in una zona "senza buche", ovvero che un certo evento si ripeta spesso conducendo sempre alle stesse conseguenze, in tal caso la rete impara il nuovo evento e una nuova buca di potenziale compare sulla superficie. Tanto più frequentemente si ripete un'esperienza, tanto più profonda diventa la buca di potenziale, e tanto meglio si definisce la regola BAM associata.

Nelle reti neurali biologiche il fenomeno si spiega in termini di collegamenti sinaptici che si irrobustiscono, ma il succo non cambia: è possibile sottoporre una rete neurale ad un gran numero di esperienze ed ottenere come risultato una serie di regole BAM. Un sistema di questo tipo è detto DIRO, che significa Data In, Rules Out, ovvero "dentro i dati, fuori le regole", proprio per enfatizzare il fatto che il processo di apprendimento corrisponde all'aggiunta di nuove regole BAM. Nella pratica ciò si realizza facendo osservare alla rete il comportamento di un esperto. Ad esempio, se la rete deve imparare a parcheggiare un'automobile, si fanno "vedere" alla rete qualche centinaio di manovre di parcheggio: il risultato è un insieme di opportune regole BAM che "spiegano" come automatizzare il procedimento per parcheggiare un'automobile in termini di
regole fuzzy.

I sistemi fuzzy adattivi

La capacità di apprendimento delle reti neurali permette di progettare sistemi fuzzy in grado di autoregolarsi: all'inizio si "programma" la rete facendole vedere un certo numero di esempi operati da un esperto, e si immettono le regole fuzzy così ottenute nel controllo automatico fuzzy. In un secondo tempo, man mano che il sistema "lavora", la rete neurale continua ad imparare dall'esperienza e migliora sempre più le regole fuzzy che pilotano il controllo automatico. In questo modo si possono ottenere dei sistemi che dopo un pò di tempo risultano persino più abili dell'esperto dalla quale la rete ha imparato i primi passi (l'allievo supero il maestro).

Abbiamo visto che una rete neurale imparara "scavando" pozzi nella superficie di potenziale dello spazio delle configurazioni. I pozzi ben definiti, corrispondenti a regole BAM ben formulate, sono generati da numerose esperienze simili, ovvero da agglomerati di punti, dove ciascun punto rappresenta una coppia ben definita: stato d'ingresso e stato d'uscita. Alcune reti neurali sfruttano il concetto di agglomerato di punti per modellare il processo di apprendimento senza la necessità di individuare le buche di potenziale. Reti di questo tipo sono dette reti AVQ, che sta per Adaptive Vector Quantizers (quantizzatori vettoriali adattativi). Queste reti imparano iterando il seguente processo ad ogni nuova esperienza: si attiva la rete e si ottiene un risultato, si cerca il nodo (o neurone) la cui trama di collegamenti (o sinapsi) è più vicina allo stato d'uscita, poi si modifica tale trama per avvicinarla un po' al risultato ottenuto.

Siccome una rete AVQ è descritta da un numero elevato, ma fisso, di punti nello spazio degli stati (o configurazioni), tale procedimento significa che dopo ogni esperienza si sposta il punto AVQ più vicino al risultato verso il risultato stesso. Poi, con un opportuno procedimento (ad esempio un algoritmo software) si possono usare gli agglomerati di punti AVQ per definire gli insiemi fuzzy che definiscono le
regole FAM che servono a progettare il controllo automatico. Il procedimento che ricava gli insiemi fuzzy, e quindi la toppe della copertura, dagli agglomerati di punti (o cluster) è chiamato per questo motivo procedimento di clusterizzazione.

Dubbio

Controllo fuzzy a punti AVQ Possiamo fare la stessa cosa con un controllo automatico fuzzy progettato per mezzo del teorema FAT?
Si introducono nel sistema un valore di ingresso e il corrispondente valore d'uscita, in modo da assegnare un punto nel diagramma delle "pezze" FAT per ogni esempio operato dall'esperto. Poi si clusterizzano questi punti direttamente nello spazio degli stati, ottenendo le pezze e quindi le regole FAM. In tal modo si ottiene un sistema fuzzy che simula il comportamento di una rete neurale senza la rete neurale vera e propria.





Riflessioni

- Spiegazione dei concetti astratti e dei dejù-vù come buche di potenziale create senza l'esperienza, per effetto di risonanza o come lavoro di scarto: colori, Dio, verità, giustizia.

- Creare illustrazione con superficie 2D (Excel?).

Argomenti correlati