Machine Learning for Safety Systems

Course Description and Motivation

The course objective is to provide a general overview of the modern techniques of Machine Learning and their applicability to safety systems. In addition to the description of the foundations of Machine Learning, the course provides the necessary background in order to understand and apply Machine Learning approaches to classification, regression and clustering techniques to solve practical problems in different applicative scenarios by mean of neural networks and other learning techniques. During the course, it will also describe the use of specific software packages, such as WEKA, for the implementation, use and validation of the modern Machine Learning techniques. At the end of the course students will be able to handle different Machine Learning models, to tune them to specific applications, and to design approaches that may scale with large amount of data.

  • Knowledge and understanding: to know the problems, methodologies and applications of Machine Learning techniques.

  • Applying knowledge and understanding: to implement different classification, regression and clustering algorithms to solve problems in different applicative scenarios.

  • Making judgements: to develop adequate critical skills through practical activities in implementing peculiar simulative algorithms and interpreting the obtained results.

  • Communication skills: to improve ability to critically expose the matters learned during the course.

  • Learning skills: to improve autonomous and independent study capacity.

Scientific Sector (SSD)

ING-IND/31 (Electrical Engineering)

Overview and Credits

MSZR; First year; Second semester. 6 CFUs.


Students are expected to have the following background:

  • Basic linear algebra

  • Basic optimization theory

  • Basic probability theory

  • (Optional but preferred) Knowledge of basic computer programming, at a level sufficient to write a reasonably non-trivial computer program




  1. Course overview

  2. Introduction to Machine Learning: motivation to Machine Learning, Data Mining, challenges and application examples.

  3. Signal and sequence representation.

  4. Basics on probability theory.

  5. Basics on estimation theory. Maximum likelihood, MAP, MMSE and MAE estimation.

  6. Basics on optimization theory. Unconstrained and constrained optimization: Lagrangian function and KKT conditions. The regularization.

  7. Meta-heuristics: genetic algorithms, Random Search, Simulated Annealing and Tabu Search.

  8. Data preparation. Pre-processing: mean removal, de-trending and dimensionality reduction. SVD, PCA, LDA e CCA. Outlier removal.

  9. Probability density estimation: parametric and non-parametric methods. Parzen windowing.

  10. Instance-based learning. The k-NN algorithm. Bayesian classification and Naive Bayes classifier. Associacion rules.

  11. Linear learning: optimal estimate and LMS algorithm. Logistic regression.

  12. Neural Networks: the neuron, the perceptron, the MLP, deep networks. The back propagation algorithm.

  13. Kernel Machines: the RBF and the Support Vector Machine (SVM).

  14. Decision trees: ID3, CART and C4.5. Rule extraction.

  15. Testing Machine Learning algorithms. Indicators: confusion matrix, True Positive Rate, False Positive Rate, Precision, Recall, F-Measure, AUC, ROC analysis. K-fold Cross Validation, One Leave Out. Grid search.

  16. Clustering techniques: K-means, EM algorithm, hierarchical clustering.

  17. Monte Carlo methods. Sampling.

  18. Graphical models: directed and undirected models. Inference and diagnosis.

  19. Hidden Markov Models (HMMs).

  20. Combining several algorithms: voting, bagging, boosting, mixture of experts. Random Forest

  21. Reinforcement Learning.

  22. Fuzzy logic and fuzzy reasoning. Fuzzy vs. crisp. Fuzzyfication and defuzzyfication, membership function. Mamdani and Sugeno rules.

  23. WEKA: description and usage of the software. The arff file format. Examples of applications.

  24. Hints of Python programming for Machine Learning algorithm development. Examples of applications.

  25. Ethics in Machine Learning.

  26. Python for Machine Learning. Advanced topics on Python to work with ML applications.

Detailed contents.

Suggested Books

  • Stephen Marsland, Machine Learning: An Algorithmic Perspective, 2nd edition, Chapman and Hall/CRC, 2014. (Suggested)

  • Ethem Alpaydin, Introduction to Machine Learning, 3rd edition, MIT Press, 2014.

  • Ian H. Witten, Eibe Frank, Mark A. Hall, Christopher J. Pal, Data Mining: Practical Machine Learning Tools and Techniques, 4th edition, Morgan Kaufmann, 2016.

  • Andriy Burkov, The Hundred-Page Machine Learning Book, 2019.

  • Andreas C. Müller, Sarah Guido, Introduction to Machine Learning with Python, O'Reilly Media, 2016. (Practical)

  • Aurélien Géron, Hands-On Machine Learning with Scikit-Learn, Keras, and TensorFlow, O'Reilly Media, 2nd edition, 2019.

  • Lecture notes.

Further reading

  • Jeremy Watt, Reza Borhani, Aggelos K. Katsaggelos, Machine Learning Refined: Foundations, Algorithms, and Applications, Cambridge University Press, 2016.

  • Sergios Theodoridis, Machine Learning: A Bayesian and Optimization Perspective, Academic Press, 2015.

  • Kevin P. Murphy, Machine Learning: A Probabilistic Perspective, MIT Press, 2012.

  • Jiawei Han, Micheline Kamber, Jian Pei, Data Mining: Concepts and Techniques, 3rd edition, Morgan Kauffmann, 2012.

Time and Location

The course will start on February 22 2022, with the following schedule:

  • Tuesday, 12:00 - 14:00, Room 10

  • Wednesday, 15:00 - 18:00, Room 15

To follow the lessons of the course remotely, simply click the following link and login with your Sapienza credentials:

Office Hours

Every day by appointment.


News, updates, and communications about the course will be available on Google Classroom, with the code: 2sbyttu.

Course Materials

Lecture Slides:

  1. Overview

  2. Introduction

  3. Signal and sequence representation

  4. Basics on probability theory

  5. Basics on estimation theory

  6. Basics on optimization theory

  7. Meta-heuristics

  8. Data preparation

  9. Probability density estimation

  10. Instance-based algorithms

  11. Linear models

  12. Neural networks

  13. Kernel machines and SVM

  14. Decision trees

  15. Testing ML algorithms

  16. Clustering algorithms

  17. Monte Carlo methods

  18. Graphical models

  19. Hidden Markov models

  20. Ensemble learning

  21. Reinforcement learning

  22. Fuzzy logic

  23. WEKA

  24. Python

  25. Ethics in Machine Learning

  26. Python for Machine Learning

Python Source Codes:

Lecture Notes:

  • Note 1

  • Note 2

Exams Session

The verbalization takes place on the dates indicated below, at the instructor's office:

  • I round: 22 June 2022 at 14:00, Room tbd (Exam reservation date ends on 21 June 2022).

  • II round: 20 July 2022 at 14:00, Room tbd (Exam reservation date ends on 19 July 2022).

  • III round: 14 September 2022, at 14:00, Room tbd (Exam reservation date ends on 13 September 2022).

  • Special round: 27 October 2022, at 14:00, in instructor's Office (Exam reservation date ends on 26 October 2022). Please note that this round is reserved only for part-time, off-course, repeating and graduating students.

  • IV round: 17 January 2023 at 14:00, Room tbd (Exam reservation date ends on 16 January 2023).

  • V round: 16 February 2023 at 14:00, Room tbd (Exam reservation date ends on 15 February 2023).

  • Special round: 05 April 2023 at 14:00, in instructor's Office, (Exam reservation date ends on 04 April 2023). Please note that this round is reserved only for part-time, off-course, repeating and graduating students.

Please, note that the exam is reserved electronically via the INFOSTUD system.