Machine Learning: introduzione agli algoritmi predittivi

Artificial Intelligence

Machinelearning

Francesca Bigardi, senior project manager EDALAB, durante il corso interno su Machine Learning e modelli predittivi avanzati

Machine Learning: Introduzione

L’intelligenza artificiale è un concetto più di marketing, ciò che l’informatica e la statistica implementano riguardano in particolare il machine learning e il deep learning (una branca). Con machine learning si intende la capacità di un computer di imparare dall’esperienza (o meglio attraverso l’apprendimento automatico) come per esempio modificare i propri processi in base all’acquisizione dei dati.

I tre concetti principali del machine learning sono i dati, il software e l’hardware che combinati creano modelli di previsione (e non prevenzione). Gli algoritmi di machine learning usano metodologie matematico-computazionali per apprendere informazioni direttamente dai dati, senza modelli matematici ed equazioni predeterminate. Gli algoritmi di machine learning incrementano le proprie prestazioni in modo “automatico e adattivo” mano a mano che entrano in contatto con i dati da apprendere.

Per la parte software è giusto sottolineare come Python rimanga il principale linguaggio di programmazione per il machine learning, con diversi algoritmi già implementati.

N.B

Non esistono modelli di machine learning già configurati o standardizzati per determinati casi, il valore del machine learning deriva dalla qualità del dato rilevato, che varia da scenario a scenario. Ciò che si può trovare già fatto sono strumenti (come ad esempio Tensorflow o PyTorch) che però singolarmente non creano valore in quanto il machine learning deve essere calato per la specifica applicazione in oggetto.

Di cosa stiamo parlando?

  • La guida autonoma? L’essenza del machine learning.
  • I suggerimenti di offerte online come quelli di Amazon o Netflix? L’applicazione del machine learning alla vita quotidiana.
  • Sapere cosa dicono della tua azienda i clienti su Twitter? Machine learning abbinato alla creazione di regole linguistiche.
  • Intercettazione di una frode? Uno dei suoi utilizzi meno ovvi ma sempre più frequenti.
  • Efficientamento e sostenibilità energetica? Ciò che noi in EDALAB stiamo studiando e analizzando.
  • Miglioramento della qualità dei processi, riduzione di inefficienze, risparmio di tempo/costo, identificazione e isolamento delle anomalie? Ciò che noi in EDALAB ci proponiamo di fare

Quali sono gli elementi base per creare machine learning?

  • Capacità di preparare e selezionare dati eterogenei
  • Capacità di implementare algoritmi di base e avanzati
  • Processi di automazione iterativi.
  • Scalabilità.
  • Ensemble modeling.

Alcuni strumenti per poter iniziare a comprendere il machine learning

  • Nel machine learning, un target è chiamato label.
  • In statistica, un target è chiamato variabile dipendente.
  • Una variabile in statistica è chiamata feature nel machine learning.
  • Una trasformazione in statistica è chiamata feature creation nel machine learning.

Il deep learning combina computer sempre più potenti a speciali reti neuronali per comprendere gli schemi presenti nei grandi volumi di dati. Le tecniche di deep learning sono attualmente allo stato dell’arte per la capacità di identificare oggetti nelle immagini e le parole nei suoni. I ricercatori stanno ora cercando di applicare questi successi nel riconoscimento dei modelli a compiti più complessi, come la traduzione automatica del linguaggio, le diagnosi mediche e in tanti altri importanti ambiti, sia sociali che di business.

 

Machine Learning: significato

Con Machine Learning ci si riferisce all’apprendimento automatico inteso come abilità delle macchine (intese come computer) di apprendere senza essere state esplicitamente e preventivamente programmate (almeno così come nell’accezione tradizionale dell’informatica).

Il termine fu coniato per la prima volta da Arthur Lee Samuel, scienziato americano pioniere nel campo dell’Intelligenza Artificiale, nel 1959 anche se, ad oggi, la definizione più accreditata dalla comunità scientifica è quella fornita da un altro americano, Tom Michael Mitchell, direttore del dipartimento Machine Learning della Carnegie Mellon University:

