• Non ci sono risultati.

Creare un modello predittivo di una porzione di comunità in un sistema ecologico non è banale.

Innanzitutto c’è il problema della complessità. In un sistema ecologico c’è: 1) una grande quantità di entità biologiche a vari livelli (individui, specie, popolazioni, comunità) che interagiscono nei modi più diversi; 2) una grande eterogeneità dell’ambiente fisico a varie scale (nel caso dei fiumi, dai microambienti popolati dalla fauna interstiziale, all’articolazione dell’intero bacino idrogeologico); 3) una grande quantità di variabili in gioco (climatiche, fisiche, chimiche, idrogeologiche, etologiche, ecc.); 4) una fitta rete di relazioni tra le varie componenti; 5) confini spesso incerti o sovrapposizioni tra sottosistemi diversi. Questo esclude spesso che si possano formulare modelli analitici per descrivere i rapporti quantitativi tra i descrittori ambientali rilevanti e un popolamento target. Ma anche la formulazione di un modello empirico può rivelarsi macchinosa e improduttiva, perché la regolazione dei parametri in funzione dei dati è comunque subordinata alla possibilità di cogliere a sufficienza il modo in cui interagiscono le diverse variabili in gioco e di riuscire a tradurre questa intricata rete relazionale in un opportuno sistema di equazioni. Come si accennava nel primo paragrafo, un’alternativa è quella di non impegnarsi nella fase di formulazione, ma di adottare un modello generale già formulato e testato; in tal modo si potrebbe passare direttamente alla fase di calibrazione, che attraverso la regolazione dei parametri adatta il modello allo specifico problema predittivo di cui ci si sta occupando. Tuttavia questi modelli generali determinano a priori e in modo univoco la forma delle relazioni tra variabili indipendenti e dipendenti e spesso sono molto limitati nel tenere conto degli effetti di eventuali interazioni tra variabili. I General Linear Models, ad esempio, sono basati su relazioni di tipo lineare, soffrono della presenza di legami tra le variabili indipendenti (es. multicolinearità) e hanno una ridotta capacità di considerare le diverse interazioni tra i regressori nel determinare le variabili dipendenti. Se un sistema è caratterizzato, come nel caso degli ecosistemi, da relazioni di forme eterogenee tra variabili spesso intercorrelate, allora un modello generale è una soluzione insufficiente.

L’altro problema fondamentale è che l’approccio statistico tradizionale, sofisticato e flessibile quando si ha a che fare con dati ottenuti da campionamenti ed esperimenti ben controllati, perde in validità ed attendibilità con dati di natura più eterogenea e meno controllabile, come sono spesso quelli legati alle osservazioni in

ecologia (Fielding, 1999). I metodi statistici, infatti, si basano su una serie di assunzioni che sono necessarie per garantire che le distribuzioni teoriche di probabilità usate come riferimento siano valide. Anche i metodi non parametrici, meno esigenti di altri da questo punto di vista, restano tuttavia legati a modelli di riferimento che richiedono distribuzioni di frequenza di un certo tipo nei dati (ad esempio, distribuzioni unimodali e/o simmetriche), relazioni riconducibili a modelli lineari o di altre forme note, assenza o limitata presenza di valori nulli, indipendenza delle osservazioni, quantità di dati che non vadano al di sotto o al di sopra di una massa critica e che siano stati acquisiti in modo omogeneo e controllato. In ecologia, invece, ci si ritrova spesso ad avere distribuzioni di frequenza multimodali e asimmetriche; relazioni tra variabili molto complesse e soggette ad influenze esterne da parte di altri fattori; presenza di molti valori nulli che non è sempre facile attribuire ad una reale determinazione della variabile misurata o ad assenza di informazione (es. i valori di abbondanza relativi a specie rare); osservazioni non indipendenti a causa di pseudoreplicazione o autocorrelazione spaziale e temporale; squilibrio nella quantità di informazioni disponibili per diverse variabili o grande abbondanza generale di informazione in certi ambiti (si pensi ai dati telerilevati); presenza di dati non sempre omogenei rispetto ai metodi di acquisizione. Anche qui esiste un’alternativa, che tuttavia è da ritenere scorretta nella maggior parte dei casi: ignorare il fatto che i sistemi e i dati con cui si lavora in ecologia presentano caratteristiche formalmente incompatibili con i metodi statistici tradizionali e fidarsi della robustezza di questi ultimi, cioè della loro capacità di fornire analisi e modelli attendibili anche al di fuori delle condizioni di validità fissate dalla teoria in base alla quale sono stati formulati.

