ANALISI DEI CLUSTER (metodo kmeans)
 
Sia X  x
t N
t 1
l’insieme degli esempi di training
Supponiamo di volerli classificare in k classi, ed indichiamo con mj, j=1,…,k
prototipi delle classi
Supponiamo per ora di avere a disposizione i k prototipi mj per cui
rappresenteremo il vettore di input con il prototipo più vicino
x t  m i  min x t  m j
j
1
[email protected]
ANALISI DEI CLUSTER (metodo kmeans)
x t  m i  min x t  m j
j
Come possiamo calcolare i prototipi mj?
Quando xt è rappresentato da mi, vi è un’errore proporzionale alla
distanza
Il nostro obiettivo è quello di ridurre questa distanza quanto possibile
Introduciamo una funzione errore (di ricostruzione) come segue

  b
E mi i 1 X 
k
t 1,.., N i 1,..., k
t
i
xt  mi
2
t
t

1
se
x

m

min
x
mj

t
i
j
bi 

altrimenti
0
2
[email protected]
ANALISI DEI CLUSTER (metodo kmeans)
Migliori performance si ottengono trovando il minimo di E
Usiamo una procedura iterativa per trovare i prototipi.
Si parte inizializzando i k vettori di riferimento mi casualmente
Quindi si calcolano i valori di b con l’equazione precedente e si
minimizza l’errore E calcolando la sua derivata prima e ponendola a
zero. Quindi si perviene a
bt xt
mi 

b
i
t
t
t
i
Chiaramente modificando i valori di m anche quelli di b variano e
quindi si ripete il processo finché i prototipi si stabilizzano
3
[email protected]
ANALISI DEI CLUSTER (metodo kmeans)
4
[email protected]
ANALISI DEI CLUSTER (metodo kmeans)
5
[email protected]
ANALISI DEI CLUSTER (kmeans)
Bande:
XS1 ("green" band),
XS2 ("red" band),
XS3 ("near infra-red" band)
PCA
Kmeans:
•Initial Number of classes: 15,
•Initial Number of iterations: 10,
•Change threshold: 5%.
6
[email protected]
ANALISI DEI CLUSTER (Fuzzy C-means)
1. Inizializza la matrice delle funzioni membership b con valori tra 0
e 1. Tale che soddisfano il vincolo  b  1 t  1,, N
k
i 1
2. Calcola i centri mi, i=1,…,k con
t
i
N
mi 
 (b ) x
t 1
N
t
i
t
  [1, )
 (b )
t 1
t
i
N
k
3. Calcola la funzione costo. E (b, m1 , , mk )   (bit ) x t  mi
t 1 i 1
Criterio di stop: se E<soglia o non vi sono variazioni significative
tra una iterazione ed un’altra
4. Calcola la nuova matrice b
Vai al passo 2
bit 
1
 x t  mi


 xt  m j
j 1

k
7




2
 1
