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
75
Embed
1 [email protected] ANALISI DEI CLUSTER (metodo kmeans) Sia linsieme degli esempi di training Supponiamo di volerli classificare in k classi,
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
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
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.
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
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.
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.
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.
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
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);
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.
•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.
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).
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.
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.
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:
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.
• 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.
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”.
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.
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
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.
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
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(