Self-Organizing Map
Da Wikipedia, l'enciclopedia libera.
Le self-organizing map (SOM) sono un particolare tipo di rete neurale artificiale. E' addestrata usando l'apprendimento non supervisionato per produrre una rappresentazione dei campioni di tranining 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 Kohonen map.
Indice |
[modifica] Struttura della rete
Le self-organizing map sono reti neurali Feedforward a singolo strato 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.
[modifica] L'algoritmo di apprendimento
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 celebrale 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, la 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:
- Durante il processo di addestramento si costruisce una mappa, la rete neurale si organizza usando un processo competitivo. E' 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.
- 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).
[modifica] Esempio di algoritmo
[modifica] Definizioni preliminari
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>
[modifica] Alcune variabili
I vettori verranno indicati in grassetto t = iterazione corrente λ = limite nel tempo d'iterazione Wv = vettore dei pesi corrente D = ingresso desiderato Θ(t) = limite dovuto alla distanza dal BMU α(t) = limite di apprendimento dovuto al tempo
[modifica] Passi dell'algoritmo
- Assegna ai vettori dei pesi valori casuali
- Prendi un vettore d'ingresso
- Attraversa ogni nodo della mappa
- Usa la distanza Euclidea per trovare somiglianze fra il vettore d'ingresso e il vettore dei pesi di ogni singolo nodo della mappa
- Individua il nodo a distanza minore (questo nodo verrà chiamato Best Matching Unit o BMU)
- Aggiorna i nodi del vicinato di BMU "tirandoli" più vicino al vettore d'ingresso
- Wv(t + 1) = Wv(t) + Θ(t)α(t)(D(t) - Wv(t))
[modifica] Interpretazione
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.
[modifica] Riferimenti
- ↑ 1,0 1,1 Simon Haykin. 9. Self-organizing maps in Neural networks - A comprehensive foundation. 2nd edition. Prentice-Hall, 1999. ISBN 0-13-908385-5.
- ↑ . "Intro to SOM by Teuvo Kohonen." SOM Toolbox. URL verificata in data 2006-06-18.
[modifica] Vedi Inoltre
[modifica] Collegamenti esterni
- Prof. Kohonen's website in Helsinki University of Technology See ->research ->software for Toolkits and C and Matlab code for SOM's
- Chapter 7: Competition and self organisation: Kohonen nets, part of Kevin Gurney's web-book on Neural Nets.
- Nice application to visualize some neural-network algorithms. Written in Java, so you need a Java-plugin in your browser.
- Programming a Kohonen Neural Network in Java part of a Java Neural Network web book.
- Databionics Prof. A. Ultsch's websites on Visualization and Datamining with SOM
- Kohonen Neural Network applied to the Traveling Salesman Problem (using three dimensions).
- Raptor. An international Company W/ SOM Software for Business Intelligence, Data Mining and Predictive Analysis Request Demo Software in > About> Contact us: Request Information Form.
- Viscovery SOMine: SOM technology tool from Eudaptics
- K-SOM: SOM business tool for generating visual SOM maps