Mappa auto-organizzata: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
Kyme (discussione | contributi)
La parte eliminata pretendeva di spiegare l'algoritmo con un esempio pratico (colori RGB), iniziando la premessa e poi lasciandolo senza procedimento e alcuna conclusione.
 
(22 versioni intermedie di 13 utenti non mostrate)
Riga 1:
LeUna '''mappa auto-organizzata''' o '''mappa auto-organizzante''', {{Inglese|'''self-organizing map'''}} ('''SOM)'''), sonoè unaun fattispecietipo di organizzazione di processi di informazione in [[rete neurale artificiale|rete]] analoghi alle [[rete neurale artificiale|reti neuronalineurali artificiali]]. <br />
 
ÈSono addestrataaddestrate usando l'[[apprendimento non supervisionato]] per produrre una rappresentazione dei campioni di training in uno spazio a bassa dimensione preservando le proprietà [[Topologia|topologiche]] dello spazio degli ingressi. Questa proprietà rende le SOM particolarmente utili per la [[Visualizzazione scientifica|visualizzazione]] di dati di dimensione elevata. Il modello fu inizialmente descritto dal professore [[Finlandia|finlandese]] [[Teuvo Kohonen]] e spesso ci si riferisce a questo modello come '''[[Mappemappe di Kohonen]]'''.
 
== Struttura della rete ==
Le self-organizingmappe mapauto-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 dimensionedimensionalità]] piuttosto che per l'espansione.
 
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 ==
L'obiettivo dell'apprendimento nelle self-organizingmappe mapauto-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|cervello umano]].<ref name="Haykin">
{{Cita libro | nome=Simon | cognome=Haykin | titolo=Neural networks - A comprehensive foundation | url=https://archive.org/details/neuralnetworksco0000hayk_2ed | capitolo=9. Self-organizing maps | edizione=2nd edition | editore=Prentice-Hall | anno=1999 | isbn=0-13-908385-5 }}</ref>
 
I pesi dei neuroni sono inizializzati o a numeri casuali piccoli o a valori campionati uniformemente dal sottospazio attraversato dai due più larghi [[autovettori]] associati alle due [[Analisi delle componenti principali|componenti principali]] più grandi. L'ultima alternativa velocizza significativamente l'addestramento perché i pesi iniziali sono già una buona approssimazione dei pesi della SOM.<ref name="SOMIntro">
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|cervello umano]].<ref name="Haykin">
{{Cita libro | nome=Simon | cognome=Haykin | titolo=Neural networks - A comprehensive foundation | capitolo=9. Self-organizing maps | edizione=2nd edition | editore=Prentice-Hall | anno=1999 | isbn=0-13-908385-5 }}</ref>
 
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.<ref name="SOMIntro">
{{cita web | titolo=Intro to SOM by Teuvo Kohonen |sito=SOM Toolbox | url=http://www.cis.hut.fi/projects/somtoolbox/theory/somalgorithm.shtml | accesso=18 giugno 2006}}
</ref>
 
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'''<math>W_v</math> di un neurone è:
 
:'''Wv'''<math>W_v(t + 1) = '''Wv'''W_v(t) + Θ\Theta(v, t)α\alpha(t)('''D'''(t) - '''Wv'''W_v(t)),</math>
 
dove α<math>\alpha(t)</math> è un coefficiente di apprendimento monotono decrescente e '''<math>D'''(t)</math> è il vettore d'ingresso. La funzione che definisce il vicinato Θ<math>\Theta(v,t)</math> 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.<ref name="Haykin" /> 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).
Riga 26 ⟶ 25:
# 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 algoritmoAlgoritmo ==
=== 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>
 
=== Alcune variabili ===
I vettori verranno indicati in '''grassetto'''
Riga 54 ⟶ 42:
## 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'''<math>W_v(t + 1) = '''Wv'''W_v(t) + Θ\Theta(v,t)α\alpha(t)('''D'''(t) - '''Wv'''W_v(t))</math>
 
== 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.
Riga 63 ⟶ 50:
 
== Note ==
 
<references/>
 
== Bibliografia ==
* {{RivistaVG|mc|107|290-293|5|1991|titolo=Reti neurali di Kohonen}}
 
== Voci correlate ==
 
* [[Intelligenza Artificiale]]
* [[reteRete neurale artificiale]]
 
== Altri progetti ==
{{interprogetto|commonspreposizione=Category:Self-organizing mapsulla}}
 
== Collegamenti esterni ==
* {{Collegamenti esterni}}
* [http://www.cis.hut.fi/teuvo/ Prof. Kohonen's website in Helsinki University of Technology] See ->research ->software for Toolkits and C and Matlab code for SOM's
* [https://web.archive.org/web/20061008073939/http://www.shef.ac.uk/psychology/gurney/notes/l7/l7.html Chapter 7: ''Competition and self organisation: Kohonen nets''], part of Kevin Gurney's web-book on Neural Nets.
* [https://web.archive.org/web/20070904130921/http://www.neuroinformatik.ruhr-uni-bochum.de/ini/VDM/research/gsn/DemoGNG/GNG.html Nice application to visualize some neural-network algorithms.] Written in Java, so you need a Java-plugin in your browser.
* [https://web.archive.org/web/20060904011908/http://www.heatonresearch.com/articles/6/page1.html Programming a Kohonen Neural Network in Java] part of a Java Neural Network web book.
* [http://www.mathematik.uni-marburg.de/~databionics/de Databionics] Prof. A. Ultsch's websites on Visualization and Datamining with SOM
* [http://www.e-nuts.net/it/reti-kohonen Rete di Kohonen] {{Webarchive|url=https://web.archive.org/web/20070611185627/http://www.e-nuts.net/it/reti-kohonen |date=11 giugno 2007 }} applicata al problema del commesso viaggiatore (in 3 dimensioni)
* [http://www.raptorinternational.com/ 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.
* {{collegamento interrotto|1=[http://www.eudaptics.de/somine/index.php?sprache=en/ Viscovery SOMine] |data=aprile 2018 |bot=InternetArchiveBot }}: SOM technology tool from Eudaptics
*[https://www.youtube.com/watch?v=h95lxgHKvEE&list=PLiakwa3N0t4-TnmcBZMDsY2YLRpguXNcH&index=9 SOM in R - videotutorial]
 
{{Apprendimento automatico}}
{{Portale|ingegneria|statistica|informatica}}
 
[[Categoria:Intelligenza artificiale]]