sabato 14 agosto 2021

Il Machine learning per navigare nel mare burrascoso dei dati

 

Fin dalla nascita siamo inondati dai dati. I sensori del nostro corpo - occhi, orecchie, naso, lingua e nervi - sono continuamente assaliti da dati che il nostro cervello traduce in immagini, suoni, odori, sapori e consistenza. Usando il linguaggio, siamo poi in grado di condividere queste esperienze con gli altri.

Dall'avvento del linguaggio scritto, gli uomini hanno registrato le loro osservazioni. I cacciatori primitivi monitoravano il movimento delle mandrie, i primi astronomi registravano l'allineamento di pianeti e stelle e le città registravano pagamenti fiscali, nascite e morti. Oggi, tale osservazioni, e molte altre, sono sempre più automatizzate e registrate sistematicamente in database in continua crescita.

L'invenzione dei sensori elettronici ha inoltre contribuito a un'esplosione del volume e della ricchezza dei dati registrati. Sensori specializzati vedono, sentono, odorano e gustano. Questi sensori elaborano i dati in modo molto diverso da come farebbe un essere umano. A differenza dell'attenzione limitata e soggettiva di un essere umano, un sensore elettronico non si prende mai una pausa e non lascia mai che il suo giudizio distorca la sua percezione.

Sebbene i sensori non siano influenzati dalla soggettività, essi non riportano necessariamente una rappresentazione unica e definitiva della realtà. Alcuni hanno un errore di misurazione intrinseco, a causa di limitazioni hardware. Altri sono limitati dalla loro portata. Una fotografia in bianco e nero fornisce una rappresentazione diversa del soggetto rispetto a uno scatto a colori. Allo stesso modo, un microscopio fornisce una rappresentazione della realtà molto diversa rispetto a un telescopio.

Nei database grazie ai sensori, vengono registrati molti aspetti della nostra vita. Governi, aziende e individui registrano e riportano informazioni di tutti i tipi. I sensori meteorologici per esempio registrano i dati di temperatura e pressione, le telecamere di sorveglianza osservano i marciapiedi e le gallerie della metropolitana; vengono monitorati tutti i tipi di comportamenti elettronici: transazioni, comunicazioni, amicizie e molti altri.

Questo tempesta di dati ha portato alcuni ad affermare che siamo entrati nell’era dei Big Data, ma questo potrebbe essere un termine improprio. Gli esseri umani sono sempre stati circondati da grandi quantità di dati. Ciò che rende unica l'era attuale è che disponiamo di enormi quantità di dati registrati, molti dei quali sono accessibili direttamente dai computer. Set di dati sempre più grandi e più interessanti sono accessibili con una semplice ricerca web.

Il campo di studio interessato allo sviluppo di algoritmi informatici per trasformare i dati in azioni intelligenti è noto come machine learning. Questo campo ha avuto origine in un ambiente in cui i dati disponibili, i metodi statistici e la potenza di calcolo si sono evoluti rapidamente e simultaneamente.





 La crescita dei dati ha richiesto una potenza di calcolo aggiuntiva, che a sua volta ha stimolato lo sviluppo di metodi statistici per analizzare set di dati di grandi dimensioni. Ciò ha consentito la raccolta di dati ancora più abbondanti e interessanti. Una tecnica strettamente correlata all'apprendimento automatico, il data mining, si occupa invece della generazione di nuove informazioni da grandi database. Il data mining prevede uno scavo sistematico delle pepite di “intelligenza utilizzabili” nelle miniere dei dati disponibili. Sebbene vi sia un certo disaccordo su quanto l'apprendimento automatico e il data mining si sovrappongano, un potenziale punto di distinzione è che l'apprendimento automatico si concentra sull'insegnamento ai computer su come utilizzare i dati per prevedere cosa succedera’ in futuro, mentre il data mining si concentra sull'insegnamento ai computer su come utilizzare i dati per capire cosa e’ successo nel passato.

Praticamente tutto il data mining implica l'uso del machine learning, ma non tutto il machine learning coinvolge il data mining. Per esempio e’ possibile applicare l'apprendimento automatico ai dati sul traffico automobilistico per individuare grazie ai modelli di data mining i pattern interessanti relativi ai tassi di incidenti; d'altra parte, se il computer sta imparando a guidare l'auto da solo, si tratta di un puro apprendimento automatico senza data mining.

La maggior parte delle persone ha sentito parlare del computer Deep Blu che gioca a scacchi, il primo a vincere una partita contro un campione del mondo, o di Watson, il computer che ha sconfitto due avversari umani nel programma televisivo Jeopardy. Sulla base di questi straordinari risultati, alcuni hanno ipotizzato che l'intelligenza artificiale sostituirà gli esseri umani in molte occupazioni di tecnologia dell'informazione, proprio come le macchine hanno sostituito gli umani nei campi e i robot hanno sostituito gli umani sulla catena di montaggio.

La verità è che anche quando le macchine raggiungono traguardi così impressionanti, sono ancora relativamente limitate nella loro capacità di comprendere a fondo un problema. Sono pura potenza intellettuale ma senza direzione. Un computer può essere più capace di un essere umano a trovare schemi in grandi database, ma ha comunque bisogno di un essere umano per motivare l'analisi e trasformare il risultato in un'azione significativa.

Le macchine non sono brave a fare domande, e non sanno quali domande porre. Sono molto più brave a rispondere, a condizione che la domanda sia formulata in un modo che esse possono comprendere. Gli attuali algoritmi di machine learning collaborano con le persone in modo simile ai segugi che aiutano i loro padroni; l'olfatto del cane può essere di gran lunga più sviluppato di quello del suo padrone, ma senza essere diretto con attenzione, il cane può finire a rincorrersi la coda.

L'apprendimento automatico ha più successo quando aumenta, anziché sostituisce, la conoscenza specializzata di un esperto in materia. Lavora con medici in prima linea nella lotta per sradicare il cancro, assiste ingegneri e programmatori per creare case e automobili più intelligenti e aiuta gli scienziati sociali a costruire la conoscenza di come funzionano le società. A tal fine, è impiegato in innumerevoli aziende, laboratori scientifici, ospedali e organizzazioni governative. Qualsiasi organizzazione che genera o aggrega dati probabilmente utilizza almeno un algoritmo di apprendimento automatico per dare un senso alla grande mole di dati.

Sebbene sia impossibile elencare tutti i casi d'uso dell'apprendimento automatico, un sondaggio sulle recenti storie di successo include diverse applicazioni importanti:

