Università degli Studi di Palermo FACOLTÀ DI SCIENZE LAUREA IN FISICA
RETI NEURALI: MODELLI E ASPETTI APPLICATIVI
TESI DI LAUREA DI: LETTERIO IACHETTA RELATORE: Prof. STEFANO MICCIANCIO _____________________________________________________________ anno accademico 1988-89
Reti Neurali: modelli e aspetti applicativi
2
SOMMARIO
1. - INTRODUZIONE
5
1.1 - DEFINIZIONE DEL PROBLEMA
5
1.2 - CONTENUTO DEI CAPITOLI SUCCESSIVI
6
2. - COMPUTAZIONE CLASSICA E MODELLI CONNESSIONISTICI
7
2.1- INTRODUZIONE
7
2.2 - ALGORITMI E MACCHINE DI TURING
8
2.3 - I NEURONI FORMALI DI MC CULLOCK E PITTS
11
2.4 - L'ELABORATORE DI VON NEUMANN
13
2.5 - LIMITI DELL'ARCHITETTURA DI VON NEUMANN
15
2.6 - CERVELLO E CALCOLATORI
17
2.7 - SISTEMA NERVOSO, CERVELLO E NEURONI
18
2.8 - NATURA E COMPUTAZIONE
21
3. - MODELLI DI RETI NEURALI
23
3.1 - INTRODUZIONE
23
3.2 - ORIGINE DELLE RETI NEURALI
23
3.3 - ARCHITETTURA ASTRATTA DI UNA RETE NEURALE
26
3.4 - DEFINIZIONE DI RETE NEURALE
32
3.5 - CLASSIFICAZIONE DELLE RETI NEURALI
33
4. - RETI DI HOPFIELD E MACCHINA DI BOLTZMANN
34
4.1- INTRODUZIONE
34
4.2 - MODELLO DISCRETO DELLA RETE DI HOPFIELD
34
4.3 - CONSIDERAZIONI ENERGETICHE SULLA RETE DISCRETA DI HOPFIELD
37
4.4 - REGOLA DI APPRENDIMENTO DI HEBB E APPLICAZIONI C.A.M. DEL MODELLO DISCRETO DI HOPFIELD
39
4.5 - MODELLO CONTINUO DELLA RETE DI HOPFIELD
42
4.6 - ANNEALING E ANNEALING SIMULATO
49
Reti Neurali: modelli e aspetti applicativi
3
4.7 - MACCHINA DI BOLTZMANN
52
4.8 - REGOLA DI APPRENDIMENTO PER LA MACCHINA DI BOLTZMANN
54
5. - ALTRI MODELLI: PERCEPTRONI E RETI DI KOHONEN
56
5.1 - INTRODUZIONE
56
5.2 - PERCEPTRONE A SINGOLO STRATO
57
5.3 - LIMITI DEL PERCEPTRONE A SINGOLO STRATO
60
5.4 - PERCEPTRONI MULTISTRATO
63
5.5 - REGOLA DI APPRENDIMENTO BACK-PROPAGATION
65
5.6 - RETI AUTO-ORGANIZZANTI DI KOHONEN
68
6. - APPLICAZIONI DELLE RETI NEURALI
70
6.1 - INTRODUZIONE
70
6.2 - RAPPRESENTAZIONE DEI DATI
71
6.3 - APPLICAZIONE DEL MODELLO CONTINUO DI HOPFIELD
73
6.3.1 - CONVERTITORE ANALOGICO/DIGITALE
73
6.3.2 - SCOMPOSIZIONE DI SEGNALI ANALOGICI
76
6.3.3 - IL PROBLEMA DEL COMMESSO VIAGGIATORE (TSP)
79
6.3.4 - PROGRAMMAZIONE LINEARE
82
6.3.5 - IL PROBLEMA DI HITCHCOCK
84
6.3.6 - SISTEMA DI EQUAZIONI LINEARI
88
6.4 - COMPLESSITÀ' COMPUTAZIONALE DI UNA RETE NEURALE
89
6.5 - APPLICAZIONE DI PERCEPTRONI MULTISTRATO CON REGOLA BACKPROPAGATION: RETE NETTALK
91
7. - MEMORIE ASSOCIATIVE BASATE SUL MODELLO DISCRETO DI HOPFIELD E NUOVI ALGORITMI DI MEMORIZZAZIONE
94
7.1 - INTRODUZIONE
94
7.2 - PROBLEMI ALEATORI E MEMORIE ASSOCIATIVE
95
7.3 - CONSIDERAZIONI SUL MODELLO DISCRETO DI HOPFIELD
97
7.4 - NUOVI ALGORITMI DI MEMORIZZAZIONE
99
7.5 - ALGORITMO DI MEMORIZZAZIONE DI S.H. OH
101
7.6 - SIMULAZIONI AL CALCOLATORE DI MEMORIE ASSOCIATIVE
103
7.6.1 - SIMULAZIONE 1
105
Reti Neurali: modelli e aspetti applicativi
4
7.6.2 - SIMULAZIONE 2
105
7.6.3 - SIMULAZIONE 3
106
7.6.4 - SIMULAZIONE 4
106
7.6.5 - SIMULAZIONE 5
107
7.7 - MEMORIE OTTICHE ASSOCIATIVE
108
7.8 - CONCLUSIONI
110
8. - BIBLIOGRAFIA
111
9. - INDICE DELLE FIGURE
113
Reti Neurali: modelli e aspetti applicativi: Cap 1 - Introduzione
5
1. - INTRODUZIONE 1.1 - DEFINIZIONE DEL PROBLEMA
Esiste una vasta gamma di problematiche nelle quali i convenzionali computer digitali ad architettura Von Neumann rivelano i loro limiti. Si tratta di problemi come il riconoscimento
di
forme,
la
comprensione
del
linguaggio
rappresentazione della conoscenza, che sono qualitativamente classicamente
naturale e la
diversi
da
quelli
implementabili nei computer. Ad esempio i problemi posti
dal
riconoscimento delle forme costituiscono un sottoinsieme dei problemi detti aleatori. Anche la classe dei cosiddetti problemi di ottimizzazione combinatoria non si presta ad una soddisfacente soluzione algoritmica se implementata nei computer tradizionali. Sia i problemi aleatori, sia quelli di ottimizzazione combinatoria un altissimo numero di soluzioni, e il solo modo
sono
caratterizzati
da
per risolverli è di ridurre
drasticamente tale numero. I metodi di riduzione utilizzati sono noti come metodi euristici, e non sono applicabili in generale a tutti i problemi. I metodi euristici richiedono quasi sempre un grandissimo sforzo computazionale da parte dei calcolatori e spesso i tempi di
risoluzione di un problema sono completamente inaccettabili. Da un po’ di
tempo per la soluzione dei problemi ad alto numero di soluzioni ci si è rivolti ad algoritmi ed architetture completamente differenti. diversi settori, hanno studiato
e
Molti ricercatori,
progettato innovative
macchine
provenienti da ad
architettura
parallela, emulanti l'organizzazione e le funzioni del cervello, che si sono dimostrate in grado di risolvere sia i problemi aleatori sia quelli di ottimizzazione combinatoria non alla portata dei computer attuali. Tali macchine sono comunemente chiamate reti o sistemi neurali. La loro architettura definisce i cosiddetti modelli connessionistici o modelli di elaborazione parallela
distribuita
(Parallel
Distributed
Processing
-
P.D.P.). Le reti neurali si basano sull'idea di realizzare un processo di computazione attraverso l'interazione di un grande numero di semplici elementi chiamati neuroni. La novità principale di tali modelli rispetto i computer
tradizionali è la non
necessita di programmazione. Quest'ultima viene sostituita dalla possibilità di impostare sulla rete neurale una sorta di apprendimento che può attraverso esempi. L'approccio mediante reti sistemi
neurali
essere spontaneo o guidato
consente
sia
di
realizzare
computazionali che posseggono caratteristiche simili a quelle dei sistemi
Reti Neurali: modelli e aspetti applicativi: Cap 1 - Introduzione
biologici, sia di impostare in modo nuovo i problemi
6 fondamentali dell'intelligenza
artificiale. La teoria delle reti neurali si propone anche di riorganizzare i rapporti tra lo studio astratto e formale delle funzioni mentali (scienza cognitiva), e quello concreto
del
cervello
visto
come
una
macchina
fisica
(neuroscienze).
I segni di un ravvicinamento tra scienza cognitiva e neuroscienze sono giustificati sia
dagli
sviluppi tecnologici, che consentono la costruzione dei sistemi neurali,
sia dai progressi delle ricerche, condotte da fisici, psicologi e neurofisiologi, sullo studio fisico del cervello . La tesi si propone di fornire un quadro generale degli studi attuali sulle reti neurali, con particolare riguardo alle applicazioni computazionali e alla costruzione di memorie associative. Le memorie associative sono dei dispositivi in
grado di
recuperare i
dati
memorizzati mediante la presentazione di copie
incomplete o distorte di questi ultimi. E' facile comprendere che l'argomento delle reti neurali, interessando svariati campi della ricerca, assume vastissime
proporzioni,
pertanto la tesi ha focalizzato i principali modelli di una teoria ancora giovane cercando di evidenziare le applicazioni a problemi reali.
1.2 - CONTENUTO DEI CAPITOLI SUCCESSIVI
Il lavoro inizia evidenziando l'origine comune tra i primi modelli neurali, la macchina algoritmica di Turing e l'elaboratore di Von Neumann. Un breve accenno alla struttura e al funzionamento del cervello, necessario per capire il macchine di calcolo vi si ispirano, conclude il
secondo
senso con cui le nuove capitolo. La
descrizione
dell'architettura generale e delle proprietĂ dei sistemi neurali, insieme a una sommaria classificazione, costituisce l'argomento del terzo capitolo. Il quarto e il quinto capitolo si soffermano sulla teoria delle reti di Hopfield, dei perceptroni e delle reti di Kohonen. Una collezione di
applicazioni computazionali delle reti di Hopfield e dei
perceptroni è presentata nel quinto capitolo. Tale capitolo lascia intravedere la vastità dei possibili orizzonti applicativi. Nel sesto e ultimo capitolo sono raccolte una serie di simulazioni al calcolatore fatte
dall'autore. Le simulazioni riguardano memorie
associative basate sulle reti di Hopfield e su diverse regole di funzionamento.
Reti Neurali: modelli e aspetti applicativi: Cap 2 - Computazione Classica e Modelli Connessionistici
7
2. - COMPUTAZIONE CLASSICA E MODELLI CONNESSIONISTICI 2.1- INTRODUZIONE
L'originale modello di rete di neuroni è elaborato dai matematici Mc Cullock e Pitts negli anni di sviluppo della prima cibernetica, parallelamente allo studio da parte di Von Neumann
della
sua
architettura
evidenziano le analogie tra
di
elaboratore. In questo secondo capitolo si
la macchina di Turing, prototipo di macchina ideale e
universale di calcolo, e le reti di neuroni Successivamente
si
analizza
l'architettura
formali
di
Mc
Cullock
e Pitts.
dell'elaboratore di Von Neumann, che
deriva direttamente da quella della macchina di Turing.
In conclusione i limiti
dell'elaboratore di Von Neumann sono confrontati con le peculiarità del cervello. Il
capitolo,
partendo
dai
fondamenti della teoria matematica della computazione,
arriva a generalizzare un processo di calcolo all’evoluzione dinamica di sistemi fisici diversi dai
calcolatori
e intrinsecamente non programmabili, lasciando intuire la
possibilità di nuove architetture.
Reti Neurali: modelli e aspetti applicativi: Cap 2 - Computazione Classica e Modelli Connessionistici
8
2.2 - ALGORITMI E MACCHINE DI TURING
La teoria della computabilità studia
la
risolvibilità algoritmica di un problema.
Un algoritmo è una procedura completamente definita, articolata in un numero finito di passi,
eseguibili
meccanicamente
in
un
tempo
finito,
e corrispondente a
un'espressione scritta in un determinato linguaggio. I problemi per la cui soluzione esiste un algoritmo definiscono la classe
delle
funzioni computabili. Le funzioni
computabili possono essere espresse per mezzo di un tipo di definizione molto generale detta ricorsiva che sarà definita più avanti. Il problema di definire in maniera rigorosa la classe delle funzioni computabili porto nel 1930 il matematico Turing1 al progetto di una macchina di calcolo ideale descritta in figura 2.1. Gli elementi costituenti la macchina di Turing sono:
1. un unità esterna di memoria o nastro 2. una testina di lettura e scrittura 3. una unità di controllo A a stati finiti.
Per la macchina di Turing è definito un alfabeto esterno di simboli Xi, e un alfabeto interno di simbolo Qi . Gli ingressi della macchina sono i simboli dell'alfabeto esterno X, mentre l'uscita della macchina corrisponde ad un'operazione di scrittura di un simbolo sull'unità esterna di memoria oppure ad un movimento della testina sul nastro. Lo stato interno della macchina è espresso mediante i simboli Qi dell'alfabeto interno della macchina. Il funzionamento della macchina consiste nell'esecuzione di una serie di passi elementari, in ciascuno dei quali la macchina assume una configurazione totale determinata dallo stato in cui si trova la macchina, dalla cella in esame dall'unità di controllo e dal contenuto di ogni
cella
della
memoria
esterna. Si definisce
computazione o calcolo di una macchina di Turing una sequenza di configurazioni totali che terminano in uno stato di halt Q0. Lo stato di halt non ammette
una
configurazione successiva. Il tipo d'algoritmo implementato da una particolare macchina di Turing è definito dalla tavola funzionale della macchina,
1
che
corrisponde
al
A. Turing, “On computable numbers, with an application to the entscheidungsproblem”, Proceedings of the London Mathematical Society, Num. 2 Vol XLII, 1936.
Reti Neurali: modelli e aspetti applicativi: Cap 2 - Computazione Classica e Modelli Connessionistici
9
programma dell'unità logica. Il concetto di macchina di Turing può essere esteso definendo una macchina di Turing universale in grado di eseguire gli algoritmi di una qualsiasi macchina di Turing dotata di una qualunque tavola funzionale. La macchina universale opererà a partire da una configurazione iniziale che prevede la registrazione su nastro sia della matrice funzionale della macchina da imitare che della configurazione iniziale di questa. La macchina di Turing universale equivale concettualmente ad un computer Von Neumann general purpose. La caratteristica della macchina universale di avere tavole funzionali e simboli dell'alfabeto esterno memorizzati insieme nella memoria esterna equivale, nel caso di un elaboratore Von Neumann, ai programmi e ai dati contenuti contemporaneamente in memoria. L’universalità della macchina di Turing viene evidenziata dalla tesi di Church, la quale restringe il concetto di computabilità a una classe precisa ma molto generale di funzioni, le funzioni parziali ricorsive. Una funzione di n-argomenti f(x1 ,x2 ,...,xn ) è detta ricorsiva se è definibile mediante le equazioni2 :
2.1 Nella 2.1 g e h sono funzioni note, S(x) è la funzione successore definita come: S(x) = x + 1. La funzione ricorsiva f è detta parziale quando essa non ha un valore definito per ogni n-upla di argomenti (x1 ,x2 ,...,xn ) ed è quindi
definita per un set limitato di
argomenti. Un esempio di definizione ricorsiva di funzione riguarda l'operazione di addizione, indicando f col simbolo + si ha:
2.2 Nella 2.2 +(x,S(y)) è definito in termini di +(x,y) e della funzione nota successore (h = S).
Anche l'operazione di moltiplicazione può essere definita in tal modo, indicando f
col simbolo * si ha:
2.3
2
Robert McNaugthon, “Elementary Computability, Formal Languages and Automata”, Prentice Hall International 1982.
Reti Neurali: modelli e aspetti applicativi: Cap 2 - Computazione Classica e Modelli Connessionistici
10
Nella 2.3 *(x,S(y)) è definito in termini di *(x,y) e della funzione nota addizione (h = +). La tesi di Church afferma che qualunque algoritmo scritto con qualsiasi formalismo può essere calcolato da una macchina di Turing. La formulazione forte di questa tesi dice che qualsiasi sistema fisico reale può essere simulato da una macchina di Turing, con un grado di approssimazione arbitrariamente elevato, con l'ipotesi di poter ignorare i limiti di lunghezza del nastro della macchina e il tempo disponibile per la computazione. Questa tesi evidentemente non può essere dimostrata,
esistono
però significativi
argomenti a suo sostegno. Innanzitutto metodi alternativi elaborati per definire la computabilità hanno sempre portato a classi di funzioni computabili coincidenti con le funzioni parziali ricorsive. Per completare il discorso non si può trascurare l'esistenza di funzioni che non sono parziali ricorsive, per la tesi di Church queste funzioni non sono Turing-calcolabili, e quindi sono ignorate dalla macchina di Turing. Un altro problema non risolvibile è quello noto come problema dell'arresto di una macchina di Turing. Si consideri una macchina di Turing A con configurazione totale iniziale data da una tavola funzionale T e da una parola W contenuta nella memoria esterna, non esiste un'altra macchina di Turing B che con l'input di T e W possa calcolare se la computazione di T si ferma o cicla.
FIGURA 2.1 - Rappresentazione della Macchina di Turing, in alto il dispositivo A e l'unità di controllo, in basso si ha il nastro coi simboli dell'alfabeto esterno in ingresso, sopra il nastro in grigio e posizionata la testina di lettura. (FONTE COMMUNICATIONS OF ACM 5/85/M.CONRAD)
Reti Neurali: modelli e aspetti applicativi: Cap 2 - Computazione Classica e Modelli Connessionistici
11
2.3 - I NEURONI FORMALI DI MC CULLOCK E PITTS
Il neurofisiologo Mc Cullock e il matematico Pitts nel 1943 introdussero il concetto di neurone formale3 che è alla base del loro progetto di rete neuronica. Nel loro modello il neurone formale assume due possibili stati, uno attivo l'altro inattivo e definisce una classe di oggetti caratterizzati come segue:
• un numero r finito di ingressi ciascuno suscettibile di assumere i valori 0 o 1; • un'unica uscita i cui valori possibili sono 0 o 1; • un valore di soglia s intero positivo; • una regola di funzionamento espressa da:
2.4
Mediante i neuroni formali si può costruire una macchina detta semiautoma con un numero finito r
di
input
x
e
un numero finito s di stati q
della
macchina.
Successivamente si costruisce una matrice di neuroni formata da r righe e s colonne corrispondenti
rispettivamente
agli
input
e
agli stati (vedi figura 2.2a).
La programmazione di questa macchina consiste in un tipo di istruzione molto semplice, espressa nella forma generale q x q , la cui esecuzione consiste nel connettere tutti i neuroni della i-esima colonna col j-esimo neurone della k-esima colonna. Da notare che la rete di neuroni formali definita e caratterizzata da connessioni precostituite, senza alcuna possibilità di modifica successiva. Mc Cullock e Pitts dimostrarono che, per ogni funzione computabile da una macchina di Turing, esiste un semiautoma di neuroni formali in grado di calcolare la stessa funzione. Da quanto detto segue che il modello di Turing e il semiautoma composto da neuroni formali sono dal punto di vista computazionale equivalenti. Le capacità di calcolo del modello dipendono non tanto dalle caratteristiche dei singoli neuroni quanto dal modo in cui sono connessi.
3
W.S. McCullock e W. Pitts, “A logical Calculus of the Ideas Immanent in Nervous Activity”, Bullettin of Mathematical Biophysics, Num. 5 1943, pag. 115-133.
Reti Neurali: modelli e aspetti applicativi: Cap 2 - Computazione Classica e Modelli Connessionistici
12
FIGURA 2.2a - (a) Neurone formale di Mc Cullock e Pitts (b) Rete di neuroni formali costituente un semiautoma strutturalmente programmabile. (FONTE COMMUNICATIONS OF ACM 5/85/M.CONRAD)
FIGURA 2.2b - Una rappresentazione più generale della regola di funzionamento del neurone artificiale di McCullock e Pitts detto anche TLU (Threshold Logic Unit), x(i) sono gli ingressi, w(i) sono i pesi, θ è il valore della soglia per la funzione di attivazione. Si noti che nella formula semplificata 2.4 i pesi w(i) sono tutti uguali a 1.
Reti Neurali: modelli e aspetti applicativi: Cap 2 - Computazione Classica e Modelli Connessionistici
13
2.4 - L'ELABORATORE DI VON NEUMANN
I moderni computer digitali sono quasi tutti basati su un'architettura definita nel 1945 dal
matematico
John
Von
Neumann nel progetto dell'elaboratore
EDVAC4
L'elaboratore di Von Neumann è costituito da due organi di base, il processore e la memoria centrale (vedi figura 2.2c). Le operazioni di tutti i computer convenzionali possono essere modellate nell’esecuzione del ciclo seguente:
1. preleva un istruzione dalla memoria 2. preleva i dati richiesti da tale istruzione dalla memoria 3. esegui l’istruzione 4. memorizza i risultati in memoria 5. vai al punto 1
FIGURA 2.2c - Semplice rappresentazione dell’architettura di Elaboratore Von Neumann
4
John Von Neumann, “Primo abbozzo di relazione sull'EDVAC (Electronic Discrete Variable Computer)”, Princeton University 1945.
Reti Neurali: modelli e aspetti applicativi: Cap 2 - Computazione Classica e Modelli Connessionistici
14
L’elaboratore di Von Neumann è una macchina di calcolo equivalente a quella di Turing, ed è caratterizzata come segue5 :
• Linguaggi di programmazione. Tali linguaggi sono utilizzati
per esprimere gli
algoritmi e sono costituiti da statement che si ottengono applicando un insieme finito di regole di composizione a un numero finito di simboli base.
• Programmabilità. Si intende in tal modo la possibilità concreta di comunicare all'elaboratore il programma scritto alla macchina. Dal punto di vista dell'utente tale processo di comunicazione può essere mediato da un compilatore.
• Universalità. Essendo equivalente a una macchina di Turing, un calcolatore Von Neumann può calcolare qualsiasi funzione computabile e quindi, per la tesi di Church, simulare qualsiasi sistema fisico.
• Sequenzialità. Un computer di Von Neumann ha un architettura sequenziale, esegue infatti una singola operazione elementare alla volta.
• Inefficienza. I computer di Von Neumann utilizzano in modo non ottimizzato le risorse di spazio, tempo ed energia. Il processore, a causa della sequenzialità con cui esegue le istruzioni, è inattivo per la maggior parte del tempo.
• Programmabilità strutturale. Per spiegare questa caratteristica ci si deve riferire alla definizione di semiautoma vista in precedenza. Un calcolatore di Von Neumann si
dice
strutturalmente
programmabile
perché
si
può
dimostrare che
sostanzialmente è un semiautoma, cioè il calcolatore può essere rappresentato come un insieme di switch o elementi capaci di eseguire una operazione logica semplice. La definizione di programmabilità strutturale è legata alla tesi forte di Church, e stabilisce che una macchina strutturalmente programmabile è capace di simulare qualsiasi sistema fisico a condizione che le risorse di tempo e di spazio riservate alla computazione siano illimitate. Inoltre gli algoritmi, espressi in un calcolatore digitale in
simboli primitivi di un linguaggio di alto
direttamente in
termini
di
livello,
possono
primitive computazionali
di
corrispondono alla programmazione di una rete di neuroni programmabilità strutturale sarà utile
per
analizzare
i
essere
espressi
switching, che formali. La limiti generali
dell'architettura di Von Neumann.
5
Michael Conrad, "On Design Principles for a Molecular Computer", Communications of the ACM 1, Vol. 28, Num. 5, Maggio 1985.
Reti Neurali: modelli e aspetti applicativi: Cap 2 - Computazione Classica e Modelli Connessionistici
15
La formulazione forte della tesi di Church, valida anche per gli elaboratori di Von Neumann, suggerisce un legame tra i modelli formali di computazione e i processi dinamici simulabili su un calcolatore. Pensare a un sistema fisico come realizzazione di una computazione significa :
1. identificare gli argomenti o input della funzione computabile considerata con i parametri di descrizione di un certo stato del sistema. 2. considerare i parametri di descrizione di un successivo stato del sistema il risultato della computazione cioè l'output.
L'elaboratore di Von Neumann è una realizzazione fisica di un sistema formale che esegue semplici operazioni su stringhe di simboli. Si dice che un computer simula un sistema fisico, mediante le primitive computazionali sopra definite, se gli stati del computer possono essere associati agli stati del sistema con un alto grado di approssimazione, non è necessario comunque che ogni stato della macchina corrisponda a uno stato del sistema. Si è visto che un sistema fisico è simulabile con l'elaboratore Von Neumann, tuttavia molti fenomeni computazionali osservati in natura fanno ritenere che è possibile definire delle macchine di calcolo che incorporano il processo fisico stesso come primitiva computazionale. In tal caso si perde sia il carattere discreto delle primitive computazionali, sia la possibilità di comunicare queste ultime sotto forma di algoritmo alla macchina.
2.5 - LIMITI DELL'ARCHITETTURA DI VON NEUMANN
L'architettura dell'elaboratore di Von Neumann presenta dei limiti di applicabilità e di capacità di calcolo che non potranno essere superati dal solo progresso tecnologico, ossia dal miglioramento delle prestazioni dei processori e delle memorie. Tali limiti sono intrinseci al disegno stesso dell'elaboratore di Von Neumann, e sono di seguito esaminati:
• Irreversibilità operativa. La modalità in cui un computer tradizionale elabora l'informazione è un processo irreversibile. La funzione logica AND è un esempio di perdita di informazione in un computer. La tabella 2.5 mostra che non è possibile,
Reti Neurali: modelli e aspetti applicativi: Cap 2 - Computazione Classica e Modelli Connessionistici
16
esaminando le uscite della tabella, risalire agli ingressi che le hanno prodotte. Tabella della verità della Funzione Logica AND. INPUT
OUTPUT
0
0
0
0
1
0
1
0
0
1
1
1
• Alta dissipazione termica. In un computer digitale i segnali elettrici originano dei cambiamenti di potenziale in
diverse regioni spaziali del sistema. Gli
elettroni
operano con un disturbo termico che in termini di potenziale è circa kT/q Volt dove k è la costante di Boltzmann, T è la temperatura Kelvin assoluta e q è la carica dell'elettrone, a temperatura ambiente (290 K) kT/q = 0.025 Volt. Le operazioni logiche in un computer digitale devono avvenire con potenziali maggiori di 0.025 Volt. In definitiva si osserva che il valore alto di kT/q richiede un'alta dissipazione di potenza che caratterizza come processi irreversibili le operazioni logiche fondamentali di un computer digitale di Von Neumann.
• Lentezza operativa. Un risultato del modo di operare seriale dell'architettura di Von Neumann è il cosiddetto "collo di bottiglia di Von Neumann". Esso è originato dalla
lentezza
con
cui
il
processore
accede
alla
memoria.
Il trasferimento di dati e istruzioni dalla memoria al processore, prima che quest'ultimo cominci il suo lavoro computazionale, comporta un intervallo di tempo in cui il processore è inattivo. Alla fine della computazione il trasferimento dei risultati alla memoria origina un altro periodo di inattività del processore.
Alle inefficienze elencate si programmazione
strutturale,
aggiunge infatti
un
generale
limite
connesso
alla
una macchina di calcolo reale non dispone di
risorse di tempo e di spazio illimitate come richiesto dalla tesi forte di Church per macchine strutturalmente programmabili. programmabile
fisico
una
macchina strutturalmente
significa essenzialmente convogliare lungo canali precisi il fenomeno
utilizzato per ottenere la realizzazione fenomeno
Costruire
fisica
della computazione. Controllare un
significa ridurre il numero di gradi di libertà, e
interazioni, del fenomeno stesso, riducendo in tal modo anche computazione.
quindi di
le risorse della
Reti Neurali: modelli e aspetti applicativi: Cap 2 - Computazione Classica e Modelli Connessionistici
17
2.6 - CERVELLO E CALCOLATORI
Si esamineranno brevemente alcune differenze fondamentali tra il cervello e le architetture delle macchine di calcolo viste prima. Il cervello umano è costituito da una rete di moltissimi neuroni (1011 ÷ 1012 ) collegati tra loro da un numero elevato di connessioni dette sinapsi (103 ÷ 104
sinapsi per ogni neurone). In totale il numero di sinapsi del
cervello varia da circa 1014 a 1016 . Ogni sinapsi può essere inibitoria o eccitatoria per cui il numero delle configurazioni possibili è uguale a 2 elevato al numero totale di neuroni nel cervello è:
Si pensa che questo altissimo numero
di
configurazioni
sia
responsabile
delle
eccezionali prestazioni del cervello. Benché moltissimi processi cerebrali non siano ancora noti o perfettamente compresi è noto che l'apprendimento e la memoria a lungo termine si attuano con la formazione di nuove sinapsi. Sono elencate di seguito alcune peculiarità del cervello:
• Parallelismo e lentezza dei neuroni. Studi non tanto recenti hanno mostrato che il cervello elabora le informazioni in modalità parallela, questa affermazione nasce da semplici considerazioni. Un'operazione base viene effettuata da un neurone in tempi dell' ordine di decine di millisecondi, mentre il cervello è in grado di risolvere complicatissimi problemi di visione e linguaggio in circa 500 ms. Tenendo conto dei tempi di ritardo di propagazione del segnale tra neuroni, si può dire che il lavoro computazionale del cervello è fatto in meno di 100 passi, e consiste nell'esecuzione in parallelo da parte di neuroni di operazioni base molto semplici.
• Bassa dissipazione termica. L'energia termica dissipata
da
un neurone in una
elementare operazione di calcolo è circa 3 x 10-3 erg che in confronto ai 3 x 10-14 erg dissipati in una porta logica di un computer convenzionale è 11 ordini di grandezza superiore. L'intero cervello dissipa meno di 100 Watt.
• Elementi base di natura analogica. I neuroni sono degli elementi che operano in maniera analogica. Essi operano su un ingresso sinaptico e generano un uscita a valori continui.
Reti Neurali: modelli e aspetti applicativi: Cap 2 - Computazione Classica e Modelli Connessionistici
• Alta ridondanza. Tale proprietà
permette
al
cervello
di
18
essere un sistema
estremamente flessibile a superare disastri locali nella sua struttura senza perdita significativa di prestazioni. Molti neuroni muoiono ogni giorno e il cervello continua ad operare.
E' interessante paragonare il modello di cervello visto con le specifiche di un calcolatore elettronico: un supercomputer moderno è dotato di almeno 1000 megabyte di memoria centrale, che corrispondono al massimo a 1010 transistor, e usa meno di 108 transistor in funzioni logiche. Un processore compie un operazione logica base in un ciclo di circa 10-9 secondi. La potenza dissipata dal computer è dell'ordine di 105 Watt. In un computer la tolleranza ai malfunzionamenti locali è un fattore estremamente critico, vengono tollerati disastri solo in parti della memoria e mai nel processore. cervello umano è che
le
interconnessioni
Un'altra caratteristica del
tra i neuroni interessano uno spazio
tridimensionale mentre nella maggioranza dei computer le piastrine di silicio hanno uno schema di connessioni piano, anche se recentemente sono stati costruiti chip di silicio con schema di connessioni tridimensionale. Si può concludere osservando che i componenti base del cervello sono molto più numerosi, più connessi e più lenti dei componenti di un computer.
2.7 - SISTEMA NERVOSO, CERVELLO E NEURONI
Sono qui sintetizzati alcuni concetti fondamentali sul sistema nervoso e sulla struttura del cervello. Il sistema nervoso si divide in due parti principali: periferico e centrale. Il primo svolge funzioni di interfaccia tra il sistema nervoso centrale e l'ambiente esterno. I segnali trattati comprendono gli ingressi sensoriali, le uscite si manifestano con
stimoli
motori,
dolori,
immagini
visive,
percezioni varie.
Il sistema nervoso centrale è costituito dalla spina dorsale e dal cervello, formato a sua volta da talamo, ipotalamo, gangli
basali,
sistema
limbico
e neocorteccia.
L'unità costitutiva di tutto il sistema nervoso è il neurone, la cui anatomia e mostrata in figura 2.3. Un neurone è una cellula dotata di corpo cellulare dal quale si dipartono molte brevi ramificazioni di ingresso (dendriti) e una sola lunga uscita
ramificazione di
(assone). I neuroni comunicano tra loro mediante impulsi particolari detti
Reti Neurali: modelli e aspetti applicativi: Cap 2 - Computazione Classica e Modelli Connessionistici
19
spike, generati da processi elettrochimici. In condizione di riposo esiste una differenza di potenziale di circa -70 ÷ -90 milliVolt tra l'interno e l'esterno della membrana cellulare del neurone, ed è dovuta alle diverse concentrazioni di ioni sodio e potassio tra le due pareti della membrana. Queste differenze sono causate da un apposito enzimapompa capace di muovere gli ioni. Quando un evento esterno come la scarica di altri neuroni provoca
una variazione del potenziale della membrana, viene aumentata la
permeabilità della membrana stessa agli ioni di sodio. Questi ioni si riversano all'interno della cellula dove la loro concentrazione è minore, causando una corrente elettrica. Contemporaneamente la differenza di potenziale tra l'interno e l'esterno della membrana cambia di segno e diventa circa +40 ÷ +50 mV. Dopo il passaggio degli ioni sodio si apre in canale analogo anche per gli ioni potassio che ristabilisce la situazione di concentrazioni e potenziali precedente. La rapidissima inversione del potenziale di membrana origina lo spike o potenziale d'azione e costituisce il messaggio trasportato lungo l'assone. Il livello di tensione a cui la membrana da origine allo spike è detto soglia di eccitazione.
Lo spike si propaga, quasi senza attenuazione, lungo l'assone
liberando energie locali. Sulla sinapsi lo spike provoca l'emissione di particolari sostanze dette neurotrasmettitori, i quali raggiungono i dendriti del neurone successivo e
provocano una variazione della permeabilità
trasmissione del segnale tra i
della
membrana,
consentendo
la
neuroni connessi. In generale un singolo potenziale
d'azione che raggiunge una sinapsi non è sufficiente a generare la produzione di altri potenziali d'azione nel prossimo neurone. L'effetto additivo di più potenziali d'azione sui dendriti del neurone postsinaptico e capace di superare la soglia di eccitazione del neurone, generando un potenziale d'azione. Il numero medio di potenziali d'azione nell'unità di tempo in
funzione della corrente positiva in ingresso a un
neurone è
rappresentato in figura 2.4. Questa funzione ha la forma di una sigmoide che va da 0 per correnti negative fino a un livello massimo di saturazione di 100 ÷ 1000 spike per secondo per correnti positive molto alte.
Reti Neurali: modelli e aspetti applicativi: Cap 2 - Computazione Classica e Modelli Connessionistici
FIGURA 2.3. - Anatomia di un sistema di tre neuroni NEUROPHYSIOLOGY:A PRIMER WILEY/1966/C.F. STEVENS)
20
interagenti. (FONTE
FIGURA 2.4 - Grafico rappresentante il numero medio di potenziali d'azione nell'unità di tempo in funzione della corrente positiva in ingresso a un neurone. (FONTE PROCEDINGS OF THE NIELS BOHR CENTENARY SYMPOSIUM 10/85/J.J. HOPFIELD)
Reti Neurali: modelli e aspetti applicativi: Cap 2 - Computazione Classica e Modelli Connessionistici
21
2.8 - NATURA E COMPUTAZIONE
In natura esistono fenomeni di trattamento delle informazioni diversi da quelli utilizzati nella
costruzione
dei calcolatori digitali a tecnologia elettronica.6 Nella genetica
molecolare si realizzano veri meccanismi di computazione, nei quali la computazione è definita da tre elementi concettuali: un ingresso, un'uscita e una unità di calcolo. La traduzione del DNA nella struttura di una proteina, la costruzione di un complesso organismo dalle istruzioni del DNA sono esempi di computazione biologica. Il processo di creazione di più proteine da parte di una cellula in crescita è analogo alla computazione di una macchina di Turing (vedi figura 2.5). In questo processo l'informazione memorizzata nell'RNA messaggero (mRNA) è istruzione per costruire
la
utilizzata come
proteina. Il nastro con l'alfabeto esterno in ingresso è
costituito dall'mRNA, l'uscita finale è la proteina che consiste in un polimero di aminoacidi con struttura tridimensionale. L'mRNA è un polimero costituito da quattro tipi di unità A, U, G e C. La proteina è un polimero fatto da venti tipi diversi di aminoacidi, glicina, alanina, tirosina,...etc. La sintesi della proteina è fatta da un composto polimolecolare, formato da proteine e RNA detto ribosoma, che può essere visto come l'unità di controllo della macchina di Turing del processo. Il ribosoma legge l'input dell'mRNA (nastro
di
ingresso)
e
inserisce sequenzialmente il corrispondente
amminoacido nella proteina. Le operazioni logiche descritte sono fatte da particolari reazioni chimiche della cui logica non è noto quasi nulla. Le operazioni logiche fatte sono descritte dalla sequenza:
1. Leggi le prossime tre celle dall'nRNA tape 2. Cerca l'aminoacido corrispondente nel dizionario genetico 3. Aggiungi l'aminoacido alla proteina 4. Muovi l'input tape di tre celle
Il programma contiene anche una possibile istruzione di stop nel dizionario genetico. La computazione biologica è molto poco accurata rispetto quella digitale. La proteina
6
J.J. Hopfield, "Physics, biological computation, and complementarity", Proceedings of Niels Bohr Centenary Symposium, Copenhagen 4 Ottobre 1985.
Reti Neurali: modelli e aspetti applicativi: Cap 2 - Computazione Classica e Modelli Connessionistici
22
formata dal processo esaminato risulta esatta in quasi tutti i casi con un livello di errore di circa 1/3000. Questo livello di errori nel produrre l'output è certamente molto alto nel caso di computazioni digitali, mentre è accettabile
per computazioni biologiche.
Le osservazioni fatte in relazione alla computazione biologica permettono di affermare che è possibile definire i principi costruttivi di nuove macchine di calcolo capaci di superare i limiti degli elaboratori di Von Neumann, basate su fenomeni fisici diversi da quelli attualmente utilizzati, con
particolare
riguardo
alla imitazione di strutture
biologiche o fenomeni microbiologici. Più avanti si approfondirà lo studio di macchine di calcolo basate sulla imitazione strutturale di entità biologiche come il cervello umano. Queste macchine sono chiamate reti o sistemi neurali, mentre la loro architettura definisce i cosiddetti modelli connessionistici. Gli algoritmi su cui si basa l'intelligenza animale sono implementati nel cervello. Utilizzando questo particolare hardware il cervello raggiunge le altissime prestazioni che si conoscono. L'idea base dei sostenitori dei sistemi neurali è che la specializzazione della nostra intelligenza sia una peculiarità dei sistemi biologici ad altissimo grado di connessione. La semplicità dei neuroni e delle sinapsi e la loro universalità biologica fa supporre che imitando tali componenti sia possibile costruire sistemi artificiali di analoghe prestazioni.
FIGURA 2.5 - Processo di creazione di più proteine da parte di una cellula in crescita, analogo alla computazione di una macchina di Turing .Il nastro in uscita contiene gli amminoacidi costituenti la proteina.
Reti Neurali: modelli e aspetti applicativi: Cap 3 -Modelli di Reti Neurali
23
3. - MODELLI DI RETI NEURALI 3.1 - INTRODUZIONE
In questo capitolo, dopo una breve esposizione delle origini storiche delle reti neurali, vengono definiti
i
principi e gli
elementi
che caratterizzano un sistema neurale,
distinguendoli nettamente da quelli alla base di un computer digitale ad architettura Von Neumann.
Nell'ultimo
paragrafo sono elencati i principali modelli
che
verranno
utilizzati nelle applicazioni dei capitoli successivi.
3.2 - ORIGINE DELLE RETI NEURALI
Lo studio delle reti neurali risale ai primi tentativi di tradurre in modelli matematici i principi dell'elaborazione biologica. Le piÚ antiche teorie del cervello e dei processi mentali sono state concepite dai filosofi Greci Platone (427-347 A.C) e Aristotele (384-322 A.C). Queste teorie furono riprese molto piÚ tardi da Cartesio (1586-1650) e nel XVIII secolo dai filosofi empiristi. Le prime realizzazioni di macchine cibernetiche, categoria alla quale appartengono i sistemi neurali, appaiono negli anni quaranta col nascere di una scienza nuova, la cibernetica. La cibernetica è definita come scienza che studia i processi intelligenti e fu fondata da Norbert Wiener nel 1947. Ross Ashby, un altro padre della cibernetica, costruisce nel 1948 l'omeostato uno dei primi sistemi con connessioni interne regolabili, capace quindi di variare la sua configurazione interna adattandola a stimoli esterni. Il neurofisiologo W.S. MC Cullock e il matematico W.A. Pitts (1943) di Chicago sono stati i primi
a
formulare l'approccio
cibernetico
fondamentale alla struttura del cervello elaborando il primo modello di rete neurale. John Von Neumann, dopo aver formulato l'architettura base dei moderni calcolatori, comincia nel 1948 lo studio delle reti di automi cellulari precursori di nuovi modelli computazionali. Nel 1949 il neurofisiologo Donald Hebb, dagli studi sul processo di apprendimento dei neuroni, dedusse la prima regola di apprendimento applicata nelle reti neurali. Contemporaneamente gli studi di Lashley sulla mente umana indicavano che l'organizzazione della conoscenza e la memoria
si basava su rappresentazioni
distribuite. Nei primi anni sessanta si costruiscono le prime macchine in grado di presentare primitive forme di apprendimento spontaneo e guidato, sono il Perceptron
Reti Neurali: modelli e aspetti applicativi: Cap 3 -Modelli di Reti Neurali
24
di Frank Rosemblatt della Cornell University e l'Adaline (Adaptive linear element) di Bernard Windrow di Stanford. Il Perceptron è una rete neurale costituita da dispositivi logici in grado di risolvere semplici problemi
di
forme. Esso rappresento un prototipo delle
vennero elaborate più
strutture
che
riconoscimento
di
avanti. Anche in Italia si sviluppano iniziative particolarmente importanti. Eduardo Caianello, dell’Università di Napoli, sviluppa la sua teoria
sui processi e le
macchine pensanti sulla base delle idee di Mc Cullock, Pitts e Hebb. A Genova viene realizzata da Augusto Gamba una macchina derivata dal Perceptron. Nel 1969 Marvin Minsky e Seymour Papert, del Massachusetts Institute of Technology, pubblicano un'analisi molto critica delle macchine
tipo il Perceptron .
Essi
dimostrarono
matematicamente le limitazioni delle reti neurali nel risolvere problemi
quali
la
determinazione della parità di un numero binario, il calcolo di una funzione XOR di 2 bit o la classificazione delle immagini in base alla loro connettività. problemi potevano essere risolti solo da reti
Questi
neurali omniconnesse in cui ogni
neurone è connesso con tutti gli altri neuroni della rete, in una simile rete il numero delle connessioni crescerebbe esponenzialmente all'aumentare del numero di neuroni contrariamente a quanto avviene nei sistemi biologici nei quali le connessioni crescono linearmente.
Minsky era uno dei sostenitori di un approccio rivale alle reti neurali,
l'Intelligenza Artificiale (A.I.) classica basata su computer tradizionali. In seguito alle tesi di Minsky il campo delle reti neurali fu abbandonato dalla maggior parte degli studiosi, i quali si rivolsero al campo dell'A.I. apparentemente più promettente. Secondo chi scrive comunque, questo cambiamento di interessi fu causato anche dal fatto che la tecnologia allora disponibile rendeva molto
difficoltosa o addirittura impossibile la
sperimentazione nel campo delle reti neurali, ne vi erano computer abbastanza veloci per simulare reti neurali complesse. Negli anni sessanta e settanta la ricerca continuo con contributi
teorici e poche applicazioni. Alcuni
ricercatori
come
Shunichi Amari, Kunihiko Fukushima e Shephen Grossberg tentarono di simulare il comportamento di neuroni cerebrali con reti di unità di calcolo operanti in modalità parallela. Inoltre formularono teorie matematiche ed architetture per individuare e classificare i tratti caratteristici delle forme da riconoscere e per costruire le prime memorie associative. In queste ultime vengono utilizzate informazioni parziali come chiavi per recuperare dati memorizzati.
Reti Neurali: modelli e aspetti applicativi: Cap 3 -Modelli di Reti Neurali
25
L'interesse sviluppatosi nei primi anni 80 per i modelli neurali è sicuramente dovuto a diversi fattori, che sono elencati di seguito:
• i progressi compiuti nella comprensione di alcuni fenomeni computazionali biologici, la disponibilità di potenti computer in grado di simulare i nuovi modelli neurali.
• lo sviluppo di tecnologie VLSI e ottiche che si prestano alla costruzione di circuiti di tipo neuronico.
• la determinazione dei limiti dell'A.I., i quali sono strettamente legati ai limiti dei computer seriali di Von Neumann.
John Hopfield del California Institute of Technology propone nel 1982 un modello computazionale basato su concetti energetici e pertanto applicabile in svariati campi. Questo nuovo modello permise di studiare il comportamento globale di reti molto più complesse dei perceptron, non analizzabili con metodi classici. In particolare era possibile studiare reti con
neuroni
nascosti.
Con
questo
risultato
termina
la
"preistoria" dello studio delle reti neurali e inizia la cronaca di un settore in rapida evoluzione. Nel 1987 la CEE promuove il progetto BRAIN (Basic research in adaptive
intelligence and neurocomputing), inoltre
si tiene a
S.Diego
la prima
conferenza internazionale sulle reti neurali con 2000 partecipanti provenienti sia dalle università sia dall'industria. Alla luce dei risultati ottenuti, Minsky e Papert rivedono le loro critiche e indicano nuove direzioni di sviluppo nell'area delle reti neurali. I principali settori cui la ricerca attuale è indirizzata sono:
• la rappresentazione della conoscenza • la visione • il riconoscimento di forme • la comprensione del linguaggio naturale • le memorie associative • la robotica e la sensorica • l'inferenza • la risoluzione di particolari problemi computazionali.
Reti Neurali: modelli e aspetti applicativi: Cap 3 -Modelli di Reti Neurali
26
3.3 - ARCHITETTURA ASTRATTA DI UNA RETE NEURALE
Si descriverà adesso l'architettura generale di un modello di rete neurale, elencando e analizzando una serie di caratteristiche comuni: 1. unità di computazione base 2. stato delle unità 3. attività della rete 4. insiemi di connessioni 5. funzione di attivazione 6. regola di apprendimento 7. topologia del modello 8. rappresentazione dei dati
- Unità di computazione base.
Nel contesto di una rete neurale, l'unità base sulla
quale è costruito il modello è un elemento computazionale semplice disposto in una architettura a rete . L'elemento accetta dei segnali in ingresso, li elabora secondo determinate regole, e sulla base di questi segnali, del proprio stato interno e degli stati precedenti calcola un segnale in uscita Vi , che viene inviato alle unità a cui esso risulta connesso. Il modo in molte unità
cui avviene tale processo nella rete è parallelo, nel senso che
lavorano simultaneamente.
In
generale l'ingresso di un neurone i è
rappresentato dalla sommatoria di tutte le uscite Vj dei neuroni j ai quali è connesso:
3.1 Tij è l’intensità della connessione, e si esaminerà più avanti. Le unità risultano divise in tre
categorie:
unità
di ingresso, unità di uscita e unità nascoste. Le prime
ricevono ingressi da sorgenti esterne al sistema,
le unità di uscita inviano segnali
all'esterno del sistema mentre le unità nascoste sono collegate solo con input e output interni. L'unità base può essere identificata col termine neurone. Diversi autori hanno elaborato un modello dell'unità fondamentale di calcolo di un sistema di neuroni, si può dire che essa è un emulazione semplificata delle funzioni del neurone biologico. I vari modelli di neuroni elaborati si distinguono generalmente per il tipo di risposta che essi presentano a uno stimolo in ingresso. In questa differenziazione i modelli di
Reti Neurali: modelli e aspetti applicativi: Cap 3 -Modelli di Reti Neurali
27
neurone rispecchiano i diversi tipi di neurone biologico.
- Stato dell'unità. Ad ogni unità è associato un valore numerico detto stato dell'unità che generalmente viene fatto corrispondere al valore della variabile in uscita V (t). Per N unità lo stato Vi(t) è un vettore di N componenti in cui ciascuna
componente
rappresenta l'attivazione di un'unità. I valori dello stato possono essere continui o discreti. Lo stato della rete di neuroni al tempo t è descritto dall'insieme di variabili che descrivono lo stato delle unità semplici.
- Attività della rete. L'attività della rete è il numero di neuroni attivi al tempo t:
3.2
- Insiemi di connessioni. Le unità sono interconnesse. In generale l'ingresso di un unità è determinato dalla
somma
pesata delle uscite a cui essa risulta connessa.
L’intensità della connessione tra due unità è data dal generico peso Tij. Il peso Tij è positivo se l'unità j esercita un'azione eccitatrice sull'unità i ed è negativo in caso contrario. E' possibile associare ad un sistema di interconnessioni una matrice di pesi T nella quale il generico elemento Tij specifica l’intensità della connessione tra l'unità j e l'unità i. L'insieme dei pesi delle connessioni determina come il modello risponderà ad un ingresso arbitrario e di conseguenza costituisce la "conoscenza o memoria del sistema". Con una terminologia più vicina ai sistemi biologici l’intensità della connessione tra due unità neuroniche è detta sinapsi.
FIGURA 3.1a Rappresentazione grafica della funzione di attivazione V(t+1), che dipende dall’ ingresso del neurone Ui e dallo stato Vi al tempo t.
Reti Neurali: modelli e aspetti applicativi: Cap 3 -Modelli di Reti Neurali
28
- Funzione di attivazione. Una caratteristica importante delle unità di una rete neurale è il modo in cui i vari segnali di ingresso vengono combinati per determinare il segnale complessivo. Una funzione di attivazione è data da:
3.3 La funzione di attivazione associa allo stato e agli ingressi attuali un nuovo stato di attivazione. La Fi [ ] , nei casi più semplici, è la funzione identità, cioè lo stato Vi dell'unità coincide con l'ingresso totale U , e la funzione Fi [ ] risulta lineare. In altri casi Fi [ ] è una funzione a soglia per cui l'ingresso totale deve superare un determinato valore per contribuire al nuovo stato dell'unità. Alcune forme caratteristiche della funzione di attivazione sono visualizzate nella figura 3.1b . Si notino le tre forme base non lineari di Fi [ ]: hard limiter, threshold logic e sigmoide. Un'altra caratteristica importante delle funzioni di attivazione è il loro
carattere
che
può
essere deterministico
(stocastico) o non deterministico. Nel primo caso, un neurone cambia sempre il suo stato se l'input eccede una certa soglia. La dinamica della rete è in questo caso definita markoviana, cioè lo stato della rete al tempo t+τ dipende solamente dallo stato della rete al tempo t, e non dagli altri stati precedenti. Nel secondo caso la funzione di attivazione è probabilistica (macchina di Boltzmann), per cui anche se l'input supera il valore della soglia, non è detto che il neurone cambi stato.
FIGURA 3.1b - Rappresentazione dell'ingresso pesato di un neurone e delle tre principali funzioni di attivazione. (FONTE IEEE ASSP MAGAZINE 4/1987 R.P. LIPPMANN
Reti Neurali: modelli e aspetti applicativi: Cap 3 -Modelli di Reti Neurali
- Regola di apprendimento. Si è detto che la conoscenza di un
29 sistema neurale è
codificata dai pesi delle connessioni tra le unità, per cui apprendere equivale a modificare i pesi di tali connessioni. A tal fine sono state elaborate varie regole che simulano elementari forme di apprendimento per diversi modelli di reti. I meccanismi di apprendimento possono essere con supervisione (guidati) o senza (spontanei)7 . Nei primi un supervisore fornisce alla rete degli ingressi e confronta la risposta della rete con quella corretta nota a priori. In base a questo confronto vengono stabilite modalità
di
modifica
dei
pesi
le
di interconnessione. L'apprendimento guidato
consente alla rete di imparare tramite i molti esempi forniti dal supervisore, in una modalità che ricorda l'apprendimento umano. La regola di apprendimento spontanea più semplice è quella definito da Hebb8 , la cui idea base Hebb è di aumentare il peso T se l'unità i-esima riceve in ingresso l'uscita
dell'unità j-esima e le due unità sono
contemporaneamente attive. La regola di Hebb è espressa come segue: 3.4 Le altre regole di apprendimento spontanee sono delle evoluzioni di quella di Hebb oppure si basano su altri principi. Un'altra fondamentale regole di apprendimento è la regola back-propagation utilizzata universalmente in quasi tutte le reti di neuroni che incorporano livelli "nascosti".
- Topologia. Fissate le caratteristiche delle singole unità si analizza adesso il modo in cui tali unità sono connesse tra loro cioè la topologia della rete neurale. Alcuni esempi di topologie di reti neurali sono rappresentate in figura 3.2. In alcuni modelli le connessioni seguono schemi predeterminati, in altri schemi casuali. Molti modelli vengono organizzati in più livelli di unità, oppure in diversi strati di connessioni tra unità. Analizzando una rete a più livelli bisogna distinguere tra livelli "visibili", costituiti da unità di ingresso o uscita, connessioni tra le unità
e
livelli "nascosti". Analizzando le
si possono distinguere modelli feedforward, nei quali
esistono connessioni solo tra le uscite e gli ingressi di unità di livelli successivi, e modelli con meccanismi di retroazione detti anche modelli feedback (reti di Hopfield).
7
T. J. Sejnowsky, "Neural Network Learning Algorithms", NATO ASI Series, Vol. F41, Springer-Verlag, Berlino 1988. 8 Donald O. Hebb, “The Organization of Behavior”, Wiley, New York 1949.
Reti Neurali: modelli e aspetti applicativi: Cap 3 -Modelli di Reti Neurali
30
In questi ultimi modelli si possono avere connessioni tra le uscite di unità di un livello e le entrate di unità di un livello precedente, inoltre, come si vede in figura 3.2, il tipo di feedback può essere ordinato o amorfo. Nei modelli gating le uscite delle unità agiscono sui pesi delle connessioni. Altre distinzioni si possono fare
riguardo
la
connettività laterale, cioè le connessioni di elementi dello stesso strato. Nel tipo cooperativo-competitivo ogni elemento è connesso ai suoi vicini mediante connessioni alternativamente
eccitatorie e inibitorie, nel
tipo
"on-center/off-surround"
le
connessioni laterali sono tutte inibitorie, nel tipo a campo ricettivo (reti di Kohonen) ogni ingresso ha una determinata distribuzione sull'intero livello e
la connessione
laterale può essere di qualunque tipo.
- Rappresentazione dei dati. Nei sistemi neurali i dati in ingresso sono rappresentati definendo lo stato di un particolare insieme di unità di ingresso. Ogni dato complesso viene rappresentato da un insieme di elementi subsimbolici e non dalla modifica arbitraria di un simbolo. Ad esempio le unità di ingresso possono rappresentare la presenza di una lettera in una determinata posizione in una parola, oppure lo stato di un ricettore immaginario su una retina artificiale. La scelta dello schema rappresentativo dei dati contribuisce a determinare la potenza computazionale del sistema. Analogamente l'uscita di una rete neurale viene definita dallo stato di un insieme predeterminato di unità. In molti modelli lo stato delle singole unità di uscita rappresenta la verità o falsità di una determinata proposizione.
Reti Neurali: modelli e aspetti applicativi: Cap 3 -Modelli di Reti Neurali
FIGURA 3.2 - Tipi generali di architetture di reti neurali
31
Reti Neurali: modelli e aspetti applicativi: Cap 3 -Modelli di Reti Neurali
32
3.4 - DEFINIZIONE DI RETE NEURALE
Una definizione generale di rete neurale potrebbe essere la seguente:
• una rete neurale è un insieme di semplici unità di elaborazione (neuroni) altamente interconnesse tra di loro, che interagiscono tra loro e con gli oggetti del mondo esterno mediante lo scambio di segnali in modo simile alle strutture neurali biologiche.
Le differenze tra una rete neurale e un computer digitale convenzionale sono state adeguatamente sintetizzate dal fisico Kohohen9 :
• I principi della logica digitale non sono applicabili a un sistema neurale. I neuroni non possono essere circuiti logici a soglia, perché ogni neurone ha migliaia di input variabili e la stessa soglia e dipendente dal tempo. L'accuratezza e la stabilita di un circuito normale non è sufficiente a definire una variabile booleana. Inoltre i processi collettivi,
che
sono di fondamentale importanza nel calcolo neurale, non sono
implementabili mediante semplici circuiti logici.
• I neuroni e le sinapsi non sono elementi di memoria bistabili come dei flip-flop. I neuroni sembrano comportarsi come dei sistemi integratori analogici di natura non lineare, le sinapsi sono delle connessioni la cui efficacia varia gradualmente.
• Una rete neurale non ha istruzioni o codici di controllo che regolano lo stato funzionale del sistema.
• Lo schema di interconnessione di un sistema neurale non
permette il calcolo
ricorsivo, per cui è impossibile implementare algoritmi di calcolo.
9
Kohonen Teuvo. “An Introduction to Neural Computing”, Neural Networks, Vol. 1. 1988, pag 3-16.
Reti Neurali: modelli e aspetti applicativi: Cap 3 -Modelli di Reti Neurali
33
3.5 - CLASSIFICAZIONE DELLE RETI NEURALI
Sebbene le reti neurali siano in rapida evoluzione è possibile fare una classificazione dei principali modelli,
riferendoci con essa a evidenziare i diversi approcci di vari
autori. Una prima suddivisione può essere fatta in base all'ingresso dei neuroni che può risultare continuo
o discreto. La successiva divisione è determinata dal tipo di
regola di apprendimento che può essere con o senza supervisione. Un altro aspetto importante è il tipo di funzione di attivazione che può essere o deterministica. Nei modelli deterministici e
non
essere
stocastici l'evolversi della dinamica del
sistema è spesso prevedibile a lungo termine (reti di Hopfield). Nei modelli non deterministici, che simulano più da vicino i sistemi biologici, si ha una funzione d'attivazione probabilistica (Macchina di Boltzmann). La simmetricità della matrice delle connessioni
origina
una
ulteriore
suddivisione
in
reti
simmetriche che sono
tipicamente le reti di Hopfield, e asimmetriche come i perceptroni. Si formano a questo livello diverse famiglie di reti neurali .10 Nel presente lavoro saranno esaminati i seguenti modelli:
• Reti di Hopfield discrete e continue • Macchina di Boltzmann • Perceptrone e Perceptrone multistrato • Reti auto-organizzanti di Kohonen
10
Richard P. Lippmann, "An Introduction to Computing with Neural Nets", IEEE ASSP Magazine, Aprile 1987, pag 4-22 .
Reti Neurali: modelli e aspetti applicativi: Cap 4 Reti di Hopfield e Macchina di Boltzmann
34
4. - RETI DI HOPFIELD E MACCHINA DI BOLTZMANN 4.1- INTRODUZIONE
Si esamineranno in questo capitolo le reti neurali simmetriche di Hopfield11 e la macchina di Boltzmann. Queste reti, come si vedrà nel prossimo capitolo, sono particolarmente adatte alla risoluzione di problemi di ottimizzazione combinatoria ad altissimo numero di soluzioni, oppure alla implementazione di memorie associative. Si comincerà con l'originale modello discreto di Hopfield del 1982 basato su unità con ingressi binari e prototipo di successivi modelli. Una evoluzione del modello discreto di Hopfield è il modello continuo, proposto dallo stesso Hopfield nel 1984 capace di ottime prestazione nella risoluzione di problemi particolarmente complessi. In tale modello i neuroni sono realizzati fisicamente da dispositivi elettronici analogici. La macchina di Boltzmann, esaminata successivamente, permette al contrario dei modelli di Hopfield di avvicinarsi alla soluzione ottimale del problema cui è applicata.
4.2 - MODELLO DISCRETO DELLA RETE DI HOPFIELD
Il modello discreto di rete neurale proposto da Hopfield unità di calcolo detti
è formato da N semplici
neuroni reciprocamente interconnessi (vedi Fig. 4.1). Ogni
neurone può assumere due stati interni descritti dalla variabile V :
4.1 Lo stato del neurone coincide col valore in uscita dell'unità stessa. Lo stato del sistema a un dato istante è definito dall'insieme degli N valori della variabile di stato Vi per cui può essere rappresentato da un vettore di stato di N bit, V = [V1 , V2 , ... ,VN]. L'ingresso di ciascun neurone è espresso nella forma seguente:
11
J.J.Hopfield, "Neural Networks and Physical Systems with Emergent Collective Computational Abilities", Proc. Natl. Acad. Sci. 179, pag. 2554 (1982).
Reti Neurali: modelli e aspetti applicativi: Cap 4 Reti di Hopfield e Macchina di Boltzmann
35
4.2 In tale relazione N è il numero dei neuroni, Tij è un elemento di una matrice di interconnessione T rappresentante l'intensità di connessione tra il neurone i e j, Vj esprime l'uscita del neurone j, mentre Ii è un ingresso esterno che viene fornito al neurone i.
Gli interruttori SWj commutano in modo asincrono con ritardi casuali e
permettono la realizzazione della retroazione tra le uscite e l'ingresso
della
rete.
Nelle simulazioni software del capitolo 7 si assume che la chiusura degli interruttori SWi sia sincronizzata. Quando l'i-esimo interruttore si chiude, lo stato interno dell'iesimo neurone si evolve seguendo la funzione di attivazione seguente: Vi (t+1) = stp [Vi (t)]
4.3
Nella 4.3 il tempo t assume valori discreti, stp(x) è una funzione a gradino uguale a 1 se x ≥ Si , 0 se x < S , S è un valore definito soglia di attività del neurone i. Senza nessuna perdita di generalità si possono assumere nulle le soglie di tutti i neuroni della rete. Con questa assunzione si può definire la funzione d'attivazione nella forma:
4.4 Per le reti di Hopfield è definita anche una regola di apprendimento che definisce il valore dei componenti della matrice di interconnessione T. La regola di apprendimento utilizzata da Hopfield è la regola di Hebb, si esaminerà in dettaglio più avanti il legame tra tale regola e le applicazioni della rete. L'evoluzione del modello discreto di Hopfield nel suo spazio di configurazioni segue le leggi dinamiche dei processi stocastici, per cui lo stato della rete al tempo t+1 è determinato unicamente dallo stato al tempo t precedente. Per determinare lo stato della rete al tempo t+1, non è richiesta quindi alcuna informazione per tempi precedenti l'istante t.
Reti Neurali: modelli e aspetti applicativi: Cap 4 Reti di Hopfield e Macchina di Boltzmann
36
FIGURA 4.1a - In alto è mostrata la funzione di attivazione di una rete discreta di Hopfield, il cui schema è mostrato in basso. (FONTE P.N.A.S. 79/1982 J.J. HOPFIELD)
Reti Neurali: modelli e aspetti applicativi: Cap 4 Reti di Hopfield e Macchina di Boltzmann
37
4.3 - CONSIDERAZIONI ENERGETICHE SULLA RETE DISCRETA DI HOPFIELD
Hopfield ha definito per il suo modello una funzione energia che rivela importanti proprietà della rete. Considerando una matrice T di pesi di connessione simmetrica e con elementi diagonali nulli si definisce la funzione energia computazionale come segue:
4.5 Si consideri adesso la variazione di energia ∆E dovuta alla variazione dello stato Vi di un neurone, si assuma la variazione del neurone i da uno stato inattivo a uno attivo, si ha:
4.6 La variazione di stato -∆Vi è uguale a 1 nel caso considerato per cui si ha: ∆Ei= -∆ ∆Vi Ui (t+1)= -∆ ∆Vi Vi (t+1) = -1 < 0
4.7
Si noti che nel caso di un neurone che passa da uno stato Vi(t) = 1 a uno stato Vi(t+1)=0 si ha ∆Vi = -1 , mentre per la 4.7 ∆Ei = 0. La variazione totale di energia della rete è:
se ∆Ei ≤ 0
allora
∆E ≤ 0
4.8
Da queste considerazioni Hopfield concluse che l'energia computazionale, al variare dello stato del sistema neurale, decresce monotonicamente fino a raggiungere un minimo locale. Dalla simmetria della definizione dello stato di un neurone risulta che se un vettore corrisponde a uno stato stabile della rete allora anche il vettore complemento sarà stabile. Se consideriamo lo stato dei neuroni espresso mediante le variabili µi = ±1 che sono legate alle Vi dalla relazione µi = 2Vi - 1, i vettori rappresentanti lo stato della rete possono essere rappresentati nello spazio degli stati, tale spazio composto dalle N componenti
µi
corrisponde
a
un ipercubo con coordinate ±1 .
I
vettori
che
minimizzano E corrispondono ai vertici dell'ipercubo N-dimensionale. (vedi figura 4.3).
Reti Neurali: modelli e aspetti applicativi: Cap 4 Reti di Hopfield e Macchina di Boltzmann
38
Hopfield dimostrò l'esistenza di una funzione di Ljapunov nello spazio degli stati della suo modello
di
rete neurale, tale funzione di
Ljapunov
corrisponde
all'energia
computazionale. Seguono adesso alcune importanti definizioni legate alle funzioni di Ljapunov:
• Una funzione H : S ⇒ℜ è detta di Ljapunov se, dato un qualunque s(to) ∈ S vale: ( ∀ t ≥ t0 ) : s(t + 1) ≠ s(t) s(t) = {si (t)}
i=1,2,...n
⇒
H(s(t + 1)) ≤ H(s(t))
è lo stato del sistema al tempo t
• Un punto s ∈ S è di equilibrio se: ( ∃ t ) : s(t) = s
⇒
( ∀ t ≥ t’ ) s(t’ ) = s
• Un punto s ∈ S è di attrazione se è di equilibrio ed esiste un intorno I di s tale che ∀ s’ ∈ I vale: s(t) = s’
⇒
( ∀ t ≥ t’ ) s(t’ ) = s
Hopfield studiò il comportamento
della
rete
mediante simulazioni software,
verificando sia che la funzione energia fosse una funzione di Ljapunov, sia la presenza dei punti attrattori di energia minima verso i quali la rete evolveva.
FIGURA 4.1b - Sequenza di transizioni di un sistema fisico da uno stato iniziale V1 ad uno finale stabile V8, corrispondente ad un minimo di energia.
Reti Neurali: modelli e aspetti applicativi: Cap 4 Reti di Hopfield e Macchina di Boltzmann
39
Come già detto la rete di Hopfield corrisponde a un sistema fisico descritto nello spazio degli stati del sistema di coordinate
V1 ,V2 ,..VN e caratterizzato
attrazione o minimi locali V1 ,V2. Se il sistema viene fatto configurazione
da
partire
punti da
di una
iniziale V sufficientemente vicina a una configurazione di attrazione,
ad esempio V = V1 + ∆, esso evolverà nel tempo fino a raggiungere la configurazione stabile V1 (vedi figura 4.1b). Un
sistema
fisico la cui dinamica nello spazio delle
configurazioni è dominata da un certo numero di stati
attrattori
può
trovare
applicazioni nel campo delle memorie indirizzabili per contenuto C.A.M. (Content Addressable Memory o Memorie Associative) o come si vedrà più avanti col modello continuo di Hopfield nella risoluzione di problemi di ottimizzazione. Nel primo caso si vedrà che gli stati attrattori corrispondono all'informazione memorizzata
mentre
la
configurazione iniziale è una conoscenza parziale dell'informazione.
4.4 - REGOLA DI APPRENDIMENTO DI HEBB E APPLICAZIONI C.A.M. DEL MODELLO DISCRETO DI HOPFIELD Una C.A.M. o memoria associativa è un nuovo modello di memoria capace di restituire l'informazione memorizzata in risposta ad un ingresso rappresentato da una conoscenza parziale dell'informazione (vedi fig 4.1c). Al contrario in un
memoria
convenzionale i contenuti sono ricavati tramite gli indirizzi delle locazioni dove sono memorizzati. Il
modello
discreto della rete di Hopfield si presta naturalmente ad
implementare una memoria associativa . Si supponga di voler memorizzare un set di M vettori binari V(s) s=1,2,...,M , Hopfield suggerisce di utilizzare una rete neurale facendo corrispondere gli stati stabili della rete con i vettori da memorizzare. L'algoritmo di memorizzazione proposto è la regola di apprendimento di Hebb, mediante la quale si costruisce una matrice T di pesi definita come segue:
4.9 Si deve avere inoltre Tii = 0 e Tij = Tji . Si noti che utilizzando le variabili di stato µi=±1, la regola di Hebb viene espressa in una forma molto usata in alcuni lavori:
Reti Neurali: modelli e aspetti applicativi: Cap 4 Reti di Hopfield e Macchina di Boltzmann
40
4.10 In generale una rete neurale operante come memoria associativa opera nelle due fasi descritte di seguito:
1. Fase di apprendimento. Questa fase consiste nella costruzione della matrice di interconnessioni T. Vengono presentati in ingresso alla rete neurale gli M vettori binari V(s)
che sono i dati da memorizzare, la rete setta le connessioni tra i
neuroni in accordo alla regola di apprendimento descritta dalle equazioni 4.9 e 4.10. 2. Fase operativa della memoria. In questo periodo avviene
il richiamo
delle
informazioni memorizzate. La rete viene inizializzata con un qualsiasi vettore in ingresso,
e comincia in tal modo l'evoluzione temporale della rete nello
delle configurazioni, seguendo
la
funzione
spazio
di attivazione 4.4 definita in
precedenza. Se il vettore iniziale rappresenta una parte di un dato memorizzato, la rete evolve raggiungendo una configurazione finale stabile di energia computazionale minima. La configurazione finale può risultare uno dei vettori memorizzati oppure uno stato particolare detto metastabile, che è un minimo locale di energia non corrispondente a nessuno dei vettori memorizzati. Nella rappresentazione nello spazio degli stati della rete uno stato metastabile è rappresentato come tutti i minimi di energia da uno dei vertici dell'ipercubo N-dimensionale che rappresenta la superficie energetica. Per particolari condizioni iniziali la rete presenta un comportamento oscillatorio per cui non viene mai raggiunto uno stato finale stabile.
La rete di Hopfield utilizzata come memoria associativa presenta due limiti non trascurabili. Il primo
limite
fissa il numero massimo di vettori memorizzabili e
richiamabili con sufficiente accuratezza. Hopfield ha mostrato che il numero massimo di vettori memorizzabili è Mmax ≅ 0.15*N, N è il numero di neuroni della rete. Un altro limite consiste nella difficoltà di memorizzare vettori con molti bit in comune e vettori con forti sbilanci tra bit ad 1 e bit a 0. Tali limiti saranno esaminati nel capitolo 7.
Reti Neurali: modelli e aspetti applicativi: Cap 4 Reti di Hopfield e Macchina di Boltzmann
41
FIGURA 4.1c - In alto è lo schema architetturale del modello discreto di Hopfield che implementa una memoria associativa, in basso si vede il proncipio di funzionamento
Reti Neurali: modelli e aspetti applicativi: Cap 4 Reti di Hopfield e Macchina di Boltzmann
42
4.5 - MODELLO CONTINUO DELLA RETE DI HOPFIELD
Nel lavoro successivo Hopfield12 propone un nuovo modello di rete di neuroni basato su unità di elaborazione analogiche, che segue la dinamica di un sistema fisico in uno spazio di configurazioni continuo. Nel nuovo modello si ha un'analogia
più marcata tra i
fenomeni fisici osservati nei neuroni biologici e descritti dalla neurodinamica classica e quelli che governano il funzionamento della rete
artificiale. Lo stato del neurone è
descritto dalla variabile in ingresso U , la funzione di uscita è continua e limitata: Vi (t) = gi (Ui (t)) Vi0 ≤ Vi (t) ≤ Vi1 g (-∞) = 0 g(+∞) = 1 La funzione di uscita Vi (t) è una sigmoide monotona crescente con asintoti Vi0 e Vi1. La rete continua di Hopfield è progettata per essere facilmente realizzabile fisicamente (si veda la figura 4.2). Le unità di elaborazione sono costruite
mediante amplificatori
operazionali con tempo di risposta trascurabile, e la cui caratteristica ingresso-uscita corrisponde alla funzione di uscita Vi (t) . In questo caso Vi (t) = gi (Ui (t)) è la tensione di
uscita
del
i-esimo amplificatore mentre Ui(t)
è
la
tensione
in
ingresso.
La connessione tra un amplificatore j e uno i è realizzata mediante resistenze di conduttanza Tij . Ogni amplificatore è dotato di due uscite, una normale e una inversa, in modo da realizzare connessioni eccitatrici e inibitrici. Il valore dell'uscita normale è compreso tra 0 e 1, mentre l'uscita inversa da i valori tra 0 e -1. Tra l'ingresso di ciascun amplificatore e la massa è inserito un gruppo parallelo, costituito da una resistenza ρi
e una capacità Ci, che definisce le costanti di tempo della rete. La
corrente in ingresso totale di ciascun unità di elaborazione è composta da due termini, il primo è la sommatoria di tutte le correnti provenienti da tutte le unità connesse, il secondo è una corrente di alimentazione esterna . A questo punto si può descrivere la dinamica
del
sistema
degli
N
amplificatori
interagenti mediante le equazioni
differenziali seguenti:
4.11
12
J.J Hopfield, “Neuron with graded response have collective computational properties like two-state neurons”, Proc. Natl. Acad Sci. 81, pag. 3088 (1984).
Reti Neurali: modelli e aspetti applicativi: Cap 4 Reti di Hopfield e Macchina di Boltzmann
43
FIGURA 4.2a - In alto è mostrata la funzione di attivazione di una rete continua di Hopfield, in basso è mostrato lo schema elettrico della rete. (FONTE P.N.A.S. 81/1984/J.J. HOPFIELD)
Reti Neurali: modelli e aspetti applicativi: Cap 4 Reti di Hopfield e Macchina di Boltzmann
FIGURA 4.2b - In alto è mostrato lo schema elettrico di una rete continua di Hopfield.
44
Reti Neurali: modelli e aspetti applicativi: Cap 4 Reti di Hopfield e Macchina di Boltzmann
45
dove Ri è data dalla relazione :
4.12 ρi è la resistenza in ingresso dell'amplificatore i, si assume che l'impedenza in uscita all'amplificatore sia nulla. L'interpretazione biologica del modello continuo di Hopfield è quasi immediata. La neurodinamica classica porta alle seguenti considerazioni:
1. L'uscita Vi del unità computazionale i può essere identificata col numero medio di potenziali d'azione nell'unità di tempo emessi dal neurone i. 2. Il voltaggio in ingresso Ui all'unità i è analogo al debole potenziale prodotto nel neurone i postsinaptico quando i potenziali d'azione dei neuroni
presinaptici
raggiungono la sinapsi e liberano i neurotrasmettitori chimici. L'input totale del neurone i è Σ j Tij Vi + Ii , dove Tij rappresenta l'efficienza della sinapsi tra il neurone i e il neurone j. 3. La resistenza e la capacità della membrana cellulare del neurone i sono espresse dalle costanti ρi e Ci .
Le equazioni dinamiche che descrivono il modello neurale biologico definito sono quelle definite da Hopfield per il suo modello continuo di rete neurale. Queste equazioni omettono
l'effetto
della
quantizzazione dei potenziali d'azione,
inoltre
considerano infinita la velocità di propagazione di tali potenziali. Conoscendo i valori delle tensioni Ui al tempo t = 0, le equazioni dinamiche permettono di ricavare
una
descrizione completa dell'evoluzione temporale dello stato del sistema. Analogamente al modello discreto, Hopfield ha trovato che, nell'ipotesi di connessione,
le
equazioni
dinamiche
del modello
simmetria della matrice di continuo
conducono
alla
convergenza verso stati stabili, cui corrispondono i minimi dell'energia computazionale. Nell'ipotesi che la matrice T abbia gli elementi diagonali nulli e sia simmetrica l'energia computazionale è definita come segue:
4.13 Hopfield ha dimostrato che la derivata rispetto al tempo dell'energia computazionale
Reti Neurali: modelli e aspetti applicativi: Cap 4 Reti di Hopfield e Macchina di Boltzmann
46
nell'ipotesi di una matrice T simmetrica, è minore o uguale a zero, si ha infatti:
4.14 -1
Dato che gi (Vi ) è una funzione monotona non decrescente e Ci è sempre positivo, ogni termine della somma 4.14 non è negativo per cui si ha: dE/dt ≤ 0 , dE/dt = 0 quando dVi /dt = 0 ∀ i Si può affermare che l'energia computazionale è una funzione di Ljapunov per il sistema. Inoltre se la curva di guadagno dell'amplificatore è molto stretta l'ultimo termine di questa equazione è nullo, per cui E è espressa nella stessa forma del modello discreto. Il modello continuo di Hopfield è deterministico, analogamente al modello stocastico lo stato della rete al tempo t determina unicamente lo stato della rete al tempo t + τ. Hopfield studiando il comportamento dei due modelli descritti ha osservato che
il
modello continuo deterministico continuo conserva le stesse proprietà del modello discreto stocastico, ma
si
rivela
più
veloce
nel risolvere
difficili
problemi
computazionali. Si vedranno adesso le relazioni tra gli stati stabili dei due modelli. Siano fatte per semplicità le seguenti assunzioni: gi (0) = 0,
Vi0 = -1,
Vi1 = 1,
Ii = 0
∀ indice i
L'energia per il caso considerato e:
4.15 Si ricercano adesso i massimi e i minimi del primo termine di E nel dominio dell'ipercubo definito mediante i vertici -1≤ V≤ 1 ∀i. Nel caso discreto stocastico l'energia E è rappresentata solo dal primo termine della 4.15, e si è detto che gli stati stabili corrispondono ai vertici dell'ipercubo N-dimensionale rappresentante lo spazio degli stati. Dato che E è una funzione lineare di Vi con Vj costante, allora i minimi di energia del primo termine di E che ha variabili
di stato continue nell'intervallo
-1≤ V≤ 1
corrispondono a quelli del caso discreto con variabili di stato µi = ±1. Il secondo termine
Reti Neurali: modelli e aspetti applicativi: Cap 4 Reti di Hopfield e Macchina di Boltzmann
47
di E altera tale interpretazione , consideriamo adesso la variabile Vi definita non più da gi (Ui ) ma mediante il parametro λ ( si vedrà che nella macchina di Boltzmann il parametro λ-1 assumerà il significato virtuale di una temperatura), si ha: Vi = gi (λ Ui)
e Ui = (1/λ)g-1(Vi)
FIGURA 4.3 - In alto è mostrata la superficie energetica nello spazio delle coordinate r ed E, in basso si ha la stessa superficie vista dall'alto. (FONTE P.N.A.S. 81/1984 J.J.HOPFIELD; PHYSICAL D 1986/J.S DENKER)
Reti Neurali: modelli e aspetti applicativi: Cap 4 Reti di Hopfield e Macchina di Boltzmann
48
Il parametro λ cambia la forma della funzione sigmoide g(x) senza alterarne gli asintoti (vedi figura 4.4). Il secondo termine di E diventa:
4.16 L'integrale 4.16 è nullo per Vi = 0 e positivo altrimenti, e assume un valore molto alto per Vi tendente a
±1. Riferendosi alla figura 4.3 che rappresenta la superficie
corrispondente alla funzione energia nello spazio di coordinate Vi ed E, si ha che per λ >> 1 i minimi di energia sono dislocati verso l'interno
rispetto
i
vertici
dell'ipercubo, al crescere di λ i minimi di E si spostano verso l'esterno tendendo a posizionarsi
sui
vertici dell'ipercubo. Nel limite λ → ∞ (la sigmoide diventa una
funzione a gradino come si vede in alto alla figura 4.4) tale termine diventa trascurabile e la posizione dei minimi di energia nello spazio degli stati è la stessa del modello discreto stocastico. Nel limite opposto λ << 1 si ha un solo minimo per Vi = 0.
FIGURA 4.4 - (a) La funzione di attivazione tipica di un neurone. (b) La funzione V=g(λu) mostrata per tre valori del parametro l. ((c) Relazione inversa u=g-1 (V) della funzione V=g(λu). (d) Il contributo di g all'energia della relazione 4.15 in funzione di V. (FONTE P.N.A.S. 81/1984/J.J. HOPFIELD)
Reti Neurali: modelli e aspetti applicativi: Cap 4 Reti di Hopfield e Macchina di Boltzmann
49
La figura 4.3 mostra il contorno energetico per un sistema di due neuroni, i due assi Va e Vb
sono le uscite dei due amplificatori. Le frecce della figura 4.3
indicano la
direzione privilegiata dell'evoluzione degli stati. Viene mostrata anche la deformazione del contorno
energetico derivante dall'applicazione di correnti esterne. Si può
pensare al processo di computazione di una rete di Hopfield come l'evoluzione di un punto rappresentante lo stato del sistema nella superficie
energetica
visualizzata,
tale evoluzione è strettamente vincolata dalla presenza di punti attrattori corrispondenti alle valli della superficie. In definitiva il modello continuo di rete neurale non rimpiazza il modello discreto ma ne è un'importante evoluzione. Il modello discreto ha il vantaggio di poter essere facilmente simulato mediante software su un computer digitale ed è spesso più pratico per sviluppare idee e simulazioni su modelli biologici di reti neurali.
4.6 - ANNEALING E ANNEALING SIMULATO
Si è visto che le reti convergono verso
di
stati
Hopfield di
nella loro
evoluzione nello spazio degli stati
energia computazionale minima. Questi stati
spesso
corrispondono a minimi locali di energia, e se la rete implementa la soluzione di un problema, il minimo trovato non è
detto
che
corrisponda alla soluzione ottimale.
Kirkpatrick ed altri13 hanno introdotto nel 1983 una nuova procedura per avvicinarsi al minimo globale della funzione energia. La procedura elaborata
deriva
da
un'applicazione della meccanica statistica alla ricerca delle soluzioni di problemi di ottimizzazione combinatoria, in particolare essa deriva dal metodo Monte Carlo di Metropolis, che permette un efficiente simulazione di un sistema fisico in equilibrio termico ad una data temperatura. La rete cui si applica la nuova procedura è la macchina di
Boltzmann. Si
vedranno
adesso
le
considerazioni
che hanno
portato
all'elaborazione della macchina di Boltzmann. Lo scopo della meccanica statistica è di elaborare metodi per analizzare sistemi fisici composti da un numero N molto alto di particelle. Lo stato di questi sistemi fisici è detto microstato, e corrisponde a un punto nello spazio delle fasi, le cui coordinate sono i 6N valori di coordinate e momenti che
13
S. Kirkpatrick ,C.D. Gelatt, M.P. Vecchi, “Optimization by simulated annealing”, Science Vol. 220, Num. 4598, 13 Maggio 1983, pag 671-680.
Reti Neurali: modelli e aspetti applicativi: Cap 4 Reti di Hopfield e Macchina di Boltzmann
50
descrivono il sistema. La densità di probabilità che il sistema sia in un dato microstato è la funzione di distribuzione del sistema. Per gli scopi di questa trattazione è sufficiente considerare particelle classiche identiche con tre gradi di libertà , sistemi fisici che siano rappresentati da insiemi canonici cioè
a
contatto
con un termostato a
temperatura T (in tali sistemi sono fissi il numero delle particelle N, il volume V e la temperatura T). La funzione distribuzione del microstato v di energia Ev per gli insiemi canonici è definita come:
4.17 Z è la funzione di partizione degli insiemi canonici che è legata all'energia libera di Helmholtz dalla relazione: F = - kT ln(Z). La 4.17 esprime che la densità di probabilità di una particolare configurazione del sistema
corrispondente al microstato v è
proporzionale a exp(-Ev/kT), e corrisponde alla distribuzione di Boltzmann. Con le premesse fatte si esaminerà adesso il metodo Monte Carlo di Metropolis, che permette di generare possibili configurazioni di
un
sistema
fisico canonico di N particelle.
Le regole sono: 1. seleziona a caso una particella; 2. seleziona uno spostamento casuale ∆q delle coordinate della particella; 3. calcola il corrispondente cambio di energia ∆E; 4. se ∆E ≤ 0 la nuova configurazione viene accettata; 5. se ∆E > 0 seleziona un numero reale a caso h tra 0 e 1; 6. se exp(∆E/kT) < h conserva la configurazione attuale; 7. se exp(∆E/kT) ≤ h accetta la nuova configurazione;
Le regole elencate vengono ripetute iterativamente molte volte, consentendo di campionare lo spazio delle fasi di un sistema a contatto con un termostato a temperatura T con una probabilità proporzionale alla densità degli stati. Come si vede nell'algoritmo di Metropolis il caso ∆E > 0
viene trattato probabilisticamente: la probabilità che la nuova
configurazione venga accettata è P(∆ ∆E) = exp(∆ ∆E/kT). Tale scelta permette al sistema di evolvere seguendo la distribuzione di Boltzmann. La macchina di Boltzmann è essenzialmente una rete discreta di Hopfield con una funzione
di attivazione
probabilistica, nella cui modalità operativa è implementata una forma dell'algoritmo di
Reti Neurali: modelli e aspetti applicativi: Cap 4 Reti di Hopfield e Macchina di Boltzmann
51
Metropolis detta annealing simulato utilizzata per raggiungere l'equilibrio. Il termine annealing simulato deriva dall'analogia con il processo di annealing portare
un
sistema fisico nello stato più
basso
del
14
potenziale
utilizzato per termodinamico
corrispondente alle condizioni esterne imposte. In un sistema generico la condizione di equilibrio termodinamico è raggiunta massimizzando l'entropia e minimizzando l'energia interna. Per un solido l'energia interna minima corrisponde a quella di un cristallo perfetto, ma un solido reale è caratterizzato da difetti nella
struttura
cristallina
(vacanze di atomi o dislocazioni dei piani reticolari). A temperatura T si hanno degli effetti contrastanti, la formazione di difetti reticolari aumenta l'entropia del solido, mentre
l'eliminazione
dei
difetti diminuisce l'energia interna: la condizione di
equilibrio di un cristallo è lo stato di energia libera di Helmholtz F=U-TS minima. In un cristallo si può definire la concentrazione
di
difetti all'equilibrio ad una data
temperatura Ndequ(T), la quale cresce con la temperatura. Se esiste una concentrazione di difetti in un cristallo, esisterà anche una diffusione di difetti, caratterizzata dalla costante di diffusione D(T). All'equilibrio i difetti saranno uniformemente distribuiti. Un atomo interstiziale o una vacanza può diffondere, se riesce a superare una barriera di energia potenziale dovuta al reticolo. Se la temperatura è alta la costante di diffusione D(T) sarà anch'essa alta, e il cristallo raggiungerà velocemente la concentrazione Ndequ(T). Per temperature basse la mobilita dei difetti è ridotta, dato che può risultare molto improbabile il superamento della barriera di potenziale del reticolo Ep . In questo caso la concentrazione dei difetti reale Nd potrà essere maggiore di Ndequ(T). Per poter eliminare i difetti reticolari di un cristallo si ricorre alle tecniche di annealing: il solido viene portato quasi fino al punto di fusione, quindi viene ridotta lentamente la temperatura attraverso trasformazioni quasi reversibili. La rapidità con cui viene ridotta la temperatura deve consentire al sistema di mantenersi in equilibrio termodinamico, in modo che si abbia sempre Nd= Ndequ(T). Abbassando la temperatura T si abbassa anche Ndequ(T) e quindi anche l'energia libera F. Kirkpatrick ed altri hanno notato che trovare lo stato a di minima energia di un sistema è essenzialmente un problema di ottimizzazione simile a quelli di ottimizzazione combinatoria. I metodi che la meccanica statistica adotta per sistemi a molte particelle possono essere utili anche in problemi di ottimizzazione combinatoria, i quali sono caratterizzati da un altissimo
numero di soluzioni
corrispondenti al minimo globale di una funzione energia computazionale. 14
C. Kittel , “Introduzione alla Fisica dello Stato Solido”, Boringhieri 1971, Terza edizione.
Reti Neurali: modelli e aspetti applicativi: Cap 4 Reti di Hopfield e Macchina di Boltzmann
52
4.7 - MACCHINA DI BOLTZMANN
L'idea base della macchina di Boltzmann è di introdurre nei processi di cambiamento stato dei neuroni una componente di casualità che generalizzi il concetto di temperatura. Questa considerazione porta a incorporare nel processo decisionale del neurone dei contributi di rumore che permettono il cambiamento di stato del neurone con una funzione
di attivazione probabilistica, che classifica la macchina di Boltzmann
nell'insieme di reti neurali non deterministiche. Allo scopo di definire la funzione di attivazione
si consideri la rete di Hopfield. In tale modello la variazione di energia
dovuta al cambiamento di stato di un neurone e con correnti Ii nulle:
Se ∆Ei è il gap di energia tra lo stato 1 e lo stato 0 del neurone i della rete, la probabilità che il neurone i si setti allo stato 1 è data dalla regola di decisione seguente:
4.18 tale probabilità è indipendente dallo stato precedente del neurone. T è un parametro che si comporta come la temperatura. La funzione probabilità pi è mostrata nella figura 4.5.
FIGURA 4.5 - Funzione di attivazione probabilistica della macchina di Boltzman
Reti Neurali: modelli e aspetti applicativi: Cap 4 Reti di Hopfield e Macchina di Boltzmann
53
Utilizzando le generalizzazioni espresse per le reti neurali, si può esprimere lo stato Vi del neurone i
mediante la funzione di attivazione probabilistica seguente:
4.19
4.20 La 4.20 è la funzione di attivazione della macchina di Boltzmann, essa è una sigmoide ed esprime la probabilità di attivazione del neurone i (vedi figura 4.4). La regola di probabilità espressa dalla funzione 4.18 è uguale alla distribuzione di probabilità di un sistema fisico a due stati di energia A e B. Un sistema di particelle a contatto con un termostato a una data temperatura raggiungerà l'equilibrio termico, e la probabilità di trovare il sistema in un dato stato globale segue la distribuzione di Boltzmann. In modo concorde una rete di neuroni che segue la regola di decisione 4.20, raggiungerà uno stato di equilibrio termico a temperatura T nel quale la probabilità relativa dei due stati della rete segue la distribuzione di Boltzmann: pa/pb = exp(-Ea - Eb)/T)
4.21
in tale relazione pa e pb sono rispettivamente le probabilità che il sistema si trovi nello stato A o B di energia Ea e Eb . Si noti che l'equilibrio termico corrisponde a una distribuzione di probabilità sugli stati stabile. Per un valore di T=0, il sistema si comporta come una semplice rete di Hopfield discreta, la 4.20 diventa una funzione a gradino come nella rete discreta di Hopfield. Per valori elevati di T, pi è pari circa a 0.5 ed il sistema presenta stati di attivazione casuali. Gli stati metastabili della macchina di Bolzmann sono legati al parametro T della 4.20, infatti il loro numero cresce con la temperatura T. Per quanto detto è possibile pensare ad una analogia tra gli metastabili
della macchina di Boltzmann e
L'annealing simulato implementato nella
la configurazione dei
macchina di Boltzmann
algoritmo di apprendimento, piuttosto è una procedura
utilizzata
stati
difetti reticolari. non
è un
nella
fase
vero di
funzionamento della rete successiva all'apprendimento. La macchina di Boltzmann viene
Reti Neurali: modelli e aspetti applicativi: Cap 4 Reti di Hopfield e Macchina di Boltzmann
54
fatta funzionare presentando in ingresso un vettore e seguendo l'evoluzione spontanea della rete fino alla produzione di un vettore finale di uscita. All'inizio della fase di funzionamento, analogamente al processo di annealing, la temperatura T ha un valore elevato. La funzione di attivazione in questo caso è pari a 0.5, per cui se il sistema si trova in un minimo locale di energia (stato metastabile) , il valore elevato di T provoca un evoluzione casuale dello stato della rete favorendo l'allontanamento da tale minimo. Infatti lo stato della macchina di Boltzmann può fluttuare anche per un vettore in ingresso costante corrispondente a uno stato metastabile. Questo comportamento è analogo a quello degli atomi di un solido che per temperature elevate riescono a superare la barriera di potenziale , in modo da rendere uniforme la concentrazione di difetti Ndequ(T) . Ogni volta che la rete produce retroazionata
all'ingresso della rete, in
questa
un fase
uscita, viene
quest'ultima ridotto
il
viene
parametro
temperatura della funzione di attivazione. In tal modo si riducono sia gli stati metastabili accessibili , sia
le possibilità della macchina di uscire da uno
stato metastabile
raggiunto. In definitiva quando la temperatura T tende a 0, lo stato raggiunto dalla rete si avvicinerà di molto a un minimo globale dell'energia computazionale.
4.8 - REGOLA DI APPRENDIMENTO PER LA MACCHINA DI BOLTZMANN
Hinton ed altri hanno recentemente definito per la macchina di Boltzmann un algoritmo di apprendimento15 di tipo guidato, che consente alla rete di imparare come associare ad un determinato vettore in ingresso il corrispondente vettore di uscita. Si consideri la macchina di Boltzmann costituita da livelli di unità visibili e nascoste. L'apprendimento avviene in due fasi distinte, una positiva ed una negativa, seguite da un processo di modificazione dei pesi delle connessioni: 1. Fase positiva di training. Questa
è
la
fase
di addestramento della rete.
Vengono presentate alle unità visibili della rete, una alla volta, delle coppie di vettori ingresso-uscita. Ogni volta la rete viene
gradualmente portata all'equilibrio
termico, partendo da un alto valore di T fino a T = 1. All'equilibrio il sistema viene mantenuto per
15
alcuni cicli. Alla fine di questa fase
viene
calcolata
per ogni
S.E. Fahlman G.E. Hinton. “Connectionist Architectures for Artificial Intelligence”. IEEE Computer, Gennaio 1987, pag. 100-109.
Reti Neurali: modelli e aspetti applicativi: Cap 4 Reti di Hopfield e Macchina di Boltzmann
55
connessione la probabilità pij+ che le unità i e j siano entrambe attive durante l'equilibrio termico. 2. Fase negativa di test. La fase di
verifica dell'addestramento è analoga, ma in
questo caso vengono presentati solo i vettori di ingresso e vengono calcolate all'equilibrio le probabilità pij- . Se la rete alla fine delle due fasi presenta
le
stesse distribuzioni di probabilità pij+ e pij- non viene effettuata nessuna modifica ai pesi di connessione. Se invece le probabilità pij+ e pij- sono diverse allora si deve modificare il peso
della connessione. Precisamente indicando con G una misura
teorica fra il comportamento effettivo della rete e quello desiderato, Ackley e Hinton hanno dimostrato che :
δG/δT = -(1/T) (pij+ - pij-)
4.22
Da quanto detto è chiaro che per ottenere il comportamento desiderato dal sistema è necessario introdurre una regola
di
apprendimento in modo che i pesi di tutte le
connessioni per le quali risulta pij+ ≠ pij- , si modifichino spontaneamente in modo da annullare la derivata di G rispetto il peso. Il principale limite della macchina di Boltzmann è la bassa velocità di convergenza al minimo globale dell'energia.
Reti Neurali: modelli e aspetti applicativi: Cap 5 Altri modelli: Perceptroni e Reti di Kohonen
56
5. - ALTRI MODELLI: PERCEPTRONI E RETI DI KOHONEN 5.1 - INTRODUZIONE
In questo capitolo si approfondiranno gli sviluppi di uno dei primi modelli di rete di neuroni ad apprendimento spontaneo, il perceptrone di Rosemblatt. Il perceptrone nasce come un modello semplificato del sistema nervoso, di cui avrebbe dovuto duplicare le funzioni cognitive. Rosemblatt proponeva il modello non come un dispositivo logico equivalente alla macchina di Turing, bensĂŹ come un sistema capace di effettuare associazioni fra stimoli simili. Le sue differenze rispetto un sistema logico erano notevoli, infatti le sue risposte a stimoli nuovi non erano a priori prevedibili, essendo determinate dai concetti appresi precedentemente, inoltre esso riusciva a funzionare anche in presenza di rumore sul segnale di ingresso. Saranno esposti piĂš avanti i principi di funzionamento del perceptrone semplice che deriva direttamente dal Rosemblatt e
dell'evoluzione successiva
Nell'ultimo paragrafo viene
presentata
costituita la
dal
regola
perceptrone
modello
di
multistrato.
di apprendimento back-
propagation, inizialmente applicata a perceptroni multistrato ed estesa recentemente a moltissimi modelli di reti neurali.
Reti Neurali: modelli e aspetti applicativi: Cap 5 Altri modelli: Perceptroni e Reti di Kohonen
57
5.2 - PERCEPTRONE A SINGOLO STRATO
L'originale modello di perceptrone proposto da Rosemblatt16 è una primitiva rete neurale composta da unità di calcolo dette neuroni lineari a soglia (vedi figura 5.1 in alto). I neuroni sono disposti generalmente a tre livelli e la topologia della rete e di tipo feedforward. Il primo livello è la griglia retinica o retina (unità Si ) alla quale vengono presentati gli ingressi, il secondo livello (unità Ai ) svolge funzioni di classificazione o riconoscimento, il terzo livello (unità-R) presenta l'uscita discreta 0 o 1 prodotta dalla macchina. L'apprendimento del perceptrone si manifesta con la modifica dei pesi P delle connessioni tra il secondo e il terzo livello di neuroni, per tale caratteristica il modello è detto anche singolo-strato (single-layer). Le connessioni tra il livello d'ingresso e quello centrale rimangono sempre fisse e servono solo per dare una codifica ai dati di ingresso. Da quest'ultima osservazione risulta che è possibile eliminare il livello di neuroni di ingresso senza nessuna perdita di generalità. In tal modo si può definire un modello generalizzato di perceptrone a singolo strato di connessioni e a due livelli di neuroni come si nota in basso alla figura 5.1. Il primo livello di
neuroni
riceve
direttamente gli ingressi ed e connesso con sinapsi variabili al secondo livello (costituito per semplicità da un solo neurone) che produce l'output. La funzione di attivazione è:
5.1 Si è la soglia di attività del neurone i, stp[x] è una funzione non lineare limitata a gradino (hard-limiter). La funzione principale attuata da un perceptrone è quella di classificatore di forme. Si consideri la semplice unità di figura 5.1, questo neurone computa la somma pesata degli input sottrae la soglia Si e tramite la funzione di attivazione produce un output +1 o 0. Il tipo di uscita permette di decidere, per convenzione, quale delle due classi A o B appartiene l'ingresso. Una utile tecnica per analizzare il comportamento di un perceptrone e di tracciare un grafico come quello di figura 5.1, nel quale sono mappate in uno spazio le cui coordinate sono gli ingressi del neurone i, le regioni di appartenenza degli
16
input
alle varie classi, separate da un
Frank Rosemblatt, “The perceptron, a probabilistic model for information storage and organization in the brain”, Psychological review, 65 pag 386-408.
Reti Neurali: modelli e aspetti applicativi: Cap 5 Altri modelli: Perceptroni e Reti di Kohonen
58
iperpiano detto regione di decisione. La posizione dell'iperpiano, che nel caso di due variabili di ingresso della figura è una retta, dipende dai pesi di connessione Tij . I pesi delle connessioni e le soglie di un perceptrone possono essere scelte e modificate mediante diversi algoritmi. L'originale regola di apprendimento di un perceptrone fu sviluppata da Rosemblatt. Questa regola permette di attuare un tipo di apprendimento con supervisione
in base al quale viene presentato al perceptrone una forma da
classificare, la risposta della rete viene confrontata con quella nota a priori, l'eventuale differenza trovata viene utilizzata per modificare i pesi di connessione dei neuroni che forniscono una risposta scorretta. La regola delta è: 5.2 Vi*
è l'uscita desiderata, η è un numero positivo minore di 1,
Ui
rispettivamente l'ingresso e l'uscita del perceptrone. La scelta di η stabilità e la velocità di
convergenza
dell'apprendimento
al
e
Vi
sono
controlla la
giusto
risultato.
L'apprendimento avviene in modo iterativo secondo la procedura seguente: 1. Inizializzazione pesi e soglie. In questa fase vengono inizializzati a caso, a valori diversi da zero, i pesi e la soglia del neurone di uscita. 2. Fase di apprendimento. In questa fase viene perceptrone ed
è
calcolata
l'uscita,
presentato
un
in base alla quale
nuovo ingresso al viene
applicata
iterativamente la regola delta esposta. Nei casi semplici l'algoritmo converge, per cui dopo un certo numero di passi le modificazioni da apportare ai pesi sono nulle, e la risposta fornita dalla rete è quella giusta.
Una versione leggermente modificata della regola di Rosemblatt è stata proposta da B. Widrow e M. Hoff
17
ed è chiamata regola LMS. La regola LMS (Least Mean-Square)
viene applicata al modello di perceptrone di Widrow noto come Adaline uguale nella struttura al perceptrone mostrato in figura 5.1. L'Adaline differisce dal perceptrone di Rosemblatt per la funzione di attivazione che è lineare senza alcuna soglia di attivazione:
17
B. Widrow e M. Hoff, “Adaptive switching circuits”, Institute of Radio Engineers, 1960 WESCON Convention, Record Part IV, pag 96-104.
Reti Neurali: modelli e aspetti applicativi: Cap 5 Altri modelli: Perceptroni e Reti di Kohonen
L'algoritmo LMS consiste in una procedura per trovare i pesi Tij
59
che minimizzano
l'errore εi ed è data da un espressione equivalente alla regola delta, si ha infatti:
con εi=(Vi-Vi*)
FIGURA 5.1a - Sono mostrati due schemi dell'originale perceptrone di Rosemblatt.. (FONTE IEEE ASSP MAGAZINE 4/1987/R. P. LIPPMANN)
Reti Neurali: modelli e aspetti applicativi: Cap 5 Altri modelli: Perceptroni e Reti di Kohonen
60
FIGURA 5.1b - Perceptrone a singolo strato, che classifica un vettore in ingresso in due classi denominate A e B. Tale rete divide lo spazio degli ingressi in due regioni separate dalla linea tratteggiata. (FONTE IEEE ASSP MAGAZINE 4/1987/R. P. LIPPMANN)
5.3 - LIMITI DEL PERCEPTRONE A SINGOLO STRATO
Rosemblatt ha provato che se gli ingressi delle due classi presentati al perceptrone sono separabili (cioè esiste un iperpiano che le divide nello spazio degli input in due regioni), allora la procedura su esposta converge sempre. Uno dei problemi della procedura
di
convergenza
del perceptrone è che essa può oscillare continuamente
quando gli input non sono separabili. Ad esempio un perceptrone non può calcolare un OR esclusivo, poiché vi è una sovrapposizione di classi. Questo limite originò l'aspra critica di Minsky e Papert ai modelli basati sul perceptrone. Consideriamo il problema dello XOR18 la tabella della verità della funzione logica è la seguente: Tabella della verità della Funzione Logica XOR. (5.4) INPUT
OUTPUT
0
0
0
0
1
1
1
0
1
1
1
0
18
D. E. Rumelhart, J. L. McClelland, “Exploration in Parallel Distributed Processing”, The MIT Press, Cambridge 1989.
Reti Neurali: modelli e aspetti applicativi: Cap 5 Altri modelli: Perceptroni e Reti di Kohonen
61
Applicando la funzione di attivazione 5.1 al problema dello XOR si ha:
E' evidente il paradosso sui pesi T1 e T2 , i quali devono essere ambedue maggiori della soglia S mentre la somma T1
+ T2
è minore di S. Il
problema
dello
XOR è
rappresentato in figura 5.2 nello spazio degli stati degli ingressi. La figura 5.2 mostra che
è
impossibile tracciare una retta corrispondente alla regione di decisione per il
problema XOR, mentre si nota la risolvibilità delle operazioni logiche AND e OR. La retta di separazione corrisponde per 2 input all'equazione: S = V1T1 + V2T2. Con 3 input si ha il piano S = V1T1 + V2T2 + V3 T3. In generale la regione di decisione corrisponde a un iperpiano:
Tutte le funzioni per le quali esiste una regione di decisione sono dette linearmente separabili. Consideriamo adesso la funzione logica seguente: Tabella della verità della Funzione Logica XOR. INPUT
OUTPUT
0
0
0
0
0
1
0
1
1
0
0
1
1
1
1
0
Questo problema tridimensionale corrisponde al problema XOR per i primi due input, il terzo input è l'uscita AND dei primi due. La figura 5.3, rappresentante il problema, mostra che l'aggiunta della terza dimensione permette di risolvere la funzione XOR. La terza
dimensione
corrisponde
ad aggiungere un livello nascosto di unità, che
definisce il semplice perceptrone multistrato di figura 5.3.
Reti Neurali: modelli e aspetti applicativi: Cap 5 Altri modelli: Perceptroni e Reti di Kohonen
62
FIGURA 5.2 - (A) Semplice Perceptrone a singolo strato e 2 input (B) Rappresentazione grafica delle funzioni logiche AND, OR e XOR, e della loro solubilitĂ tramite il perceptrone. (FONTE Exploration in P.D.P 1989/D. E. RUMELHART)
FIGURA 5.3 - Perceptrone con uno strato di neuroni nascosto e 3 nodi in grado di risolvere la funzione XOR, la cui rappresentazione grafica e mostrata a destra. (FONTE Exploration in P.D.P 1989/D. E. RUMELHART)
Reti Neurali: modelli e aspetti applicativi: Cap 5 Altri modelli: Perceptroni e Reti di Kohonen
63
5.4 - PERCEPTRONI MULTISTRATO
I limiti del perceptrone di Rosemblatt sono stati
superati con l'introduzione di nuove
regole di apprendimento e nuove topologie di rete. I perceptroni multistrato sono reti con uno o più livelli di neuroni nascosti tra i neuroni di ingresso e uscita. Un perceptrone a tre livelli è mostrato in figura 5.4a. La mancanza di adeguate regole di apprendimento non ha permesso in passato la diffusione dei perceptroni multistrato. Solo recentemente sono state introdotte nuove regole di apprendimento che, sebbene non ne sia stata provata la convergenza, si sono dimostrate utili nella maggior parte dei problemi cui sono state applicate. Si considerano adesso perceptroni multistrato feedforward con funzione di attivazione hard-limiter e con un solo nodo di uscita, ai quali viene applicata la regola delta di apprendimento . Si è già visto che la regione di decisione di un perceptrone a singolo strato è un iperpiano di dimensioni uguale a N-1 dove N e il numero di neuroni di ingresso. Un perceptrone a due strati ha una regione di decisione convessa illimitata di forma arbitraria. La regione di decisione convessa è formata dalle intersezioni degli iperpiani di decisione dei perceptroni semplici del primo livello. Tali regioni convesse sono formate al massimo di un numero di lati uguale ai neuroni di uscita dei perceptroni semplici del primo strato, detti per semplicità nodi . Questa analisi porta a adeguare il numero di nodi di un perceptrone multistrato alla complessità del un problema da risolvere. Ad esempio due livelli sono sufficienti a risolvere il problema dello XOR come è mostrato nella figura 5.3. Rumelhart ed altri hanno provato che in un perceptrone feed-forward sono sufficienti tre strati di neuroni per generare una regione di decisione arbitrariamente complessa per complicati problemi di classificazione. Inoltre il numero di nodi del secondo strato deve essere maggiore di uno quando le regioni di decisione sono disconnesse nel caso peggiore deve essere uguale al numero di disconnessioni (vedi figura 5.5).
Reti Neurali: modelli e aspetti applicativi: Cap 5 Altri modelli: Perceptroni e Reti di Kohonen
64
FIGURA 5.4 - Perceptroni a tre strato di connessioni e N input e M output. (FONTE IEEE ASSP MAGAZINE 4/1987/R. P. Lippmann)
Reti Neurali: modelli e aspetti applicativi: Cap 5 Altri modelli: Perceptroni e Reti di Kohonen
65
FIGURA 5.5 - Tipi di regioni di decisione che possono essere formate da perceptroni a uno, due e tre strati. I nodi utilizzano una funzione di attivazione hard-limiter non lineare. (FONTE IEEE ASSP MAGAZINE 4/1987/R. P.Lippmann)
5.5 - REGOLA DI APPRENDIMENTO BACK-PROPAGATION
Si descriverà adesso un nuovo algoritmo di apprendimento noto come back-propagation, proposto da Rumelhart ed altri nel 198619 . Tale algoritmo si applica ad una rete di neuroni corrispondente ad un perceptrone multistrato con nodi di uscita multipli e con funzione di attivazione sigmoidale che esprime l'uscita del neurone i al tempo t+1 come:
5.5
è l'input totale del neurone al tempo t+1
19
D. E: Rumelhart, G. Hinton e R.J. Williams, “Learning representations by back-propagating errors”, Nature Vol. 323, 9 ottobre 1986.
Reti Neurali: modelli e aspetti applicativi: Cap 5 Altri modelli: Perceptroni e Reti di Kohonen
Per convenzione si sono chiamati ui e vi
66
rispettivamente le entrate e le uscite di un
nodo interno della rete mentre Ui e Vi denotano l'entrata e l'uscita dei livelli visibili della rete. La rete è dotata inoltre oltre gli ingressi normali di un ulteriore ingresso detto offset, settato quasi sempre a 1, il cui peso di connessione è detto bias. Il comportamento di queste reti rispetto ai perceptroni visti prima è più complicato. Le regioni di decisione sono tipicamente delle curve
e
non
più
degli
iperpiani. L'algoritmo back-
propagation è una generalizzazione della regola delta e consiste in una tecnica per trovare un insieme di pesi Tij che minimizza una funzione costo che corrisponde all'errore tra l'uscita prodotta e quella desiderata. L'errore totale della rete è definito come:
5.6 Vi è l'uscita dell'ultimo livello della rete, Vi* è l'uscita desiderata. Per minimizzare ε e necessario calcolare la derivata di e rispetto i pesi T si ha:
5.7 La 5.7 si applica partendo dai nodi di output e andando indietro fino al primo strato nascosto. Tij(t) è il peso della connessione tra un nodo nascosto i al nodo j, oppure il peso tra l'ingresso i e il nodo j. Si noti che si ha:
La regola back-propagation diventa:
5.8 Nella 5.8 v è l'uscita del nodo i oppure un ingresso, mentre la derivata δe/δδu è un termine che esprime l'errore per il nodo j. Se il nodo è di uscita si ha vi = Vi .
5.9 Nel caso di nodi interni nascosti si ha:
Reti Neurali: modelli e aspetti applicativi: Cap 5 Altri modelli: Perceptroni e Reti di Kohonen
dove k è un indice su tutti i nodi del livello successivo al nodo j. δk δe/δu
67
e la derivata
per il nodo k. L'apprendimento mediante l'algoritmo back-propagation è
composto dalle seguenti fasi:
1. Inizializzazione dei pesi e degli offset; 2. Presentazione coppie ingresso-uscita. In tale fase viene presentato un vettore con N componenti Vi e viene specificato il vettore di uscita desiderato di componenti Vi* ; 3. Calcolo uscite. Mediante la funzione sigmoide 5.5 vengono calcolate gli output intermedi vi e finali Vi ; 4. Adattamento connessioni. Utilizzando l'algoritmo di back-propagation esposto si adattano i pesi di ciascun strato cominciando dall'ultimo fino al primo corrispondente alle connessioni di ingresso. La procedura viene ripetuta con la presentazione di una nuova coppia di ingressi-uscite;
L'algoritmo back-propagation è stato applicato con successo a
problemi come l'OR
esclusivo, riconoscimenti di forme, sintesi del linguaggio, rappresentazione della conoscenza. Una dimostrazione della potenza di questo algoritmo è l'applicazione di sintesi del linguaggio fatta da Sejnowsky. Una difficoltà notata nell'applicazione della regola back-propagation è l'alto numero (> 100) di coppie ingresso-uscita richiesto per far convergere l'algoritmo. Recentemente alcuni autori20 applicato
la
regola back-propagation in perceptroni con feedback,
hanno
caratterizzati
dall'esistenza di ingressi in un livello provenienti da livelli successivi di neuroni. Esiste uno stretto legame
tra i perceptroni con feedback e le
reti
di
Hopfield,
infatti
imponendo la simmetria e forzando a 0 le autoconnessioni tra le unità si ottiene una rete formalmente equivalente al modello continuo di Hopfield.
20
Luis B. Almeida, "Backpropagation in perceptron with feedback", NATO ASI Series 1, Vol. F41 Neural Computers Springer-Verlag Berlino 1988.
Reti Neurali: modelli e aspetti applicativi: Cap 5 Altri modelli: Perceptroni e Reti di Kohonen
68
5.6 - RETI AUTO-ORGANIZZANTI DI KOHONEN
Si accenna brevemente al modello di rete di neuroni di
Teuvo Kohonen.
La rete è formata da neuroni formali simili a quelli a risposta continua di Hopfield, la cui topologia del tipo a connettività laterale, ricalca alcune strutture nervose biologiche. La rete apprende con un algoritmo sprovvisto di supervisione che provvede alla modifica dei pesi delle connessioni dei neuroni che meglio campionano i vettori in ingresso . La funzione di attivazione è una sigmoide espressa da:
5.11 Una rete di Kohonen è formata da una matrice bidimensionale di M neuroni che costituiscono anche le M uscite della rete (vedi in figura 5.6), le connessioni laterali tra i neuroni sono nulle. Ognuno degli N input Ui è connesso a ogni neurone della matrice mediante una connessione variabile. La rete viene addestrata come segue: 1. Inizializzazione pesi. In questa fase vengono settati i pesi delle connessioni degli N ingressi agli M neuroni di uscita, viene settato inoltre il raggio iniziale dell'intorno del neurone di risonanza. 2. Presentazione ingresso. Il vettore di ingresso composto dalle componenti continue V è presentato alla rete. 3.
Calcolo distanza di tutti i nodi. Viene calcolata la distanza tra l'ingresso e il neurone di uscita mediante la relazione:
4. Selezione neurone j con MIN (dj ). 5. Aggiornamento pesi. Vengono aggiornati i pesi delle connessioni tra il neurone j* e le entrate appartenenti all'intorno del neurone definito dall'insieme NEj*(t) secondo regola di apprendimento nota come legge di adattamento:
5.12 Il procedimento viene ripetuto presentando un nuovo ingresso.
Reti Neurali: modelli e aspetti applicativi: Cap 5 Altri modelli: Perceptroni e Reti di Kohonen
69
FIGURA 5.6 - Matrice bidimensionale di nodi di uscita rappresentante una rete di Kohonen. Ogni ingresso è connesso a tutti i nodi di uscita tramite una connessione variabile. In basso è mostrato un intorno del nodo j a tempi variabili t. In basso si vede l’evoluzione temporale di una rete autoorganizzante di Kohonen. (FONTE IEEE ASSP MAGAZINE 4/1987/R. P. Lippmann)
Reti Neurali: modelli e aspetti applicativi: Cap 6 Applicazioni di Reti Neurali
70
6. - APPLICAZIONI DELLE RETI NEURALI 6.1 - INTRODUZIONE
I modelli di reti esaminati nei capitoli precedenti si prestano a diverse applicazioni. La combinazione di Hopfield, può
essere
potenza
e di velocità computazionale del modello continuo di
applicata
minimizzazione di una
alla
funzione
risoluzione
di
problemi riconducibili alla
con caratteristiche
analoghe
computazionale. In generale le reti di Hopfield e la macchina di Boltzmann
all'energia possono
essere applicate a molti problemi di ottimizzazione combinatoria, i quali costituiscono una classe di problemi ad altissimo numero di soluzioni la cui risoluzione consiste nel trovare nel modo più rapido una o più soluzioni esatte o approssimate. Un esempio di questi problemi è quello del commesso viaggiatore (TSP Traveling Salesman Problem), nel quale si deve minimizzare il percorso di città. Il TSP appartiene all’estesa classe
dei
quest'ultimo attraverso N
problemi NP-completi (problemi
nondeterministici polinomiali completi). Per la risoluzione di tali problemi sono stati utilizzati i cosiddetti metodi euristici, che
riducono notevolmente il numero di
soluzioni, tuttavia non è noto attualmente un metodo generale di risoluzione valido per tutti i gradi di complessità del problema (nel caso del TSP la complessità è proporzionale al numero N delle città). Il tempo di computazione richiesto dai metodi
euristici
cresce in maniera inaccettabile al crescere della complessità
del
problema, quindi l'utilizzo di reti neurali, che forniscono una soluzione accettabile in un tempo paragonabile alle costanti di tempo del circuito elettrico che le costituisce, è un interessante campo di ricerca.
Reti Neurali: modelli e aspetti applicativi: Cap 6 Applicazioni di Reti Neurali
71
6.2 - RAPPRESENTAZIONE DEI DATI
Si è già accennato al fatto che la potenza computazionale
di
una rete neurale
è
determinata anche dalla scelta dello schema rappresentativo dei dati. In molti problemi di interesse pratico le soluzioni sono descritte da un set di numeri, per cui la possibilità di utilizzare per la loro risoluzione le reti neurali è subordinata alla possibilità di codificare tali numeri con le variabili di stato V dei neuroni della rete. Per realizzare rappresentazioni numeriche simili a quelle utilizzate nei calcolatori digitali, il valore delle variabili Vi ,alla fine del processo di minimizzazione della funzione energia, deve essere binario 0 o 1. Si considerano adesso dei metodi21 per rappresentare la classe Z dei numeri interi positivi nello spazio degli stati della rete neurale: • Rappresentazione binaria.
Nei
computer
convenzionali
la
forma di
rappresentazione dei numeri interi positivi si basa sul codice binario. Il numero di bit utilizzati per un numero N è lg2 (N + 1). Se nel modello di rete neurale ad ogni unità corrisponde un bit, si ha una corrispondenza biunivoca tra il numero N ∈ Z+ e i lg2 (N + 1) neuroni rappresentanti il numero N nella rete neurale. La limitazione della rappresentazione binaria è l'alta sensibilità agli errori. • Rappresentazione della somma semplice. In questo schema un valore numerico è rappresentato dalla somma delle unità attive. Per rappresentare il numero N occorrono almeno N unità. In questo metodo si ha una minore sensibilità agli errori rispetto al sistema binario, inoltre un numero dato N possiede più rappresentazioni. La ridondanza di un sistema di rappresentazione di dati è un vantaggio in termini di convergenza, infatti grazie all'alto numero di configurazioni associate a uno stesso valore numerico, la rete offre più possibilità di giungere rapidamente alla corretta soluzione. • Rappresentazione gruppi-pesi. Lo schema gruppi-pesi mantiene le proprietà di ridondanza e di affidabilità della rappresentazione somma-semplice, tuttavia introduce
21
Mitsuo Takeda e Joseph W. Goodman, "Neural networks for computation: number representations and programming complexity", Applied Optics, Vol. 25, Num. 18, 15 Settembre 1986, pag. 3033-3046.
Reti Neurali: modelli e aspetti applicativi: Cap 6 Applicazioni di Reti Neurali
un numero minore di elementi
di
elaborazione.
In
72
questa rappresentazione si
divide il numero totale q di bit in K gruppi, ciascuno dei quali contiene M bit (q = KM), l'espressione formale per il numero generico N sarà:
6.1
Ad esempio, con q=6, K=2, M=3, le configurazioni associate al numero 5 sono 100 100, 010 001, 001 010, 100 001, e cosi via, infatti applicando la formula 6.1 si ha:
Per esprimere il numero N si devono impiegare M lgM+1 (N+1) elementi. Si noti che gli schemi descritti precedentemente si possono ottenere come casi particolari dello schema gruppi-pesi. Ponendo M = 1 e K = q si ha lo schema binario, mentre con M = q e K = 1 si ottiene lo schema somma semplice. Altre rappresentazioni sono utilizzate per numeri interi positivi e negativi, numeri complessi e numeri reali. Per numeri interi positivi e negativi si può adottare la seguente espressione:
6.2 dove l'operazione
fornisce il più grande valore intero minore di X e il termine 0,5
[(M+1k-1)] è pari alla metà del massimo valore esprimibile mediante la 6.2. Numeri complessi con parte immaginaria e reale intere vengono espressi nella forma C = A + jB dove A e B sono nella forma 6.2.
Numeri reali e complessi possono essere espressi
introducendo nuove unità le cui variabili di stato hanno indici negativi. Si ha la forma:
6.3 Si possono esprimere in tal modo i valori compresi fra 0 e [(M + 1)k-1 - (M + 1) -(k’-1)], con un incremento minimo pari a (M + 1)
-(k’-1)
. I sistemi di rappresentazione visti si
basano tutti su una corrispondenza lineare fra lo spazio numerico e lo spazio degli stati della rete. Altri sistemi basati su corrispondenze non lineari, come il sistema a virgola mobile, non possono essere utilizzati in quanto non conducono ad una funzione
Reti Neurali: modelli e aspetti applicativi: Cap 6 Applicazioni di Reti Neurali
73
energia in forma quadratica rispetto le variabili di stato, come è richiesto per le reti di Hopfield. 6.3 - APPLICAZIONE DEL MODELLO CONTINUO DI HOPFIELD 6.3.1 - CONVERTITORE ANALOGICO/DIGITALE Il modello continuo di rete neurale di Hopfield si presta ad essere utilizzato come convertitore A/D (analogico/digitale).22 Per semplicità di trattazione si considera un convertitore
a 4 bit, il cui schema circuitale è mostrato in
figura
6.1.
Il circuito è costituito da quattro amplificatori (sono richieste solo le uscite invertite) corrispondenti alle unità di calcolo, da una rete di resistenze che connettono le uscite con gli ingressi delle resistenze (feedback), infine un altro insieme di resistenze che collega le unità della rete con l'ingresso x al quale viene applicata la grandezza analogica da convertire. Si assuma che le tensioni di uscita Vi degli amplificatori possano variare da 0 a 1 Volt, inoltre l'ingresso x espresso in Volt corrisponda al valore numerico da convertire. La rete opera correttamente quando il valore x è pari alla parola binaria V3 V2 V1 V0 , cioè si ha:
6.4 La conversione analogica/digitale di x può essere ricondotta alla minimizzazione della forma quadratica:
6.5 Per garantire che i valori delle tensioni di uscita Vi degli amplificatori, alla fine del processo di minimizzazione siano sufficientemente vicini a 0 o 1, in modo da poter essere identificati come livelli logici digitali, bisogna aggiungere ad E il termine seguente:
6.6 Tale termine è minimo per V = 1 o V = 0. L'introduzione del termine 6.6 è necessaria
22
J.J. Hopfield,"Computing with Neural Circuit: A Model",Science,Num.233,1986, pag.625-633.
Reti Neurali: modelli e aspetti applicativi: Cap 6 Applicazioni di Reti Neurali
anche per permettere l'eliminazione dei
termini
diagonali
74
della matrice
delle
connessioni caratteristica delle reti di Hopfield . La funzione energia ottenuta dalla somma dei due termini visti diventa:
6.7 Confrontando tale funzione con l'energia computazionale della rete continua di Hopfield si ottengono per i pesi delle connessioni le seguenti espressioni: 6.8 Nel circuito descritto in figura 6.1 la prima condizione 6.8 si traduce con le connessioni dell'uscita invertita di ogni amplificatore all'ingresso degli altri mediante resistenze di conduttanza 2(i+j) . La seconda condizione 6.8 consiste nel fornire le correnti di ingresso attraverso resistori di conduttanza pari a 2i collegati alla tensione di ingresso x, piĂš altri resistori di conduttanza 2(2i-1) collegati a un potenziale di riferimento di -1 Volt (vedi matrice delle connessioni in figura 6.1).
Reti Neurali: modelli e aspetti applicativi: Cap 6 Applicazioni di Reti Neurali
75 FIGURA 6.1 - In alto si ha un grafico rappresentante la parola digitale V3 V2 V1 V0 computata dal convertitore A/D in funzione dell'ingresso analogico x. In basso si ha lo schema circuitale della rete neurale di Hopfield corrispondente al convertitore A/D. (FONTE IEEE TRANSACTIONS CAS/TANK E HOPFIELD/1986)
Reti Neurali: modelli e aspetti applicativi: Cap 6 Applicazioni di Reti Neurali
76
6.3.2 - SCOMPOSIZIONE DI SEGNALI ANALOGICI Uno dei problemi ricorrenti nei processi di elaborazione dei segnali analogici è quello di riconoscere un segnale avente forma e ampiezza note in presenza di altri segnali. In particolare si consideri il problema della scomposizione di un segnale analogico x(t) 23
dipendente
dal
tempo
ottenuto
dalla combinazione lineare di impulsi di forma
gaussiana nota (vedi figura 6.2). Siano x (i = 1,...,N) i campioni del segnale x(t) presi ai tempi t1 ,t2 ,...,tN , e si assuma
N ≅ 100. L'impulso singolo è descritto dalla
seguente funzione gaussiana:
6.9 in tale funzione il parametro ρ può assumere un numero finito di possibili valori, mentre l'istante di tempo t, in
corrispondenza del quale si ha il valore massimo normalizzato
dell'impulso, coincide con uno degli istanti N fissati. Gli impulsi che costituiscono l'insieme delle funzioni base dello spazio di x(t), sono descritti dagli indici ρ e t e ognuna di esse avrà un coefficiente binario
Vρt
dell'amplificatore i e che rappresenta la presenza di ogni
che corrisponde all'uscita funzione
base
nella
composizione del segnale xi(t). Il valore xi (t) del segnale può essere espresso dalla seguente combinazione lineare di impulsi:
6.10 La funzione che deve essere minimizzata per risolvere il problema di scomposizione e:
6.11
23
David W. Tank, John J. Hopfield, "Simple 'Neural' Optimization Networks: An A/D Converter, Signal Decision Circuit, and a Linear Programming Circuit", IEEE Transactions on Circuits and Systems, Vol. CAS-33, Num. 5, Maggio 1986.
Reti Neurali: modelli e aspetti applicativi: Cap 6 Applicazioni di Reti Neurali
77
La 6.11 ha la forma dell'energia di Hopfield, e in essa il secondo termine è introdotto per annullare gli elementi
diagonali della matrice delle connessioni. A questo punto
possono definire un set di pesi di connessioni e di
si
correnti in ingresso per ogni
amplificatore:
6.12 Il circuito della rete è mostrato in figura 6.2. Il segnale xi entra in parallelo nella rete e produce delle correnti negli ingressi degli amplificatori attraverso le resistenze di ingresso. Al termine del processo di minimizzazione, i valori digitali Vρt delle uscite degli amplificatori indicheranno la presenza o meno del corrispondente impulso nella forma d'onda da scomporre. Il convertitore A/D descritto nel paragrafo precedente può essere visto come un caso particolare del
circuito
generale appena visto.
Nel convertitore A/D il segnale di ingresso è unidimensionale e consiste di un solo valore analogico campionato in un solo punto. Il set di funzioni base è 2n n = 0,...,(n-1). Il vettore binario in uscita dal circuito comprende i coefficienti che descrivono la somma più vicina a x nel set di funzioni base considerato. Si noti che per i due problemi considerati la base non è ortogonale, questo allo scopo di non annullare i termini che definiscono i pesi delle connessioni.
Reti Neurali: modelli e aspetti applicativi: Cap 6 Applicazioni di Reti Neurali
78
FIGURA 6.2 - (A) Andamento temporale di un segnale analogico ottenuto mediante la combinazione lineare di inpulsi di forma gaussiana. (B) Singoli impulsi che compongono il segnale in (A). (C) Schema circuitale della rete neurale di Hopfield per il problema della scomposizione di un segnale analogico. (FONTE IEEE TRANSACTIONS CAS/TANK E HOPFIELD/1986)
Reti Neurali: modelli e aspetti applicativi: Cap 6 Applicazioni di Reti Neurali
79
6.3.3 - IL PROBLEMA DEL COMMESSO VIAGGIATORE (TSP) Un esempio classico di problema di ottimizzazione
è
il
già
citato problema del
commesso viaggiatore o TSP (Traveling Salesman Problem). La formulazione del TSP è molto semplice: siano assegnate n città A, B, C,..., e le distanze dij
fra esse
esistenti , il problema consiste nella determinazione di una sequenza di città da visitare in modo che ogni città venga visitata una sola volta, minimizzando il percorso seguito e ritornando alla città di partenza. Il problema può essere risolto mediante una rete continua di Hopfield. Si associ ad ogni città un numero di unità pari ad n, ciascuna corrispondente ad una delle n posizioni che costituiscono la sequenza di città da visitare. La presenza di una determinata città in i-esima posizione corrisponde ad un valore 1 della tensione di uscita Vi
dell'unità relativa alla città e alla posizione i
considerata. Se il numero delle città è 6 e la città A occupa la seconda posizione nella sequenza finale, la configurazione degli stati delle unità ad essa associata è la seguente A 0 1 0 0 0 0. Per n città la rete deve essere formata da N = n2 neuroni. Lo stato di uscita di queste N unità può essere descritto mediante una matrice quadrata di dimensioni n X n. Riferendosi all'esempio in cui si hanno 5 città la matrice ha la forma seguente:
6.13 In questo caso la sequenza finale soluzione del problema è D ⇒ B ⇒ F ⇒ C ⇒ A ⇒ E , mentre la lunghezza del cammino è ddb + dbf + dfc + dca + dae + ded (vedi figura 6.3). Una matrice che rappresenta una soluzione
corretta
è caratterizzata da un solo
elemento 1 in ogni riga e colonna dato che una città può essere visitata solo una volta, allora le 2N
configurazioni possibili si riducono a un sottoinsieme pari al
numero delle permutazioni delle n righe della matrice n!. Le possibile sequenze inoltre non sono tutte distinte, poiché si considerano coincidenti
sia sequenze del tipo
Reti Neurali: modelli e aspetti applicativi: Cap 6 Applicazioni di Reti Neurali
80
DBFCAE, BFCAED, CAEDBF etc, sia le sequenze DBFCAE e EACFBD, per cui il numero di soluzioni distinte del problema diventa n!/2n. La variabile di uscita Vxi di ogni unità sarà caratterizzata dai due indici x e i il primo indice è relativo alla città, l'altro alla posizione nel percorso. Le soluzioni finali del TSP descritte mediante una rete continua di Hopfield porta alle seguente espressione per l'energia computazionale:
dove α, β, γ, η sono costanti positive per le quali non esiste un criterio definito di scelta. La 6.14 può essere facilmente spiegata: il primo addendo, essendo costituito da termini che rappresentano tutti i possibili prodotti tra due elementi appartenenti ad una riga, è pari a 0 se la riga x contiene un solo elemento pari ad 1; analogamente il secondo termine è pari a 0 solo se la colonna i-esima presenta un solo elemento pari a 1; il terzo addendo, poiché è una forma quadratica della differenza fra la somma di tutti gli elementi della matrice e il numero totale di elementi n, è
0
se la somma è n.
La minimizzazione di questi tre termini di E corrisponde alla scelta di una possibile soluzione del problema. Infine la minimizzazione dell'ultimo addendo individua il percorso più breve. I valori dei pesi delle connessioni e delle correnti esterne sono:
La rete continua di Hopfield costruita per il problema TSP permette di trovare una delle soluzioni possibili, in tempi molto brevi.
Reti Neurali: modelli e aspetti applicativi: Cap 6 Applicazioni di Reti Neurali
81
FIGURA 6.3 - Una figura stilizzata della rete implementate il problema TSP. Ogni neurone e simbolicamente indicato da un quadrato. La soluzione del problema e rappresentata dai quadrati scuri come nella matrice 6.14. Sono indicate anche le connessioni di due differenti neuroni.(FONTE SCIENCE VOL.33/HOPFIELD)
Reti Neurali: modelli e aspetti applicativi: Cap 6 Applicazioni di Reti Neurali
82
6.3.4 - PROGRAMMAZIONE LINEARE Un problema di programmazione lineare consiste nel minimizzare una funzione costo, associata alle variabili in gioco, nel rispetto di un insieme di vincoli sulle variabili. La funzione costo è l'insieme dei vincoli possono essere
6.16 V è un vettore le cui N componenti rappresentano le variabili del problema , A e Dj sono vettori di N dimensioni, i cui elementi costanti
costituiscono
i
coefficienti
delle
variabili, rispettivamente nella funzione costo
e nell'equazione del vincolo, infine B
sono termini costanti. La figura 6.4 mostra una rete di neuroni che può risolvere un problema di programmazione lineare di due variabili con quattro equazioni di vincolo. Il circuito comprende N amplificatori le cui uscite Vi rappresentano il vettore V, M amplificatori di uscita Ψj cui sono associati l'insieme dei vincoli , j indica se è soddisfatta la corrispondente equazione di vincolo. L'uscita normale Vi dell'amplificatore i è connessa all'ingresso dell'amplificatore, cui corrisponde la j-esima equazione di vincolo mediante una resistenza di conduttanza Dji . L'uscita inversa j dell'amplificatore j è connessa all'ingresso dell'amplificatore i con una resistenza
con conduttanza -Dji
.
All'ingresso degli N amplificatori con uscita Vi si ha una corrente ottenuta dalla somma di una corrente esterna proporzionale al coefficiente -A e le correnti fornite dagli altri M amplificatori. La corrente in ingresso agli M amplificatori di uscita Ψj è data dalla somma di una corrente esterna proporzionale a -B
e le correnti fornite dagli N
amplificatori. Gli amplificatori Vi presentano un ingresso collegato a massa mediante un gruppo parallelo costituito da una capacità Ci e una resistenza ρi , hanno inoltre una funzione di attivazione Vi = g(Ui ) non lineare. Gli amplificatori j
hanno
una
funzione di attivazione non lineare definita come: 6.17 nella 6.18 si ha f(z) = 0 per z ≥ 0, f(z) = -z per z < 0. Tale funzione fa assumere una uscita positiva
Ψj.>> 1
all'amplificatore j corrispondente a un'equazione di vincolo
violata. Considerando trascurabile il tempo di risposta degli M amplificatori Ψj rispetto quello degli N amplificatori Vi , le equazioni dinamiche del circuito calcolate per le
Reti Neurali: modelli e aspetti applicativi: Cap 6 Applicazioni di Reti Neurali
83
sole uscite Vi sono:
Si consideri adesso la funzione energia seguente:
6.19 nella 6.20 si ha f(z)= dF(z)/dz. Tank e Hopfield hanno dimostrato che dE/dt â&#x2030;¤0 , e i minimi di E corrispondono a buone soluzioni del problema con funzioni costo e violazioni
ai vincoli minimizzate. Il problema di Hitchcock esposto nel prossimo
paragrafo è un esempio di problema di programmazione lineare.
FIGURA 6.4 Schema circuitale della rete neurale di Hopfield per un problema di programmazione lineare. (FONTE APPLIED OPTICS TAKEDA/GOOD MAN/1986)
Reti Neurali: modelli e aspetti applicativi: Cap 6 Applicazioni di Reti Neurali
84
6.3.5 - IL PROBLEMA DI HITCHCOCK Il problema di ottimizzazione di Hitchcock può
essere risolto mediante la rete
continua di Hopfield. Tale problema viene formulato come segue: vi siano m centri di produzione (X = 1,...,m) per una data merce, sia Sx il quantitativo di
prodotto
disponibile nel centro X, inoltre vi siano n depositi (Y = 1,...,n), ciascuno con una richiesta pari a DY .
Se CXY
è il costo unitario della spedizione dal centro X al
deposito Y, si deve trovare per ogni coppia XY il flusso di merce f
che soddisfa le
richieste è contemporaneamente minimizza il costo totale. La funzione da minimizzare è:
6.20 nel rispetto dei vincoli:
6.21 Nella figura 6.5 sono riportati un esempio di matrice di costo ed un esempio di soluzione in forma di matrice di flusso. La figura 6.5 mostra come può essere descritta la matrice di flusso in termini dei valori di attivazione Vi delle unità della rete neurale. Ogni elemento fXY
di tale matrice viene codificato mediante q neuroni in tal
modo il numero totale di neuroni necessario per rappresentare la matrice di flusso è N= qmn. Lo stato di attivazione di ciascun neurone viene indicato con VXY,i dove gli indici XY si riferiscono all'elemento della matrice di flusso mentre i è un indice sui q neuroni. Utilizzando lo schema di rappresentazione gruppi-pesi l'elemento fXY assume la forma:
6.22
Reti Neurali: modelli e aspetti applicativi: Cap 6 Applicazioni di Reti Neurali
85
Si costruisce adesso la funzione energia E avente forma quadratica rispetto le variabili V:
6.23
dove α, β, γ, η sono dei fattori positivi per i quali non esiste un criterio definito di scelta. Si analizzano in dettaglio i
singoli addendi dell'espressione 6.23: il primo termineè la
somma estesa a tutte le variabili di stato di funzioni del tipo: F(V) = - (1 - 2V)2 (0 ≤ V ≤ 1), le quali assumono valore minimo per V = 0 o V = 1; di conseguenza la minimizzazione di tale termine assicura che la soluzione finale sia data da una rappresentazione binaria; il secondo e terzo termine sono quadratiche che servono a minimizzare le violazioni alle l'ultimo termine
è il quadrato della funzione
costo
che
relazioni si
vuole
espressioni di
vincolo;
minimizzare.
Le soluzioni che minimizzano E non necessariamente comportano il raggiungimento del minimo della funzione costo nel rispetto dei vincoli, comunque la scelta di opportuni fattori α, β, γ e η porta a buone soluzioni che minimizzano E. Con riferimento al problema in esame l'energia può essere scritta nella forma di Hopfield:
Reti Neurali: modelli e aspetti applicativi: Cap 6 Applicazioni di Reti Neurali
86
6.24 in questa espressione
è il peso della connessione
tra il neurone in posizione [(k-1)M+i] nell'elemento XY e il neurone in posizione [(k'-1)M+i'] nell'elemento X'Y'. Uguagliando i corrispondenti coefficienti nelle due funzioni, si determinano i pesi delle connessioni e le correnti di alimentazione di ogni singolo neurone come segue:
6.25
δxx è il delta di Kroneker.
Reti Neurali: modelli e aspetti applicativi: Cap 6 Applicazioni di Reti Neurali
87
FIGURA 6.5 - In alto schema di un problema di Hitchcock con 4 centri di produzione e 6 depositi. TABELLA I (A) Matrice di costo per il problema di Hitchcock (B) Semplice soluzione rappresentante il flusso dalla sorgente X al deposito Y. TABELLA_II Rappresentazione neurale della matrice di flusso del problema di Hitchcock, q neuroni sono utilizzati per rappresentare un elemento della matrice di flusso. (FONTE APPLIED OPTICS TAKEDA/GOODMAN/1986)
Reti Neurali: modelli e aspetti applicativi: Cap 6 Applicazioni di Reti Neurali
88
6.3.6 - SISTEMA DI EQUAZIONI LINEARI Si consideri un sistema di equazioni lineari: H x = y dove H è una matrice quadrata di dimensioni N x N, ed x e y sono due vettori di N
componenti
rappresentanti
rispettivamente le incognite e i termini noti. Per utilizzare il processo di minimizzazione di energia delle reti continue di Hopfield riformuliamo il problema introducendo una funzione energia che include il termine || y - Hx || . La componente n del vettore delle variabili incognite, secondo la rappresentazione descritta nel paragrafo 6.2 e:
6.26 Sostituendo la 6.26 in un'espressione di energia si ottiene:
6.27 Nella 6.27 il primo è un termine di minimizzazione binaria analogo al primo termine della 6.24. La 6.27 può essere riportata nella forma dell'energia di Hopfield trovando cosi le espressioni dei pesi e delle correnti in input.
Reti Neurali: modelli e aspetti applicativi: Cap 6 Applicazioni di Reti Neurali
89
6.4 - COMPLESSITÀ' COMPUTAZIONALE DI UNA RETE NEURALE
I risultati delle simulazioni effettuate da Tank, Hopfield, Takeda e Goodman con riferimento ai problemi trattati non hanno permesso di trovare alcuna relazione tra il tempo di elaborazione, le dimensioni del problema e l'apprendimento. Considerando che problemi con
l'algoritmo utilizzato per
un numero maggiore di variabili
comportano l'introduzione di ulteriori unità di elaborazione si pensa che il tempo di elaborazione richiesto non cresca
rapidamente
con
le dimensioni del problema.
La complessità computazionale nei calcolatori digitali è definita come il numero di operazioni
aritmetiche richieste per risolvere un dato problema (si
indica con
O(f(N)) dove N sono le dimensioni del problema e f(N) è una funzione di N). Analizzando come essa cresce con l'aumentare delle dimensioni N del problema si può misurare l'efficienza di un algoritmo. Algoritmi con tempi di esecuzione crescenti in maniera esponenziale con N hanno un uso molto limitato nei calcoli convenzionali. I metodi euristici utilizzati ad esempio per risolvere il problema TSP hanno una complessità computazionale di tipo esponenziale o addirittura fattoriale e non è noto alcun metodo che limiti tale complessità a una potenza di N. Analogamente alla complessità computazionale , per una rete neurale è possibile definire il concetto di complessità di programmazione. La complessità di programmazione di una rete neurale è il numero di operazioni aritmetiche richieste per determinare i corretti pesi delle connessioni e le correnti esterne di alimentazione per il problema da risolvere. In una rete neurale la fase di programmazione (apprendimento) è la fase di immissione dati non sono distinte ma sono legate entrambe alla determinazione dei pesi e delle correnti esterne, per cui immettendo nuovi dati si deve procedere a un ricalcolo dei pesi e delle correnti. Risulta quindi che la complessità di programmazione di una rete è un indice dell'efficienza computazionale della rete. Un confronto tra la complessità computazionale e quella di programmazione riferita a un particolare problema può mostrare importanti aspetti del calcolo neurale. Si consideri il problema della risoluzione di equazioni lineari con N incognite del sottoparagrafo 6.3.6. Si è visto che sono richiesti qN neuroni, q e il numero di neuroni richiesto per rappresentare ogni variabile incognita con lo schema gruppi-pesi ed e indipendente da N.
Il numero delle interconnessioni è dato da:
(1/2)qN(qN +1) ≅ O(N2), mentre il numero di correnti è qN ; O(N). La complessità di
Reti Neurali: modelli e aspetti applicativi: Cap 6 Applicazioni di Reti Neurali
90
programmazione risulta O(N3 ) poiché necessitano N operazioni per determinare ogni peso e ogni corrente. A. V. Aho24 ed altri hanno mostrato che
la complessità
computazionale dello stesso problema è O(N ), per cui in questo caso la complessità di programmazione coincide con la complessità computazionale. Nel problema TSP la complessità computazionale è O(N!), dove N è il numero delle città, risolvendo lo stesso problema con la rete continua di Hopfield si può dimostrare che la complessità di programmazione è O(N ). Si ha che il numero di pesi da determinare è N mentre le correnti sono N, per cui dato che il numero di operazioni per determinare i pesi e le correnti e N, risulta che O(N3 ). Il problema di Hitchcock fornisce un buon esempio di come la complessità di programmazione dipenda dall'algoritmo usato. Nel problema di Hitchcock con
m sorgenti e n depositi occorrono qmn neuroni. Il numero di
interconnessioni è allora: (1/2)qmn(qmn + 1) ≅O(m2 n2 ), le correnti sono: qmn; O(mn). Il calcolo di ogni peso e di ogni corrente richiede un numero costante di operazioni per cui la complessità di programmazione è O(m2 n2 ) = O(n4 ) per m
≅
n.
Considerando la funzione energia 6.24 si ha che l'ultimo termine corrispondente alla minimizzazione del flusso di costo totale è sempre positivo. Definendo l'energia senza elevare al quadrato l'ultimo termine della 6.24 si ottengono dei pesi non dipendenti dai termini CXY correnti
in tal modo la complessità di programmazione dipende solo dalle
esterne ed è O(mn) ≅ O(n2 ) per m ≅ n. Attualmente non è noto quale sia
l'algoritmo che fornisce la minore complessità computazionale per il problema di Hitchcock.
24
A.V.Aho, J.E. Hopcrroft e J.D. Ullman, The Design and Analysis of Computer Algorithms, Addison-Wesley 1974.
Reti Neurali: modelli e aspetti applicativi: Cap 6 Applicazioni di Reti Neurali
91
6.5 - APPLICAZIONE DI PERCEPTRONI MULTISTRATO CON REGOLA BACK-PROPAGATION: RETE NETTALK Un'applicazione molto interessante dei sistemi neurali è la rete NETtalk 25 di Sejnowsky e Rosemberg , una macchina che impara a leggere in inglese partendo da esempi che le vengono presentati durante la fase di apprendimento. NETtalk traduce il testo presentato in ingresso in fonemi, un fonema è una rappresentazione simbolica del suono della singola lettera, i quali vengono trasformati in suono da un sintetizzatore vocale. NETtalk è essenzialmente un
perceptrone
multistrato
che utilizza la
regola
di
apprendimento back-propagation. Gli strati della rete sono tre e comprendono, oltre a due strati di ingresso e di uscita, uno strato di unità nascoste. La funzione di attivazione della rete è mostrata in figura 6.6 ed è espressa da:
6.28
Lo strato di ingresso consiste di 7 gruppi di 29 unità, ogni gruppo codifica una lettera del testo in input, il quale viene presentato sette lettere alla volta (203 unità di ingresso). Il numero delle unità nascoste varia da simulazione a simulazione, in generale si sono usate 90 unità. L'uscita voluta dalla rete è un fonema oppure un suono associato alla lettera centrale della stringa in ingresso. Le altre sei lettere determinano un parziale contesto per la pronuncia esatta della lettera. Lo schema rappresentativo delle lettere e dei fonemi è diverso. La lettera e rappresentata localmente entro ogni gruppo di unità in ingresso, che risulta costituito da 26 unità corrispondenti al numero delle lettere, più 3
unità
che
I 54 fonemi in uscita
rappresentano
la
punteggiatura e i confini della parola.
consistono in 23 caratteristiche di pronuncia
più
3
legate
all'accento. Un fonema è rappresentato dall'attivazione simultanea di più unità di uscita secondo lo schema binario. L'apprendimento della rete consiste in una vera e propria
25
Terrence J. Sejnowsky e Charles R. Rosemberg, "NETtalk: a parallel network that learns to read aloud", The Johns Hopkins University EECS Technical Report 186/01.
Reti Neurali: modelli e aspetti applicativi: Cap 6 Applicazioni di Reti Neurali
92
lettura di un testo inglese, nel caso di NETtalk è stato presentato alla rete un testo di 20012 parole. Durante la lettura viene applicata alla rete la regola back-propagation che consente il settaggio delle connessioni della rete. La rete viene inizialmente settata con pesi casuali distribuiti uniformemente nell'intervallo ± 0.3. Alla fine della fase di apprendimento le prestazioni della rete sono state testate con un vocabolario di 1000 parole prese a caso dal testo imparato. Sejnowsky e Rosemberg hanno studiato la variazione delle prestazioni con diversi numeri di unità nascoste. La fig. 6.6 mostra che i migliori risultati si ottengono con 120 unità nascoste (98% di pronunzie esatte sui fonemi presentati). Si nota anche che l'aumento delle unità nascoste porta ad un miglioramento della velocità di apprendimento.
Reti Neurali: modelli e aspetti applicativi: Cap 6 Applicazioni di Reti Neurali
93 FIGURA 6.6 - In alto si ha lo schema della rete NETtalk, in basso un grafico rappresentante le prestazioni della rete. Le diverse curve si riferiscono alle prestazioni di reti con 120, 60, 30, 15, 0 unitĂ nascoste. In ordinata si ha la percentuale di errori, in ascissa il numero di parole che la rete inpara. Si noti che i migliori risultati si hanno con 120 unitĂ nascoste, e che le performance della rete crescono col numero delle parole imparate. (FONTE SEJNOWSKY)
Reti Neurali: modelli e aspetti applicativi: Cap 7 MA basate sul MDH e nuovi algoritmi di memorizzazione
94
7. - MEMORIE ASSOCIATIVE BASATE SUL MODELLO DISCRETO DI HOPFIELD E NUOVI ALGORITMI DI MEMORIZZAZIONE 7.1 - INTRODUZIONE
Nei capitoli precedenti (rif. par. 4.4) si è già vista la possibilità di utilizzare il modello discreto di Hopfield per il progetto di memorie associative o memorie a contenuto indirizzabile (C.A.M.). In regole di apprendimento,
questo
capitolo,
dopo
un approfondimento su nuove
sono presentati i risultati di simulazioni software di
memorie associative basate sul modello discreto di Hopfield. Sono stati utilizzati due distinti algoritmi di memorizzazione, inizialmente la regola di Hebb, successivamente si è utilizzata la regola di apprendimento di S.H. Oh. . Le prove fatte evidenziano le caratteristiche e i limiti di memorie associative implementate col modello discreto di Hopfield. Inoltre risaltano i vantaggi di utilizzo della regola di Oh.
Reti Neurali: modelli e aspetti applicativi: Cap 7 MA basate sul MDH e nuovi algoritmi di memorizzazione
95
7.2 - PROBLEMI ALEATORI E MEMORIE ASSOCIATIVE
I problemi come il riconoscimento di forme appartengono alla classe dei problemi aleatori e non si prestano, per loro natura, a una soluzione algoritmica semplice. Il termine aleatorio indica la impossibilita di definire il problema in maniera concisa e completa. L’aleatorietà del problema è legata alla quantità di informazione richiesta per definirlo e all'altissimo numero di soluzioni Shannon
come
possibili.
Dalla definizione
di
entropia
di
misura dell'informazione contenuta in un messaggio si può affermare
che un problema aleatorio ha un alto grado di entropia rispetto un problema strutturato. Per poter risolvere problemi aleatori, oltre ai metodi euristici, già menzionati, si potrebbero memorizzare tutte le soluzioni possibili e dopo utilizzare dei metodi per associare direttamente i dati in ingresso con le informazioni immagazzinate, senza bisogno di un'esatta corrispondenza. Nelle memorie convenzionali i dati memorizzati sono accessibili mediante degli indirizzi e informazioni parziali sono insufficienti per richiamare i dati. Le memorie biologiche sembrano essere di differente natura. L'intero set di caratteristiche connesso a un concetto memorizzato può essere ricavato da un set parziale di informazioni, mediante dei processi associativi. A questi processi di associazione si ispira il progetto di memorie associative costruite
mediante
reti
neurali. Diversi studiosi26 hanno mostrato la possibilità di utilizzare memorie associative per problemi di riconoscimento (vedi figura 7.1a).
26
K. Nakano, "Associatron- A Model of Associative Memory", IEEE Transactions on Systems, Man, and Cybernetics, Vol. SMC-2, Num. 3, Luglio 1972.
Reti Neurali: modelli e aspetti applicativi: Cap 7 MA basate sul MDH e nuovi algoritmi di memorizzazione
96
FIGURA 7.1a - In alto vi è l’immagine memorizzatadi una T, sotto le immagini di partenza corrotte da cui si può risalire all’immagine iniziale in memoria. In basso c’e un esempio di ricostruzione di un'immagine di un volto (c) da un input parziale (b) realizzato mediante una memoria associativa. L'immagine memorizzata e la (c)
Reti Neurali: modelli e aspetti applicativi: Cap 7 MA basate sul MDH e nuovi algoritmi di memorizzazione
97
7.3 - CONSIDERAZIONI SUL MODELLO DISCRETO DI HOPFIELD
Si approfondisce adesso l'analisi del modello discreto di Hopfield . E' già noto il modo in cui il modello può essere utilizzato come memoria associativa: dato un set di M vettori Vis binari (0,1) i = 1,..,N s = 1,..,M, essi vengono memorizzati in una matrice T in accordo alla regola di Hebb seguente:
7.1 Il termine
Mδij
permette di rendere nulli i
La memoria può essere
termini diagonali (Tij = 0).
indirizzata moltiplicando la matrice T per uno dei vettore di
memorizzati ad esempio Vis’ , l'elemento Vis’ V in uscita risulta:
7.2 il valore medio del termine tra parentesi quadre è (N-1)/2 per s=s' mentre è nullo se s≠s' per cui estraendo il termine s'-esimo dalla sommatoria con indice s si ha:
7.3 consiste nella somma di due termini: il primo è il vettore in ingresso amplificato dal termine (N - 1)/2, ed è positivo per Vis’ = 1 negativo se Vis’ = 0, il secondo è una combinazione lineare dei rimanenti
vettori
memorizzati
rappresenta un termine di
rumore casuale. Il valore medio del secondo termine è nullo per s≠s', ma può contribuire ugualmente a Vis’ con un rumore dato dalla deviazione standard della somma di M-1
Reti Neurali: modelli e aspetti applicativi: Cap 7 MA basate sul MDH e nuovi algoritmi di memorizzazione
98
coefficienti à random:
7.4 se N è sufficientemente più grande di M allora Vis’ è approssimativamente un autovettore della matrice T, inoltre il rumore è approssimativamente gaussiano e la probabilità di errore su un singolo bit e:
per M = 10 e N = 100 si ha P = 0.0091. Per quanto visto si ha un'alta probabilità che l'elemento in uscita
sia positivo
se il corrispondente elemento in ingresso Vis’
memorizzato e +1 e 0 altrimenti. Utilizzando la funzione di attivazione a
soglia
otteniamo il valore Vis’ memorizzato. La grandezza del termine di rumore nella 7.3 cresce col numero M di vettori memorizzati e con l'ammontare della correlazione tra i vettori memorizzati (la correlazione e proporzionale al numero di bit uguali tra due vettori). Se i vettori sono ortogonali il rumore si annulla e i vettori Vs sono esattamente autovettori della matrice T. Per quanto detto il numero M di vettori memorizzabili in una matrice T di N dimensioni e limitato ad una frazione di N. Hopfield ha stimato Mmax ≅ 0.15N,(M e il numero massimo di vettori memorizzabili), nelle simulazioni fatte dall'autore del presente lavoro si sono ottenute buone prestazioni delle memorie con M ≅ 0.1N. Recentemente Farhat e Psaltis hanno indicato un limite teorico uguale a M ≅ N/(4*ln(N)).
Reti Neurali: modelli e aspetti applicativi: Cap 7 MA basate sul MDH e nuovi algoritmi di memorizzazione
99
7.4 - NUOVI ALGORITMI DI MEMORIZZAZIONE
E' importante notare che quasi tutti i dati contenuti in una memoria tendono ad essere molto correlati (ad esempio i nomi di un archivio). Per tale motivo è utile definire nuovi algoritmi di memorizzazione27 che superano i limiti derivanti dalla correlazione dei dati da memorizzare. In
questo paragrafo si accenna a tre nuove regole di
apprendimento utilizzate come algoritmi di memorizzazione in memorie associative. Tali regole consistono in una modifica della originale regola di Hebb, e in condizioni particolari si riducono in essa. Per esprimere tali regole in una forma più
concisa
definiamo la regola di Hebb in forma incrementale:
7.5 Nella 7.5 TijAB denota una matrice T nella quale sono stati memorizzati i vettori A e B, l'insieme delle Vic sono le componenti del nuovo vettore C da memorizzare. Il primo algoritmo è noto come "Adaline learning rule", ed è dato da:
7.6 ||
AB
Il termine: V i è una misura della correlazione tra la matrice T
e il vettore Vc che si
sta memorizzando. Se Vc è ortogonale a tutti i vettori memorizzati precedentemente nella matrice TAB
allora il termine V|| i si annulla e la 7.6 si riduce alla regola di Hebb.
La 7.6 espressa nella stessa forma della 7.1 diventa:
7.7 nella 7.7 il termine T'ij consiste nella stessa sommatoria 7.7 calcolata da s = 1 a s = M-1. La regola espressa dalle 7.6 e 7.7 ha tutte le caratteristiche della regola di Hebb anche se la matrice T risultante non è simmetrica. Benché l'accuratezza con cui un dato vettore è memorizzato dipende
27
dall'ordine di presentazione alla memoria la regola Adaline,
J.S. Denker, "Neural network models of learning and adaptation", Physica Vol.2D (1986), pag 216-232.
Reti Neurali: modelli e aspetti applicativi: Cap 7 MA basate sul MDH e nuovi algoritmi di memorizzazione 100
applicata a memorie associative, da buoni risultati. La regola di apprendimento che segue adesso è detta regola geometrica:
7.8 La regola 7.8 ricorda l'algoritmo di Gram-Schmidt per ortonormalizzare un insieme di vettori e ha una semplice interpretazione geometrica: V|| è la proiezione di Vc nello spazio costruito mediante i vettori precedentemente memorizzati nella matrice TAB , è la proiezione di Vc nello spazio nullo di T . I vettori
e
sono normali a tutti
gli altri vettori memorizzati. La regola geometrica risolve essenzialmente tutti i problemi legati alla correlazione tra i vettori, ognuno dei vettori memorizzati è esattamente un autovettore di T con autovalore N-1. Le memorie associative implementate con queste nuove regole sono spesso chiamate memorie eteroassociative. In tali dispositivi, come si è visto, non viene memorizzato direttamente il vettore, ma una sua rappresentazione ortogonale rispetto gli altri vettori memorizzati.
FIGURA 7.1b Raffigurazione di una memoria eteroassociativa, si noti la reppresentazione ortogonale del pattern memorizzato (a) e il richiamo del pattern da un input alterato.
Reti Neurali: modelli e aspetti applicativi: Cap 7 MA basate sul MDH e nuovi algoritmi di memorizzazione 101
7.5 - ALGORITMO DI MEMORIZZAZIONE DI S.H. OH
La regola di Hebb richiede che ogni vettore memorizzato abbia approssimativamente lo stesso numero di bit a zero e ad uno, definendo con S01 lo sbilancio tra i bit diversi, deve essere
S01 ≅ N/2 , dove N e la dimensione dei vettori memorizzati. Se S01 è
sufficientemente diverso cresce il valore del
termine rumore della 7.3 e la memoria
associativa non riesce a funzionare adeguatamente. In questo
paragrafo
viene
descritto un nuovo algoritmo di memorizzazione, proposto recentemente da S.H. Oh,28 che permette di superare il limite prima presentato. Nel paragrafo 7.3, implementando il modello di Hopfield, si e assunto che il valore della soglia Si di attivazione del neurone sia nulla. In generale la scelta di Si dipende dai vettori memorizzati Vs , ad esempio la scelta Si = 0 e valida con l'assunzione S01 ≅ N/2. Quando Si
e diverso in ogni Vs ,si
nota che il vettore con il più alto numero di uno presenta una forte tendenza ad essere stato attrattore (tale caratteristica sarà mostrata nella prima simulazione di pag. A.1). Inoltre in casi in cui uno o più vettori hanno un bassissimo numero di bit uno, tali vettori possono risultare non richiamabili dalla memoria (vedi seconda simulazione a pag A.3). L'algoritmo di memorizzazione di S.H. Oh consiste in una semplice modifica della regola di Hebb. Si supponga di volere memorizzare il vettore Vs , Oh propone di memorizzare un vettore V’s di dimensioni 2N che è formato dalle componenti del vettore Vs più le componenti del vettore complemento, si ha:
7.9 Tale vettore è memorizzato in una matrice T' mediante la seguente espressione:
7.10 Lo stato successivo del neurone è definito da:
7.11
28
con
7.12
Sang-Hoon Oh, Tae-Hoon Yoon e Jae-Chang Kim, "Associative memory model based on neural networks: modification of Hopfield model", Optics Letters, Vol.13, Num.1, Gen. 1988.
Reti Neurali: modelli e aspetti applicativi: Cap 7 MA basate sul MDH e nuovi algoritmi di memorizzazione 102
In questo modo il numero di bit a uno sarà sempre uguale al numero degli zeri, quindi l'applicazione di tale algoritmo al modello di Hopfield risolve il problema dello sbilancio dei bit. Si noti che l'algoritmo di Oh può essere applicato senza costruire una memoria di dimensioni 2N, infatti si può facilmente verificare che per un vettore nel quale le ultime N componenti sono il complemento delle prime N si ha:
7.13 Tij è l'elemento della matrice T definita dalla 7.1. Utilizzando le 7.13 la 7.12 può essere riscritta come:
7.14 Dalla 7.14 si nota che
è espresso utilizzando solamente gli elementi Tij della matrice
T e lo stato attuale ViS . La 7.14 mostra che il prossimo stato elementi
corrisponde agli
indice 1 ó i ó N. Si ha allora la seguente funzione di attivazione:
con
7.15
Nella funzione di attivazione 7.15 lo stato successivo di ogni neurone i dipende sia dal proprio stato attuale, sia dallo stato corrente degli altri neuroni. L'algoritmo di memorizzazione esposto, risolvendo il problema dello sbilancio dei bit dei vettori memorizzati, permette di incrementare il numero M di vettori memorizzabili in una matrice di N neuroni. Tale miglioramento di prestazioni è evidenziato nelle simulazioni descritte più avanti.
Reti Neurali: modelli e aspetti applicativi: Cap 7 MA basate sul MDH e nuovi algoritmi di memorizzazione 103
7.6 - SIMULAZIONI AL CALCOLATORE DI MEMORIE ASSOCIATIVE
In questo paragrafo sono descritte e commentate le simulazioni di memorie associative fatte
al
calcolatore.
I risultati di tali simulazioni sono
raccolti
nelle
figure
nell'appendice A. Segue adesso una descrizione generale, valida per tutti le prove effettuate del significato di tali figure. Dopo avere mostrato in una figura iniziale i vettori memorizzati Vs (s = 1,..M) (compresi i vettori complemento, la distanza di Hamming tra tali M vettori e la matrice delle connessioni ), seguono delle tabelle che si riferiscono a diversi test sulla memoria. Il test al quale si riferisce è indicato in alto alla tabella. Generalmente i test effettuati consistono nel presentare alla memoria un vettore di ingresso Us (s = 1,..,M) corrispondente al vettore memorizzato Vs è alterato in vari modi. Nei test 1A e 1B la modifica di Us consiste nel far crescere la distanza di Hamming H tra esso e il vettore memorizzato Vs . Nel test 1A la distanza H viene modificata invertendo successivamente gli stati di 1,2,..
fino al bit N-esimo del vettore Us . Nel test 1B
vengono posti a 0 tutti i bit di Us da una certa posizione fino alla N. Le tabelle dei test 1A e 1B sono molto simili, differisce solo la prima colonna, che nel test 1A corrisponde alla distanza di Hamming H0 crescente, mentre nel test 1B H0 è il numero di bit posti a 0 a partire dal bit N-esimo. Le colonne Vf, I, H successive rappresentano rispettivamente l'indice del vettore memorizzato finale raggiunto, il numero di iterazioni effettuate e la distanza di Hamming tra Vf e il vettore in ingresso Us iniziale. Analizzando la distanza di Hamming H si ha che H=0 se Vf corrisponde al vettore Vs ricercato, mentre se H = N
Vf è il complemento del vettore Vs . Si noti che se l'indice
del vettore finale è negativo, Vf
corrisponde al complemento di uno dei Vs vettori
memorizzati. Se l'indice di Vf è nullo, dall'analisi del numero di iterazioni I si deduce uno dei due casi seguenti:
Imax è un numero massimo di iterazioni consentite ed è scelto in modo da ottimizzare la ricerca degli stati oscillatori. Il secondo test consiste nell'immissione di una percentuale crescente di rumore sul vettore di ingresso Us . La prima colonna della tabella indica la percentuale di rumore introdotta, le altre colonne e la tabella riassuntiva finale hanno il significato visto nel test 1A e 1B. Nel terzo test, utilizzato solo nella prima
Reti Neurali: modelli e aspetti applicativi: Cap 7 MA basate sul MDH e nuovi algoritmi di memorizzazione 104
simulazione vengono presentati ad una rete di 16 neuroni tutti i 2 vengono conteggiati i risultati. Le
prestazioni
di una memoria
vettori possibili, e associativa
sono
sintetizzate dall'analisi delle variazioni dei seguenti elementi:
• percentuali di successi nei richiami • numero attrazioni indotte • numero stati oscillatori • numero stati metastabili
in funzione di condizioni iniziali come:
• numero M dei vettori memorizzati. • algoritmo di memorizzazione utilizzato • codice rappresentativo dei dati
In basso alle tabelle sono sintetizzati i risultati dei test. Le varie righe, che si riferiscono ai vettori memorizzati totalizzano per ogni vettore la percentuale di successi dei richiami, il numero di stati oscillatori e il numero di attrazioni indotte sui vettori di ingresso non corrispondenti (ad esempio il vettore V1 può attrarre il vettore ingresso U2 costruito dal vettore memorizzato V2 invertendo un certo numero di bit). Le simulazioni effettuate sono: 1. - HOP16211, HOP16221, HOP16311, HOP16321 2. - HOP20211, HOP20221, HOP20311, HOP20321 3. - HOP3231, HOP3232, HOP3241, HOP3242, HOP3251, HOP3252 4. - PARE64412, PARE64411, PARE64422, PARE64421, PARE64522, PARE64521, PARE128422, PARE128421, PARE128522, PARE128521 5 - HOP120221, HOP120321, HOP128621
Le simulazioni sono basate su diversi set di dati. I primi 5 set sono vettori di 16, 20, 32, 64 e 128 bit utilizzati rispettivamente nelle simulazioni 1, 2, 3 e 4. Gli ultimi due set di dati di 120 e 128 bit sono impiegati nella simulazione 5. Nelle routine base dei programmi utilizzati il termine del ciclo delle iterazioni è stabilito dalle seguenti condizioni: 1. il vettore in uscita è uguale a quello in ingresso. 2. il numero delle iterazioni supera un numero massimo di iterazioni prefissato I . Segue adesso un breve commento ad ogni simulazione.
Reti Neurali: modelli e aspetti applicativi: Cap 7 MA basate sul MDH e nuovi algoritmi di memorizzazione 105
7.6.1 - SIMULAZIONE 1 Nelle prove della prima simulazione (pag. A.1-A.2) si è utilizzato un set di 3 vettori di 16 bit e si sono misurare le prestazioni della memoria, presentando in ingresso tutti i 2 vettori possibili. Si sono utilizzate sia
la
regola
di Hebb, sia la regola di Oh,
memorizzando prima 2 vettori e successivamente 3 vettori. Il terzo test mostra i risultati: nelle prove HOP16311 e HOP16211, fatte con la regola di Hebb, il vettore 8768 caratterizzato da una bassa percentuale di 0 è completamente irrecuperabile e si ha la presenza di 4 stati
attrattori metastabili 577, 3478, 53388
e
56766
nella
prova
HOP16211 e uno stato metastabile 48283 nella prova HOP16311; lo stesso vettore 8768 risulta perfettamente
richiamabile insieme a tutti i vettori normali e
complemento
memorizzati nelle prove HOP16312 e HOP16212, nelle quali è applicata la regola di Oh.
7.6.2 - SIMULAZIONE 2 Nelle prove HOP20221, HOP20211,
HOP20321
e
HOP20311
della
seconda
simulazione, si applicano rispettivamente la regola di apprendimento di Hebb e la regola di Oh e si è utilizzato lo stesso set di vettori di 20 bit . Nelle prove HOP20221 e HOP20211 si sono memorizzati 2 vettori, mentre nelle altre due si sono memorizzati 3 vettori. Tali vettori sono caratterizzati da una distanza di Hamming media uguale a 10 e da una bassa percentuale di uno (25%). Le prove HOP20221 e HOP20211 mostrano il buon funzionamento della regola di Hebb, al
contrario
le
prove
HOP20321
e
HOP20311 indicano la impossibilita di richiamare tali vettori con la stessa regola. I test 1A e 1B delle prove HOP20321 e HOP20311 mostrano un netto miglioramento delle prestazioni della memoria applicando la regola di Oh come algoritmo
di
memorizzazione. La Fig. A.6 (riferentesi alle prove HOP20321 e HOP20311) è un esempio
di
richiamo
di
un
vettore
memorizzato con le diverse regole di
apprendimento. La regola di Hebb porta al richiamo di uno stato metastabile, la regola di Oh permette di richiamare il vettore memorizzato con la più bassa distanza di Hamming dal vettore di ingresso.
Reti Neurali: modelli e aspetti applicativi: Cap 7 MA basate sul MDH e nuovi algoritmi di memorizzazione 106
7.6.3 - SIMULAZIONE 3 La terza simulazione evidenzia il degrado di prestazioni di una memoria associativa al crescere del numero M di vettori memorizzati, e mostra che l'impiego della regola di Oh consente di memorizzare più vettori rispetto la regola di Hebb. Nella varie prove si sono memorizzati progressivamente un numero M ( M = 3,4,5 ) crescente di vettori di 32 bit. I vari test dimostrano che al crescere di M, la memoria aumenta il numero degli errori nei richiami utilizzando la regola di Hebb. La regola di Oh permette di avere una bassa percentuale di errori della memoria anche con vettori memorizzati. Il massimo numero di vettori memorizzabili mediante il modello utilizzato era stato fissato da Hopfield ad una frazione di N
(N < 100) corrispondente a 0.15N. Le prove fatte mostrano che tale
limite è raggiungibile a condizione che i vettori memorizzati siano abbastanza diversi, cioè siano poco correlati, e abbiano uno basso sbilancio S01 tra bit a zero e bit a uno. Se tali condizioni non sono soddisfatte la saturazione della memoria si presenta prima del limite visto. Con riferimento alla figura A.8, che mostra le matrici di connessione costruite per M crescente, si è notato che un indice della saturazione della memoria è la percentuale di zeri della matrice di connessione. Il numero ottimale di vettori memorizzati sembra corrispondere ad una matrice di connessioni con una alta percentuale di zeri (si veda la matrice corrispondente a M=4 di Fig. A.8). Una percentuale uguale a 1/N, per una matrice N-dimensionale,
indica
una
scarsa
utilizzazione della memoria oppure una saturazione della stessa (matrici con M=3 e M=5 di Fig. A.8). Il numero ottimale di vettori memorizzati può essere incrementato almeno di un'unità con l'utilizzo della regola di Oh. 7.6.4 - SIMULAZIONE 4 Le prove di tale simulazione si riferiscono ad una applicazione del modello discreto di Hopfield ad un problema di classificazione di forme. Si sono utilizzati 2 set di immagini corrispondenti
ad
una
matrice
quadrata rispettivamente di 64 e 128 bit.
In tutti i casi è stato necessario adottare la regola di Oh poiché la regola di Hebb non forniva buoni risultati. Le Fig. da A.15 a A.24 mostrano la fase operativa di recupero informazioni da un input parziale o disturbato. Nel casi esaminati si è visto che la saturazione della memoria si ha con M=5 per N=64 e M=6 per N=128.
Reti Neurali: modelli e aspetti applicativi: Cap 7 MA basate sul MDH e nuovi algoritmi di memorizzazione 107
7.6.5 - SIMULAZIONE 5 Quest'ultima simulazione (da pag. A.25) indica l'importanza del codice utilizzato per la rappresentazione di
dati
alfanumerici memorizzati. Nella prova HOP120221 e
HOP120321 si è utilizzato un codice binario a 5 bit per le 27 lettere impiegate. Tale codice permette di memorizzare stringhe di 24 lettere in una memoria associativa di
120
neuroni. Lo svantaggio di tale codice è dato da un bassissimo numero di
stringhe memorizzabili perché il suo utilizzo comporta un alto grado di correlazione per le stringhe da codificare, si noti infatti la bassa distanza di Hamming media (H ) tra le stringhe memorizzate. Nella prova HOP120321 le tre stringhe memorizzate
sono
completamente non richiamabili anche mediante la regola di Oh. Tale limite deriva dal fatto che le stringhe memorizzate mediante il codice a 5 bit sono molto correlate. Questo limite di utilizzo è intrinseco nel modello di Hopfield e non può essere superato con la regola di Oh. Una soluzione è di mantenere la media delle distanze di Hamming H uguale circa a N/2. Il codice binario a 8 bit utilizzato nella prova HOP128621 permette di
aumentare notevolmente il numero di vettori memorizzabili.
Nell'esempio vengono memorizzate 6 stringhe di 16 lettere con buone prestazioni della memoria.
Reti Neurali: modelli e aspetti applicativi: Cap 7 MA basate sul MDH e nuovi algoritmi di memorizzazione 108
7.7 - MEMORIE OTTICHE ASSOCIATIVE
Accenniamo brevemente all'utilizzo della tecnologia ottica per costruire memorie associative basate sul modello di Hopfield. Diversi ricercatori2930 hanno già realizzato memorie associative ottiche
. Una memoria associativa ottica è costituita da tre
componenti principali. Il primo è una matrice bidimensionale di elementi ottici di commutazione, che cambiano stato in funzione degli stati degli elementi a cui sono connessi, ogni elemento della matrice può essere connesso a tutti gli altri mediante fasci di luce. Il secondo è un ologramma che definisce i collegamenti variabili tra i vari elementi. Il terzo elemento è un rivelatore dell'immagine in uscita. Il dispositivo comprende anche un sistema di feedback, per riproporre in ingresso alla memoria l'immagine ottenuta in uscita. Si pensi che un ologramma del volume di un centimetro cubo può specificare le connessioni tra un milione di
elementi
commutazione.
informazioni
La
possibilità
di
immagazzinare
le
ottici
di nelle
interconnessioni di un ologramma tridimensionale permette di costruire dispositivi con un enorme memoria potenziale. Nel caso di memorie associative utilizzate per il riconoscimento di forme lo schema di connessione consiste in un ologramma di tutte le immagini da identificare (Vedi fig 7.2).
29
J. Jang ed altri, "Optical implementation of the Hopfield model for two dimensional associative memory", Optics Letters, Vol. 13, Num. 3, Marzo 1988. 30 N. H. Farthat, D. Psaltis, A. Prata e E. Paek, "Optical implementation of the Hopfield Model", Applied Optics, Vol. 24, Num.10, 15 Maggio 1985.
Reti Neurali: modelli e aspetti applicativi: Cap 7 MA basate sul MDH e nuovi algoritmi di memorizzazione 109
FIGURA 7.2 - Modello di memoria ottica associativa
Reti Neurali: modelli e aspetti applicativi: Cap 7 MA basate sul MDH e nuovi algoritmi di memorizzazione 110
7.8 - CONCLUSIONI
Attualmente non si intravede la possibilità di costruire un sistema neurale adattabile a qualsiasi problema, cioè una sistema neurale non è inteso
rete neurale general-purpose. Per questo motivo il a
sostituire
il
calcolatore
tradizionale, il quale
resterà insostituibile per la risoluzione di problemi algoritmici. A sua volta i sistemi neurali descritti finora, per i quali si è mostrata una vasta gamma di applicazioni, definiscono un insieme di nuove macchine adatte a risolvere problemi particolari, che non sono algoritmicamente esprimibili, oppure sono risolti con difficoltà dai computer. La prospettiva ragionevole è dunque quella di vedere in futuro sistemi di calcolo misti, costituiti da computer convenzionali
e
reti
realizzazione di sistemi efficienti per qualsiasi compito.
neurali, giungendo alla
Reti Neurali: modelli e aspetti applicativi
111
8. - BIBLIOGRAFIA 1
A. Turing, “On computable numbers, with an application to the entscheidungsproblem”, Proceedings of the London Mathematical Society, Num. 2 Vol XLII, 1936. 2
Robert McNaugthon, “Elementary Computability, Formal Languages and Automata”, Prentice Hall International 1982. 3
W.S. McCullock e W. Pitts, “A logical Calculus of the Ideas Immanent in Nervous Activity”, Bullettin of Mathematical Biophysics, Num. 5 1943, pag. 115-133. 4
John Von Neumann, “Primo abbozzo di relazione sull'EDVAC (Electronic Discrete Variable Computer)”, Princeton University 1945. 5
Michael Conrad, "On Design Principles\ for a Molecular Computer", Communications of the ACM 1, Vol. 28, Num. 5, Maggio 1985. 6
J.J. Hopfield, "Physics, biological computation, and complementarity", Proceedings of Niels Bohr Centenary Symposium, Copenhagen 4 Ottobre 1985. 7
T. J. Sejnowsky, "Neural Network Learning Algorithms", NATO Springer-Verlag, Berlino 1988. 8
ASI Series, Vol. F41,
Donald O. Hebb, “The Organization of Behavior”, Wiley, New York 1949.
9
Kohonen Teuvo. “An Introduction to Neural Computing”, Neural Networks, Vol. 1. 1988, pag 3-16. 10
Richard P. Lippmann, "An Introduction to Computing with Neural Nets", IEEE ASSP Magazine, Aprile 1987, pag 4-22 . 11
J.J.Hopfield, "Neural Networks and Physical Systems with Emergent Collective Computational Abilities", Proc. Natl. Acad. Sci. 179, pag. 2554 (1982). 12
J.J Hopfield, “Neuron with graded response have collective computational properties like twostate neurons”, Proc. Natl. Acad Sci. 81, pag. 3088 (1984). 13
S. Kirkpatrick ,C.D. Gelatt, M.P. Vecchi, “Optimization by simulated annealing”, Science Vol. 220, Num. 4598, 13 Maggio 1983, pag 671-680. 14
C. Kittel , “Introduzione alla Fisica dello Stato Solido”, Boringhieri 1971, Terza edizione.
15
S.E. Fahlman G.E. Hinton. “Connectionist Architectures for Artificial Intelligence”. IEEE Computer, Gennaio 1987, pag. 100-109. 16
Frank Rosemblatt, “The perceptron, a probabilistic model for information storage and organization in the brain”, Psychological review, 65 pag 386-408. 17
B. Widrow e M. Hoff, “Adaptive switching circuits”, Institute of Radio Engineers, 1960 WESCON Convention, Record Part IV, pag 96-104. 18
D. E. Rumelhart, J. L. McClelland, “Exploration in Parallel Distributed Processing”, The
Reti Neurali: modelli e aspetti applicativi
112
MIT Press, Cambridge 1989. 19 D. E: Rumelhart, G. Hinton e R.J. Williams, â&#x20AC;&#x153;Learning representations by back-propagating errorsâ&#x20AC;?, Nature Vol. 323, 9 ottobre 1986. 20
Luis B. Almeida, "Backpropagation in perceptron with feedback", NATO ASI Series 1, Vol. F41 Neural Computers Springer-Verlag Berlino 1988. 21
Mitsuo Takeda e Joseph W. Goodman, "Neural networks for computation: number representations and programming complexity", Applied Optics, Vol. 25, Num. 18, 15 Settembre 1986, pag. 3033-3046. 22
J.J. Hopfield,"Computing with Neural Circuit: A Model",Science,Num.233,1986, pag.625-633.
23
David W. Tank, John J. Hopfield, "Simple 'Neural' Optimization Networks: An A/D Converter, Signal Decision Circuit, and a Linear Programming Circuit", IEEE Transactions on Circuits and Systems, Vol. CAS-33, Num. 5, Maggio 1986. 24
A.V.Aho, J.E. Hopcrroft e J.D. Ullman, The Design and Analysis of Computer Algorithms, Addison-Wesley 1974. 25
Terrence J. Sejnowsky e Charles R. Rosemberg, "NETtalk: a parallel network that learns to read aloud", The Johns Hopkins University EECS Technical Report 186/01. 26
K. Nakano, "Associatron- A Model of Associative Memory", IEEE Transactions on Systems, Man, and Cybernetics, Vol. SMC-2, Num. 3, Luglio 1972. 27
J.S. Denker, "Neural network models of learning and adaptation", Physica Vol.2D (1986), pag 216-232. 28
Sang-Hoon Oh, Tae-Hoon Yoon e Jae-Chang Kim, "Associative memory model based on neural networks: modification of Hopfield model", Optics Letters, Vol.13, Num.1, Gen. 1988. 29
J. Jang ed altri, "Optical implementation of the Hopfield model for two dimensional associative memory", Optics Letters, Vol. 13, Num. 3, Marzo 1988. 30
N. H. Farthat, D. Psaltis, A. Prata e E. Paek, "Optical implementation of the Hopfield Model", Applied Optics, Vol. 24, Num.10, 15 Maggio 1985.
Reti Neurali: modelli e aspetti applicativi
113
9. - INDICE DELLE FIGURE
FIGURA 2.1 - Rappresentazione della Macchina di Turing, in alto il dispositivo A e l'unità di controllo, in basso si ha il nastro coi simboli dell'alfabeto esterno in ingresso, sopra il nastro in grigio e posizionata la testina di lettura. (FONTE COMMUNICATIONS OF ACM 5/85/M.CONRAD) ____ 10 FIGURA 2.2a - (a) Neurone formale di Mc Cullock e Pitts (b) Rete di neuroni formali costituente un semiautoma strutturalmente programmabile. (FONTE COMMUNICATIONS OF ACM 5/85/M.CONRAD) _________________________________________________________________ 12 FIGURA 2.2b - Una rappresentazione più generale della regola di funzionamento del neurone artificiale di McCullock e Pitts detto anche TLU (Threshold Logic Unit), x(i) sono gli ingressi, w(i) sono i pesi, θ è il valore della soglia per la funzione di attivazione. Si noti che nella formula semplificata 2.4 i pesi w(i) sono tutti uguali a 1. _______________________________________________________________ 12 FIGURA 2.2c - Semplice rappresentazione dell’architettura di Elaboratore Von Neumann ____________ 13 FIGURA 2.3. - Anatomia di un sistema di tre neuroni interagenti. (FONTE NEUROPHYSIOLOGY:A PRIMER WILEY/1966/C.F. STEVENS) ________________________________________________ 20 FIGURA 2.4 - Grafico rappresentante il numero medio di potenziali d'azione nell'unità di tempo in funzione della corrente positiva in ingresso a un neurone. (FONTE PROCEDINGS OF THE NIELS BOHR CENTENARY SYMPOSIUM 10/85/J.J. HOPFIELD) ________________________________ 20 FIGURA 2.5 - Processo di creazione di più proteine da parte di una cellula in crescita, analogo alla computazione di una macchina di Turing .Il nastro in uscita contiene gli amminoacidi costituenti la proteina. _____________________________________________________________ 22 FIGURA 3.1a - Rappresentazione grafica della funzione di attivazione V(t+1), che dipende dall’ ingresso del neurone Ui e dallo stato Vi al tempo t. _________________________________________________ 27 FIGURA 3.1b - Rappresentazione dell'ingresso pesato di un neurone e delle tre principali funzioni di attivazione. (FONTE IEEE ASSP MAGAZINE 4/1987 R.P. LIPPMANN _______________________ 28 FIGURA 3.2 - Tipi generali di architetture di reti neurali _______________________________________ 31 FIGURA 4.1a - In alto è mostrata la funzione di attivazione di una rete discreta di Hopfield, il cui schema è mostrato in basso. (FONTE P.N.A.S. 79/1982 J.J. HOPFIELD)____________________________ 36 FIGURA 4.1b - Sequenza di transizioni di un sistema fisico da uno stato iniziale V1 ad uno finale stabile V8, corrispondente ad un minimo di energia. _______________________________________________ 38 FIGURA 4.1c - In alto è lo schema architetturale del modello discreto di Hopfield che implementa una memoria associativa, in basso si vede il proncipio di funzionamento _________________________ 41 FIGURA 4.2a - In alto è mostrata la funzione di attivazione di una rete continua di Hopfield, in basso è mostrato lo schema elettrico della rete. (FONTE P.N.A.S. 81/1984/J.J. HOPFIELD)____________ 43 FIGURA 4.2b - In alto è mostrato lo schema elettrico di una rete continua di Hopfield. _______________ 44 FIGURA 4.3 - In alto è mostrata la superficie energetica nello spazio delle coordinate r ed E, in basso si ha la stessa superficie vista dall'alto. (FONTE
P.N.A.S. 81/1984 J.J.HOPFIELD;
PHYSICAL D 1986/J.S DENKER) ____________________________________________________ 47
Reti Neurali: modelli e aspetti applicativi
114
FIGURA 4.4 - (a) La funzione di attivazione tipica di un neurone. (b) La funzione V=g(λu) mostrata per tre valori del parametro l. ((c) Relazione inversa u=g-1 (V) della funzione V=g(λu). (d) Il contributo di g all'energia della relazione 4.15 in funzione di V. (FONTE P.N.A.S. 81/1984/J.J.
HOPFIELD)48
FIGURA 4.5 - Funzione di attivazione probabilistica della macchina di Boltzman _________________ 52 FIGURA 5.1a - Sono mostrati due schemi dell'originale perceptrone di Rosemblatt.. (FONTE IEEE ASSP MAGAZINE 4/1987/R. P. LIPPMANN) ________________________________________________ 59 FIGURA 5.1b - Perceptrone a singolo strato, che classifica un vettore in ingresso in due classi denominate A e B. Tale rete divide lo spazio degli ingressi in due regioni separate dalla linea tratteggiata. (FONTE IEEE ASSP MAGAZINE 4/1987/R. P. LIPPMANN) ____________________ 60 FIGURA 5.2 - (A) Semplice Perceptrone a singolo strato e 2 input (B) Rappresentazione grafica delle funzioni logiche AND, OR e XOR, e della loro solubilità tramite il perceptrone. (FONTE Exploration in P.D.P 1989/D. E. RUMELHART) ____________________________________ 62 FIGURA 5.3 - Perceptrone con uno strato di neuroni nascosto e 3 nodi in grado di risolvere la funzione XOR, la cui rappresentazione grafica e mostrata a destra. (FONTE Exploration in P.D.P 1989/D. E. RUMELHART) __________________________________________________________ 62 FIGURA 5.4 - Perceptroni a tre strato di connessioni e N input e M output. (FONTE IEEE ASSP MAGAZINE 4/1987/R. P. Lippmann)_________________________________________________ 64 FIGURA 5.5 - Tipi di regioni di decisione che possono essere formate da perceptroni a uno, due e tre strati. I nodi utilizzano una funzione di attivazione hard-limiter non lineare. (FONTE IEEE ASSP MAGAZINE 4/1987/R. P.Lippmann)___________________________________________________ 65 FIGURA 5.6 - Matrice bidimensionale di nodi di uscita rappresentante una rete di Kohonen. Ogni ingresso è connesso a tutti i nodi di uscita tramite una connessione variabile. In basso è mostrato un intorno del nodo j a tempi variabili t. In basso si vede l’evoluzione temporale di una rete autoorganizzante di Kohonen. (FONTE IEEE ASSP MAGAZINE 4/1987/R. P. Lippmann) ________ 69 FIGURA 6.1 - In alto si ha un grafico rappresentante la parola digitale V3 V2 V1 V0 computata dal convertitore A/D in funzione dell'ingresso analogico x. In basso si ha lo schema circuitale della rete neurale di Hopfield corrispondente al convertitore A/D. (FONTE IEEE TRANSACTIONS CAS/TANK E HOPFIELD/1986) _____________________________________________________ 75 FIGURA 6.2 - (A) Andamento temporale di un segnale analogico ottenuto mediante la combinazione lineare di inpulsi di forma gaussiana. (B) Singoli impulsi che compongono il segnale in (A). (C) Schema circuitale della rete neurale di Hopfield per il problema della scomposizione di un segnale analogico. (FONTE IEEE TRANSACTIONS CAS/TANK E HOPFIELD/1986) __________________ 78 FIGURA 6.3 - Una figura stilizzata della rete implementate il problema TSP. Ogni neurone e simbolicamente indicato da un quadrato. La soluzione del problema e rappresentata dai quadrati scuri come nella matrice 6.14. Sono indicate anche le connessioni di due differenti neuroni.(FONTE SCIENCE VOL.33/HOPFIELD) _______________________________________ 81 FIGURA 6.4 - Schema circuitale della rete neurale di Hopfield per un problema di programmazione lineare. (FONTE APPLIED OPTICS TAKEDA/GOODMAN/1986) _________________________ 83 FIGURA 6.5 - In alto schema di un problema di Hitchcock con 4 centri di produzione e 6 depositi. TABELLA I (A) Matrice di costo per il problema di Hitchcock (B) Semplice soluzione
Reti Neurali: modelli e aspetti applicativi
115
rappresentante il flusso dalla sorgente X al deposito Y. TABELLA_II Rappresentazione neurale della matrice di flusso del problema di Hitchcock, q neuroni sono utilizzati per rappresentare un elemento della matrice di flusso. (FONTE APPLIED OPTICS TAKEDA/GOODMAN/1986) _____ 87 FIGURA 6.6 - In alto si ha lo schema della rete NETtalk, in basso un grafico rappresentante le prestazioni della rete. Le diverse curve si riferiscono alle prestazioni di reti con 120, 60, 30, 15, 0 unità nascoste. In ordinata si ha la percentuale di errori, in ascissa il numero di parole che la rete inpara. Si noti che i migliori risultati si hanno con 120 unità nascoste, e che le performance della rete crescono col numero delle parole imparate. (FONTE SEJNOWSKY)_____________________ 93 FIGURA 7.1a - In alto vi è l’immagine memorizzatadi una T, sotto le immagini di partenza corrotte da cui si può risalire all’immagine iniziale in memoria. In basso c’e un esempio di ricostruzione di un'immagine di un volto (c) da un input parziale (b) realizzato mediante una memoria associativa. L'immagine memorizzata e la (c) _____________________________________________________ 96 FIGURA 7.1b - Raffigurazione di una memoria eteroassociativa, si noti la reppresentazione ortogonale del pattern memorizzato (a) e il richiamo del pattern da un input alterato._______________________ 100 FIGURA 7.2 - Modello di memoria ottica associativa _________________________________________ 109