Cani, gatti e terremoti

Come e perché creare un dataset di dati sismici per studiare i terremoti con l’intelligenza artificiale.

Ormai l’Intelligenza Artificiale (IA) è come il prezzemolo, la trovi ovunque: riconosce i soggetti nelle fotografie; ottimizza i suoni rimuovendo il rumore di fondo negli impianti audiometrici; permette alla nostra nuova automobile di mantenere una velocità costante, adattandosi al traffico e frenando per noi in condizione di pericolo; aiuta i medici nelle diagnosi; consente a dispositivi come gli assistenti personali di riconoscere la nostra voce, comprendere le nostre domande e rispondere in modo appropriato; traduce per noi in innumerevoli lingue e così via. Se l’IA è in grado di fare tutto questo perché non usarla anche in sismologia? Potrebbe sicuramente imparare a identificare i segnali dei terremoti ed aiutarci ad ottimizzare i sistemi di allerta rapida. È evidente che alcune applicazioni di IA sono molto più delicate di altre. Scambiare un cane per un muffin ai mirtilli può far sorridere (Figura 1), ma errori in altri ambiti possono avere conseguenze molto serie. È quindi importante capire quali siano i meccanismi alla base dell’apprendimento degli algoritmi di IA e fare in modo da rendere i risultati quanto più affidabili, accurati e sicuri possibile. È con questo spirito che nasce il lavoro che presentiamo in questo articolo. 

Figura 1. Un interessante esempio da Twitter https://twitter.com/teenybiscuit/status/707727863571582978: cane o muffin? Se ci soffermiamo sulle immagini, per noi umani la risposta è ovvia. Ma per un algoritmo di IA?  In realtà ci sono molteplici soluzioni a questo problema che può confondere un programma di IA se non si adottano particolari accorgimenti.

Come fa l’IA ad imparare tutte queste cose?

A differenza di noi umani, che impariamo rapidamente a distinguere un cane da un gatto attraverso un’esperienza multisensoriale (vista, tatto e udito),  un programma di IA apprende attraverso l’osservazione ripetuta migliaia/milioni di volte dello stesso soggetto. Per fare un esempio possiamo insegnare (o allenare dall’inglese “training” nel gergo di IA) ad un programma come distinguere un cane da un gatto mostrandogli numerose fotografie dei due soggetti e specificando ogni volta se si tratta del primo o del secondo. Abbiamo dunque bisogno di una vasta collezione di esempi (ad esempio immagini di cani e gatti) affinché il programma possa identificare i tratti comuni associati a ciascuna classe (cioè la classe dei cani o dei gatti nel nostro esempio). Queste vaste raccolte di dati, accuratamente organizzati e classificati, vengono chiamate dataset.  In generale, maggiore è la disponibilità di campioni da esaminare di elevata qualità, migliori saranno i risultati del riconoscimento.  Una volta terminato l’allenamento (training) dobbiamo verificare se il programma ha appreso correttamente come distinguere i due animali (il problema della classificazione tra cani e gatti è considerato un esempio classico per lo sviluppo di algoritmi di riconoscimento delle immagini).

Come facciamo a capire se l’IA ha imparato davvero?

La sottoponiamo ad un test in cui gli si chiede di riconoscere cani e gatti utilizzando nuove fotografie dei due animali di cui conosciamo già la classificazione (in inglese ground truth). Il programma ci fornirà una risposta che consiste in un valore di probabilità. In pratica ci dirà: “la fotografia mostra un gatto con una probabilità molto alta” oppure “la fotografia mostra un gatto con una probabilità bassa”. Queste risposte, confrontate con la ground truth possono essere corrette, nel caso che il gatto sia effettivamente presente o assente (vero positivo o vero negativo), o sbagliate, nel caso che il gatto venga identificato quando non dovrebbe o che non venga individuato quando presente  (rispettivamente falso positivo o falso negativo). Alla base di questa procedura c’è una funzione di valutazione che consente al programma di IA di individuare le regole migliori per identificare la classe di appartenenza (cane o gatto nel nostro esempio). L’apprendimento, perfezionato durante la fase di allenamento del programma, termina quando la funzione di valutazione fornisce valori tali da considerare il risultato adeguato/affidabile per l’applicazione richiesta. Questi algoritmi forniscono, in ultima analisi, modelli predittivi che, se applicati a nuovi dati, sono in grado di restituire una valutazione in senso probabilistico sulla base di quanto appreso dai dataset di riferimento.

