Viaggio nel Machine Learning: Fondamenti, Reti Neurali e Oltre
- Autori: Andrew Ng e Tengyu Ma
- Titolo Originale: CS229 Lecture Notes
Le note del corso CS229 di Andrew Ng e Tengyu Ma offrono un compendio straordinariamente completo dei principi e degli algoritmi fondamentali del machine learning. Attraversando diverse aree, dall’apprendimento supervisionato ai modelli generativi, fino al deep learning e all’apprendimento per rinforzo, questo documento è una vera e propria bussola per chiunque voglia comprendere a fondo come le macchine “imparano” dal mondo che le circonda. Non si tratta di una semplice raccolta di definizioni, ma di un percorso guidato che svela la logica matematica e le intuizioni pratiche dietro ogni concetto, trasformando idee complesse in strumenti comprensibili e applicabili.
1. Apprendimento Supervisionato: L’Arte di Predire con i Dati Etichettati
L’apprendimento supervisionato è il punto di partenza, dove un algoritmo impara a mappare gli input a output desiderati basandosi su esempi etichettati. È un po’ come insegnare a un bambino mostrando coppie di domande e risposte corrette.
Regressione Lineare: La Linea Rette che Predice il Futuro
Il percorso inizia con la regressione lineare, un metodo per prevedere valori continui (come i prezzi delle case) basandosi su variabili di input. Pensate a un grafico dove le dimensioni delle case sono sull’asse X e i prezzi sull’asse Y; l’algoritmo cerca la linea retta che meglio si adatta a questi punti. Due algoritmi chiave emergono:
- LMS (Least Mean Squares): Un processo iterativo che aggiusta i parametri del modello (i “pesi”) ad ogni passo, cercando di ridurre l’errore tra la previsione e il valore reale. È come un musicista che accorda il suo strumento ascoltando attentamente ogni nota e facendo piccole correzioni.
- Normal Equations: Offre una soluzione diretta, calcolando i pesi ottimali con una singola operazione matematica, senza bisogno di iterazioni.
Le note mostrano come la regressione dei minimi quadrati possa essere giustificata anche attraverso un’interpretazione probabilistica, assumendo che gli errori siano distribuiti normalmente.
Classificazione e Regressione Logistica: Separare il Mondo in Categorie
Quando l’obiettivo è prevedere una categoria (ad esempio, spam o non-spam), entriamo nel campo della classificazione. Qui, la regressione logistica utilizza la funzione sigmoide per “comprimere” l’output tra 0 e 1, interpretandolo come una probabilità. Un valore vicino a 1 indica alta probabilità di appartenenza alla classe positiva.
Per scenari con più di due classi (ad esempio, classificare e-mail come spam, personali o di lavoro), la funzione softmax estende la logistica, fornendo una distribuzione di probabilità su tutte le classi. Il processo di apprendimento si basa sulla massimizzazione della verosimiglianza, spesso risolta tramite il gradient ascent o il metodo di Newton (Fisher scoring), che è più veloce ma più complesso.
Modelli Lineari Generalizzati (GLMs): Un Quadro Unificante
I GLM fungono da cappello concettuale, dimostrando come la regressione lineare e logistica siano casi particolari di una famiglia più ampia di modelli basati sulla famiglia esponenziale di distribuzioni. Questo framework permette di costruire modelli predittivi per tipi diversi di dati di output, assumendo una relazione lineare tra i parametri naturali della distribuzione e gli input.
Algoritmi di Apprendimento Generativo: Costruire il Modello del Mondo
A differenza degli algoritmi discriminativi (che imparano direttamente il confine di decisione), gli algoritmi generativi cercano di modellare la distribuzione dei dati per ogni classe. È come imparare prima come appare un “elefante” e come appare un “cane”, per poi classificare un nuovo animale confrontandolo con questi modelli.
- Gaussian Discriminant Analysis (GDA): Modella la distribuzione delle caratteristiche per ogni classe come una distribuzione normale multivariata.
- Naive Bayes: Un algoritmo sorprendentemente efficace, specialmente per la classificazione di testi (come i filtri anti-spam). Si basa sull’assunzione ingenua che le caratteristiche siano condizionalmente indipendenti data la classe. Le note introducono il concetto di Laplace smoothing per evitare probabilità nulle per eventi non osservati, una tecnica cruciale per la robustezza del modello.
Metodi Kernel e Support Vector Machines (SVMs): La Flessibilità delle Mappe di Feature
I metodi kernel introducono un’idea potente: trasformare dati linearmente inseparabili in spazi a dimensione superiore dove diventano separabili. Questo si fa attraverso una funzione di mappa di feature (φ), che proietta i dati in un nuovo spazio. L’“kernel trick” è l’intuizione che ci permette di operare in questo spazio ad alta dimensione senza dover calcolare esplicitamente le coordinate dei punti, ma solo i loro prodotti interni (similarity). La funzione kernel di Gauss ne è un esempio lampante, mappando implicitamente in uno spazio di feature a dimensione infinita.
Le Support Vector Machines (SVMs) sono algoritmi di classificazione che cercano il confine di decisione (iperpiano) che massimizza il margine (la distanza tra l’iperpiano e i punti più vicini di ciascuna classe). Questo approccio garantisce una classificazione più robusta. Le note approfondiscono i concetti di margini funzionali e geometrici, la formulazione del classificatore a margine ottimale tramite la dualità di Lagrange e le tecniche di regolarizzazione (con variabili di slack) per gestire casi non linearmente separabili o con outlier. L’algoritmo SMO (Sequential Minimal Optimization) è presentato come un metodo efficiente per risolvere il problema duale delle SVM.
2. Deep Learning: Il Potere delle Reti Neurali Complesse
Il deep learning rappresenta l’evoluzione dell’apprendimento supervisionato verso modelli non lineari estremamente complessi, ispirati vagamente alla struttura del cervello umano.
Modelli Non Lineari e Reti Neurali di Base: Costruire con i “Mattoncini Lego”
Una rete neurale può essere vista come una composizione di semplici “neuroni” o “moduli”. Un singolo neurone, ad esempio, può modellare una relazione non lineare con un “gomito” (come la funzione ReLU) per prevedere il prezzo delle case, assicurandosi che non siano mai negativi. L’idea è quella di “impilare” questi neuroni, creando strati che elaborano progressivamente l’informazione.
Funzioni di Attivazione e Modularità: Il Linguaggio delle Reti
Le funzioni di attivazione (come ReLU, sigmoid, tanh, GELU) introducono la non linearità essenziale nelle reti neurali. Senza di esse, una rete a più strati sarebbe equivalente a un singolo strato lineare. Le note spiegano come diverse funzioni di attivazione abbiano proprietà utili e come la modularità (costruire reti complesse da blocchi più piccoli come moltiplicazioni matriciali, connessioni residuali, normalizzazione) sia fondamentale nel deep learning moderno, similmente a come i “mattoncini Lego” possono costruire strutture intricate. Concetti come Layer Normalization (LN) sono introdotti per stabilizzare l’addestramento, rendendo il modello invariante alla scalatura dei parametri. Le Convolutional Layers (Reti Convoluzionali) sono fondamentali per l’elaborazione di immagini e testi, catturando pattern locali attraverso filtri condivisi.
Backpropagation: Il Cuore dell’Apprendimento
La backpropagation è l’algoritmo chiave che permette di addestrare efficientemente le reti neurali. È un’applicazione astuta della regola della catena del calcolo differenziale, che permette di calcolare i gradienti della funzione di costo rispetto a tutti i parametri del modello. Questo processo si divide in due fasi:
- Forward Pass: L’input attraversa la rete, calcolando gli output di ogni neurone (le “attivazioni”).
- Backward Pass: L’errore viene propagato all’indietro attraverso la rete, calcolando il contributo di ciascun peso all’errore totale. Questi gradienti vengono poi usati dagli ottimizzatori (come SGD o Mini-Batch SGD) per aggiustare i pesi.
La vettorizzazione è cruciale per l’efficienza computazionale, specialmente con le GPU, permettendo di elaborare più esempi di training in parallelo.
3. Generalizzazione e Regolarizzazione: Navigare la Complessità
Il cuore dell’apprendimento automatico non è solo adattarsi ai dati visti, ma estendere quella conoscenza a dati nuovi e non visti.
Il Compromesso Bias-Varianza: Trovare il Giusto Equilibrio
La generalizzazione misura quanto bene un modello addestrato si comporta su dati non visti. Questo introduce il concetto fondamentale del compromesso bias-varianza.
- Bias (errore di approssimazione): Rappresenta l’errore sistematico del modello, cioè quanto si discosta dalla verità la “migliore” previsione che il modello può fare. Un modello con alto bias è troppo semplice e sottostima i dati (underfitting).
- Varianza (errore di stima): Rappresenta la sensibilità del modello alle fluttuazioni nei dati di training. Un modello con alta varianza è troppo complesso e sovrastima i dati (overfitting), adattandosi eccessivamente al rumore nei dati di training.
Le note mostrano che l’errore di test totale può essere decomposto come somma di bias al quadrato e varianza. L’obiettivo è trovare un equilibrio, scegliendo un modello né troppo semplice né troppo complesso.
Il Fenomeno del “Double Descent”: Un’Inattesa Curva di Apprendimento
Contrariamente alla saggezza convenzionale (che predice che l’errore di test prima diminuisce e poi aumenta con la complessità del modello), il fenomeno del “double descent” rivela che, aumentando ulteriormente la complessità o la dimensione del dataset, l’errore di test può diminuire una seconda volta. Questo suggerisce che i modelli sovra-parametrizzati, tipici del deep learning, possono generalizzare meglio di quanto si pensasse, grazie a un effetto di regolarizzazione implicita degli ottimizzatori.
Regolarizzazione e Selezione del Modello: Strumenti per la Robustezza
La regolarizzazione è una tecnica essenziale per controllare la complessità del modello e prevenire l’overfitting. Si aggiunge un termine aggiuntivo alla funzione di costo che penalizza i modelli troppo complessi, spingendoli a essere più semplici.
- L2 Regularization (o weight decay): Penalizza i pesi grandi, incoraggiando modelli più “lisci”.
- L1 Regularization (o LASSO): Incoraggia la sparsità, portando alcuni pesi a zero, selezionando implicitamente le caratteristiche più importanti.
- Altre tecniche includono dropout e data augmentation.
La selezione del modello è il processo di scelta del modello migliore tra diverse opzioni (es. diversi gradi di polinomio, diversi parametri di regolarizzazione). Le note presentano la cross-validation, che permette di stimare le prestazioni di generalizzazione di un modello su dati non visti in modo più affidabile:
- Hold-out Cross-Validation: Divide il dataset in training set e validation set.
- K-fold Cross-Validation: Divide il dataset in k “fold”, addestrando il modello k volte su k-1 fold e validando sul fold rimanente.
- Leave-One-Out Cross-Validation: Un caso estremo del k-fold dove ogni fold contiene un solo esempio.
Infine, l’approccio bayesiano introduce una distribuzione a priori sui parametri del modello, che viene aggiornata con i dati per ottenere una distribuzione a posteriori. Questo permette di fare previsioni più robuste, incorporando l’incertezza e fungendo da forma di regolarizzazione naturale. La stima MAP (Maximum A Posteriori) è un compromesso tra la massimizzazione della verosimiglianza e la credenza a priori.
4. Apprendimento Non Supervisionato: Scoprire Strutture Nascoste
Nell’apprendimento non supervisionato, non abbiamo etichette e l’obiettivo è trovare pattern o strutture intrinseche nei dati. È come un archeologo che scopre reperti e cerca di raggrupparli per affinità, senza sapere cosa rappresentano inizialmente.
Clustering e K-means: Raggruppare i Dati Simili
Il K-means è un algoritmo di clustering che raggruppa i dati in k insiemi (cluster). Funziona iterativamente:
- Inizializza k centroidi (punti centrali) casualmente.
- Assegna ogni punto dati al centroide più vicino.
- Aggiorna la posizione di ogni centroide alla media dei punti assegnati.
Questo processo si ripete fino alla convergenza. Le note spiegano che K-means è un algoritmo di discesa coordinata sulla funzione di distorsione, sebbene sia suscettibile a minimi locali.
Algoritmi EM e Autoencoder Variazionali: Gestire Variabili Latenti
Gli algoritmi EM (Expectation-Maximization) sono una tecnica potente per stimare i parametri di modelli probabilistici con variabili latenti (nascoste/non osservate). Un esempio classico è la miscela di Gaussiane, dove si assume che i dati provengano da diverse distribuzioni Gaussiane, ma non si sa quale Gaussiana abbia generato ogni punto. L’EM alterna due passi:
- E-step (Expectation): Stima la distribuzione delle variabili latenti basandosi sui parametri attuali.
- M-step (Maximization): Aggiorna i parametri del modello per massimizzare la verosimiglianza, trattando le distribuzioni latenti stimate come “vere”.
Le note introducono il concetto di Evidenza Lower Bound (ELBO), una funzione che l’algoritmo EM cerca di massimizzare monotonicamente.
I Variational Autoencoder (VAE) estendono gli algoritmi EM a modelli più complessi parametrizzati da reti neurali, gestendo variabili latenti continue e ad alta dimensione. La “re-parametrization trick” è una tecnica innovativa che permette di calcolare i gradienti rispetto ai parametri della distribuzione latente, facilitando l’ottimizzazione.
Analisi delle Componenti Principali (PCA) e Indipendenti (ICA): Ridurre la Dimensionalità
- PCA (Principal Components Analysis): È una tecnica di riduzione della dimensionalità che trova un sottospazio in cui i dati si trovano approssimativamente. Individua le direzioni di massima varianza (le componenti principali) nei dati, permettendo di rappresentarli con meno dimensioni mantenendo la maggior parte dell’informazione. Le applicazioni includono la compressione, la visualizzazione dei dati e la riduzione del rumore.
- ICA (Independent Components Analysis): A differenza della PCA (che cerca direzioni ortogonali), l’ICA cerca direzioni che massimizzano l’indipendenza statistica delle componenti. Il problema del “cocktail party” (separare le voci individuali da una registrazione mista) è un esempio paradigmatico. Le note discutono le ambiguità intrinseche nell’ICA (permutazione e scalatura delle fonti) e come la non-gaussianità delle fonti sia cruciale per il successo dell’algoritmo.
Apprendimento Self-Supervised e Foundation Models: Il Nuovo Paradigma
L’apprendimento self-supervised ha rivoluzionato il campo, permettendo ai modelli di imparare da enormi quantità di dati non etichettati, generando le proprie “supervisioni” da parti degli input stessi. Questo ha dato origine ai Foundation Models (come BERT e GPT-3), modelli pre-addestrati su dati massivi e adattabili a un’ampia gamma di compiti a valle con poca o nessuna etichettatura (come il zero-shot learning o il few-shot learning).
Il processo si articola in due fasi:
- Pretraining: Un modello di grandi dimensioni impara rappresentazioni generali dai dati non etichettati (es. immagini o testo), catturando la struttura intrinseca dei dati.
- Contrastive Learning: Incoraggia il modello a produrre rappresentazioni simili per esempi “simili” (es. diverse visualizzazioni della stessa immagine) e rappresentazioni distinte per esempi “diversi”.
- Large Language Models (LLMs): Modelli come i Transformer sono pre-addestrati su enormi corpus di testo per prevedere la parola successiva, imparando a generare testo coerente e contestualmente rilevante. La nozione di in-context learning permette al modello di apprendere nuovi compiti da pochi esempi presentati nel prompt stesso.
- Adaptation: Il modello pre-addestrato viene “sintonizzato” (finetuning) o utilizzato con una “linear probe” per un compito specifico a valle, anche con pochi dati etichettati.
5. Apprendimento per Rinforzo e Controllo: Imparare dalle Conseguenze
L’apprendimento per rinforzo (RL) si discosta dall’apprendimento supervisionato non fornendo etichette esplicite, ma solo un segnale di ricompensa che indica quanto bene l’agente sta performando. L’obiettivo è imparare una sequenza di azioni che massimizzino la ricompensa totale nel tempo. È come insegnare a un robot a camminare, non dicendogli come muovere ogni passo, ma premiandolo quando si muove in avanti e penalizzandolo quando cade.
Processi Decisionali di Markov (MDPs): La Formalizzazione dell’Interazione
I Processi Decisionali di Markov (MDPs) sono il framework matematico per modellare i problemi di RL. Definiscono un ambiente con:
- Stati (S): Tutte le configurazioni possibili dell’ambiente (es. posizione di un elicottero).
- Azioni (A): Le scelte che l’agente può fare (es. comandi dell’elicottero).
- Probabilità di Transizione (Psa): La probabilità di passare da uno stato s a uno stato s’ prendendo l’azione a.
- Ricompensa (R): Un valore numerico ricevuto dopo aver eseguito un’azione in uno stato.
- Fattore di Sconto (γ): Pondera le ricompense future rispetto a quelle immediate.
Una policy (π) è una funzione che mappa gli stati alle azioni. L’obiettivo è trovare la policy ottimale che massimizza la somma attesa delle ricompense scontate, definita dalla funzione di valore. Le equazioni di Bellman sono il cuore di questi problemi, definendo la relazione ricorsiva tra il valore di uno stato e i valori degli stati futuri.
Iterazione del Valore e della Policy: Soluzioni per i MDPs
Le note presentano due algoritmi classici per risolvere i MDPs a stati finiti:
- Value Iteration: Aggiorna iterativamente la funzione di valore di ogni stato fino alla convergenza, quindi estrae la policy ottimale.
- Policy Iteration: Alterna tra la valutazione della funzione di valore per una data policy e l’aggiornamento della policy stessa per renderla “greedy” rispetto alla funzione di valore stimata.
LQR, DDP e LQG: Controllo Ottimale in Scenari Complessi
Queste tecniche estendono i concetti di controllo a problemi più specifici e complessi:
- Linear Quadratic Regulation (LQR): Un caso speciale di MDPs a orizzonte finito con dinamiche lineari e ricompense quadratiche, che consente una soluzione esatta e trattabile. È ampiamente utilizzato in robotica. Una scoperta notevole è che la policy ottimale non dipende dal rumore del sistema.
- Differential Dynamic Programming (DDP): Gestisce dinamiche non lineari linearizzando il sistema attorno a una traiettoria nominale, permettendo di applicare i principi LQR.
- Linear Quadratic Gaussian (LQG): Estende l’LQR ai MDPs Parzialmente Osservabili (POMDPs), dove lo stato del sistema non è completamente noto ma viene solo osservato attraverso misurazioni rumorose. Il Filtro di Kalman è un algoritmo fondamentale per stimare lo stato reale del sistema basandosi sulle osservazioni.
Policy Gradient (REINFORCE): Apprendimento Diretto della Policy
L’algoritmo REINFORCE è un metodo model-free per l’apprendimento per rinforzo, il che significa che non richiede la conoscenza esplicita delle probabilità di transizione o della funzione di ricompensa dell’ambiente. Si concentra sull’apprendimento di una policy randomizzata (che assegna probabilità alle azioni) e ne ottimizza direttamente i parametri tramite gradient ascent. L’idea è quella di aumentare la probabilità delle traiettorie che portano a ricompense elevate. L’introduzione di una baseline aiuta a ridurre la varianza dell’estimatore del gradiente, rendendo l’algoritmo più efficiente.
Conclusione: Un Fondamento per l’Innovazione
Le note del corso CS229 offrono un’esplorazione dettagliata e rigorosa dei principi che sottostanno all’ampio spettro degli algoritmi di machine learning. Dalla linearità delle regressioni ai sofisticati meccanismi delle reti neurali, passando per le strategie di generalizzazione e le complessità dell’apprendimento per rinforzo, il documento costituisce un pilastro formativo. Sottolinea l’importanza di una solida base matematica e di un’intuizione chiara per affrontare le sfide del mondo reale. Per studenti, ricercatori e professionisti, queste note sono una risorsa inestimabile per acquisire una comprensione olistica e approfondita del machine learning, gettando le basi per future innovazioni nel campo dell’intelligenza artificiale.
Ti potrebbe anche interessare
Data Science: Infrastrutture Scalabili con Docker e Jupyter
Docker per la Data Science: Creazione di Infrastrutture Scalabili con...
IA Generativa Responsabile: Guida per Leader e Product Manager
Uso Responsabile dell'IA Generativa: Guida per Product Manager e Leader...
IA per PMI: Guida Efficace all’Implementazione
INTELLIGENZA ARTIFICIALE E DIGITALIZZAZIONE NELLE PMI: UN QUADRO PER L'IMPLEMENTAZIONE...