«si dice che un programma apprende dall’esperienza E con riferimento a alcune classi di compiti T e con misurazione della performance P, se le sue performance nel compito T, come misurato da P, migliorano con l’esperienza E».

In altre parole: il Machine Learning permette ai computer di imparare dall’esperienza (da intendersi non nell’accezione “umana” ma pur sempre riferito ad un programma informatico); c’è apprendimento (esperienza) quando le prestazioni del programma migliorano dopo lo svolgimento di un compito o il completamento di un’azione (anche errata, partendo dall’assunto che anche per l’uomo vale il principio “sbagliando di impara”).

Dal punto di vista informatico quando si parla di Machine Learning non si tratta di scrivere codice di programmazione attraverso cui, step by step, si dice alla macchina cosa si vuole fare ma al programma vengono forniti dei set di dati che, elaborati attraverso specifici algoritmi, sviluppano una propria logica per svolgere una funzione orientata ad uno specifico obiettivo.

Come funziona il Machine Learning: principali categorie

Il Machine Learning funziona sulla base di due differenti approcci, identificati da Samuel alla fine degli anni ’50,  che distingue l’apprendimento automatico in due sottocategorie del Machine Learning a seconda del fatto che si diano al computer esempi completi da utilizzare come indicazione per eseguire il compito richiesto (apprendimento supervisionato) oppure che si lasci lavorare il software senza alcun “aiuto” (apprendimento non supervisionato).

La realtà però è più complicata ed esistono numerosi sottoinsiemi che consentono di classificare in modo più dettagliato il machine learning in base al suo funzionamento. Entriamo un pò più nel dettaglio con qualche esempio più pratico.

A) Machine Learning con apprendimento supervisionato (Supervised Learning)

In questa tecnica di machine learning abbiamo un problema che può essere formalizzato attraverso la definizione di una variabile target costituita dall’informazione che vogliamo ottenere.  La funzione f(x) è il modello di machine learning che permette di correlare x (input) con y(output).

In questo caso di Machine Learning al computer vengono costituiti sia dei set di dati come input sia le informazioni relative ai risultati desiderati impostando come obiettivo quello che il sistema identifichi una regola generale in grado di collegare i dati in ingresso con quelli in uscita. Il fine è quello di poter poi riutilizzare questa regola per altri compiti simili

Ci sono due ulteriori suddivisioni:

regressione: se l’output assume uno o più valori continui

classificazione: se l’output assume valori finiti

Nell’analisi della regressione è una tecnica usata per analizzare una serie di dati che consistono in una variabile dipendente e una o più variabili indipendenti. Lo scopo è stimare un’eventuale relazione funzionale esistente tra la variabile dipendente e le variabili indipendenti.

Parliamo ora dei principali processi per svolgere un machine learning con approccio supervisionato

Preprocessing.

Per iniziare a costruire il proprio modello di machine learning si deve svolgere quel processo chiamato data screening per definire le statistiche e le grandezze da includere nel dataset. Lo studio riguarda la divisione/clustering per analizzare la qualità, l’affidabilità e l’accuratezza del dato. C’è un lavoro di pulizia del dato per renderlo rappresentativo attraverso il calcolo statistico della devianza, covarianza, correlazione, deviazione, interpolazione e diversi altri fattori.

Una fase cruciale in questo processo è la data reduction che permette di sviluppare approcci modellistici raccomandati sulla base del set di dati:

  • Riduzione dimensione e modellazione: reti neurali, ordinary least square
  • Modellazione diretta: selezione stepwise, ridge regression, LASSO
  • Deep learning (grandi quantità di dati)

Ci sono diverse tecniche per eseguire la data reduction, noi ne riportiamo le due principali:

  • Analisi di correlazione attraverso cui vengono rimosse le variabili rindondati
  • PCA(Principal Component Analysis) attraverso cui si creato variabili derivate mediante l’utilizzo di trasformazioni lineari analizzando solo il principale componente

 

