Relazione

annuncio pubblicitario
Università degli studi della Calabria
Facoltà di Lettere e Filosofia
Corso di laurea in D.A.M.S.
Indirizzo Multimediale
Psicologia Generale II
Docente:
Eleonora Bilotta
Studentessa:
Pizzuto Angela
Matr. 59773
Reti Neurali
Angela Pizzuto
Cos’è una rete neurale?
Un normale calcolatore è in grado di compiere operazioni impensabili per un qualsiasi essere
umano: esso è in grado di eseguire, per esempio, molti calcoli in successione in tempi brevissimi, ed
è velocissimo nel fare cose complicate per la mente umana, come rotazioni di complesse figure
geometriche, la memorizzazione di enormi quantità di dati etc...
Un normale calcolatore (che definiremo computer seriale) è costituito da un’unità di calcolo
(processore) in grado di eseguire alcuni milioni di operazioni il secondo, e tre tipi di memoria: una
contenente le istruzioni necessarie a svolgere le operazioni, una da cui vengono letti i dati da
elaborare e depositati i risultati ed una permanente su cui i dati vengono registrati.
Il meccanismo di funzionamento di un calcolatore è grossolanamente questo: vengono letti
sequenzialmente i dati e su di essi vengono applicate determinate operazioni predefinite dal
programmatore.
Ogni dato viene allora elaborato singolarmente, e sottoposto ad una precisa sequenza di operazioni.
Proprio per questa ragione, un calcolatore tradizionale non è in grado di compiere operazioni che
risultano semplicissime per la mente umana, come il riconoscimento di un oggetto in mezzo ad altri
o la valutazione di un insieme di circostanze per prendere una decisione rapida.
La fondamentale differenza tra un calcolatore seriale e la mente umana sta nel fatto che mentre un
calcolatore considera ed elabora in modo sequenziale un dato per volta, la mente umana elabora e
valuta una gran quantità di informazioni contemporaneamente e la risposta all’ambiente è
conseguente a tutte la stimolazioni che ogni singola informazione causa.
L’elaborazione delle informazioni avviene in parallelo.
Le reti neurali sono pensate e costruite secondo questo modello di elaborazione dati.
Una rete neurale è costituita da una serie di unità discrete (nodi o neuroni), connesse tra loro in
modo da poter "scambiare" dei dati. Tipicamente sono presenti un certo numero di unità di input, in
cui vengono inseriti i dati riguardanti l'evento da elaborare, un certo numero di unità nascoste
(hidden) ed un certo numero di unità di output.
I punti di connessione tra il collegamento (assone) e il nodo successivo sono dette sinapsi. Esse
hanno la funzione di "pesare" l'informazione proveniente dal nodo precedente.
Una rete neurale è costituita da un insieme di unità elementari opportunamente combinate in una
struttura reticolare. Gli elementi della rete (neuroni) sono generalmente disposti in strati e presentano
un elevato grado di interconnessione tra loro. Ad ogni connessione della rete è associato un peso che
rappresenta una sorta di conoscenza interna. Una rete neurale ha la capacità di apprendere una
particolare funzione in base a coppie di esempi input/output, che vengono ripetutamente presentate al
modello.
In generale si costruisce un opportuno insieme di dati (training set) costituito da coppie di esempi
input/output e lo si presenta alla rete neurale, che attraverso una legge di apprendimento,
1
Reti Neurali
Angela Pizzuto
modificando i pesi delle connessioni, impara a classificare correttamente i pattern.
Una volta raggiunto il limite per cui la rete si considera addestrata, vengono presentati al modello
una serie di pattern che non sono stati utilizzati per l'addestramento (test set). Dalla capacità di
generalizzare i risultati dell'apprendimento sui pattern del test set, si deduce la bontà del modello
addestrato.
Il sistema realizzato permette di dettagliare, direttamente dal Web Browser, la struttura della rete
specificandone i neuroni input, output e hidden (ovvero le unità nascoste), il training set sotto
forma di coppie input/output, il tasso di apprendimento, il numero di iterazioni, l'errore minimo a
cui far fermare la fase di training.
Di default sono presentati esempi relativi alla risoluzione del problema dello XOR in cui si
classificano in due insiemi, 0 e 1, pattern di dimensione 2. Ad un clic sul pulsante "Inizia
Apprendimento" corrisponde l'esecuzione della fase di training in cui vengono sottoposti alla rete
gli esempi specificati. Quando tale fase termina, la rete è pronta per la classificazione. E' possibile,
infatti, fornire un input e ottenere dalla stessa un output che è funzione della generalizzazione di
quanto ha appreso.
Elementi di Neuro fisiologia
Le reti neurali artificiali sono sistemi di elaborazione ispirati al sistema nervoso degli esseri
viventi, in grado di svolgere in modo efficiente compiti che risultano invece difficilissimi o
impossibili per i sistemi tradizionali.
Per meglio comprendere fin dove si spinge tale analogia facciamo
una panoramica sul funzionamento del sistema nervoso umano.
Tradizionalmente si suole distinguere i neuroni in tre categorie:
Neuroni afferenti o sensoriali, che ricevono stimoli dal mondo esterno
e trasmettono segnali ad altri neuroni;
Neuroni centrali, che ricevono segnali da neuroni e sono a loro volta
connessi ad altri neuroni;
Neuroni effettori o motori, che ricevono segnali da neuroni e terminano su muscoli ai quali
trasmettono segnali atti a farli contrarre.
2
Reti Neurali
Angela Pizzuto
Struttura di un neurone biologico.
La cellula nervosa consta di un corpo cellulare, o soma di forma varia dal quale si dipartono
numerose branche sottili, dette dendriti lungo cui si trasmettono i segnali che il neurone riceve da
parte di altri neuroni. Da una piccola protuberanza del soma si diparte un sottile e più o meno
lungo prolungamento cui si dà il nome di assone che può essere visto come un cavo, lungo il quale
si propagano segnali elettrici. L’assone a sua volta, si ramifica e le sue terminazioni sono connesse
a dendriti di altri neuroni mediante giunzioni cui si dà il nome di sinapsi.
L’impulso nervoso, giunto ad un neurone tramite una sinapsi, passa successivamente dai dendriti al
soma e da questi all’assone; infine da un’altra sinapsi è trasmesso ad un successivo neurone o ad
un organo effettore, ma mai nella direzione contraria a quella testé descritta.
I neuroni sono rivestiti da una membrana, alla quale è legato il fenomeno elettrico cui è affidata la
trasmissione dei segnali da un neurone agli altri. Tra l’interno e l’esterno della membrana si
osserva, in condizioni di riposo, una differenza di potenziale di –70 mV all’incirca (detto
potenziale di membrana). Le variazioni del potenziale che si propagano lungo gli assoni,
costituiscono i segnali con cui i neuroni interagiscono. Ciò che si osserva facendo attraversare
questa membrana da impulsi rettangolari di corrente è che per stimoli inferiori ad una certa
intensità, essa presenta un comportamento passivo. Per uno stimolo di intensità sufficiente (ossia
sopra – soglia) il neurone risponde generando una spike (o come si suole dire "spara"). La forma
delle spike è indipendente dal tipo e dall’intensità dello stimolo.
Quando, a seguito di uno stimolo sopra – soglia, si genera una spike non è possibile, per grande
che sia l’intensità di stimolo, che si produca un’altra spike in un intervallo di tempo successivo cui
si dà il nome di periodo di refrattarietà assoluta.
Che cosa sono le reti neurali artificiali
Una rete neurale è composta da elementi di elaborazioni ispirati ai neuroni, connessi tra loro
tramite collegamenti ispirati alle sinapsi, in modo da formare uno schema assimilabile ad un
semplicissimo tessuto nervoso.
3
Reti Neurali
Angela Pizzuto
Neurone base
In un ANS, al corpo cellulare del neurone corrisponde l’elemento di elaborazione (PE) che dispone
di più ingressi e di una sola uscita. Analogamente al suo modello biologico riceve segnali diversi e
può inviare il suo segnale di uscita a più PE. Ogni neurone svolge una funzione molto semplice:
effettua una somma "pesata" di segnali di ingresso e utilizza il segnale risultante per generare un
segnale di uscita sulla base di una determinata funzione detta "funzione di attivazione" o di
trasferimento (Transfer Function). Questi elementi sono quindi connessi fra loro con input e output
che corrispondono a dendriti e assoni. Ad ogni sinapsi corrisponde un peso di interconnessione,
che modifica (in genere moltiplicandolo) il segnale del neurone emittente.
I pesi di interconnessione sono fondamentali perché sono i soli elementi della rete neurale capaci
di memorizzare informazione e quindi sono responsabili della capacità di apprendimento del
modello neurale. Gli output sono determinati dai pesi di interconnessione e dalla funzione di
trasferimento propria del neurone. Quest’ultima viene scelta in sede di progetto ed in genere non è
modificabile, mentre i pesi vengono cambiati secondo una "regola di addestramento" che tiene
conto dei valori di ingresso e di uscita.
I diversi tipi di rete
Considerazioni generali
Dagli anni sessanta ad oggi sono stati ideati e studiati vari tipi di reti neurali che si differenziano in
base al tipo di architettura, al tipo di interconnessioni, alla funzione di trasferimento utilizzata dai
PE ed alla regola di apprendimento impiegata. Anche il numero di PE e di interconnessioni è
rilevante: in genere più la rete è grande, maggiori sono le sue capacità di contenere informazioni ed
inferiore è, invece, la sua capacità di generalizzare.
Le connessioni inoltre possono essere simmetriche o asimmetriche. Nel primo caso i due neuroni
connessi si scambiano segnali in modo bidirezionale; ciò non corrisponde alla realtà biologica ma
presenta vantaggi in particolari applicazioni.
Benché molti modelli di ANS si differenziano per non pochi aspetti, alcune caratteristiche sono
comuni a tutti. Di queste, senza dubbio la più importante, è la capacità di generalizzare. Una rete
neurale, che è stata addestrata su un numero limitato di esempi, è in grado di produrre una risposta
adeguata a dei pattern d’ingresso che non ha mai visto in precedenza, ma che presentano tuttavia
qualche somiglianza con gli esempi presentati durante la fase di apprendimento.
4
Reti Neurali
Angela Pizzuto
Il modello feed forward
Il tipo Feed-Forward (FF) è il più semplice. Il nome si riferisce al flusso di informazioni che viaggia
attraverso la rete strato dopo strato dal livello input a quello output. Diremo che un modello siffatto
è totalmente connesso (full-connected) quando ogni neurone di ogni livello è collegato con tutti i
neuroni del livello successivo.
Esempio di rete FF non full connected
Reti ricorrenti
Una rete ricorrente si distingue da una FF perché quest’ultima ha almeno un loop (un ciclo che si
chiude all’indietro). Per esempio una rete ricorrente potrebbe consistere in un singolo strato con
ogni neurone che manda il suo segnale output indietro negli input degli altri neuroni. La presenza
di loop ha un profondo impatto sulle capacità di apprendimento della rete e sulle sue prestazioni.
La rete di Hopefield
La rete di Hopefield (1982) è costituita da vari elementi di elaborazione aventi un solo ingresso ed
una sola uscita; tutte le uscite sono retrazionate sugli ingressi, ai quali ogni elemento di
elaborazione è connesso tramite pesi diversi (non c’è feedback diretto di un elemento di
elaborazione su sé stesso).
Il modello di Hopfield
L’applicazione naturale del modello di Hopfield consiste nella ricostruzione in base al contenuto di
pattern già memorizzati (memoria associativa), ma può essere impiegato anche in compiti di
ottimizzazione vincolata quando il problema può essere espresso nei termini di una funzione
5
Reti Neurali
Angela Pizzuto
energia. Il problema del commesso viaggiatore, che consiste nel visitare N città attraverso il
percorso più breve passando per ciascuna città una sola volta e tornare alla città di partenza alla
fine del giro, è un tipico problema di ottimizzazione. Nel caso in cui vi siano N città da visitare, il
modello di Hopfield richiede N´ N unità disposte su una matrice ove le colonne indicano la
posizione di ciascuna città nel giro del commesso e le righe indicano le città.
La rete di Carpenter Grossberg
La rete di Carpenter-Grossberg funziona principalmente come classificatore ed è in grado di formare
classi senza richiedere supervisione in fase di apprendimento.
La rete di Kohonen
La rete di Cohonen invece si basa su un principio autoorganizzativo secondo cui PE vicini sono
sensibili a input fisicamente simili, analogamente a quanto avviene in alcune parti del cervello.
La macchina di Boltzmann
La Macchina di Boltzmann è un modello per reti neurali ricorrenti stocastiche con connessioni
simmetriche (wij= wji) [Ackley, Hinton e Sejnoswski 1985].Il nome è dovuto al fatto che la
probabilità di trovare la rete in un certo stato segue una distribuzione di Boltzmann. La differenza
fondamentale tra la rete di Hopfield a unità stocastiche e la Macchina di Boltzmann è che
quest’ultima può possedere anche unità nascoste che servono unicamente per l’elaborazione
interna.
Architetture della Macchina di Boltzmann
Ciascuna connessione è simmetrica, ossia assume lo stesso valore in entrambe le direzioni. Le
unità grigie sono le unità nascoste della rete, quelle bianche le unità visibili su cui vengono
applicati pattern di addestramento.
La Macchina di Boltzmann può essere impiegata per svolgere compiti di memorizzazione,
categorizzazione, approssimazione di funzioni ecc.
I campi di utilizzo
Le reti neurali artificiali presentano alcune caratteristiche che si rivelano interessanti in molti campi
di ricerca e domini di applicazione.
Sono state utilizzate per sviluppare codici compatti e robusti (vi è un crescente bisogno di trovare
nuovi metodi per rappresentare vasti insiemi di dati in modo compatto e resistente al rumore) che
possono essere usati sia per la compressione che per la decompressione di immagini [Kohonen
6
Reti Neurali
Angela Pizzuto
1989]. Un modello, ad esempio, è stato impiegato per rappresentare e trasmettere immagini
televisive ad alta definizione [Naillon e Theeten 1989].
Hanno trovato molte applicazioni nel riconoscimento e classificazione di oggetti sottomarini a
partire da segnali sonar. Infatti i segnali sonar marini sono spesso mescolati ad una grande quantità
di rumore oceanico e la reti neurali si sono rivelati ottimi strumenti per scoprire in tempo reale la
struttura del segnale sepolto in mezzo a tutto questo rumore. Sono state utilizzate, inoltre, per la
distinzione tra mine e rocce di forme e dimensioni simili [Gorman e Sejnowski 1988] e per
l’identificazione di oggetti di varie forme e materiali con meccanismi simili a quelli impiegati dai
delfini [Roitblat 1991].
Kohonen ha utilizzato una rete neurale per trasformare direttamente il parlato in testo scritto
[Kohonen 1988]: la rete impara a segmentare il discorso di un parlante e ad associare in tempo reale
ciascun segmento alle lettere dell’alfabeto corrispondenti.
Molti modelli di ANS sono stati impiegati per il riconoscimento di caratteri scritti a mano (infatti le
grandi differenze di dimensione, posizione e stile rendono questo compito molto arduo per le
tecniche tradizionali) [Le Cun, Denker e Solla 1990].
Altri modelli hanno trovato un ampio spettro di applicazioni nello sviluppo di sistemi di controllo
per robot o veicoli intelligenti. Uno di essi è stato utilizzato da Pomerleau per la guida automatica di
un’automobile: la rete neurale osserva la strada attraverso una telecamera e impara ad associare le
immagini con le azioni corrette (su sterzo, acceleratore e freni) imitando un guidatore umano
[Pomerleau 1993].
Anche in analisi finanziare le reti neurali si sono rivelate molto efficaci grazie alla loro resistenza
alla variazioni casuali ed alla loro capacità di generalizzazione.
Sembrano, inoltre, essere adatte come aiuto per la diagnosi e la prognosi di patologie. Apolloni et
al.[1990] hanno utilizzato un ANS per diagnosticare la presenza di epilessia. E’ stato addestrato su
134 casi ed ha ottenuto circa l’85% di generalizzazioni corrette in 22 nuovi casi test.
Reti Naturali: La frutta
La rete neurale seguente riesce a stabilire la frutta tradizionale da quella secca.
Tabella con Categorie
Input
1. Pesca
2. mela
3. noce
4.
albicocca
5.castagna
Output
1
1
0
0
0
0
1
0
1
0
0
0
1
1
0
1
1
1
0
0
Nella prima fase tramite il programma netmanager creiamo una rete senza pesi
7
Reti Neurali
Angela Pizzuto
Dopo tramite TrsEditor stabiliamo i pattern, gli input e gli output
Mentre il Net trainer è stato utilizzato per l’addestramento della rete.
Infine ritorniamo nel netmanager per verificare la rete .
8
Reti Neurali
Angela Pizzuto
La struttura della nostra rete è la seguente:
l rete neurale Frutta è riuscita a categorizzare e ad apprendere.
9
Scarica