- Docente: Mauro Mangia
- Crediti formativi: 6
- SSD: ING-INF/01
- Lingua di insegnamento: Italiano
- Moduli: Mauro Mangia (Modulo 1) Leandro De Souza Rosa (Modulo 2)
- Modalità didattica: Convenzionale - Lezioni in presenza (Modulo 1) Convenzionale - Lezioni in presenza (Modulo 2)
- Campus: Bologna
- Corso: Laurea in Ingegneria elettronica e telecomunicazioni (cod. 9065)
-
Orario delle lezioni (Modulo 1)
dal 18/02/2025 al 08/04/2025
-
Orario delle lezioni (Modulo 2)
dal 11/04/2025 al 13/06/2025
Conoscenze e abilità da conseguire
Il corso ha l’obiettivo di fornire agli studenti gli strumenti necessari per approcciarsi al contesto dell’elaborazione dei dati e dei segnali utilizzando un framework di sviluppo basato su ambiente python. Si passa poi all’uso e all’implementazione di algoritmi ad apprendimento automatico che vanno da approcci legati al mondo classico del Machine Learning fino alle reti neurali. Nell’ultima parte del corso verranno forniti agli studenti gli strumenti per approcciarsi al quantum computing arrivando a definire alcuni degli algoritmi provenienti dal mondo del Quantum Machine Learning
Contenuti
Il corso si struttura in due moduli didattici svolti in successione e che si focalizzano sui seguenti temi.
- Introduzione a Python come linguaggio di programmazione per lo sviluppo di algoritmi per l’elaborazione dei dati e dei segnali.
- Richiami di algebra e statistica con esempi guidati che utilizzano i pacchetti Python di riferimento (numpy, scipy, …).
- Struttura, analisi e visualizzazione dei dati. Pacchetti software per la gestione, la visualizzazione e per l’estrazione di features (Pandas, Seeborn, Matplotlib, ..).
- Algoritmi basati sull’apprendimento automatico (il Machine Learning) per il clustering, la classificazione e l’individuazione di anomalie con annessi pacchetti software per la loro implementazione (Scikit learn, PyOD, …).
- Definizione, caratterizzazione e realizzazione di modelli neurali profondi per la classificazione e la regressione. Il caso dell’Autoencoder. Esempi di implementazione e confronto tra due framework: pythorch e tensorflow.
- Reti neurali generative, modelli open source per l’elaborazione del linguaggio naturale e per la generazione di immagini. Esempi guidati e integrazione di una rete per l’elaborazione del linguaggio nel flusso di lavoro
- Introduzione al quantum computing a partire dalla definizione di q-bit.
- Computazione a singolo e a multiplo q-bits.
- Pre-elaborazione e post-elaborazione dei dati. Confronto e integrazione tra elaborazione classica e quantum computing.
- Ambienti di simulazione e sviluppo per il quantum computing: Qiskit come caso d’uso di riferimento.
Testi/Bibliografia
Letture consigliate:
- Zickert, F. "Hands-On Quantum Machine Learning With Python Volume 1: Get Started". (2021).
- Kaye, Phillip, Raymond Laflamme, and Michell Mosca. "An introduction to quantum computing." (2007): 799-800.
- Olivares, S. "Quantum Computing: Lecture Notes".
Metodi didattici
Lezioni frontali e esercitazioni da svolgere sul proprio PC
Modalità di verifica e valutazione dell'apprendimento
Esame scritto e orale su entrambi i moduli didattici
Strumenti a supporto della didattica
Appunti, slide del docente e materiale aggiuntivo come esempi di codice, link a documentazione online sui pacchetti software utilizzati e altro. Tutto il materiale sarà reso disponibile sulla pagina dedicata al corso della piattaforma Virtuale Unibo
Orario di ricevimento
Consulta il sito web di Mauro Mangia
Consulta il sito web di Leandro De Souza Rosa