1 [email protected] ANALISI DEI CLUSTER (metodo kmeans) Sia linsieme degli esempi di...

75
1 [email protected] [email protected] ANALISI DEI CLUSTER (metodo kmeans) Sia l’insieme degli esempi di training Supponiamo di volerli classificare in k classi, ed indichiamo con m j , j=1,…,k prototipi delle classi Supponiamo per ora di avere a disposizione i k prototipi m j per cui rappresenteremo il vettore di input con il prototipo più vicino N t t x X 1 j t j i t m x m x min

Transcript of 1 [email protected] ANALISI DEI CLUSTER (metodo kmeans) Sia linsieme degli esempi di...

Page 1: 1 Cosimo.Distante@imm.cnr.it ANALISI DEI CLUSTER (metodo kmeans) Sia linsieme degli esempi di training Supponiamo di volerli classificare in k classi,

1 [email protected]@imm.cnr.it

ANALISI DEI CLUSTER (metodo kmeans)

Sia 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

N

ttxX 1

jt

ji

t mxmx min

Page 2: 1 Cosimo.Distante@imm.cnr.it ANALISI DEI CLUSTER (metodo kmeans) Sia linsieme degli esempi di training Supponiamo di volerli classificare in k classi,

2 [email protected]@imm.cnr.it

ANALISI DEI CLUSTER (metodo kmeans)

jt

ji

t mxmx min

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

Nt ki

itt

ik

ii bXE,..,1 ,...,1

2

1 mxm

altrimenti0

min se1 jt

ji

ttib

mxmx

Page 3: 1 Cosimo.Distante@imm.cnr.it ANALISI DEI CLUSTER (metodo kmeans) Sia linsieme degli esempi di training Supponiamo di volerli classificare in k classi,

3 [email protected]@imm.cnr.it

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

t

ti

t

tti

i b

bm

x

Chiaramente modificando i valori di m anche quelli di b variano e quindi si ripete il processo finché i prototipi si stabilizzano

Page 4: 1 Cosimo.Distante@imm.cnr.it ANALISI DEI CLUSTER (metodo kmeans) Sia linsieme degli esempi di training Supponiamo di volerli classificare in k classi,

4 [email protected]@imm.cnr.it

ANALISI DEI CLUSTER (metodo kmeans)

Page 5: 1 Cosimo.Distante@imm.cnr.it ANALISI DEI CLUSTER (metodo kmeans) Sia linsieme degli esempi di training Supponiamo di volerli classificare in k classi,

5 [email protected]@imm.cnr.it

ANALISI DEI CLUSTER (metodo kmeans)

Page 6: 1 Cosimo.Distante@imm.cnr.it ANALISI DEI CLUSTER (metodo kmeans) Sia linsieme degli esempi di training Supponiamo di volerli classificare in k classi,

6 [email protected]@imm.cnr.it

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%.

Page 7: 1 Cosimo.Distante@imm.cnr.it ANALISI DEI CLUSTER (metodo kmeans) Sia linsieme degli esempi di training Supponiamo di volerli classificare in k classi,

7 [email protected]@imm.cnr.it

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

2. Calcola i centri mi, i=1,…,k con

3. Calcola la funzione costo.

Criterio di stop: se E<soglia o non vi sono variazioni significative tra una iterazione ed un’altra

4. Calcola la nuova matrice bVai al passo 2

N

t

ti

N

t

tti

i

b

xbm

1

