VI
distinguere le peculiarità fondamentali che caratterizzano un insieme di dati.
Nella loro configurazione originaria, le Reti Neurali sono sistemi
computazionali paralleli, composti da unità elementari di processo, chiamate
neuroni, le quali sono tra loro legate da un sistema più o meno complesso di
connessioni funzionali che rappresentano le “vie” di trasmissione dei segnali
tra le varie unità. Ciascun neurone produce un valore di uscita, detto stato di
attivazione, che è funzione non lineare della somma ponderata dei segnali che
riceve in entrata dai neuroni ad esso adiacenti.
La fase di training è il momento in cui le connessioni tra i neuroni subiscono
le trasformazioni atte a far sì che la rete apprenda, ovvero acquisisca un certo
livello di esperienza. Ciò si compie addestrando la rete ad imparare da un
certo numero di esempi che gli vengono ripetutamente presentati:
minimizzando una funzione di perdita, espressa solitamente come scarto tra
valore target, ricevuto come esempio, e valore di output della rete, essa
acquista abilità ad apprendere e generare conoscenza. Dopo la fase di
addestramento, infatti, lo stesso modello che la rete ha creato internamente,
caratterizzato da una tipica configurazione delle connessioni, può essere
applicato ad un insieme di dati che la rete non conosce, allo scopo di
estrapolare l’evoluzione futura del fenomeno studiato.
Impiegate inizialmente nel campo delle scienze cognitive ed ingegneristiche,
attualmente le Reti Neurali hanno suscitato un interesse crescente anche negli
ambienti statistici, economici e finanziari, poiché rappresentano uno
strumento molto flessibile e potente per l’analisi di dati.
In questo contesto, tale strumento viene impiegato per la costruzione di
VII
modelli capaci di individuare le leggi generatrici dei fenomeni economici
sulla base del campione di dati disponibili e di definire previsioni
sufficientemente corrette sfruttando, in un certo qual modo, l’informazione
tratta dall’esperienza passata e insita dagli stessi dati storici.
L’apprendimento avviene con gli stessi algoritmi di ottimizzazione utilizzati
nelle procedure di stima statistiche: in termini econometrici, infatti, la fase di
“learning” corrisponde alla stima dei parametri di regressione, mentre la fase
di generalizzazione corrisponde alla valutazione delle capacità del modello in
termini previsivi e quindi “fuori campione”.
Per la loro particolare capacità di analizzare i dati, le Reti Neurali possono
essere considerate uno strumento complementare rispetto ai metodi statistici
tradizionali. Sebbene esse nascano in un contesto che si trova al di fuori di
quello dell’applicazione statistica, l’intersezione tra analisi statistica e reti,
almeno a livello potenziale, riguarda molti aspetti.
Spesso definite come “scatole nere”, le Reti Neurali riscontrano grande
interesse nell’analisi esplorativa di dati che non possono essere specificati
prima della costruzione del modello che meglio ne simula il comportamento.
Esse, infatti, sono collocabili tra le tecniche di inferenza induttiva (come ad
esempio la regressione non parametrica o l’analisi discriminante) e all’interno
della classe di modelli Data-Driven, ove non si richiedono assunzioni a priori
sulla forma o sulla distribuzione dei dati osservati, o non vi è possibilità di
individuare l’esistenza di pattern caratteristici al loro interno. In queste
circostanze, il sistema trova in modo autonomo le correlazioni esistenti tra le
variabili oggetto di analisi, ricavandole unicamente dalle informazioni
VIII
fornitegli dal comportamento dei dati disponibili.
Un’altra qualità che rende le reti appetibili nel contesto statistico, è la loro
abilità ad adattarsi in un modo migliore a quei fenomeni caratterizzati da una
dinamica non lineare e, per i quali, i metodi lineari classici si rivelano
inefficienti, in quanto pongono vincoli sulla struttura del modello e sul suo
adattamento ai dati osservati.
Obiettivo di questo lavoro di tesi è quello di fornire un’interpretazione
generale della metodologia delle Reti Neurali al fine di cogliere l’opportunità
di individuare e valutare le possibili sinergie che esistono tra analisi statistica
e modelli neurali.
In particolare, si sono messi in evidenza quegli aspetti della teoria sulle Reti
che ci hanno consentito di costruire i modelli neurali adattabili all’analisi
delle serie storiche.
Strutturalmente, il lavoro svolto è suddiviso in due parti: nella prima, che
possiamo definire generale, si cerca di mettere in evidenza le affinità esistenti
tra le Reti Neurali Artificiali e la struttura ed il funzionamento del sistema
nervoso umano, di cui esse tentano, sebbene in modo primitivo, di riprodurre
il comportamento “intelligente”.
Dopo un breve cenno a come si è storicamente sviluppata la ricerca sullo
studio delle Reti Neurali Artificiali ed ai primi modelli di questi sistemi
computazionali, vengono analizzati gli aspetti metodologici generali, al fine
di comprendere il funzionamento delle reti e la loro diversa adattabilità alla
risoluzione di numerosi problemi. In questo contesto, vengono descritte: le
principali architetture che possono essere create con il perceptron; le
IX
proprietà di approssimazione, classificazione, generalizzazione delle quali
esse godono ed i metodi di addestramento maggiormente utilizzati, come la
Legge di Retropropagazione dell’Errore e le sue successive revisioni.
Nella seconda parte, che possiamo definire sperimentale, i concetti e le basi
teoriche esposte nella prima, vengono incorporate nell’analisi statistica delle
serie storiche, in cui le Reti Neurali, come è già stato spiegato, possono essere
considerate come strumento alternativo per l’analisi dei dati. Un ampio spazio
viene riservato alla descrizione dei modelli neuronali assimilabili a quelli
econometrici classici e ad una parte pragmatica che spiega tutte le fasi
necessarie alla costruzione e all’addestramento di una rete, come ad esempio:
i modi di elaborazione preliminare e di rappresentazione delle variabili, la
ripartizione del campione nei set di training, testing e validation, la selezione
dell’architettura che meglio si adatta alle diverse applicazioni ed i metodi
statistici di valutazione delle performance del modello.
Infine, per poter valutare l’utilità che le reti neurali apportano nella
descrizione delle relazioni non lineari intercorrenti tra le variabili economiche
e, in più particolare tra quelle finanziarie, viene presentata una delle possibili
applicazioni di questi modelli alla previsione di un indice di borsa italiano,
utilizzando come dati storici gli eccessi di rendimento di tale indicatore.
PARTE PRIMA
La Metodologia delle Reti Neurali
2
Capitolo 1
Le Reti Neurali Artificiali
Introduzione
Le Reti Neurali Artificiali rappresentano una classe di modelli input-output
strutturati sulla base di sistemi computazionali paralleli.
Neural Networks (NN), Artificial Neural Network (ANN), modelli a
connessione, sono alcuni dei nomi assegnati a tutti quei sistemi in grado di
processare dati, la cui architettura si ispira a quella dei sistemi neurali
biologici.
Sviluppate all’interno del più vasto ed affascinante ambito dell’Intelligenza
Artificiale (AI), le Reti Neurali Artificiali (RNA) sono state create con
l’intento di riprodurre artificialmente le facoltà logiche e computazionali del
cervello umano, in quanto tentano di sfruttare il massiccio parallelismo
1
che
consente al cervello di risolvere efficacemente classi di problemi complessi e
che, in quanto tali, non risolvibili attraverso l’utilizzo dei tradizionali sistemi
di computer.
1
Così come il cervello ha una rappresentazione distribuita che elabora le informazioni in
parallelo con fitte interconnessioni e controlli di tipo distribuito, analogamente le RN
utilizzano una struttura di tipo parallelo e non sequenziale (come ad esempio le CPU), in cui
un elevato numero di unità del processo sono fra loro collegate da connessioni.
3
Il crescente interesse che ha stimolato la ricerca sulle Reti Neurali (RN) si
basa principalmente su due motivazioni: da un lato si è affermata la
convinzione che tali sistemi siano un potente strumento per simulare il
comportamento cognitivo umano e dall’altro, sebbene non siano ancora
capaci di riprodurre realisticamente l’elaborazione delle informazioni
processate nel cervello, tuttavia le RN forniscono una ricca struttura che ne ha
consentito lo sviluppo e l’applicazione in numerosi ambiti scientifici, come le
neuroscienze, l’anatomia, la psicologia, le scienze biologiche, ed in ambito
industriale.
Oggetto di disputa è proprio questa asserita convinzione che le Reti neurali
siano ”intelligenti”: infatti anche le architetture più complesse di reti
presentano raramente più di poche centinaia o migliaia di neuroni, mentre il
cervello umano ne ha circa cento miliardi.
L’approccio a rete neurale non prevede la costruzione di un modello
dell’ambiente da descrivere, l’apprendimento avviene tramite l’adattamento di
pesi che sono associati ad ogni connessione della rete e, la “conoscenza” è
quindi rappresentata dallo stato stesso della rete. La loro abilità nel
rappresentare sistemi multidimensionali è importante per quei sistemi che
sono troppo complessi per essere modellati analiticamente, nel senso che non
ci sono informazioni sufficienti per costruire un modello analitico oppure che
la loro complessità ne impedisce la costruzione in tempi utili per
l’applicazione.
Le RN sviluppano i loro modelli internamente, guardando molti esempi;
l’apprendimento, come vedremo, avviene tramite un confronto tra la
4
performance della rete e l’effettivo target (in questo caso si parla di
supervised learning). Il divario fra queste due quantità numeriche viene
ridotto tramite una ridistribuzione aggiornata dei pesi associata ad ogni
connessione e quindi si dice che la rete autoapprende nel senso che crea essa
stessa la conoscenza a partire da un numero esaustivo (limitato) di esempi.
Ciò che verrà fornita alla rete, sarà solo una serie di dati in input ed output e
questi costituiranno i casi con cui la rete “farà esperienza” ed imparerà a
comportarsi.
Tale sistema di apprendimento è inteso come adattamento ed
automiglioramento ottenuto tramite l’esperienza e pertanto risulta vicino al
sistema di apprendimento umano poiché ottenuto, come vedremo, da
architetture e geometrie che caratterizzano il sistema nervoso umano.
5
1.1 Un Semplice Modello Neurofisiologico
Il sistema nervoso umano è stato ampiamente studiato durante il secolo
scorso, ma sotto molti aspetti, rimane ancora uno dei grandi misteri della
scienza: si ha una sostanziale conoscenza sul comportamento dei neuroni,
sulla struttura del cervello, sul meccanismo di trasmissione dei segnali e sono
state localizzate le parti responsabili di certe funzioni (ad esempio vista,
memoria, movimento). Tuttavia, la sottile complessità di quest’organo, rende
assai difficile monitorare cosa effettivamente accade mentre esso “lavora”.
Come abbiamo già fatto cenno, le architetture delle RN si ispirano al sistema
nervoso, anche se tentano di replicare solo gli elementi basilari di questo
potente organismo: esse lo fanno in un modo, possiamo dire, primitivo. Per
questo ci è utile premettere una descrizione, sebbene superficiale, della
struttura del sistema nervoso.
1.1.1 La struttura del Neurone Biologico
Il cervello contiene un elevatissimo numero di celle specializzate chiamate
neuroni. Essi sono adibiti a ricevere informazioni, processarle e trasformarle
in decisioni opportune.
Ciascun neurone è composto da quattro parti fondamentali: il corpo ( o soma),
un breve fascio di prolungamenti che da esso si dirama detti dendriti, che
rappresentano la struttura in input, da una fibra nervosa lunga e ramificata,
detta assone, che è invece preposta alla propagazione degli impulsi nervosi
sottoforma di segnali elettrici. L’assone rappresenta la struttura in output e
6
termina con le sinapsi, che rappresentano le connessioni funzionali tra
neuroni: esse sono le “vie” sulle quali gli impulsi elettrici transitano.
La Figura 1.1.1 mostra la relazione tra queste quattro parti.
Le sinapsi variano in forza, a seconda che permettano il passaggio di segnali
più forti o più deboli. Esse, inoltre, ossono avere natura attivatrice dei segnali
trasmessi, se amplificano il segnale del dendrite ricevente, o natura inibitrice
nel caso in cui il segnale venga ridotto.
Dendriti:
ricevono gli
input
Soma:
processa gli
input
Assome:
trasmette gli
input in
uscita
Sinapsi:
Contatto
elettrochimico
tra neuroni
Figura 1.1.1
Schematizzazione di
un Neurone
7
1.1.2 Apprendimento attraverso l’alterazione della forza delle
sinapsi
L’attività cerebrale è quindi controllata dall’introduzione o rimozione delle
connessioni tra i neuroni. Attraverso il loro rafforzamento ed indebolimento,
si permette al neurone di “fare esperienza”.
Durante le fasi di sviluppo del sistema nervoso, le sinapsi subiscono
successive modificazioni morfologiche in seguito all’apprendimento e di
conseguenza i neuroni acquisiscono nel tempo capacità di memorizzazione,
specializzazione e riconoscimento della natura degli stimoli ricevuti.
Se lo stesso concetto lo estendiamo, non ad un singolo, ma ad un network di
neuroni, allora possiamo osservare che tale rete riceve segnali in entrata e
produce output, che sono funzione dell’input ricevuto e che viene trasmesso
ad altri network di neuroni. Anche in questo caso è fondamentale la
trasformazione delle connessioni tra i neuroni della rete, poiché
l’addestramento della rete ed il suo apprendimento si realizzano proprio dal
cambiamento della relazione funzionale tra input ed output.
8
1.1.3 Un semplice modello di Neurone Artificiale
Possiamo rappresentare matematicamente un neurone artificiale, capace di
simulare le quattro funzioni base di quello biologico. La Figura 1.1.2
rappresenta un neurone artificiale.
Gli input x
i
sono moltiplicati per i rispettivi pesi delle connessioni w
i
(sinapsi)
e nel caso più semplice i singoli prodotti vengono sommati
2
Il risultato è detto
livello di attivazione del neurone: se tale livello supera un certo valore soglia,
il neurone si attiva e manda il proprio segnale ad un neurone ad esso
adiacente. Allo stesso modo, il livello di attivazione del neurone, denotato con
il simbolo I, può essere “filtrato” da una funzione di trasferimento f(I), la
quale, attraverso qualche algoritmo, produce lo stato (o output) del neurone Y.
Come vedremo successivamente nell’analisi metodologica delle RN, la loro
architettura viene disegnata a partire da singoli neuroni artificiali e sono
2
Per la determinazione del livello di attivazione, oltre alla somma ponderata degli input, si
possono utilizzare altri valori del vettore x
i
, come la media, i valori di massimo e di minimo,
la struttura logica di tipo OR ed AND.
x
0
I= ƒw
i
x
i
w
0
x
1
Y=f(I)
w
1
Funzione
x
2
w
2
Somma di
Trasferim. Sentiero
. di Output
. w
3
x
i
= Input
. Neurone w
i
= Pesi
x
3
Figura 1.1.2 Modello di Neurone Artificiale
9
proprio le differenze fondamentali tra questi tasselli di base e di come essi
vengono raggruppati, che rendono la costruzione delle RN “un’arte”.
1.2 Breve Storia delle Reti Neurali
Le Reti neurali sono state per lungo tempo oggetto di studio dell’elettronica.
Già i primi pionieri del computer, naturalmente, s’ispiravano al cervello
umano ma la complessità della struttura cerebrale non permise in principio
grandi progressi.
Abbiamo già menzionato che uno degli aspetti fondamentali delle reti sono le
linee di comunicazione da un neurone all’altro: le connessioni sono “la colla”
dell’intera struttura, poiché provvedono a definirne la configurazione ed il
livello di esperienza acquisito.
E’ per tale ragione che quello che attualmente è il campo di studi delle RNA,
originariamente era chiamato Connessionismo.
ξ McCulloch e Pitts: Neuroni Binari. I primi passi verso le RN vennero nel
1943 quando McCulloch, neurofisiologo, e Pitts, matematico, modellarono
una semplice rete con circuiti elettrici ed esplorando le capacità
computazionali delle reti, dimostrarono che semplici neuroni binari (un
neurone si attiva se la somma dei suoi input eccitatori supera un certo valore
soglia, mentre resta inattivo se riceve input inibitori) possono rappresentare
qualsiasi funzione logica. Tali tipi di network però dovevano essere
esplicitamente configurati in quanto avevano i valori dei pesi delle
10
connessioni fissi e quindi non erano in grado di “apprendere”.
ξ Introduzione dell’apprendimento: concetto di learning. Durante gli anni
1950-1960, vari tentativi furono fatti per adeguare i modelli a rete e così
venne introdotto il concetto di learning da Hebb nel suo libro Organization of
Behavior (1956) con l’obiettivo di rafforzare il concetto di neurone e di come
esso lavora.
Nel 1959 Frank Rosenblatt, neurobiologo, inventò il Perceptron per cercare
di capire il processo cognitivo e la memoria
3
.
Egli criticò i modelli del tipo di McCulloch e Pitts, sostenendo che non
tenevano in considerazione né la “plasticità” né la “casualità” (Smith, 1993)
delle vere reti neurali: infatti la questione fondamentale era come il cervello,
malgrado l’imprecisione degli impulsi ricevuti, rispondesse allo stesso modo a
stimoli della stessa natura. La risposta di Rosenblatt fu proprio lo studio di
una classe di modelli a rete, i perceptron, in grado di risolvere, secondo lui,
problemi di classificazione statistica.
Il perceptron di Rosenblatt contiene tre tipi di neuroni: unità sensoriali, che
ricevono impulsi dall’esterno della rete, unità associative, che sono
meramente interne ed unità di risposta che propagano i segnali nell’ambiente
esterno. Le connessioni tra le tre unità avviene parzialmente e in modo
casuale.
3
Rosenblatt studiò l’occhio della mosca e osservò che il processo che permette alla mosca di
volare, viene controllato nell’occhio stesso.