Deep learning: Apprendimento supervisionato [parte 1]

Quando dobbiamo analizzare i dati abbiamo a disposizione diverse tecniche. Nel deep learning, ma in più in generale nella data science, possiamo avvalerci di alcuni tecniche chiamate di apprendimento superivisionato. Queste consistono nell'osservare alcuni dati di esempio per predirre valori e/o etichette su dati nuovi.

Share

Tempo di lettura: 6 minuti

Il data scientist ha a disposizione diverse tecniche per analizzare i dati e creare dei modelli per i suoi progetti. Identificare la tecnica corretta per il proprio progetto non è sempre così banale. Infatti, a seconda delle caratteristiche intrinseche dei dati e del nostro obiettivo possiamo ottenere risultati molto diversi usando tecniche diverse. Esistono diverse famiglie di algoritmi di machine learning e deep learning. In questo articolo ci focalizzeremo sulle tecniche di apprendimento supervisionato.

L’apprendimento supervisionato

L’apprendimento supervisionato parte da un set di dati contenente sia caratteristiche che etichette. I compiti appartenenti a questa categoria hanno l’obiettivo di produrre un modello che predice le etichette quando vengono date le caratteristiche in ingresso. Ogni coppia caratteristica-etichetta è chiamata esempio o campione. La supervisione entra in gioco perché, per scegliere i parametri, noi data scientists (ossia i supervisori) forniamo al modello un insieme di dati costituito da esempi già etichettati. In termini probabilistici, siamo tipicamente interessati a stimare la probabilità condizionata di un’etichetta date le caratteristiche in ingresso. Pur essendo solo uno dei tanti paradigmi, l’apprendimento supervisionato rappresenta la maggior parte delle applicazioni di successo dell’apprendimento automatico nell’industria. In parte ciò è dovuto al fatto che molti compiti importanti possono essere descritti in modo chiaro come la stima della probabilità di qualcosa di sconosciuto dato un particolare insieme di dati disponibili. Alcuni esempi sono:

  • Prevedere la presenza o meno di una malattia, data un’immagine di tomografia computerizzata.
  • Prevedere la traduzione corretta in una lingua straniera data una frase nella nostra lingua madre.
  • Prevedere il prezzo di un’azione il mese prossimo sulla base dei dati di bilancio di questo mese.

 

Mentre tutti i problemi di apprendimento supervisionato sono catturati dalla semplice descrizione “predire le etichette date le caratteristiche di input”, l’apprendimento supervisionato stesso può assumere forme diverse e richiedere un sacco di decisioni in fase di modellazione, basandosi su, solo per citarne alcune, del tipo, della dimensione e della quantità degli input e degli output. Ad esempio, possiamo utilizzare modelli diversi per elaborare sequenze di lunghezza arbitraria e rappresentazioni vettoriali di lunghezza fissa.

In modo informale, il processo di apprendimento è simile al seguente. Innanzitutto, si prende una grande collezione di esempi di cui si conoscono le caratteristiche e se ne seleziona un sottoinsieme casuale, acquisendo le etichette per ciascuno di essi. A volte queste etichette possono essere caratteristiche dei dati già raccolti, mentre altre volte è necessario ricorrere ad annotatori umani per etichettare i nostri campioni. L’insieme di questi input e delle corrispondenti etichette costituisce il set di addestramento. Il set di dati di addestramento viene inserito in un algoritmo di apprendimento supervisionato, una funzione che prende in input un set di dati e produce un’altra funzione: il modello. Infine, possiamo dare in pasto al modello nuovi input non visti in precedenza, utilizzando le sue uscite come predizioni dell’etichetta corrispondente. Di seguito è illustrato il processo completo.

Regressione

Consideriamo, per esempio, un insieme di dati raccolti da un database di vendite di case. Potremmo rappresentare i nostri dati come una tabella in cui ogni riga corrisponde ad una casa e ogni colonna ad una caratteristica della casa, come la metratura, il numero di camere da letto, il numero di bagni e il numero di minuti (a piedi) per raggiungere il centro della città. In questo dataset, ogni esempio sarebbe una casa specifica e il vettore di caratteristiche corrispondente sarebbe una riga della tabella. Se vivete a New York o a San Francisco, il vettore di caratteristiche (metratura, numero di camere da letto, numero di bagni, distanza a piedi) per la vostra casa potrebbe essere simile a: [70, 1,1, 60]. Se invece vivete a Pittsburgh, il vettore corrispondente alla vostra casa potrebbe essere [800, 4, 3, 10]. Vettori di caratteristiche a lunghezza fissa come questo sono essenziali per la maggior parte degli algoritmi classici di apprendimento automatico.

Ma perché dovremmo usare la regressione su questo set di dati? In realtà l’utilizzo di un approccio rispetto ad un altro dipende dall’obiettivo dell’analisi. Supponiamo che siate sul mercato per una nuova casa. Si potrebbe voler stimare il valore equo di mercato di una casa, date alcune caratteristiche come quelle sopra descritte. I dati potrebbero consistere in annunci storici di case e le etichette potrebbero essere i prezzi di vendita osservati. Quando le etichette assumono valori numerici arbitrari (anche all’interno di un intervallo), si parla di problema di regressione. L’obiettivo è produrre un modello le cui previsioni si avvicinino molto ai valori effettivi delle etichette.

