B8373 - MACHINE LEARNING FOR BIOENGINEERING

Academic Year 2025/2026

  • Moduli: Stefano Diciotti (Modulo 1) Simone Furini (Modulo 2)
  • Teaching Mode: Traditional lectures (Modulo 1) Traditional lectures (Modulo 2)
  • Campus: Cesena
  • Corso: Second cycle degree programme (LM) in Biomedical Engineering (cod. 6705)

Learning outcomes

By the end of the course, the student - understand the fundamentals of supervised and unsupervised machine learning algorithms, focusing on deep learning algorithms - understand the fundamental programming principles of the Python language and is able to apply them primarily to data management and analysis, under the umbrella of data science - understand the role, purpose and features of Python libraries for numerical computation, data representation, and machine learning, and their interconnectivity - is able to apply data science practices and methods to construct models and solve problems for various data-science applications.

Course contents

Introduction to machine learning. Taxonomy of machine learning algorithms. Introduction to Github and Google Colab for collaborative development and cloud-based execution. Model capacity, generalization, and regularization techniques. Hyperparameter tuning. Validation schemas: hold-out, cross-validation, nested hold-out, nested cross-validation, leave-one-out, and stratified sampling. Introduction to Python programming. Practical case study: age prediction task using brain Magnetic Resonance data.

Information Theory concepts: entropy and information gain. Strategies for feature selection. Dimensionality reduction algorithms. Explainability in Machine Learning. Feed-forward artificial neural networks. Training with the backpropagation algorithm. Autoencoders and Variational Autoencoders. Graph Neural Networks. Introduction to the implementation of artifical neural networks in Python with Keras and TensorFlow.

 

Readings/Bibliography

Notes provided by the Professors.

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

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

Teaching methods

The course is structured into lectures and computer-based exercises using the Python programming language. The lectures aim to provide students with a solid theoretical foundation in machine learning methods applied to bioengineering, highlighting their strengths and limitations. The exercises are designed to train students in solving simple real-world problems in the biomedical field, offering hands-on experience that demonstrates both the potential and the limitations of each technique.

In view of the type of activities and teaching methods adopted, the attendance of this training activity requires the prior participation of all students in Modules 1 and 2 of safety training in the workplace [https://elearning-sicurezza.unibo.it/], in e-learning mode.

Assessment methods

The exam consists of a written test including Python exercise in the lab (without oral test) in which the achievement of the educational objectives will be assessed. Students will be asked to design and implement Machine Learning pipelines for solving problems in the biomedical field using the concepts learned.

Students with Specific Learning Disabilities (SLD) or temporary/permanent disabilities are strongly encouraged to contact the University Office in charge in a timely manner (https://site.unibo.it/studenti-con-disabilita-e-dsa/en ). The office will be responsible for proposing any necessary accommodations to the students concerned. These accommodations must be submitted to the course instructor at least 15 days in advance for approval, who will assess their appropriateness in relation to the learning objectives of the course.

Teaching tools

Course GitHub repository (access available upon request to the instructors) containing project notebooks, and other resources.

Use of Google Colab for Python coding.

Materials provided by the instructor on the Virtuale platform, including lecture slides and selected scientific articles.

Office hours

See the website of Stefano Diciotti

See the website of Simone Furini