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