Identificazione di messaggi spam nella posta elettronica Segmentazione del comportamento dei clienti per pubblicità mirata

Previsioni del tempo meteorologico e dei cambiamenti climatici a lungo termine

 Riduzione delle transazioni fraudolente con carta di credito

 Stime attuariali dei danni finanziari di tempeste e calamità naturali

 Previsione dei risultati delle elezioni popolare

Sviluppo di algoritmi per droni a pilotaggio automatico e auto a guida autonoma

 Proiezione delle aree in cui l'attività criminale è più probabile

 Scoperta di sequenze genetiche legate a malattie

Indipendentemente dal contesto, il processo di apprendimento automatico è lo stesso. Un algoritmo infatti prende i dati e identifica i modelli che costituiscono la base per ulteriori azioni.

Sebbene l'apprendimento automatico sia ampiamente utilizzato e abbia un enorme potenziale, è importante comprenderne i limiti. L'apprendimento automatico, in questo momento, non è in alcun modo un sostituto del cervello umano. Ha pochissima flessibilità a fare estrapolazioni al di fuori dei rigidi parametri che ha appreso e non conosce il buon senso. Con questo in mente, si dovrebbe essere estremamente attenti a riconoscere esattamente ciò che l'algoritmo ha appreso prima di lasciarlo libero nel mondo reale.

Senza una vita di esperienze passate su cui basarsi, i computer sono anche limitati nella loro capacità di fare semplici inferenze di buon senso sui passaggi logici successivi.

Molti hanno familiarità con le carenze della capacità dell'apprendimento automatico di comprendere o tradurre una lingua o di riconoscere  parole e scrittura a mano. Forse il primo esempio di questo tipo di fallimento è in un episodio del 1994 della serie televisiva, I Simpsons, che mostrava una parodia del tablet Apple Newton.

La capacità delle macchine di comprendere il linguaggio è migliorata abbastanza dal 1994, tanto che Google, Apple e Microsoft sono tutte abbastanza sicure da offrire servizi virtuali gestiti tramite riconoscimento vocale. Tuttavia, anche questi servizi fanno regolarmente fatica a rispondere a domande relativamente semplici. Inoltre, i servizi di traduzione online a volte interpretano erroneamente frasi che un bambino potrebbe facilmente capire. La funzione di scrittura predittiva su molti dispositivi ha anche portato a una serie di divertenti siti di errore di correzione automatica che illustrano la capacità del computer di comprendere il linguaggio di base ma di fraintendere completamente il contesto.

Una definizione formale di apprendimento automatico proposta dallo scienziato informatico Tom M. Mitchell afferma che una macchina impara ogni volta che è in grado di utilizzare la sua esperienza per migliorare le sue prestazioni future su esperienze simili. Sebbene questa definizione sia intuitiva, ignora completamente il processo di come esattamente l'esperienza può essere tradotta in azioni future e, naturalmente, l'apprendimento è sempre più facile a dirsi che a farsi!

Contrariamente ai cervelli umani naturalmente in grado di apprendere fin dalla nascita, le condizioni necessarie affinché i computer apprendano devono essere rese esplicite. Per questo motivo, sebbene non sia strettamente necessario comprendere le basi teoriche dell'apprendimento, questa base aiuta a comprendere, distinguere e implementare algoritmi di apprendimento automatico. Indipendentemente dal fatto che lo studente sia un essere umano o una macchina, il processo di apprendimento di base è simile. Esso può essere suddiviso in quattro componenti correlate.

La memorizzazione dei dati utilizza l'osservazione, la memoria e il richiamo per fornire una base fattuale per ulteriori ragionamenti.

 L'astrazione implica la traduzione dei dati memorizzati in rappresentazioni e concetti più ampi.

    La generalizzazione utilizza dati astratti per creare conoscenze e inferenze che guidano l'azione in nuovi contesti.

    La valutazione fornisce un meccanismo di feedback per misurare l'utilità della conoscenza acquisita e informare potenziali miglioramenti.

La figura seguente illustra le quattro fasi alla base del processo di apprendimento:

 


 

Tenere presente che, il processo di apprendimento e’ stato concettualizzato in quattro componenti distinte, solo per uno scopo illustrativo. In realtà, l'intero processo di apprendimento è indissolubilmente inter-correlato. Negli esseri umani, il processo avviene inconsciamente. Ricordiamo, deduciamo, induciamo e intuiamo con i confini dell'occhio della nostra mente, e poiché questo processo è nascosto, eventuali differenze da persona a persona sono attribuite a una vaga nozione di soggettività. Al contrario, con i computer questi processi sono espliciti e poiché l'intero processo è trasparente, le conoscenze apprese possono essere esaminate, trasferite e utilizzate per azioni future.  Tutto l'apprendimento ovviamente deve iniziare con i dati. Sia gli esseri umani che i computer utilizzano l'archiviazione dei dati come base per ragionamenti più avanzati. In un essere umano, questo è costituito da un cervello che utilizza segnali elettrochimici in una rete di cellule biologiche per memorizzare ed elaborare le osservazioni per il richiamo futuro a breve e lungo termine. I computer hanno capacità simili di richiamo a breve e lungo termine utilizzando l’unità di disco rigido, la memoria flash e la memoria ad accesso casuale (RAM) in combinazione con un'unità di elaborazione centrale (CPU).

Può sembrare ovvio, ma la capacità di archiviare e recuperare i dati da sola non è sufficiente per l'apprendimento. Senza un livello di comprensione superiore, la conoscenza è limitata esclusivamente al richiamo, intendendo esclusivamente ciò che si vede prima e nient'altro. I dati dopo tutto sono solo una successione di uno e zero su un disco. Sono ricordi immagazzinati senza un significato più ampio. Per comprendere meglio le sfumature di questa idea, può essere utile pensare all'ultima volta che abbiamo studiato per una prova difficile, magari per un esame finale universitario o la discussione della Tesi. Nel caso in cui sia stata utilizzata quella che si chiama una memoria eidetica (fotografica) si potrebbe rimanere delusi nell'apprendere che è improbabile che il richiamo perfetto sia di grande aiuto. Anche se si potesse memorizzare perfettamente tutto il materiale, l’apprendimento meccanico non sarebbe di alcuna utilità, a meno che non si conoscano in anticipo le domande e le risposte esatte.  Altrimenti, si rimarebbe  bloccati nel tentativo di memorizzare le risposte a ogni domanda che si potrebbe plausibilmente fare. Ovviamente, questa è una strategia insostenibile.

