Self-Organizing Map

Da Wikipedia, l'enciclopedia libera.

Le self-organizing map (SOM) sono una fattispecie di organizzazione di processi di informazione in rete analoghi alle reti neuronali artificiali.
È addestrata 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.

Struttura della rete[modifica | modifica wikitesto]

Le self-organizing map 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 dimensione piuttosto che per l'espansione.

L'algoritmo di apprendimento[modifica | modifica wikitesto]

L'obiettivo dell'apprendimento nelle self-organizing map è 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 più larghi autovettori componenti principali. 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 Wv di un neurone è:

Wv(t + 1) = Wv(t) + Θ(v, t)α(t)(D(t) - Wv(t)),

dove α(t) è un coefficiente di apprendimento monotono decrescente e D(t) è il vettore d'ingresso. La funzione che definisce il vicinato Θ(v,t) 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:

  1. Durante il processo di addestramento si costruisce una mappa, la rete neurale si organizza usando un processo competitivo. È necessario dare in ingresso alla rete un numero elevato di vettori d'ingresso, che rappresentino il più possibile il tipo di vettori che ci si aspetta durante la seconda fase (se ce ne sarà una). Altrimenti, gli stessi vettori d'ingresso devono essere "somministrati" più volte.
  2. Durante il processo di mapping un nuovo vettore d'ingresso può essere dato in ingresso alla mappa; questo viene automaticamente classificato o categorizzato. Ci sarà un solo neurone vincitore: quello il cui vettore dei pesi giace più vicino al vettore d'ingresso. (Questo può essere facilmente individuato calcolando la distanza euclidea fra il vettore d'ingresso e il vettore dei pesi).

Esempio di algoritmo[modifica | modifica wikitesto]

Definizioni preliminari[modifica | modifica wikitesto]

L'effettivo algoritmo di training della rete è il 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>

Alcune variabili[modifica | modifica wikitesto]

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

Passi dell'algoritmo[modifica | modifica wikitesto]

  1. Assegna ai vettori dei pesi valori casuali
  2. Prendi un vettore d'ingresso
  3. Attraversa ogni nodo della mappa
    1. Usa la distanza euclidea per trovare somiglianze fra il vettore d'ingresso e il vettore dei pesi di ogni singolo nodo della mappa
    2. Individua il nodo a distanza minore (questo nodo verrà chiamato Best Matching Unit o BMU)
  4. Aggiorna i nodi del vicinato di BMU "tirandoli" più vicino al vettore d'ingresso
    1. Wv(t + 1) = Wv(t) + Θ(v,t)α(t)(D(t) - Wv(t))

Interpretazione[modifica | modifica wikitesto]

Ci sono due modi per interpretare una SOM:

  • Dato che nella fase di addestramento i pesi di tutto il vicinato sono spostati nella stessa direzione, elementi simili tendono ad eccitare neuroni adiacenti. Perciò le SOM formano una mappa semantica dove campioni simili vengono mappati vicini e dissimili distanti.
  • Un altro modo di considerare i pesi neuronali è di pensarli come punti distribuiti nello spazio degli ingressi. Questi formano un'approsimazione della distribuzione dei campioni d'ingresso. Più neuroni puntano a regioni con un'elevata concentrazione di campioni di addestramento, e meno in zone dove i campioni sono scarsi.

Note[modifica | modifica wikitesto]

  1. ^ a b Simon Haykin, 9. Self-organizing maps in Neural networks - A comprehensive foundation, 2nd edition, Prentice-Hall, 1999, ISBN 0-13-908385-5.
  2. ^ Intro to SOM by Teuvo Kohonen in SOM Toolbox. URL consultato il 18 giugno 2006.

Voci correlate[modifica | modifica wikitesto]

Altri progetti[modifica | modifica wikitesto]

Collegamenti esterni[modifica | modifica wikitesto]