Il machine learning, o apprendimento automatico, è il subset dell’intelligenza artificiale in cui vengono utilizzati algoritmi per apprendere dai dati e imparare dagli errori in maniera autonoma, senza che intervengano istruzioni puntuali ed esplicite da parte degli utenti.

Immagine promozionale cta infografica intelligenza artificiale

In altri termini, gli algoritmi di machine learning utilizzano la potenza di calcolo degli elaboratori informatici per emulare la capacità dell’uomo di imparare dalle proprie azioni e affinare il ragionamento attraverso l’esperienza, cercando di distinguere in maniera sempre più accurata ciò che è giusto rispetto a ciò che non lo è, indirizzando di conseguenza le scelte da effettuare.

Le dinamiche frenetiche ed imprevedibili degli attuali scenari di mercato comportano per le aziende di ogni settore e dimensione l’impiego della propria più importante risorsa informativa: i dati digitali acquisiti dai propri sistemi e dai propri canali di comunicazione con gli utenti.

Al tempo stesso, qualsiasi analisi sui dati, anche la più attenta e scrupolosa, rischia di diventare in breve tempo obsoleta, se non considera in tempo reale gli andamenti degli scenari di riferimento, a cui corrispondono continue variazioni dei dati.

La continua disponibilità di dati aggiornati è fondamentale affinché i modelli analitici possano continuare nel tempo a fornire risposte adeguate. Gran parte del successo del machine learning risiede infatti nel continuo ed automatico riaddestramento per mantenere alte le performance analitiche dei modelli predittivi.

Ma come funzionano tecnicamente gli algoritmi di machine learning? In sede di premessa è utile considerare che nel tempo ne sono state sviluppate varie tipologie, oltre un centinaio riconosciuti dalla letteratura scientifica, per offrire risposte funzionali ad esigenze anche molto differenti tra loro.

Non esiste una sola soluzione ad un problema dato o a un problema da scoprire. Al di là delle prassi e delle consuetudini che caratterizzano il mercato del machine learning, é in gran parte l’esperienza e la cultura dei data engineer e dei data scientist a risultare decisiva nella scelta degli algoritmi da utilizzare, caso per caso.

Cosa sono gli algoritmi di machine learning?

Gli algoritmi di Machine Learning sono applicazioni sviluppate via codice per aiutare le persone a esplorare, analizzare e trovare un significato in set di dati complessi. In altri termini, un algoritmo è un set finito di istruzioni dettagliate non ambigue che possono essere seguite da un computer per raggiungere un determinato obiettivo analitico.

Per comprendere quale sia la natura alla base di un algoritmo è opportuno descrivere i processi di apprendimento automatico nelle loro fasi principali.

In primis occorre implementare ciò che serve per applicare un modello predittivo: tools e tecnologie per la data exploration e la data preparation, unite alle competenze specialistiche dei data engineer e dei data scientist, sono gli elementi indispensabili per predisporre l’ambiente di advanced analytics che si ritiene più adatto alla soluzione del caso specifico. 

Alla definizione iniziale segue un processo ciclico ed induttivo: il sistema esegue l’analisi preimpostata ad un campione di dati (dati in input) per ottenere dei modelli (output).

Sulla base degli output vengono estratte nuove regole, che il sistema utilizza nuovamente per ottimizzare il modello analitico, affinando le proprie conoscenze di scenario. In questo modo gli output di un ciclo diventano l’input del ciclo seguente, per raggiungere risultati sempre più accurati. 

Sulla base di questa premessa, è evidente come i sistemi di machine learning non nascano “già imparati”, ma vadano sviluppati e aggiornati ogni volta che lo scenario di riferimento comporta variazioni di dati significative.

Affinché gli algoritmi “prendano vita”, iniziando il vero e proprio apprendimento automatico, è fondamentale sia la fase iniziale di impostazione che le successive fasi di addestramento, vincolate alla disponibilità continua di nuovi dati su cui riaddestrare il modello. Ad una miglior qualità e varietà dei dati corrisponde una maggior probabilità da parte dell’algoritmo di formulare previsioni attendibili.

Questo spiega la fondamentale importanza del training set, il primo data set con cui viene addestrato l’algoritmo. Un’analisi di successo non può infatti prescindere da un insieme di dati di addestramento il più rappresentativo possibile per quanto riguarda lo scenario da analizzare.

I metodi di apprendimento

Il machine learning vanta ormai una lunga tradizione di sviluppo, che ha portato ad affermarsi tre principali metodi di apprendimento, a cui fanno capo una grande varietà di algoritmi. Si tratta di processi di natura tecnica, che è tuttavia possibile divulgare anche ad alto livello. Vediamo in cosa consistono l’apprendimento supervisionato, l’apprendimento non supervisionato e l’apprendimento per rinforzo.

Apprendimento supervisionato