OLS – Ordinary Least Squares (Minimi quadrati ordinari)

Ordinary Least Squares (OLS) è una forma di regressione statistica impiegata nel machine learning e utilizzata per prevedere valori sconosciuti da un insieme di dati esistenti. Facciamo un esempio in cui questa tecnica può essere utilizzata nel campo del machine learning: ipotizziamo uno scenario basilare per la previsione delle dimensioni della scarpa da un insieme di dati che include l’altezza e le dimensioni della scarpa. Dati i dati, è possibile utilizzare la formula dei quadrati minimi ordinari per creare un tasso di variazione e prevedere le dimensioni della scarpa, data l’altezza di un soggetto. In breve, OLS prende un input, la variabile indipendente, e produce un output, la variabile dipendente. Nel machine learning questo fattore in alcuni casi può essere rilevante

Minimiquadrati

 

N.B Con set di dati di grandi dimensioni sono spesso mal condizionati.

Poiché i quadrati minimi ordinari sono una forma di regressione, utilizzata per creare informazioni previsioni sui dati campione, viene ampiamente utilizzata nell’apprendimento automatico. Utilizzando l’esempio citato sopra, un algoritmo di apprendimento automatico può elaborare e analizzare dati campione specifici che includono informazioni sia sull’altezza che sulla misura della scarpa. Dati i punti di dati e utilizzando i quadrati minimi ordinari, l’algoritmo può iniziare a fare previsioni sulla misura della scarpa di un individuo.

 

 

Machine Learning Ridge Regression

Prendiamo un esempio semplice per capire il funzionamento di questa tecnica statistica al fine di comprendere come possa essere utile per il machine learning.

Il modello di regressione lineare è dato dalla seguente equazione:

Y = Σ WⱼHⱼ(Xᵢ)

Σ va da j = 0 a j = D dove D è il numero totale di elementi.
Wⱼ è il coefficiente jᵗʰ
Hⱼ è la funzione di funzionalità jᵗʰ che prende Xᵢ osservazione
Xᵢ è l’osservazione iᵗʰ

L’equazione di cui sopra dà il valore previsto, purché si conoscano i valori dei coefficienti W.
Per semplificazione, indichiamo l’equazione di cui sopra con 𝔽(X) dove X è l’osservazione.

La funzione di costo ad esempio del modello di regressione lineare è data dalla seguente equazione:

Funzione di costo = RSS(W) = Σ [Yᵢ – 𝔽(Xᵢ)]².

Σ va da i=0 a i = N dove N è il numero totale di osservazioni.
Yᵢ è il valore noto di iᵗʰ osservazione.
𝔽(Xᵢ) fornisce il valore previsto di iᵗʰ osservazione .RSS sta per Residual Sum of Squares (somma residua di quadrati)

Teniamo presente che la funzione di costo lavora sempre sul set di dati dell’allenamento.

L’intera idea del modello di regressione lineare ruota intorno alla minimizzazione del valore della funzione di costo di cui sopra.

In generale, per diminuire la funzione di costo, aumentiamo il numero di caratteristiche del nostro modello. Man mano che continuiamo ad aumentare le caratteristiche del modello, il modello inizia ad adattare bene il set di dati dell’addestramento e il valore della funzione dei costi inizia a diminuire.

Ma, con l’aumento del numero di caratteristiche, le nostre equazioni diventano un’equazione polinomiale di ordine superiore e questo porta ad un sovradimensionamento dei dati.

Perché il sovradimensionamento dei dati è negativo? (overfitting)
In un modello sovradimensionato il training error diventa quasi nullo, con il risultato che il modello funziona perfettamente sul training data set. Ma quel modello funziona perfettamente su set di dati diversi da quelli relativi al training, come i dati reali del mondo esterno?
Generalmente si vede che un modello sovradimensionato funziona peggio sul set di dati di prova, e si osserva anche che un modello sovradimensionato funziona peggio anche su un nuovo set di dati di prova aggiuntivo.

