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.

Collaborators

I am the leader of the Neuromorphics Lab, a highly collaborative lab with connections across both academia and industry.