Differenze tra le versioni di "Rete neurale"

m
Bot: fix citazione web (v. discussione)
m (Bot: fix citazione web (v. discussione))
Nello stesso anno, [[Frank Rosenblatt|F. Rosenblatt]] nel libro "''Phychological review''" introduce il primo schema di rete neurale, detto ''[[percettrone|Perceptron]]'' (percettrone), antesignano delle attuali reti neurali, per il riconoscimento e la classificazione di forme, allo scopo di fornire un'interpretazione dell'organizzazione generale dei sistemi biologici. Il modello probabilistico di Rosenblatt è quindi mirato all'analisi, in forma matematica, di funzioni quali l'immagazzinamento delle informazioni, e della loro influenza sul riconoscimento dei pattern; esso costituisce un progresso decisivo rispetto al modello binario di McCulloch e Pitts, perché i suoi pesi sinaptici sono variabili e quindi il percettrone è in grado di apprendere.
 
L'opera di Rosenblatt stimola una quantità di studi e ricerche che dura per un decennio, e suscita un vivo interesse e notevoli aspettative nella comunità scientifica, destinate tuttavia ad essere notevolmente ridimensionate allorché nel [[1969]] [[Marvin Minsky]] e [[Seymour Papert|Seymour A. Papert]], nell'opera "''An introduction to computational geometry''", mostrano i limiti operativi delle semplici reti a due strati basate sul [[percettrone]], e dimostrano l'impossibilità di risolvere per questa via molte classi di problemi, ossia tutti quelli non caratterizzati da separabilità lineare delle soluzioni: questo tipo di rete neurale non è abbastanza potente: non è infatti neanche in grado di calcolare la funzione ''or esclusivo'' ([[Disgiunzione esclusiva|XOR]]). A causa di queste limitazioni, al periodo di euforia dovuto ai primi risultati della [[cibernetica]] (come veniva chiamata negli [[Anni 1960|anni sessanta]]) segue un periodo di diffidenza durante il quale tutte le ricerche in questo campo non ricevono più alcun finanziamento dal governo degli [[Stati Uniti d'America]]; le ricerche sulle reti tendono, di fatto, a ristagnare per oltre un decennio, e l'entusiasmo iniziale risulta fortemente ridimensionato.
 
Il contesto matematico per addestrare le reti MLP (''Multi-Layers Perceptron'', ossia percettrone multistrato) fu stabilito dal matematico americano [[Paul Werbos]] nella sua tesi di dottorato ([[Ph.D.]]) del [[1974]]. Non fu dato molto peso al suo lavoro tanto fu forte la confutazione dimostrata da Minsky e Papert anni prima, e solo l'intervento di [[J. J. Hopfield]], nel [[1982]], che in un suo lavoro studia dei modelli di riconoscimento di pattern molto generali, si oppose in modo diretto alla confutazione di Minsky riaprendo così degli spiragli per la ricerca in questo campo.
== Teoria e paradigmi di apprendimento ==
=== Analisi del sistema di apprendimento di una rete neurale ===
Il concetto di rete neurale si pone perché una [[Funzione (matematica)|funzione]] <math>f(x)</math> è definita come una [[Composizione_di_funzioniComposizione di funzioni|composizione]] di altre funzioni <math>G(x)</math>, che possono a loro volta essere ulteriormente definite come composizione di altre funzioni. Questo può essere convenientemente rappresentato come una struttura di reti, con le frecce raffiguranti le dipendenze tra variabili. Una rappresentazione ampiamente utilizzata è la somma ponderata non lineare, dove <math>f(x) = k \left (\sum_i w_i g_i(x) \right)</math>, dove <math>k</math> è una funzione predefinita, come ad esempio la [[tangente iperbolica]]. Sarà conveniente per le seguenti far riferimento ad un insieme di funzioni come un vettore <math>g = (g_1, g_2, \ldots, g_n)</math>.
 
[[File:Ann dependency (graph).svg|thumb|Figura 1: Grafico di dipendenza di una rete neurale ''"feedforward"'']]
 
