MACHINE LEARNING
Anno accademico 2025/2026 - Docente: GIOVANNI MARIA FARINELLARisultati di apprendimento attesi
Conoscenza e capacità di comprensione (knowledge and understanding): lo studente acquisirà le conoscenze e i concetti alla base dei sistemi di apprendimento automatico ed in particolare le metodologie base che permettono di creare sistemi di classificazione/regressione a partire da dati eterogenei Capacità di applicare conoscenza e comprensione (applying knowledge and understanding): lo studente acquisirà le competenze pratiche di realizzazione di sistemi di apprendimento automatico attraverso attività laboratoriale Autonomia di giudizio (making judgements): Attraverso gli homework e le correzioni in classe degli stessi lo studente sarà in grado di elaborare autonomamente soluzioni in grado di risolvere i problemi di base che potrebbero presentarsi nel mondo del lavoro Abilità comunicative (communication skills): lo studente acquisirà le necessarie abilità comunicative e di appropriatezza espressiva nell'impiego del linguaggio tecnico nell'ambito generale dei sistemi di apprendimento automatico. Capacità di apprendimento (learning skills): Lo scopo del corso è quello di fornire un'approfondita introduzione delle principali teorie e tecniche algoritmiche del Learning Machine. A tal proposito, saranno presentati modelli fondamentali per la classificazione e la regressione, e le architetture basate su reti neurali (es. Deep Learning). Saranno discusse le metodologie per realizzare e ottimizzare gli algoritmi di apprendimento automatico, e quelle utili alla valutazione delle performance dei sistemi di Machine Learning. Si utilizzeranno librerie software open source in linguaggio Python per mettere in pratica le nozioni teoriche presentate nel corso. In particolare, il corso si propone di formare studenti che: - comprendano concetti chiave alla base delle tecniche di Machine Learning;
- conoscano una ampia gamma di algoritmi di apprendimento per risolvere problemi classici del Machine Learning (classificazione e regressione);
- comprendano come effettuare il design e il tuning degli algoritmi al fine di applicare gli stessi a nuovi set di dati;
- siano in grado di eseguire la valutazione degli algoritmi di Machine Learning in modo da poter selezionare il modello migliore;
- saranno in grado di sviluppare nuovi algoritmi di Machine Learning in Python o di adattare algoritmi esistenti a nuovi casi d’uso.
Modalità di svolgimento dell'insegnamento
Le lezioni sono tenute in aula con l'ausilio di slide, messe a disposizione degli studenti. Le slide non sostituiscono i testi di riferimento, ma, oltre che agevolare la comprensione della lezione, forniscono un dettaglio puntuale sul programma svolto. Le lezioni frontali teoriche sono intervallate da esercitazioni pratiche in linguaggio python, svolte nella stessa aula di lezione. Gli studenti sono invitati a formare piccoli gruppi di lavoro (massimo 3 persone) per lo svolgimento delle esercitazioni proposte e del progetto finale.
Qualora l'insegnamento venisse impartito in modalità mista o a distanza potranno essere introdotte le necessarie variazioni rispetto a quanto dichiarato, al fine di rispettare il programma previsto e riportato nel syllabus. La valutazione dell'apprendimento può essere effettuata anche on-line, qualora le condizioni lo richiedano.
Il materiale didattico sarà reperibile sul sito del corso:
Prerequisiti richiesti
Si utilizzeranno nozioni di base di analisi matematica, matematica discreta, fondamenti di informatica, programmazione, interazione e multimedialità, algoritmi.
Frequenza lezioni
Contenuti del corso
- Introduction to Machine Learning - Basic Concepts [1,2,3,4,7]
- Decision trees [1,2,3,4]
- Random Forests [1]
- Linear/Logistic Regression [1, 2, 3, 4]
- Polynomial Linear/Logistic Regression [1, 2, 3, 4]
- Perceptron [4,6]
- SoftMax [4,5]
- Kernel Machines - SVM [4]
- Combining Methods [1,2,3,4]
Testi di riferimento
- Materiale fornito dal docente
- R. O. Duda, P. E. Hart, D. G. Stork, "Pattern Classification", Wiley, 2000
- C. Bishop, “Pattern Recognition and Machine Learning", Springer, 2006
- E. Alpaydin, “Introduction to Machine Learning”, MIT Press, 2014
- I. Goodfellow, Y. Bengio and A. Courville, "Deep Learning", MIT Press, 2016
- Raul Rojas, Neural Networks - A Systematic Introduction, Springer, 1996
- M. P. Deisenroth, A A. Faisal, and C. Soon On, Mathematics for Machine Learning, MIT Press, 2019
Programmazione del corso
| Argomenti | Riferimenti testi | |
|---|---|---|
| 1 | Introduction to Machine Learning - Basic Concepts | [1,2,3,4,7] |
| 2 | Decision trees | [1,2,3,4] |
| 3 | Random Forests | [1] |
| 4 | Linear/Logistic Regression | [1, 2, 3, 4] |
| 5 | Polynomial Linear/Logistic Regression | [1, 2, 3, 4] |
| 6 | Perceptron | [4,6] |
| 7 | SoftMax | [4,5] |
| 8 | Kernel Machines - SVM | [4] |
| 9 | Combining Methods | [1,2,3,4] |
Verifica dell'apprendimento
Modalità di verifica dell'apprendimento
L'esame finale consiste in una prova scritta e la realizzazione di un progetto (che include relazione) concordato con il docente.
La prova scritta è costituita, di norma, da tre domande a risposta aperta. La prenotazione per la partecipazione alla prova scritta è obbligatoria.
Il voto finale è ottenuto dalla media dei voti della prova scritta e del progetto.
Prova in Itinere: Non prevista
Salvo diversa comunicazione:
- l'esame scritto si svolge nei giorni previsti nel calendario ufficiale del Corso di Laurea
- il progetto, insieme alla relazione, deve essere consegnato entro una settimana dallo scritto
La verifica dell’apprendimento potrà essere effettuata anche per via telematica, qualora le condizioni lo dovessero richiedere.
Gli studenti con disabilità e/o DSA dovranno contattare con sufficiente anticipo rispetto alla data dell'esame il docente, il referente CInAP del DMI (prof.ssa Daniele) e il CInAP per comunicare che intendono sostenere l'esame fruendo delle opportune misure compensative.
La votazione è espressa in trentesimi secondo il seguente schema:
Voto 29-30 e lode
Lo studente ha una conoscenza approfondita dei concetti fondamentali e i principali algoritmi di Machine Learning. Riesce a formalizzare problemi di Machine Learning, individuando gli algoritmi e le tecniche più idonee alla risoluzione dei problemi considerati in maniera autonoma e con spirito critico. Ha ottime capacità comunicative e proprietà di linguaggio.
Voto 26-28
Lo studente ha una buona conoscenza dei concetti fondamentali e i principali algoritmi di Machine Learning. Riesce a formalizzare problemi di Machine Learning, individuando degli algoritmi e tecniche idonee alla risoluzione dei problemi considerati. Ha buone capacità comunicative e proprietà di linguaggio.
Voto 22-25
Lo studente ha una discreta conoscenza dei concetti fondamentali e i principali algoritmi di Machine Learning. Riesce a formalizzare problemi di Machine Learning, seppure non sempre in maniera esaustiva, individuando degli algoritmi e tecniche idonee alla risoluzione del problema considerato. Ha discrete capacità comunicative e proprietà di linguaggio.
Voto 18-21
Lo studente ha la minima conoscenza dei concetti fondamentali e i principali algoritmi di Machine Learning. Ha una modesta capacità di formalizzare problemi di Machine Learning, e di individuare degli algoritmi e tecniche idonee alla risoluzione dei problemi considerati. Ha sufficienti capacità comunicative, seppure non sempre una appropriata proprietà di linguaggio.
Esame non superato
Lo studente non possiede la conoscenza minima richiesta dei contenuti principali dell’insegnamento. La capacità di utilizzare il linguaggio specifico è scarsissima o nulla e non è in grado di applicare autonomamente le conoscenze acquisite.
Esempi di domande e/o esercizi frequenti
- Si discuta la regressione logistica
- Si definisca il problema dell'overfitting e si discuta la regolarizzazione
- Si discuta il classificatore Softmax