Guide

UnSupervised learning, cos’è ed esempi di apprendimento non supervisionato

L’apprendimento senza supervisione avviene quando i dati di input non sono etichettati o non hanno un corrispondente valore di output e l’algoritmo deve scoprire eventuali relazioni esistenti. Il suo utilizzo è adatto a cercare modelli nascosti nei dati [...]
Paolo Dotti

Aton It

anomalie machine learning
  1. Home
  2. Intelligenza Artificiale
  3. UnSupervised learning, cos’è ed esempi di apprendimento non supervisionato

Focalizziamo l’attenzione su “Unsupervised learning” o apprendimento non supervisionato, un sottoinsieme degli algoritmi di Machine learning che scovano strutture nuove tra i dati. Sono modalità di apprendimento automatico in cui gli algoritmi lavorano da soli per scoprire relazioni tra i dati a disposizione. Parliamo di alcune categorie fondamentali di algoritmi senza supervisione, clustering, associazione e riduzione delle dimensioni con i rispettivi contesti applicativi.

Cos’è l’Unsupervised learning o apprendimento non supervisionato

A differenza del più conosciuto e utilizzato apprendimento supervisionato, l’apprendimento senza supervisione avviene quando i dati di input non sono etichettati o non hanno un corrispondente valore di output e l’algoritmo deve scoprire eventuali relazioni esistenti. Il suo utilizzo è adatto a cercare modelli nascosti nei dati che sfuggono all’osservazione sia perché oscurati da altre informazioni sia perché la quantità di dati è talmente grande da non poter essere osservata facilmente senza un ausilio computazionale. Senza supervisione il modello non può essere addestrato su un insieme di dati preparati con il corretto output corrispondente ma deve individuare autonomamente le differenze o le similitudini fra gli input identificandone le caratteristiche principali; non dovendo effettuare le fasi di addestramento e di validazione la preparazione del dataset di input richiede meno sforzi.

Il risultato dell’applicazione di algoritmi senza supervisione è una ripartizione del dataset di input in sottoinsiemi che hanno caratteristiche comuni o una relazione di similitudine che spesso può sfuggire all’osservazione umana. Per questo l’apprendimento non supervisionato viene utilizzato per lavorare su grandi quantità di dati allo scopo di suddividerei in sottoinsiemi con caratteristiche comuni oppure anche identificare elementi che sono estranei alle caratteristiche comuni.

Come funziona l’Unsupervised learning

Gli algoritmi di apprendimento non supervisionato realizzano operazioni molto più complesse del caso supervisionato in quanto apprendono direttamente dai dati senza il bisogno di un dataset di addestramento. In molti algoritmi si definisce una metrica con cui calcolare la distanza tra due dati di input; questa può essere la nota distanza euclidea che nel caso più semplice è la lunghezza del segmento che unisce due punti in un piano cartesiano, oppure può essere più complessa e per esempio considerare la distanza tra un punto e una distribuzione di punti.

Stabilita la metrica da utilizzare si procede in base all’algoritmo col raggruppare i dati in base alla distanza tra essi fino ad esaurimento del dataset di input. La distanza utilizzata definisce in qualche modo la somiglianza o la differenza tra due dati ed è determinante per il risultato finale.

Infine, non disponendo di un output o di un’etichetta di verifica, la validità del modello ottenuto non può essere valutata con un dataset di test ma occorrono altri sistemi dipendenti dal tipo di algoritmo.

Quali sono i tipi di apprendimento non supervisionato

Gli algoritmi di apprendimento non supervisionato possono essere suddivisi nelle seguenti tipologie fondamentali.

Algoritmi di clustering: i dati di input sono raggruppati in diversi cluster in base alla similarità delle loro caratteristiche; lo scopo principale è trovare una struttura in una collezione di dati che non sono categorizzati. Tecnicamente viene calcolata una distanza tra i dati di input e in base a questa vengono creati dei gruppi o cluster. La modalità di calcolo della distanza tra i dati di input influisce sul risultato e il successo del modello dipende molto dalla scelta del tipo di distanza tra i dati di input. Questa classe di algoritmi ha il suo maggior successo nella segmentazione di gruppi di persone, segmentazione della clientela, segmentazione del mercato, identificazione di relazioni non esplicitamente visibili tra dati di input, selezione di anomalie.

Algoritmi associativi: consentono di associare le variabili in grandi database secondo relazioni predefinite; alcuni esempi sono: analisi degli acquisti per associare i prodotti che più spesso vengono acquistati insieme, analisi di recensioni dei prodotti, associazione di risultati di diagnostica medica in base ad alcuni parametri; si identificano insiemi di elementi che spesso compaiono insieme in grossi database. Troviamo in questa categoria l’algoritmo A-Priori, che opera eliminando grandi quantità di elementi analizzando piccoli sottoinsiemi che compaiono con frequenza elevata e osservando che sarà possibile associare due sottoinsiemi solo se entrambi compaiono con una frequenza superiore a una soglia impostata, perché altrimenti sarebbero scartati in partenza. Questo algoritmo ha uno dei suoi migliori successi nella Market Basket Analysis, ovvero l’analisi di un paniere di prodotti che vengono acquistati insieme con maggior frequenza. Sulla base di A-Priori vengono implementati algoritmi più evoluti che ottimizzano l’uso della memoria e hanno delle performance più elevate.