1

)(

)(

N

t

k

ii

ttik mxbmmbE

1 11 )(),,,(

k

j jt

it

ti

mx

mx

b

1

1

2

1

k

i

ti Ntb

1

,,1 1

),1[

Page 8: 1 Cosimo.Distante@imm.cnr.it ANALISI DEI CLUSTER (metodo kmeans) Sia linsieme degli esempi di training Supponiamo di volerli classificare in k classi,

8 [email protected]@imm.cnr.it

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.

Page 9: 1 Cosimo.Distante@imm.cnr.it ANALISI DEI CLUSTER (metodo kmeans) Sia linsieme degli esempi di training Supponiamo di volerli classificare in k classi,

9 [email protected]@imm.cnr.it

Template Matching

Opera come correlazione in analogia al processo di convoluzione. Il template matching e` anche descritto come “matched filtering”.

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.

•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

Page 10: 1 Cosimo.Distante@imm.cnr.it ANALISI DEI CLUSTER (metodo kmeans) Sia linsieme degli esempi di training Supponiamo di volerli classificare in k classi,

10 [email protected]@imm.cnr.it

Template Matching

dove W rappresenta la finestra del campione.

Misure di similarita`:

WjiWjiWji

gfSgfSgfS),(

23

),(2

),(1 )(||||max

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:

M i j g l k f i l j kk

L

l

L

( , ) ( , ) ( , )

11

dove i e j sono gli indici della finestra nell’immagine f.

Il max di M(i,j) Il max di M(i,j) rappresenta l’oggetto rappresenta l’oggetto cercatocercato

Page 11: 1 Cosimo.Distante@imm.cnr.it ANALISI DEI CLUSTER (metodo kmeans) Sia linsieme degli esempi di training Supponiamo di volerli classificare in k classi,

11 [email protected]@imm.cnr.it

Esempio

TemplateData Set 1 Data Set 2

Data Set 3 Data Set 4 Data Set 5

Page 12: 1 Cosimo.Distante@imm.cnr.it ANALISI DEI CLUSTER (metodo kmeans) Sia linsieme degli esempi di training Supponiamo di volerli classificare in k classi,

12 [email protected]@imm.cnr.it

Data Set 1

Mappa di correlazione Immagine originale, Rettangolo trovato, e mappa di correlazione

Page 13: 1 Cosimo.Distante@imm.cnr.it ANALISI DEI CLUSTER (metodo kmeans) Sia linsieme degli esempi di training Supponiamo di volerli classificare in k classi,

13 [email protected]@imm.cnr.it

Data Set 2

Mappa di correlazione Immagine originale, Rettangolo trovato.

Page 14: 1 Cosimo.Distante@imm.cnr.it ANALISI DEI CLUSTER (metodo kmeans) Sia linsieme degli esempi di training Supponiamo di volerli classificare in k classi,

14 [email protected]@imm.cnr.it

Data Set 3

Mappa di correlazione Immagine originale, Rettangolo trovato.

Page 15: 1 Cosimo.Distante@imm.cnr.it ANALISI DEI CLUSTER (metodo kmeans) Sia linsieme degli esempi di training Supponiamo di volerli classificare in k classi,

15 [email protected]@imm.cnr.it

Data Set 4

Mappa di correlazione Immagine originale, Rettangolo trovato.

Page 16: 1 Cosimo.Distante@imm.cnr.it ANALISI DEI CLUSTER (metodo kmeans) Sia linsieme degli esempi di training Supponiamo di volerli classificare in k classi,

16 [email protected]@imm.cnr.it

Data Set 5, Corr. Map

Mappa di correlazione Immagine originale.

Page 17: 1 Cosimo.Distante@imm.cnr.it ANALISI DEI CLUSTER (metodo kmeans) Sia linsieme degli esempi di training Supponiamo di volerli classificare in k classi,

17 [email protected]@imm.cnr.it

Data Set 5, Results

Soglia impostata a 0.800 Soglia impostata a 0.200

Page 18: 1 Cosimo.Distante@imm.cnr.it ANALISI DEI CLUSTER (metodo kmeans) Sia linsieme degli esempi di training Supponiamo di volerli classificare in k classi,

18 [email protected]@imm.cnr.it

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:

M i jg l k f i l j k

f i l j k

k

L

l

L

k

L

l

L( , )

( , ) ( , )

{ ( , )}

11

2

11

Page 19: 1 Cosimo.Distante@imm.cnr.it ANALISI DEI CLUSTER (metodo kmeans) Sia linsieme degli esempi di training Supponiamo di volerli classificare in k classi,

19 [email protected]@imm.cnr.it

Template Matching - Limitazioni

•Usa informazioni globali, sensibile a occlusioni

•Usa informazioni sui pixel: fortemente dipendente dall’illuminazione e dal sensore.

Page 20: 1 Cosimo.Distante@imm.cnr.it ANALISI DEI CLUSTER (metodo kmeans) Sia linsieme degli esempi di training Supponiamo di volerli classificare in k classi,

20 [email protected]@imm.cnr.it

Page 21: 1 Cosimo.Distante@imm.cnr.it ANALISI DEI CLUSTER (metodo kmeans) Sia linsieme degli esempi di training Supponiamo di volerli classificare in k classi,

21 [email protected]@imm.cnr.it

Reti Neurali

Page 22: 1 Cosimo.Distante@imm.cnr.it ANALISI DEI CLUSTER (metodo kmeans) Sia linsieme degli esempi di training Supponiamo di volerli classificare in k classi,

22 [email protected]@imm.cnr.it

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

Page 23: 1 Cosimo.Distante@imm.cnr.it ANALISI DEI CLUSTER (metodo kmeans) Sia linsieme degli esempi di training Supponiamo di volerli classificare in k classi,

23 [email protected]@imm.cnr.it

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.

Page 24: 1 Cosimo.Distante@imm.cnr.it ANALISI DEI CLUSTER (metodo kmeans) Sia linsieme degli esempi di training Supponiamo di volerli classificare in k classi,

24 [email protected]@imm.cnr.it

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.

Page 25: 1 Cosimo.Distante@imm.cnr.it ANALISI DEI CLUSTER (metodo kmeans) Sia linsieme degli esempi di training Supponiamo di volerli classificare in k classi,

25 [email protected]@imm.cnr.it

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)