Con l’apprendimento supervisionato i modelli vengono addestrati a riconoscere e ricondurre i dati di input a specifiche classi predefinite. I data set con cui addestrare i modelli contengono quindi dati etichettati, di cui si conoscono gli output attesi. 

Fanno parte di questo gruppo le analisi di classificazione e di regressione. 

Gli algoritmi di classificazione prevendono un risultato espresso come un valore discreto, che indica l’appartenenza dell’oggetto ad una classe specifica. Rispondono a domande che prevedono una risposta univoca. L’esempio più ricorrente per questo tipo di algoritmi è la tassonomia, ovvero la classificazione nel regno animale di ogni essere vivente. 

Gli algoritmi di regressione si distinguono dalla classificazione in quanto i risultati vengono espressi mediante valori continui. Un esempio ricorrente è costituito dall’ambito finanziario, in particolare per il Capital Asset Pricing Model (CAPM), modello che descrive la relazione tra rendimento atteso e rischio di un titolo.

Questa famiglia di modelli implementa algoritmi molto precisi ed accurati ma non sempre applicabili, se non si dispone di un training set etichettato. 

Apprendimento non supervisionato

L’apprendimento non supervisionato comprende le situazioni in cui non è disponibile un dataset etichettato, ma si vuole comunque cercare di modellare i dati creando dei gruppi omogenei non definiti a priori, sulla base delle caratteristiche dei dati stessi. 

Fanno parte di questo gruppo le analisi di clustering e associative.  

Il clustering è una tecnica che permette di aggregare i dati in gruppi (detti, appunto, cluster) omogenei al loro interno, secondo il concetto di similarità o distanza. I vari gruppi sono invece tra loro disgiunti, il più possibile diversi e distanti tra loro. Ogni cluster comprende i dati tra loro simili, al pari di ciò che accade nei modelli supervisionati di classificazione, con la differenza che la definizione non è nota a priori.

Le analisi associative hanno uno scopo simile, ma più ampio: estrarre dai dati pattern frequenti, regole nascoste tra le caratteristiche di ogni dato tali per cui sia possibile dedurre le relazioni che li accomunano. Ogni regola risponde ad una specifica domanda del tipo: “Chi compra le uova, con che probabilità acquista anche farina, la birra o i pannolini?”. Queste correlazioni sono spesso effettuate per orientare le campagne promozionali o per definire la posizione dei prodotti sugli scaffali.

Apprendimento per rinforzo

A differenza dei precedenti metodi, l’apprendimento per rinforzo opera per mezzo di decisioni sequenziali, in cui la previsione non si basa soltanto sulle caratteristiche dei dati, ma dipende dallo stato attuale del sistema, per determinare quello futuro.

L’idea di base è quella di cercare di migliorare le funzionalità del sistema attraverso l’introduzione dei “rinforzi”, ovvero segnali di ricompensa intesi come valori numerici indice della qualità dell’azione e dello stato in cui porta, il tutto con il fine ultimo di incoraggiare le azioni che portano verso stati del sistema più favorevoli.

Gli algoritmi basati sull’apprendimento per rinforzo vengono utilizzati con frequenza nell’ambito del deep learning.

Gli algoritmi utilizzati

Nel corso degli anni sono stati sviluppati moltissimi algoritmi di machine learning, oltre centro ufficialmente riconosciuti dalla letteratura scientifica, ognuno con le proprie caratteristiche e i propri obiettivi analitici. Tra quelli comunemente più diffusi ritroviamo:

Regressione lineare

Gli algoritmi di regressione vengono utilizzati per prevedere un valore numerico sulla base di altre variabili di input. Il suo impiego è esteso a molte applicazioni di analisi predittiva, come la previsione dei prezzi delle azioni in ambito finanziario, le previsioni meteorologiche e la valutazione della domanda del mercato.

In questo contesto, la regressione lineare rappresenta il tipo più semplice in quanto punta a prevedere un valore numerico in base a una singola variabile di input. L’algoritmo genera una linea che rappresenta la relazione tra la variabile di input e il valore numerico previsto.

Regressione logistica

La regressione logistica si presenta più complessa rispetto alla variante lineare e viene utilizzata per prevedere il valore di una variabile binaria in base ad altre variabili di input. L’algoritmo genera una curva “a S” che descrive la probabilità del valore di output in base alla variabile di input. Tra le applicazioni possibili, la regressione logistica può prevedere se un paziente svilupperà una malattia in base ai fattori di rischio documentati (dati di input).

Naïve Bayes

Naïve Bayes è un algoritmo basato sul teorema di Bayes, che assume che la presenza o l’assenza di una particolare caratteristica in un documento non sia correlata alla presenza o all’assenza di altre caratteristiche.

L’algoritmo Naïve Bayes è utilizzato nella classificazione, ovvero per assegnare una classe a ogni istanza di dati, come classificare che una mail sia spam o no.

Il funzionamento dell’algoritmo Naïve Bayes si basa sulla stima delle probabilità condizionate delle variabili indipendenti date le variabili dipendenti. Semplice e veloce nell’esecuzione, tale algoritmo può tuttavia soffrire di problemi di accuratezza.

