Deep learning: Apprendimento supervisionato [parte 2]

Oltre ai classici metodi di classificazione e regressione esistono altri approcci e campi in cui l'apprendimento automatico viene utilizzato. Possiamo infatti assegnare diverse etichette allo stesso campione, creare modelli per migliorare la ricerca nelle nostre applicazioni o suggerire contenuti altamente rilevanti in base al profilo del singolo utente. Infine, possiamo costruire modelli che usano sequenze di dati per produrre nuove sequenze, quali le traduzioni o la conversione da audio a testo e viceversa.

Share

Tempo di lettura: 7 minuti

Nell’articolo precedente Deep learning: Apprendimento supervisionato [parte 1] abbiamo introdotto i metodi supervisionati del deep learning, tra cui la regressione e la classificazione. Queste due tecniche non sono le uniche a nostra disposizione. Infatti, a seconda dell’obiettivo della nostra analisi e alla natura stessa dei dati è possibile usare diverse tecniche. Di seguito analizzeremo altre tecniche sempre supervisionate, ossia che si basano sull’osservazione di esempi già etichettati. In particolare ci focalizzeremo sull’etichettatura, la ricerca, i sistemi di raccomandazione e l’apprendimento di sequenze.

Etichettatura

Alcuni problemi di classificazione, tra cui quelli illustrati nell’articolo Deep learning: Supervised learning [part 1],  rientrano perfettamente nelle configurazioni di classificazione binaria o multiclasse. Ad esempio, potremmo addestrare un normale classificatore binario per distinguere i cani dai gatti. Considerato lo stato attuale della computer vision, possiamo farlo facilmente, con strumenti già pronti. Tuttavia, a prescindere dall’accuratezza del nostro modello, potremmo trovarci in difficoltà quando il classificatore incontra l’immagine sottostante che rappresenta i Musicanti di Brema, i personaggi di una popolare fiaba tedesca.

Come si può vedere, l’immagine rappresenta un gatto, un gallo, un cane e un asino, con alcuni alberi sullo sfondo. Se prevediamo di incontrare immagini di questo tipo, la classificazione multiclasse potrebbe non essere la formulazione giusta del nostro problema. Infatti, abbiamo la necessità che il nostro modello possa indicare che l’immagine raffigura più animali, ossia nel nostro esempio un gatto, un cane, un asino e un gallo.

 

Il problema di imparare a prevedere classi che non si escludono a vicenda è chiamato classificazione multietichetta. Anche i problemi di auto-tagging sono in genere meglio descritti in termini di classificazione multi-label. Pensate, infatti, ai tag che le persone possono applicare ai post di un blog. Ad un articolo di solito vengono applicati dai 5 ai 10 tag. In teoria, i tag presentano anche una certa correlazione tra di loro. Ad esempio, è molto probabile che i post su “cloud computing” menzionino “AWS”, mentre quelli su “machine learning” menzionino “GPU”.

 

A volte questi problemi di tagging si basano su enormi set di etichette. La National Library of Medicine impiega molti annotatori professionisti che associano ad ogni articolo da indicizzare in PubMed una serie di tag tratti dall’ontologia Medical Subject Headings (MeSH), una collezione di circa 28.000 tag. La corretta etichettatura degli articoli è importante perché consente ai ricercatori di condurre revisioni esaustive della letteratura. Si tratta di un processo che richiede molto tempo e di risorse umane. L’apprendimento automatico potrebbe fornire etichette provvisorie che poi verranno eventualmente revisionate in seguito da esperti del settore.

La ricerca

Nel campo del recupero delle informazioni, spesso imponiamo dei ranghi a insiemi di elementi. Prendiamo ad esempio la ricerca sul Web. L’obiettivo non è tanto quello di determinare se una particolare pagina è rilevante per una query, quanto piuttosto quale, tra un insieme di risultati rilevanti, dovrebbe essere mostrato in modo più evidente ad un particolare utente. Un modo per farlo potrebbe essere quello di assegnare prima un punteggio a ogni elemento dell’insieme e poi recuperare gli elementi più votati. Il PageRank, l’algoritmo alla base del motore di ricerca di Google, è stato un primo esempio di tale sistema di punteggio. Stranamente, il punteggio fornito dal PageRank non dipendeva dalla query effettiva. Si basava invece su un semplice filtro di pertinenza per identificare l’insieme dei candidati rilevanti e poi utilizzava il PageRank per dare priorità alle pagine più autorevoli. Oggi i motori di ricerca utilizzano l’apprendimento automatico e i modelli comportamentali per ottenere punteggi di rilevanza dipendenti dalla query.