Negli ultimi vent’anni, però, alcuni ecologi hanno cominciato ad affrontare il problema in un modo diverso, legando alcuni aspetti numerici e metodologici del loro lavoro a tecniche elaborate nell’ambito dell’intelligenza artificiale.

L’intelligenza artificiale nasce tra gli anni ’40 e gli anni ’50 del Novecento, intercettando i percorsi di riflessione e ricerca provenienti da molte discipline: filosofia, fisiologia, psicologia, biologia, matematica, logica, tra quelle che esistevano già, e informatica, cibernetica, ingegneria dei calcolatori, teoria dell’informazione, tra quelle che si venivano sviluppando in quegli stessi anni. Il 1943, in particolare, fu un anno importante per varie ragioni, tra cui un fondamentale articolo di McCulloch e Pitts in cui veniva teorizzato per la prima volta il neurone

artificiale29

In Fig. 5 è mostrato un modello un po’ più sofisticato di quello originario di McCulloch e Pitts, ma l’essenza è la stessa: il neurone artificiale è una funzione

matematica del tipo 𝑦𝑦(𝑥𝑥̅, 𝑤𝑤�), che ha per variabili indipendenti il vettore 𝑥𝑥̅, con i

segnali provenienti dall’esterno del neurone, e il vettore 𝑤𝑤�, con i pesi sinaptici delle

connessioni che portano i segnali al neurone; la variabile dipendente, cioè l’output

del neurone, è lo stato di attivazione 𝑦𝑦 di quest’ultimo, che può costituire l’output

definitivo desiderato oppure essere usato a sua volta come segnale di ingresso per altri neuroni.

. Warren Sturgis McCulloch era uno studioso di psicologia e neurofisiologia, mentre Walter Pitts era un logico che lavorava nell’ambito della psicologia cognitiva; essi si chiesero come le funzioni base del pensiero potevano essere determinate dall’attività nervosa. Lo sviluppo di un modello artificiale estremamente semplificato di cellula nervosa permise loro, tra l’altro, di dimostrare che già un’unica unità di elaborazione elementare era in grado di risolvere semplici problemi di logica, ricevendo come input alcune informazioni (premesse) e fornendo come output la soluzione del problema (conclusioni).

29 La storia dell’intelligenza artificiale non si riduce a quella delle reti neurali, ma qui si farà riferimento

soprattutto a quest’ultima, in modo da introdurre progressivamente tutti i concetti necessari alla comprensione degli aspetti tecnici dello studio presentato in questa tesi.

Fig. 5

La funzione 𝑦𝑦(𝑥𝑥̅, 𝑤𝑤�) risulta dalla composizione di due diverse funzioni.

Innanzitutto una funzione 𝑝𝑝𝑎𝑎 che calcola il potenziale di attivazione del neurone

combinando i segnali in ingresso e usando i pesi sinaptici per decidere l’effetto che il segnale trasmesso tramite una particolare connessione avrà nel determinare l’attivazione finale del neurone; quest’ultima operazione in genere viene compiuta calcolando il prodotto scalare (detto anche prodotto interno) tra il vettore dei segnali

e quello dei pesi, cioè moltiplicando il generico segnale xi (che varia tra 0 e 1) con il

