Diapositiva 1 - Università di Trento

Modelli simulativi
per le Scienze Cognitive
Paolo Bouquet
(Università di Trento)
Marco Casarotti
(Università di Padova)
Apprendimento senza supervisione:
auto-organizzazione
Sia data una rete con un singolo strato di pesi ed una unità di output y
lineare. Si utilizzi la regola di Hebb:
w j  yx j
dove l’attivazione dell’unica unità di output è la somma pesata degli input x.
Quindi, non c’è alcun output “imposto” dall’esterno.
Se una componente del vettore di input attiva y, la sinapsi sarà rafforzata, e la
volta successiva ancora di più (auto-amplificazione). Quindi, questa semplice
rete imparerà a rispondere maggiormente ai pattern che presentano le
componenti più frequenti.
Normalizzazione dei pesi
Poichè i pesi cresceranno all’infinito, dobbiamo normalizzare il vettore dei pesi:
wj 
wj
w12  w22  ..  wn2
La rete converge verso la soluzione in cui l’output esprime la direzione di
massima varianza della distribuzione degli input. Quindi, i pattern che si
collocano lungo questa direzione (pattern più “rappresentativi” della
distribuzione) attivano una risposta maggiore.
Attenzione: a causa della normalizzazione, la regola non è locale! (bisogna
conoscere tutti i pesi)
La regola di Oja: estrazione di N
componenti principali
Limita la crescita dei pesi sinaptici senza richiedere la normalizzazione,
introducendo nella regola di Hebb un “fattore di dimenticanza”, che dipende
dal corrente del peso:
w j  y ( x j  w j y )
Se la distribuzione dei pattern di input è centrata sullo zero, l’output
rappresenta la prima componente principale della distribuzione.
Con N unità di output, all’attivazione dell’unità presinaptica si sottrae
l’attivazione pesata di tutte le unità di output collegate all’unità di input:
N


wij  yi  x j   wkj yk 
k 1


La rete estrae in questo caso N componenti principali.
La regola di Sanger
La componente da sottrarre è calcolato su tutte le unità precedenti (rispetto ad
i). Quindi la sommatoria su k va da 1 a i invece che da 1 a N.
i


wij   yi  x j   wkj yk 
k 1


In questo modo le N componenti principali vengono estratte in ordine.
Ciascuna unità viene forzata a sviluppare un vettore di pesi ortogonale ai
vettori delle unità precedenti e contemporaneamente a massimizzare la
varianza residua.
Vantaggi: più facile l’interpretazione dell’output.
Svantaggi: introduce delle distorsioni se N è grande.
Reti competitive
Sono reti ricorrenti con connessioni intrastrato nello strato di output. Ogni
neurone di output possiede una connessione rientrante (auto-connessione)
eccitatoria e connessioni inibitorie con tutti gli altri neuroni di output.
Dato un certo input I, l’unità di output k con
valore d’attivazione maggiore aumenterà
ulteriormente la propria attivazione attraverso
la connessioni auto-eccitatoria ed inibirà in
misura sempre maggiore gli altri neuroni
(questo riduce a sua volta l’effetto inibitorio
degli altri neuroni su k). Questo si ripete fino
al raggiungimento di uno stato stabile
(rilassamento).
Quando una sola unità di output k rimane attiva al rilassamento si parla
di rete “winner-takes-all” (il vincitore prende tutto).
Apprendimento competitivo
Dato un training set i cui vettori hanno tutti lunghezza 1 (ovvero sono
normalizzati).
Possiamo rappresentare ogni vettore
come una freccia orientata verso la
superficie di una (iper)sfera avente
raggio unitario.
Se i vettori dei pesi in arrivo alle unità
di ouptut di uno strato competitivo
sono normalizzati, allora questi vettori
possono essere rappresentati sulla
stessa sfera.
Per codificare il training set, è necessario che i vettori dei pesi nella rete
vengano allineati con qualsiasi raggruppamento (cluster) presente nel
training set e che ogni cluster sia rappresentato da almeno un neurone.
Quindi, quando un vettore viene presentato alla rete, ci sarà un nodo o
gruppo di nodi che risponde in modo massimale (e selettivo) a quell’input.
Per ottenere questo, i vettori di pesi devono essere ruotati intorno alla sfera in
modo che si allineino con il training set. Questo si può ottenere in modo
graduale ed efficiente muovendo il vettore di pesi che è più vicino (distanza
angolare) al vettore di input corrente verso quel vettore di input stesso. Il
neurone k con il vettore di pesi più vicino è quello che riceve la maggiore
eccitazione di input (in quanto è il prodotto interno tra pesi e vettore di
input). Per allineare il vettore di pesi del neurone k, si possono modificare i
pesi secondo la regola:
w   ( x  w)
Per decidere qual è il neurone con la maggiore eccitazione si utilizza la
dinamica competitiva. Se la rete è di tipo winner-take-all, il nodo vincitore
avrà un valore di 1 e tutti gli altri saranno a 0. Ad equilibrio sarà sufficiente
utilizzare come regola di apprendimento per tutta la rete:
w   ( x  w) y
quindi la modifica dei pesi si avrà solo per il vincitore (in cui y=1), mentre
per tutti gli altri neuroni non ci sarà alcun cambiamento nei pesi (y=0).
Algortimo:
1. Presentare un vettore di input e calcolare l’attivazione iniziale di tutti i
neuroni di output
2. Aggiornare le attivazioni fino ad equilibrio (o per un numero fisso di
passi)
3. Modificare i pesi secondo la regola sopra