Tecnologie

Supervised learning, cos’è, esempi di apprendimento supervisionato

Una modalità di apprendimento in cui l’errore porta ad approfondire e perfezionare la conoscenza. Tanti algoritmi per due compiti fondamentali: classificazione e regressione; molteplici contesti applicativi.

Pubblicato il 13 Gen 2022

Paolo Dotti

Quence - TXTGROUP

anomalie machine learning

“Supervised learning” o apprendimento supervisionato è l’insieme degli algoritmi di Machine learning più noti e utilizzati perché molto simili all’apprendimento di un bambino che impara per esempi, sperimentando e acquisendo conoscenza. Sono modalità di apprendimento in cui l’errore porta ad approfondire e perfezionare la conoscenza. Tanti algoritmi per due compiti fondamentali, classificazione e regressione; molteplici contesti applicativi.

Cos’è il supervised learning o apprendimento supervisionato?

Ogni progetto di Machine learning ha degli elementi principali, che concorrono a costruire un sistema che apprende delle relazioni tra i dati e le memorizza in un modello.

  • Algoritmo: un insieme di regole, generalmente basate su metodi statistici, per estrarre dai dati degli schemi ricorrenti. La differenza tra scrivere codice e implementare le logiche con schemi predeterminati è che le regole non sono codificate ma vengono apprese dai dati di esempio a disposizione;
  • Modello: una rappresentazione di un contesto reale tramite un algoritmo con opportuni parametri;
  • Dataset di training, l’insieme dei dati che dati in pasto all’algoritmo permettono la costruzione del modello;
  • Dataset di test, insieme dei dati che a seguito della fase di training vengono utilizzati per valutare la qualità del modello in termini di precisione e accuratezza.

Gli algoritmi di ML sono molti e sono divisi in categorie, apprendimento supervisionato (Supervised) che viene approfondito in questo articolo, apprendimento non supervisionato (Unsupervised), apprendimento semisupervisionato (Semi-Supervised) apprendimento per rinforzo (Reinforced Learning).

Tra i diversi tipi di apprendimento sembra che sia più conosciuto e più utilizzato quello supervisionato; perché? Perché è quello che più si avvicina all’approccio umano. Sin da bambini il nostro apprendimento si basa sull’esperienza, ci insegnano facendoci vedere degli esempi; quando rivediamo uno schema già acquisito lo riconosciamo. Quello che non abbiamo visto non lo riconosciamo.

L’apprendimento supervisionato è una modalità di addestramento dove i dati utilizzati sono etichettati; ad ogni input si conosce il rispettivo output che viene utilizzato per insegnare all’algoritmo le regole del modello. Per esempio, supponiamo di voler creare un modello per il riconoscimento delle luci di un semaforo, il set di dati di addestramento dovrà essere composto da luci verdi, gialle e rosse e ogni luce dovrà essere etichettata con il corretto colore. Già a questo punto potrebbe sorgere un dubbio, se ci fosse un altro colore come risponderebbe il modello addestrato solo con i tre colori? Un aspetto chiave dell’apprendimento supervisionato è che per determinare con successo l’output dato un insieme di dati di input, devono aver già visto una situazione simile o uguale.

Esattamente come un bambino che non conosce il nuovo colore, sarebbe nell’indecisione; tuttavia, l’algoritmo deve dare comunque una risposta per cui, ovviamente sbagliando, risponderà con uno dei tre colori che ha appreso e darà delle probabilità molto simili associate alle scelte possibili. Tutto questo corrisponde al nostro tirare a indovinare a caso quando non conosciamo la risposta a un quesito. Esempi più concreti sono la rilevazione di frodi bancarie; per rilevare correttamente le anomalie il modello deve aver elaborato esempi di frodi in passato e deve aver elaborato sia transazioni fraudolente sia non fraudolente.

Come funziona il supervised learning

L’approccio del supervised learning, come già detto, è quello che ricalca maggiormente il modo in cui un bambino inizia ad imparare, dall’esperienza, dagli esempi e poi applica per analogia da quanto visto precedentemente. Seppur non discusso in questo contesto aggiungiamo che l’apprendimento di tipo “reinforced” è anch’esso basato sull’esperienza e su una ricompensa come riscontro.