Overfitting

Trainingdata

 

Dal grafico di cui sopra, possiamo vedere che il modello sovradimensionato funziona bene sui dati di training e la funzione di costo è pari a zero per i dati di formazione.

Ma quando testiamo questo modello con i dati di prova impostati nel grafico di cui sopra, il modello non funziona bene. Per i dati di prova, il modello prevede valori errati che sono ben lungi dall’essere corretti. Questo è sufficiente per etichettare questo modello come non idoneo all’uso reale.

Come catturare l’overfitting?
Visualizzando il modello (come sopra), si può facilmente vedere l’overfitting nel modello (osservando come il modello si adatta bene ai dati di formazione). Ma man mano che la complessità del nostro modello aumenta, entra in una dimensione più alta che rende difficile da visualizzare sui grafici (o qualche altro strumento).

Invece di cercare di visualizzare sempre il modello, possiamo anche vedere il sovradimensionamento vedendo il valore dei coefficienti ( W ). In genere, quando si verifica il sovradimensionamento, i valori di questi coefficienti diventano molto elevati.

La Ridge Regression è utilizzata per quantificare il sovradimensionamento dei dati attraverso la misurazione dell’entità dei coefficienti.

Per risolvere il problema dell’overfitting, dobbiamo bilanciare due cose:
1. Come la funzione / modello si adatta ai dati.
2. Entità dei coefficienti.

Ridge Regression Cost = RSS(W) + λ*||W||²

Abbiamo aggiunto λ nella funzione costo totale come parametro di regolazione per bilanciare l’adattamento dei dati e l’entità dei coefficienti.

Prendendo il gradiente dell’equazione di cui sopra (differenziazione):

Δ[RSS(W) + λ||W||]²
= Δ{(Y - HW)ᵗ(Y - HW)} + λ Δ{WᵗW}= -2Hᵗ(Y - HW)+2λW

Ridge Regression Cost = RSS(W) + λ*||W||² = (Y – WH)*(Y – WH) + WW

Impostando il gradiente di cui sopra a 0 si ottiene

W = (HᵗH + λI)-¹HᵗY

Conosciamo quindi i valori dei coefficienti W.

Come scegliere il valore λ adatto per il machine learning?

L’insieme di dati relativi al machine learning si suddivide in tre insiemi principali:

1. Set di formazione (Training set)
2. Set di convalida (Validation set)
3. Set di prova (Test set)

Training set
Questo set di dati sarà utilizzato per ottenere il valore dei coefficienti W per ogni valore di λ. Supponiamo che il valore dei coefficienti W per ogni valore di λ sia Wλ.

Validation set
I diversi valori di Wλ saranno valutati al momento della convalida. Verrà selezionato quello che ha un valore di errore inferiore.

Test set
Il valore selezionato dei coefficienti W” sarà nuovamente valutato mediante una serie di dati di prova.

Il metodo di cui sopra può essere utilizzato nel machine learning solo se è presente una quantità sufficiente di dati.

Ed è così che alla fine viene selezionato il valore di λ. Il processo è una sorta di forza bruta ma con le congetture intelligenti e l’esperienza, le iterazioni per identificare il valore λ possono essere ridotte

In questo semplice esempio abbiamo visto un esempio di funzione di costo per la regressione lineare che tiene conto della sovrapposizione dei dati con il parametro di regolazione λ.

Limite relativo al machine learning
La predizione di machine learning può cambiare drasticamente con piccole perturbazioni degli input

 

LASSO

Least Absolute Shrinkage and Selection Operator Regression, conosciuta come LASSO Regression, è una versione regolarizzata della Linear Regression (Regressione Lineare): aggiungendo un termine di regolarizzazione denominato alpha alla cost function, l’algoritmo di apprendimento è forzato a tenere i weight quanto più bassi possibile.