Un approccio migliore invece è quello di trascorrere il tempo in modo selettivo, memorizzando un piccolo insieme di idee rappresentative mentre si sviluppano strategie su come le idee si relazionano e su come utilizzare le informazioni memorizzate. In questo modo, le idee di grandi dimensioni possono essere comprese senza bisogno di memorizzarle a memoria.

Questo lavoro di assegnazione di un significato ai dati memorizzati si verifica durante il cosiddetto processo di astrazione, in cui i dati grezzi assumono un significato più astratto. Questo tipo di connessione, tra un oggetto e la sua rappresentazione, è semplificato dal famoso dipinto di René Magritte, The Treachery of Images:

 



 Il dipinto raffigura una pipa con la dicitura “Ceci n'est pas une pipe” (questa non è una pipa). Il punto che Magritte ha cercato di illustrare è che la rappresentazione di una pipa non è veramente una pipa. Tuttavia, nonostante il fatto che la pipa non sia reale, chiunque veda il dipinto lo riconosce facilmente come una pipa. Ciò suggerisce che la mente dell'osservatore è in grado di collegare l'immagine di una pipa all'idea di una pipa, al ricordo di una pipa fisica che potrebbe essere tenuta in mano. Connessioni astratte come queste sono la base della rappresentazione della conoscenza, la formazione di strutture logiche che aiutano a trasformare le informazioni sensoriali grezze in una visione significativa. Durante il processo di rappresentazione della conoscenza di una macchina, il computer riassume i dati memorizzati utilizzando un modello, una descrizione esplicita dei modelli all'interno dei dati. Proprio come la pipa di Magritte, il modello assume una vita al di là dei dati. Rappresenta un'idea più grande della somma delle sue parti. Esistono molti tipi diversi di modelli.

Equazioni matematiche

 Diagrammi relazionali come alberi e grafici

 Regole logiche if/else

 Raggruppamenti di dati noti come clusters

La scelta del modello in genere non è lasciata alla macchina. E’ l'attività di apprendimento dei dati a disposizione, invece che aiuta nella selezione del modello.

Il processo di adattamento di un modello a un set di dati è noto come addestramento (training). Quando il modello è stato addestrato, i dati vengono trasformati in una forma astratta che riassume le informazioni originali.

La rappresentazione assume una vita al di là dei dati.

 



La maggior parte dei modelli sviluppati non portano a grandi scoperte scientifiche. Alcuni di essi comunque portano alla scoperta di relazioni mai viste prima tra i dati. Un modello addestrato su dati genomici potrebbe trovare diversi geni che, se combinati, potrebbero essere responsabili dell'insorgenza del diabete; le banche potrebbero scoprire un tipo di transazione apparentemente innocuo che appare sistematicamente prima di un'attività fraudolenta; gli psicologi potrebbero identificare una combinazione di caratteristiche della personalità che indicano un nuovo disturbo. Questi modelli sottostanti ai dati sono stati sempre li, e’ solo un modo di presentare le informazioni in un formato diverso, viene concettualizzato in una nuova idea.

Il processo di apprendimento non è completo finché lo studente/computer non è in grado di utilizzare la sua conoscenza astratta per azioni future. Tuttavia, tra gli innumerevoli modelli sottostanti che potrebbero essere identificati durante il processo di astrazione e la miriade di modi per costruire questi modelli, alcuni saranno più utili di altri. A meno che il processo di astrazione non sia limitato, lo studente/computer non sarà in grado di procedere. Sarebbe bloccato dove è iniziato, con un ampio pool di informazioni, ma nessuna intuizione utilizzabile.

Il termine generalizzazione descrive il processo di trasformazione della conoscenza astratta in una forma che può essere utilizzata per azioni future, su compiti simili, ma non identici, a quelli visti prima. La generalizzazione è un processo difficile da descrivere. Tradizionalmente, è stato immaginato come una ricerca attraverso l'intero insieme di modelli (cioè teorie o inferenze) che potrebbero essere astratte durante l'allenamento. In altre parole, se puoi immaginare un ipotetico set contenente ogni possibile teoria che potrebbe essere stabilita dai dati, la generalizzazione implica la riduzione di questo insieme ad un numero gestibile di scoperte.

Nella generalizzazione, lo studente/computer ha il compito di limitare i modelli che scopre solo a quelli che saranno più rilevanti per i suoi compiti futuri. In generale, non è possibile ridurre il numero di modelli esaminandoli uno ad uno e classificandoli in base all'utilità futura. Invece, gli algoritmi di apprendimento automatico utilizzano generalmente scorciatoie che riducono velocemente lo spazio di ricerca. A tal fine, l'algoritmo utilizza le cosiddette euristiche, cioe’ le ipotesi plausibili con cui trovare le inferenze più utili. L'euristica viene abitualmente utilizzata dagli esseri umani per generalizzare rapidamente l'esperienza a nuovi scenari. L'incredibile capacità umana di prendere decisioni rapide spesso non si basa sulla logica del computer, ma piuttosto su euristiche guidate dalle emozioni. A volte, questo può portare a conclusioni illogiche. Ad esempio, più persone esprimono paura dei viaggi aerei rispetto ai viaggi in automobile, nonostante le automobili siano statisticamente più pericolose. Ciò può essere spiegato dalla disponibilità euristica, che è la tendenza delle persone a stimare la probabilità di un evento in base alla facilità con cui i suoi esempi possono essere richiamati. Gli incidenti che coinvolgono i viaggi aerei sono molto pubblicizzati. Trattandosi di eventi traumatici, è probabile che vengano ricordati molto facilmente, mentre gli incidenti automobilistici meritano a malapena una menzione sul giornale.

La follia delle euristiche applicate in modo errato non è limitata agli esseri umani. Anche le euristiche impiegate dagli algoritmi di apprendimento automatico a volte portano a conclusioni errate. Si dice che l'algoritmo abbia un pregiudizio se le conclusioni sono sistematicamente errate o sbagliate in modo prevedibile.

Ad esempio, supponiamo che un algoritmo di apprendimento automatico abbia imparato a identificare i volti trovando due cerchi scuri che rappresentano gli occhi, posizionati sopra una linea retta che indica una bocca. L'algoritmo potrebbe quindi avere problemi, o essere prevenuto, con volti che non sono conformi al suo modello. I volti con gli occhiali, girati ad angolo, che guardano di lato o con varie tonalità della pelle potrebbero non essere rilevati dall'algoritmo. Allo stesso modo, potrebbe essere prevenuto verso volti con determinate tonalità della pelle, viso forme o altre caratteristiche che non sono conformi alla sua comprensione del mondo.