Riduzione della dimensionalità: sono algoritmi che in presenza di un numero elevato di dati di input permettono di estrarre le caratteristiche più importanti o di ricombinare i dati di partenza per ottenere componenti separate. Hanno lo svantaggio che le componenti ricavate non sono facilmente interpretabili come significato.

INFOGRAFICA
Rendere più efficienti i tempi di attesa in sanità: ecco come fare, grazie al digitale
Intelligenza Artificiale
Sanità

In generale in tutti gli algoritmi senza supervisione le proprietà delle classi ottenute non hanno una corrispondenza diretta con le classi informative per cui l’interpretazione dei risultati non è immediata. Per ridurre le dimensioni di un dataset ci sono diversi approcci, sia supervisionati che non supervisionati; nel contesto senza supervisione si parla di “feature extraction” e l’algoritmo più utilizzato è PCA (Principal Component Analysis). Questo algoritmo opera una sorta di compressione dei dati cercando di mantenerne le informazioni. Partendo da un dataset iniziale che possiamo pensare come una tabella con un elevato numero di colonne, l’algoritmo ci permette di ottenere una tabella con un numero piccolo di colonne che sono la combinazione delle originali; in sostanza vengono proiettati i dati da uno spazio a molte dimensioni su un sottospazio a pochissime dimensioni. Il passaggio da molte a poche dimensioni, anche solo due, implica che le caratteristiche iniziali del dataset vengano ricombinate per ottenere delle componenti indipendenti tra loro ma queste potrebbero essere poco interpretabili.

apprendimento non supervisionato

Algoritmi di clustering

Di seguito un breve approfondimento su una selezione di algoritmi di clustering che sono i più conosciuti.

K-Means: permette di partizionare i dati in gruppi o cluster; ognuno di questi viene definito creando un centroide che raggruppa i dati più vicini a sé. Il numero di cluster deve essere scelto a priori e questa è la difficoltà maggiore per cui possono essere richiesti diversi tentativi prima di trovare stabilire il numero giusto; la qualità dell’algoritmo e della scelta del numero di cluster viene valutata a posteriori, principalmente in due modalità. La prima è la valutazione del gomito, il punto in cui cambia la curva di un parametro legato all’errore quadratico; la seconda è la valutazione di un coefficiente detto “silhouette” che dipende dalla coesione calcolata come distanza tra i dati dello stesso cluster e la separazione come distanza media tra dati di un cluster e quelli del suo vicino più prossimo.

Gaussian Mixture model è una generalizzazione dell’algoritmo K-Means; fornisce una maggiore flessibilità nella dimensione e nella forma dei cluster.

Hierarchical clustering: è un algoritmo che costruisce una gerarchia di cluster con due approcci diversi: nel primo si procede partendo da un unico cluster e suddividendo i dati in più cluster ad ogni iterazione fino rimanere coi singoli dati; nel secondo si parte dai singoli esempi del dataset unendo a coppie i sotto-cluster più simili fino a ottenere un cluster unico. Quello che si ottiene si può rappresentare con un dendogramma, una visualizzazione gerarchica ad albero; alla fine si opera una “potatura” dell’albero per ottenere un numero di cluster che ottimizzi la separazione degli esempi in gruppi. Il vantaggio rispetto all’algoritmo k-means è che non è necessario specificare all’inizio il numero di cluster desiderati.

DBSCAN (Density Based Spatial Clustering of Application with Noise): è un algoritmo che assegna l’appartenenza a un cluster in base alla densità di regioni di punti; per densità si intende il numero di punti entro un determinato raggio. I punti o esempi del dataset sono classificati in tre tipologie, core, border e noise. Un punto è core si trova in una regione densa di punti ovvero con un numero minimo di punti entro un raggio predefinito; un punto è border se la regione non è densa ma comunque cade entro il raggio predefinito; i punti che non sono né core né border sono noise. I cluster sono formati dai punti core e dai border che cadono all’interno del loro raggio. A differenza dei precedenti algoritmi, DBSCAN non assegna tutti i dati a qualche cluster, ma quelli di tipo noise li elimina. Un altro vantaggio di questo algoritmo è la capacità di separare i dati in cluster che hanno una forma arbitraria, ovvero non obbligatoriamente sferica o ellittica.

apprendimento non supervisionato

Esempi di machine learning non supervisionato

Gli algoritmi di unsupervised machine learning entrano nella nostra vita di tutti i giorni per darci suggerimenti e supporto nelle attività da un lato, per proteggerci dall’altro. Di seguito sono descritti alcuni contesti applicativi.