[email protected]
Template Matching
In diverse applicazioni risulta importante ricercare direttamente
nell’immagine (e non nello spazio delle caratteristiche) particolari regioni o
piccole porzioni di un oggetto.
Esempi:
•di un pezzo meccanico, si vuole cercare una regione con particolari
configurazioni geometriche;
•da una immagine da satellite si vogliono cercare finestre che includono
intersezioni di fiumi, strade ecc., normalmente usati come punti di riferimento
(reference point).
Il problema consiste nel ricercare sull’intera immagine una finestra ideale
corrispondente ad una rappresentazione dell’oggetto che deve essere
identificato nell’immagine.
8
[email protected]
Template Matching
Il processo di template matching consiste nel muovere la finestra campione
(template) di un pixel per volta nell’immagine e calcolare il grado di
similarita` di tale finestra con la porzione corrente dell’immagine.
Opera come correlazione in analogia al processo di convoluzione.
Il template matching e` anche descritto come “matched filtering”.
•Sia g(i,j) la finestra prototipo da ricercare
•f(i,j) immagine di input,
• Il processo inizia posizionando g sull’estremita` in alto a sinistra di f, ed i
corrispondenti livelli di grigio sono confrontati pixel per pixel per valutare il
livello di similarita` in tutte le possibili posizioni
9
[email protected]
Template Matching
Misure di similarita`:
S1  max | f  g | S2 
( i , j )W
 | f  g | S3 
( i , j )W
2
(
f

g
)

( i , j )W
dove W rappresenta la finestra del campione.
La misura di similarita` piu` appropriata e` la
correlazione tra la finestra W di dimensioni
L×L e l’immagine di input f che puo` essere
misurata da:
L
L
M ( i, j )    g( l , k )  f ( i  l , j  k )
l 1 k 1
dove i e j sono gli indici della finestra
nell’immagine f.
10
Il max di M(i,j)
rappresenta l’oggetto
[email protected]
cercato
Esempio
Template
Data Set 1
Data Set 3
Data Set 4
11
Data Set 2
Data Set 5
[email protected]
Data Set 1
Immagine originale,
Rettangolo trovato, e
mappa di correlazione
Mappa di correlazione
12
[email protected]
Data Set 2
Immagine originale,
Rettangolo trovato.
Mappa di correlazione
13
[email protected]
Data Set 3
Immagine originale,
Rettangolo trovato.
Mappa di correlazione
14
[email protected]
Data Set 4
Immagine originale,
Rettangolo trovato.
Mappa di correlazione
15
[email protected]
Data Set 5, Corr. Map
Mappa di correlazione
Immagine
originale.
16
[email protected]
Data Set 5, Results
Soglia impostata a 0.800
Soglia impostata a 0.200
17
[email protected]
Template Matching - Limitazioni
Impossibilita` di operare quando:
• l’immagine f cambia di scala ed orientazione.
•Se l’immagine f modifica i livelli di grigio la correlazione
M(i,j) e` modificata e puo` non indicare misure di similarita`
affidabili.
Questo inconveniente e` superato con un
processo di normalizzazione definito da:
L
M ( i, j ) 
L
  g( l , k )  f ( i  l , j  k )
l 1 k 1
L
L
{  f 2 ( i  l , j  k )}
l 1 k 1
18
[email protected]
Template Matching - Limitazioni
•Usa informazioni globali, sensibile a occlusioni
•Usa informazioni sui pixel:
dall’illuminazione e dal sensore.
fortemente
19
dipendente
[email protected]
20
[email protected]
Reti Neurali
21
[email protected]
Computers vs. Neural Networks
“Standard” Computers
Neural Networks
una CPU
elaborazione altamente
parallela
Unita’ di elab. veloci (10-9s)
unita’ di elab. Lente (10-3s)
Unita’ affidabili
unita’ non affidabili
Infrastruttura statica
Infrastruttura dinamica
22
[email protected]
Perche` le reti neurali artificiali?
Ci sono due ragioni fondamentali per cui siamo
interessati alla costruzione di reti neurali artificiali
(ANN):
• Tecnico: Alcuni problemi come il riconoscimento di
caratteri o la predizione di stati futuri di un sistema
richiedono una elaborazione adattiva e massivamente
parallela.
• Biologico: ANNs possono essere usate per replicare e
simulare componenti del cervello umano (o animale) per
fornirci chiarimenti circa l’elaborazione naturale
dell’informazione.
23
[email protected]
Perche` le reti neurali artificiali?
Perche` abbiamo bisogno di un altro paradigma per
costruire macchine “intelligenti”?
• L’Intelligenza Artificiale simbolica e` adatta a
rappresentare la conoscenza esplicita che puo` essere
appropriatamente formalizzata.
• Tuttavia, l’apprendimento nei sistemi biologici e` per
lo piu` implicito – esso e` un processo di adattamento
basato su ragionamento e informazione incerta.
• ANNs sono inerentemente parallele e funzionano in
modo efficiente se implementate in hardware parallelo.
24
[email protected]
Come funzionano le reti neurali
artificiali e naturali?
• I “blocchi principali” di una rete neurale sono i neuroni.
• Tecnicamente i neuroni sono anche denominati unità di
elaborazione o nodi.
• Fondamentalmente, ciascun neurone
• riceve input da molti altri neuroni,
• Varia il suo stato interno (attivazione) basato
sull’input corrente,
• invia un segnale di output a molti altri neuroni,
includendo possibilmente i suoi neuroni di input
(reti ricorrenti)
25
[email protected]
Modello Biologico - Il Neurone
26
[email protected]
Modello del Neurone
bk
x1
x2

