Sei sulla pagina 1di 13

Corso di Alta Formazione in

Esperto in metodi quantitativi e strumenti informatici per la


gestione economica e finanziaria



RETI NEURALI
ARTIFICIALI E RETI
NEURALI
BAYESIANE











Dicembre 2004
susannadaddi@jumpy.it Susanna Daddi
2
1. Introduzione

Le reti neurali artificiali nascono dallesigenza di riprodurre attivit tipiche del
cervello umano, come il riconoscimento di forme e caratteri, la percezione delle
immagini, la comprensione del linguaggio e il coordinamento senso-motorio. Un
calcolatore infatti molto bravo nelleseguire in tempi brevissimi una sequenza
ordinata e determinata di comandi, ma non in grado di elaborare alcuna risposta di
fronte a nuove situazioni. Ci vuol dire ad esempio, che per far in modo che una
macchina riconosca che un certo carattere scritto a mano, in forme diverse,
rappresenta sempre la stessa lettera dellalfabeto, occorrerebbe prendere in
considerazione, in un ipotetico programma, tutte le possibili calligrafie.














Figura1: Alcuni dei caratteri utilizzati per costruire una rete neurale artificiale in grado di
riconoscere tutti i caratteri dellalfabeto, scritti a mano.



Una rete neurale, invece, in grado di apprendere dallesperienza ed elaborare
risposte nuove anche di fronte a nuove situazioni. Essa riesce ad adattarsi
allambiente circostante e a modellare la realt, imparando le leggi che la governano
attraverso lesperienza. E la cosa pi impressionante che essa ha la capacit di
comprendere e sintetizzare le leggi che legano gli eventi anche laddove noi non ne
conosciamo una formula matematica che li spieghi: semplicemente analizzando le
cause e gli effetti una rete riesce autonomamente a riprodurre il legame che
condiziona un evento. Per risolvere il problema del riconoscimento dei caratteri sopra
illustrato, ad esempio, con lutilizzo di una rete neurale occorre soltanto calibrarne la
struttura e i parametri e lanciare unopportuna fase dapprendimento: il
riconoscimento dei caratteri garantito con un arbitrario margine derrore.



3
2. Struttura

Le reti neurali artificiali prendono quindi esempio dalla biologia e, in particolare,
proprio dalla struttura del cervello umano. Pertanto possiamo definire un neurone
artificiale come un modello matematico semplificato del neurone biologico, previsto
di una funzione dattivazione che dipende dagli stimoli che riceve in input.
Per chi ha reminiscenze informatiche, una rete neurale artificiale pu essere definita
come un modello dinamico avente la topologia di un grafo orientato, i cui nodi
rappresentano i neuroni artificiali e gli archi i pesi sinaptici. In altre parole, essa non
altro che un insieme ordinato di neuroni, detti nodi, collegati opportunamente tramite
elementi detti pesi. I nodi si distribuiscono in strati: il primo quello di input, poi ci
sono gli strati intermedi (hidden layers) e infine lo strato di output; i pesi collegano
tutti i nodi di ogni strato con ogni nodo dello strato successivo, ma non con quelli
dello stesso strato. Inoltre, in tutti gli strati, tranne quello di input, ogni nodo
collegato tramite un peso speciale, detto soglia, ad un nodo che, per convenzione, si
considera di valore costante. Possiamo allora mostrare la forma della funzione
dattivazione, associata ad ogni nodo tranne quelli di input:

+ =

i
i i
x w w f y
0
,

dove w
0
il valore di soglia, x
i
sono i valori dei neuroni dello strato precedente e w
i
i
pesi che collegano questultimi al nodo in esame.
Una rete si presenta quindi come un modello matematico multidimensionale in grado
di modellare, approssimare e classificare realt anche molto complesse. Di seguito
illustrata graficamente la struttura di una generica rete neurale multistrato:















Figura 1: Rete neurale con un singolo hidden layer, costituita da 2 nodi di input, 5 nodi
nello strato intermedio e un nodo di output.








4
Per comprendere per effettivamente le potenzialit e il potere computazionale di una
rete neurale necessario enunciare il seguente teorema:


