Machine Learning · PoliMI

Introduzione al Machine Learning

Capitolo 1
≈ 21 min di lettura · 4566 parole
Importanza per l'esame: 4/5

★★★★☆ La tassonomia supervised/unsupervised/RL è verificata in quasi ogni prova tramite l’esercizio di modellazione e i vero/falso.

Il machine learning (ML) è il campo dell’intelligenza artificiale che studia come costruire programmi capaci di migliorare le proprie prestazioni attraverso l’esperienza, invece di essere programmati esplicitamente per ogni situazione. Questo capitolo risponde a quattro domande: perché il ML è necessario, che cosa significa formalmente “apprendere” per una macchina, quali sono i paradigmi di apprendimento e come scegliere quello adatto a un problema; chiude una mappa degli argomenti del corso.

1. Perché il Machine Learning#

1.1 Il collo di bottiglia della programmazione esplicita#

L’approccio tradizionale alla risoluzione di un problema con un calcolatore prevede che un essere umano studi il problema, progetti un algoritmo che codifica la logica risolutiva e lo traduca in un programma; il calcolatore, ricevuto un input, esegue il programma e produce l’output. Per far giocare a scacchi un computer, ad esempio, si dovrebbe studiare il gioco, formalizzare tutte le strategie possibili e tradurle in codice: dato lo stato della scacchiera in input, il programma restituisce la mossa migliore.

Questo approccio ha un limite strutturale: scrivere il software è il collo di bottiglia. Per molti problemi è estremamente difficile, se non impossibile, esplicitare in un programma le regole che collegano input e output. È difficilissimo, per chiunque, definire in codice che cosa significhi giocare a scacchi a livello di gran maestro; non a caso, battere il campione del mondo Kasparov con un programma richiese uno sforzo umano e computazionale enorme.

Il machine learning ribalta la prospettiva: invece di codificare la soluzione, si forniscono al calcolatore molti esempi del problema risolto. Per gli scacchi, migliaia o milioni di coppie del tipo “se lo stato della scacchiera è questo, allora la mossa migliore è questa”. Un algoritmo di apprendimento elabora questi esempi e produce in output un modello, capace di giocare anche in configurazioni mai viste tra gli esempi. In questo senso si parla di “automazione dell’automazione” (automating automation): si automatizza la scrittura stessa del programma, lasciando che siano i dati a fare il lavoro.

Programmazione tradizionaleInputdati del problemaProgrammascritto a manoComputeresegue le regoleOutputla soluzioneMachine learning (automating automation)Inputdati del problemaOutputesempi risoltiApprendimentoelabora gli esempiModelloprogramma appreso

Idea chiave: nella programmazione classica l’uomo scrive le regole e il computer le applica ai dati; nel machine learning l’uomo fornisce dati ed esempi di soluzione, e il computer estrae da essi le regole, producendo un modello che funziona anche su casi nuovi.

In parole semplici: è la differenza tra spiegare a qualcuno passo passo come riconoscere un quadro falso e mostrargli mille quadri veri e mille falsi lasciandogli sviluppare l’occhio. Quando le regole sono troppo difficili da scrivere ma gli esempi abbondano, la seconda strada è l’unica praticabile.

1.2 Quando il machine learning è la scelta giusta#

Serve che i calcolatori prendano decisioni informate su dati nuovi, mai visti prima, e spesso progettare a mano un insieme di regole significative è troppo difficile. Il machine learning permette di estrarre automaticamente l’informazione rilevante dai dati passati e di sfruttarla su dati nuovi. Ci sono tre scenari tipici in cui questo approccio è particolarmente indicato:

Il criterio generale è quindi questo: ogni volta che si dispone di molti esempi e molti dati, ma è molto difficile pensare a come scrivere un programma che colleghi l’input all’output, il machine learning è un buon approccio.

In parole semplici: il ML conviene quando le regole sono sconosciute, instabili o troppo personali per essere scritte a mano, ma i dati che le “contengono” implicitamente sono disponibili in abbondanza.

1.3 Il machine learning non è magia#

