Self Organizing Maps

Potrebbero piacerti anche

Scarica in formato pdf o txt
Scarica in formato pdf o txt
Sei sulla pagina 1di 4

Contents

1 7.1 - Definizioni 1
1.1 La relazione di vicinato . . . . . . . . . . . . . . . . . . . . . 2
1.2 Vector Quantization Learning (VQL) . . . . . . . . . . . . . . 2
1.3 Topology Preserving Maps . . . . . . . . . . . . . . . . . . . . 2

2 TODO 7.2 - Learning Vector Quantization (LVQ) 2


2.1 Problemi con la LVQ "naive" . . . . . . . . . . . . . . . . . . 3
2.2 LVQ per Supervised Learning . . . . . . . . . . . . . . . . . . 3
2.2.1 Varianti . . . . . . . . . . . . . . . . . . . . . . . . . . 3
2.3 TODO Maximum Likelihood Training . . . . . . . . . . . . . 4

3 TODO 7.3 Prendere in considerazione il vicinato 4


SOM: NN con due soli layers; alcune SOM definiscono una relazione di
vicinato tra i nodi di uscita della NN, che influenza il training.

1 7.1 - Definizioni
Assomiglia molto ad una NN radiale, ma non ha Hidden Layer: è fatta quindi
solo di due layer, uno di ingresso e uno di uscita.
Per ogni neurone di uscita:

• La network input function è data dalla distanza tra il vettore input e


~ tew
il vettore dei pesi, in ~t

• La activation function è una funzione radiale di netu : minore la dis-


tanza tra vettore input e vettore dei pesi, maggiore è l’eccitazione del
neurone u

• L’output function è l’identità; tuttavia, si può anche scegliere di usare


una strategia winner-takes-all, in cui solo il neurone con max activation
value emette un 1 e tutti gli altri neuroni della rete 0 - in quest’ultimo
caso, diciamo che l’output è discretized.

Come nella NN radiale, ogni neurone di uscita rappresenta una circon-


ferenza di raggio pari a θ e con centro pari al vettore w
~ t . Il vettore che punta
al centro della circonferenza lo chiamiamo reference vector.

1
1.1 La relazione di vicinato
Le SOM più complesse definiscono una relazione di vicinato tra neuroni
di output. Tipicamente, queste relazioni si traducono nella costruzione di
griglie esagonali/quadrate (rispettivamente: ogni nodo ha esattamente 4 o 6
vicini, eccetto per i nodi sul bordo della griglia).

1.2 Vector Quantization Learning (VQL)


Sostanzialmente, quando decidi di non usare la nozione di vicinato e decidi
di discretizzare l’output function dei neuroni, chiami la mappa che ottieni
VQL.
In questo caso, sostanzialmente dividi l’input space in partizioni, tante
quanti sono i neuroni in uscita (aka. i reference vectors) – di fatto stai cre-
ando un diagramma di voronoi nell’input space, dove i centri sono i reference
vectors.

1.3 Topology Preserving Maps


Sostanzialmente, quando inserisci la nozione di vicinato.
L’idea è questa – supponi di avere una SOM con 100 nodi in ingresso e
20 in uscita: questo significa che hai 20 reference vectors 100-dimenzionali
all’interno dell’input space (anch’esso 100-dimensionale ofc)
Ciò che vuoi ottenere è che le posizioni relative tra i reference vectors
(spazio 100-dim) vengano preservate quando vengono mappate nella griglia
(2-dim) di vicinato degli output nodes. Se un reference vector r1 sta a destra
di un altro reference vector r2 , allora anche nella griglia quadrata degli output
neurons questa relazione di stare-a-destra deve essere preservata.

2 TODO 7.2 - Learning Vector Quantization (LVQ)


Sostanzialmente è una brutta copia di k-means. Ricorda che assumiamo che
non ci sia relazione di vicinato e che l’outpunt function è discretizzato.
pt in TrainingSet :
∀~
n <− neurone che s i a t t i v a p e r p
r~t <− r e f e r e n c e v e c t o r d i u
r <− r + η ( p − r )
In pratica, scelto un p e trovato il reference vector r più vicino a p, sposti
r un po’ più vicino a p (quanto più vicino dipende dal learning rate η.

2
Ok, solita distinzione tra batch e online training: cambia solo che batch è
molto più smooth nella traiettoria che segue lo spostamento dei vari reference
vectors.
Sembra che la batch mode sia molto simile a k-means, per motivi che
non capisco.

1. TODO capire questa cosina della batch mode

2.1 Problemi con la LVQ "naive"


Il problema maggiore è che in certe situazioni lo spostamento dei reference
vector assume traiettorie cicliche, senza mai stabilizarsi su un punto finale.
Per risolvere questo problema, si ricorre al time-dependent learning rate,
cioè diminuisci man mano il learning rate per far si che eventuali traiettorie
cicliche collassino in spirali.

2.2 LVQ per Supervised Learning


Anche se non è nata per questi scopi, LVQ può essere usata per apprendi-
mento supervisionato. L’algoritmo è molto simile a sopra, ma c’è una nuova
componente "respingitiva" – poi ti spiego. Presupponiamo quindi che ogni
punto p del training set abbia associata una classe cp .
pt in TrainingSet :
∀~
cp <− c l a s s e d i p
n <− neurone che s i a t t i v a p e r p
r~t <− r e f e r e n c e v e c t o r d i u
cr <− c l a s s e d i r ( e q u i n d i d i n )
i f ( cr == cp ) { # a t t r a z i o n e
r <− r + η ( p − r )
} e l s e { # respingimento
r <− r − η ( p − r )
}

2.2.1 Varianti
In alcune varianti si adatta (aka. attrarre/respingere) non solo il reference
vector più vicino, ma anche il secondo più vicino.
Per risolvere alcuni problemi (namely: il fatto che anche con questi
miglioramenti il LVQ non funziona sempre bene) si introduce la nozione di
Window Rule: in pratica, attrai/respingi uno/due reference vectors solo

3
in base ai punti che sono sul bordo della classificazione. Non si è capito una
mazza.
In pratica: se un punto del dataset è vicino al confine che separa, per
intenderci, una cella di Voronoi e la sua vicina, allora quel punto (e tutti
gli altri come lui che sono sufficientemente vicini al confine) viene preso in
considerazione dalla Window Rule; tutti gli altri, no. La nozione di "essere
vicino al confine" può essere formalizzata.

2.3 TODO Maximum Likelihood Training


C’è solo sulle slides e non si capisce un cazzo.

3 TODO 7.3 Prendere in considerazione il vicinato

Potrebbero piacerti anche