Perchè competere? RETI DI KOHONEN In alcuni casi, la risposta di una rete può essere ambigua: Competitive Learning & Self Organizing Maps P 0.6 Q 0.1 R 0.6 1 2 Forzare una decisione Mappe sensoriali Connettendo opportunamente lo strato di uscita è possibile innescare una competizione tra i neuroni, che forza la rete a decidersi. Le aree sensoriali della corteccia cerebrale sono organizzate topologicamente: P 0.3 Q 0.1 R 0.8 • sulla corteccia somato-motoria esiste una rappresentazione dell’intero corpo; • sulla corteccia uditiva esiste una mappa tonotopica tra disposizione spaziale e frequenza percepita. 3 Corteccia somato-motoria 4 Reti di Kohonen Nel 1983, Teuvo Kohonen riuscì a costruire un modello neurale in grado di replicare il processo di formazione delle mappe sensoriali sulla corteccia cerebrale: • rete stratificata • apprendimento senza supervisione basato sulla competizione fra neuroni 5 6 1 Architettura Neuroni lineari x1 pesi fissi wj1 x2 wj2 • • • ∑w ji xi i =1 wjn xn pesi variabili yj = j n yj = n ∑w x = W j • X = W j • X cosθ ji i i =1 7 Distribuzione dei pesi fissi 8 Distribuzione dei pesi fissi 4 x 2 + y 2 x σ+2y ∇ G = 2 − 1 e σ σ2 2 I pesi fissi dipendono dalla distanza dei neuroni: • neuroni vicini ⇒ pesi positivi • neuroni lontani ⇒ pesi negativi Laplaciano di Gaussiana: σ: raggio di interazione −σ y σ x 9 Bolle di attivazione • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • 2 2 10 Apprendimento competitivo • Grazie all’inibizione laterale, i neuroni competono per rispondere ad uno stimolo. • • • • • • • • • • • • • • Il neurone con uscita maggiore vince la competizione e si specializza a riconoscere lo stimolo. • Grazie alle connessioni eccitatorie, i neuroni vicini al vincitore risultano sensibili ad ingressi simili. Si crea un isomorfismo tra spazio di ingresso e spazio di uscita 11 12 2 Implementazione Neurone vincitore (metodo 1) • In realtà, per problemi di efficienza, i neuroni di uscita non vengono connessi tra loro. • Il neurone vincitore viene scelto con una strategia globale confontando le uscite di tutti i neuroni. • Si possono usare due tecniche: Il neurone vincente sull’ingresso X è quello che ha l’uscita maggiore: yj = n w ji xi ∑ i =1 = W j • X = | W j | | X | cosθ W2 1. Si sceglie il neurone con uscita massima; W1 W3 2. Si sceglie il neurone i cui vettore dei pesi è più simile all’ingresso presentato. θ X 13 Neurone vincitore (metodo 1) 14 Neurone vincitore (metodo 2) Il neurone vincente sull’ingresso X è quello che ha il vettore di pesi più simile a X: Questo metodo richiede che: | X| = |W| = 1 W1 j0 : DIS(Wj0, X) < DIS(Wj , X) Altrimenti può accadere che: θ2 W1 W2 |W1||X| cosθ1 > |W2 ||X| cosθ2 X nonostante: X 15 Definizione di distanza In questo caso non occorre che i vettori siano normalizzati. W2 θ2 < θ1 Distanza Euclidea: DIS ( X , Y ) = ∀j ≠ j0 16 Legge di apprendimento n ∑ (x − y ) 2 i i ∆W(t) = α (X − W) i =1 Distanza stradale: (o di Manhattan) DIS ( X , Y ) = ∆W(t) n ∑x −y i i i =1 n Distanza di Hamming: DIS ( X , Y ) = ∑ (xi != yi ) i =1 (solo per vettori binari) 17 X − W(t) W(t) W(t+1) X 18 3 Apprendimento Apprendimento W(t) W(t+1) X X 19 20 Apprendimento Apprendimento X X 21 22 Aggiornamento del vicinato Raggio di interazione Per simulare le connessioni radiali, si variano i pesi dei neuroni vicini al vincitore: Il vicinato è l’insieme di neuroni aventi una distanza dal vincitore minore di R: vincitore X1 23 • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • •R• • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • R = raggio di interazione 24 4 Tipologie di vicinato Definizione della mappa • Per consentire la formazione della mappa, occorre definire una topologia sullo strato di uscita. Vicinanza 4 Vicinanza 8 • Ogni neurone deve avere una posizione identificata da un vettore di coordinate. • La mappa di uscita è di solito definita come uno spazio a una o a due dimensioni. 25 Tipologie di vicinato 26 Tipologie di vicinato Vicinanza 12 Vicinanza esagonale 27 Tipologie di vicinato 28 Tipologie di vicinato Mesh Griglia semplice 29 30 5 Variazione dei pesi Variazione dei pesi I pesi dei neuroni vengono variati in base alla loro distanza dal neurone vincitore: Detto j0 l’indice del neurone vincitore, si ha: d2 Φ( d ) = 1 − 2 r 1 ∀j ∈ vicinato(j 0, r) d = DIS(j, j 0) ∆wj = α Φ(d) (X − Wj) d Le quantità r e α variano nel tempo. r 31 32 Algoritmo di apprendimento Evoluzione temporale Rmax R r ( t ) = Rmax min Rmax r(t) Rmax = Rmin t Amax N , 2 t Tmax Rmin = 1 t α(t) A Tmax α (t ) = Amax min Amax Amin Amax = 1, Amin = 0 t 33 1. Si inizializzano i pesi in modo casuale; 2. 2. Si inizializzano i parametri: α = A; r = R; do { 4. for each (Xk ∈ TS) { 5. si calcolano tutte le uscite y j; 6. si determina il neurone vincitore j0; 7. si aggiornano i pesi del vicinato; 8. } 9. si riducono α e r; 10. } while ( α > α min); Esempio 34 Stato Iniziale N=M x1 • wj1 ingresso peso x2 wj2 M ingressi N neuroni Ingresso = vettore di coordinate su un piano Mappa = Griglia con vicinanza 4 35 • • • • • • • • • • • • • • • • • • • • 36 6 Stato finale Esempio N>M N=M • • ingresso • peso M ingressi N neuroni • • • • • • • • • • • • • • • • • • • ingresso peso • • • • • • • • • • M ingressi N neuroni • • • • • • • 37 38 Esempio Tassellazione di Voronoi N<M • ingresso • • peso M ingressi N neuroni • i=1 • • Si ∩ S j = φ • • • W2 S2 n U Si = S • W1 Wi = centroide di Si • • • S1 • • • • E’ una suddivisione di uno spazio S in n sottospazi Si, tali che: • W3 ∀i ≠ j S3 DIST ( X k , Wi ) < DIST ( X k , W j ) 39 W4 S4 ∀ i ≠ j, X k ∈ S i 40 Applicazioni Applicazioni Clustering Classification • Raggruppare un insieme enorme di dati in un numero limitato di classi, in base alla somiglianza dei dati. • Classificare un insieme di frasi in un insieme di classi distinte per argomenti correlati. Compression • Usato da alcuni motori di ricerca per classificare i gusti degli utenti collegati. • Convertire un’immagine con milioni di colori in un’immagine compressa su 256 livelli (non fissi). 41 42 7 Applicazioni Applicazioni Classificazione di fonemi Classificazione di fonemi a “telefono” va na e te fe i o sa la oe le no va na ue e gi fi si fo a “telefono” te fe i o u oe le fo no u 44 Ottimizzazione Problema del commesso viaggiatore “telefono” Rete multistrato Rete di Kohonen ue gi fi si 43 Riconoscimento di parole sa la Inputs: 2 Outputs: n Map: 1D-mesh ∆ ∆• •• ∆ 45 46 8