Serie di apprendimento non supervisionato esplorazione di mappe auto-organizzanti

Apprendimento non supervisionato con mappe auto-organizzanti

Scopri come funzionano le mappe auto-organizzanti (Self-Organizing Maps) e perché sono un algoritmo utile per l’apprendimento non supervisionato

Immagine di teckhonc @Unsplash.com

Le mappe auto-organizzanti (SOMs) sono un tipo di rete neurale non supervisionata utilizzata per il clustering e la visualizzazione di dati ad alta dimensionalità. Le SOMs vengono addestrate utilizzando un algoritmo di apprendimento competitivo, in cui i nodi (noti anche come neuroni) nella rete competono per rappresentare i dati in ingresso.

L’architettura delle SOMs consiste in una griglia bidimensionale di nodi, in cui ogni nodo è associato a un vettore di pesi che rappresenta le medie dei centroidi nella soluzione delle SOMs. I nodi sono organizzati in modo tale che i nodi siano raggruppati intorno a punti dati simili, producendo uno strato che rappresenta i dati sottostanti.

Le SOMs sono comunemente utilizzate per una vasta gamma di compiti come:

  • visualizzazione dei dati
  • rilevamento delle anomalie
  • estrazione delle caratteristiche
  • clustering

Possiamo anche visualizzare le SOMs come la versione più semplice di una rete neurale per l’apprendimento non supervisionato!

Anche se possono sembrare confuse all’inizio, le mappe auto-organizzanti (o mappe di Kohonen, dal nome del loro inventore) sono un tipo interessante di algoritmo in grado di mappare la struttura sottostante dai dati. Possono essere descritte come segue:

  • una rete neurale non supervisionata a un solo strato, senza retropropagazione.
  • una soluzione k-means limitata, in cui i nodi hanno la capacità di influenzare lo spostamento degli altri nodi (nel contesto di k-means, i nodi sono noti come centroidi).

In questo articolo, faremo un paio di esperimenti sul modello SOM. Successivamente, applicheremo una mappa auto-organizzante a un caso d’uso reale, dove saremo in grado di vedere le principali caratteristiche e limitazioni dell’algoritmo.

Comprensione di come apprendono le SOMs

Per capire come apprendono le SOMs, iniziamo tracciando un dataset di esempio in 2 dimensioni.

Crea un array numpy con il seguente dataset e plottalo successivamente:

import numpy as npX = np.array([[1, 2], [2, 1], [1, 3], [1, 2.5], [3.1, 5], [4, 10], [3.6, 5.4], [2...