Molti problemi pratici sono facilmente descrivibili come problemi di regressione. Ad esempio, la previsione della valutazione che un utente assegnerà a un film può essere considerata un problema di regressione. Pensate che se nel 2009 aveste progettato un algoritmo in grado di realizzare questa impresa, avreste potuto vincere il premio Netflix da un milione di dollari. Anche prevedere la durata della degenza dei pazienti in ospedale, la durata di un intervento chirurgico e la quantità di pioggia che cadrà nelle prossime ore sono problemi di regressione.

Per valutare la bontà del nostro modello di regressione useremo, principalmente, l’errore quadratico medio, ossia quanto il valore predetto si discosta dal valore reale. Se il nostro modello riesce a minimizzare l’errore quadratico, il nostro modello sarà altamente affidabile.

Classificazione

Mentre i modelli di regressione sono ottimi per rispondere alle domande che cercano di quantificare una misura, alcuni problemi non si adattano a questo modello. Consideriamo, ad esempio, una banca che vuole sviluppare una funzione di scansione degli assegni per la sua applicazione mobile. Idealmente, il cliente dovrebbe semplicemente scattare una foto dell’assegno e l’applicazione dovrebbe riconoscere automaticamente il testo dall’immagine. Supponendo di essere in grado di segmentare le patch dell’immagine corrispondenti a ciascun carattere scritto a mano, il compito principale che rimane da svolgere è quello di determinare quale carattere, tra quelli noti, è rappresentato in ciascuna patch dell’immagine. Questo tipo di problemi si chiama classificazione e richiede una serie di strumenti diversi da quelli utilizzati per la regressione, anche se molte tecniche sono applicabili.

Nella classificazione, vogliamo che il nostro modello esamini le caratteristiche, ad esempio i valori dei pixel di un’immagine, e poi preveda a quale categoria (di solito chiamata classe), tra un insieme discreto di opzioni, appartiene l’esempio osservato. Per le cifre scritte a mano, potremmo avere dieci classi, che corrispondono alle cifre da 0 a 9. La forma più semplice di classificazione si ha quando ci sono solo due classi, detto anche problema di classificazione binaria. Ad esempio, il nostro set di dati potrebbe essere costituito da immagini di animali e le nostre etichette potrebbero essere le classi {cane, gatto}. Mentre quando usiamo la regressione cerchiamo un modello che fornisca un valore numerico, nella classificazione cerchiamo un modello il cui risultato è l’assegnazione di una delle classi a disposizione.

Per diverse ragioni, può essere difficile ottimizzare un modello che fornisce solo un’assegnazione categorica, ad esempio “cane” o “gatto”. In questi casi, di solito è molto più facile esprimere il nostro modello nel linguaggio delle probabilità. Date le caratteristiche di un esempio, il nostro modello assegna una probabilità ad ogni possibile classe. Tornando al nostro esempio di classificazione degli animali, in cui le classi sono {cane, gatto} un classificatore potrebbe vedere un’immagine e dare come risultato una probabilità di 0,9 che l’immagine sia un cane. Possiamo interpretare questo numero dicendo che il classificatore è sicuro al 90% che l’immagine raffiguri un cane.

In alcuni casi la probabilità fornita dal modello non viene utilizzata per la decisione finale. Pensate di voler creare un’app che, utilizzando una foto, fornisca la probabilità che un fungo che raccogliete nel bosco sia velenoso o meno. Supponiamo che il nostro classificatore per il rilevamento del veleno fornisca come risultato che la probabilità che un fungo sia velenoso è pari a 0,2. In altre parole, il classificatore è sicuro all’80% che il nostro fungo non sia velenoso. Tuttavia, credo che nessuno si sogni di mangiarlo sapendo che c’è un rischio del 20% che la nostra cena sia alquanto indigesta. Quindi, per decidere se mangiare o meno il fungo, dobbiamo calcolare il danno atteso associato ad ogni azione, che dipende sia dai risultati probabili sia dai benefici o dai danni associati a ciascuno di essi. In questo caso, il danno subito mangiando il fungo potrebbe essere 0.2 × ∞ +0,8 × 0 = ∞, mentre la perdita derivante dallo scartare il fungo è 0.2 × 0 +0,8 × 1 = 0.8. La nostra cautela è pertanto giustificata.

Quando le classi possibili sono più di due, il problema si chiama, invece, classificazione multiclasse. Esempi comuni sono il riconoscimento di caratteri scritti a mano, come discusso nel primo esempio. Mentre per i problemi di regressione abbiamo cercato di minimizzare la funzione di perdita dell’errore quadratico, la funzione di perdita comune per i problemi di classificazione è chiamata entropia incrociata.

La classificazione, ovviamente, può essere molto più complicata della semplice classificazione binaria o multiclasse. Ad esempio, esistono alcune varianti di classificazione che riguardano classi strutturate gerarchicamente. In questi casi non tutti gli errori sono uguali: se dobbiamo sbagliare, potremmo preferire una classificazione errata in una classe correlata piuttosto che in una classe distante. Di solito si parla di classificazione gerarchica.

Un esempio di classificazione gerarchica è quella degli animali. In questo caso, potrebbe non essere così grave confondere un barboncino con uno schnauzer, ma il nostro modello pagherebbe un’enorme penalità se confondesse un barboncino con un dinosauro. La scelta della gerarchia dipende dall’uso che si intende fare del modello. Per esempio, i serpenti a sonagli e le giarrettiere potrebbero essere vicini nell’albero filogenetico, ma confondere un serpente a sonagli con una giarrettiera potrebbe avere conseguenze fatali.

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.

2 risposte

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!