peso della connessione relativa wi (che varia tra -1 e 1). Se il peso wi della i-esima

connessione è elevato, allora gran parte di xi passerà alla funzione di attivazione e

contribuirà all’attivazione finale del neurone; se invece wi è vicino o uguale a zero,

poco o nulla di xi passerà; se wi è negativo, avremo una connessione inibitoria e il

valore di xi contribuirà a diminuire l’attivazione del neurone artificiale. Tra le

possibili funzioni per combinare i segnali in ingresso, la funzione 𝑝𝑝𝑎𝑎 riportata in

figura, che determina una combinazione lineare degli input, è quella più usata per

calcolare il potenziale di attivazione30

30 Le unità neurali di tipo RBF (Radial Basis Funtion) o quelle di tipo Sigma-Pi costituiscono esempi di

neuroni artificiali che fanno uso di una diversa funzione di combinazione per il calcolo del potenziale di

modello matematico del neurone artificiale è la funzione di attivazione, che ha per

argomento il potenziale di attivazione calcolato tramite la funzione 𝑝𝑝𝑎𝑎 e permette il

calcolo dello stato di attivazione del neurone. Vari tipi di funzione possono essere usati. La figura ne mostra tre: la funzione a gradino con soglia θ, usata da McCulloch e Pitts nel loro modello; la funzione sigmoide, molto comune nei modelli moderni; la funzione normale, usata solo per scopi specifici. Con ingressi di tipo binario (che potevano assumere solo i valori 1 e 0), pesi sinaptici opportunamente regolati e funzione di attivazione a gradino (che dà 0 per valori al di qua di una soglia θ e 1 per valori superiori), McCulloch e Pitts crearono un modello, detto anche unità logica a soglia, in grado di fornire i valori di verità di proposizioni generate tramite gli operatori logici AND, OR, NOT, cioè di simulare semplici ragionamenti a livello di logica proposizionale. Dimostrarono inoltre che più unità neurali artificiali di questo tipo, connesse tra loro secondo una particolare

architettura e dotate di un’opportuna matrice di pesi sinaptici, erano in grado di

svolgere calcoli di qualsiasi complessità.

La loro era una dimostrazione teorica, che fu determinante nel favorire lo sviluppo di ulteriori ricerche sui modelli di calcolo connessi (basati cioè su molti elaboratori semplici collegati in rete, piuttosto che su un unico elaboratore molto potente), paralleli (in cui i diversi elaboratori svolgono contemporaneamente molte operazioni, a differenza del modello seriale, in cui un unico elaboratore svolge una singola operazione alla volta) e distribuiti (in cui la memoria e il software che determinano i processi di calcolo sono parte integrante della struttura di elaborazione e si trovano distribuiti in essa, piuttosto che essere codificati e salvati all’esterno dell’elaboratore). Nei decenni successivi sarebbe divenuto via via sempre più chiaro che questo modo di elaborare le informazioni era particolarmente adatto ad alcuni problemi con cui gli elaboratori classici (di tipo seriale) avevano grosse difficoltà a confrontarsi; problemi di identificazione o di riconoscimento di strutture all’interno di configurazioni complesse. Un problema classico di questo tipo è quello del riconoscimento dei volti, un problema semplicissimo per scimmie e neonati di pochi mesi, ma proibitivo per un computer seriale anche molto potente! Si tratta di problemi formalmente riconducibili a situazioni in cui vi sono molte variabili che interagiscono esprimendo strutture di grande complessità... situazioni molto simili a quelle che si incontrano in ecologia! Il modello di McCulloch e Pitts diede un

attivazione. Costituiscono tuttavia soluzioni usate con reti neurali di tipo diverso da quelle qui considerate.