TEOREMA DI APPROSSIMAZIONE UNIVERSALE
Una rete neurale multistrato, con un singolo hidden layer in grado di
apprendere qualsiasi funzione continua e di approssimarla con qualsiasi grado
di precisione.
(Teorema desistenza di Kolmogorov applicato alle reti neurali da Cybenco,1988 e Hornik,1989)


In pratica una rete neurale, potenzialmente, pu rappresentare, con la precisione
desiderata, qualunque fenomeno descrivibile attraverso una legge di tipo continuo.
Ovviamente, aumentando il numero degli strati nascosti si possono cogliere anche le
discontinuit di una funzione, ma con un costo computazionale che potrebbe risultare
troppo elevato. Il problema per che il teorema garantisce soltanto lesistenza di
una rete che soddisfi determinate condizioni, ma purtroppo non fornisce alcun
metodo pratico per trovarne la struttura o i parametri corrispondenti.




3. Apprendimento

Lapprendimento, o training, di una rete neurale la fase in cui essa esamina la
realt, cogliendone i tratti pi rappresentativi: in pratica, in questa fase, vengono
presentati alla rete una serie di inputs ed i corrispondenti reali valori di output.
Misurando di quanto gli outputs che essa genera differiscono da quelli esatti, la rete
modifica i suoi parametri per adattarsi alla realt ed imparare da questa.
Lapprendimento pu essere ottenuto con diversi algoritmi, la cui scelta deve essere
conseguente allobiettivo che si vuole raggiungere. In altre parole, in base al metodo
con cui viene effettuato il training si ottengono diversi tipi di rete. In questo
documento verranno illustrati gli algoritmi principali finalizzati allapprendimento:
quello della Error Back Propagation, associato alle reti neurali e il Metropolis -
Hastings per le reti neurali Bayesiane.
Reti neurali e reti neurali Bayesiane sono due mondi a confronto che sincontrano e si
scontrano: le prime seguono il principio della Maximum Likelyhood, le altre
lApproccio Bayesiano. Nella Maximum Likelyhood lapprendimento finalizzato ad
ottenere una sola rete, la migliore, quella che commette lerrore pi piccolo, perci,
alla fine del training, si ottiene un unico vettore di pesi che sar quello con cui la rete
risponder alle richieste che le verranno sottoposte. Con lApproccio Bayesiano,
invece, si considera una distribuzione di probabilit sullo spazio dei pesi: essa
rappresenta il grado di fiducia nei diversi vettori di pesi generati. Alla fine del
5
training si tengono tutte le reti generate e, in fase di esecuzione, loutput che si ottiene
non altro che il valore atteso degli outputs generati da tutte queste le reti.
Lapprendimento di una rete neurale, dipende, per, anche dalla scelta della funzione
dattivazione. Generalmente, la pi utilizzata quella sigmoidale, la cui espressione
data da:

dove w
i
sono i pesi che collegano il nodo in esame con i rispettivi nodi dello strato
precedente e x
i
sono le uscite corrispondenti di tali nodi.
Graficamente la sigmoide si presenta cos:











Essa pu essere decritta attraverso alcune sue caratteristiche molto importanti:
sempre crescente, continua su tutto lasse dei reali ed sempre derivabile,
condizione questultima necessaria per poter utilizzare lalgoritmo di Back
Propagation; inoltre:





Ci vuol dire che il condominio della funzione sigmoidale ha valori compresi in [0,1]
e che, aumentando il modulo di x, essa va molto presto in saturazione.
Queste particolarit della funzione dattivazione richiedono alcuni accorgimenti da
tener presenti nel momento in cui i dati che si hanno a disposizione vengono
presentati alla rete: se essi hanno valori compresi in un intervallo molto ampio, ad
esempio, necessario costringerli a rimanere in un intervallo pi piccolo, che non
mandi subito in saturazione la sigmoide. Inoltre, se vogliamo ottenere come outputs
valori esterni allintervallo [0,1] occorre estrapolare tali valori dai risultati ottenuti
direttamente dalla rete. Risulta necessaria, quindi, una fase iniziale di pre-processing

i
i i
x w
e 1
1
. 0
1
1
lim =
+


x
x
e
, 1
1
1
lim =
+