L’apprendimento supervisionato oltre a essere il più conosciuto è forse il più laborioso perché prevede diverse fasi.

  • La preparazione dei dati di addestramento dove a ogni insieme di dati di input è associato il corretto output. I dati di input sono detti anche “features” o caratteristiche. L’assegnazione dell’output viene fatta con la supervisione umana, ma quasi sempre con sistemi di raccolta massiva dei dati con cui si acquisiscono sia le caratteristiche sia il corrispondente e corretto output.
  • La divisione dell’intero dataset in training e test in base alla strategia di addestramento.
  • L’addestramento dell’algoritmo sul training dataset; in questa fase si apprendono le relazioni tra features e output tramite cui sarà possibile fare previsioni con input diversi da quelli di addestramento. Questa fase può andare oltre il singolo addestramento e comprende cicli di apprendimento e validazione (“Cross Validation”) in cui il dataset di training è suddiviso in un numero intero di parti e a rotazione una di queste non è utilizzata per l’addestramento ma per la validazione.
  • Il test, la fase in cui si prova il modello sul dataset di test, che sono dati di input ignoti al momento dell’addestramento. Il confronto tra l’output vero e quello predetto dal modello consente la valutazione della qualità di questo secondo diverse metriche. In base al contesto e alla tipologia di applicazione se l’errore è ritenuto sufficientemente basso, l’addestramento si conclude e il modello può passare in produzione ovvero ricevere nuovi dati di input e fornire l’output in base alle relazioni apprese in addestramento.

Il miglioramento degli algoritmi e la disponibilità di dati di input non previsti in fase di training rende necessario l’aggiornamento dei modelli con nuovi dati di input; ad esempio, in un classificatore di mail di phishing con nuovi contenuti mai visti in precedenza.

I passi necessari alla costruzione di un modello nascondono altrettanti aspetti che influiscono sul risultato finale; si tratta della qualità, quantità, variabilità dei dati di addestramento, della scelta degli iperparametri che determinano l’ottimizzazione delle prestazioni del modello, della modalità di validazione e test, della scelta di un algoritmo tra i possibili applicabili per la soluzione del problema.

La costruzione di un modello soddisfacente dal punto di vista delle previsioni può richiedere un lungo lavoro di ricerca degli iperparametri ottimali e diversi cicli di addestramento, validazione e test.

apprendimento supervisionato

Quali sono i tipi di apprendimento supervisionato

Gli algoritmi di apprendimento supervisionato sono divisi in due macro-classi.

Algoritmi di classificazione, l’output è detto etichetta o “label”, è una variabile qualitativa di tipo binario come spam o nospam, sì o no, vero o falso, una variabile di tipo nominale come tipi di piante, colore degli occhi, etnia, fascia generazionale, una variabile ordinale tipo junior, middle, senior.

Algoritmi di regressione, l’output è un valore numerico continuo, ovvero può assumere tutti i valori intermedi di un intervallo, come temperatura, prezzo di vendita, numero di infetti.

Oltre al tipo di output, classificazione e regressione differiscono nella metrica per valutare la qualità del modello; nella classificazione si contano le etichette predette correttamente, i falsi positivi e i falsi negativi e si costruiscono dei coefficienti tipo accuratezza, precisione, specificità, sensibilità, etc, mentre nella regressione si valuta una funzione di errore, tra cui per esempio il Mean Squared Error o errore quadratico medio.

All’interno di queste due classi abbiamo un’abbondante quantità di algoritmi, alcuni dei quali in grado di lavorare sia come regressori sia come classificatori.

Algoritmi classificatori

Iniziamo da un elenco degli algoritmi usati come classificatori; non abbiamo la pretesa di elencare tutti gli algoritmi disponibili, ma di fornire una visione generale della diversità e dei diversi contesti di utilizzo.

Perceptron: un algoritmo di classificazione il cui risultato è uno degli iperpiani che separa i dati in due classi; non trova il miglior separatore, ma ne trova uno. Molto utilizzato a scopo didattico ma anche il punto di partenza per costruire le reti neurali; un perceptron è come una rete neurale a un solo layer e la combinazione di molti layer di tipo perceptron è la base delle reti neurali artificiali.