Page 26: 1 Cosimo.Distante@imm.cnr.it ANALISI DEI CLUSTER (metodo kmeans) Sia linsieme degli esempi di training Supponiamo di volerli classificare in k classi,

26 [email protected]@imm.cnr.it

Modello Biologico - Il Neurone

Page 27: 1 Cosimo.Distante@imm.cnr.it ANALISI DEI CLUSTER (metodo kmeans) Sia linsieme degli esempi di training Supponiamo di volerli classificare in k classi,

27 [email protected]@imm.cnr.it

Modello del Neurone

k

N

jjkjk bxwv

1

)( kk vy

Sigmoidale

lineare

Soglia

)(v

x1

x2

xN

w1

w2

wN

kv

kb

((••))

Funzione di Funzione di attivazioneattivazione

kyOutputOutput

Page 28: 1 Cosimo.Distante@imm.cnr.it ANALISI DEI CLUSTER (metodo kmeans) Sia linsieme degli esempi di training Supponiamo di volerli classificare in k classi,

28 [email protected]@imm.cnr.it

PercettroneLa 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:

Il calcolo di questo neurone puo` essere descritto come il prodotto interno di vettori bi-dimensionali x e wk, seguiti da un’operazione di thresholding.

x1

x2

wk1

wk2

yk

b

((••))

wwkk

x1

x2

xx

02211 bwxwx kk

Yk=1

Yk=0

Page 29: 1 Cosimo.Distante@imm.cnr.it ANALISI DEI CLUSTER (metodo kmeans) Sia linsieme degli esempi di training Supponiamo di volerli classificare in k classi,

29 [email protected]@imm.cnr.it

Percettrone

0,

0

011 tx

0,

1

022 tx

0,

0

133 tx

1,

1

144 tx

Soluzione

2

2w

w

xwxww )( yte oldoldnew

yte Errore

ebb oldnew

Regola di apprendimentoRegola di apprendimento

Page 30: 1 Cosimo.Distante@imm.cnr.it ANALISI DEI CLUSTER (metodo kmeans) Sia linsieme degli esempi di training Supponiamo di volerli classificare in k classi,

30 [email protected]@imm.cnr.it

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:

Apprendimento

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

Page 31: 1 Cosimo.Distante@imm.cnr.it ANALISI DEI CLUSTER (metodo kmeans) Sia linsieme degli esempi di training Supponiamo di volerli classificare in k classi,

31 [email protected]@imm.cnr.it

La Ricerca nei sistemi che apprendono

Formalizzare matematicamente l’essenza dell’apprendimento

(Scienze dell’Informazione)

Capire il cervello

(fisiologia, psicologia, neuroscienze, medicina)

Sviluppare macchine che apprendono

(informatica ed ingegneria elettronica)

Page 32: 1 Cosimo.Distante@imm.cnr.it ANALISI DEI CLUSTER (metodo kmeans) Sia linsieme degli esempi di training Supponiamo di volerli classificare in k classi,

32 [email protected]@imm.cnr.it

3 Tipi di apprendimento• Supervised learning

Trovare una regola caratterizzante il nostro modello partendo dai dati e dall’aiuto di un teacher

• Unsupervised learningTrovare la struttura caratterizzante il modello utilizzando solo i dati

• Reinforcement learningTrovare una particolare regola dai dati senza l’aiuto di un teacher che massimizza un certo funzionale

Page 33: 1 Cosimo.Distante@imm.cnr.it ANALISI DEI CLUSTER (metodo kmeans) Sia linsieme degli esempi di training Supponiamo di volerli classificare in k classi,

33 [email protected]@imm.cnr.it

Processi di Apprendimento

Supervisionato

Non Supervisionato

Con Rinforzo

Page 34: 1 Cosimo.Distante@imm.cnr.it ANALISI DEI CLUSTER (metodo kmeans) Sia linsieme degli esempi di training Supponiamo di volerli classificare in k classi,

34 [email protected]@imm.cnr.it

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

Page 35: 1 Cosimo.Distante@imm.cnr.it ANALISI DEI CLUSTER (metodo kmeans) Sia linsieme degli esempi di training Supponiamo di volerli classificare in k classi,

35 [email protected]@imm.cnr.it

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

AppresaRisposta

appropriata

Domande non apprese

(Esami)

Page 36: 1 Cosimo.Distante@imm.cnr.it ANALISI DEI CLUSTER (metodo kmeans) Sia linsieme degli esempi di training Supponiamo di volerli classificare in k classi,

36 [email protected]@imm.cnr.it

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.

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);

Apprendimento del Percettrone

x1

x2

wk1

wk2

yk

b

((••))

Page 37: 1 Cosimo.Distante@imm.cnr.it ANALISI DEI CLUSTER (metodo kmeans) Sia linsieme degli esempi di training Supponiamo di volerli classificare in k classi,

37 [email protected]@imm.cnr.it

4.Calcolare la risposta attuale del percettrone:

Apprendimento

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):

5. Adattamento dei pesi sinaptici:

)()]()([)()1( nxnyntnwnw iii

01

00

01

)(

use

use

use

u1

-1

u

x1

x2

wk1

wk2

yk

b

((••))

Per semplicità poniamo x0=-1 e b=w0

N

iii nwnxnwny

10 )]()()([)(

u

Page 38: 1 Cosimo.Distante@imm.cnr.it ANALISI DEI CLUSTER (metodo kmeans) Sia linsieme degli esempi di training Supponiamo di volerli classificare in k classi,

38 [email protected]@imm.cnr.it

dove

Apprendimento

é la risposta desiderata.

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)

2

1

)(1

)(1)(

Knxse

Knxsent

1x

2x

1K

2K

x1

x2

wk1

wk2

yk

b

((••))

Page 39: 1 Cosimo.Distante@imm.cnr.it ANALISI DEI CLUSTER (metodo kmeans) Sia linsieme degli esempi di training Supponiamo di volerli classificare in k classi,

39 [email protected]@imm.cnr.it

Fase di Test

Dopo l’addestramento conosciamo:

I pesi sinaptici w1, w2, … wN

Il bias b (intercetta)

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:

2

1

10 1

1]}[sgn{)(

Kaltrim

Kallorawxwy

N

iii x

xx

1x

2x

1K

2K

Page 40: 1 Cosimo.Distante@imm.cnr.it ANALISI DEI CLUSTER (metodo kmeans) Sia linsieme degli esempi di training Supponiamo di volerli classificare in k classi,

40 [email protected]@imm.cnr.it

nnd4pr

Esempio: Matlab

Page 41: 1 Cosimo.Distante@imm.cnr.it ANALISI DEI CLUSTER (metodo kmeans) Sia linsieme degli esempi di training Supponiamo di volerli classificare in k classi,

41 [email protected]@imm.cnr.it

Limitazioni del Percettrone

Difficoltà nel risolvere problemi non-linearmente separabili

Page 42: 1 Cosimo.Distante@imm.cnr.it ANALISI DEI CLUSTER (metodo kmeans) Sia linsieme degli esempi di training Supponiamo di volerli classificare in k classi,

42 [email protected]@imm.cnr.it

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

CONFRONTO TRA CLASSIFICATORE STATISTICO E PERCETTRONE

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.

2x

)(xp)|( 1Kxp

)|( 2Kxp

21

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.

Page 43: 1 Cosimo.Distante@imm.cnr.it ANALISI DEI CLUSTER (metodo kmeans) Sia linsieme degli esempi di training Supponiamo di volerli classificare in k classi,

43 [email protected]@imm.cnr.it

Che tipo di funzione può realizzare questa rete?

x1

x2

x1

x2

x1

x2

.

.

.

yk

Evoluzione del Percettrone – Reti feedforward

Page 44: 1 Cosimo.Distante@imm.cnr.it ANALISI DEI CLUSTER (metodo kmeans) Sia linsieme degli esempi di training Supponiamo di volerli classificare in k classi,

44 [email protected]@imm.cnr.it

•Supponiamo che le linee tratteggiate nel diagramma rappresentano zone di separazione che dividono gli ingressi implementati dai neuroni del primo strato:

1st comp.

2nd comp.

Quindi, per esempio, il neurone del secondo strato può fornire in output: 1 se l’input è all’interno del poligono, e 0 altrimeni.

Esempio

.

.

.

yk

x1

x2

x1

x2

x1

x2

Page 45: 1 Cosimo.Distante@imm.cnr.it ANALISI DEI CLUSTER (metodo kmeans) Sia linsieme degli esempi di training Supponiamo di volerli classificare in k classi,

45 [email protected]@imm.cnr.it

Che tipo di funzione una rete a tre strati può realizzare?

x1

x2

x1

x2

x1

x2

.

.

.

yk

.

.

.

Evoluzione del Percettrone – Reti feedforward

Page 46: 1 Cosimo.Distante@imm.cnr.it ANALISI DEI CLUSTER (metodo kmeans) Sia linsieme degli esempi di training Supponiamo di volerli classificare in k classi,

46 [email protected]@imm.cnr.it

•Assumiamo che i poligoni nel diagramma indichino le regioni di input in cui ciascun neurone del secondo strato dia un output uguale ad 1:

1st comp.

2nd comp.

Quindi, per esempio, il neurone del terzo strato può dare in output 1 se l’input ricade in qualsiasi poligono, e 0 altrimenti.

Capacità dei Neuroni soglia

.

.

....

x1

x2

x1

x2

x1

x2

Page 47: 1 Cosimo.Distante@imm.cnr.it ANALISI DEI CLUSTER (metodo kmeans) Sia linsieme degli esempi di training Supponiamo di volerli classificare in k classi,

47 [email protected]@imm.cnr.it

Percettrone Multi-Strato(Multi-layer perceptron)

output layerhidden layerinput layer

inpu

t vec

tor

outp

ut v

ecto

r

x1

x2

xN

.

.

.

.

.

....

y1

y2

yK

h1

h2

hJ

h3

o1

o2

oK

Page 48: 1 Cosimo.Distante@imm.cnr.it ANALISI DEI CLUSTER (metodo kmeans) Sia linsieme degli esempi di training Supponiamo di volerli classificare in k classi,

48 [email protected]@imm.cnr.it

Apprendimento del Percettrone MultiStratoAlgoritmo 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).

Page 49: 1 Cosimo.Distante@imm.cnr.it ANALISI DEI CLUSTER (metodo kmeans) Sia linsieme degli esempi di training Supponiamo di volerli classificare in k classi,

49 [email protected]@imm.cnr.it

Apprendimento – Alg. Di BP

Esempio del gradiente discendente: Calcolo del minimo assoluto di una funzione errore mono-dimensionale f(w):

f(w)f(w)

wwW(0)W(0)

slope: f’(w(0))slope: f’(w(0))

W(1)W(1) = w(0) - = w(0) - f’(w(0))f’(w(0))

Ripeti iterativamente questa procedura finche` per qualche w(i), f’(w(i)) è sufficientemente prossimo a 0.

Page 50: 1 Cosimo.Distante@imm.cnr.it ANALISI DEI CLUSTER (metodo kmeans) Sia linsieme degli esempi di training Supponiamo di volerli classificare in k classi,

50 [email protected]@imm.cnr.it

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.

Page 51: 1 Cosimo.Distante@imm.cnr.it ANALISI DEI CLUSTER (metodo kmeans) Sia linsieme degli esempi di training Supponiamo di volerli classificare in k classi,

51 [email protected]@imm.cnr.it

Apprendimento – Alg. Di BP

MNMM

N

N

xxx

xxx

xxx

.

...

...

.

.

21

22221

11211

M

2

1

t

.

.

.

t

t

x1

x2

xN

.

.

.

.

.

....

y1

y2

yK

h1

h2

hJ

h3

o1

o2

oK

Page 52: 1 Cosimo.Distante@imm.cnr.it ANALISI DEI CLUSTER (metodo kmeans) Sia linsieme degli esempi di training Supponiamo di volerli classificare in k classi,

52 [email protected]@imm.cnr.it

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.

Page 53: 1 Cosimo.Distante@imm.cnr.it ANALISI DEI CLUSTER (metodo kmeans) Sia linsieme degli esempi di training Supponiamo di volerli classificare in k classi,

53 [email protected]@imm.cnr.it

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:

)(')( okkk

opk vyt

Tar

get “

t”

Inpu

t “x”

x1

x2

xN

.

.

.

.

.

....

y1

y2

yK

h1

h2

hJ

h3

o1

o2

oK

Page 54: 1 Cosimo.Distante@imm.cnr.it ANALISI DEI CLUSTER (metodo kmeans) Sia linsieme degli esempi di training Supponiamo di volerli classificare in k classi,

54 [email protected]@imm.cnr.it

Apprendimento – Alg. Di BP4. Calcola l’errore h

pj, per tutti i neuroni J nello strato hidden usando la formula:

kj

K

k

opk

hk

hpj wv

1

)('

Tar

get “

t”

Inpu

t “x”

x1

x2

xN

.

.

.

.

.

....

y1

y2

yK

h1

h2

hJ

h3

o1

o2

oK

Page 55: 1 Cosimo.Distante@imm.cnr.it ANALISI DEI CLUSTER (metodo kmeans) Sia linsieme degli esempi di training Supponiamo di volerli classificare in k classi,

55 [email protected]@imm.cnr.it

Apprendimento – Alg. Di BP

5. Aggiorna il valore dei pesi allo strato hidden usando la formula:

ihpjjiji xnwnw )()1(

Tar

get “

t”

Inpu

t “x”

x1

x2

xN

.

.

.

.

.

....

y1

y2

yK

h1

h2

hJ

h3

o1

o2

oK

Page 56: 1 Cosimo.Distante@imm.cnr.it ANALISI DEI CLUSTER (metodo kmeans) Sia linsieme degli esempi di training Supponiamo di volerli classificare in k classi,

56 [email protected]@imm.cnr.it

Apprendimento – Alg. Di BP

6. Aggiorna il valore dei pesi dello strato di output usando la formula:

)()()1( hj

opkkjkj vnwnw

Tar

get “

t”

Inpu

t “x”

x1

x2

xN

.

.

.

.

.

....

y1

y2

yK

h1

h2

hJ

h3

o1

o2

oK

Page 57: 1 Cosimo.Distante@imm.cnr.it ANALISI DEI CLUSTER (metodo kmeans) Sia linsieme degli esempi di training Supponiamo di volerli classificare in k classi,

57 [email protected]@imm.cnr.it

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 :

2

1 1

)(

P

p

K

k

opkE

Page 58: 1 Cosimo.Distante@imm.cnr.it ANALISI DEI CLUSTER (metodo kmeans) Sia linsieme degli esempi di training Supponiamo di volerli classificare in k classi,

58 [email protected]@imm.cnr.it

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:

kevk v1

1)(

)1()(

)(' kkk

kk yy

v

vv

Page 59: 1 Cosimo.Distante@imm.cnr.it ANALISI DEI CLUSTER (metodo kmeans) Sia linsieme degli esempi di training Supponiamo di volerli classificare in k classi,

59 [email protected]@imm.cnr.it

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.

Page 60: 1 Cosimo.Distante@imm.cnr.it ANALISI DEI CLUSTER (metodo kmeans) Sia linsieme degli esempi di training Supponiamo di volerli classificare in k classi,

60 [email protected]@imm.cnr.it

Leave-One-Out

MNMM

N

N

xxx

xxx

xxx

.

...

...

.

.

21

22221

11211

M

2

1

t

.

.

.

t

t

Consideriamo di risolvere un problema a c classi K1,…,Kc con M esempi a disposizione.

Come calcolare le performance del nostro classificatore?

Esempio di TestEsempio di Test

Esempio di Test

Page 61: 1 Cosimo.Distante@imm.cnr.it ANALISI DEI CLUSTER (metodo kmeans) Sia linsieme degli esempi di training Supponiamo di volerli classificare in k classi,

61 [email protected]@imm.cnr.it

Matrice di confusioneK1,…,Kc classi di oggetti da discriminare. Calcolo dell’errore di generalizzazione

K1 Kc

K1

Kc

Vero

Pred.

Page 62: 1 Cosimo.Distante@imm.cnr.it ANALISI DEI CLUSTER (metodo kmeans) Sia linsieme degli esempi di training Supponiamo di volerli classificare in k classi,

62 [email protected]@imm.cnr.it

nnd11bc

Esempio: Matlab

Page 63: 1 Cosimo.Distante@imm.cnr.it ANALISI DEI CLUSTER (metodo kmeans) Sia linsieme degli esempi di training Supponiamo di volerli classificare in k classi,

63 [email protected]@imm.cnr.it

Competitive Learning

• Prendono spunto dai lavori di von der Malsburg (1973) circa l’auto-organizazzione (Self-Organization) 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.

Page 64: 1 Cosimo.Distante@imm.cnr.it ANALISI DEI CLUSTER (metodo kmeans) Sia linsieme degli esempi di training Supponiamo di volerli classificare in k classi,

64 [email protected]@imm.cnr.it

Competitive LearningCi 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”.

Page 65: 1 Cosimo.Distante@imm.cnr.it ANALISI DEI CLUSTER (metodo kmeans) Sia linsieme degli esempi di training Supponiamo di volerli classificare in k classi,

65 [email protected]@imm.cnr.it

Competitive Learning

x1

x2

x3

x4

Input layer

Output layer

InibizioneEccitazione

altrimenti0

che tale ogniper se1 kjjvvy jk

k

Definiamo:yk output del neurone k

vk campo locale del neurone k per uno specifico pattern di input x

x

x

x

x

x

x

altrimenti0

necompetiziola vince neurone il se)( kwxw jkj

jk

Questa regola ha l’effetto di muovere il peso sinaptico wk del neurone vincente k verso il pattern di input x.

Page 66: 1 Cosimo.Distante@imm.cnr.it ANALISI DEI CLUSTER (metodo kmeans) Sia linsieme degli esempi di training Supponiamo di volerli classificare in k classi,

66 [email protected]@imm.cnr.it

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.

Page 67: 1 Cosimo.Distante@imm.cnr.it ANALISI DEI CLUSTER (metodo kmeans) Sia linsieme degli esempi di training Supponiamo di volerli classificare in k classi,

67 [email protected]@imm.cnr.it

CompetizioneDato il vettore di input

2)( imxid

•Confronta i seguenti prodotti interni e trova il massimo

)(minarg idc i

Tnxxx ,,, 21 x

limmm Tiniii ,2,1 ,,, 21 m

Sia mi il vettore del peso sinaptico del neurone i denotato con

xmTi

li ,2,1for Equivale a minimizzare la distanza Euclideatra x ed mi

Page 68: 1 Cosimo.Distante@imm.cnr.it ANALISI DEI CLUSTER (metodo kmeans) Sia linsieme degli esempi di training Supponiamo di volerli classificare in k classi,

68 [email protected]@imm.cnr.it

CooperazioneIl 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 (condizione necessaria di convergenza).• La larghezza dell’intorno topologico si riduce nel tempo

icic rr h for 0,

,,2,1,0 exp)(1

0

t

tt

(t)

rr(t)h ic

c,i 2

2

2exp

c

)(tN 2c

)(tN 1c

Page 69: 1 Cosimo.Distante@imm.cnr.it ANALISI DEI CLUSTER (metodo kmeans) Sia linsieme degli esempi di training Supponiamo di volerli classificare in k classi,

69 [email protected]@imm.cnr.it

Algoritmo SOM1. Inizializzazione. Scegli i valori dei pesi in modo casuale mi(0) i=1,…,l.

littc ii ,,2,1 )()(minarg mx

c

)(tN 2c

)(tN 1c

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:

4. Aggiornamento. Aggiorna i vettori dei pesi come segue: )()()()()()1( tmtxthttmtm iciii 5. Continua al passo 2 finché non vi sono variazioni nella mappa.

Page 70: 1 Cosimo.Distante@imm.cnr.it ANALISI DEI CLUSTER (metodo kmeans) Sia linsieme degli esempi di training Supponiamo di volerli classificare in k classi,

70 [email protected]@imm.cnr.it

SOM Training

Page 71: 1 Cosimo.Distante@imm.cnr.it ANALISI DEI CLUSTER (metodo kmeans) Sia linsieme degli esempi di training Supponiamo di volerli classificare in k classi,

71 [email protected]@imm.cnr.it

SOM After Training

Page 72: 1 Cosimo.Distante@imm.cnr.it ANALISI DEI CLUSTER (metodo kmeans) Sia linsieme degli esempi di training Supponiamo di volerli classificare in k classi,

72 [email protected]@imm.cnr.it

SOM After Training

Sunflower oil

Sunflower oil

Mix

Olive oil

Mix

Page 73: 1 Cosimo.Distante@imm.cnr.it ANALISI DEI CLUSTER (metodo kmeans) Sia linsieme degli esempi di training Supponiamo di volerli classificare in k classi,

73 [email protected]@imm.cnr.it

Component planes

Page 74: 1 Cosimo.Distante@imm.cnr.it ANALISI DEI CLUSTER (metodo kmeans) Sia linsieme degli esempi di training Supponiamo di volerli classificare in k classi,

74 [email protected]@imm.cnr.it

Learning Vector QuantizationThe 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.

Self-Organizingfeature map

Learning vector quantizer

Classlabels

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 )()|()( kkk SPSxxpx 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

)(max)( xx kk

c

Page 75: 1 Cosimo.Distante@imm.cnr.it ANALISI DEI CLUSTER (metodo kmeans) Sia linsieme degli esempi di training Supponiamo di volerli classificare in k classi,

75 [email protected]@imm.cnr.it

LVQ1Let 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

Classification can then be found in the following learning process:

)()()()()1( tmtxttmtm ccc

)()(minarg ttc ii mx

Class S1

Class S2

mcx

if x and mc belong to the same class )()()()()1( tmtxttmtm ccc if x and mc belong to different classescitmtm ii for )()1(

Class S1

Class S2

mc

x