w1
w2


vk
Funzione di
attivazione
(•)
Output
yk
wN
xN
N
vk   wkj x j  bk
j 1
 Soglia

 (v )   lineare
Sigmoidale

yk   (vk )
27
[email protected]
Percettrone
La piu` semplice struttura di rete neurale e` il percettrone ideato da
Rosenblatt basato sul modello di neurone definito in precedenza.
Cosa può rappresentare un percettrone?
Per semplicità consideriamo un neurone a due input:
b
x1
x2
x
wk1
Yk=1
wk
yk
(•)
wk2
x1
Yk=0
x2
Il calcolo di questo neurone puo` essere
descritto come il prodotto interno di vettori bidimensionali x e wk, seguiti da un’operazione
di thresholding.
28
x1wk 1  x2 wk 2  b  0
[email protected]
Percettrone


0
x

,
t

0
 1   1

0
 




0
 x2   , t2  0
1




1
x

,
t

0
 3   3

0
 


Soluzione


1
 x4   , t4  1
1


 2
w 
 2
w
Regola di apprendimento
Errore
et y
w new  wold  ex  wold  (t  y )x
bnew  bold  e
29
[email protected]
Apprendimento
In analogia al comportamento del cervello umano che impara per esperienza,
anche un modello computazionale neurale deve risolvere i problemi allo stesso
modo senza utilizzare l’approccio algoritmico.
In altre parole, una rete neurale artificiale e` vista come una macchina adattiva
con le seguenti caratteristiche:
la rete deve adattare i nodi (neuroni) per
l’apprendimento della conoscenza attraverso una fase di
training osservando esempi, organizzare e modellare
tale conoscenza mediante i pesi sinaptici delle
connessioni, ed infine rendere disponibile tale
conoscenza per un suo uso generalizzato
30
[email protected]
La Ricerca nei sistemi che apprendono
Capire il cervello
(fisiologia, psicologia,
neuroscienze, medicina)
Sviluppare macchine che
apprendono
(informatica ed ingegneria
elettronica)
Formalizzare matematicamente l’essenza
dell’apprendimento
(Scienze dell’Informazione)
[email protected]
31
3 Tipi di apprendimento
• Supervised learning
Trovare una regola caratterizzante
il nostro modello partendo dai dati
e dall’aiuto di un teacher
• Unsupervised learning
Trovare la struttura caratterizzante
il modello utilizzando solo i dati
• Reinforcement learning
Trovare una particolare regola dai
dati senza l’aiuto di un teacher che
massimizza un certo funzionale
32
[email protected]
Processi di Apprendimento
Supervisionato
Non Supervisionato
Con Rinforzo
33
[email protected]
Obbiettivi del Learning Supervisionato
• L’obbiettivo del supervised learning è quello di ottenere
una regola sconosciuta.
• Il teacher conosce la regola.
• Possiamo fare domande al teacher.
• Il teacher ci fornisce la risposta appropriata alla
domanda.
• Le coppie costituite da domande e risposte costituiscono
gli esempi di addestramento (training)
Regole
Domande
Risposte
34
[email protected]
Capacità nel generalizzare
• Se la regola di interesse viene appresa con
successo, possiamo rispondere a domande
che non abbiamo mai appreso prima.
• Tale capacità è denominata generalizzazione.
Regola
Appresa
Risposta
appropriata
Domande
non apprese
35
(Esami)
[email protected]
Apprendimento del Percettrone
Il percettrone realizza la fase di apprendimento mediante la minimizzazione di
una funzione costo che accorda, il valore corrente al tempo n della risposta
y(n) del neurone ed il valore desiderato t(n), aggiustando in modo appropriato i
pesi sinaptici durante le varie iterazioni fino a convergere a risultati ottimali.
b
x1
wk1
(•)
wk2
yk
x2
L’algoritmo di convergenza della fase di apprendimento del percettrone si
compone delle seguenti fasi:
1. Inizialmente al tempo n=0, i pesi sono inizializzati con valori casuali piccoli
wi(n)=0;
2. Ripetere i passi seguenti per tutti i campioni x(1), x(2) ......
3. Attivazione. Il percettrone e` attivato fornendo il vettore delle caratteristiche
x(t) e le risposte desiderate t(n);
36
[email protected]
Apprendimento
b
x1
wk1
(•)
wk2
Per semplicità poniamo x0=-1 e b=w0
yk
x2
4.Calcolare la risposta attuale del percettrone:
N

y (n)    [ wi (n) xi (n)  w0 (n)]
 i 1

u
dove n scandisce i tempi di attivazione del percettrone e coincide
con l’indice del vettore del training set, e  è la seguente funzione
di attivazione (chiamata anche funzione segno):
 1 se u  0

 (u)   0 se u  0
 1 se u  0

1
u
5. Adattamento dei pesi sinaptici:
-1
wi (n  1)  wi (n)  [t (n)  y (n)] xi (n)
37
[email protected]
Apprendimento
x2
dove
 1 se x(n)  K1
t (n)  
 1 se x(n)  K2
é la risposta desiderata.
K1
K2
b
x1
x1
wk1
(•)
wk2
yk
x2
6. Incrementare il tempo n di una unità ed ritornare al passo 3.
Il processo di classificazione basato sul percettrone è ottimizzato aggiustando in
modo iterativo i pesi sinaptici che minimizzano l’errore
e(n)=t(n) - y(n)
38
[email protected]
Fase di Test
x2
Dopo l’addestramento conosciamo:

I pesi sinaptici w1, w2, … wN

Il bias b (intercetta)
K1
K2
x1
Dato un vettore di feature estratte da un oggetto incognito
x=(x1, x2, … xN)
Si stimola il percettrone che genera in output il valore della classe di
appartenenza:
 1 allora x  K1
y (x)  sgn{ [ wi xi  w0 ]}  
i 1
 1 altrim x  K2
N
39
[email protected]
Esempio: Matlab
nnd4pr
40
[email protected]
Limitazioni del Percettrone
Difficoltà nel risolvere problemi non-linearmente separabili
41
[email protected]
CONFRONTO TRA CLASSIFICATORE STATISTICO E
PERCETTRONE
Mentre nell`approccio statistico e` valutata la funzione costo partendo dalle
informazioni statistiche, nell’approccio neurale non e` necessario conoscere le
informazioni statistiche dei vettori delle caratteristiche xi.
Entrambi sono classificatori lineari
Il percettrone opera sotto le condizioni che gli oggetti da classificare sono linearmente
separabili
p(x )
Il classificatore di Bayes assume che la distribuzione
delle classi siano Gaussiane e controlla l’eventuale
sovrapposizione delle distribuzioni delle classi con i
parametri statistici di media  e matrice di covarianza
C.
p( x | K1 )
p( x | K 2 )
1
2
x2
Quando le classi non sono separabili l’algoritmo di apprendimento del
percettrone oscilla continuamente.
L’approccio statistico non presenta problemi invece quando deve classificare
oggetti appartenenti alla zona di sovrapposizione.
42
[email protected]
Evoluzione del Percettrone – Reti
feedforward
x1
x2
x1
x2
yk
.
.
.
x1
x2
Che tipo di funzione può realizzare questa rete?
43
[email protected]
Esempio
•Supponiamo che le linee tratteggiate nel diagramma rappresentano
zone di separazione che dividono gli ingressi implementati dai
neuroni del primo strato:
x1
x2
x1
x2
x1
2nd comp.
.
.
.
yk
x2
1st comp.
Quindi, per esempio, il neurone del secondo strato può fornire in output: 1 se
l’input è all’interno del poligono, e 0 altrimeni.
44
[email protected]
Evoluzione del Percettrone – Reti
feedforward
x1
x2
x1
x2
yk
.
.
.
.
.
.
x1
x2
Che tipo di funzione una rete a tre strati può realizzare?
45
[email protected]
Capacità dei Neuroni soglia
•Assumiamo che i poligoni nel diagramma indichino le regioni di input in cui
ciascun neurone del secondo strato dia un output uguale ad 1:
2nd comp.
x1
x2
x1
x2
x1
x2
.
.
.
.
.
.
1st comp.
Quindi, per esempio, il neurone del terzo strato può dare in output 1 se l’input
ricade in qualsiasi poligono, e 0 altrimenti.
46
[email protected]
Percettrone Multi-Strato
(Multi-layer perceptron)
input layer
hidden layer
output layer
x1
o1
y1
o2
y2
h2
x2
.
.
.
xN
.
.
.
h3
.
.
.
oK
output vector
h1
yK
hJ
47
[email protected]
Apprendimento del Percettrone MultiStrato
Algoritmo di BackPropagation
Prima che l’algoritmo inizi, tutti i pesi wij(0) (sinapsi) della rete
devono essere inizializzati con numeri pseudo-casuali.
Dobbiamo anche fornire un insieme di esempi di training.
Possono essere descritti come un insieme di coppie di vettori
ordinate {(x1, t1), (x2, t2), …, (xM, tM)}.
Quindi possiamo avviare l’algoritmo di backpropagation.
Questo algoritmo iterativamente minimizza l’errore della rete
calcolando il gradiente della superficie della funzione errore
nello spazio dei pesi e aggiustando i pesi nella direzione
opposta (tecnica del gradiente discendente).
48
[email protected]
Apprendimento – Alg. Di BP
Esempio del gradiente discendente: Calcolo del minimo
assoluto di una funzione errore mono-dimensionale f(w):
f(w)
slope: f’(w(0))
W(0)
W(1) = w(0) - f’(w(0))
w
Ripeti iterativamente questa procedura finche` per qualche w(i),
f’(w(i)) è sufficientemente prossimo a 0.
49
[email protected]
Apprendimento – Alg. Di BP
Gradiente di due funzioni bi-dimensionali:
La funzione 2D nel diagramma a sx e` rappresentata da contorni nel diagramma di destra,
dove le frecce indicano la direzione del gradiente in varie posizioni. Ovviamente, il gradiente
punta sempre nella direzione in cui la funzione e` crescente. Per trovare il minimo della
funzione, dobbiamo muoverci sempre in direzione opposta al gradiente.
50
[email protected]
Apprendimento – Alg. Di BP
 x11
x
 21
 .

 .
 xM 1
x12
.
x22
.
.
.
xM 2
.
x1N 
x2 N 

. 

. 
xMN 
 t1 
t 
 2
 . 
 
 . 
 . 
 
t M 
h1
x1
o1
y1
o2
y2
h2
x2
.
.
.
h3
.
.
.
xN
51
hJ
.
.
.
oK
yK
[email protected]
Apprendimento – Alg. Di BP
L’apprendimento avviene come segue:
1. Seleziona casualmente una coppia di vettori (xp, tp) dal
training set, e indichiamolo con (x, t).
2. Usa x come input alla rete e successivamente calcola gli
output di tutti i neuroni presenti nella rete fino ad
ottenere l’output globale della rete y.
52
[email protected]
Apprendimento – Alg. Di BP
3. Calcola l’errore opk, per il pattern p attraverso tutte
le k unità dello strato di output usando la formula:
  (tk  yk ) ' (v )
o
pk
o
k
Input “x”
x1
o1
y1
o2
y2
h2
x2
.
.
.
xN
.
.
.
h3
.
.
.
oK
Target “t”
h1
yK
hJ
53
[email protected]
Apprendimento – Alg. Di BP
Calcola l’errore hpj, per tutti i neuroni J nello strato hidden
usando la formula:
K
   ' (v ) wkj
h
pj
h
k
k 1
o
pk
x1
o1
y1
o2
y2
h2
x2
.
.
.
xN
.
.
.
h3
.
.
.
hJ
oK
54
Target “t”
h1
Input “x”
4.
yK
[email protected]
Apprendimento – Alg. Di BP
Aggiorna il valore dei pesi allo strato hidden usando la
formula:
w ji (n  1)  w ji (n)   x
h
pj i
x1
o1
y1
o2
y2
h2
x2
.
.
.
xN
.
.
.
h3
.
.
.
hJ
oK
55
Target “t”
h1
Input “x”
5.
yK
[email protected]
Apprendimento – Alg. Di BP
6. Aggiorna il valore dei pesi dello strato di output usando la
formula:
o
wkj (n  1)  wkj (n)   pk
 (v hj )
Input “x”
x1
o1
y1
o2
y2
h2
x2
.
.
.
xN
.
.
.
h3
.
.
.
hJ
oK
56
Target “t”
h1
yK
[email protected]
Apprendimento – Alg. Di BP
•Ripeti i passi 1 - 6 per tutte le coppie di vettori del training set;
questa e` denominata epoca di addestramento.
•Esegui tante epoche quante necessarie per ridurre l’errore della
rete E in modo che sia al di sotto di una certa soglia :
P
K
E   ( )
o 2
pk
p 1 k 1
57
[email protected]
Apprendimento – Alg. Di BP
La sola cosa che dobbiamo conoscere prima di far funzionare la
nostra rete è la derivata della nostra funzione di attivazione, per
esempio, ’(vk) per i neuroni di output sigmoidali:
1
 ( vk ) 