Naive Bayes: è basato sul teorema di Bayes e lavora sulle probabilità condizionate delle caratteristiche in input. L’algoritmo fa delle assunzioni sulla distribuzione dei dati che può essere Gaussiana, Bernoulli o Multinomiale; Bernoulli Naive Bayes è utile quando il dataset è composto da dati in forma binaria del tipo vero o falso, spam o non spam, sì o no, 0 o 1. È molto veloce e molto efficiente su dataset piccoli.

Naive Bayes Multinomiale è molto usato per la classificazione multi-classe e con buone performance su dataset grandi. Utilizzabile su dati discreti o continui, trova applicazione per modelli di sentiment analysis e in generale per la classificazione di documenti. Ci sono esempi di utilizzo anche per classificare profili di persone sulla base dei post nei social network.

Alberi decisionali: sono algoritmi che separano il dataset in più regioni e ad ogni input associano la corrispondente regione (o foglia) di appartenenza; funzionano bene sia per classificazione binaria sia per classificazione multi-classe. Una caratteristica è che non richiedono operazioni di normalizzazione del dataset; inoltre, la presenza di outliers non impatta sul risultato. La loro rappresentazione è molto intuitiva ed è molto facile comprenderne i risultati; si ottiene un grafico ad albero simile a un flow chart dove in ogni foglia sono contenuti i dati di una sola classe. L’algoritmo procede ad ogni passo separando i dati in base alla caratteristica che produce il miglior risultato (che dà la miglior separazione) e procede ricorsivamente fino alla classificazione di tutti i dati; il contro è che se la profondità dell’albero non viene limitata è molto facile avere overfitting, ovvero un modello troppo preciso sui dati in addestramento ma poco efficace su dati “nuovi”.

K-Nearest Neighbour (k-NN): il più semplice tra gli algoritmi di machine learning, è veloce ma non adatto a dataset di grandi dimensioni, richiede molte risorse computazionali e molta memoria perché viene memorizzato l’intero dataset. L’algoritmo lavora su k esempi per volta, cercando i k elementi più vicini al campione da classificare e assegnando un output che è l’etichetta che compare più volte tra i k esempi; si parla di voto di maggioranza.

Support Vector Machine: è un algoritmo che fornisce il miglior iperpiano tra tutti i possibili che separano i dati in classi; se l’insieme dei dati di addestramento ha N dimensioni, viene prodotto un iperpiano di N-1 dimensioni che separa le classi. Risulta molto efficace per modelli non lineari tramite l’uso dei Kernel, ovvero trasformazioni delle caratteristiche di input in spazi con un maggior numero di dimensioni in modo separare le classi sempre con un iperpiano, ovviamente di dimensioni maggiori. Questo algoritmo è molto efficiente con dataset a molte dimensioni; inoltre ottimizza l’uso di memoria perché di tutto il dataset apprende i cosiddetti vettori di supporto, un sottoinsieme degli esempi di addestramento che identifica l’iperpiano separatore migliore.

Algoritmi di discesa del gradiente

Algoritmi di discesa del gradiente (OGD Online Gradient Descent, SGD Stochastic Gradient Descent), sono algoritmi lineari che cercano il minimo della funzione di costo calcolando il gradiente (che in una dimensione è la derivata prima della funzione) e modificando i parametri del modello per avvicinarsi al punto di minimo. Sebbene possa essere utilizzato come algoritmo a sé stante, il suo maggior successo è come tecnica di ottimizzazione in altri algoritmi supervisionati e nelle reti neurali.

Regressione Logistica: è uno dei più efficienti classificatori soprattutto con output binario anche se è possibile avere output di 3 o più categorie. I risultati sono di facile interpretazione, nel caso binario l’output è un valore compreso tra 0 e 1 e rappresenta la probabilità stimata di un’etichetta; si ottiene la classe di appartenenza del dato e la stima della probabilità di appartenere a quella classe. Ad esempio, se la classificazione riguarda le mail di spam, il valore 1 indica probabilità 100% che la mail sia spam, 0 probabilità 100% che non lo sia, tutti i valori intermedi la relativa probabilità che la mail sia spam, inoltre fino al valore 0.5 a mail sarà classificata come sicura, da 0.5 a 1 come spam.