Sistemi di raccomandazione

I sistemi di raccomandazione sono un altro problema legato alla ricerca e al ranking. I problemi sono simili nella misura in cui l’obiettivo è quello di visualizzare un insieme di elementi rilevanti per l’utente. La differenza principale rispetto ai motori di ricerca tradizionali, è l’enfasi sulla personalizzazione dei risultati in base ai profili degli utenti. Ad esempio, per le raccomandazioni di film, la pagina dei risultati per un appassionato di fantascienza e quella per un conoscitore delle commedie di Robin Williams potrebbero differire in modo significativo. Problemi simili si presentano in altri contesti di raccomandazione, ad esempio per i prodotti al dettaglio, la musica e le notizie.

In alcuni casi, i clienti forniscono un feedback esplicito, comunicando quanto hanno apprezzato un determinato prodotto (ad esempio, le valutazioni e le recensioni del prodotto su Amazon e IMDb). In altri casi, forniscono un feedback implicito, ad esempio saltando i titoli di una playlist, il che potrebbe indicare insoddisfazione o forse solo che la canzone era inappropriata nel contesto. Nelle formulazioni più semplici, questi sistemi sono addestrati a stimare un certo punteggio, come ad esempio una valutazione in stelle prevista o la probabilità che un dato utente acquisti un particolare articolo.

Dato un modello di questo tipo, per un dato utente si potrebbe recuperare l’insieme di oggetti con i punteggi più alti, che potrebbero poi essere raccomandati all’utente. I sistemi di raccomandazione usati sul mercato sono molto più avanzati e tengono conto dell’attività dettagliata dell’utente e delle caratteristiche dell’articolo nel calcolare tali punteggi.

Nonostante il loro enorme valore economico, i sistemi di raccomandazione costruiti solo sulla base di modelli predittivi presentano alcuni gravi difetti concettuali. Per esempio, alcuni feedback non vengono di solito presi in considerazione in quanto rappresentano un numero esiguo degli esempi a disposizione. Basti pensare alle recensioni dei film o dei prodotti. Su una scala di cinque punti, gli articoli o film ricevono molte valutazioni a una e cinque stelle, mentre le valutazioni a tre stelle sono decisamente poche. In alcuni casi, le abitudini di acquisto degli utenti sono influenzate dal risultato dell’algoritmo di raccomandazione in uso sulla piattaforma. Tuttavia, gli algoritmi di apprendimento non sempre tengono conto di questo aspetto. È quindi molto probabile che si formino dei loop di feedback in cui un sistema di raccomandazione preferisce un articolo che viene ritenuto migliore (grazie ai maggiori acquisti) e che a sua volta viene raccomandato ancora più frequentemente.

Apprendimento in sequenza

Finora abbiamo esaminato problemi in cui abbiamo un numero fisso di input e produciamo un numero fisso di output. Per esempio, abbiamo considerato la previsione dei prezzi delle case con un insieme fisso di caratteristiche: metratura, numero di camere da letto, numero di bagni e distanza rispetto il centro città. Abbiamo anche discusso la mappatura da un’immagine (di dimensioni fisse) alle probabilità previste di appartenenza a ciascuna di un numero fisso di classi e la previsione delle valutazioni in stelle associate agli acquisti. In questi casi, una volta che il nostro modello è stato addestrato, dopo che ogni esempio di test è stato inserito nel nostro modello, viene immediatamente dimenticato. Abbiamo ipotizzato che le osservazioni successive fossero indipendenti e quindi non c’era bisogno di mantenere questo contesto.

Ma come dobbiamo comportarci con i frammenti di video? In questo caso, ogni frammento potrebbe essere composto da un numero diverso di fotogrammi. E la nostra ipotesi su ciò che accade in ogni fotogramma potrebbe essere molto più forte se teniamo conto dei fotogrammi precedenti o successivi. Lo stesso vale per il linguaggio. Ad esempio, un problema di deep learning molto diffuso è quello della traduzione automatica: il compito di acquisire delle frasi in una lingua di partenza e di prevederne la traduzione in un’altra lingua.

Questi problemi si presentano anche in medicina. Potremmo volere un modello per monitorare i pazienti nel reparto di terapia intensiva e lanciare avvisi ogni volta che il loro rischio di morte nelle 24 ore successive supera una certa soglia. In questo caso, non vorremmo buttare via tutto ciò che sappiamo sulla storia del paziente ogni ora, perché non vorremmo fare previsioni basate solo sulle misurazioni più recenti.

