MACHINE LEARNING M - Z

Anno accademico 2024/2025 - Docente: SIMONE PALAZZO

Risultati di apprendimento attesi

Conoscenza e Capacità di Comprensione

Questo corso fornisce una conoscenza di base delle tecniche e algoritmi di Machine Learning, con un focus particolare su modelli di regressione, classificazione e apprendimento non supervisionato. Gli studenti impareranno a valutare le prestazioni dei modelli attraverso metriche di errore e tecniche di validazione, affrontando tematiche come overfitting e il tradeoff bias-varianza. Il corso esplora anche metodi di regolarizzazione, algoritmi di ensemble come bagging e boosting, e le reti neurali.

Conoscenze Applicate e Capacità di Comprensione

Il corso include esempi pratici ed esercizi che permetteranno agli studenti di applicare metodi di Machine Learning a problemi reali, utilizzando strumenti software comunemente usati nel settore quali scikit-learn. Gli studenti impareranno a progettare e implementare modelli di Machine Learning, gestire il caricamento e il preprocessamento dei dati, e validarne le prestazioni tramite metriche standard.

Autonomia di Giudizio

Gli studenti svilupperanno la capacità di valutare le prestazioni dei modelli di Machine Learning, identificare e mitigare problemi di overfitting e bias, e scegliere tra diversi modelli e tecniche di ottimizzazione in base al contesto del problema.

Abilità Comunicative

Gli studenti acquisiranno la capacità di comunicare in modo efficace i risultati delle loro analisi e modellazioni, sia in forma scritta che orale. Saranno in grado di presentare i risultati delle loro ricerche e progetti a un pubblico tecnico e non tecnico, utilizzando un linguaggio appropriato e supportando le loro argomentazioni con dati e visualizzazioni pertinenti.

Capacità di Apprendimento

Il corso incoraggerà gli studenti a sviluppare un approccio critico e autonomo all'apprendimento, stimolando la curiosità verso le nuove tecnologie e tendenze nel campo del Machine Learning. Gli studenti saranno in grado di continuare ad apprendere in modo indipendente, utilizzando risorse accademiche e professionali per aggiornarsi sulle ultime innovazioni e tecniche nel settore.

Modalità di svolgimento dell'insegnamento

-  Lezioni frontali, per fornire conoscenze teoriche e metodologiche della materia;

-  Esercitazioni pratiche, per sviluppare competenze di “problem solving” e applicare la metodologia di progettazione;

-  Laboratori, per apprendere e testare l’utilizzo degli strumenti correlati.

-  Qualora l’insegnamento fosse erogato in modalità mista o a distanza, potrebbe essere necessario introdurre modifiche rispetto a quanto sopra.

Prerequisiti richiesti

 È richiesta una conoscenza preliminare di programmazione e i fondamenti di algebra lineare e analisi matematica.

Frequenza lezioni

Fortemente consigliata

Contenuti del corso

1.     Concetti di base del machine learning

1.1.         Modelli e parametri

1.2.         Modalità di apprendimento (supervised, unsupervised, self-supervised, reinforcement learning)

1.3.        Valutazione delle prestazioni (precision, recall, F1-score, Curva ROC e AUC, MAE, MSE, Cross-validation e overfitting, Bias-variance trade-off)

 2.     Apprendimento supervisionato

2.1.         Regressione lineare

2.2.         Regolarizzazione

2.3.         Classificazione lineare e non-lineare

2.4.         Suppor vector machines

2.5.         Alberi decisionali, bagging and boosting

2.6.         Classificatori non-parametrici

2.7.         Reti neurali

 

3.     Apprendimento non supervisionato

3.1.         Clustering

3.2.         Riduzione della dimensionalità

3.3.         Cenni a tecniche di self-supervised, constrastive, semi-supervised learning

4.     Laboratorio di machine learning con Python

4.1.         Sintassi, tipi di dato, strutture di controllo, classi

4.2.         Librerie per il machine learning

Testi di riferimento

Materiale di studio fornito dai docenti.

Programmazione del corso

 ArgomentiRiferimenti testi
1Concetti di base
2Laboratorio di Python: concetti  base
3Regressione lineare e ottimizzazione
4Laboratorio sulla regressione lineare
5Valutazione delle prestazioni
6Laboratorio sulla valutazione delle prestazioni
7Regolarizzazione
8Laboratorio sulla regolarizzazione
9Classificazione
10Laboratorio sulla classificazione
11PCA
12Laboratorio sulla PCA
13Apprendimento non supervisionato
14Laboratorio su apprendimento non supervisionato
15Alberi decisionali e bagging/boosting
16Laboratorio su alberi decisionali e bagging/boosting
17Reti Neurali
18Laboratorio sulle reti neurali

Verifica dell'apprendimento

Modalità di verifica dell'apprendimento

Progetto individuale su tematiche proposte dai docenti, da svolgere a casa.

Esame orale con discussione del progetto e domande di teoria.

Esempi di domande e/o esercizi frequenti

- Spiega il trade-off bias-variance e come influenza la capacità di generalizzazione di un modello di machine learning.
- Descrivi il metodo dei minimi quadrati e come viene utilizzato per stimare i parametri di un modello di regressione lineare.
- Qual è la differenza tra precision e recall? In quali scenari uno potrebbe essere più importante dell'altro?
- Confronta Ridge regression e LASSO, specificando quando sarebbe preferibile utilizzare uno rispetto all'altro.
- In che modo il kernel trick estende le capacità degli SVM per risolvere problemi non linearmente separabili?
- Come funziona l'algoritmo PCA per la riduzione della dimensionalità e quali sono i suoi limiti?
- Spiega come funziona un algoritmo di boosting come AdaBoost e quali sono i suoi vantaggi rispetto ai singoli alberi decisionali.
- Spiega la backpropagation and il suo ruolo nell'allenamento delle reti neurali
- Spiega il ruolo delle funzioni di attivazione in una rete neurale

ENGLISH VERSION