La crescita del machine learning. Numero di iscrizioni a NeurIPS, una delle principali conferenze del settore, per anno: dopo un lungo periodo quasi piatto la partecipazione esplode dal 2013 in poi. La disponibilità di dati e di potenza di calcolo ha reso il ML pervasivo, ma dietro l’apparente automatismo resta un enorme sforzo umano e computazionale. (Slide del corso, lezione 1.)

Il machine learning può estrarre informazione dai dati, non crearla dal nulla. Per usarlo bene occorre sapere come funziona e capire come applicarlo. Questa consapevolezza è ancora più importante oggi, quando i modelli più recenti sembrano davvero vicini alla magia: comprenderne i meccanismi interni permette di usarli in modo efficace, di scegliere quali informazioni fornire loro e di riconoscerne i limiti.

Va anche sfatata l’idea che il machine learning elimini lo sforzo umano: costruire un modello richiede comunque un grande sforzo, computazionale e umano, per ottimizzarlo, testarlo e valutarlo. I grandi modelli linguistici lo rendono evidente: dietro l’apparente automatismo c’è un investimento enorme di risorse e competenze.

2. Che cosa significa “apprendere”#

2.1 Memorizzare non è apprendere#

Prima di dare una definizione formale, conviene chiedersi: quando diremmo che una macchina “ha imparato” qualcosa? Un’analogia universitaria aiuta. Se viene mostrato come si risolve un’equazione e poi viene proposta da risolvere esattamente la stessa equazione, riuscirci non dimostra di aver imparato: dimostra soltanto di aver memorizzato. L’apprendimento autentico comporta una forma di astrazione, cioè la capacità di applicare la conoscenza acquisita in passato a situazioni nuove.

C’è però un caso limite istruttivo. Si supponga di insegnare a una macchina la mossa migliore per ogni possibile configurazione della scacchiera: alla fine, ha imparato a giocare a scacchi? L’intuizione umana tende a rispondere di no, perché è pura memorizzazione; ma questa risposta mette in crisi il modo in cui si misura la performance: se un modello sa giocare in ogni possibile situazione, su quale base si potrebbe affermare che “non sa giocare”? La distinzione tra memorizzare e apprendere è meno netta di quanto sembri, e si vedrà più avanti nel corso che esiste un legame preciso tra quantità di dati disponibili e confine tra memorizzazione e apprendimento.

Nella pratica il machine learning si concentra comunque sulla generalizzazione, anche per una ragione molto concreta: presentare alla macchina tutte le situazioni possibili è quasi sempre infattibile, perché sono troppe, o addirittura impossibile, perché sono infinite.

Idea chiave: apprendere non significa ricordare le risposte agli esempi visti, ma estrarre da essi una regola generale che funzioni su esempi mai visti. Questa capacità si chiama generalizzazione ed è il vero obiettivo di ogni modello di machine learning.

2.2 La definizione di Mitchell: task, performance, esperienza#

La definizione standard di apprendimento automatico, dovuta a Tom Mitchell (1997), rende operativa questa intuizione ancorandola a tre elementi misurabili.

Apprendimento automatico (Mitchell, 1997)

Un programma per calcolatore apprende dall’esperienza EE rispetto a una classe di compiti TT e a una misura di performance PP, se la sua performance nei compiti in TT, misurata da PP, migliora con l’esperienza EE. In inglese: “A computer program is said to learn from experience E with respect to some class of tasks T and performance measure P, if its performance at tasks in T, as measured by P, improves with experience E”.

  • Task TT: il compito da svolgere, ad esempio giocare a scacchi, classificare immagini mediche, prevedere un prezzo.
  • Performance PP: la misura quantitativa con cui si valuta quanto bene il compito viene svolto, ad esempio la frazione di partite vinte o l’accuratezza di classificazione.
  • Esperienza EE: l’informazione da cui il programma impara, ad esempio esempi etichettati, dati grezzi o interazioni con un ambiente.
Task Til compito da svolgereEsperienza Eesempi, dati, interazioniProgrammache apprendePerformance Pmisura la qualitàsvolge il taskapprende se P, misurata sul task T, migliora al crescere dell'esperienza E