K-nearest neighbour

K-nearest neighbour (KNN) è un algoritmo di classificazione che si basa sulle caratteristiche degli oggetti vicini a quello considerato. In altri termini, l’algoritmo KNN classifica un oggetto in base alla sua vicinanza rispetto ad altri oggetti noti.

Il funzionamento dell’algoritmo KNN si basa infatti sulla stima della distanza tra le caratteristiche dell’oggetto da classificare e quelle degli oggetti già noti al sistema. L’algoritmo KNN utilizza quindi i k oggetti più vicini all’oggetto da classificare per determinare la sua classe. La scelta del valore di k viene essere effettuata attraverso varie tecniche di euristica.

K-means

K-means è un algoritmo che ha l’obiettivo dell’algoritmo di suddividere un insieme di dati in k cluster, dove k è un numero prefissato. Il funzionamento dell’algoritmo k-means si basa sulla definizione dei k centroidi, che rappresentano i punti centrali di ogni cluster.

L’algoritmo k-means viene utilizzato principalmente per problemi di clustering. Ad esempio, può essere utilizzato nelle applicazioni di marketing, per creare gruppi omogenei di clienti in base alle loro preferenze di acquisto, o nella computer vision, per raggruppare le immagini in base ai colori predominanti o altre caratteristiche similari.

Albero decisionale

L’algoritmo albero decisionale è una rappresentazione grafica di un insieme di regole decisionali e delle loro conseguenze. In particolare, ogni nodo interno dell’albero rappresenta una variabile, mentre ogni arco che parte da un nodo interno rappresenta un possibile valore per quella variabile. Infine, ogni foglia dell’albero rappresenta il valore predetto per la variabile obiettivo a partire dai valori delle altre proprietà.

Gli alberi decisionali vengono utilizzati anche nel contesto di algoritmi più complessi, che ne prevedono la combinazione.

Foresta casuale

Foresta casuale è un algoritmo di apprendimento supervisionato che utilizza una tecnica di insieme per migliorare la precisione e la stabilità del modello. Viene utilizzato sia per problemi di classificazione e che di regressione, per prevedere un valore numerico o una classe in base a una o più variabili di input.

Il funzionamento dell’algoritmo foresta casuale prevede la creazione di un insieme di alberi decisionali, ognuno dei quali viene addestrato su un sottoinsieme casuale dei dati. Questo genera un’indipendenza nativa tra gli alberi, che si traduce in una serie di previsioni tra loro non correlate, se non nella combinazione finale.

Sviluppato da Leo Breiman e Adele Cutler nel corso del 2001, foresta casuale è apprezzato per la sua accuratezza e flessibilità, al punto da essere diffuso in moltissimi ambiti, come la classificazione delle immagini, la diagnosi medica e la rilevazione delle frodi.

Gradient Boosting

Gradient boosting è un algoritmo di apprendimento automatico utilizzato sia per la regressione che per la classificazione, che lavora in maniera incrementale, creando in sequenza modelli in grado di correggere gli errori dei modelli precedenti.

Il funzionamento dell’algoritmo gradient boosting si basa infatti sulla creazione di un insieme di alberi di decisione, modelli predittivi deboli, a loro volta combinati per creare un modello predittivo più forte.

In ogni iterazione, l’algoritmo cerca il miglior modello predittivo correlato in maniera debole con gli errori del modello precedente. Il numero massimo di iterazioni può essere determinato a priori in base ai tempi e budget disponibili, altrimenti si procede fino a quando l’algoritmo non genera un modello ritenuto accettabile sulla base dei parametri richiesti. L’algoritmo Gradient Boosting produce modelli molto precisi ma per raggiungere questo risultato richiede una quantità di dati importante, oltre a tempi di calcolo mediamente elevati. La sua qualità e la sua affidabilità lo rendono ideale per numerose applicazioni, ad esempio nei settori fintech e healthcare.

ARGOMENTI CORRELATI
Categoria: INTELLIGENZA ARTIFICIALE
Machine learning: definizione, funzionamento e casi d’uso

Machine learning: definizione, funzionamento e casi d’uso

L'epoca attuale può essere definita come l'era del Machine Learning (ML), una branca dell'intelligenza artificiale che sta trasformando il modo… Leggi tutto

colleghi che osservazioni lo schermo del pc sorridendo

Regressione lineare: cos’è, tipologie e importanza

La regressione lineare è uno degli strumenti statistici più diffusi per comprendere le relazioni tra due o più variabili. Applicabile… Leggi tutto

Colleghi che osservando dati su un foglio con un pc di fronte

Reti Neurali Convoluzionali (CNN): come funzionano e cosa sono

Le reti neurali convoluzionali (CNN) rappresentano una classe di reti neurali profonde, particolarmente potenti ed efficienti nel riconoscimento di pattern… Leggi tutto