Contrariamente alla Ridge Regression, che minimizzando il weight di alcune feature ne riduce la contribuzione al modello, la LASSO Regression effettua una vera e propria selezione delle variabili indipendenti (feature selection): portando le restanti a zero attraverso un opportuno valore del weight associato, e generando uno sparse model (con alcune nonzero feature).

La funzione Lasso è nella forma:

L = ∑( Ŷi- Yi)2 + λ∑ |β|β|

L’unica differenza rispetto alla regressione di Ridge è che il termine di regolarizzazione è in valore assoluto. Ma questa differenza ha un impatto enorme sul trade-off di cui abbiamo discusso in precedenza. Il metodo Lasso supera lo svantaggio della regressione di Ridge non solo punendo gli alti valori dei coefficienti β, ma anche azzerandoli se non sono rilevanti. Pertanto, potreste ritrovarvi con un minor numero di caratteristiche incluse nel modello rispetto a quelle iniziali, il che rappresenta un enorme vantaggio.

C’è sempre la necessità di convalidare la stabilità del modello di apprendimento della macchina. Ovvero non è possibile adattare il modello ai dati di formazione e sperare che funzioni accuratamente per i dati reali che non si sono mai visti prima.

C’è bisogno di una garanzia che il modello parta da dei dati correttamente rilevati, non disturbati eccessivamente: il livello di distorsione e varianza deve essere il più basso possibile.

 

Machine Learning Cross Validation

In questo processo di machine learning si decide se i risultati numerici che quantificano le relazioni ipotizzate tra le variabili, siano accettabili come descrizione dei dati. Generalmente una stima dell’errore per il modello viene fatta dopo la sua formazione, meglio conosciuta come valutazione dei residui.

In questo processo, viene effettuata una stima numerica della differenza tra le risposte previste e quelle originali, chiamata anche training error. Tuttavia, questo ci dà solo un’idea di quanto bene faccia il nostro modello sui dati utilizzati per addestrarlo. Ora è possibile che il modello non sia in grado di adattare o sovradimensionare i dati.

Machine Learning Cross Validation k-Fold

La validazione incrociata è una procedura di ricampionamento utilizzata per valutare modelli di machine learning su un campione di dati limitato.

La procedura ha un unico parametro chiamato k che si riferisce al numero di gruppi in cui deve essere suddiviso un dato campione di dati. Come tale, la procedura è spesso chiamata k-fold cross-validation. Quando si sceglie un valore specifico per k, esso può essere usato al posto di k nel riferimento al modello, come k=10 che diventa una validazione incrociata di 10 volte.

La validazione incrociata è usata principalmente nell’apprendimento a macchina applicata per stimare l’abilità di un modello di apprendimento a macchina su dati non visti. Cioè, utilizzare un campione limitato per stimare come il modello dovrebbe funzionare in generale quando viene utilizzato per fare previsioni su dati non utilizzati durante la formazione del modello.

Si tratta di un metodo popolare perché è semplice da capire e perché generalmente si traduce in una stima meno parziale o meno ottimistica delle capacità del modello rispetto ad altri metodi, come ad esempio una semplice suddivisione train/test.

La procedura generale è la seguente:

  1. Mescolare il set di dati in modo casuale.
  2. Dividere il set di dati in gruppi k
  3. Per ogni singolo gruppo:
                 Prendere il gruppo come set di dati di prova o di attesa
                 Prendere i gruppi rimanenti come set di dati di allenamento
                 Montare un modello sul set di allenamento e valutarlo sul set di prova.
                 Mantenere il punteggio di valutazione e scartare il modello.
  4. Riassumere l’abilità del modello utilizzando il campione di punteggi di valutazione del modello.

È importante sottolineare che ogni osservazione del campione di dati viene assegnata ad un singolo gruppo e rimane in quel gruppo per tutta la durata della procedura. Ciò significa che ad ogni campione viene data l’opportunità di essere utilizzato nell’intervallo di tempo impostato 1 volta e utilizzato per allenare il modello k-1 volte.

