Questo sito contribuisce alla audience di Il Messaggero
Scopri le migliori offerte sul canale Telegram ufficiale. Guarda su Telegram

Come apprende un modello di supervised learning

di

Se ti stai avvicinando al mondo dell’intelligenza artificiale o del machine learning, probabilmente ti sei chiesto più volte come apprende un modello di supervised learning. In pratica, si tratta di capire come un algoritmo riesce a “imparare” dai dati per poi fare previsioni o prendere decisioni. La buona notizia è che serve essere un esperto di programmazione per iniziare a comprenderlo: basta avere chiari alcuni concetti base e seguire un filo logico.

Quando parliamo di modelli di apprendimento supervisionato, ci riferiamo a un processo in cui un programma viene “allenato” con esempi già etichettati. Significa che, per ogni dato in ingresso, l’algoritmo sa già qual è la risposta corretta. Così, confrontando le sue previsioni con le risposte reali, può correggersi e migliorare passo dopo passo. Questo meccanismo è alla base di sistemi che vanno dal riconoscimento facciale alla previsione del meteo, fino al filtraggio dello spam nelle email.

Nei prossimi paragrafi ti guiderò passo passo per capire questo processo in maniera semplice e pratica. Ti spiegherò i concetti fondamentali, ti farò esempi concreti e, alla fine, sarai in grado di spiegare anche tu come funziona. Buona lettura e in bocca al lupo: sono sicuro che riuscirai a capirlo senza difficoltà.

Indice

Supervised learning: cos’è

Intelligenza artificiale

Quando senti parlare di supervised learning, immagina di avere un insegnante privato che ti mostra tanti esempi e ti dice sempre qual è la risposta giusta. Tu, col tempo, impari a riconoscere gli schemi e a dare la risposta corretta anche quando ti trovi davanti a esercizi nuovi. Ecco, per un algoritmo funziona allo stesso modo: riceve dati già “etichettati” e impara a collegare ogni input alla sua uscita corretta.

Facciamo un esempio concreto: se vuoi creare un programma che riconosce le foto dei gatti, devi dargli un set di immagini in cui, per ciascuna, hai già scritto se c’è un gatto oppure no. Queste etichette sono la “guida” con cui il modello impara. Dopo aver visto abbastanza esempi, sarà in grado di dire da solo se una nuova foto contiene un gatto, anche se non l’ha mai vista prima.

Il supervised learning viene utilizzato ogni volta che hai bisogno di fare una previsione o una classificazione partendo da dati già noti. Serve in moltissimi contesti: dalle email (per capire se sono spam o meno), alle previsioni di vendita, al riconoscimento vocale, fino alla diagnosi medica assistita.
È uno strumento potente perché, se addestrato bene, può analizzare enormi quantità di dati in pochissimo tempo, trovando pattern che per un umano sarebbero difficili da notare.

Naturalmente, per usare il supervised learning in modo efficace, devi avere un set di dati ben organizzato e di buona qualità. Questo significa che ogni esempio deve essere corretto e chiaro: se ci sono errori nelle etichette o troppe informazioni mancanti, il modello rischia di imparare male e quindi di darti risposte sbagliate, non risultando, quindi affidabile.

Dopo questa premessa, di seguito prossimi capitoli vedremo cosa succede durante l’addestramento di un modello supervisionato e come, passo dopo passo, riesce a passare da semplici dati a previsioni affidabili.

Come funzionano i modelli di apprendimento supervisionato

Schema

Capire come funzionano i modelli di apprendimento supervisionato è fondamentale per sfruttare al meglio le loro potenzialità. Non si tratta solo di “dare in pasto” dei dati a un programma, ma di farli passare attraverso un processo ben strutturato che porta l’algoritmo a migliorare progressivamente le sue capacità. In pratica, si costruisce un sistema che impara da esempi passati per prendere decisioni su nuovi casi.

Quando decidi di sfruttare l’intelligenza artificiale con questo approccio, il modello non si limita a memorizzare le informazioni. Al contrario, cerca di individuare schemi e relazioni che gli permettano di generalizzare: cioè di dare buone risposte anche con dati che non ha mai visto prima. Questa è la differenza tra un sistema davvero intelligente e uno che sa solo ripetere a memoria.

