facilmente “imparati” e neutralizzati dalle imprese (che, ad esempio, potrebbero essere in grado di ricostruirne la logica e condizionarne il risultato, al fine di farsi concedere comunque un finanziamento da una banca). Per i modelli induttivi, invece, non c’è questo rischio, poiché essi presentano una struttura funzionale molto spesso complessa e non riconoscibile.
Alla famiglia dei modelli di natura induttiva appartengono le reti neurali, “dei sistemi di elaborazione dell'informazione che cercano di simulare all'interno di un sistema informatico il funzionamento dei sistemi nervosi biologici che sono costituiti da un gran numero di cellule nervose o neuroni collegati tra di loro in una complessa rete”46.
In generale una rete neurale è composta da un numero elevato di elementi, detti
“neuroni” appunto, legati tra loro da relazioni elementari, dette “sinapsi”. I neuroni possono essere classificati in:
neuroni input, le cui attivazioni rappresentano i valori input della rete;
neuroni output, le cui attivazioni rappresentano l’output della rete;
neuroni nascosti (hidden), tutti quelli rimanenti, che non sono visibili dall’esterno.
46 Gallo C., (2007), Reti neurali artificiali: teoria e applicazioni, Foggia, Università degli studi di Foggia, p. 2.
Figura 4-15: Schema di rete neurale
Fonte: Wikipedia
La struttura dei neuroni, come mostrato nella Figura 4-15, è a “strati” (layers):
ogni neurone dello strato più esterno riceve come input n variabili (che, nel caso dei modelli per la previsione dell’insolvenza, possono essere costituite da indici economico-finanziari) e le elabora con una funzione (lineare o meno), il cui risultato viene poi trasmesso ai neuroni dello strato successivo. Anche questi poi elaborano gli input ricevuti con una funzione e li trasmettono allo strato seguente, fino a che, dopo uno o più “strati nascosti” la rete genera un output finale (che nel caso della previsione del default potrebbe essere considerato come uno score numerico, con un valore prossimo a 1 per le imprese rischiose e vicino a 0 per quelle sane). I coefficienti delle singole funzioni elementari vengono definiti mediante un meccanismo detto di “apprendimento”, che viene effettuato in maniera iterativa. In pratica grazie a una serie di tentativi si riesce a modellare in modo ottimale i pesi che collegano gli input con l’output passando per i neuroni degli strati nascosti.
Le principali fasi per elaborare una previsione tramite reti neurali , soprattutto al fine di ridurre i tempi di costruzione della rete stessa, sono:
1. l’individuazione dell’obiettivo della previsione;
2. la costruzione dell’archivio di dati su cui attivare l’apprendimento della rete neurale;
3. l’apprendimento vero e proprio, con la scelta dell’architettura e dei parametri necessari per la definizione dei pesi di connessione tra i neuroni;
4. la generalizzazione dell’output per la previsione dei mercati finanziari47. Come le reti neurali, anche gli algoritmi genetici simulano il comportamento degli organismi biologici, in particolare il loro funzionamento, messo a punto da John Holland negli anni ’60 e ’70, si ispira ai meccanismi dell’evoluzione naturale di tipo darwiniano. Per comprendere al meglio gli algoritmi genetici è, dunque, indispensabile illustrare gli elementi fondamentali del processo di evoluzione naturale proposto da Charles Darwin nel 1859 in The Origin of Species.
Gli individui di una stessa specie animale competono continuamente tra loro per accaparrarsi risorse necessarie per l’esistenza, come cibo e luoghi di rifugio, e sono sempre in concorrenza al fine di attirare una compagna con cui accoppiarsi. E’ ovvio che solo gli individui con migliori caratteristiche per interagire con l’ambiente esterno (quindi con un elevato grado di fitness) hanno buona probabilità di sopravvivere e di riprodursi. Il processo evolutivo, dunque, porta ad un continuo miglioramento della specie, dato che solo gli individui migliori riescono a trasferire il loro bagaglio genetico alle generazioni future.
Oltre alla selezione naturale, però, altri due meccanismi concorrono all’evoluzione e al miglioramento della specie. Innanzitutto, quando due
47 Cfr. Gallo C., (2007), Reti neurali artificiali: teoria e applicazioni, Foggia, Università degli studi di Foggia, p. 11.
individui generano un erede, la ricombinazione genetica (detta cross-over) può portare ad una progenie con caratteristiche migliori (con un superfit) rispetto a quelle delle generazioni passate; questa maggiore qualità genetica viene poi diffusa tra i membri delle popolazioni tramite successive riproduzioni. In secondo luogo, è possibile che il bagaglio genetico contenuto nei cromosomi degli individui cambi anche in seguito a improvvise mutazioni casuali di singoli geni48.
Gli algoritmi genetici si ispirano proprio al meccanismo appena descritto. In questo caso gli individui da evolvere sono le possibili soluzioni ad un problema, al fine di raggiungere la migliore possibile.
Ipotizzando, ad esempio, di voler generare una funzione basata su una serie di indici di bilancio ( ), costruita in modo da assegnare valori più elevati alle imprese sane e più bassi a quelle rischiose, se si considera, per semplicità, che la funzione sia lineare:
allora ogni individuo sarà rappresentato da un vettore [ ] nel quale si evidenzia con quale segno e con quale peso i vari indicatori entrano nella costruzione dello score .
Il procedimento seguito dagli algoritmi genetici allo scopo di selezionare le migliori soluzioni e affinarle, si può riassumere in diverse fasi:
1. “generazione” di una popolazione iniziale costituita da s individui- soluzioni;
48 Cfr. Resti A. & Sironi A., Op. Cit., pp. 380-381.
2. valutazione, mediante una specifica funzione, della bontà (fitness) degli individui, vale a dire la loro capacità di rappresentare una buona soluzione per il problema;
3. applicazione di un algoritmo (“operatore genetico”) di selezione che identifica gli individui destinati a sopravvivere, perché migliori, e quelli destinati a morire;
4. applicazione di un secondo “operatore genetico” (detto cross-over o ricombinazione) che permette agli individui sopravvissuti di riprodursi, quindi di dar vita ad una seconda generazione di s soluzioni, con un bagaglio genetico ereditato dai “genitori”;
5. applicazione dell’operatore genetico di “mutazione”, che prende in considerazione la possibilità di registrare un’improvvisa modifica delle soluzioni della nuova generazione;
6. misurazione della fitness di ogni individuo appartenente a questa nuova generazione di soluzioni (“figlie” della prima ed in alcuni casi trasformate da una mutazione genetica). Se alla fine nessuna di esse è pienamente soddisfacente, il processo viene ripetuto (dal punto 3 al punto 5), finche non si trova una soluzione attraente.
Figura 4-16: La struttura di un algoritmo genetico
Fonte: Pomante (1999)
Il processo di miglioramento delle soluzioni, però, non dura all’infinito, infatti una volta prodotti risultati ottimi questi, in seguito all’elevata fitness, trasmettono le loro caratteristiche alle generazioni future che pian piano arrivano ad assumere una struttura pressochè identica a quella delle generzioni precedenti.