Il funzionamento della rete dipende dall’architettura (numero di strati e neuroni per strato), dalle funzioni di attivazione dei neuroni e dai pesi su ciascun collegamento.
L’architettura e le funzioni di attivazione vengono definite offline una volta per tutte durante la prima fase di progetto di una rete neurale.
I pesi dei vari collegamenti devono invece essere modificati appositamen- te; la rete dovr`a imparare direttamente dall’esperienza reale prendendo le informazioni e istruzioni dalla realt`a del problema che vuole risolvere. A grandi linee `e anche quello che avviene nella realt`a umana.
Questa fase si chiama addestramento e il suo scopo `e quello di rendere la rete in grado di produrre le risposte desiderate. Nello specifico l’addestra- mento consiste nell’adattamento dei pesi wi in base agli ingressi presentati
alla rete durante questa fase.
La tecnica di addestramento pi`u usata `e quella supervisionata e iterativa. La rete viene inizializzata con pesi casuali e di volta in volta le vengono pre- sentati in ingresso i dati dell’insieme di addestramento, un sottoinsieme dei dati noti che la rete dovr`a imparare a riconoscere per associare la risposta cor- retta. L’uscita prodotta da ogni n-upla di ingressi verr`a confronta con l’uscita desiderata tramite semplice differenza che quantifica l’errore commesso.
Ad ogni ingresso e ogni risposta ottenuta, i pesi vengono modificati in funzione di questo errore, secondo un certo criterio che li rende sempre pi`u adeguati a rispondere con precisione agli ingressi successivi. Si ripete il tutto fino ad esaurimento dell’insieme di addestramento.
Al termine la rete avr`a risposto con una certa percentuale di errore; se `
e superiore ad una soglia massima giudicata accettabile, allora l’insieme di addestramento viene rimescolato e ripresentato con il nuovo ordine in ingresso alla rete per migliorare ulteriormente i pesi. Ognuna di queste fasi (o epoche) avviciner`a la probabilit`a di successo a quella desiderata entro un margine di errore accettabile.
7.3.1
Delta rule
`
E chiamata regola di Widrow-Hoff o Delta rule.
Dato x = (x1, . . . , xN) vettore di ingressi fornito al neurone, t l’uscita
desiderata (target), y uscita restituita dal neurone, si ha un errore commesso pari a δ = t − y.
I pesi associati ai rispettivi ingressi del neurone verranno modificati nel modo seguente: wi = wi + ∆wi. Secondo questa regola la variazione da
applicare al peso wi `e pari a:
∆wi = ρδxi
ρ `e un numero reale compreso fra 0 e 1 che determina la velocit`a (rate) di apprendimento, ovvero quanto il peso debba essere modificato in base alla regola. Dall’espressione si evince che il peso viene modificato solo se l’errore c’`e stato (δ 6= 0) e se l’ingresso ha indotto effettivamente l’errore (xi 6= 0).
Nel caso in cui l’ingresso sia nullo, il peso della connessione non viene quindi modificato perch´e non si pu`o affermare se abbia influito o meno sull’errore.
Quantifichiamo l’errore commesso. Nel caso pi`u generale di rete con N uscite, l’errore globale e l’errore Ei commesso da un’istanza i-esima di un
insieme di addestramento con M casi sarebbero: E = M X i=1 Ei Ei = 1 2 N X j=1 δij2 = 1 2 N X j=1 (tj − yj)2
Ei tiene conto di tutti gli errori prodotti dalle uscite yj della rete; invece
di addestramento. Considerando un esempio semplice di neurone con due ingressi (N=2) e funzione lineare (y=a), con un insieme di addestramento costituito da un solo caso (M=1), gli errori avranno questa forma:
E = E1 = 1 2(t − a) 2 = 1 2(t 2+ x2 1w 2 1 + x 2 2w 2 2 + 2x1w1x2w2− 2t(x1w1+ x2w2))
L’espressione corrisponde ad un paraboloide. Se gli ingressi fossero in numero maggiore si tratterebbe di un’ipersuperficie.
Figura 7.6: Esempio grafico di errore
Il punto iniziale dell’errore su questa superficie `e determinato dai valori (w1, w2) dei pesi generati casualmente durante la fase preparativa dell’adde-
stramento.
Lo scopo della delta rule `e quello di spostare di volta in volta il punto del- l’errore sulla superficie, andando lungo la direzione di massima pendenza per convergere verso l’errore minimo. Infatti si pu`o dimostrare che la variazione imposta sul peso wi dell’i-esimo ingresso xi dall’errore δj prodotto dall’uscita
yj `e legato alla seguente relazione:
∆wij = ρδjxi = −
∂E ∂wij
Questo significa che la delta rule varia il peso favorendo la diminuzione dell’errore. Se l’errore aumenta all’aumentare di wij la derivata parziale `e
positiva, quindi ∆wij `e negativo e il peso viene decrementato per non causare
ulteriori aumenti dell’errore. Viceversa se l’errore diminuisce all’aumentare di wij, ovvero la derivata parziale `e negativa, si ha che la variazione ∆wij `e
un rate di apprendimento ρ non troppo alto per non rischiare di allontanare l’errore quando arriva in prossimit`a dell’errore minimo, provocando quindi una situazione di stallo con oscillazioni.
L’addestramento con delta rule porta l’errore a scendere lungo la sua su- perficie (come in figura 7.6) e la direzione indicata altro non `e che il gradiente, ovvero la linea di massima pendenza:
−∇E = − ∂E ∂wij
Questa propriet`a vale indipendentemente dal tipo di funzione di attiva- zione, dal numero di neuroni in uscita e dal numero di casi dell’insieme di addestramento. Se cambia la funzione che descrive i neuroni cambia natu- ralmente anche la forma della curva che descrive gli errori possibili. Nel caso di funzioni di attivazioni non lineari si parla di delta rule generalizzata. Per esempio se si tratta di funzioni derivabili, l’errore dipende dalla funzione di attivazione nel modo seguente:
δj = F1(aj)(tj − yj)
Dall’espressione si nota che si riconduce alla delta rule se la funzione `e lineare. Il meccanismo di apprendimento `e sempre convergente lungo la linea del gradiente.
Tuttavia `e una tecnica limitata a reti che possiedono soltanto uno strato, perch´e `e possibile conoscere in anticipo soltanto l’uscita finale desiderata e non quella degli strati nascosti intermedi.
7.3.2
Backpropagation
Quando si ha a che fare con reti multistrato l’algoritmo della delta rule non `e pi`u applicabile perch´e non `e possibile sapere l’uscita desiderata (target) dei neuroni appartenenti agli strati nascosti. Solo il target finale desiderato in uscita dalla rete `e noto a priori, quindi si deve trovare un altro modo per aggiornare anche i pesi dei neuroni precedenti.
L’algoritmo di backpropagation `e strutturato in due fasi: 1. fase:
• all’inizio i pesi vengono inizializzati in modo casuale;
• per ogni esempio dell’insieme di addestramento il segnale si pro- paga lungo la rete e produce un’uscita;
2. fase:
• l’errore cos`ı calcolato viene propagato all’indietro seguendo una data relazione;
• questo comporta l’aggiornamento di tutti i pesi di tutti gli strati precedenti fino agli ingressi della rete;
• viene ripetuto caso per caso fino ad esaurimento dell’insieme di addestramento.
In sintesi ci sono due segnali, uno che viaggia verso l’uscita e uno che ritorna indietro per modificare i pesi in base all’errore prodotto.
Con questo metodo le funzioni di attivazione dei neuroni devono essere continue e derivabili pertanto generalmente si usano le sigmoidi.
Nello specifico i passi eseguti dall’algoritmo sono i seguenti: • si inizializzano i pesi con valori casuali non troppo elevati;
• viene presentato un campione dell’insieme di addestramento in ingresso alla rete e si calcolano tutte le uscite dei neuroni
yj =
1 1 + e−aj
(la funzione di attivazione y = F (a) `e una sigmoide);
• nello strato di uscita vengono calcolati gli errori rispetto ad ogni target, come se fosse ancora una delta rule generalizzata
δj = F1(aj)(tj − yj) = yj(1 − yj)(tj − yj)
• gli errori δj dei neuroni nascosti non sono noti a partire da un target ma
da questi errori avuti in uscita dalla rete si pu`o calcolare un errore da propagare sullo strato precedente, iterando il processo fino agli ingressi:
δj = F1(aj) X s δswjs = yj(1 − yj) X s δswjs
con s indice di tutte le connessioni verso le strato successivo che devono propagare indietro l’errore al livello attuale.
L’errore commesso dal neurone nascosto `e calcolabile come somma (pe- sata) degli errori di tutti i neuroni dello strato successivo a lui connessi e proporzionale alla variazione dell’attivazione (in pratica `e una esten- sione della delta rule). Ognuno di questi contribuiti dipende dall’errore
del neurone successivo e dal peso attuale della connessione fra neurone nascosto e neurone successivo (che pu`o essere di uscita o un neurone di un altro strato nascosto). In questo modo pi`u `e grande l’errore ad una uscita della rete, pi`u i pesi dei neuroni ad essa collegati in catena dovranno essere riadattati.
Si parte dall’ultimo strato nascosto propagando indietro l’errore avuto sull’uscita della rete. Questi nuovi errori a loro volta si ripercuotono allo stesso modo sui neuroni dello strato precedente fino agli ingressi. Essendo ricorsiva, un qualsiasi neurone nascosto viene cos`ı adattato in modo proporzionale alla catena di errori che ha provocato sullo strato successivo fino all’uscita della rete;
• vengono aggiornati i rispettivi pesi usando l’errore δjpropagato indietro
al passo attuale (n) e la correzione fatta al passo precedente ∆w(n)ij = ρδjyi+ α∆w
(n−1) ij
il parametro α compreso fra 0 e 1 serve per tenere in considerazione le precedenti istanze ma in modo sempre minore, questo consente di limitare oscillazioni dovute a learning rate settati male;
• viene ripetuto il processo prendendo uno per uno tutti i campioni dell’insieme di addestramento;
• al termine se l’errore globale o l’errore medio (a seconda di quale si sceglie) `e inferiore alla soglia giudicata accettabile, l’algoritmo si ferma, altrimenti si rimescola l’insieme di addestramento e viene ripetuta una nuova serie di backpropagation sul risultato ottenuto.