Nell'uso moderno, la parola bias ha assunto connotazioni piuttosto negative. Varie forme di mass media affermano spesso di essere liberi da pregiudizi e affermano di riferire i fatti in modo obiettivo, non contaminato dalle emozioni. Tuttavia, supponiamo per un momento la possibilità che un piccolo pregiudizio possa essere utile. Senza un po' di arbitrarietà, potrebbe essere difficile decidere tra diverse scelte concorrenti, ognuna con punti di forza e di debolezza distinti? In effetti, alcuni studi recenti nel campo della psicologia hanno suggerito che le persone nate con danni a parti del cervello responsabili delle emozioni sono inefficaci nel processo decisionale e potrebbero passare ore a discutere di decisioni semplici come il colore della camicia da indossare o dove pranzare. Paradossalmente, il pregiudizio è ciò che ci rende ciechi ad alcune informazioni e ci consente anche di utilizzare altre informazioni per l'azione. È il modo in cui gli algoritmi di apprendimento automatico scelgono tra gli innumerevoli modi per comprendere un insieme di dati.

Il bias è un male necessario associato ai processi di astrazione e generalizzazione inerenti a qualsiasi compito di apprendimento. Per guidare l'azione di fronte a possibilità illimitate, ogni studente/computer deve essere prevenuto in un modo particolare. Di conseguenza, ogni studente ha i suoi punti deboli e non esiste un unico algoritmo di apprendimento per dominarli tutti. Pertanto, il passaggio finale nel processo di generalizzazione è valutare o misurare il successo dello studente/computer nonostante i suoi pregiudizi e utilizzare queste informazioni per fornire informazione aggiuntiva, se necessario.

In genere, la valutazione avviene dopo che un modello è stato addestrato su un set di dati di training iniziale. Quindi, il modello viene valutato su un nuovo set di dati di test per giudicare quanto bene la sua caratterizzazione dei dati di addestramento si generalizza a dati nuovi e mai visti prima. Vale la pena notare che è estremamente raro che un modello generalizzi perfettamente a ogni caso imprevisto. In alcune parti, i modelli non riescono a generalizzare perfettamente a causa del problema del rumore, un termine che descrive variazioni inspiegabili o inspiegabili nei dati. I dati rumorosi sono causati da eventi apparentemente casuali, come:

Errore di misurazione dovuto a sensori imprecisi che a volte aggiungono o sottraggono un po' dalle letture

Problemi con soggetti umani, come i rispondenti al sondaggio che riportano risposte casuali alle domande del sondaggio, al fine di terminare più rapidamente

Problemi di qualità dei dati, inclusi valori mancanti, nulli, troncati, codificati in modo errato o danneggiati

Fenomeni così complessi o così poco compresi da influire sui dati in modi che sembrano non sistematici

Cercare di modellare il rumore è alla base di un problema chiamato overfitting. Poiché la maggior parte dei dati rumorosi è inspiegabile per definizione, il tentativo di spiegare il rumore porterà a conclusioni errate che non si generalizzano bene a nuovi casi. Gli sforzi per spiegare il rumore si tradurranno anche in modelli più complessi che mancheranno il vero modello che lo studente/computer cerca di identificare. Un modello che sembra funzionare bene durante l'addestramento, ma scarsamente durante la valutazione, si dice che sia troppo adattato al set di dati di addestramento, in quanto non generalizza bene al set di dati di test.



Le soluzioni al problema dell'overfitting sono specifiche per particolari approcci di machine learning. Per ora, il punto importante è essere consapevoli del problema. La capacità dei modelli di gestire dati rumorosi è un'importante fonte di distinzione tra di loro.

Finora, ci siamo concentrati su come funziona l'apprendimento automatico in teoria. Per applicare il processo di apprendimento alle attività del mondo reale, in genere si utilizza un processo in cinque fasi. Indipendentemente dall'attività in corso, qualsiasi algoritmo di apprendimento automatico può essere distribuito seguendo questi passaggi:

Raccolta dei dati: la fase di raccolta dei dati implica la raccolta del materiale di apprendimento che un algoritmo utilizzerà per generare conoscenza utilizzabile. Nella maggior parte dei casi, i dati dovranno essere combinati in un'unica fonte come un file di testo, un foglio di calcolo o un database.

Esplorazione e preparazione dei dati: la qualità di qualsiasi progetto di machine learning si basa in gran parte sulla qualità dei suoi dati di input. Pertanto, è importante saperne di più sui dati e sulle loro sfumature durante una pratica chiamata esplorazione dei dati. È necessario un lavoro aggiuntivo per preparare i dati per il processo di apprendimento. Ciò comporta la correzione o la pulizia dei cosiddetti dati "disordinati", l'eliminazione dei dati non necessari e la ricodifica dei dati per conformarli agli input previsti dallo studente.

Formazione del modello: nel momento in cui i dati sono stati preparati per l'analisi, è probabile che tu abbia un'idea di ciò che sei in grado di apprendere dai dati. Il compito specifico di apprendimento automatico scelto informerà la selezione di un algoritmo appropriato e l'algoritmo rappresenterà i dati sotto forma di un modello.  Valutazione del modello: poiché ogni modello di apprendimento automatico risulta in una soluzione parziale al problema di apprendimento, è importante valutare quanto bene l'algoritmo apprende dalla sua esperienza. A seconda del tipo di modello utilizzato, potrebbe essere possibile valutare l'accuratezza del modello utilizzando un set di dati di test oppure potrebbe essere necessario sviluppare misure di prestazioni specifiche per l'applicazione prevista.

Miglioramento del modello: se sono necessarie prestazioni migliori, diventa necessario utilizzare strategie più avanzate per aumentare le prestazioni del modello. A volte, potrebbe essere necessario passare a un tipo di modello completamente diverso. Potrebbe essere necessario integrare i dati con dati aggiuntivi o eseguire lavori preparatori aggiuntivi come nella fase due di questo processo.

Dopo aver completato questi passaggi, se il modello sembra funzionare bene, può essere distribuito per l'attività prevista. A seconda dei casi, si potrebbe utilizzare il modello per fornire dati sulle previsioni (possibilmente in tempo reale), per proiezioni di dati finanziari, per generare informazioni utili per il marketing o la ricerca o per automatizzare attività come la consegna della posta o l'aereo in volo . I successi e gli insuccessi del modello distribuito potrebbero persino fornire dati aggiuntivi per formare lo studente di prossima generazione.

La pratica dell'apprendimento automatico implica l'abbinamento delle caratteristiche dei dati di input ai pregiudizi degli approcci disponibili. Pertanto, prima di applicare l'apprendimento automatico ai problemi del mondo reale, è importante comprendere la terminologia che distingue tra i set di dati di input.

