L’apprendimento non supervisionato è un ramo del machine learning in cui un algoritmo impara a riconoscere schemi o strutture nei dati senza che questi siano accompagnati da etichette o risposte corrette predefinite.
In altre parole, al modello vengono forniti solo dati di input non etichettati, e il suo compito è quello di trovare autonomamente regolarità, somiglianze o pattern nascosti all’interno di essi. Questo è in netto contrasto con l’apprendimento supervisionato, dove invece ogni esempio di input è associato a un output o una categoria nota, e l’algoritmo impara a predire tali output a partire dai dati di input.
Un modo semplice per capire la differenza è il seguente: nell’apprendimento supervisionato l’algoritmo utilizza dati di input e output etichettati (ad esempio immagini di animali con l’etichetta “cane” o “gatto”) per imparare a fare previsioni, mentre nell’apprendimento non supervisionato si lavora solo con dati non etichettati, lasciando che sia il modello a scoprire autonomamente la struttura o le relazioni nei dati. In pratica, un algoritmo supervisionato impara da esempi “guidati” (con risposta nota), mentre uno non supervisionato cerca schemi per conto proprio, senza conoscere in anticipo quale risultato dovrebbe ottenere.
Un effetto di questa differenza è che i modelli supervisionati solitamente eccellono in compiti di predizione (ad esempio classificare email come spam/non spam o prevedere il prezzo di una casa), ma richiedono un costoso lavoro preliminare di etichettatura manuale dei dati. I modelli non supervisionati, invece, possono analizzare grandi quantità di dati grezzi e trovare informazioni nascoste senza intervento umano diretto. Ad esempio, un modello non supervisionato potrebbe analizzare i dati di acquisto di un e-commerce e scoprire da solo che certi prodotti vengono spesso comprati insieme, svelando gruppi di prodotti correlati. Sarà poi il compito di un analista umano interpretare questi gruppi e dare loro un significato utile (ad esempio capire che “Prodotto A” e “Prodotto B” vengono acquistati insieme perché correlati a un certo bisogno dei clienti).
Riassumendo, l’apprendimento non supervisionato non dispone di una “soluzione” nota durante l’addestramento. L’obiettivo non è predire un’etichetta esterna, ma piuttosto scoprire la struttura intrinseca dei dati. Questo tipo di apprendimento è estremamente utile per ottenere insight da grandi moli di informazioni non classificate, trovare suddivisioni naturali nei dati, ridurre la dimensionalità per visualizzare dati complessi, individuare anomalie e molto altro. Nella sezione seguente vedremo quali sono le principali categorie di tecniche non supervisionate e in che modo funzionano.
Principali tecniche di apprendimento non supervisionato
Esistono diverse tecniche che rientrano nell’apprendimento non supervisionato. Ciascuna affronta il problema a modo suo, a seconda del tipo di struttura che si vuole scoprire nei dati. Tra le tecniche più importanti possiamo citare il clustering, la riduzione della dimensionalità, le regole di associazione e metodi basati su reti neurali. Ognuna di queste categorie comprende vari algoritmi specifici, che vedremo brevemente più avanti. Di seguito descriviamo il principio di ciascuna tecnica e a cosa serve.
Clustering (raggruppamento di dati)
Il clustering è probabilmente la tecnica non supervisionata più nota. Consiste nel raggruppare gli esempi di un dataset in insiemi (cluster) sulla base della loro somiglianza reciproca [28†L62-L70]. In altre parole, l’algoritmo di clustering cerca di assegnare gli elementi con caratteristiche simili allo stesso gruppo, in modo tale che elementi nello stesso cluster siano molto simili tra loro, mentre elementi in cluster diversi risultino il più differenti possibile. A differenza di una classificazione supervisionata, nei cluster non conosciamo in anticipo le etichette o il numero esatto di gruppi: sarà l’algoritmo a determinare come suddividere i dati e spesso anche quanti cluster “naturali” esistono.
Un esempio concreto: supponiamo di avere dati demografici e comportamentali di un insieme di clienti. Applicando un algoritmo di clustering, potremmo scoprire che i clienti si suddividono naturalmente in 3 gruppi distinti in base alle loro abitudini di acquisto, senza aver predefinito queste categorie. Questi gruppi potrebbero rappresentare, ad esempio, segmenti di mercato diversi (giovani urbani interessati alla tecnologia, famiglie con figli, pensionati, ecc.). Il clustering dunque è alla base della cosiddetta segmentazione della clientela nel marketing, in cui si identificano gruppi omogenei di clienti per adattare strategie di vendita o di comunicazione.
Esistono vari tipi di algoritmi di clustering, ciascuno con il proprio approccio:
Clustering basato su partizione: suddivide i dati in un numero predefinito di cluster. Un esempio classico è l’algoritmo K-means, che richiede di specificare in anticipo il numero K di cluster desiderati e assegna iterativamente ogni punto al cluster con il centroide (media) più vicino [9†L357-L364]. K-means tende a creare cluster di forma convessa (generalmente sferici) e di dimensioni simili.
Clustering gerarchico: crea una gerarchia di cluster (un dendrogramma) unendo in modo agglomerativo i punti più vicini (o, all’inverso, suddividendo un insieme in sottogruppi). Questo produce cluster annidati a vari livelli: si può “tagliare” l’albero gerarchico al livello desiderato per ottenere un certo numero di gruppi.
Clustering basato sulla densità: forma cluster trovando regioni ad alta densità di punti separate da regioni a bassa densità. Un algoritmo rappresentativo è DBSCAN, che raggruppa i punti addensati tra loro e identifica come outlier (rumore) i punti isolati in zone di bassa densità [11†L329-L336]. A differenza di K-means, DBSCAN non richiede di specificare a priori il numero di cluster e può individuare cluster di forma arbitraria (non solo circolare) [12†L115-L118], risultando utile quando i gruppi hanno forme complesse o quando il dataset contiene rumore e valori anomali.
Esempio di clustering: Confronto tra DBSCAN (sopra) e K-means (sotto) su diversi insiemi di dati. I punti colorati rappresentano differenti cluster scoperti dagli algoritmi. DBSCAN è in grado di identificare correttamente cluster di forme non banali (come anelli concentrici o mezzalune) e isolare i punti rumorosi come outlier, mentre K-means tende a suddividere lo spazio in regioni circolari, fallendo nel catturare strutture complesse e forzando ogni punto ad appartenere a qualche cluster. Questo esempio illustra perché metodi basati sulla densità come DBSCAN possono essere preferibili quando i dati presentano forme irregolari o distribuzioni non omogenee, dove K-means fatica a dare risultati significativi.
In sintesi, il clustering permette di effettuare analisi esplorative sui dati, scoprendo gruppi naturali. I cluster individuati possono poi essere interpretati per capire la struttura del dataset. Oltre al marketing, il clustering trova applicazione in moltissimi campi: ad esempio in biologia computazionale per raggruppare geni o campioni biologici simili, in astronomia per individuare gruppi di stelle o galassie affini, oppure nell’analisi di immagini per raggruppare immagini visivamente simili. Vedremo più avanti alcuni casi d’uso specifici.
Riduzione della dimensionalità
Un’altra importante categoria di tecniche non supervisionate è la riduzione della dimensionalità. Spesso i dati reali hanno un gran numero di variabili (o feature): ad esempio immagini ad alta risoluzione (con migliaia di pixel come variabili), dataset scientifici con centinaia di misurazioni per campione, o database aziendali con decine di attributi per cliente. Una dimensionalità molto alta può rendere difficile comprendere i dati, visualizzarli e anche elaborare modelli in modo efficace (si pensi alla cosiddetta “maledizione della dimensionalità”). Le tecniche di riduzione dimensionale mirano a sintetizzare le informazioni più importanti in un numero minore di variabili, conservando il più possibile la varianza o le strutture presenti nei dati originali [14†L62-L69].
In pratica, questi metodi creano nuove feature che riassumono quelle originarie. Idealmente, dopo la riduzione, i dati compressi mantengono i pattern significativi presenti inizialmente, ma con meno dimensioni da analizzare. Ciò facilita la visualizzazione (ad esempio riducendo a 2 o 3 dimensioni per poter fare grafici), l’elaborazione (meno variabili significano algoritmi più veloci e meno rischio di overfitting) e può aiutare a rimuovere rumore o ridondanze nei dati.
Un algoritmo classico di riduzione dimensionale è la PCA (Principal Component Analysis), un metodo statistico lineare. PCA trova delle combinazioni lineari delle variabili originali (le cosiddette componenti principali) tali per cui la prima componente spiega la massima varianza possibile nei dati, la seconda componente spiega la massima varianza restante, e così via. Se molte variabili originali sono correlate tra loro, PCA consente di comprimerle in poche componenti informative, semplificando il dataset. Ad esempio, applicando PCA su un insieme di fotografie, potremmo scoprire che gran parte della variabilità delle immagini si può descrivere con poche “componenti” come il grado di luminosità, il contrasto, alcune forme basilari presenti, ecc., riducendo magari migliaia di pixel a poche decine di parametri fondamentali. In generale, PCA viene utilizzata in analisi esplorativa dei dati, pre-elaborazione (ad esempio per comprimere dati da dare in pasto ad altri algoritmi) e visualizzazione (plot 2D/3D dei primi componenti principali per osservare cluster o outlier) [14†L84-L92]. Va notato che PCA è una tecnica lineare; esistono anche tecniche non lineari di riduzione dimensionale, come t-SNE o UMAP, spesso usate per visualizzare dati complessi (ad esempio per rappresentare in 2D distribuzioni di dati ad alta dimensione mantenendo le vicinanze locali).
Un vantaggio della riduzione della dimensionalità è che può funzionare anche come metodo di denoising (eliminazione del rumore): concentrandosi sulle componenti principali si scartano molte piccole variazioni considerate rumore, migliorando la qualità dei dati. Inoltre, può essere usata come fase di feature extraction: le nuove variabili sintetiche ottenute possono servire come input più significativo per altri algoritmi di machine learning (anche supervisionati). In contesti come la compressione delle immagini, algoritmi non supervisionati come gli autoencoder (di cui parleremo a breve) possono apprendere a codificare un’immagine ad alta dimensione in un insieme ristretto di parametri, ottenendo un effetto simile alla PCA ma spesso più potente grazie alla natura non lineare delle reti neurali [28†L75-L79].
Reti neurali e apprendimento non supervisionato
Con l’avvento del deep learning, anche le reti neurali artificiali sono state applicate con successo in contesti non supervisionati. In generale, molte reti neurali famose sono addestrate in modo supervisionato (ad esempio le reti convoluzionali per il riconoscimento di immagini etichettate, o le reti LSTM per la traduzione automatica con frasi di input-output). Tuttavia, esiste una classe di architetture neurali progettate specificamente per apprendere dai dati grezzi senza etichette esplicite. Tra queste, un ruolo di primo piano è giocato dagli autoencoder.
Un autoencoder è una rete neurale composta essenzialmente da due parti: un encoder che comprime i dati di input in una rappresentazione interna più compatta (talvolta chiamata codice o latenza), e un decoder che a partire da tale rappresentazione cerca di ricostruire l’input originale. In fase di addestramento, l’autoencoder prende un dato (ad es. un’immagine), lo passa attraverso l’encoder per ottenerne una versione compressa, quindi il decoder cerca di riprodurre l’immagine iniziale. L’obiettivo è minimizzare la differenza tra input e output ricostruito. In questo processo non servono etichette esterne, perché il modello sta imparando a riprodurre i propri stessi input; l’apprendimento avviene confrontando il dato con se stesso (auto-supervisione). Un autoencoder opportunamente addestrato dunque impara a codificare efficacemente i dati, conservandone le caratteristiche essenziali nella codifica compressa [16†L24-L31]. Questa rappresentazione interna spesso cattura strutture latenti interessanti dei dati, motivo per cui gli autoencoder sono considerati strumenti di feature learning non supervisionato.
Oltre agli autoencoder, altri modelli neurali non supervisionati includono le reti generative. Variational Autoencoder (VAE) e Generative Adversarial Networks (GAN) sono esempi di modelli in grado di apprendere la distribuzione di probabilità dei dati di input e di generare nuovi dati simili agli originali (ad esempio generare immagini realistiche dopo aver visto molte immagini di addestramento). Anche questi algoritmi rientrano nell’apprendimento non supervisionato (o auto-supervisionato), in quanto non richiedono etichette ma apprendono dai dati grezzi, sebbene il loro scopo vada oltre la semplice scoperta di pattern – mirano infatti a creare dati simili a quelli reali. Un esempio affascinante è l’uso di reti GAN per generare volti umani realistici che non appartengono a persone reali: il modello ha imparato la distribuzione delle facce umane da un insieme di foto non etichettate (nessuna informazione sul nome o altre proprietà, solo pixel) e sa produrre nuovi esempi plausibili.
In sintesi, le reti neurali applicate all’apprendimento non supervisionato hanno aperto la strada a rappresentazioni di alto livello dei dati. Tecniche come l’autoencoding e i modelli generativi sono oggi alla base di molte innovazioni, inclusi sistemi di raccomandazione avanzati, sistemi di pre-training (pre-addestramento) di modelli che poi verranno raffinati con apprendimento supervisionato, e sistemi di rilevazione di pattern complessi in dati non strutturati (immagini, suoni, testo) senza bisogno di etichette iniziali.
Articoli correlati
Apprendimento supervisionato
Eghtify
Software & Tools
Eghtify
Eghtify
Autore
Nicolò Caiti
Ho fatto del MarTech il mio lavoro. Mi occupo di intelligenza artificiale applicata al marketing digitale. In questo blog, analizzo come l’AI sta trasformando il settore: migliorando le performance web, ottimizzando le strategie digitali e velocizzando il lavoro di tutti. Con anni di esperienza nell’automazione del marketing e nella gestione di customer journey avanzati, condivido insight pratici, case study e best practice per aiutare tutte le persone a sfruttare al meglio le potenzialità dell’AI nel proprio lavoro.
Spero che tu possa trovare le risposte che cerchi!