BERGAMO
Dati Generali
Periodo di attività
Syllabus
Obiettivi Formativi
Le esercitazioni consentiranno agli studenti e alle studentesse di implementare modelli di ottimizzazione e semplici algoritmi in ambiente Python e di applicarli all'analisi di dati e alla risoluzione di problemi decisionali di interesse applicativo.
Al termine del corso gli studenti e le studentesse saranno in grado di:
1. Formulare problemi decisionali come modelli di ottimizzazione matematica, identificando variabili decisionali, funzione obiettivo e vincoli.
2. Comprendere i principi fondamentali dell'ottimizzazione lineare e non lineare e applicarli alla modellazione e alla risoluzione di problemi di base in ambito Data Science.
3. Riconoscere il ruolo dell'ottimizzazione nei principali metodi di apprendimento automatico, con particolare riferimento a problemi di regressione, classificazione e clustering.
4. Implementare modelli di ottimizzazione e semplici algoritmi utilizzando Python e le principali librerie per l'ottimizzazione.
5. Analizzare e interpretare le soluzioni ottenute, valutandone la qualità e la coerenza rispetto al problema decisionale e ai dati disponibili.
6. Applicare tecniche di ottimizzazione a casi di studio e dataset reali, utilizzando strumenti computazionali a supporto dell'analisi dei dati e dei processi decisionali.
Prerequisiti
Metodi didattici
Il corso si articolerà in lezioni frontali, esercitazioni e attività di laboratorio, con lo svolgimento di esempi applicativi ed esercizi finalizzati alla modellazione e alla risoluzione di problemi di ottimizzazione.
Parte delle attività si svolgerà presso il laboratorio informatico, dove gli studenti e le studentesse implementeranno in ambiente Python modelli di ottimizzazione e algoritmi per applicazioni di Data Science, utilizzando dataset provenienti da diversi contesti applicativi (ad esempio business analytics, manifatturiero, logistica, sanità e finanza).
Il corso prevede inoltre un seminario tenuto da un esperto proveniente dal mondo aziendale, volto a illustrare applicazioni dell'ottimizzazione e della Data Science in contesti industriali e a presentare casi di studio reali.
Verifica Apprendimento
L'esame si compone di una prova scritta individuale e di un progetto di gruppo. La prova scritta è finalizzata a verificare l'acquisizione delle conoscenze teoriche e delle competenze metodologiche sviluppate durante il corso. Essa prevede domande teoriche ed esercizi riguardanti la formulazione di modelli di ottimizzazione, i principali metodi di ottimizzazione e le loro applicazioni alla Data Science. Il progetto di gruppo consiste nell'analisi di un caso di studio mediante l'implementazione in Python di modelli di ottimizzazione e/o algoritmi di Machine Learning trattati durante il corso, applicati a un dataset reale. Il progetto dovrà essere consegnato sotto forma di notebook Python accompagnato da un report tecnico. Il docente si riserva la facoltà di convocare i gruppi, o singoli componenti degli stessi, per una breve discussione del progetto, qualora ciò sia ritenuto necessario ai fini della verifica dell'effettivo contributo individuale e della corretta attribuzione della valutazione finale.
Contenuti
1. Introduzione alla Ricerca Operativa e all'ottimizzazione per la Data Science
- Problemi decisionali, modellazione matematica e ottimizzazione.
- Principali ambiti di applicazione della Ricerca Operativa.
- Il ruolo dell'ottimizzazione nella Data Science e nel Machine Learning.
- Esempi di modellazione e applicazioni.
2. Ottimizzazione lineare
- Formulazione di modelli di programmazione lineare.
- Geometria della programmazione lineare: poliedri, vertici e soluzioni di base ammissibili.
- Algoritmo del simplesso.
- Teoria della dualità e interpretazione economica.
- Analisi di sensitività e di post-ottimalità.
3. Ottimizzazione non lineare
- Formulazione di modelli di ottimizzazione non lineare.
- Insiemi convessi e funzioni convesse.
- Ottimalità locale e globale.
- Condizioni di Karush-Kuhn-Tucker (KKT).
- Introduzione alla programmazione quadratica.
4. Cenni ai metodi numerici per l'ottimizzazione
- Metodo del gradiente.
- Metodo del gradiente stocastico.
- Metodi di Newton e Quasi-Newton.
- Confronto qualitativo tra i principali metodi di ottimizzazione.
5. Modelli di ottimizzazione per il Machine Learning e la Data Science
- Formulazione di problemi di apprendimento automatico come problemi di ottimizzazione.
- Regressione lineare e metodo dei minimi quadrati.
- Classificazione supervisionata: Support Vector Machines (SVM); k-nearest neighbors (k-NN).
- Apprendimento non supervisionato: algoritmo k-means.
- Introduzione alle reti neurali: formulazione del problema di addestramento come problema di ottimizzazione; funzioni di perdita; ruolo degli algoritmi di ottimizzazione nell'addestramento delle reti neurali.
6. Implementazione in Python e applicazioni alla Data Science
- Implementazione di modelli di ottimizzazione e di algoritmi di Machine Learning in ambiente Python.
- Applicazioni a casi di studio e dataset reali.
- Analisi, interpretazione e valutazione dei risultati.
Altre informazioni
Tutti i materiali didattici saranno disponibili sulla pagina Moodle del corso. Gli studenti e le studentesse sono invitati a iscriversi alla pagina per ricevere tempestivamente avvisi, messaggi e aggiornamenti sullo svolgimento delle lezioni.
La frequenza è fortemente consigliata. Gli studenti e le studentesse impossibilitati a frequentare sono invitati a contattare i docenti per ricevere indicazioni sul programma e sui materiali didattici. Le modalità della prova d’esame sono identiche sia per i frequentanti sia per i non frequentanti.