La frase unità di osservazione viene utilizzata per descrivere l'entità più piccola con proprietà misurate di interesse per uno studio. Comunemente, l'unità di osservazione è sotto forma di persone, oggetti o cose, transazioni, punti temporali, regioni geografiche o misurazioni. A volte, le unità di osservazione sono combinate per formare unità come anni-persona, che denotano casi in cui la stessa persona viene monitorata per più anni; ogni anno-persona comprende i dati di una persona per un anno. I set di dati che memorizzano le unità di osservazione e le loro proprietà possono essere immaginati come raccolte di dati costituite da:

Esempi: istanze dell'unità di osservazione per cui sono state registrate le proprietà

Caratteristiche: proprietà registrate o attributi di esempi che possono essere utili per l'apprendimento

È più facile comprendere le caratteristiche e gli esempi attraverso casi del mondo reale. Per costruire un algoritmo di apprendimento per identificare la posta indesiderata, l'unità di osservazione potrebbe essere i messaggi di posta elettronica, gli esempi sarebbero messaggi specifici e le caratteristiche potrebbero consistere nelle parole utilizzate nei messaggi. Per un algoritmo di rilevamento del cancro, l'unità di osservazione potrebbe essere i pazienti, gli esempi potrebbero includere un campione casuale di pazienti affetti da cancro e le caratteristiche potrebbero essere i marcatori genomici delle cellule biopsiate nonché le caratteristiche del paziente come peso, altezza o pressione sanguigna.

Sebbene gli esempi e le funzionalità non debbano essere raccolti in una forma specifica, sono comunemente raccolti in formato matrice, il che significa che ogni esempio ha esattamente le stesse caratteristiche.

Il seguente foglio di calcolo mostra un set di dati in formato matrice. Nei dati a matrice, ogni riga del foglio di calcolo è un esempio e ogni colonna è una caratteristica. Qui, le righe indicano esempi di automobili, mentre le colonne registrano varie caratteristiche di ciascuna automobile, come il prezzo, chilometraggio, colore e tipo di trasmissione. I dati in formato matrice sono di gran lunga la forma più comune utilizzata nell'apprendimento automatico. Tuttavia, ci sono anche altre forme che vengono utilizzate occasionalmente in casi speciali.


 

Le funzionalità sono disponibili anche in varie forme. Se una caratteristica rappresenta una variabile misurata, non sorprende che venga chiamata numerica. In alternativa, se un elemento è un attributo costituito da un insieme di categorie, l'elemento è chiamato categorico o nominale. Un caso speciale di variabili categoriche è chiamato ordinale, che designa una variabile nominale con categorie che rientrano in un elenco ordinato. Alcuni esempi di variabili ordinali includono taglie di abbigliamento come piccola, media e grande; o una misurazione della soddisfazione del cliente su una scala da "per niente felice" a "molto felice". È importante considerare ciò che rappresentano le funzionalità, come il tipo e il numero nel set di dati che aiuterà a determinare un algoritmo di apprendimento automatico appropriato.

Gli algoritmi di apprendimento automatico sono suddivisi in categorie in base al loro scopo. Comprendere le categorie di algoritmi di apprendimento è un primo passo essenziale verso l'utilizzo dei dati per guidare l'azione desiderata.

Un modello predittivo viene utilizzato per attività che implicano, come suggerisce il nome, la previsione di un valore utilizzando altri valori nel set di dati. L'algoritmo di apprendimento tenta di scoprire e modellare la relazione tra la caratteristica di destinazione (la caratteristica da prevedere) e le altre caratteristiche. Nonostante l'uso comune della parola "previsione", i modelli predittivi non devono necessariamente prevedere eventi futuri. Ad esempio, un modello predittivo potrebbe essere utilizzato per prevedere eventi passati, come la data del concepimento di un bambino utilizzando i livelli ormonali attuali della madre. I modelli predittivi possono anche essere utilizzati in tempo reale per controllare i semafori nelle ore di punta.

Poiché ai modelli predittivi vengono fornite istruzioni chiare su ciò che devono apprendere e su come intendono apprenderlo, il processo di formazione di un modello predittivo è noto come apprendimento supervisionato. La supervisione non si riferisce al coinvolgimento umano, ma piuttosto al fatto che i valori target forniscono allo studente un modo per conoscere quanto bene ha imparato il compito desiderato. Detto in modo più formale, dato un insieme di dati, un algoritmo di apprendimento supervisionato tenta di ottimizzare una funzione (il modello) per trovare la combinazione dei valori delle caratteristiche (predictors) che risultano nell'output di destinazione (response).

L'attività di apprendimento automatico supervisionato spesso utilizzata per prevedere a quale categoria appartiene un esempio è nota come classificazione. È facile pensare ai potenziali usi di un classificatore.

Stabilire se un messaggio di posta elettronica è spam

Stabilire se una persona e’ ammalata di cancro

Stabilire se una squadra di calcio vincerà o perderà una partita

Stabilire se un richiedente andrà in negativo su un prestito

Nella classificazione, l'elemento target da prevedere è un elemento categorico noto come classe ed è suddiviso in categorie chiamate livelli. Una classe può avere due o più livelli e i livelli possono o non possono essere ordinali. Poiché la classificazione è così ampiamente utilizzata nell'apprendimento automatico, esistono molti tipi di algoritmi di classificazione, con punti di forza e di debolezza adatti a diversi tipi di dati di input.

Gli algoritmi supervisionati possono essere utilizzati anche per prevedere dati numerici come reddito, valori di laboratorio, punteggi di test o conteggi di elementi. Per prevedere tali valori numerici, una forma comune di previsione numerica adatta modelli di regressione lineare  ai dati di input. Sebbene i modelli di regressione non siano l'unico tipo di modello numerico, sono di gran lunga i più utilizzati. I metodi di regressione sono ampiamente utilizzati per la previsione, poiché quantificano in termini esatti l'associazione tra input e target, inclusi entrambi, l'entità e l'incertezza della relazione.