impulso notevole agli studi su questi metodi di elaborazione, ma presentava ancora alcuni importanti limiti pratici, legati al fatto che l’efficacia della rete è comunque determinata dalla scelta dell’architettura, della funzione di attivazione usata nelle singole unità e dell’insieme dei pesi sinaptici delle connessioni: definire tutto questo a tavolino, su una base teorica, comporta tutti i problemi relativi alla formulazione di un modello complesso ex novo (come si diceva nel paragrafo precedente) ed è praticamente impossibile (soprattutto per quanto riguarda i pesi); altrettanto arduo sarebbe d’altra parte costruire il modello per prove ed errori, poiché le combinazioni delle varie scelte possibili sono troppo numerose perché un processo di questo tipo possa essere efficiente.

In un lavoro di Donald Hebb del 1949, considerato di fondamentale importanza per tutta una serie di discipline, dalle neuroscienze alla psicologia, all’intelligenza artificiale, si cominciò a studiare il modo in cui le connessioni sinaptiche potevano incrementare o diminuire la propria efficienza in base all’esperienza: era un primo tentativo di descrivere i fenomeni elementari che stavano alla base dell’apprendimento nei sistemi biologici. Si cominciò dunque a studiare algoritmi che permettessero di fare qualcosa di simile con le reti neurali artificiali, in modo da produrre una regolazione automatica dei pesi sinaptici in base ad una sorta di “esperienza artificiale” fornita alla rete tramite “esempi”.

Si immagini di aver condotto su alcune unità statistiche la misura della variabile X e della variabile Y, ritenuta dipendente da X; gli “esempi” saranno dunque costituiti da coppie di valori. Una rete neurale potrebbe essere costruita in modo che un neurone riceva i segnali in ingresso (variabile X) e che un altro fornisca le previsioni in uscita (variabile Y); tra di essi possono esservi altri neuroni, combinati in modi che per adesso non sono importanti. Le connessioni tra i neuroni sono dotate di pesi sinaptici che inizialmente vengono fissati in modo casuale. Un algoritmo di apprendimento automatico funziona in modo da proporre alla rete un

valore di X come input e da rilevare poi se il valore di Y previsto dalla rete 𝑌𝑌𝑂𝑂𝑂𝑂𝑂𝑂 è

più o meno vicino al valore di Y osservato sul campo 𝑌𝑌𝑂𝑂𝑂𝑂𝑂𝑂; basandosi su una regola

(che, si vedrà, non è banale trovare), l’algoritmo agisce poi in modo reiterato sui pesi sinaptici con l’obiettivo di far avvicinare il più possibile le successive previsioni

algoritmi, detti di machine learning31, aggirano dunque il problema di trovare su base teorica o per prove ed errori i pesi sinaptici e rendono possibile l’apprendimento automatico basato su esempi. Questo è particolarmente importante quando le variabili in gioco sono molte e il numero e la complessità strutturale dei pesi sinaptici sono elevati.

I primi algoritmi basati sul lavoro di Hebb non erano però ancora abbastanza efficaci e restava da risolvere volta per volta anche il problema dell’architettura della rete e della funzione di attivazione da adoperare. Nel 1957 fu pubblicato un lavoro di Andrej Kolmogorov che dimostrava la possibilità di approssimare una qualunque funzione di più variabili, con una qualsiasi accuratezza, tramite una serie di funzioni organizzate secondo una struttura riproducibile in una rete neurale con certe caratteristiche. Tra il 1958 e il 1962, Frank Rosenblatt e colleghi realizzarono, sulla base del lavoro di Kolmogorov e di Hebb, il perceptron, una rete neurale dotata di un’architettura e di proprietà matematiche che permettevano per la prima volta l’uso di un algoritmo di apprendimento che, attraverso una regolazione reiterata dei pesi sinaptici, permetteva alla rete di convergere in modo stabile verso l’approssimazione desiderata.

31 Il Machine Learning è un ramo dell’intelligenza artificiale che si occupa specificamente

Fig. 6

