Migliorare il clustering di k-means con la disintegrazione

Migliorare il clustering di k-means con la disintegrazione un approccio innovativo

Apprendere la struttura di vicinanza delle classi del dataset migliora il clustering

Un articolo correlato all’articolo “Miglioramento del clustering k-Means con rappresentazioni interne disentangled” di A.F. Agarap e A.P. Azcarraga presentato alla Conferenza Internazionale Congiunta sulle Reti Neurali (IJCNN) 2020

Background

Il clustering è un compito di apprendimento non supervisionato che raggruppa un insieme di oggetti in modo che gli oggetti in un gruppo condividano più somiglianze tra di loro rispetto a quelli degli altri gruppi. È un compito ampiamente studiato poiché le sue applicazioni includono, ma non si limitano, all’uso nell’analisi e visualizzazione dei dati, rilevamento delle anomalie, analisi delle sequenze e elaborazione del linguaggio naturale.

Come altri metodi di apprendimento automatico, gli algoritmi di clustering si basano fortemente sulla scelta della rappresentazione delle caratteristiche. Nel nostro lavoro, miglioriamo la qualità della rappresentazione delle caratteristiche attraverso la disentanglement.

Definiamo la disentanglement come la distanza tra i punti dati appartenenti a classi diverse, rispetto ai punti dati appartenenti a classi simili. Questo è simile al modo in cui il termine menzionato in precedenza è stato trattato da Frosst et al. (2019). Pertanto, massimizzare la disentanglement durante l’apprendimento della rappresentazione significa che la distanza tra i punti dati appartenenti a classi simili viene minimizzata.

Figura dell'autore.

In questo modo, si preserverebbero le appartenenze alle classi degli esempi del dataset, ovvero come i punti dati risiedono nello spazio delle caratteristiche in funzione delle loro classi o etichette. Se le appartenenze alle classi vengono preservate, avremmo uno spazio di rappresentazione delle caratteristiche in cui un classificatore del vicinato più vicino o un algoritmo di clustering funzionerebbero bene.

Clustering

Il clustering è un compito di apprendimento automatico che trova il raggruppamento dei punti dati in cui i punti in un gruppo condividono più somiglianze tra di loro rispetto ai punti in un gruppo diverso.

Figura dell'autore.

Come altri algoritmi di apprendimento automatico, il successo degli algoritmi di clustering dipende dalla scelta della rappresentazione delle caratteristiche. Una rappresentazione può essere migliore di un’altra rispetto al dataset utilizzato. Tuttavia, nell’apprendimento profondo, questo non è il caso poiché le rappresentazioni delle caratteristiche vengono apprese come compito implicito di una rete neurale.

Clustering Profondo

E quindi, lavori recenti come Deep Embedding Clustering o DEC e Variational Deep Embedding o VADE nel 2016, e ClusterGAN nel 2018, hanno sfruttato la capacità di apprendimento delle rappresentazioni delle caratteristiche delle reti neurali.

Figura da DEC (Xie et al., 2016). La struttura della rete di DEC.

Non discuteremo in dettaglio questi lavori in questo articolo, ma l’idea fondamentale tra questi lavori è essenzialmente la stessa, ovvero apprendere contemporaneamente le rappresentazioni delle caratteristiche e gli assegnamenti dei cluster utilizzando una rete neurale profonda. Questo approccio è noto come clustering profondo.

Motivazione

Possiamo preservare le appartenenze alle classi dei punti dati nel dataset prima del clustering?

Anche se i metodi di clustering profondo imparano l’assegnazione dei clustering insieme alle rappresentazioni delle caratteristiche, ciò che non fanno esplicitamente è preservare la struttura del vicinato di classe dell’insieme di dati. Questo serve da motivazione per la nostra ricerca, ovvero se possiamo preservare la struttura del vicinato di classe dell’insieme di dati e quindi eseguire il clustering sulla rappresentazione appresa di una rete profonda.

Nel 2019 è stato proposto il metodo di clustering Not Too Deep o N2D, in cui è stata appresa una rappresentazione del codice latente di un insieme di dati, in cui si è in seguito cercato una varietà sottostante utilizzando tecniche come t-SNE, Isomap e UMAP. La varietà risultante è una rappresentazione adatta al clustering dell’insieme di dati. Quindi, dopo l’apprendimento della varietà, è stata utilizzata come caratteristica dell’insieme di dati per il clustering. Utilizzando questo approccio, è stato possibile ottenere una buona prestazione di clustering. L’approccio N2D è relativamente più semplice rispetto agli algoritmi di clustering profondo, e noi proponiamo un approccio simile.

Apprendimento delle Rappresentazioni Slegate