Un modello descrittivo invece viene utilizzato per attività che devono trarre vantaggio dal mettere insieme tutte le informazioni acquisite e analizzate in modo nuovo e interessante. A differenza dei modelli predittivi che prevedono un obiettivo di interesse, in un modello descrittivo nessuna singola caratteristica è più importante di qualsiasi altra. Poiché non vi è alcun obiettivo da apprendere, il processo di formazione di un modello descrittivo è chiamato apprendimento senza supervisione (unsupervised). Sebbene possa essere più difficile pensare ad applicazioni per modelli descrittivi - dopotutto a cosa serve uno studente che non sta imparando nulla in particolare - vengono utilizzati abbastanza regolarmente per attivita’ di data mining. Ad esempio, l'attività di modellizzazione descrittiva chiamata pattern discovery utilizzata per identificare associazioni utili all'interno dei dati. Per esempio nel caso di un Supermercato, l'obiettivo è quello di identificare quegli articoli che vengono acquistati insieme di frequente, in modo che le informazioni apprese possano essere utilizzate per perfezionare le tattiche di marketing.  Ad esempio, se un rivenditore viene a sapere che i costumi da bagno vengono comunemente acquistati contemporaneamente agli occhiali da sole, potrebbe posizionare gli articoli vicino nel negozio o eseguire una promozione per "vendere" ai clienti gli articoli associati. Il compito di modellizzazione descrittiva di dividere un set di dati in gruppi omogenei è chiamato clustering. A volte viene utilizzato per l'analisi della segmentazione che identifica gruppi di individui con comportamenti o informazioni demografiche simili, in modo che le campagne pubblicitarie possano essere adattate a un pubblico particolare. Sebbene la macchina sia in grado di identificare i cluster, è necessario l'intervento umano per interpretarli. Ad esempio, dato cinque diversi gruppi di acquirenti in un negozio di alimentari il team di marketing dovrà comprendere le differenze tra i gruppi al fine di creare una promozione che meglio si adatti a ciascun gruppo.

Infine, c’e’ un’altra classe di algoritmi che vanno sotto il nome di algoritmi di re-inforcement.  L'apprendimento per rinforzo è un metodo di apprendimento automatico basato sulla ricompensa dei comportamenti desiderati e/o sulla punizione di quelli indesiderati. In generale, un agente di apprendimento per rinforzo è in grado di percepire e interpretare il suo ambiente, intraprendere azioni e apprendere attraverso tentativi ed errori.  Nell'apprendimento per rinforzo, gli sviluppatori escogitano un metodo per premiare i comportamenti desiderati e punire i comportamenti indesiderati. Questo metodo assegna valori positivi alle azioni desiderate per incoraggiare l'agente e valori negativi a comportamenti indesiderati. Questo fa si che l'agente cerca continuamente di ottenere la massima ricompensa possibile per ottenere alla fine una soluzione ottimale. Questi obiettivi a lungo termine aiutano a prevenire che l'agente si blocchi su obiettivi minori. Con il tempo, l'agente impara a evitare il negativo e a cercare il positivo. Questo metodo di apprendimento è stato adottato nell'intelligenza artificiale (AI) come un modo per dirigere l'apprendimento automatico senza supervisione attraverso ricompense e penalità.

I videogiochi sono probabilmente il campo di utilizzo più comune per l'apprendimento per rinforzo. Esso e’ in grado di raggiungere prestazioni sovrumane in numerosi giochi. Un esempio comune riguarda il gioco del Pac-Man. Un algoritmo di apprendimento che gioca a Pac-Man deve avere la capacità di muoversi in una delle quattro possibili direzioni, escludendo l'ostruzione. Dai dati dei pixel, un agente puo’ ricevere una ricompensa numerica per il risultato di un'unità di viaggio: 0 per lo spazio vuoto, 1 per i pellet, 2 per la frutta, 3 per i power pellet, 4 per i fantasmi dopo i power pellets, 5 per la raccolta di tutte le pallottole e il completamento di un livello e una detrazione di 5 punti per la collisione con un fantasma. L'agente inizia dal gioco casuale e passa a un gioco più sofisticato, imparando l'obiettivo per ottenere tutte le palline per completare il livello. Con il tempo, un agente potrebbe persino imparare tattiche come conservare i proiettili energetici fino a quando non saranno necessari per l'autodifesa. Nella robotica, l'apprendimento per rinforzo ha trovato la sua applicazione in test limitati. Questo tipo di apprendimento automatico può fornire ai robot la capacità di apprendere compiti che un insegnante umano non può dimostrare, di adattare un'abilità appresa a un nuovo compito o di ottenere l'ottimizzazione nonostante la mancanza di una formulazione analitica disponibile. L'apprendimento per rinforzo viene utilizzato anche nella ricerca operativa, nella teoria dell'informazione, nella teoria dei giochi, nella teoria del controllo, nell'ottimizzazione basata sulla simulazione, nei sistemi multiagente, nell'intelligenza degli sciami, nelle statistiche e negli algoritmi genetici.

venerdì 16 luglio 2021

Come il machine learning puo’ aiutare i geofisici nella predizione dei terremoti

 

Come residente della regione Abruzzo, una delle piu’ pericolose da un punto di vista sismico, e dopo aver vissuto il terremoto dell’Irpinia degli anni ottanta ho sperimentato sulla mia pelle la pericolosita’  di questo evento naturale che puo’ fare molti morti se ci trova impreparati.    

Se si riuscisse a prevedere quando avverra’ un terremoto, il popolo potrebbe prendere azioni preventive e si potrebbero salvare cosi potenzialmente molte vite. Con l’avvento del Machine Learning negli anni ottanta, i sismologi erano molto ottimisti e pensavano che prima o poi si sarebbe risolto il problema. Negli anni successivi purtroppo i sismologi hanno imparato che prevedere i terremoti e’ molto piu’ complicato di quanto pensavano a parte qualche dubbio risultato di scienza scadente come quello relativo al terremoto dell’Aquila o quelli riportati nel bel libro di Nate Silver “ The signal and the noise”.

Le onde generate da un terremoto sono composte da due tipi di onde: p-waves (onde di compressione) che viaggiano ad alta velocita’ e quindi meno dannose e le s-waves (onde di traslazione) che arrivano qualche secondo dopo le p-vawes e che generano i danni maggiori.





Rispetto agli anni ottanta il Machine Learning ha fatto molti passi avanti e c’e’ stato anche un aumento significativo dei dati raccolti sul campo e nei diversi laboratori del mondo; questo ha portato una nuova ventata di speranza di poter arrivare prima o poi alla previsione di questi eventi disastrosi.

In questo post cerco di descrivere proprio l’uso del machine learning nella modellizzazione di un set di dati pubblicati dai Laboratori di Los Alamos, ottenuti grazie ad un esperimento che cerca di mimare i terremoti reali.