In parole semplici: una macchina “impara” se, dandole più esperienza (più dati, più partite, più esempi), diventa misurabilmente più brava nel suo compito. Non c’è niente di filosofico: si fissa un compito, si fissa un punteggio e si osserva se il punteggio sale al crescere dell’esperienza.

Due osservazioni. La prima riguarda il termine “esperienza”: si potrebbe pensare semplicemente a “dati”, ma esperienza è volutamente più generale, perché in alcuni tipi di machine learning, in particolare nell’apprendimento per rinforzo, l’informazione da cui si impara non è un insieme statico di dati ma il risultato di un’interazione con un ambiente. La seconda riguarda l’induzione, implicita nella definizione: migliorare su compiti nuovi presuppone la capacità di generalizzare la conoscenza estratta dai dati a situazioni mai osservate.

2.3 Esperienza e induzione#

Il machine learning è il sottocampo dell’intelligenza artificiale in cui la conoscenza proviene da due fonti:

L’induzione, a differenza della deduzione, non garantisce conclusioni certe: da un numero finito di esempi si può sempre indurre una regola sbagliata. Questa incertezza intrinseca è il motivo per cui gran parte del corso sarà dedicata a valutare correttamente i modelli e a capire quando e quanto ci si può fidare di ciò che hanno appreso.

3. I tre paradigmi di apprendimento#

I problemi di machine learning si classificano in tre grandi paradigmi, che si distinguono per il tipo di esperienza disponibile e per l’obiettivo dell’apprendimento: apprendimento supervisionato, non supervisionato e per rinforzo.

Supervisionatocoppie ⟨x, t⟩input + output attesoapprossimare ft = f(x) su input nuoviclassificazione, regressioneNon supervisionatosoli input xnessuna etichettascoprire patternstruttura nascosta nei daticlustering, PCAPer rinforzointerazioneazioni e rewardpolicy ottimamassimizzare il rewardMDP, Q-learning, SARSA

3.1 Apprendimento supervisionato#

È il paradigma più semplice e lineare. L’intuizione: c’è un “maestro” (da cui il nome) che fornisce, per ogni esempio, non solo l’input ma anche la risposta corretta attesa; il modello deve imparare a riprodurre e generalizzare questa associazione.

Apprendimento supervisionato

Dato un training set D\mathcal{D} composto da coppie x,t\langle x, t \rangle, dove xx è l’input e tt la variabile target (l’output atteso), l’obiettivo è apprendere dai dati un modello che approssimi la funzione incognita ff che mappa gli input noti negli output noti, cioè t=f(x)t = f(x), in modo da poterla applicare a input nuovi.

La natura della variabile target tt determina il tipo di problema:

Tra le tecniche di apprendimento supervisionato che verranno trattate: modelli lineari, reti neurali artificiali, support vector machines, decision tree (albero di decisione).

In parole semplici: nel supervisionato si impara con le “soluzioni in fondo al libro”: ogni esempio di addestramento arriva già con la risposta giusta allegata. Se la risposta è una categoria si parla di classificazione, se è un numero si parla di regressione.

Un punto merita di essere sottolineato con forza, perché nella pratica professionale è fonte di equivoci frequenti: la caratteristica che identifica e distingue il paradigma supervisionato è che qualcuno deve fornire, insieme agli input, anche gli output attesi. “Dati” non è sinonimo di “dati etichettati”: un insieme di immagini senza etichette non basta per addestrare un classificatore supervisionato, per quanto grande sia.

Un esempio di classificazione. A ogni volto in ingresso è associata un’etichetta 0 o 1. Con pochi esempi l’ipotesi “uomo/donna” sembra plausibile, ma il concetto reale è un altro (sorridere mostrando i denti). Nel test set, un input radicalmente diverso da quelli visti in addestramento, come E.T., non ha una risposta sensata. (Slide del corso, lezione 1.)

Un esempio di classificazione illustra due insidie fondamentali. Si consideri un training set di fotografie di volti, ciascuna etichettata 0 oppure 1. Con pochi esempi, un’ipotesi naturale è che l’etichetta distingua uomini e donne; ma un nuovo esempio, un volto maschile etichettato 0 anziché 1, smentisce l’ipotesi. Il concetto reale che genera le etichette è un altro: se nella foto la persona sorride mostrando i denti oppure no. E se nel test set compare un’immagine radicalmente diversa da tutte quelle di addestramento (nell’esempio, il personaggio di E.T.), il modello non ha basi per rispondere, perché quel tipo di input non è rappresentato nel training set. Le lezioni generali sono due:

Per questo non deve stupire che i modelli sbaglino: anche con algoritmi di ottimizzazione perfetti e modelli potenti, restano i problemi dei dati limitati, delle relazioni ambigue tra input e output e della rappresentatività del campione.

3.2 Apprendimento non supervisionato#

Nell’apprendimento non supervisionato non ci sono più etichette né target: ci sono solo dati. La richiesta implicita è: “ecco dei punti, dimmi qualcosa di interessante su di essi”. L’obiettivo è apprendere pattern precedentemente sconosciuti e rappresentazioni efficienti dei dati.

Apprendimento non supervisionato

Dato un training set D\mathcal{D} composto da soli input xx, senza alcun target, l’obiettivo è apprendere una funzione ff dell’input che ne fornisca una trasformazione utile (come una rappresentazione più compatta) o un raggruppamento, senza alcun output atteso specificato a priori.

I due problemi tipici sono:

Dimensionality reduction. Quattro variabili X, Y, W, Z descrivono ogni punto, ma W è costante (inutile) e i dati giacciono su un piano bidimensionale immerso nello spazio 3D: due sole coordinate bastano a rappresentarli senza perdere informazione. (Slide del corso, lezione 1.)

Un esempio concreto di dimensionality reduction: un dataset di pesci descritti da due caratteristiche, altezza e lunghezza. Riportando i punti sul piano di queste due variabili, si scopre una correlazione molto forte: è estremamente raro trovare pesci molto lunghi e sottili oppure molto corti e larghi. Non ha quindi senso conservare entrambe le variabili: si può calcolare un’unica variabile, la “taglia” del pesce, che rappresenta in modo più generale la sua dimensione, risparmiando risorse di memorizzazione senza perdere informazione sostanziale.

Tra le tecniche: K-means, self-organizing maps, principal component analysis (PCA). Il corso non coprirà estesamente questo paradigma, ma tratterà alcuni aspetti della dimensionality reduction, perché si vedrà che è molto importante per migliorare le prestazioni dei modelli di classificazione.

In parole semplici: qui nessuno dice al modello che cosa cercare: gli si danno solo i dati grezzi e lui deve trovare da solo una struttura, raggruppando i punti simili (clustering) o scoprendo che molte variabili sono ridondanti e possono essere riassunte in poche (dimensionality reduction).

3.3 Apprendimento per rinforzo#

L’intuizione viene dall’addestramento degli animali. Un criceto in un labirinto riceve un premio (un dolcetto) quando raggiunge l’obiettivo e una punizione (una lieve scossa) quando compie l’azione sbagliata: con l’esperienza impara quali azioni portano più frequentemente a ricompense positive e quali a ricompense negative da evitare. Questo segnale di premio o punizione si chiama, appunto, rinforzo.

Agentesceglie le azioniAmbienterisponde e premiaazionenuovo stato + rewardnessuno indica l'azione corretta: il reward valuta solo l'esito

Due elementi distinguono questo paradigma dall’apprendimento supervisionato:

  1. Il feedback è più debole. Non c’è un insieme di esempi che mostrano “questo è l’input e questa è la cosa ottima da fare”: nessuno indica l’azione corretta. C’è però comunque un feedback, il reward, un segnale che può essere positivo o negativo e che valuta l’esito delle azioni compiute.
  2. Il problema è sequenziale. In genere il compito non si risolve con una singola azione o decisione: occorre combinare più azioni per raggiungere l’obiettivo finale. Negli scacchi, ad esempio, il reward arriva solo alla fine, vincendo la partita, ma per arrivarci servono molte mosse intermedie, alcune delle quali (come un sacrificio) possono sembrare svantaggiose nel breve termine. Imparare a perseguire un obiettivo di lungo termine, anche a costo di rinunciare ad azioni che appaiono ottime nel breve, è estremamente difficile.
Apprendimento per rinforzo