Utilizziamo anche una rete di autoencoder per apprendere la rappresentazione del codice latente di un insieme di dati, e quindi utilizziamo la rappresentazione per il clustering. Tracciamo la linea di differenza su come apprendiamo una rappresentazione più adatta al clustering. Invece di utilizzare tecniche di apprendimento della varietà, proponiamo di slegare le rappresentazioni apprese di una rete di autoencoder.

Figura dell'autore. Le distanze tra i punti dati simili di classe vengono ridotte al minimo, favorendo così una migliore separazione dei punti dati diversi di classe.

Per slegare le rappresentazioni apprese, utilizziamo la perdita del vicino più vicino morbido o SNNL che misura l’intreccio dei punti dati simili di classe. Ciò che fa questa funzione di perdita è ridurre al minimo le distanze tra i punti dati simili di classe in ogni livello nascosto di una rete neurale. Il lavoro di Frosst, Papernot e Hinton su questa funzione di perdita utilizza un valore di temperatura fisso indicato da T. Il fattore di temperatura determina come controllare l’importanza data alle distanze tra coppie di punti, ad esempio, a basse temperature, la perdita è dominata da distanze ridotte mentre le distanze effettive tra rappresentazioni ampiamente separate diventano meno rilevanti. Hanno utilizzato SNNL per compiti discriminativi e generativi nel loro articolo del 2019.

Figura dell'autore. Abbiamo ottenuto l'esponente da Neelakantan et al., 2015, ma potrebbe essere di qualsiasi valore.

Nel nostro lavoro, abbiamo utilizzato SNNL per il clustering e introduciamo l’uso di una temperatura di annealing invece di una temperatura fissa. La nostra temperatura di annealing è una funzione inversa rispetto al numero di epoche di addestramento indicato da τ.

Figura dell'autore. Confronto della perdita del vicino più vicino morbido con temperatura di annealing e temperatura fissa. Abbiamo campionato e etichettato casualmente 300 punti dati da una distribuzione gaussiana e abbiamo eseguito una discesa del gradiente su di essi con perdita del vicino più vicino morbido. La figura a sinistra mostra la condizione iniziale dei punti etichettati. Possiamo osservare la separazione dei cluster nel codice latente dalla 20° alla 50° epoca, rendendo le classi più isolate. Presentiamo rappresentazioni slegate su insiemi di dati di benchmark nell'articolo</a>.</figcaption></figure><p>Eseguendo una discesa del gradiente su un campione casuale e contrassegnato di 300 punti dati da una distribuzione gaussiana, possiamo vedere che utilizzando la nostra temperatura di ricottura per SNNL, abbiamo ottenuto una disintrecciazione più rapida rispetto all'utilizzo di una temperatura fissa. Come possiamo vedere, anche nei primi 20 epoche, i punti dati simili per classe sono più raggruppati o intrecciati quando si utilizza una temperatura di ricottura rispetto all'utilizzo di una temperatura fissa, come viene mostrato anche numericamente dal valore SNNL.</p>
<h2 id=Il nostro Metodo

Quindi, i nostri contributi sono l’utilizzo di SNNL per la disintrecciazione delle rappresentazioni delle caratteristiche per il clustering, l’utilizzo di una temperatura di ricottura per SNNL e un approccio di clustering più semplice rispetto ai metodi di clustering profondo.

Il nostro metodo può essere riassunto nel seguente modo:

  1. Alleniamo un autoencoder con una perdita composita di entropia incrociata binaria come perdita di ricostruzione e la perdita del vicino più vicino morbido come regolarizzatore. La SNNL per ogni livello nascosto dell’autoencoder viene minimizzata per preservare la struttura dei vicini di classe dell’insieme di dati.
  2. Dopo l’addestramento, utilizziamo la rappresentazione del codice latente di un insieme di dati come le caratteristiche dell’insieme di dati per il clustering.

Clustering sulle Rappresentazioni Disintrecciate

La nostra configurazione sperimentale è la seguente:

  1. Abbiamo utilizzato i dataset di benchmark MNIST, Fashion-MNIST e EMNIST Balanced. Ogni immagine nei dataset è stata appiattita in un vettore a 784 dimensioni. Abbiamo utilizzato le etichette di verità fondamentale come etichette pseudo-clustering per misurare l’accuratezza del clustering del nostro modello.
  2. Non abbiamo eseguito l’ottimizzazione degli iperparametri o altri trucchi di addestramento a causa di vincoli computazionali e per mantenere il nostro approccio semplice.
  3. Altri regolarizzatori come dropout e batch norm sono stati omessi poiché potrebbero influire sul processo di disintrecciazione.
  4. Abbiamo calcolato le prestazioni medie del nostro modello su quattro run, ciascuna con un diverso seed casuale.

Prestazioni di Clustering