Random Forest: basato sugli alberi decisionali, l’algoritmo costruisce più alberi su sottoinsiemi del dataset di addestramento selezionati casualmente, aggrega le previsioni di ciascun albero per scegliere poi la previsione migliore. In aggiunta random forest permette di valutare l’importanza delle caratteristiche, ovvero tra i dati di input è possibile dare una classifica di quanto sono importanti nella determinazione dell’output. Random forest fa parte di un gruppo di algoritmi detti “Ensemble” perché lavorano su una combinazione di algoritmi di Machine Learning per realizzare un modello predittivo con migliori performance. In generale i metodi di tipo ensemble sono divisi in macrocategorie, tra cui bagging e boosting per la modalità di aggregazione. Il bagging consiste nel campionare N volte il dataset iniziale e addestrare N volte lo stesso algoritmo, alla fine si aggregano i risultati facendo la media degli output in caso di regressione, la categoria con maggior frequenza nel caso di classificazione; è un metodo che aumenta i dati di addestramento per diminuire la varianza nelle previsioni. Il boosting è un processo sequenziale in cui ad ogni passo si migliora il modello precedente correggendone gli errori; ogni modello dipende dal precedente e tende a diminuire l’errore (bias è il termine tecnico). In questa famiglia di algoritmi troviamo AdaBoost (Adaptive Boosting), Gradient Boosting, XGBoost (eXtreme Gradient Boosting) e CatBoost. Questi ultimi due sono particolarmente efficaci e molto utilizzati perché hanno le migliori performance in termini di errore e accuratezza, escludendo dal confronto le reti neurali.

Isolation Forest: è un caso particolare di Random Forest che trova la sua migliore applicazione nell’identificazione di anomalie, eventi sospetti, rare occorrenze di eventi.

Algoritmi di regressione

Continuiamo con gli algoritmi di regressione, mettendo in prima posizione sicuramente la regressione lineare. Con questo algoritmo si cerca una relazione lineare tra una o più variabili indipendenti di input e una variabile di output; nel caso di una variabile indipendente e un output, il risultato è una retta nel piano che interpola i punti costituiti dal dataset di addestramento. Se si sospettano relazioni non lineari si può ricorrere alla regressione polinomiale che invece di una retta costruisce una curva oppure in più dimensioni una superficie.

Alla regressione lineare si aggiungono dei metodi di regolarizzazione che introducono delle penalizzazioni nel calcolo dell’errore; tra questi ricordiamo i metodi Ridge e LASSO.

Infine, aggiungiamo gli algoritmi già nominati come classificatori ma che hanno anche la capacità di apprendere come regressori: Support Vector Machine che in questo caso viene indicata come Support Vector Regressor, XGBoost, Random Forest, Discesa del Gradiente.

L’elenco non è finito, soprattutto per diverse varianti anche di un singolo algoritmo o tipo di apprendimento. Il messaggio però è che la scelta dell’algoritmo non è determinata a priori dal tipo di applicazione ma spesso viene fatta dopo diversi tentativi con più modelli di apprendimento e la scelta si fa in un insieme molto vasto e sicuramente in espansione.

apprendimento supervisionato

Differenza tra apprendimento supervisionato e non supervisionato

L’apprendimento non supervisionato avviene quando non si hanno a disposizione gli output relativi ai dati di input; il modello viene costruito solo coi dati di input e l’algoritmo scopre da solo le relazioni nascoste nei dati. Questo tipo di apprendimento si utilizza quando si cerca una tendenza nascosta nei dati, qualcosa che sfugge all’osservazione.

Si utilizza quando si dispone di un insieme anche molto voluminoso di dati a cui non è associato un valore di output o un’etichetta. Non ci sono quindi fasi di addestramento, validazione e test come nel supervisionato; tuttavia, è giusto ricordare che esistono dei metodi per verificare che l’algoritmo sia ottimizzato e che il modello risultante produca degli output significativi. Questi algoritmi sono indicati per scoprire comportamenti nei dati che si discostano dall’usuale, per scoprire le anomalie, l’imprevisto, l’eccezione.