Pertanto, di seguito vedremo, passo dopo passo, cosa succede durante l’addestramento di un modello supervisionato, cioè il momento in cui l’algoritmo impara a correggersi e a migliorare. Scoprirai, quindi, come apprende un modello di supervised learning, entrando nel dettaglio dei meccanismi di correzione degli errori, e infine analizzeremo un esempio di apprendimento supervisionato per vedere tutto questo in azione.

Cosa succede durante l’addestramento di un modello supervisionato

Apprendimento automatico

Capire cosa succede durante l’addestramento di un modello supervisionato è come sbirciare dietro le quinte di uno spettacolo: scopri i passaggi nascosti che portano al risultato finale.

In pratica, l’addestramento è il momento in cui il modello “studia” i dati che gli fornisci. Il processo parte con un set di dati etichettati, cioè dove ogni esempio è accompagnato dalla risposta corretta.

Il modello inizia a fare previsioni basandosi su questi dati, anche se all’inizio può sbagliare parecchio. Per ogni errore, un meccanismo chiamato funzione di perdita (in inglese loss function) calcola “quanto” il modello si è allontanato dalla risposta giusta.

Più il numero è alto, più l’errore è grande. A questo punto entra in gioco un algoritmo di ottimizzazione (il più famoso è gradient descent, cioè “discesa del gradiente”), che regola i parametri interni del modello per ridurre gli errori. Questo ciclo che si articola in prevedere, poi calcolare l’errore e infine correggere, si ripete moltissime volte, finché il modello non raggiunge un livello di precisione soddisfacente. In breve, l’addestramento è un processo iterativo di prova, errore e miglioramento.

Ovviamente, però, va detto che ogni sistema può usare tecniche diverse o più complesse a seconda del problema e dei dati, ma questa struttura di base è comune nella maggior parte dei modelli di apprendimento supervisionato.

Come apprende un modello di supervised learning

Modello di supervised learning

Ora che hai visto le fasi dell’addestramento, è più facile capire come apprende un modello di supervised learning.

L’idea di base è che il modello non memorizza semplicemente tutte le risposte, ma cerca di estrarre dai dati delle regole generali utili a fare previsioni su nuovi casi.

Quando il modello riceve i dati di addestramento, li analizza per individuare pattern, cioè schemi ricorrenti. Per esempio, può imparare che se un’email contiene molte parole come “gratis”, “offerta”, “clicca qui”, allora è probabilmente spam.

Questi schemi non sono salvati come frasi vere e proprie, ma come parametri numerici che rappresentano la “forza” di certe caratteristiche nel determinare il risultato.

Quindi, il vero segreto dell’apprendimento supervisionato è la generalizzazione: la capacità di applicare ciò che ha imparato a dati completamente nuovi. Se il modello impara troppo alla lettera (fenomeno chiamato overfitting), funzionerà benissimo con i dati di addestramento ma male con dati reali. Se invece generalizza bene, riuscirà a prendere decisioni corrette anche in situazioni mai affrontare in precedenza.

In sostanza, il modello impara costruendo una rappresentazione matematica delle relazioni nei dati, e poi usa quella rappresentazione per prevedere il futuro.

Esempio apprendimento supervisionato

Email spam

Qui ti mostro qualche esempio di apprendimento supervisionato concreto, prendendo spunti da problemi pratici e sistemi con i quali potresti aver già avuto a che fare. Lo scopo è farti capire passo dopo passo come sono stati addestrati i modelli, senza entrare in tecnicismi inutili, ma spiegandoti quali sono i passaggi principali, spiegandoti a cosa corrispondono.

Come ti ho già accennato in precedenza i filtro anti‑spam e phishing oggi utilizzano modelli di supervised learning. In questo caso, le fasi di apprendimento potrebbero essere le seguenti.

  • Dati: si raccolgono tante email già etichettate come spam o non spam. L’etichetta è la “risposta giusta” con cui il modello deve confrontarsi.
  • Preprocessing (pulizia dei dati): le email vengono “pulite” per eliminare elementi inutili (codice HTML, spazi in più) e trasformate in un formato più semplice da analizzare. Per esempio si trasformano tutte le lettere in minuscolo e si dividono le frasi in singole parole in un processo che si chiama tokenizzazione).
  • Estrazione delle caratteristiche: il testo non può essere dato al modello così com’è, ma deve diventare una lista di numeri. Tecniche come bag-of-words o TF-IDF trasformano le parole in valori che indicano quanto sono importanti nel testo.
  • Scelta del modello: si decide l’algoritmo da usare. Per un filtro spam semplice può bastare un Naive Bayes o una regressione logistica. Per sistemi più complessi si possono usare anche modelli avanzati come Gradient Boosted Trees o reti neurali.
  • Addestramento: il modello prova a indovinare se un’email è spam e poi corregge se stesso usando i dati etichettati. Questo processo si ripete molte volte finché non raggiunge buone prestazioni.
  • Valutazione: si controlla quanto il modello è preciso, quante email spam riconosce (recall) e quante ne segnala correttamente senza sbagliare (precision).