Quando si parla di “architettura” di una rete neurale, si fa riferimento ad una serie di caratteristiche: il numero di unità neurali presenti, quante di esse ricevono i segnali di input e quante forniscono l’output, quali neuroni sono connessi tra loro, in che direzione vanno le connessioni, ecc. L’architettura del più semplice modello di percettrone (Fig. 6a) ha una serie di neuroni di input, tutti connessi ad un unico neurone di output; è una rete feedforward, in quanto le connessioni determinano solo un flusso “in avanti” dell’informazione, senza connessioni che tornino da neuroni successivi a neuroni precedenti (le reti in cui accade questo sono dette ricorrenti o a

feedback32

32 Esempi di questo tipo di architettura sono le reti di Hopfield e le Macchine di Bolzman.

e possono presentare anche delle autoconnessioni, cioè delle connessioni di un nodo con se stesso); i neuroni di input formano qui uno strato, cioè un insieme di nodi connessi con porzioni precedenti o successive della rete (con riferimento al flusso dell’informazione), ma non tra di loro (sono cioè assenti le connessioni

laterali); infine, il percettrone singolo è una rete totalmente connessa, in quanto tutti

i neuroni di uno strato (in questo caso quello di input) sono connessi con tutti i neuroni dello strato successivo (che qui ha un unico neurone). Se più percettroni

singoli vengono combinati insieme, allora si ha una rete di percettroni (Fig. 6b) con architettura nxm, in cui n è il numero dei nodi di input ed m è il numero dei nodi di output. In entrambi i casi, le connessioni hanno tutte un peso sinaptico. Per conoscere le caratteristiche di una rete neurale, oltre all’architettura deve essere specificato il tipo di elaboratore elementare, cioè di unità neurale, di cui si è fatto uso. Come si è già visto (Fig. 5), un’unità neurale è caratterizzata da una prima funzione che interviene nel calcolo del potenziale di attivazione e da una seconda funzione che determina lo stato di attivazione. Nel percettrone di Rosenblatt il potenziale di attivazione è calcolato come combinazione lineare dei segnali ingresso (valori continui tra 0 e 1, con i coefficienti dati dai pesi sinaptici), mentre la funzione di attivazione è ancora una funzione a soglia, come nel combinatore lineare

a soglia di McCulloch e Pitts. Dunque l’output è binario33

Il modello di Rosenblatt ebbe il merito di fissare alcuni parametri fondamentali dell’architettura e delle unità neurali sulla base del lavoro teorico di Kolmogorov, ma ancora più importante fu l’elaborazione di un algoritmo di addestramento, cioè di un processo automatico che sfruttando le conclusioni di Hebb regolava i pesi sinaptici e faceva sì che la rete approssimasse realmente le funzioni proposte tramite gli esempi. Era un passo avanti che apriva le porte a sviluppi teorici e applicativi di grande portata e alimentò dunque la curiosità e l’interesse generale della comunità scientifica negli anni ’60. Purtroppo il modello di Rosenblatt aveva ancora un limite importante: una rete con due soli strati di neuroni, uno di input e l’altro di output può approssimare solo un certo tipo di funzioni, mentre altre restano al di fuori della sua portata

.

34

33 Pertanto il percettrone singolo di Rosenblatt aveva la caratteristica di separare in due parti lo spazio

n-dimensionale definito in ℝ𝑛𝑛, riconducendo cioè la posizione di un punto in quello spazio (ogni punto

rappresenta l’insieme n-dimensionale di misure necessarie a caratterizzare un dato o esempio) all’appartenenza ad una di due diverse classi.

. Questo Rosenblatt lo sapeva (perché Kolmogorov lo aveva dimostrato) e cercò di creare anche dei modelli più sofisticati, con unità non lineari (cioè con funzione di attivazione non lineare) e con tre strati (Multilayer Perceptron), in cui lo strato intermedio (detto anche strato nascosto) connetteva quello di input e di output (Fig. 7).