Duplicazione testi

Un’applicazione molto interessante che ricade nell’analisi della similarità tra i dati è l’analisi di grandi quantità (corpus”) di testi provenienti da scraping web o da collezioni di articoli; la similarità che si cerca non è nel significato in questi casi ma ci si ferma puramente ai caratteri. Lo scopo di questo tipo di analisi può essere molteplice; consideriamo la ricerca di duplicazioni tra documenti che non sono esatte ma sono limitate a porzioni di testo. Con questo sistema è possibile rilevare azioni di plagio anche molto elaborate in cui un testo copiato può contenere molte informazioni dell’originale anche sparse e rimescolate. Un’estensione di questa tecnica può essere applicata alla verifica del riutilizzo di pagine web, duplicate (mirroring) su più server per bilanciare il carico e che non sono esattamente identiche. L’importanza di rilevare queste pagine web quasi identiche si riflette in una migliore risposta dei motori di ricerca che evitano di elencare le stesse pagine più volte.

Sistemi di raccomandazione

La rilevazione delle similarità è molto utilizzata nei processi in cui si suggeriscono a un utente articoli che altri utenti di gusti simili hanno acquistato o visionato. Un modello di questo tipo trova ampia applicazione in ambito e-commerce, basta pensare ad Amazon, dove i gusti di un cliente sono confrontati con quelli di altri clienti e un motore di raccomandazione ci consiglia articoli che altri clienti che hanno dimostrato interessi simili ai nostri hanno visionato o acquistato.

Un altro contesto simili è quello dei film, si pensi a Netflix e ai concorrenti; si considera la similarità tra i film per come vengono valutati e scelti dagli utenti e si considera la similarità tra gli utenti che hanno dimostrato interesse per gli stessi film; un motore di raccomandazione proporrà film simili a utenti simili.

Segmentazione della clientela

Il clustering in generale è molto utile per segmentare la clientela in base al comportamento in vari contesti quali possono essere metodi di pagamento, frequenza degli acquisti, livello di spesa, tipologia di articoli acquistati e molto altro. Il risultato finale è la capacità di indirizzare offerte e promozioni a gruppi di clienti simili che in base alle analisi effettuate potranno sicuramente essere interessati. Il vantaggio di queste operazioni è un miglioramento nella gestione dei clienti e la capacità di prevenire abbandoni incrementandone la soddisfazione e la fidelizzazione.

Market Basket Analysis

L’algoritmo A-Priori e i suoi derivati sono la base di questo tipo di analisi in cui più articoli sono associati per frequenza di acquisto; la conoscenza di questi “basket” permette di ottimizzare la disposizione degli articoli per facilitarne la visibilità, di ottimizzare la gestione del magazzino e degli ordini sapendo che molti articoli sono venduti spesso insieme e diminuire sprechi o scarti, di raffinare la profilazione dei clienti.

Rilevazione frodi e attacchi

La possibilità di utilizzare metodi di clustering o di riduzione della dimensionalità per scovare non le similitudini ma le “non similitudini” consente di rilevare diverse tipologie di anomalie. Una di queste è la rilevazione di frodi in contesti finanziari dove si usano sia metodi di apprendimento supervisionato sia metodi di apprendimento non supervisionato. Un contesto di più recente applicazione è quello della cyber security dove i metodi non supervisionati sono in grado di rilevare nel traffico di rete delle situazioni sfuggenti ma stranamente diverse dal solito che possono rivelarsi malware o ransomware; molte piattaforme di rilievo sul mercato, specializzate nella difesa informatica, sono costituite da un nucleo software basato sull’intelligenza artificiale e in particolare su algoritmi con e senza supervisione.

Rilevazione anomalie in campo diagnostico

Tra le applicazioni degli algoritmi nella ricerca di situazioni anomale ovvero nella ricerca di punti che differiscono dalla normalità, si sta sviluppando con grande successo la diagnostica per immagini in campo medico, che permette di identificare criticità di salute a volte non identificabili neanche dall’occhio esperto di un professionista. In questo contesto dobbiamo aggiungere che si utilizzano metodi di apprendimento supervisionato, non supervisionato e reti neurali; ognuno di questi da un contributo informativo che permette di diagnosticare con maggior precisione una situazione critica.

Conclusioni

Il machine learning è composto da una quantità crescente di algoritmi, con supervisione, senza supervisione, con rinforzo. L’apprendimento senza supervisione, da solo o unito ad apprendimento supervisionato e a volte a reti neurali o deep learning concorre a fornire sistemi che permettono di ottimizzare i processi, la produzione, il benessere delle aziende e l’offerta verso i clienti.

WHITEPAPER
Quali step seguire per una strategia vincente di marketing nel Metaverso?
Intelligenza Artificiale
Marketing

Per approfondire

IA24.1 Apprendimento Automatico: concetti introduttivi

Video prof. Aldo Franco Dragoni

FacebookTwitterLinkedIn
FacebookTwitterLinkedIn