Questo approccio comporta la suddivisione casuale dell’insieme di osservazioni in gruppi k, o folds, di dimensioni approssimativamente uguali. La prima fold viene trattata come un set di validazione, e il metodo si adatta alle restanti fold k-1.

È inoltre importante che qualsiasi preparazione dei dati prima dell’adattamento del modello avvenga sul set di dati di formazione assegnato al CV all’interno del ciclo piuttosto che sul set di dati più ampio. Questo vale anche per qualsiasi regolazione degli iperparametri. La mancata esecuzione di queste operazioni all’interno del ciclo può comportare una perdita di dati e una stima ottimistica dell’abilità del modello.

I risultati di un test di cross-validazione k-fold sono spesso riassunti con la media dei punteggi di abilità del modello. È anche buona pratica includere una misura della varianza dei punteggi di abilità, come la deviazione standard o l’errore standard.

 

B) Machine Learning con apprendimento non supervisionato (Unsupervised Learning)

Questa categoria di Machine Learning rappresenta quel modello in cui vengono forniti al sistema solo set di dati, senza alcuna indicazione del risultato considerato. L’obiettivo in questo caso è quello di risalire a schemi e modelli nascosti ovvero identificare negli input una logica di struttura senza che questi siano preventivamente etichettati.

C) Machine Learning con apprendimento per rinforzo

In questo metodo il sistema interagisce con un ambiente dinamico (per ottenere i dati in input) per raggiungere un obiettivo per il quale riceve una “ricompensa” imparando anche dagli errori. Il comportamento e le prestazioni del sistema sono determinate da una serie di apprendimenti basati su ricompense e rilevazioni di errori.

Si tratta di un modello in cui il computer impara a vincere in un gioco contro un umano concentrando i propri sforzi sullo svolgimento di un determinato set di compiti finalizzato a raggiungere il massimo valore obiettivo. Il sistema impara mentre esegue i suoi compiti e mentre effettua errori per migliorare le proprie prestazioni in virtù dei risultati raggiunti in precedenza.

D) Machine Learning con apprendimento semi-supervisionato

In questo caso si tratta di un modello “ibrido” dove al computer viene fornito un set di dati incompleti per l’allenamento/apprendimento; alcuni di questi input sono “dotati” dei rispettivi esempi di output (come nell’apprendimento supervisionato), altri invece ne sono privi (come nell’apprendimento non supervisionato). L’obiettivo, di fondo, è sempre lo stesso: identificare regole e funzioni per la risoluzione dei problemi, nonché modelli e strutture di dati utili a raggiungere determinati obiettivi.

E) Gli altri approcci pratici al Machine Learning: dai modelli probabilistici al Deep Learning

Chiaramente ci sono altre sottocategorie di Machine Learning che fungono da classificazione “pratica” identificando approcci più pratici di applicazione di algoritmi di Machine Learning.

Un esempio sono gli alberi delle decisioni basati su grafi.

Un albero di decisione è un sistema con n variabili in input e m variabili in output. Le variabili in input ( attributi ) sono derivate dall’osservazione dell’ambiente. Le ultime variabili in output, invece, identificano la decisione / azione da intraprendere

Nota. Negli alberi decisionali molto profondi le variabili in output intermedie, in uscita dai nodi genitori, coincidono con le variabili in input dei nodi figli. Le variabili in output intermedie condizionano il percorso verso la decisione finale.

Ogni nodo verifica una condizione ( test ) su una particolare proprietà dell’ambiente ( variabile ) e ha due o più diramazioni verso il basso in funzione. Il processo consiste in una sequenza di test. Comincia sempre dal nodo radice, il nodo genitore situato più in alto nella struttura, e procede verso il basso.