L’esperimento e’ stato realizzato utilizzando  due presse idrauliche applicate a due lastre di acciaio con in mezzo uno strato granulare che allo stesso tempo viene spinto lentamente verso il basso. Dei sensori acustici catturano il suono generato dall’attrito del sistema generando in output un segnale digitale continuo (vedi immagine di seguito). Questo esperimento e’ una buona simulazione del movimento delle placche tettoniche vicino ad una linea di faglia, producendo dei terremoti ad un tasso  relativamente consistente. 



Il terremoto è un intenso scuotimento della superficie terrestre dovuto a un improvviso slittamento delle rocce nella crosta terrestre o a faglie vicino all'interfaccia tra le placche tettoniche. Il primo terremoto di cui si abbia notizia e’ quello verificatosi in Cina nel 1177 a.C. Il primo sismoscopio fu quello inventato dal filosofo cinese Chang Heng nel 132 d.C. Sebbene oggi il monitoraggio e la registrazione dei terremoti e’ un qualche cosa di ben sviluppato, non siamo ancora in grado di prevederli né di comprenderne la causa esatta. I terremoti tuttavia e le loro conseguenze sono tra gli eventi che di più hanno cambiato la vita nella storia dell'umanità. Le attività sismiche e le conseguenze dei disastri sono state la causa maggiore di  perdite di vite umane rispetto a tutti gli altri rischi naturali messi insieme negli ultimi due decenni, in quantro molti paesi si trovano in zone  sismicamente attive. L'approccio descritto in questo post combina il machine learning con metodi tipici delle serie temporali per stabilire  l'insieme di caratteristiche statistiche più adatte alla previsione del cosiddetto time to fail (TTF - il tempo rimanente prima di un sisma). Il database messo a disposizione dai Laboratori di Los Alamos consiste di due colonne e circa 630 milioni di righe.  Le due colonne del database hanno il seguente significato:

·   acoustic_data: il segnale acustico registrato in laboratorio durante l’esperimento;

·         time to failure TTF: il tempo rimanente in secondi prima che ci sia un terremoto.

 Qui di seguito alcune righe del database in oggetto visualizzate con il software JMP Pro della SAS con cui verranno effettuate tutte le analisi successive. 



Nei due grafici seguenti viene riportato l’andamento del segnale acustico e il time to fail TTF dell’intero esperimento. Ci sono 16 terremoti in totale con time to fail che vanno da circa 16 sec a pochi secondi. 



Allo scopo di alleggerire il lavoro della CPU del mio PC ho considerato solo lo 0.025% dell’intero database campionato in modo casuale per non perdere l’informazione principale contenuto in esso. Evidenziati in nero due terremoti, l’ottavo e undicesimo della sequenza con i dati ridotti.



I dati acustici mostrano oscillazioni complesse con ampiezza variabile. Subito prima di ogni terremoto si verifica un aumento dell'ampiezza dei dati acustici. Grandi ampiezze si ottengono comunque anche in momenti diversi nel tempo e non sempre esattamente prima di un sisma. Questo lo possiamo vedere nel seguente grafico che riporta il segnale acustico dell’ottavo terremoto; le ampie oscillazioni visibili prima del sisma non avvengono proprio all'ultimo momento. Ci sono treni di oscillazioni intense che precedono il terremoto principale e altri con picchi più piccoli che lo seguono. Quindi, dopo alcune piccole oscillazioni, si verifica il terremoto.



Qui lo zoom sulla parte finale dell’ottavo terremoto. Come si diceva le oscillazioni dopo l’evento sismico sono molto piccole. 

 




Stessa cosa prima del terremoto indicato qui di seguito con una freccia: si notano molti segnali con picchi bassi prima dell’evento sismico. Questi picchi sono il risultato di eventi di micro fratture che possono essere utilizzati per predire il Time to fail (TTF).  In generale piu’ il TTF e’ corto e piu’ i picchi acustici sono frequenti. Le caratteristiche statistiche del segnale acustico quindi possono essere utilizzate come predittori per il modello di machine learning che andremo a sviluppare. 



La varianza del segnale acustico e’ la feature piu’ importante anche se altri parametri statistici come la kurtosis e la skewness non possono essere trascurati. Qui di seguito l’analisi temporale dell’ottavo terremoto eseguita con il modulo di time series di JMP Pro.





Si vede chiaramente che quando il tempo di fallimento tendo a zero (ci approssimiamo quindi all’evento sismico) c’e’ un aumento della variabilita’ del segnale acustico.  




Ovviamente per la costruzione di un modello predittivo non e’ possibile usare il solo segnale acustico fornito dal laboratorio di Los Alamos. Bisogna costruire delle nuove feature a partire dal dato acustico. Quest’attivita’ va sotto il nome di feature engineering. Si tratta di costruire delle nuove colonne (predittori) che possano aiutare l’algoritmo a fare le sue predizioni. Essendo il segnale una serie temporale possiamo usare la tecnica della moving window. In parole semplici a partire da un segnale se ne costruisce un altro calcolando una particolare statistica all’interno di una finestra di dimensione fissata e che si muove rigidamente di uno step alla volta. Supponiamo di avere i seguenti valori: 1 2 3 4 5. Possiamo pensare di costruire una finestra di dimensione 3. Partendo da 1 la finestra ingloba i valori 2, 3 e 4. Nell’ipotesi che siamo interessati alla media il valore sara’ (1+2+3+4)/4=2.5. Poi la finestra viene spostata di 1 e i valori al suo interno saranno: 2 3 4 5. Ricalcoliamo la media che questa volta sara’ 3.5 e cosi via. La finestra a partire da un certo valore della serie puo’ prevedere sia un certo numero di dati prima che dopo.    

Sono state costruite un totale di 18 caratteristiche statistiche. Dieci  di queste sono il massimo, minimo, media, mediana, deviazione standard, varianza, curtosi, moda, range e range interquartile. Le restanti otto caratteristiche sono i percentili a diversi valori: 1%, 5%, 10%, 25%, 75%, 90%, 95% e 99%.

Di seguito i grafici di alcune feature statistiche riportate in funzione del TTF per l’ottavo terremoto. E’ evidente come alcune caratteristiche correlino con il TTF, come per esempio la standard deviation, skewness e kurtosis.  




Nel grafico seguente viene riportato l’andamento della varianza per gli ultimi quattro terremoti contenuti nel database. Si vede come per questi c’e’ un trend a crescere della varianza del segnale acustico quanto il TTF si avvicina a zero (terremoto). Comunque da notare che alcune volte sono presenti delle spikes anche prima che avvenga il terremoto. In effetti dobbiamo pensare che durante il movimento delle placche terrestri iniziano a formarsi delle micro fratture nella crosta terreste la cui lunghezza determina l’intensita’ delle spikes. Col procedere dello slittamento si creeranno sempre piu’ microfratture fino a quando non si formera’ la frattura principale che potra’ essere lunga anche diversi chilometri. E’ un vero e proprio effetto domino.



