====== Fundamentals of Machine Learning ======
----
===== News =====
* **02/10/2023**: Starting date
* **03/10/2023**: New Material: Math 4 ML
* **26/10/2023**: New Material: Linear Regression
* **20/11/2023**: New Material: Hoeffding's Inequality
----
===== General Info =====
**Teacher**:
* [[https://docenti.unicam.it/pdett.aspx?ids=N&tv=d&UteId=1039&ru=RD|Prof. Marco Piangerelli]]
**ESSE3 Link**
* [[|Fundamentals of Machine Learning - AY 2023/24]]
**Scheduling of Lectures**:
* Scheduling is available at the following [[:didattica:ay2324:orario_en|link]]
**Degrees**:
* [[didattica:mscs|MSc in Computer Science (LM-18)]]
**Class schedule**:
* Monday 11:00 - 13:00 - AB2
* Tuesday 16:00 - 18:00 - AB1
**Students Office hours**:
* Monday from 14:00 to 16:00
* Mandatory taking an appointment by email
===== Course Objectives =====
KNOWLEDGE AND UNDERSTANDING
The aim of the course is to provide the student with knowledge and skills in the area of machine learning.\\
At the end of the course the student should be able to:
* distinguish the various machine learning paradigms;
* know the learning theory
* know classification algorithms, regression, clustering and dimension reduction;
APPLYING KNOWLEDGE AND UNDERSTANDING\\
After completing the course, the student must demonstrate that he is able to:
* apply the different machine learning paradigms
* implement the classification, regression, clustering and dimensionality reduction algorithms;
* design and implement systems able to learn automatically from real data and situations;
COMMUNICATION SKILLS\\
At the end of this training activity, the student will be able to express himself clearly and with appropriate terms, using the English language, in the learning discussions as well as expose the results of a research concerning technical aspects of machine learning.
LEARNING SKILLS\\
At the end of this training activity the student will be able to:
* Finding and learning the innumerable algorithms and techniques that are presented in the field of machine learning
* Implementing and using the new algorithms
----
===== Course Contents =====
* Notions of Probability and Linear Algebra
* Supervised Learning
* Linear Models and Regression for Classification
* Decision Tree, Random Forest, Ensemble
* Unsupervised Learning
* Clustering
* Neural networks (an introduction) : FFNN, RNN, SOM, CNN
* Balanced and unbalanced data
* Evaluation Metrics (AUC, ROC, Confusion Matrix...)
* Examples of coding in Python
* Probabilistic learning theory and the "learning problem"
* The VC-dimension
* Bias-Variance Trade-off
* Support Vector Machines (Proof of the maximum margin)
----
===== Study material =====
**Course Slides and video**
* 02/10/2023 {{didattica:ay2324:fml:fundamentalsml_lezione1_locked.pdf|Lezione1}}
* 03/10/2023 {{didattica:ay2324:fml:fundamentalsml_lezione2_locked.pdf|Lezione2}}
* 09/10/2023 ------ Look at 03/10/2023
* 10/10/2023 ------ Look at 03/10/2023
* 16/10/2023 {{didattica:ay2324:fml:fundamentalsml_lezione3_protetto.pdf|Lezione3}}
* 17/10/2023 ------ Look at 16/10/2023
* 23/10/2023 {{didattica:ay2324:fml:fundamentalsml_lezione4_protetto.pdf|Lezione4}}
* 30/10/2023 {{didattica:ay2324:fml:fundamentalsml_lezione5_protetta.pdf|Lezione5}}
* 31/10/2023 ------ Look at 30/10/2023
* 06/11/2023 {{didattica:ay2324:fml:fundamentalsml_lezione6_protetta.pdf|Lezione6}}
* 07/11/2023 {{didattica:ay2324:fml:fml_lezione7_protetta.pdf|Lezione7}}
* 13/11/2023 ------ Look at 07/11/2023
* 14/11/2023 ------ Look at 07/11/2023
* 20/11/2023 {{didattica:ay2324:fml:fundamentalsml_evalmethods_protetto.pdf|Evaluation Strategies}}
* 21/11/2023 {{didattica:ay2324:fml:fundamentalsml_lezione8_protetto.pdf|Lezione8}}
* 27/11/2023 ------ Look at 21/11/2023
* 28/11/2023 ------ Look at 21/11/2023
* 04/12/2023 ------ Look at 21/11/2023
* 05/12/2023 {{didattica:ay2324:fml:fundamentalsml_lezione9_protetto.pdf|Lezione9}}
* 11/12/2023 {{didattica:ay2324:fml:fundamentalsml_lezione10_protetta.pdf|Lezione10}}
* 12/12/2023 {{didattica:ay2324:fml:cnn_protetto.pdf|Lezione11}}
**Reference books**
* Norvig, P., Russel, S., Artificial Intelligence: a Modern Approach - Pearson, 2021
* Sutton, R., Barto, A. Reinforcement Learning: an Introduction [[https://web.stanford.edu/class/psych209/Readings/SuttonBartoIPRLBook2ndEd.pdf|Online version]]
* C.M. Bishop, Pattern Recognition and Machine Learning, Springer - 2006
* D. Barber, Bayesian Reasoning and Machine Learning, Cambridge University Press. - 2012 [[http://web4.cs.ucl.ac.uk/staff/D.Barber/pmwiki/pmwiki.php?n=Brml.Online|Online version]]
* T. Hastie, R. Tibshirani, J. Friedman, The Elements of Statistical Learning, Springer - 2008 [[https://web.stanford.edu/~hastie/ElemStatLearn//printings/ESLII_print10.pdf|Online version]]
** Link to recordings**
[[https://docs.google.com/spreadsheets/d/1FXlMgm1giV6cb7hGyoMl18tTAPyHLJHNGjXIr7V18_g/edit?usp=sharing|Recorded lessons]]
** Telegram **
https://t.me/+1ij_W3mEca9iNDc0
**Other sources**
Some of the material is taken from the ML Course of Caltech given by Prof. Yaser Abu Mostafa and his collaborators
** Additional Material **
* 02/10/2023 {{didattica:ay2223:fml:math4ml.pdf|Math for Machine Learning - no Bayesian Probability}}
* 26/10/2023 {{didattica:ay2324:fml:regression_protetto.pdf|Regression}}
* 30/10/2023 {{didattica:ay2324:fml:tree4.png.pdf|DataSet Decision Tree - Download the file and change the extension from .pdf to .png}}
* 30/10/2023 {{didattica:ay2324:fml:ensemble_methods_zhou.pdf|Ensemble Book}}
* 30/10/2023 {{didattica:ay2324:fml:explaining_adaboost_schapire.pdf|AdaBoost Paper}}
* 20/11/2023 {{didattica:ay2324:fml:HoeffdingsInequality_protetto.pdf|Notes about Hoeffding's Inequality}}
----
===== Exams =====
**Exam Dates A.Y. 2023/2024**
* 15 January (Partial)
* 01 February
* 22 February
* 3 June
* 24 June
* 15 July
* 12 September
**Please, once inside your ESSE3 private account, select the dates with the labels in the following form "FML_2324_..." **
**Exam rules**:
The exam consists in a test (approximately 2.5 hours) where you have to answer theoretical questions and solve practical exercises. It is allowed to use calculator.
----