Che caratteristiche deve avere un dataset per ottenere un buon modello predittivo?

Da quanto visto finora emerge chiaramente che per ottenere un modello predittivo accurato è necessario allenare il nostro programma con un set di dati di elevata qualità. Come prima cosa questo significa che deve essere costruito avendo ben chiare le domande a cui vogliamo dare una risposta e prestando attenzione a non inserire potenziali informazioni fuorvianti. Ad esempio, per sviluppare un sistema di diagnosi automatica della polmonite, si potrebbero utilizzare radiografie toraciche provenienti da numerosi centri diagnostici. Occorre però fare attenzione perché le immagini radiografiche potrebbero contenere anche informazioni specifiche sul centro diagnostico che le ha prodotte:  l’algoritmo (cioè il programma di IA che utilizziamo) potrebbe erroneamente imparare che quelle provenienti da un particolare ospedale (che potrebbe essere un centro di eccellenza nella cura delle polmoniti) corrispondono sempre a soggetti malati (questo caso si è effettivamente verificato durante la pandemia COVID-19). In altre parole, le fasi di allenamento e test dell’apprendimento dipendono fortemente dal dataset che viene utilizzato. Deve quindi essere posta molta attenzione alla sua compilazione onde evitare un caso come quello sopra descritto che porterebbe ad una diagnosi errata.   

Un’altra importante caratteristica di un dataset per l’IA è quella di comprendere quante più casistiche possibili delle proprietà/i tratti determinanti per ciascuna delle classi ivi incluse (es.: cani e gatti). Ciò consente di ottenere una generalizzazione delle caratteristiche distintive a tutto beneficio delle capacità predittive del programma di IA. La generalizzazione è molto importante perché ci permette di riconoscere come gatti anche individui provenienti da quelle razze che, per tratti somatici, potrebbero essere più difficili da associare ai gatti a cui siamo abituati.

Un altro aspetto importante è che i dati devono essere predisposti secondo formati di riferimento standardizzati condivisi con la comunità scientifica così da poter essere distribuiti ed utilizzati nella maniera più semplice possibile. Infine, i dati dovrebbero anche essere pubblici per  espandere la base degli utilizzatori e garantire le  verifiche sia sui dati che sulla qualità dei modelli. 

È possibile usare l’IA in sismologia?

Il monitoraggio sismico del territorio italiano effettuato dalla Rete Sismica Nazionale dell’INGV produce continuamente una enorme quantità di dati e le elaborazioni svolte quotidianamente da personale esperto rappresentano una formidabile risorsa per la realizzazione di dataset di elevata qualità da utilizzare per allenare e testare algoritmi di IA. Infatti, le registrazioni del moto del suolo (sismogrammi) vengono corredate da una serie di informazioni aggiuntive dette metadati. Queste informazioni descrivono il tipo di onda sismica, il suo tempo di arrivo, la stima della sorgente che le ha generate (principalmente terremoti ma anche esplosioni vulcaniche, esplosioni in cava o test nucleari), la localizzazione ed entità di tale sorgente, il livello di  scuotimento che è stato registrato alla stazione, il tempo di propagazione delle onde sismiche tra la sorgente sismica e la stazione dove vengono registrate, il livello di rumore sismico caratteristico della stazione. I metadati sono quindi associati ai sismogrammi in modo del tutto analogo a quanto descritto nell’esempio del riconoscimento di cani e gatti. 

Questa immensa quantità di dati e metadati salvati nelle banche dati dell’Istituto Nazionale di Geofisica e Vulcanologia è stata rielaborata e convertita nel dataset, chiamato INSTANCE, adatto per essere utilizzato con i nuovi metodi basati sull’utilizzo di tecniche di IA, ed in particolare con le più recenti evoluzioni di questi algoritmi detti machine learning e deep learning, che nell’ultimo quinquennio hanno avuto un grande sviluppo in numerosissimi ambiti applicativi. 