L’algoritmo di machine learning che si e’ deciso di usare e’ il Random Forest.  Vediamo un attimo di cosa si tratta. Definito Bootstrap Aggregation (o Bagging in breve), è un metodo cosiddetto ensemble. Si tratta cioe’ di una tecnica che combina le previsioni di più algoritmi di apprendimento automatico per fare previsioni più accurate rispetto a qualsiasi singolo modello. Il bagging rientra nella categoria dell’apprendimento Ensemble e il nome deriva dalla combinazione Bootstrap e Aggregation. Il bootstrap indica il campionamento casuale con rimpiazzo del dataset iniziale. Se come modello individuale si decide di usare un decision tree allora l’algoritmo prende il nome di Random Forest. Ciò significa che una foresta casuale combina molti alberi decisionali in un unico modello. Individualmente, le previsioni fatte dagli alberi decisionali potrebbero non essere accurate, ma combinate insieme, le previsioni saranno in media più vicine al target. Il risultato finale restituito da un algoritmo di Random Forest altro non è che la media del risultato numerico restituito dai diversi alberi nel caso di un problema di regressione, o la classe restituita dal maggior numero di alberi nel caso di problemi di classificazione.




Prima di iniziare la modellizzazione si e’ provveduto alla creazione delle nuove features. Per la dimensione della finestra usata per la costruzione delle moving statistics sono stati scelti diversi valori come indicato di seguito:  

Window size: 20, 50, 100, 150, 300, 500

 Le prestazioni della Random Forest hanno mostrato una sensibile dipendenza dall’estensione della finestra temporale come riportato dalle tabelle statistiche  create in JMP per diversi modelli di RF.


L’R2, una delle possibili metriche utilizzate per misurare la bonta’ di un algoritmo mostra un chiaro trend a crescere all’aumentare della dimensione della finestra temporale considerata per la costruzione delle engineering features. Per le analisi mostrate di seguito si e’ scelto una dimensione della finestra di +/-1000.   



Cosi facendo si e’ ottenuto un R2 di circa 96% avendo utilizzato 100 decison tree nella foresta, un minimum split per albero pari a 10 e un numero di termini non superiore a 20.  



 Qui  l’andamento del TTF reale (in blu) e quello predetto (in rosso).




 Assegniamo adesso dei colori diversi al time to fail (TTF): dal rosso al verde man mano che mancano sempre meno secondi all’evento sismico. La parte colorata in viola rappresenta il cosiddetto after shock cioe’ quando il sistema ormai ha subito la frattura. Di norma questa parte andrebbe tolta dall’analisi in quanto ormai il terremoto e’ avvenuto. Notare infatti come quasi tutti i punti viola nel grafico del time predetto rispetto a quello actual si dispongono al di fuori della retta di correlazione.



Eliminando i dati dell’after shock le prestazioni della random forest migliorano ulteriormente dando un R2 del 98% e come predittori piu’ importanti quelli riportati nella tabella seguente.



 
Ai primi posti abbiamo la standard deviation, i primi percentili, il minimo e il massimo e poi via via tutti gli altri. Considerando solo l’ottavo sisma possiamo vedere come esso evolve nel piano delle prime due componenti principali (PCA) che spiegano quasi il 70% dell’intera variabilita’ del sistema. Fino a pochi attimi prima del sisma il sistema si muove all’interno dello spazio identificato dall’ellisse di colore rosso. Nel momento della frattura principale il sistema fa un salto al di la dell’ellisse e si porta in una regione dello spazio mai visitata prima. Una volta rilasciata tutta la sua energia il sistema ritorna dove era partito e cioe’ all’interno dell’ellisse (seguire i colori del grafico per capire come evolve il terremoto). La parte verde indica quando avviene il terremoto mentre quella in viola indica il post terremoto. Questo andamento e’ vero per tutti i 16 terremoti contenuti nel database.  Il loading plot correttamente evidenzia un aumento dei valori di alcuni parametri quale il range, kurtosis, Skewness e varianza all’approssimarsi di un sisma.    


 

Qui viene riportata la sequenza del segnale acustico per i 16 terremoti del database iniziale.




Utilizzando una parte dei dati mai vista dal modello di Random Forest abbiamo eseguito la validazione dell’algoritmo necessaria per capire se il modello creato sta overfittando i dati. L’R2 medio ottenuto e’ di circa il 75% con una MAE di 2.18. Quest’ultimo indica il mean average error, cioe’ la somma del valore assoluto dei residui diviso il numero totale del campione. Come aspettato rispetto al data set usato come training le performance del modello sono inferiori. In questo caso abbiamo una differenza di circa il 22%. In definitiva il modello ha un Bias del 2% e una Variance del 22% che e’ decisamente ancora alta. In genere per ridurre la varianza ci sono diversi opzioni tra cui: 

 1. aumentare la dimensione del campione

 2.    riduzione della complessita’ del modello   


Poiche’ nel seguente articolo “Machine learning predicts laboratory earthquakes, Geophysical Res. Letters 2017” utilizzando sempre una Random Forest con un centinaio di features e’ stato raggiunto un R2 di 89% sul test set c’e’ da aspettarsi che l’alta variance del nostro modello sia dovuta al campione limitato utilizzato per evitare di impegnare troppo la CPU del PC gia’ messa a dura prova col campione molto piccolo utilizzato rispetto all’originale.

Comunque anche se il risultato del test set non e’ stato dei migliori le informazioni ottenute sono comunque valide. L’utilita’ dell’applicazione del machine learning nella previsione del TTF dei Labmoti (terremoti generati in laboratorio) infatti sta nella possibilita’ di identificare dei segnali sconosciuti che possono portare a nuove conoscenze sulla fisica delle faglie. Cosa che e’ chiaramente deducibile anche dai risultati ottenuti nel nostro caso, che  fanno vedere come le intensita’ dei precursori sismici possono essere cosi basse che spesso potrebbero non essere registrate o addirittura non identificate. In passato infatti questi segnali scambiati per rumore venivano eliminati di proposito introducendo cosi un bias umano che invece nel machine learning e’ stato superato. Anche se il lavoro da fare rimane ancora tanto nella previsione dei terremoti della crosta terrestre di sicuro il ruolo del machine learning sara’ sempre piu’ importante e stimolante.        


http://www.wikio.it