Relazione

annuncio pubblicitario
Università degli studi della Calabria
Facoltà di Lettere e Filosofia
Corso di laurea in D.A.M.S.
indirizzo Multimediale
Corso di Psicologia Generale II
Reti neurali artificiali
Costruzione ed addestramento di una rete neurale artificiale.
Verifica dell’ apprendimento.
Docente:
Eleonora Bilotta
Studentessa:
Palmieri Rosamaria
matr. 53011
Reti neurali artificiali
Indice
1. Introduzione alle reti neurali artificiali.
1.1 Analogie e differenze tra le reti neurali artificiali e quelle biologiche.
1.2 Le reti neurali artificiali.
2. Creazione ed addestramento di una rete neurale artificiale.
2.1.
Creazione.
2.2.
Addestramento.
3. Verifica dell’ apprendimento.
1
Reti neurali artificiali
1. Introduzione alle reti neurali artificiali.
1.1 Analogie e differenze tra le reti neurali artificiali e quelle biologiche.
Una rete neurale artificiale è una struttura composta da un insieme di unità variamente connesse tra
di loro.
È un sistema computazionale in cui l’ elaborazione dell’ informazione avviene in modo parallelo,
ed il cui funzionamento trae ispirazione dai sistemi nervosi biologici.
Ogni unità della RN, in un dato momento, ha un livello quantitativo di attivazione che corrisponde,
nel sistema nervoso reale, alla frequenza con cui il neurone invia impulsi nervosi che influenzano
gli altri neuroni con cui è collegato.
Ogni connessione (peso sinaptico) di una RN artificiale determina quanto un’ unità influenza il
livello di attivazione di un’ altra unità con cui è collegata; nel sistema nervoso biologico esiste un
numero di siti sinaptici attraverso il quale un neurone influenza un altro neurone.
In un sito sinaptico (spazio tra la terminazione di un assone di un neurone e i dendriti di un altro
neurone) l’ impulso nervoso di un neurone rilascia dei neurotrasmettitori (molecole chimiche) che
influenzano il livello di attivazione del neurone collegato.
Più numerosi sono i siti sinaptici, maggiore è il peso della connessione.
Le connessioni possono essere eccitatorie (se un’unità aumenta il livello di attivazione dell’ unità
con cui è collegata) o, in caso contrario, inibitorie.
Tuttavia, il funzionamento di una RN artificiale è molto semplificato rispetto a quello di una RN
biologica1.
1.2 Le reti neurali artificiali.
La configurazione delle connessioni (architettura) ed i valori dei pesi sinaptici determinano il
comportamento e la risposta di una RN artificiale.
Una RN artificiale è composta da unità che ricevono informazioni dall’ ambiente (unità di input),
altre che emettono risposte nell’ ambiente (unità di output) e, in alcuni casi, unità all’ interno della
rete (unità hidden). In una semplice rete neurale a due strati (priva di unità interne) una unità
diventa attiva se la quantità di segnale che riceve supera la propria soglia di attivazione.
S3
Strato II (Output)
W(1,3)
W(2,3)
S1
S2
Strato I (Input)
Figura 1. Un esempio di rete a due strati
L’ uomo possiede circa 1012 neuroni e circa 1015 sinapsi. La connettività tra i neuroni nel sistema nervoso biologico è
estremamente ricca.
1
2
Reti neurali artificiali
Se S1*W(1,3)+S2*W(2,3)>=Soglia S3=1 , Altrimenti S3=0
La funzione di attivazione è “a scalino”, in quanto:
Sia
(Input netto)
Una RN apprende se varia il suo peso sinaptico.
Hebb ha proposto il primo meccanismo di apprendimento sinaptico per reti neurali.
La regola di Hebb prevede che se due neuroni collegati tra di loro sono attivi contemporaneamente
il valore sinaptico della loro connessione viene aumentato2.
Il percettrone (un tipo di RN sviluppato da Rosenblatt) apprende con una sorta di
“implementazione” della regola di Hebb (che però consente anche di ridurre i pesi sinaptici): viene
presentato un input, e se l’ output è corretto si dà una valutazione positiva (si aumenta la forza delle
connessioni), altrimenti si riduce (apprendimento per rinforzo).
In questo modo, la rete impara a mettere in relazione un input con un output.
Il percettrone a due strati di neuroni non è in grado di risolvere i problemi linearmente separabili3.
Questo limite è stato superato solo nel 1986 (Rumelhart e McClelland) con l’ algoritmo di Error
back propagation , che consente l’apprendimento (supervisionato) in reti multistrato. L’ algoritmo
è simile alla regola “Delta”4, nella quale i pesi variano in funzione dell’ errore.
Il segnale di errore viene propagato all’ indietro: si calcola l’ errore sull’ output , si aggiornano i
pesi tra l’ output e le hidden, si calcola l’ errore sulle hidden e si aggiornano i pesi tra le hidden e
l’input.
La funzione di attivazione è logistica (derivabile).
0<A<1
È continua: ad ogni valore dell’ input netto corrisponde un valore di output del neurone. In una rete
a tre strati c’è il problema del minimo locale: è un punto in cui la rete crede di avere imparato
(anche se non è cosi), e si ferma. Per evitare questo problema, o si cambiano i pesi iniziali o si varia
il momento (indice matematico che consente di fare dei passaggi in fase di “discesa” verso l’ errore
minimo).
2
Dati S1 e S2, Δw(1,2) = η*S1*S2; w(t1) = w(t0) + Δw. Con questa regola, si stabilisce una relazione tra S1 ed
S2,in base alla quale il peso sinaptico cresce o rimane tale. Il peso sinaptico viene incrementato di η (tasso di
apprendimento). Le regole di Hebb sono 4: classica, presinaptica, postsinaptica e della covarianza ; le ultime tre
consentono anche di decrementare il peso sinaptico.
3
Questo limite è stato rilevato da Minsky e Papert nel 1969. Nei problemi non linearmente separabili (come lo Xor) non
si possono separare con una retta i pattern che richiedono un certo tipo di risposta da quelli che ne richiedono un’ altra.
4
La regola Delta prevede: - La presentazione di un insieme di coppie di pattern di input e di output desiderati.
- L’ attivazione della rete: il vettore di input genera un vettore di output. – Il confronto fra questo vettore ed il vettore di
output desiderato. - La modifica dei pesi secondo la regola: Δw ij = η (dj - oj)ij
3
Reti neurali artificiali
Strato III (Output)
Strato II (Hidden)
Strato I (Input)
Figura 2. Un semplice rete a tre strati con una unità nascosta.
Per addestrare le Reti neurali si utilizzano anche gli Algoritmi Genetici5, con i quali non è
necessario conoscere gli output corretti da associare agli input.
Un Algoritmo Genetico è una simulazione della selezione naturale attraverso il meccanismo di
riproduzione selettiva: viene misurata la competenza di un certo numero di organismi casuali nell’
ambiente e si selezionano i migliori in base ad un criterio di fitness. Solo questi organismi sono in
grado di riprodursi e di creare dei “figli”con un patrimonio genetico simile al proprio, ma con
qualche variazione6. Questo processo viene ripetuto per diverse volte7 e comporta un miglioramento
nel comportamento degli organismi in un certo ambiente (adattamento).
Nel “genotipo” si possono codificare (e, dunque, fare evolvere) i pesi sinaptici di una RN
artificiale, o la stessa architettura della rete.
Le RN artificiali presentano caratteristiche molto interessanti:
- Robustezza. La RN è in grado di continuare a dare una risposta corretta anche se alcune
delle sue connessioni vengono eliminate, o se viene aggiunto del rumore al segnale di
ingresso. Se il livello di rumore aumenta le prestazioni delle RN subiscono un “decadimento
graduale”.
- Flessibilità. Un modello neurale può essere utilizzato per finalità diverse.
- Generalizzazione. Una RN è in grado di produrre risposte adeguate a pattern di ingresso
sconosciuti, che presentano qualche somiglianza con gli esempi presentati in fase di
addestramento. La RN è in grado di estrapolare dagli esempi le caratteristiche costanti dei
pattern di ingresso (codifica distribuita), senza memorizzare necessariamente ogni singolo
pattern (codifica locale).
- Recupero dei dati in base al contenuto, anche partendo da dati incompleti, simili, o corrotti
da rumori.
- Capacità di apprendimento.
5
Gli AG vengono utilizzati nel settore della Vita Artificiale.
La variazione può avvenire per mutazione (riproduzione asessuata , con modifica casuale di alcuni dati) o per
crossover (riproduzione sessuata, con scambio di materiale genetico fra i genitori).
6
7
Il numero di generazioni viene stabilito dal programmatore.
4
Reti neurali artificiali
Queste caratteristiche consentono di utilizzate le RN artificiali in numerosi settori di ricerca ed
applicazione, quali: applicazioni nello sviluppo di sistemi di controllo per robot o veicoli
intelligenti (in robotica evolutiva si utilizzano insieme agli algoritmi genetici), modelli per analisi
finanziarie, diagnosi medica, neuroscienza computazionale, riconoscimento di segnali sonar,
riconoscimento di caratteri, macchina da scrivere fonetica…
Le reti neurali sono state utilizzate dal Connessionismo come sistemi computazionali ispirati al
sistema biologico.
5
Reti neurali artificiali
2. Creazione ed addestramento di una rete neurale artificiale.
2.1 Creazione
La RN artificiale (tipo EBP Feedforward Classic) è stata creata con NetManager .
PROPRIETA’ DELLA RETE
Numero di strati :
Numero di neuroni di input :
Numero di neuroni nascosti :
Numero di neuroni di output :
Numero di neuroni totale :
Numero di connessioni :
Numero di pesi :
Memoria occupata :
3
5
2
1
8
12
15
220 bytes
CONNETTIVITÀ
1-1
2-1
3-1
1-1
0
0
0
2-1
1
0
0
3-1
0
1
0
INIZIALIZZAZIONE DEI PESI
Seed:
Valore minimo:
Valore massimo:
12
-0.3
0.3
6
Reti neurali artificiali
Figura 3. Rete neurale artificiale
Figura 4. Architettura della rete
7
Reti neurali artificiali
2.2. Addestramento
La RN creata ha appreso a distinguere i triangoli tra le figure geometriche8.
Il training set creato con TrsEditor è composto da 6 pattern.
Gli input sono relativi alle 5 domande:
1.
2.
3.
4.
5.
E’ una figura solida?
Ha tre angoli?
Ha tre lati?
Ha tutti i lati uguali tra di loro?
Ha quattro lati?
Le domande discriminanti sono la 2° e la 3°.
I pattern utilizzati per l’ addestramento sono:
1. Rettangolo
2. Triangolo
Equilatero
3. Rombo
4. Cilindro
5. Triangolo
Scaleno
6. Prisma
0
0
0
1
0
1
0
1
1
0
0
1
0
0
0
1
0
0
1
0
0
0
1
0
0
1
0
0
0
0
L’ addestramento della RN è stato eseguito con NetTrainer.
PARAMETRI
Precisione:
Correttezza Delta:
Algoritmo:
Presentazione:
Modifica dei pesi:
8
0.1
0.0
Back Propagation
Sequenziale (il training set viene presentato
sempre nella stessa sequenza)
On line
Il problema posto alla rete è lineramente separabile; è in grado di risolverlo anche una RN a due strati.
8
Reti neurali artificiali
Momento
Tasso di apprendimento
Seed
Numero di epoche
0.8
0.8
1
1200
Figura 5. Grafico errore.
9
Reti neurali artificiali
Figura 6. Grafico percentuale pattern appresi
Come si può notare osservando i grafici, la rete ha appreso il suo compito.
4. Verifica dell’ apprendimento
Per verificare l’ apprendimento della RN, è stato utilizzato NetManager.
Sono stati presentati alla rete pattern utilizzati durante l’ addestramento e pattern sconosciuti.
I nuovi pattern sono:
1. Triangolo
isoscele
2. Quadrato
3. Trapezio
4. Cono
0
1
1
0
0
0
0
1
0
0
0
0
0
0
1
0
0
1
1
0
Si riportano di seguito le risposte fornite dalla rete ad ogni singolo pattern presentato.
1. Triangolo isoscele
2. Quadrato
3. Trapezio
4. Cono
0.9000
0.1500
0.0987
0.1000
10
Reti neurali artificiali
5. Triangolo scaleno
6. Triangolo equilatero
7. Rombo
0.9000
0.9147
0.0987
La rete ha dimostrato di avere effettivamente appreso.
La rete ha anche generalizzato, in quanto è riuscita a riconoscere il triangolo isoscele (che non era
stato presentato in fase di addestramento) come triangolo.
11
Scarica