* un [[apprendimento supervisionato]] (''supervised learning''), qualora si disponga di un insieme di dati per l'addestramento (o ''training set'') comprendente esempi tipici d'ingressi con le relative uscite loro corrispondenti: in tal modo la rete può imparare ad inferire la relazione che li lega. Successivamente, la rete è addestrata mediante un opportuno algoritmo (tipicamente, la ''backpropagation'' che è appunto un algoritmo d'apprendimento supervisionato), il quale usa tali dati allo scopo di modificare i pesi ed altri parametri della rete stessa in modo tale da minimizzare l'errore di previsione relativo all'insieme d'addestramento. Se l'addestramento ha successo, la rete impara a riconoscere la relazione incognita che lega le variabili d'ingresso a quelle d'uscita, ed è quindi in grado di fare previsioni anche laddove l'uscita non è nota a priori; in altri termini, l'obiettivo finale dell'apprendimento supervisionato è la previsione del valore dell'uscita per ogni valore valido dell'ingresso, basandosi soltanto su un numero limitato di esempi di corrispondenza (vale a dire, coppie di valori ''input-output''). Per fare ciò, la rete deve essere infine dotata di un'adeguata capacità di generalizzazione, con riferimento a casi ad essa ignoti. Ciò consente di risolvere problemi di regressione o classificazione.
 
* un [[apprendimento non supervisionato]] (''unsupervised learning''), basato su algoritmi d'addestramento che modificano i pesi della rete facendo esclusivamente riferimento ad un insieme di dati che include le sole variabili d'ingresso. Tali algoritmi tentano di raggruppare i dati d'ingresso e di individuare pertanto degli opportuni ''cluster'' rappresentativi dei dati stessi, facendo uso tipicamente di metodi topologici o probabilistici. L'apprendimento non supervisionato è anche impiegato per sviluppare tecniche di compressione dei dati.
 
=== Apprendimento hebbiano (1949) ===
L'algoritmo di apprendimento Hebbiano si basa sul semplice principio che se due neuroni si attivano contemporaneamente, la loro interconnessione deve essere rafforzata.
 
<math>\Delta w_i = \eta x_{in,i} x_{out}</math> dove <math>x_{in,i}</math>,
La regola di [[Donald Olding Hebb|Hebb]] è la seguente: l'efficacia di una particolare sinapsi cambia se e solo se c'è un'intensa attività simultanea dei due neuroni, con un'alta trasmissione di input nella sinapsi in questione.
 
Esempio di procedura:<br />
# Inizializza i pesi a zero.
# Prepara un pattern d'ingresso a cui corrisponde un pattern d'uscita noto.
== Tipi di rete neurale ==
=== Reti di Hopfield ===
Nel [[1982]], il fisico [[John Hopfield|John J. Hopfield]] pubblica un articolo fondamentale in cui presenta un modello matematico comunemente noto appunto come rete di Hopfield: tale rete si distingue per "''l'emergere spontaneo di nuove capacità computazionali dal comportamento collettivo di un gran numero di semplici elementi d'elaborazione''". Le proprietà collettive del modello producono una memoria associativa per il riconoscimento di configurazioni corrotte e il recupero di informazioni mancanti.
 
Inoltre, Hopfield ritiene che ogni sistema fisico possa essere considerato come un potenziale dispositivo di memoria, qualora esso disponga di un certo numero di stati stabili, i quali fungano da attrattore per il sistema stesso. Sulla base di tale considerazione, egli si spinge a formulare la tesi secondo cui la stabilità e la collocazione di tali attrattori sono proprietà spontanee di sistemi costituiti, come accennato, da considerevoli quantità di neuroni reciprocamente interagenti.
 
Le applicazioni delle reti di Hopfield riguardano principalmente la realizzazione di memorie associative, resistenti all'alterazione delle condizioni operative, e la soluzione di problemi d'[[ottimizzazione]] combinatoriale.
Da un punto di vista strutturale, la rete di Hopfield costituisce una rete neurale ricorrente simmetrica, di cui è garantita la convergenza.
 
Una rete ricorrente è un modello neurale in cui è presente un flusso bidirezionale d'informazioni; in altri termini, mentre nelle reti di tipo feedforward la propagazione dei segnali avviene unicamente, in maniera continua, nella direzione che conduce dagli ingressi alle uscite, nelle reti ricorrenti tale propagazione può anche manifestarsi da uno strato neurale successivo ad uno precedente, oppure tra neuroni appartenenti ad uno stesso strato, e persino tra un neurone e sé stesso.
 
=== Reti di Elman ===
Un significativo e noto esempio di semplice rete ricorrente è dovuto a [[Jeffrey Elman|Jeffrey L. Elman]] ([[1990]]). Essa costituisce una variazione sul tema del percettrone multistrato, con esattamente tre strati e l'aggiunta di un insieme di neuroni "contestuali" nello strato d'ingresso. Le connessioni retroattive si propagano dallo strato intermedio (e nascosto) a tali unità contestuali, alle quali si assegna peso costante e pari all'unità.
 
In ciascun istante, gli ingressi si propagano nel modo tradizionale e tipico delle reti feedforward, compresa l'applicazione dell'algoritmo d'apprendimento (solitamente la ''backpropagation''). Le connessioni retroattive fisse hanno come effetto quello di mantenere una copia dei precedenti valori dei neuroni intermedi, dal momento che tale flusso avviene sempre prima della fase d'apprendimento.
 
In questo modo la rete di Elman tiene conto del suo stato precedente, cosa che le consente di svolgere compiti di previsione di sequenze temporali che sono difficilmente alla portata dei percettroni multistrato convenzionali.
 
* durante la fase di addestramento si costruisce la mappa, pertanto la rete si configura ed organizza tramite un processo competitivo. Alla rete deve essere fornito il numero più grande possibile di vettori in ingresso, tali da rappresentare fedelmente il tipo di vettore che le sarà eventualmente sottoposta nella seconda fase;
 
* nel corso della seconda fase ogni nuovo vettore d'ingresso può essere velocemente classificato o categorizzato, collocandolo in automatico sulla mappa ottenuta nella fase precedente. Vi sarà sempre ''un unico neurone vincente'', quello il cui vettore dei pesi giace a minor distanza dal vettore appena sottoposto alla rete; tale neurone può essere determinato semplicemente calcolando la distanza euclidea tra i due vettori in questione.
 
=== Reti ad attrattori ===
In generale una ANN (Attractor Neural Network) è una rete di nodi (es: biologicamente ispirati), spesso interconnessi in modo ricorsivo, la cui dinamica nel tempo stabilisce un assestamento in un particolare modo di [[oscillazione]]. Questo modo di oscillazione può essere stazionario, variante nel tempo o di tipo stocastico ed è chiamato il suo '[[attrattore]]'. In neuroscienza teorica diversi tipi di reti ad attrattori sono state associate a differenti funzioni, come: [[memoria (fisiologia)|memoria]], attenzione, condotta del moto e [[classificazione]].
 
Più precisamente, una rete ad attrattori è una rete di N nodi connessi in modo che la loro intera dinamica diventi stabile in uno spazio D dimensionale, dove usualmente N>>D. Ciò assume che non vi sia più input dall'esterno del sistema. La stabilità nello stato ad attrattore indica l'esistenza di uno stato stabile in una qualche varietà algebrica (es: linea, cerchio, piano, [[Toro (geometria)|toroide]]).
 
== Collegamenti esterni ==
* [{{cita web|http://www.e-nuts.net/it/reti-neurali-feed-forward |Programma da scaricare e provare che mostra come una rete neurale apprende dagli input. (è disponibile anche un video)]}}
* [{{cita web|http://www.cash-cow.it/appunti-ed-articoli/reti-neurali-artificiali |Esempio di rete neurale realizzata in Matlab]}}
* [{{cita web|http://www.skenz.it/stefano/tesi/2_Le_reti_neurali.html |Descrizione del funzionamento di una rete neurale di tipo feed-forward]}}
*[{{cita web|http://xleox.somee.com/Algorithms/MLP/Neuron.aspx |Esempio di un neurone e di una rete neurale realizzato in C#]}}
* {{Thesaurus BNCF}}
 
3 038 982

contributi