Anche i sistemi di riconoscimento di immagini che oggi utilizzano app, siti Web e software, si basano oggi su modelli di apprendimento supervisionato. Il sistema generalmente deve capire cosa c’è in una foto: per esempio, stabilire se l’immagine contiene il volto di una persona oppure no, o se si tratta di un documento richiesto, come una carta d’identità. Il problema è che un computer non “vede” come noi: per lui una foto è solo una griglia di numeri che rappresentano i colori dei pixel. Quindi, per insegnare al modello a riconoscere i volti o i documenti, dobbiamo passare attraverso diverse fasi.

  • Dati: si raccolgono tante immagini già classificate, cioè sappiamo per ogni foto se contiene o no un volto o un documento. Queste etichette sono fondamentali perché guidano l’apprendimento.
  • Preprocessing: si preparano le immagini ridimensionandole tutte a una stessa misura e uniformando i colori (per esempio, normalizzandoli) così il modello lavora sempre su dati coerenti.
  • Data augmentation: si creano versioni modificate delle immagini (per esempio ruotate, ritagliate, o ribaltate) per insegnare al modello a riconoscere il soggetto anche se la foto è scattata da angolazioni diverse o in condizioni variabili.
  • Modello: si utilizzano speciali algoritmi ottimizzati, reti neurali convoluzionali (CNN), per analizzare le immagini e imparare a estrarre caratteristiche come forme, contorni e dettagli.
  • Transfer learning:: spesso si parte da un modello esistente già “allenato” su milioni di immagini, e lo si adatta con dati specifici, così il processo è più veloce e preciso.
  • Loss e ottimizzazione : durante l’addestramento il modello fa delle previsioni e la loss function misura quanto si è sbagliato. Un algoritmo di ottimizzazione, poi, modifica i parametri interni per migliorare le prestazioni.
  • Valutazione : si usano strumenti come la matrice di confusione per vedere quante volte il modello ha riconosciuto correttamente un volto o un documento, e quante volte ha sbagliato.

Quindi, da questi esempi risulta chiaro che il procedimento di apprendimento supervisionato segue logiche simili: si parte da dati etichettati, si puliscono e trasformano per renderli comprensibili al modello, si addestra il modello correggendo i suoi errori e infine si valuta quanto bene ha imparato.
Ma la valutazione non è la fine del percorso. Se i risultati non sono soddisfacenti, si possono adottare diverse strategie per migliorare la precisione del modello.

  • Aumentare la quantità di dati: più esempi si forniscono, meglio il modello può imparare a distinguere le caratteristiche importanti.
  • Bilanciare i dati: se alcune categorie sono poco rappresentate (per esempio poche email spam rispetto a tante email normali), si può correggere questo squilibrio per evitare che il modello dia risultati distorti.
  • Migliorare la qualità dei dati: eliminare errori nelle etichette, pulire meglio i dati o aggiungere dati sintetici per casi particolari.
  • Scegliere o ottimizzare meglio il modello: provare algoritmi diversi o aggiustare i parametri per ottenere prestazioni più alte.
  • Usare tecniche di ensemble o trasferimento: combinare più modelli insieme o partire da modelli già addestrati per accelerare e migliorare l’apprendimento.

Solo dopo aver effettuato questi aggiustamenti, il modello può essere usato con maggiore sicurezza nel mondo reale, dove continuerà a migliorarsi man mano che si raccolgono nuovi dati.

Salvatore Aranzulla

Autore

Salvatore Aranzulla

Salvatore Aranzulla è il blogger e divulgatore informatico più letto in Italia. Noto per aver scoperto delle vulnerabilità nei siti di Google e Microsoft. Collabora con riviste di informatica e cura la rubrica tecnologica del quotidiano Il Messaggero. È il fondatore di Aranzulla.it, uno dei trenta siti più visitati d'Italia, nel quale risponde con semplicità a migliaia di dubbi di tipo informatico. Ha pubblicato per Mondadori e Mondadori Informatica.