Una mappa auto-organizzata o mappa auto-organizzante, in inglese self-organizing map (SOM), è un tipo di organizzazione di processi di informazione in rete analoghi alle reti neurali artificiali.
Sono addestrate usando l'apprendimento non supervisionato per produrre una rappresentazione dei campioni di training in uno spazio a bassa dimensione preservando le proprietà topologiche dello spazio degli ingressi. Questa proprietà rende le SOM particolarmente utili per la visualizzazione di dati di dimensione elevata. Il modello fu inizialmente descritto dal professore finlandese Teuvo Kohonen e spesso ci si riferisce a questo modello come mappe di Kohonen.
Le mappe auto-organizzate sono reti neurali a connessioni laterali dove i neuroni di uscita sono organizzati in griglie di bassa dimensione (generalmente 2D o 3D). Ogni ingresso è connesso a tutti i neuroni di uscita. A ogni neurone è associato un vettore dei pesi della stessa dimensione dei vettori d'ingresso. La dimensione del vettore d'ingresso è generalmente molto più alta della dimensione della griglia di uscita. Le SOM sono principalmente usate per la riduzione della dimensionalità piuttosto che per l'espansione.
L'obiettivo dell'apprendimento nelle mappe auto-organizzate è di specializzare parti differenti del reticolo SOM a rispondere similmente a particolari pattern d'ingresso. Questo è in parte motivato da come le informazioni sensoriali visive, uditive o di altro tipo sono gestite da parti separate della corteccia cerebrale nel cervello umano.[1]
I pesi dei neuroni sono inizializzati o a numeri casuali piccoli o a valori campionati uniformemente dal sottospazio attraversato dai due autovettori associati alle due componenti principali più grandi. L'ultima alternativa velocizza significativamente l'addestramento perché i pesi iniziali sono già una buona approssimazione dei pesi della SOM.[2]
L'addestramento utilizza l'apprendimento competitivo. Quando viene passato un campione di training in ingresso alla rete, viene calcolata la sua distanza euclidea da tutti i vettori dei pesi. Il neurone col vettore dei pesi più simile all'ingresso è chiamato Best Matching Unit (BMU). I pesi del BMU e dei neuroni vicini a questo nel reticolo SOM vengono avvicinati al vettore d'ingresso. L'intensità dell'avvicinamento decresce nel tempo e in funzione della distanza dei neuroni dal BMU. La formula utilizzata per l'aggiornamento dei pesi di un neurone è:
dove è un coefficiente di apprendimento monotono decrescente e è il vettore d'ingresso. La funzione che definisce il vicinato dipende dalla distanza nel reticolo fra il BMU e il neurone v. Nella forma semplificata (rete competitiva) è 1 per tutti i neuroni abbastanza vicini al BMU e 0 per gli altri, ma la scelta più comune è una funzione gaussiana. Indipendentemente dalla funzione utilizzata, la funzione vicinato si riduce nel tempo.[1] Inizialmente, quando il vicinato è ampio, l'auto-organizzazione avviene su scala globale (ordering phase). Quando il vicinato è ridotto a solo pochi neuroni i pesi convergono in una stima locale (tuning phase).
Questo processo è ripetuto, per ogni vettore d'ingresso, per un numero di cicli variabile (generalmente ampio). Come la maggior parte delle reti neurali artificiali, la SOM ha due modalità di funzionamento:
L'effettivo algoritmo di addestramento della rete è la quantizzazione vettoriale (vector quantization).
Per spiegare l'algoritmo in profondità, creiamo un array 10x10 di nodi. Ogni nodo conterrà un vettore di pesi, e sarà pienamente a conoscenza della sua "locazione fisica", cioè della sua locazione nell'array. Il vettore dei pesi contenuto in ogni nodo avrà la stessa dimensione dei seguenti vettori d'ingresso. (N.B. I pesi sono inizializzati con valori casuali).
Ora abbiamo bisogno d'ingressi da dare in pasto alla mappa. (Nota: la mappa generata e gli ingressi esistono in sottospazi differenti). Come di consueto, creiamo tre vettori per rappresentare colori nel formato RGB (red, green, blue). Pertanto i nostri vettori d'ingresso avranno tre componenti, ognuna corrispondente ad uno spazio dei colori. I nostri vettori d'ingresso saranno così:
R = <255, 0, 0> G = <0, 255, 0> B = <0, 0, 255>
I vettori verranno indicati in grassetto t = iterazione corrente λ = limite nel tempo d'iterazione Wv = vettore dei pesi corrente D = ingresso desiderato Θ(v,t) = limite dovuto alla distanza dal BMU α(t) = limite di apprendimento dovuto al tempo
Ci sono due modi per interpretare una SOM: