B2361 - ELEMENTI DI MACHINE LEARNING E QUANTUM COMPUTING T

Anno Accademico 2024/2025

  • 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)

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