B8373 - MACHINE LEARNING FOR BIOENGINEERING

Anno Accademico 2025/2026

  • Docente: Stefano Diciotti
  • Crediti formativi: 6
  • SSD: ING-INF/06
  • Lingua di insegnamento: Inglese
  • Moduli: Stefano Diciotti (Modulo 1) Simone Furini (Modulo 2)
  • Modalità didattica: Convenzionale - Lezioni in presenza (Modulo 1) Convenzionale - Lezioni in presenza (Modulo 2)
  • Campus: Cesena
  • Corso: Laurea Magistrale in Biomedical engineering (cod. 6705)

Conoscenze e abilità da conseguire

Alla fine del corso, lo studente - comprende i fondamenti degli algoritmi di machine learning supervisionati e non supervisionati, concentrandosi sugli algoritmi di deep learning - comprende i principi fondamentali di programmazione del linguaggio Python ed è in grado di applicarli principalmente alla gestione e all'analisi dei dati, sotto l'ombrello della scienza dei dati - comprende il ruolo, lo scopo e le caratteristiche delle librerie Python per il calcolo numerico, la rappresentazione dei dati e l'apprendimento automatico e la loro interconnettività - è in grado di applicare pratiche e metodi di scienza dei dati per costruire modelli e risolvere problemi per vari dati- applicazioni scientifiche.

Contenuti

Introduzione al machine learning. Tassonomia degli algoritmi di machine learning. Introduzione a GitHub e Google Colab per lo sviluppo collaborativo e l’esecuzione in cloud. Capacità del modello, generalizzazione e tecniche di regolarizzazione. Tuning degli iperparametri. Strategie di validazione: hold-out, cross-validation, nested hold-out, nested cross-validation, leave-one-out e campionamento stratificato. Introduzione alla programmazione in Python. Caso di studio pratico: predizione dell’età da dati di Risonanza Magnetica cerebrale.

Concetti di Teoria dell’Informazione: entropia e guadagno di informazione. Strategie per la selezione delle features. Algoritmi di riduzione della dimensionalità. Spiegabilità dei modelli di Machine Learning. Reti neurali artificiali feed-forward. Addestramento con algoritmo di backpropagation. Autoencoder e Autoencoder Variazionali. Graph Neural Networks. Introduzione all’implementazione di reti neurali artificiali in Python con Keras e TensorFlow.

Testi/Bibliografia

Dispense fornite dal docente.

M. Lutz, "Learning Python", O'Reilly, 2013

I. Goodfellow, Y. Bengio, A. Courville, "Deep Learning", MIT Press, 2016 (https://www.deeplearningbook.org/ )

Metodi didattici

Il corso è articolato in lezioni frontali ed esercitazioni al computer utilizzando il linguaggio Python. Le lezioni mirano a fornire allo studente una solida base teorica sui metodi di machine learning applicati alla bioingegneria, evidenziandone vantaggi e limiti. Le esercitazioni sono finalizzate ad addestrare lo studente alla risoluzione di semplici problemi reali in ambito biomedico, offrendo un’esperienza pratica che metta in luce sia le potenzialità sia le criticità di ciascuna tecnica.

In considerazione della tipologia di attività e dei metodi didattici adottati, la frequenza di questa attività formativa richiede la preventiva partecipazione di tutti gli studenti ai Moduli 1 e 2 di formazione sulla sicurezza nei luoghi di studio [https://elearning-sicurezza.unibo.it/], in modalità e-learning.

Modalità di verifica e valutazione dell'apprendimento

L’esame consiste in una prova scritta, anche con esercizi in Python svolti in laboratorio (senza prova orale), durante la quale verrà valutato il raggiungimento degli obiettivi formativi. Agli studenti sarà richiesto di progettare e implementare pipeline di Machine Learning per la risoluzione di problemi in ambito biomedico, utilizzando i concetti appresi.

Studenti/sse con DSA o disabilità temporanee o permanenti: si raccomanda di contattare per tempo l’ufficio di Ateneo responsabile (https://site.unibo.it/studenti-con-disabilita-e-dsa/it ): sarà sua cura proporre agli/lle studenti/sse interessati/e eventuali adattamenti, che dovranno comunque essere sottoposti, con un anticipo di 15 giorni, all’approvazione del/della docente, che ne valuterà l'opportunità anche in relazione agli obiettivi formativi dell'insegnamento.

Strumenti a supporto della didattica

Repository GitHub del corso (accesso disponibile su richiesta ai docenti), contenente notebooks e altre risorse.

Utilizzo di Google Colab per la programmazione Python.

Materiale fornito dal docente sulla piattaforma Virtuale, inclusi slides delle lezioni e articoli scientifici selezionati.

Orario di ricevimento

Consulta il sito web di Stefano Diciotti

Consulta il sito web di Simone Furini