Come nasce INSTANCE?  

La compilazione di INSTANCE nasce dall’idea di valorizzare i dati raccolti dalle reti di monitoraggio sismico dell’INGV e dal lavoro del personale addetto alle Sale Operative per la Sorveglianza Sismica e alla realizzazione dei bollettini sismici. L’auspicio è che INSTANCE, tramite l’unione dei dati e dell’esperienza delle persone, permetta di creare nuovi strumenti basati sull’AI per fornire informazioni sempre più accurate e precise sui terremoti in Italia ed all’estero.

Figura 2. A sinistra viene mostrata la mappa della sismicità ottenuta dai circa 54.000 terremoti inclusi in INSTANCE. Il colore dei cerchi dipende dalla profondità degli eventi sismici, mentre la loro grandezza della magnitudo. A destra, con i triangoli rossi, sono rappresentate le stazioni sismiche presenti nel dataset. La dimensione dei triangoli è proporzionale al numero di sismogrammi registrati alle varie stazioni.

Inizialmente abbiamo selezionato circa 54.000 terremoti presenti nel Bollettino Sismico Italiano (Figura 2). Dato che ogni evento viene registrato da più stazioni (circa 620 sono quelle presenti nella versione finale del dataset)  abbiamo ottenuto oltre 1,2 milioni di sismogrammi a tre componenti (una verticale e due orizzontali). A questi abbiamo aggiunto poco più di 100.000 ulteriori sismogrammi relativi a rumore sismico (cioè registrazioni prive di segnale attribuibile a terremoti).

Figura 3. Esempi di sismogrammi a tre componenti (Est-Ovest, Nord-Sud e Verticale) inclusi in INSTANCE. Nelle tre colonne sono mostrati sismogrammi estratti casualmente dal dataset tramite i metadati associati: sono relativi a terremoti con magnitudo comprese tra 2 e 3 (prima colonna), 3 e 4 (seconda colonna)  e maggiori di 4 (terza colonna). Le barre verticali blu e arancione si riferiscono rispettivamente agli arrivi delle onde P ed S.

INSTANCE raccoglie quindi un totale di 1,3 milioni di sismogrammi a 3 componenti (Figura 3). All’inizio di questo articolo si è accennato al fatto che per effettuare analisi di IA è indispensabile disporre di dati di ottima qualità e idonei al problema che vogliamo risolvere. Nel realizzare INSTANCE ci siamo posti l’obiettivo di creare un dataset che potesse essere impiegato in molteplici applicazioni: pertanto abbiamo associato ai sismogrammi quante più informazioni aggiuntive possibili. Tali informazioni che corredano il dato principale (il sismogramma) sono appunto i metadati menzionati poco sopra. Alla fine di un lungo processo di calcolo, nella versione finale di INSTANCE ad ogni sismogramma sono stati associati 115  metadati per i terremoti e 46 per il rumore sismico. In dettaglio, i metadati associati ai sismogrammi sono identificati in base a quattro gruppi principali che descrivono:

  • la sorgente sismica, che comprende  per esempio la localizzazione, la magnitudo del terremoto, il meccanismo focale; 
  • la stazione sismica che l’ha registrato, quindi la posizione ed il tipo di strumento;
  • il percorso dei raggi sismici e quindi la distanza epicentrale, il tempo di percorrenza delle onde sismiche;
  • i parametri riconosciuti sui sismogrammi come i tempi di arrivo delle onde sismiche P e S, le ampiezze massime del segnale, ed altre grandezze ricavate dalle precedenti. 

La presenza di questa varietà di metadati permette all’utente che utilizza il dataset di selezionare particolari sismogrammi utilizzando i metadati. Al momento, tra i dataset sismologici pubblicati, INSTANCE è l’unico a offrire questa possibilità in modo estremamente diretto e semplice.

A che cosa serve INSTANCE?