Esempi di machine learning supervisionato

Forse è già tutto così naturale nella società odierna che non ci accorgiamo della presenza del Machine learning oppure non ci pensiamo, eppure in molti contesti è la base della tecnologia e delle comodità di cui usufruiamo regolarmente.

Con gli esempi che seguono si vuole dare la percezione della diffusione degli algoritmi di Machine learning di tipo supervisionato e dei vantaggi che questo tipo di apprendimento può portare nella quotidianità di un’azienda piuttosto che di un privato. Alcune applicazioni sebbene siano fattibili con metodi di apprendimento supervisionato sono realizzate con una sottoclasse di questi che sono le reti neurali perché in alcuni contesti i risultati sono migliori a fronte della disponibilità di una quantità di dati di addestramento notevolmente superiore.

Soluzioni per il controllo della qualità di una linea produttiva; catalogando prodotti senza difetti e prodotti con diversi tipi di difetti un sistema supervisionato è in grado di identificarli velocemente; in diverse aziende manifatturiere e alimentari sono in uso sistemi di questo tipo. In particolare, in un’azienda alimentare, si riduce il rischio di richiami di alimenti perché scaduti o confezionati male. L’operatore in questi casi è sgravato da un’attività che ritiene un’attenzione continua alla linea di produzione e intervenire in casi di indecidibilità del sistema automatico.

Churn analysis: la stima della probabilità che un cliente abbandoni l’azienda o che disdica un abbonamento. Attraverso l’analisi delle caratteristiche di tutti i clienti sia come utenti di un servizio sia per le recensioni e per l’attività sui social network, per l’interazione con un eventuale servizio clienti è possibile prevedere con elevato grado di precisione se un cliente abbandonerà l’azienda, quando lo farà e le possibili cause. Il sistema viene addestrato sui dati di tutti i clienti e utilizzato poi per fare campagne di marketing e fidelizzazione mirate. Un contesto analogo è la valutazione del benessere dei dipendenti in un’azienda.

Manutenzione predittiva: il sistema viene addestrato sui dati dei reparti di produzione provenienti da sensori, macchinari, dispositivi che possono guastarsi in modo da prevedere il guasto prima che si verifichi e pianificare di conseguenza una manutenzione predittiva invece che reattiva fatta dopo che si è verificato un malfunzionamento.

Soluzioni per la sicurezza informatica: in questo caso il ML è molto efficace nell’apprendere i modelli comportamentali degli utenti e di normalità di una rete rilevando immediatamente qualsiasi attività che se ne scosti. Soluzioni analoghe sono implementate per la rilevazione delle frodi online e bancarie; il sistema apprende le tipologie di transazioni non sospette e le tipologie di transazioni fraudolente, bloccando e segnalando le più sospette.

Citiamo brevemente anche le soluzioni chatbot e computer vision nelle loro varie declinazioni; queste soluzioni sono tipicamente basate su reti neurali e stanno raggiungendo risultati di notevole qualità e di indiscussa efficacia per il miglioramento della qualità della vita. Si pensi per esempio all’aiuto nella gestione delle conversazioni coi clienti e alla riduzione dell’attesa e delle telefonate; a sistemi di assistenza per persone con difficoltà; alle applicazioni in ambito diagnostico medico e in particolare alla possibilità di stimare con utile anticipo la probabilità di eventi di ricaduta di una malattia in base ad analisi mediche periodiche.

Conclusioni

L’apprendimento supervisionato è la parte del Machine learning che cerca di avvicinare una macchina al modo di analizzare i dati di un essere umano, che osserva, cerca di capire se ci sono relazioni tra i dati; sulla base delle osservazioni effettuate cerca di estrarre un modello e della conoscenza da dati nuovi. Il Machine learning ci aiuta nell’elaborazione di enormi quantità di dati superando la capacità umana in volume, non considerando preconcetti o disattenzioni; è un buon sistema che affianca l’intelligenza umana che eccelle invece su altri aspetti qualitativi.

Valuta la qualità di questo articolo

La tua opinione è importante per noi!

Articoli correlati

Articolo 1 di 4