Domande come queste sono tra le applicazioni più interessanti dell’apprendimento automatico e vengono classificati come apprendimento sequenziale. Richiedono a un modello in grado di acquisire sequenze di input o di emettere sequenze di output (o entrambi). In particolare, l’apprendimento da sequenza a sequenza considera problemi in cui sia gli input che gli output sono costituiti da sequenze di lunghezza variabile. Per esempio, determinare l’ordine in cui un utente legge una pagina web è un problema di analisi del layout bidimensionale. I problemi di dialogo presentano ogni tipo di complicazione aggiuntiva, in cui determinare cosa dire dopo una parola o una frase richiede di tenere conto della conoscenza del mondo reale e dello stato precedente della conversazione su lunghe distanze temporali. Di seguito presentiamo alcuni dei esempi.

Tagging

Questo tipo di problema richiede di annotare una sequenza di testo con degli attributi. In questo caso, gli input e gli output sono allineati, cioè hanno lo stesso numero e si presentano nell’ordine corrispondente. Per esempio, nel tagging part-of-speech (PoS), annotiamo ogni parola di una frase con la parte del discorso corrispondente, cioè “sostantivo” o “oggetto diretto”. In alternativa, potremmo voler sapere quali gruppi di parole contigue si riferiscono a entità, come persone, luoghi o organizzazioni. Nell’esempio semplice che segue, potremmo voler indicare solo se una parola della frase fa parte o meno di un’entità (etichettata come “Ent”).

				
					Tom has dinner in Washington with Sally
Ent  -    -    -     Ent      -    Ent

				
			

Riconoscimento automatico del parlato

Nel riconoscimento vocale, la sequenza di ingresso è una registrazione audio come mostrato in figura, mentre l’output è una trascrizione di ciò che viene detto. La sfida consiste nel fatto che ci sono molti più frammenti audio rispetto al testo, ossia non c’è una corrispondenza 1:1 tra audio e testo. Infatti, il suono è tipicamente campionato tra 8kHz e 16kHz e ciò implica che poiché migliaia di campioni possono corrispondere a una singola parola pronunciata. Si tratta di problemi di apprendimento da sequenza a sequenza, in cui l’output è molto più breve dell’input. Mentre gli esseri umani sono straordinariamente bravi a riconoscere il parlato, anche da audio di bassa qualità, far sì che i computer compiano la stessa impresa è una vera e propria sfida.

Dal testo al parlato

È l’inverso del riconoscimento vocale automatico descritto in precedenza. In questo caso, l’input è un testo e l’output è un file audio. In questo caso, l’output è molto più lungo dell’input.

Traduzione automatica

A differenza del caso del riconoscimento vocale, in cui gli input e gli output corrispondenti si verificano nello stesso ordine, nella traduzione automatica i dati non allineati rappresentano una nuova sfida. In questo caso, le sequenze di input e di output possono avere lunghezze diverse e le regioni corrispondenti delle rispettive sequenze possono apparire in un ordine diverso. Si consideri il seguente esempio illustrativo della particolare tendenza dei tedeschi a collocare i verbi alla fine delle frasi:

				
					German:           Haben Sie sich schon dieses grossartige Lehrwerk angeschaut?
English:          Have you already looked at this excellent textbook?
Wrong alignment:  Have you yourself already this excellent textbook looked at?

				
			

More To Explore

Intelligenza artificiale

Sentiment Analysis e Topic Modeling: cosa dicono davvero i tuoi clienti

Hai 200 recensioni, 500 ticket di supporto, 1.000 commenti. Leggerli tutti richiederebbe giorni — e alla fine non saresti neanche sicuro di aver colto i pattern più importanti. Sentiment Analysis e Topic Modeling risolvono esattamente questo: in dieci minuti identifichi il tono emotivo di ogni testo, raggruppi i temi ricorrenti e ottieni una sintesi strategica che la lettura manuale non avrebbe mai prodotto.

Intelligenza artificiale

AI Multimodale: analizza PDF, immagini e documenti con Claude, GPT-4 e Gemini

L’AI non legge più solo testo. Claude riassume un preventivo di 10 pagine in 30 secondi. GPT-4 Vision trascrive i dati da uno screenshot di dashboard in formato tabella pronta all’uso. Gemini 1.5 Pro naviga documenti da 1.000 pagine citando le fonti. Questa guida mostra come funzionano, quando usare quale tool e dove il risparmio di tempo è misurabile — con screenshot reali di sessioni operative.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Progetta con MongoDB!!!

Acquista il nuovo libro che ti aiuterà a usare correttamente MongoDB per le tue applicazioni. Disponibile ora su Amazon!