Appendice
B
 |
Le
traduzioni che potrete trovare su questo sito
sono unicamente destinate ad uso interno per il
corso di Psicologia della Percezione dell'Università
degli studi di Trieste. Nascono con l'intento
di fornire un ausilio a quegli studenti che non
hanno molta dimestichezza con la lingua inglese.
Le traduzioni sono opera degli stessi studenti
del corso di Psicologia della Percezione 1999
- 2000. Nell'utilizzo di questo materiale va tenuto
conto che la correttezza dello stesso va verificata
confrontando le traduzioni con il testo originale.
Per ulteriori domande, clicca
qui.
|
TRADUZIONE DELL'APPENDICE B:
CREAZIONE
DI MODELLI CONNESSIONISTICI
DEL TESTO "VISION SCIENCE" (DI STEPHEN E.
PALMER)
Curata
da:
ROBERT VOLCIC
SERENA ZANUSSI
Appendice
B: Creazione di modelli connessionistici
B.1
Comportamento della rete
B.1.1 Comportamento di un'unità
Combinazione dell'attivazione di input
Determinazione dell'attivazione di output
B.1.2 Architettura del sistema
Reti Feedforward
Reti Feedback
Reti simmetriche
Reti Winner-Take-All
B.1.3 Comportamento del sistema
Decadimento parziale
Regolazione in uno stato stabile
Soddisfazione delle costrizioni deboli
Completamento di un pattern di connessioni
B.2 Algoritmi di apprendimento connessionistici
B.2.1 Back Propagation
Regola Delta
Regola Delta generalizzata
B.2.2 Gradiente di abbassamento
Lo spazio del vettore di input
Partizione dello spazio del vettore di input
Lo spazio dello stato
Lo spazio dei pesi
Lo spazio delgli errori di peso
Gradiente di abbassamento
Minimi locali versus minimi globali
Nel capitolo 2 abbiamo visto che i modelli classici
dell'information processing sono notevolmente astratti
e non fanno alcun riferimento al funzionamento del cervello.
Questo approccio alla teoria della visione è
basato sulla metafora del computer (mente: cervello/programma:computer)
e sulla dottrina funzionalista della realizzabilità
multipla (secondo la quale lo stesso processo mentale
può essere implementato ugualmente bene su una
varietà di hardware diversi). L'inferenza che
viene tratta da queste assunzioni è, che l'hardware
della mente non ha molta importanza perché lo
stesso evento mentale può accadere su differenti
congegni fisici, tra i quali la mente è solamente
uno di essi.
In netto contrasto con questo approccio simbolico alle
teorie computazionali si trova l'approccio esplicitamente
orientato verso il cervello, basato sui modelli connessionistici,
ovvero sulle reti neurali. I modelli connessionistici
si basano sull'assunzione che la cognizione umana dipenda
fortemente dalle strutture parallele dei circuiti neurali
nel cervello.
Un modello connessionistico è costituito da una
rete di unità interconnesse che diffondono l'attivazione
da un'unità all'altra tramite le connessioni.
Questi modelli hanno quattro caratteristiche che li
accomunano alla struttura del cervello:
1. Unità - neuroni. Gli elementi base delle reti
connessionistiche sono le unità, che funzionano
in modo semplificato, ma simile ai neuroni.
2. Attivazione - tasso di scarica. Ogni unità
è caratterizzata dalla propria attivazione che
approssimativamente corrisponde al tasso di scarica
di un neurone.
3. Connessioni - sinapsi. L'attivazione si diffonde
nella rete attraverso le connessioni che sono funzionalmente
simili alle sinapsi, attraverso le quali comunicano
i neuroni.
4. Pesi delle connessioni - forza delle sinapsi. Ogni
connessione è caratterizzata dal suo peso che
può essere positivo (eccitatorio) o negativo
(inibitorio) secondo gradi diversi.
Ovviamente la corrispondenza tra i modelli connessionistici
e la struttura e gli eventi neurali non è completa.
Il comportamento di un modello connessionistico è
determinato dai pesi delle connessioni tra le unità
della rete. Per questo motivo lo stesso set di unità
può essere capace di prestazioni molto diverse,
se i pesi delle connessioni vengono cambiati.
I principi che sottostanno al comportamento delle singole
unità sono molto semplici. L'interazione dei
principi complica notevolmente la comprensione e può
portare spesso a risultati inaspettati e non evidenti.
Una delle ragioni, per cui i modelli connessionistici
sono diventati così popolari nell'ultimo decennio,
è il fatto, che possono essere programmati ad
apprendere ad eseguire automaticamente computazioni
non banali. Questo si ottiene definendo delle regole,
che specifichino come aggiustare i pesi delle connessioni,
così da incrementare l'accuratezza della rete
nell'eseguire un determinato compito.
B.1
Comportamento della rete
Non
è difficile capire il comportamento di singole
unità in una rete connessionistica. La complessità
nasce invece dalle interazioni che avvengono tra le
unità e dai pesi delle loro connessioni.
In ogni modo saranno presi prima in considerazione i
principi di base, che governano il comportamento di
un'unità, e appena poi saranno discussi i principi
che sottostanno al comportamento di una rete.
B.1.1
Comportamento di un'unità
Per descrivere un'unità (che la chiameremo unità
j) sono presi in considerazione:
- il livello di attivazione (aj), dove 0=aj=1, che corrisponde
alla scarica di un neurone.
- il peso della connessione, che può essere positivo
(rappresenta le sinapsi eccitatorie tra i neuroni),
negativo (rappresenta le sinapsi inibitorie tra i neuroni)
o uguale a zero.
Per capire il comportamento di attivazione di un'unità
è necessario distinguere due aspetti del suo
funzionamento:
a) Combinazione dell'attivazione in input
Gli input delle unità connesse all'unità
j devono essere combinati secondo qualche regola (di
solito additiva). Prima di sommare le attivazioni (aj)
di ogni unità input, bisogna però moltiplicarle
con il peso della connessione fra unità i e j,
definito come wij. L'input complessivo (cj) dell'unità
j sarà quindi: (equazione B.1).
b) Determinazione dell'attivazione di output
L'input combinato potrebbe essere maggiore o minore
della gamma di attivazione disponibile. Per questo bisogna
specificare una funzione (A) che trasformi l'input in
un livello di attivazione output (aj): (equazione B.2).
Questa funzione è tipicamente non lineare e assume
la forma a S, che si può vedere nella figura
B.1.2.. La funzione trasforma gli input, con valori
molto alti o molto bassi, in valori compresi fra lo
zero e l'uno. Utilizzando questa funzione valori bassi
di input non hanno nessun effetto sull'output delle
unità, valori medi hanno un effetto gradualmente
maggiore, e valori alti hanno effetti ancora maggiori.
B.1.2
Architettura del sistema
Per costruire una rete connessionistica bisogna definire
la sua architettura, vale a dire il numero di unità
e il pattern di connessioni fra le unità. C'è
un numero infinito di architetture possibili, ma alcune
sono più importanti, dati i particolari comportamenti
di cui sono capaci. Le architetture qui elencate sono
quelle più utili a capire i modelli neurali descritti
nel libro.
a) Reti Feedforward
La caratteristica principale è l'assenza di feedback
loop, in altre parole di unità che sono influenzate
direttamente o indirettamente dal proprio precedente
comportamento. Queste reti sono dal punto di vista dinamico
alquanto semplici: l'attivazione si propaga unidirezionalmente
procedendo attraverso tutte le connessioni dall'inizio
alla fine. In questo caso l'attivazione di una singola
unità cambia una sola volta passando dalla situazione
di partenza a quella finale. Questa rete è stata
utilizzata da Lehky & Sejnowski (1988) nella sezione
4.3.3.
b) Reti Feedback (reti ricorrenti)
In questo tipo di reti sono presenti i feedback loop.
Dal punto di vista temporale il comportamento è
più complesso perché l'attivazione passa
ciclicamente attraverso i loop. Le reti ricorrenti hanno
delle interessanti proprietà dinamiche perché
tendono a regolarsi verso stati di energia minima o
ad oscillare tra differenti stati. Esempi di reti ricorrenti
sono il modello di McClelland & Rumelhart (1981)
nella sezione 9.4.3 e il modello di Marr & Poggio
(1977) nella sezione 5.3.3.
c) Reti simmetriche (reti di Hopfield)
Le connessioni all'interno delle reti ricorrenti possono
essere simmetriche o asimmetriche. In una rete simmetrica
il peso tra due unità nelle direzioni opposte
è lo stesso (wji=wij). Nelle reti asimmetriche
invece non c'è questa uguaglianza. La simmetria
è importante nelle reti ricorrenti nel determinare
il convergere di un'attivazione verso un singolo stato
stabile.
d) Winner-Take-All Networks (WTA)
Questo tipo di rete è una forma particolare di
rete ricorrente simmetrica. Consiste di un set di unità
che inibiscono l'un l'altra con lo stesso peso negativo.
Questa reciproca inibizione simmetrica causa un particolare
comportamento: l'unità con un'attivazione superiore
si trova a dominare tutte le altre unità. L'unità
più attiva ("winner" - il vincitore)
alla fine ha tutte le attivazioni ("takes all"
- si prende tutto). Questo tipo di rete è stato
usato da McClelland & Rumelhart (vedi sopra), Marr
& Poggio (vedi sopra) e Rumelhart, Smolensky, McClelland
& Hinton (1986) nella sezione 6.5.1.
B.1.3
Comportamento del sistema (Systemic Behavior)
Reti neurali ben configurate sono capaci di risolvere
interessanti problemi computazionali. In questo gruppo
di compiti vanno inseriti anche gli esempi trattati
in questo libro:
Marr & Poggio, (1977);
Malik & Perona, (1990);
Lehky & Sejnowski, (1988);
McClelland & Rumelhart, (1981);
Rumelhart & McClelland, (1982);
Queste reti esibiscono una varietà di proprietà
che non sono dovute al comportamento di singole unità,
ma chiaramente emergono dal comportamento unitario della
rete. Queste proprietà rendono le reti sopraelencate
dei modelli di fenomeni visivi molto interessanti. La
cosa interessante è che queste proprietà
non sono implementate direttamente nella rete, ma emergono
nel momento in cui l'attivazione passa attraverso la
rete.
Nelle seguenti sezioni prenderemo in considerazione
alcune di queste proprietà.
Decadimento
parziale, lento (Graceful Degradation). Nel caso in
cui certe connessioni o anche delle unità all'interno
di una rete densamente strutturata siano distrutte in
modo casuale, l'abilità della rete nel risolvere
determinati problemi non decade immediatamente, ma subisce
solamente una leggera variazione. Questa caratteristica
è coerente con la conoscenza che abbiamo sul
funzionamento del cervello. I neuroni del nostro cervello
muoino continuamente, non per questo subiamo delle perdite
evidenti di funzionalità.
Questi modelli tendono ad esibire decadimento parziale,
anche variando casualmente il rumore (noise) aggiunto
ai dati di input. L'abilità della rete dipende
dalla quantità di rumore, ma non crolla mai del
tutto (se non in casi estremi).
Regolazione
in uno stato stabile. In teoria le reti ricorrenti,
grazie ai loro feedback loop, cambiano continuamente
le proprie attivazioni. I fatti però dimostrano
che la maggior parte di queste reti tendano a stabilizzarsi
in un singolo stato (chiamato attractor). Hopfield dimostrò
che in una rete WTA l'attivazione si stabilizza sul
minimo locale di una funzione riguardante l'energia.
Sebbene l'energia, di cui parla Hopfield, sia solo una
metafora e non rappresenti l'energia fisica, c'è
da notare la stretta relazione tra questa proprietà
e l'idea gestaltista che definisce il cervello come
un sistema fisico che tende a stabilizzarsi in uno stato
di energia minima.
Soddisfazione
dei vincoli deboli (Soft Constraint Satisfaction). I
vincoli deboli sono restrizioni che possono essere prese
in considerazione,quando si fanno delle inferenze, ma
possono essere anche annullati da altre considerazioni.
Questi vincoli ci aiutano a restringere in numero di
soluzioni possibili e possono essere codificati all'interno
di una rete. La rete tenderà poi a trovare la
soluzione compatibile con il set di informazioni. Un
buon esempio di una rete con questo tipo di proprietà
è il modello sulla multistabilità nella
percezione del cubo di Necker (Rumelhart, Smolensky,
McClelland & Hinton, (1986), sezione 6.5.1).
Completamento
di un pattern di connessioni (Pattern Completion). Gli
oggetti sono spesso rappresentati da pattern di attivazione
che riguardano varie unità. Quando le caratteristiche
di un oggetto sono codificate dalle connessioni tra
le unità, una rete ricorrente può completare
il pattern di connessioni che descrivono l'oggetto anche
avendo a disposizione solo un'informazione parziale
riguardante l'oggetto.
B.2
Algoritmi di apprendimento connessionistici
Modificando i pesi e/o le connessioni tra le unità
è possibile costruire una rete capace di apprendere
come eseguire al meglio un compito. Per ottenere questo
bisogna specificare una regola che in funzione della
prestazione precedente modifichi i pesi e le connessioni
così da progressivamente migliorare l'esecuzione
del compito.
B.2.1
Back Propagation
La maggior parte degli algoritmi di apprendimento connessionistici
assumono che l'architettura (ovvero le connessioni tra
le unità) è fissa e che l'apprendimento
avvenga solamente attraverso l'aggiustamento dei pesi
delle connessioni esistenti.
Ci sono diversi schemi di questo tipo, ma ne prenderemo
in considerazione soltanto uno: il back propagation
(BP).Quest'algoritmo è importante dal punto di
vista storico, ma non plausibile dal punto di vista
biologico.
L'apprendimento BP funziona tipicamente su una rete
feedforward a tre livelli (vedi figura B.2.1). Le unità
di input ricevono un'attivazione dall'esterno della
rete. Le connessioni che partono da queste unità
determinano il pattern di attivazione delle unità
nascoste ("hidden units") che si trovano al
secondo livello. Da qui l'attivazione si diffonde alle
unità di output che producono il pattern di attivazione
finale. Lo scopo di questa rete è quello di categorizzare
gli input.
Regola
Delta. Per rendere la rete capace di eseguire una classificazione,
dobbiamo dotare l'algoritmo BP di un feedback che offra
informazioni sull'output corretto. Questo è rappresentato
con un set addizionale di unità, chiamate "teacher
units", che stanno in una corrispondenza uno ad
uno con le unità di output. Il pattern di attivazione
delle unità output è comparato con il
pattern corretto delle teacher units" per derivare
così il segnale di errore (ej, equazione B.3).
Questo segnale è poi utilizzato per determinare
come i pesi delle connessioni saranno corretti.
Un metodo per aggiustare il peso delle connessioni,
tra le unità di input e quelle di output, è
la regola Delta (equazione B.4) di Widrow & Hoff
(1960). Originariamente era possibile usare questa regola
soltanto con reti a due livelli. Successivamente Rumelhart,
Hinton & Williams (1986) derivarono una regola Delta
generalizzata che può essere utilizzata con reti
a più livelli.
B.2.2
Gradiente di abbassamento (Gradient Descent)
La regola Delta funziona adottando il metodo di riduzione
degli errori chiamato gradiente di abbassamento. Per
capire il funzionamento bisognerà fare qualche
passo indietro e spiegare come esegue il proprio compito
una rete classificatrice. Prenderemo in considerazione
una rete feedforward a due livelli composta da tre unità
(figura B.2.2A). Il suo compito è quello di apprendere
a distinguere i triangoli da altre figure geometriche
semplici. Le due unità di input rappresentano
le caratteristiche che rendono possibile questa classificazione:
l'unità 1 indica se si tratta di una figura chiusa
(attivazione alta) oppure aperta (attivazione bassa),
l'unità 2 indica invece la presenza di tre linee
diritte (attivazione alta) oppure no (attivazione bassa).
L'unità 3 di output sarà attiva quando
entrambe le unità avranno un attivazione alta
(figura B.2.2B). In altre parole, l'unità di
output deve apprendere a elaborare qualcosa di molto
simile all'AND logico, rispondendo solamente quando
entrambi gli input sono "on".
Lo
spazio del vettore di input (Input Vector Space). In
ogni momento lo stato dell'input di una rete può
essere rappresentato come un vettore composto da una
serie ordinata di valori di input, uno per ogni unità
di input della rete. Nel nostro esempio ci sono solo
due unità di input, quindi il vettore è
rappresentato solo da una coppia di valori di attivazione
(a1, a2).Il vettore di input può essere paragonato
alle coordinate di un punto in uno spazio multidimensionale
(lo spazio del vettore di input), dove ogni dimensione
corrisponde all'attivazione di un'unità di input.
La figura B.2.3 rappresenta lo spazio del vettore di
input del nostro esempio. Tutti i possibili input sono
rappresentati da un punto (a1, a2), definito dalle attivazioni
delle due unità di input.
Partizione
dello spazio del vettore di input. Questo modello di
classificazione corrisponde alla partizione (o divisione)
dello spazio del vettore di input in una serie di regioni
non sovrapponenti, ciascuna delle quali si riferisce
ad una categoria. Nel nostro esempio lo spazio è
diviso in due regioni. I pattern di attivazione che
cadono nell'angolo alto a destra della figura B.2.3
sono classificati come triangoli, quelli che invece
cadono nelle restanti regioni sono classificati come
appartenenti alla categoria dei non-triangoli. Questa
divisione è stabilita definendo una soglia di
attivazione dell'unità di output. Solo i valori
superiori alla soglia determinano la classificazione
dell'oggetto come triangolo.
Lo
spazio dello stato (State Space). Lo stato dell'intera
rete può essere rilevato da un singolo punto
nello spazio dello stato, nel quale c'è una dimensione
per il livello di attivazione di ogni unità della
rete. Da notare che lo spazio del vettore di input è
un sottospazio dello spazio dello stato perché
sono rappresentati solamente le unità di input.
La figura B.2.4 illustra lo spazio dello stato della
rete da noi presa in considerazione. Il livello di output
di ogni possibile vettore di input forma la superficie
a griglia visibile nella figura. La superficie rappresenta
le sole posizioni possibili nello spazio dello stato
che la rete, con il proprio set di pesi, può
occupare. La curvatura della superficie a forma di S
è dovuta alla funzione di attivazione anch'essa
a forma di S (figura B.1.2).
Lo
spazio dei pesi (Weight Space). Definendo lo spazio
dello stato abbiamo specificato il fine dell'apprendimento
della nostra rete. Adesso bisogna ancora specificare,
come questo fine viene raggiunto. In questo tipo di
reti il problema dell'apprendimento è solamente
una questione di come aggiustare i pesi, così
da ottenere una prestazione ottimale. Per capire cosa
avviene nel nostro esempio, è bene prendere in
considerazione un altro grafico chiamato lo spazio dei
pesi. Lo spazio dei pesi è uno spazio multidimensionale
nel quale ciascuna dimensione rappresenta il peso di
una particolare connessione. Nel nostro esempio le connessioni
sono due, quindi lo spazio dei pesi è uno spazio
bidimensionale (figura B.2.5). Ogni possibile combinazione
dei due pesi corrisponde ad un punto in questo spazio.
Se ogni possibile combinazione dei due pesi corrisponde
ad un punto dello spazio dei pesi, e, se l'apprendimento
corrisponde ad una serie di piccoli aggiustamenti del
peso, allora, l'apprendimento corrisponde ad una sequenza
di punti che seguono un cammino all'interno dello spazio
dei pesi, come si può vedere nella figura B.2.5.
Per questo, se vogliamo rendere la rete capace di apprendere
aggiustando i pesi, dobbiamo escogitare una regola che
indirizzi il cammino all'interno dello spazio dei pesi
verso il punto ottimale (nel nostro caso: l'angolo superiore
destro della figura B.2.5).
Lo
spazio degli errori di peso (Weight-Error Space). Il
fine dell'apprendimento tramite aggiustamento del peso
è di ridurre l'errore del sistema dopo ogni cambiamento
dei pesi. Questo può essere concettualizzato
con una versione più ampia dello spazio dei pesi,
chiamata spazio degli errori di peso. In questo spazio
c'è un'ulteriore dimensione che rappresenta l'ammontare
di errore che il sistema potrebbe produrre per qualsiasi
combinazione di pesi.
Abbiamo già affermato, che l'errore è
uguale alla differenza tra gli output corretti e gli
output reali (vedi equazione B.3) per una singola unità
di output su un singolo pattern di input. L'errore totale
di tutti gli stimoli, può essere invece calcolato,
sommando i quadrati degli errori generati da tutte le
unità di output su tutti i pattern di input.
Se questi errori totali vengono plottati per ogni punto
dello spazio dei pesi, otteniamo una superficie nello
spazio degli errori di peso raffigurata nella figura
B.2.6. I punti più bassi di questa superficie
corrispondono alle soluzioni migliori, mentre i punti
più alti a quelle peggiori. Il punto più
basso rappresenta il minimo globale (global minimum)
e corrisponde in assoluto alla soluzione migliore all'interno
dell'architettura usata nel costruire la rete.
Gradiente
di abbassamento (Gradient Descent). La superficie di
errore ci assicura che la prestazione migliori dopo
ogni aggiustamento del peso: il sistema deve correggere
i pesi così da posizionarsi il più possibile
in basso sulla superficie di errore. L'algoritmo deve
cambiare i pesi in modo da produrre il più rapido
abbassamento lungo la superficie. Questo metodo è
chiamato gradiente di abbassamento.
Minimi
locali versus minimi globali. La combinazione finale
dei pesi ottenuta dal metodo del gradiente di abbassamento
può essere il minimo globale, ma può succedere
anche di trovare il minimo locale: il punto più
basso nelle immediate vicinanze, ma comunque ad un livello
di errore superiore del minimo globale. La figura B.2.7
rappresenta uno spazio degli errori di peso unidimensionale,
nel quale l'apprendimento porta da uno stato iniziale
A ad un minimo locale (B). Nel caso in cui lo stato
iniziale fosse stato invece il punto C, il minimo globale
(D) sarebbe stato raggiunto.
Questa difficoltà a trovare in qualsiasi caso
il minimo globale è un lato negativo del metodo
del gradiente di abbassamento, ma soltanto se cerchiamo
un modello di apprendimento ottimale. Infatti, se anche
le persone hanno problemi simili, si potrebbe considerare
il metodo come un ottimo modello dell'apprendimento
umano.
|