La ricerca scientifica si basa sulla trasparenza e la riproducibilità dei risultati ottenuti: qualunque ricercatore dovrebbe essere in grado di ottenere esattamente gli stessi risultati di un‘analisi descritta e pubblicata in un articolo scientifico. Risulta quindi evidente il ruolo fondamentale ricoperto dai dataset che vengono utilizzati per l’analisi.  Inoltre, durante lo sviluppo di nuove tecniche di elaborazione è estremamente importante poter disporre di dataset che consentano di confrontare i risultati e valutare le performance.

Anche in applicazioni di IA è infatti prassi contro-verificare (benchmarking) una nuova metodologia sia attraverso il confronto dei risultati con quelli precedentemente ottenuti con altre tecniche già consolidate, sia tramite l’applicazione a differenti dataset. INSTANCE fornisce a coloro che si occupano di studiare i terremoti in Italia utilizzando tecniche di IA la possibilità di verificare le analisi svolte utilizzando un dataset di qualità, contro-verificato e pubblico.

Quali ricerche si possono svolgere usando INSTANCE?

I metadati dei tempi di arrivo delle fasi P ed S presenti in INSTANCE possono essere utilizzati per realizzare dei programmi di IA che li riconoscano in modo automatico all’interno dei  sismogrammi.  Per realizzare questi algoritmi si procede analogamente all’esempio dei cani e dei gatti che abbiamo illustrato in precedenza: si mostrano all’algoritmo tanti esempi di arrivi delle onde P ed S e di rumore (abbiamo visto che in INSTANCE abbiamo molte centinaia di migliaia di esempi di queste classi) fino a quando avrà imparato a riconoscerli.

I primi studi in materia mostrano che i sistemi di riconoscimento delle fasi sismiche basati sull’IA, messi a punto utilizzando dataset simili a INSTANCE, sono molto accurati e molto efficaci, ovvero riescono a “scovare” terremoti molto piccoli che si confondono con il rumore sempre presente in ogni registrazione. Il vantaggio dunque dell’applicazione di queste tecniche consiste nel fatto di automatizzare la procedura ottenendo risultati paragonabili ad un operatore umano o addirittura superiori. Il risultato principale è un significativo incremento nel numero di terremoti che aiuteranno a delineare con maggiore precisione le strutture sismogenetiche che li hanno originati, magari scoprendone alcune che non risultano essere ancora state identificate.

Primi risultati ottenuti tramite INSTANCE

INSTANCE è stato pubblicato a fine 2021 e sono ora in  corso i primi studi che lo utilizzano. Vi sono tuttavia già delle prime indicazioni che INSTANCE possa essere un contributo interessante. Infatti, quasi contemporaneamente alla  sua compilazione, è stata realizzata una piattaforma di analisi dati per machine learning denominata SeisBench. Questa piattaforma consente e semplifica il benchmarking di cui si è accennato sopra. È stato condotto un confronto approfondito tra diversi dataset pubblicati e diversi modelli di IA per l’identificazione delle fasi P ed S che mostra che INSTANCE può essere considerato un dataset alquanto “eclettico”, che funziona bene anche per terremoti che non avvengono in Italia. Questa caratteristica è frutto sia della cura utilizzata nell’assemblare il dataset, che della variabilità degli stili tettonici che caratterizzano la sismicità italiana che avviene in ambiente compressivo e occasionalmente trascorrente nelle Alpi, in ambiente distensivo e saltuariamente trascorrente lungo la catena Appenninica, in ambiente estremamente eterogeneo nelle zone vulcaniche e nella subduzione dell’arco calabro che provoca sismicità molto profonda. In pratica, INSTANCE consente di generalizzare l’apprendimento svolto nella fase di training discussa poco sopra e ne consente un efficace utilizzo in altre aree geografiche.

a cura di  M. Bagagli, S. Cianetti, S. Gaviano, C. Giunchi, D. JozinovićV. Lauciani e  A. Michelini, Istituto Nazionale di Geofisica e Vulcanologia


Licenza

Licenza Creative Commons

Quest’opera è distribuita con Licenza Creative Commons Attribuzione – Non opere derivate 4.0 Internazionale.