1  evk
 (vk )
 ' ( vk ) 
 yk (1  yk )
vk
58
[email protected]
Apprendimento – Alg. Di BP
Ora la nostra rete con l’algoritmo BP e` pronta!
Se noi scegliamo in modo appropriato il tipo ed il numero di
neuroni nella nostra rete, dopo l’addestramento, la rete dovrebbe
mostrare il seguente comportamento:
• se noi forniamo in input uno dei vettori di training, la rete
dovrebbe fornirci l’output atteso (con qualche piccolo margine di
errore).
• Se noi forniamo in input un vettore che la rete non ha mai
“visto” prima, dovrebbe essere in grado di generalizzare fornendo
un output plausibile basato sulla sua conoscenza circa vettori
simili che in precedenza ha osservato. Basato sulla propria
esperienza.
59
[email protected]
Leave-One-Out
Consideriamo di risolvere un problema a c classi K1,…,Kc
con M esempi a disposizione.
Come calcolare le performance del nostro classificatore?
 x11
x
 21
 .

 .
 xM 1
x12
.
x22
.
.
.
xM 2
.
x1N 
x2 N 

. 

. 
xMN 
 t1 
t 
 2
 . 
 
 . 
 . 
 
t M 
Esempio di Test
Esempio di Test
Esempio di Test
60
[email protected]
Matrice di confusione
K1,…,Kc classi di oggetti da discriminare.
Calcolo dell’errore di generalizzazione
Pred.
Vero
K1
Kc
K1
Kc
61
[email protected]
Esempio: Matlab
nnd11bc
62
[email protected]
Competitive Learning
• Prendono spunto dai lavori di von der Malsburg
(1973) circa l’auto-organizazzione (SelfOrganization) di cellule sensibili alle orientazioni
nella corteccia striata.
• Solo un neurone nello strato di output può essere
attivo ad ogni istante.
• La tecnica è utile per scoprire caratteristiche
statisticamente salienti del pattern di input per
classificare.
63
[email protected]
Competitive Learning
Ci sono tre elementi di base per una regola di
apprendimento competitiva (Rumelhart and Zipser, 1985):
• un insieme di neuroni casualmente distribuiti che
rispondono in modo differente ad un unico insieme di
pattern di input.
• Un limite imposto sul livello di output per ciascun
neurone
• un meccanismo che permette la competizione tra i
neuroni, in modo che uno solo di essi sia attivo ad ogni
istante. Tale neurone che vince la competizione è
denominato “winner-takes-all neuron”.
64
[email protected]
Competitive Learning
Inibizione
Eccitazione
Definiamo:
yk output del neurone k
vk campo locale del neurone k per uno
specifico pattern di input x
x1
x2
x3
1 se vk  v j per ogni j tale che j  k
yk  
altrimenti
0
 ( x j  w jk ) se il neurone k vince la competizio ne
w jk  
0
altrimenti

x4
Input
layer
Output
layer
x
x
Questa regola ha l’effetto di
muovere il peso sinaptico wk del
neurone vincente k verso il
pattern di input x.
x
x
x
x
65
[email protected]
Applicazione del learning Competitivo
Le Mappe Auto-organizzanti (SOM)
Inizializzata in modo random la mappa, si possono individuare
tre processi nella formazione di tali mappe:
• Competizione: per ciascun input, I neuroni della rete calcolano
il loro rispettivo valore in base ad una funzione discriminante.
Questa funzione definisce le modalità della competizione tra
neuroni.
• Cooperazione: il neurone vincente determina la locazione
spaziale di un intorno topologico di neuroni eccitati.
• Adattamento sinaptico: abilita i neuroni eccitati ad aumentare il
loro livello di attivazione qualora pattern simili verranno
presentati in futuro.
66
[email protected]
Competizione
Dato il vettore di input x  x1 , x2 ,, xn 
T
Sia mi il vettore del peso sinaptico del neurone i
denotato con
mi  mi1 , mi 2 ,, min 
T
i  1,2, l
•Confronta i seguenti prodotti interni e trova il massimo
m x for i  1,2, l
Equivale a minimizzare la
distanza Euclideatra x ed
T
i
d (i)  x  mi
2
c  arg min i d (i)
67
[email protected]
mi
Cooperazione
Il neurone vincente c localizza il centro di un intorno topologico di
neuroni che cooperano tra loro.
Sia dc,i la distanza laterale, hci è una funzione della distanza laterale
che soddisfa:
•hci simmetrica rispetto al punto massimo dc,i=0;
•L’ampiezza di hc,i  0 for rc  ri   (condizione necessaria
di convergenza).
N c (t1 )
• La larghezza dell’intorno topologico si riduce nel tempo
N (t )
c
 rc  ri 2 

hc,i(t)  exp  
 2 2(t) 


 t 
(t )   0 exp   
 1 
c
t  0,1,2,,
68
[email protected]
2
Algoritmo SOM
1. Inizializzazione. Scegli i valori dei pesi in modo casuale
mi(0) i=1,…,l.
2. Campionamento. Presenta in input alla rete un pattern
x dello spazio dei dati. (|x|=|m|=n)
3. Confronto. Trova il neurone vincitore c al tempo t con
il criterio della distanza Euclidea:
c  arg min i x(t )  mi (t )
i  1,2,, l
N c (t1 )
4. Aggiornamento. Aggiorna i vettori dei pesi come
segue:
mi (t  1)  mi (t )  (t )hci (t )x(t )  mi (t )
5. Continua al passo 2 finché non vi sono
variazioni nella mappa.
69
[email protected]
N c (t 2 )
c
SOM Training
70
[email protected]
SOM After Training
71
[email protected]
SOM After Training
Olive oil
Sunflower
oil
Mix
Sunflower oil
Mix
72
[email protected]
Component planes
73
[email protected]
Learning Vector Quantization
The Som algorithm creates an approximation of the probability
density function of all input samples, whereas the classification
task requires an approximation of the optimal decision borders
between classes.
Learning
Self-Organizing
Class
vector
feature map
labels
quantizer
Teacher
The problem of optimal decision or statistical pattern recognition is
usually discussed in the framework of the Bayes theory of probability.
Let us define the discriminant functions
 k ( x)  p ( x | x  S k ) P( S k )
Unknown samples are classified optimally (i.e. the rate of
misclassifications is minimized) if a sample x is determined to belong
to class Sc according to the decision
74
 k ( x)
 c ( x)  max
k
[email protected]
LVQ1
Let us assume that a number of codebook vectors mi are
placed into the input space to approximate various domains
of the input vector x.
Usually several codebooks are assigned to each class and the
input vector x is then classified by finding
c  arg min i x(t )  mi (t )
Classification can then be found in the following learning
process:
mc (t  1)  mc (t )   (t )x(t )  mc (t ) if x and mc belong to the same class
mc (t  1)  mc (t )  (t )x(t )  mc (t ) if x and mc belong to different classes
mi (t  1)  mi (t ) for i  c
Class S1
Class S1
m
xc
m
Class S2
c
x
75
Class S2
[email protected]