34 Se il problema modellistico va oltre l’individuazione di porzioni linearmente separabili dello spazio

n-dimensionale dei descrittori, il percettrone di Rosenblatt è inadeguato. Si pensi al caso semplificato in cui vi sono solo due nodi di input, per cui i punti che descrivono lo spazio dei descrittori si dispongono su un piano; se la classificazione richiesta al neurone di output implica l’assegnazione del valore 1 e del valore 0 a due diverse parti dello spazio dei descrittori che possono essere identificate tracciando una linea, allora il percettrone di Rosenblatt è efficace; ma se già la linea di separazione è curva, l’efficacia diminuisce drasticamente. Purtroppo anche funzioni relativamente semplici, come quella data dal connettivo logico XOR (eXclusive OR) presentano caratteristiche di non separabilità lineare.

Fig. 7

Ma il problema vero era l’algoritmo di addestramento: con tre strati non si riusciva a creare un algoritmo che convergesse stabilmente fino ad approssimare la funzione desiderata. Neanche Bernard Widrow e Marcian E. Hoff, che in quegli anni perfezionarono ulteriormente l’algoritmo di apprendimento giungendo alla formulazione della regola delta (delta rule) (1960), riuscirono a trovare una soluzione efficace ai limiti del percettrone. Tuttavia, la regola delta avrebbe avuto un ruolo notevole negli sviluppi di poco più di un decennio più tardi.

In estrema sintesi, la regola delta si basa sulla misura di quanto l’uscita 𝑂𝑂𝑂𝑂𝑂𝑂𝑗𝑗

determinata dai dati osservati. Da questo scostamento si ricava una misura dell’errore compiuto dalla j-esima unità di output:

𝐸𝐸𝑗𝑗 =12 �𝑂𝑂𝑂𝑂𝑂𝑂𝑗𝑗− 𝑂𝑂𝑂𝑂𝑂𝑂𝑗𝑗�2=12 �𝑂𝑂𝑂𝑂𝑂𝑂𝑗𝑗 − 𝑎𝑎(� 𝑤𝑤𝑖𝑖𝑗𝑗𝑥𝑥𝑖𝑖 𝑛𝑛1 𝑖𝑖=0

)�

2

Lo scostamento viene elevato al quadrato sia per considerare allo stesso modo scostamenti positivi e negativi, che per dare maggiore importanza agli errori grandi;

il prodotto per 1 2� ha l’unico scopo di facilitare i passaggi di calcolo successivi:

questa misura dell’errore è l’MSE (Mean Square Error), cioè l’errore quadratico

medio. Ovviamente, il termine 𝑂𝑂𝑂𝑂𝑂𝑂𝑗𝑗 dipende dalla funzione di attivazione a, che in

base al contributo pesato degli n1 segnali in ingresso (più quello di bias) determina

l’uscita del nodo j. Qui 𝑤𝑤𝑖𝑖𝑗𝑗 indica il peso sinaptico della connessione tra l’i-esimo

neurone di input e il j-esimo neurone di output: è l’elemento più importante della formula, poiché ciò che vogliamo fare tramite la regola delta è proprio modificarne

il valore per ridurre 𝐸𝐸𝑗𝑗. Dunque, in base all’uscita 𝑂𝑂𝑂𝑂𝑂𝑂𝑗𝑗 del j-esimo neurone di

output, la regola delta ci permette di regolare i pesi sinaptici di tutte le connessioni

che quel neurone riceve dallo strato precedente; infatti, considerando costanti gli n1

stati di attivazione (𝑥𝑥𝑖𝑖) dei neuroni in ingresso (di fatto, ogni volta che viene fornito

alla rete un vettore di dati, i suoi elementi sono costanti), possiamo dire che 𝐸𝐸𝑗𝑗 è una

funzione degli n1 pesi sinaptici delle relative connessioni e cercare quindi di

Documenti correlati