Gli alberi logici hanno l’indiscusso vantaggio della semplicità. Sono facili da capire e da eseguire. Rispetto alle reti neurali l’albero decisionale è facilmente comprensibile dagli esseri umani. Pertanto, l’uomo può verificare come la macchina giunge alla decisione

Inoltre, gli alberi decisionali booleani sono facilmente sviluppabili sotto forma di codice di programmazione, perché possono essere rappresentati con qualsiasi linguaggio proposizionale.

Gli svantaggi
La rappresentazione ad albero decisionale è poco adatta per i problemi complessi, perché lo spazio delle ipotesi diventa troppo grande. La complessità spaziale dell’algoritmo potrebbe diventare proibitiva.

Altre categorie di Machine Learning

Ci sono poi altre sottocategorie di Machine Learning che in realtà servono a darne una sorta di classificazione “pratica” perché, di fatto, identificano degli approcci pratici di applicazione degli algoritmi di Machine Learning (da cui si possono quindi derivare delle categorie di “apprendimento” dei sistemi).

Altro esempio concreto viene dal “clustering” ossia dai modelli matematici che consentono di raggruppare dati, informazioni, oggetti, ecc. “simili”; si tratta di una applicazione pratica del Machine Learning dietro al quale esistono modelli di apprendimento differenti che vanno dall’identificazione delle strutture (cosa definisce un cluster e qual è la sua natura) al riconoscimento degli “oggetti” che devono far parte di un gruppo piuttosto che di un altro.

C’è poi la sottocategoria dei “modelli probabilistici” che basano il processo di apprendimento del sistema sul calcolo delle probabilità (il più noto è forse la “rete di Bayes”, un modello probabilistico che rappresenta in un grafo l’insieme delle variabili casuali e le relative dipendenze condizionali).

Infine, ci sono le notissime reti neurali artificiali che utilizzano per l’apprendimento certi algoritmi ispirati alla struttura, al funzionamento ed alle connessioni delle reti neurali biologiche (cioè quelle dell’essere umano). Nel caso delle reti neurali cosiddette multi-strato si entra poi nel campo del Deep Learning (apprendimento profondo).

 

Machine Learning: le possibili applicazioni

Le applicazioni di Machine Learning sono già oggi molto numerose, alcune delle quali entrate comunemente nella nostra vita quotidiana senza che in realtà ce ne rendessimo conto.

Pensiamo per esempio all’utilizzo dei motori di ricerca: attraverso una o più parole chiave, questi motori restituiscono liste di risultati (le cosiddette SERP – Search Engine Results Page) che sono l’effetto di algoritmi di Machine Learning con apprendimento non supervisionato (forniscono come output informazioni ritenute attinenti alla ricerca effettuata in base all’analisi di schemi, modelli, strutture nei dati).

Altro esempio comune è legato ai filtri anti-spam delle e-mail basati su sistemi di Machine Learning che imparano continuamente sia ad intercettare messaggi di posta elettronica sospetti o fraudolenti sia ad agire di conseguenza (per esempio eliminandoli prima che vengano distribuiti sulle caselle personali degli utenti). Sistemi di questo tipo, anche con sofisticazioni maggiori, vengono per esempio impiegati anche nel settore Finance per la prevenzione delle frodi (come la clonazione della carta di credito), dei furti di dati e identità; gli algoritmi imparano ad agire mettendo in correlazione eventi, abitudini degli utenti, preferenze di spesa, ecc.; informazioni attraverso le quali riescono poi a identificare in real-time eventuali comportamenti anomali che potrebbero appunto identificare un furto od una frode.

Noi di EDALAB stiamo studiando modelli di Machine Learning per ridurre inefficienze di processi industriali, migliorare la qualità finale dei prodotti agendo a livelli intermedi, incrementare l’efficienza energetica di impianti, macchinari ed edifici. La sfida è sicuramente affascinante ma anche grazie al Dipartimento di Informatica dell’Università di Verona pensiamo di poter cogliere queste sfide come un opportunità per continuare a migliorare.