Tuttavia, l’autoencoding e il clustering sono entrambe attività di apprendimento non supervisionato, mentre utilizziamo SNNL, una funzione di perdita che utilizza le etichette per preservare la struttura dei vicini di classe dell’insieme di dati.

Figura dell'autore.

Tenendo presente questo, abbiamo simulato la mancanza di dati etichettati utilizzando un piccolo sottoinsieme dei dati di addestramento etichettati del dataset di benchmark. Il numero di esempi etichettati utilizzati è stato scelto arbitrariamente.

Abbiamo recuperato l’accuratezza di clustering riportata di DEC, VaDE, ClusterGAN e N2D dalla letteratura come risultati di riferimento e nella tabella sopra possiamo vedere il riassunto delle nostre scoperte in cui il nostro approccio ha superato i modelli di riferimento.

Si noti che questi risultati sono le migliori prestazioni di clustering tra le quattro esecuzioni per ciascun dataset, poiché i risultati di riferimento nella letteratura sono anche le migliori prestazioni di clustering riportate dagli autori rispettivi.

Visualizzazione delle Rappresentazioni Disintrecciate

Per sostenere ulteriormente le nostre scoperte, abbiamo visualizzato le rappresentazioni disintrecciate dalla nostra rete per ciascun dataset.

Per il dataset EMNIST Balanced, abbiamo scelto casualmente 10 classi da visualizzare per una visualizzazione più semplice e pulita.

Dalle visualizzazioni, possiamo vedere che la rappresentazione del codice latente per ciascun dataset diventa effettivamente più adatta al clustering attraverso la presenza di cluster ben definiti come indicato dalla dispersione dei cluster.

Figura dell'autore. Visualizzazione 3D che confronta la rappresentazione originale e la rappresentazione latente disintrecciata dei tre dataset. Per ottenere questa visualizzazione, le rappresentazioni sono state codificate utilizzando t-SNE con perplexity = 50 e learning rate = 10, ottimizzate per 5.000 iterazioni, con lo stesso seed casuale impostato per tutti i calcoli. Tuttavia, per il clustering, abbiamo utilizzato una dimensionalità più elevata per ottenere prestazioni di clustering migliori.

Allenamento su un numero inferiore di esempi etichettati

Abbiamo anche provato ad allenare il nostro modello su un numero inferiore di esempi etichettati.

Figura dell'autore. Accuratezza del clustering di test sui set di test MNIST e Fashion-MNIST quando vengono utilizzati piccoli sottoinsiemi di dati etichettati per l'allenamento. Sia la rappresentazione originale che l'autoencoder di base non sfruttano il dataset etichettato.

Nella figura sopra possiamo notare che anche con meno esempi di allenamento etichettati, le prestazioni di clustering sulle rappresentazioni disentangled sono ancora paragonabili ai nostri modelli di riferimento tratti dalla letteratura.

Ciò significa che in situazioni in cui i dataset etichettati sono scarsi, questo metodo potrebbe essere utilizzato per ottenere buoni risultati.

Conclusioni

Rispetto ai metodi di clustering profondo, abbiamo adottato un approccio di clustering più semplice utilizzando una perdita composita data dalla perdita di ricostruzione dell’autoencoder e la perdita di soft nearest neighbor per apprendere una rappresentazione più adatta al clustering che migliora le prestazioni di un algoritmo di clustering k-Means.

La nostra espansione della perdita di soft nearest neighbor ha utilizzato una temperatura di annealing che aiuta a una disentanglement più veloce e migliore, il che ha contribuito a migliorare le prestazioni di clustering sui dataset di riferimento. Concludendo il nostro lavoro.

Dopo la pubblicazione del nostro lavoro, diversi altri articoli hanno approfondito la perdita di soft nearest neighbor o sono stati considerati molto simili. In particolare, il documento di apprendimento contrastivo supervisionato (SupCon) di Google, ma con la differenza che l’approccio SupCon propone la normalizzazione delle embeddings, un maggiore utilizzo di data augmentation, una testa contrastiva monouso e una formazione a due fasi.

D’altra parte, il nostro lavoro richiede risorse hardware relativamente inferiori pur ottenendo buoni risultati.

References

  • Frosst, Nicholas, Nicolas Papernot, and Geoffrey Hinton. “Analyzing and improving representations with the soft nearest neighbor loss.” International conference on machine learning. PMLR, 2019.
  • Goldberger, Jacob, et al. “Neighbourhood components analysis.” Advances in neural information processing systems. 2005.
  • Khosla, Prannay, et al. “Supervised contrastive learning.” Advances in neural information processing systems 33 (2020): 18661–18673.
  • Salakhutdinov, Ruslan, and Geoff Hinton. “Learning a nonlinear embedding by preserving class neighbourhood structure.” Artificial Intelligence and Statistics. 2007.