Classificatore LMNN

algoritmo di apprendimento di metriche basato sulla regola del kNN

Un classificatore Large Margin Nearest Neighbor (LMNN) [1] è un algoritmo di apprendimento automatico statistico per l'apprendimento di metriche. Esso apprende una pseudometrica utile alla classificazione basata sui k-vicini più prossimi (k-NN). L'algoritmo si basa sulla programmazione semidefinita, una sottoclasse dell'ottimizzazione convessa.

L'obiettivo dell'apprendimento supervisionato (e, più specificamente, della classificazione) è apprendere una regola di decisione in grado di categorizzare le istanze di dati in classi predefinite. La regola del k-nearest neighbor assume la disponibilità di un insieme di addestramento di istanze etichettate (con classi note). Essa classifica una nuova istanza con la classe ottenuta dal voto di maggioranza delle k istanze di addestramento (etichettate) più vicine. La vicinanza viene misurata con una metrica predefinita. LMNN è un algoritmo che apprende questa (pseudo-)metrica globale in modo supervisionato per migliorare l'accuratezza della classificazione della regola del k-NN.

Impostazioni

modifica

L'idea principale alla base di LMNN è quella di apprendere una pseudometrica in base alla quale tutte le istanze nell'insieme di addestramento siano circondate da almeno k istanze che condividono la stessa etichetta di classe. Se ciò viene raggiunto, l'errore leave-one-out (un caso speciale di convalida incrociata) viene ridotto al minimo. Si assuma che i dati di addestramento siano costituiti da un insieme di dati  , dove l'insieme delle possibili classi (etichette) è   .

L'algoritmo apprende una pseudometrica del tipo

 .

Perché   sia ben definita, la matrice   deve essere semidefinita positiva. La metrica euclidea è un caso speciale, dove   è la matrice identità. Questa generalizzazione è spesso denominata metrica di Mahalanobis.

La figura 1 illustra l'effetto della metrica al variare  . I due cerchi mostrano l'insieme dei punti con uguale distanza dal centro   Nel caso euclideo questo insieme è un cerchio, mentre secondo la metrica generalizzata (Mahalanobis) diventa un ellissoide.

 
Figura 1: Illustrazione schematica di LMNN

L'algoritmo distingue due tipi di punti dati speciali: i vicini-obiettivo e gli impostori.

Vicini-obiettivo

modifica

I vicini-obiettivo vengono selezionati prima dell'apprendimento. Ogni istanza   ha esattamente   diversi vicini target all'interno di  , che condividono tutti la stessa etichetta di classe   I vicini-obiettivo sono le istanze che dovrebbero diventare i vicini più prossimi in base alla metrica appresa. Indichiamo con   l'insieme dei vicini-obiettivo per un'istanza  .

Impostori

modifica

Un impostore di un'istanza   è un'altra istanza   con un'etichetta di classe diversa (ossia  ) che è uno dei vicini più prossimi di   Durante l'apprendimento, l'algoritmo cerca di ridurre al minimo il numero di impostori per tutte le istanze nell'insieme di addestramento.

Algoritmo

modifica

Il LMNN ottimizza la matrice   con l'aiuto della programmazione semidefinita. L'obiettivo è duplice: per ogni istanza  , i vicini-obiettivo dovrebbero essere vicini e gli impostori dovrebbero essere lontani. La Figura 1 mostra l'effetto di tale ottimizzazione con un esempio illustrativo. La metrica appresa fa sì che il vettore di input   sia circondato da istanze di addestramento della stessa classe. Se fosse un'istanza di test, verrebbe classificato correttamente con la regola del k-NN per  .

Il primo obiettivo di ottimizzazione viene raggiunto riducendo al minimo la distanza media tra le istanze e i loro vicini-obiettivo

 .

Il secondo obiettivo si raggiunge penalizzando le distanze dagli impostori   che sono meno di un'unità più lontani rispetto ai vicini-obiettivo   (quindi spingendoli fuori dal vicinato locale di  ). Il valore risultante da minimizzare può essere espresso come:

 

Con una funzione di perdita a cerniera (hinge loss),  , si garantisce che la prossimità dell'impostore non venga penalizzata quando si trova al di fuori del margine. Il margine di un'unità esatta fissa la scala della matrice  . Qualsiasi scelta alternativa   si tradurrebbe in un ridimensionamento di   di un fattore pari a   .

Alla fine, il problema di ottimizzazione diventa:

 
 
 
 
 

L'iperparametro   è una costante positiva (tipicamente impostata tramite convalida incrociata). Qui le variabili   (insieme a due tipi di vincoli) sostituiscono il termine nella funzione di costo. Esse svolgono un ruolo simile alle variabili di slack, utile ad assorbire l'impatto delle violazioni dei vincoli relativi agli impostori. L'ultimo vincolo garantisce che   sia semidefinita positiva. Il problema di ottimizzazione è un'istanza di programmazione semidefinita (SDP). Sebbene, in generale, la SDP comporti un'elevata complessità computazionale, questa particolare istanza di SDP può essere risolta in modo molto efficiente grazie alle proprietà geometriche intrinseche del problema. In particolare, la maggior parte dei vincoli relativi agli impostori sono soddisfatti naturalmente e non devono essere verificati durante l'esecuzione (l'insieme delle variabili   risulta sparso). Una tecnica di risoluzione particolarmente adatta è il metodo basato su working set, che mantiene un piccolo insieme di vincoli che vengono applicati attivamente e solo occasionalmente monitora i vincoli rimanenti (verosimilmente soddisfatti) per garantirne la correttezza.

Estensioni e risolutori efficienti

modifica

LMNN è stato esteso in modo da comprendere più metriche locali [2]. Questa estensione migliora significativamente l'errore di classificazione, ma comporta la risoluzione di un problema di ottimizzazione più costoso. Nel loro articolo sul Journal of Machine Learning Research [3], gli ideatori derivano un risolutore efficiente per il programma semi-definito. Il metodo è capace di apprendere una metrica per il dataset di cifre scritte a mano MNIST in diverse ore, elaborando miliardi di vincoli a coppie. Un'implementazione Matlab open source è disponibile gratuitamente sulla pagina web degli autori.

Kumal et al. [4] hanno esteso l'algoritmo per incorporare invarianze locali nelle trasformazioni polinomiali multivariate e hanno migliorato la regolarizzazione.

Voci correlate

modifica
  1. ^ K.Q. Weinberger, J. Blitzer e L. Saul, Distance Metric Learning for Large Margin Nearest Neighbor Classification, in NIPS 2005, Advances in Neural Information Processing Systems, vol. 18, MIT Press, 2005.
  2. ^ K.Q. Weinberger e L. Saul, Fast solvers and efficient implementations for distance metric learning (PDF), in Proceedings of International Conference on Machine Learning, 2008, pp. 1160–1167.
  3. ^ K.Q. Weinberger e L. Saul, Distance Metric Learning for Large Margin Classification (PDF), in Journal of Machine Learning Research, vol. 10, 2009, pp. 207–244.
  4. ^ M.P. Kumar, Torr P.H.S. e Zisserman A., 2007 IEEE 11th International Conference on Computer Vision, 2007, pp. 1–8, DOI:10.1109/ICCV.2007.4409041, ISBN 978-1-4244-1630-1.
modifica