Paradigma in cui un agente interagisce con un ambiente compiendo azioni e ricevendo in risposta ricompense (reward) positive o negative; l’obiettivo è apprendere la policy ottima, cioè la strategia di scelta delle azioni che massimizza la ricompensa accumulata nel tempo.

I problemi di riferimento sono i processi decisionali di Markov (Markov Decision Process, MDP), le loro varianti parzialmente osservabili (POMDP) e i giochi stocastici (stochastic games); tra le tecniche: Q-learning, SARSA, fitted Q-iteration. Questi temi verranno trattati in grande dettaglio nella parte finale del corso.

In parole semplici: l’agente impara per tentativi ed errori, come un animale addestrato con premi e punizioni: nessuno gli dice qual è la mossa giusta, ma ogni tanto riceve un voto sul risultato. La difficoltà in più è che il premio può arrivare solo dopo una lunga catena di azioni, e bisogna capire quali di esse lo hanno davvero meritato.

3.4 I tre paradigmi a confronto#

La tabella riassume le differenze essenziali, che dipendono tutte dal tipo di esperienza disponibile.

Paradigma Esperienza disponibile Obiettivo Problemi tipici Tecniche tipiche
Supervisionato Coppie input-output x,t\langle x, t \rangle Approssimare la funzione incognita f:xtf: x \mapsto t Classificazione, regressione, stima di probabilità Modelli lineari, reti neurali, SVM, decision tree
Non supervisionato Soli input xx, nessun target Scoprire pattern e rappresentazioni efficienti dei dati Clustering, dimensionality reduction K-means, self-organizing maps, PCA
Per rinforzo Interazione con un ambiente, reward ritardati Apprendere la policy ottima MDP, POMDP, giochi stocastici Q-learning, SARSA, fitted Q-iteration

La scelta del paradigma discende direttamente dalla natura del problema e dei dati: se sono disponibili (o ottenibili) esempi etichettati con l’output atteso, il problema è supervisionato; se ci sono solo dati grezzi da esplorare, è non supervisionato; se il sistema deve imparare interagendo con un ambiente e ricevendo feedback ritardati su sequenze di decisioni, è un problema di rinforzo. Saper riconoscere il paradigma giusto è uno degli obiettivi dichiarati del corso.

4. Il machine learning tra le discipline#

Il machine learning non è una scienza isolata. La comunità scientifica del ML raccoglie anime provenienti da campi diversi, e le connessioni principali sono:

Intelligenza artificialeMachine learningReti neuraliDeep learningAI generativa · LLMciò che il pubblico chiama “AI”

Va inoltre tenuta presente la gerarchia dei campi: il machine learning è un sottoinsieme dell’intelligenza artificiale, che studia anche altri problemi e altre tecniche. All’interno del ML, le reti neurali sono una famiglia di tecniche; il deep learning è costruito sulle reti neurali; e ciò che oggi il grande pubblico chiama “AI”, cioè l’AI generativa e in particolare i modelli linguistici, è un’area molto sottile dentro questa catena di inclusioni. Da studiosi del campo è importante non perdere il quadro d’insieme: conoscere i principi e le connessioni tra le discipline permette di capire i trend emergenti invece di limitarsi a inseguirli.

Le applicazioni sono ovunque: analisi di immagini mediche, guida autonoma, sistemi finanziari, videogiochi (il ML nei giochi non nasce con l’ondata recente: già nei primi anni 2000 giochi di guida commerciali ne usavano forme semplici), generazione e comprensione del testo, pubblicità e raccomandazione.

In parole semplici: il ML è il punto d’incontro tra statistica, informatica e ottimizzazione, ed è solo una parte dell’AI. I modelli linguistici oggi famosi ne sono una fetta piccolissima: capire i fondamenti serve a non confondere l’ultima moda con l’intero campo.

5. Mappa del corso#

5.1 Obiettivi formativi#

Il corso è una classe fondazionale: non si concentra sulle tecniche più recenti né sulla scrittura di codice, ma sulla comprensione dei principi alla base dei modelli. Gli obiettivi sono:

5.2 Argomenti trattati#