+
x
x
e
6
dei dati e una finale di post-processing. La soluzione pi immediata a questo
problema data dalla formula:


dove [I
min
,I
max
] lintervallo in cui vogliamo costringere i dati, v il valore reale che
abbiamo a disposizione, [V
min
,V
max
] lintervallo a cui appartengono i dati reali e i il
valore che otteniamo, quello da poter presentare alla rete. Ovviamente, sia gli inputs
che gli outputs della fase di training devono essere opportunamente pre-processati
attraverso questa formula: gli outputs, alla fine, dovranno essere anche post-
processati utilizzando semplicemente linversa della funzione sopra.
Un altro problema che si pu porre al momento dellutilizzo pratico di una rete
neurale anche quello delluniformit dei dati dingresso. Supponiamo che una rete
abbia, come inputs, 2 tipi di dati: la frequenza di una calamit naturale e limporto dei
danni relativi ad essa. Fortunatamente, i valori delle frequenze saranno piuttosto
bassi, ma, al contrario, gli importi corrispondenti saranno di gran lunga maggiori.
Presentando alla rete i 2 tipi di dato cos come vengono registrati nella realt, il peso
degli importi forzerebbe la rete a trascurare completamente le frequenze, con una
conseguente distorsione della realt. Per risolvere anche questo problema esistono
altre opportune formule per il pre-processing ed il relativo post-procesing.
Presentata una piccola panoramica del mondo neurale, possiamo ora vedere gli
algoritmi dapprendimento sopra citati pi da vicino, descrivendone la struttura e le
caratteristiche principali.




3.1. Back Propagation

Si basa sul metodo della Discesa del Gradiente con lintento di minimizzare lerrore
commesso dalla rete, che viene definito come:

=
i
i i
O T E
2
) (
2
1
,

dove T
i
li-imo output esatto (target) e O
i
li-imo output generato dalla rete.
Per ogni peso w
i,j
si calcola quindi la derivata di E rispetto al peso stesso e si aggiorna
questultimo in modo opportuno. Svolgendo alcuni calcoli matematici, si dimostra
facilmente che, per i pesi dello strato di output, lespressione finale della derivata la
seguente:
min max
min min max
min
) )( (
V V
V v I I
I i


+ =
7

dove h
j
loutput del j-imo nodo dellhidden layer, f la funzione dattivazione e
i

la porzione di derivata associata al i-imo nodo di output.
Per quanto riguarda i pesi dello strato intermedio, invece, nel computo della derivata
necessario tener conto anche del contributo dato allerrore dai nodi dellultimo
strato, in modo proporzionale al peso attraverso cui questultimi sono collegati ai
nodi dellhidden layer. Esplicitamente la sua forma sar quindi:


dove x
k
il k-imo input,
i
il delta delli-imo output node e
j
la porzione di derivata
associata al j-imo nodo dello strato nascosto.
Laggiornamento del generico peso w
i,j
avviene allora secondo la seguente formula:

dove a
j-1,i
loutput del nodo dello strato precedente collegato allo strato successivo
tramite w
i,j
e il coefficiente dapprendimento della rete, parametro che ha un ruolo
fondamentale nella riuscita e nellefficienza della fase di training.
Presentato alla rete un opportuno numero di esempi corretti da cui imparare, a questo
punto possiamo descrivere la struttura dellalgoritmo di Back Propagation nel modo
seguente:

for (i=1;i<num_iterazioni;i++)
{
pattern
{
calcola gli outputs della rete;
calcola il delta di ogni nodo;
aggiorna i pesi;
}
}



j
k i
i
i j
k
j k
j k
k
j k
w x w f
w
x
w
E

] )]}[ ( [ {
,

,

i j j j i j i
a w w
, 1 , ,
+ =

i
j
j
i j
i j
i i
j
i j
h w f
w
O T h
w
E

)]} ( [ ){ (

8
Alla fine del training si otterr il vettore di pesi che permette alla rete di approssimare
al meglio la funzione o il problema che gli stato sottoposto.
Il Teorema di Approssimazione Universale, per, ha lasciato aperto un problema, che
quello della scelta dei parametri: non esiste alcun metodo che ci permetta di sapere,
a priori, qual il numero di nodi da immettere nello strato intermedio, n quanti strati
inserire, n qual il numero diterazioni necessarie nella fase di training, n, tanto
meno, qual il valore ottimale da dare al coefficiente dapprendimento. Dalla scelta
di tutti questi parametri dipende la capacit dapprossimazione e di generalizzazione
e lefficienza della rete: meno nodi si hanno nello strato intermedio, pi aumenta la
capacit di generalizzazione della rete, ma, contemporaneamente, diminuisce la
precisione nellapprossimazione. Maggiore il numero degli strati, maggiore la
complessit della situazione che la rete pu rappresentare, ma maggiori sono i tempi
necessari per lapprendimento e il costo computazionale. Maggiore il numero
diterazioni, maggiore il grado di precisione che la rete raggiunge, ma maggiore il
rischio di overfitting, cio il pericolo che la rete rimanga troppo legata ai dati e non
sia in grado poi di dare buone risposte di fronte a situazioni mai viste. Per
comprendere meglio questo concetto, come se uno studente imparasse a memoria
una particolare lezione, ma non sapesse rispondere a domande pi generali
sullargomento o non fosse in grado di trarre conclusioni autonome su di esso.
Per comprendere realmente limportanza del coefficiente dapprendimento, invece,
consideriamo la seguente funzione derrore:


Lobiettivo della fase di training quello di minimizzare lerrore commesso e
quindi, nel grafico, trovare il vettore di pesi ottimale (w*): minore il valore di ,
pi lenta sar la convergenza e quindi maggiore sar il numero diterazioni
necessarie per raggiungerla (1caso). Aumentando un po il valore di si ottiene una
convergenza pi rapida (2caso), ma, superato un certo valore del coefficiente
dapprendimento, lalgoritmo inizia ad avere un comportamento instabile, oscillando
da una parte allaltra di w* (3caso). Aumentando ancora il valore di pu accadere
che lalgoritmo addirittura non converga (4caso). Ci vuol dire che, per ogni
singolo problema, occorre tarare in modo opportuno tutti i parametri e testare
rigorosamente le risposte della rete per trovarne la struttura ottimale.
9
Dopo aver presentato, in linea generale, la struttura dellalgoritmo di Back
Propagation, possiamo ora esaminarne pregi e difetti. I vantaggi possono essere
riassunti nella facile implementabilit, nellefficienza e nel fatto che esso
applicabile a reti con qualunque numero di nodi e di strati. Daltra parte per, i limiti
sono: la lentezza del processo di training, il rischio di overfitting, gi citato sopra e la
possibile convergenza a minimi locali, cio il pericolo che la rete modifichi i suoi
parametri sulla base di un minimo della funzione derrore che per soltanto relativo
e non riesca poi a raggiungere quello assoluto. Per risolvere questi ed altri problemi
sono state elaborate diverse soluzioni, dallaggiunta del termine Momento, allEarly
Stopping, con ottimi risultati.




3.2. Metropolis Hastings

Il teorema di Bayes ci permette di passare dalla probabilit a priori alla probabilit a
posteriori di un evento, attraverso la relazione:

dove A e B sono gli eventi in esame. Se consideriamo W lo spazio dei pesi di una rete
neurale e D lo spazio dei targets, possiamo riscrivere la relazione sopra nel modo
seguente:





dove p(w|D) la probabilit che il vettore dei pesi sia w dato che linsieme dei targets
D, p(D|w) la probabilit di avere D come spazio dei targets dato che il vettore dei
pesi della rete proprio w e, in qualche modo, rappresenta il rumore, lerrore
commesso e p(w) la probabilit a priori dei pesi della rete.
Per convenzione si suppone che la distribuzione di probabilit a priori sullo spazio
dei pesi sia di tipo normale e che anche lerrore commesso dalla rete (rumore) segua
lo stesso andamento. Le due distribuzioni di probabilit avranno quindi la forma
seguente:





,
) (
) ( ) | (
) | (
A p
B p B A p
A B p =

=
=

W
i
i
w
w
e
Z
w p
1
2
2
) (
1
) (

,
) (
) ( ) | (
) | (
D p
w p w D p
D w p =
10
per quella a priori, dove Z
W
() un fattore di normalizzazione, una costante nota e
w
i
i pesi della rete e, per la distribuzione del rumore:


dove Z
D
() sempre un fattore di normalizzazione, una costante nota, y(x
n
,w) ln-
imo output della rete ottenuto con il vettore w di pesi e t
n
ln-imo target.
Dal teorema di Bayes si ottiene allora:


dove Z
S
un fattore di normalizzazione indipendente dai pesi e S(w) la seguente
espressione:



Abbiamo detto che lApproccio Bayesiano prevede il calcolo del valore atteso:



che, nella maggior parte dei casi, un integrale non calcolabile direttamente, pertanto
il suo valore viene approssimato attraverso la formula:







Il problema che si pone a questo punto, per, quello di generare valori dei pesi che
abbiano proprio p(w|D) come distribuzione di probabilit a posteriori: a questo
livello che interviene il metodo di Metropolis Hastings. Esso permette, infatti, di
,
1
) (
) ( ) | (
) | (
) ( w S
S
e
Z D p
w p w D p
D w p

= =

= dw D w p w F I ) | ( ) (
.
2
} ) , ( {
2
) (
1
2
1
2

= =
+ =
W
i
i
N
n
n n
w t w x y w S

. ) (
1
1

L
i
i
w F
L
I

=
=

N
n
n n
t w x y
D
e
Z
w D p
1
2
} ) , ( {
2
) (
1
) | (

11
generare esempi secondo una data distribuzione, avvalendosi dei Metodi Monte Carlo
e quindi della teoria dei processi stocastici, in particolare, delle Catene di Markov.
Lalgoritmo lavora iterativamente, per un numero di cicli prefissati, variando, ad ogni
passo, ogni peso della rete secondo la relazione:

w
new
= w
old
+ ,

dove un vettore di quantit casuali, pertanto tale relazione rappresenta proprio
una passeggiata aleatoria.
I passi dellalgoritmo possono allora essere schematizzati nel modo seguente:

if p(w
new
|D) > p(w
old
|D)
accetta il vettore w
new
;
else if p(w
new
|D) < p(w
old
|D)
accetta il vettore w
new
solo se
<
) | (
) | (
D w p
D w p
old
new


dove un numero casuale compreso tra 0 ed 1.
Ovviamente lintento quello di massimizzare la probabilit, senza per
accontentarsi di ottenere il vettore migliore, ma conservando i vettori che risultano
pi buoni, quelli pi rappresentativi che permettano alla rete di modellare la realt
in modo molto pi generale della Maximum Likelyhood, tenendo conto anche di
possibili variazioni casuali ed impreviste delle condizioni che favoriscono un evento.
Questo approccio permette di affrontare, con una rete neurale Bayesiana, tutta una
serie di problemi in cui subentra il fattore casualit, rischio: permette cio di
apprendere con precisione landamento di un fenomeno, ma senza mantenersi
attaccati ai dati specifici che lo descrivono. In altre parole, il risultato che si ottiene
con una rete neurale Bayesiana un valore che segue un andamento, ma contempla
anche la possibilit che, nella realt, si siano verificati fattori imprevisti che abbiano
fatto variare la realt pre-esistente.




4. Applicazioni

Le possibili applicazioni di una rete neurale artificiale spaziano nei campi pi
disparati, dalla medicina allingegneria, dalla finanza alla sicurezza. Esaminiamo
alcuni di questi pi da vicino.
Nel campo della sicurezza, ad esempio, le reti neurali stanno assumendo un ruolo di
primo piano nel riconoscimento di immagini e voci, in particolare nel riconoscimento
automatico di volti e impronte digitali. Pensiamo allimportanza che avrebbe una
12
telecamera che, in un aeroporto, fosse in grado di riconoscere un soggetto in modo
autonomo e di segnalarlo, se necessario, tempestivamente a chi di dovere. Oppure
pensiamo allimportanza che avrebbe un apparecchio che riuscisse, istantaneamente,
a riconoscere unimpronta digitale e, di conseguenza, a concedere o no laccesso in
un dato luogo. Discorso del tutto analogo per quanto riguarda il riconoscimento di
voci e suoni.
In ambito finanziario trovano applicazione nella gestione del rischio di credito e nel
rischio operativo, argomenti di grande attualit in seguito agli accordi di Basilea e
Basilea 2. Esiste inoltre un progetto che utilizza reti neurali anche nella valutazione di
opzioni finanziare e costituisce attualmente una valida alternativa ai metodi classici.
Nel campo della robotica un esempio di applicazione dato dalla risoluzione di un
problema di cinematica inversa: un braccio meccanico che partendo dalla posizione
(x
0
,y
0
) deve raggiungere un obiettivo situato nel punto (x
1
,y
1
) percorrendo il cammino
minimo. Con lausilio di una rete neurale, esso in grado di ricostruire
autonomamente qual il percorso migliore da seguire, rilevando anche la presenza di
eventuali ostacoli.
Estato realizzato con successo, poi, un sistema di guida autonoma di automobili, in
cui il conducente stato proprio una rete neurale che in input prendeva limmagine
della strada.
Unulteriore applicazione nel mondo industriale, come metodo pi efficiente e pi
sicuro nel controllo di qualit della produzione: un meccanismo che sia in grado di
classificare autonomamente i prodotti difettosi di un dato lotto di merce, infatti,
risulterebbe sicuramente pi veloce e meno costoso.
Ma lambito pi affascinante, a mio parere, il campo della medicina: il Medical
Neural Engineering, azienda che realizza software per il mondo della sanit, ha gi
realizzato, ad esempio, un sistema di supporto alla diagnosi nel campo
dellodontoiatria. In questo settore, ovviamente, lutilizzo delle reti delle reti neurali
non ha come obiettivo quello di sostituire il ruolo del medico, ma vuole essere
semplicemente uno strumento importante di ausilio alle diagnosi. Enoto, infatti, che
un medico deduce la diagnosi della malattia di un paziente dai risultati degli esami a
cui si sottoposto, ma, congiuntamente, anche dalla sua esperienza, confrontando la
situazione che ha di fronte con i casi analoghi che gli si sono presentati nel corso
della sua carriera. In questo senso, una rete neurale che abbia appreso migliaia di casi
in cui si riscontrata una certa patologia potrebbe avere una visione pi ampia,
magari servendosi dei giudizi dati dallesperienza di centinaia di altri medici in varie
parti del mondo. Ecome se, in qualche modo, potesse ampliare ed arricchire
lesperienza del medico. Di grande interesse e attualit , in particolare, il ramo della
ricerca in campo oncologico: si sta studiando, infatti, la possibilit di utilizzare una
rete neurale che sia in grado, prendendo in input le caratteristiche principali risultanti
dallanalisi di un dato tumore, di classificarlo e inserirlo pi velocemente in una data
categoria.
Questi sono soltanto alcuni esempi dapplicazione di una rete neurale, ma la ricerca
in continuo sviluppo e la creativit di chi studia questi modelli riuscir a destinare
loro moltissimi altri utilizzi. Attualmente non possibile prevedere in quale misura le
13
reti neurali verranno effettivamente utilizzate, ma sicuramente le loro potenziali
applicazioni coinvolgono fortemente gli aspetti pi presenti nel nostro quotidiano.
Senza alcun dubbio esse possono essere, per questo, uno strumento davvero
importante ai fini del miglioramento della nostro modo di vivere e pertanto
rappresentano un capitolo dellintelligenza artificiale che merita tutta la nostra
attenzione.




Bibliografia e riferimenti

Christopher M. Bishop
Neural Networks for Pattern Recognition;

Radford M. Neal
Bayesian Training of Backpropagation Networks by the Hybrid Monte Carlo
Method;

B. Walsh
Markov Chain Monte Carlo and Gibbs Sampling;

D.J.C. Mackay
Introduction to Monte Carlo Methods;

Stefano Hajek
Soft Computing.

Materiale reperito in rete, in particolare dispense universitarie, tesi di laurea e di
dottorati di ricerca, articoli pubblicati da siti e riviste specializzate, documentazioni di
progetti gi realizzati o in fase di realizzazione.

Potrebbero piacerti anche