Skip to the content.

Machine Learning

Academic Year 2023-2024

The course will start on Mar. 5, 2024. Teams link.

Instructors: Prof. Fabio Roli, Prof. Battista Biggio

MSc in Computer Engineering, Cybersecurity and Artificial Intelligence

MSc in Electronic Engineering

PhD Program in Electronic and Computer Engineering

GitHub repository for course material: https://github.com/unica-ml/ml

Course objectives and outcome

Objectives

The objective of this course is to provide students with the fundamental elements of machine learning and its applications to pattern recognition. The main concepts and methods of machine learning and statistical pattern recognition are presented, as well as basic methods to design and evaluate the performance of a pattern recognition system.

Outcome

An understanding of fundamental concepts and methods of machine learning, statistical pattern recognition and its applications. An ability to analyse and evaluate simple algorithms for pattern classification. An ability to design simple algorithms for pattern classification, code them with Python programming language and test them with benchmark data sets.

Class schedule

Course Outline (6 CFU)

  1. Introduction (2 hours)
  2. Bayesian Decision Theory and Gaussian Pattern Classifiers (10 hours)
  3. Non parametric methods and k-nn classifier (4 hours)
  4. Linear discriminant functions and support vector machines (6 hours)
  5. Artificial neural networks (4 hours)
  6. Performance evaluation (2 hours)
  7. Clustering Methods (2 hours)
  8. Adversarial machine learning (2 hours)
  9. Exercises (12 hours)
  10. Python Programming language and computer exercises (16 hours)

Course grading and material (6 CFU)

Slides (and Exercises)

Part 1 - Introduction

Part 2 - Bayesian Decision Theory and Gaussian Pattern Classifiers (Exercises on Bayesian Classifiers) (Exercises on Gaussian Classifier) (Assessment)

Part 3 - Elements of Nonparametric Techniques: The kNN Classifier (Exercises on kNN)

Part 4 - Elements of Linear Discriminant Functions (with Exercises)

Part 5 - Neural Networks

Part 6 - Elements of Performance Evaluation

Part 7 - Elements of Data Clustering (Exercises on Clustering)

Laboratory

Lab. 1 - Python basics (Notebook 1)

Lab. 2 - Data Sampling, Visualization, Learning and Classification (Notebook 2)

Lab. 3 - Gaussian Classifier (Notebook 3)

Part 4 - Performance Evaluation and Hyperparameter Estimation (Notebook 4)

Part 5 - Neural Networks with PyTorch (Notebook 5)

Part 6 - Adversarial Examples on ImageNet Classifiers (Notebook 6)

Tutor (2021/2022)

Session 1 - Slides-01 (Whiteboard-01)

Session 2 - Slides-02 (Whiteboard-02)

Session 3 - Slides-03 (Whiteboard-03) (Notebook-03)

Session 4 - Slides-04 (Whiteboard-04)

Session 5 - Slides-05 (Whiteboard-05)

Session 6 - Slides-06 (Whiteboard-06)

Session 7 - Slides-07 (Whiteboard-07)