Il corso si articola in due parti: una prima parte sull’apprendimento supervisionato (circa il 60% del tempo) e una seconda sull’apprendimento per rinforzo (circa il 40%). Gli argomenti sono:

5.3 Prerequisiti e confini del corso#

I prerequisiti attesi sono:

Per un ripasso, i capitoli 1 e 2 con le appendici B, C, E del testo di Bishop (“Pattern Recognition and Machine Learning”) e il capitolo 1 di Murphy (“Probabilistic Machine Learning: An Introduction”) sono ottimi punti di partenza. I riferimenti principali del corso sono Bishop per la parte supervisionata e Sutton-Barto (“Reinforcement Learning: an Introduction”) per la parte di rinforzo, con Hastie-Tibshirani-Friedman e Mitchell come testi complementari.

Un corso di questa dimensione non può coprire tutto il machine learning: restano fuori, tra gli altri, il deep learning, il data mining e i temi di incertezza nell’AI, trattati in corsi dedicati. Alcune sovrapposizioni con altri corsi sono inevitabili, perché ogni corso deve essere autocontenuto.

5.4 Verso il prossimo capitolo#

Il capitolo successivo formalizza il paradigma supervisionato. In anteprima: dato un dataset D\mathcal{D} di coppie x,t\langle x, t \rangle, si cerca un’approssimazione della funzione incognita ff che mappa xx in tt; progettare un algoritmo di apprendimento richiede tre ingredienti, un hypothesis space (la famiglia di funzioni tra cui cercare), una loss function (la misura dell’errore di approssimazione) e un algoritmo di ottimizzazione. La difficoltà centrale, che motiverà buona parte del corso, è che la loss “vera”, cioè la distanza dalla funzione ff, non è calcolabile perché ff è ignota: si può solo costruire una loss a partire dai dati disponibili, e ottimizzare quella non garantisce di avvicinarsi davvero a ff.

Glossario#

Termine Definizione
Machine learning Sottocampo dell’AI in cui la conoscenza proviene da esperienza e induzione, invece che da programmazione esplicita.
Task (TT) Il compito che il programma deve svolgere (classificare, predire, giocare).
Misura di performance (PP) Metrica quantitativa della qualità con cui il task viene svolto.
Esperienza (EE) Informazione da cui si apprende: dati etichettati, dati grezzi o interazioni con un ambiente.
Induzione Inferenza dal particolare (esempi finiti) al generale (regola per casi nuovi), senza garanzia di correttezza.
Generalizzazione Capacità di funzionare bene su dati mai visti in addestramento.
Apprendimento supervisionato Apprendimento, da coppie input-output x,t\langle x, t \rangle, di un’approssimazione della funzione che le lega.
Classificazione Problema supervisionato con target discreto (un’etichetta).
Regressione Problema supervisionato con target numerico continuo.
Stima di probabilità Problema supervisionato con target in [0,1][0,1]; ibrido tra regressione e classificazione.
Training set Insieme di esempi usati per addestrare il modello.
Apprendimento non supervisionato Apprendimento di pattern e rappresentazioni efficienti da soli input, senza target.
Clustering Raggruppamento dei dati in insiemi di punti simili, senza etichette a priori.
Dimensionality reduction Rappresentazione dei dati con meno variabili, preservando l’informazione rilevante.
Apprendimento per rinforzo Apprendimento della policy ottima tramite interazione con un ambiente e reward.
Reward Feedback positivo o negativo sull’esito delle azioni dell’agente.
Policy Strategia con cui l’agente sceglie le azioni; l’obiettivo del rinforzo è apprendere quella ottima.
MDP Markov Decision Process: modello formale delle decisioni sequenziali nel reinforcement learning.
Overfitting Adattamento eccessivo ai dati di addestramento, con scarsa generalizzazione.
Underfitting Modello troppo semplice per catturare la relazione presente nei dati.
Hypothesis space Famiglia di funzioni entro cui si cerca l’approssimazione della funzione incognita.
Loss function Misura dell’errore di approssimazione; guida l’ottimizzazione dei parametri.
Deep learning Tecniche basate su reti neurali profonde; sottoinsieme delle reti neurali, a loro volta sottoinsieme del ML.

Dispensa Machine Learning · Politecnico di Milano