20410432 - IN550 – MACHINE LEARNING

Learn to instruct a computer to acquire concepts using data, without being explicitly programmed. Acquire knowledge of the main methods of supervised and non-supervised machine learning, and discuss the properties and criteria of applicability. Acquire the ability to formulate correctly the problem, to choose the appropriate algorithm, and to perform the experimental analysis in order to evaluate the results obtained. Take care of the practical aspect of the implementation of the introduced methods by presenting different examples of use in different application scenarios.

Curriculum

teacher profile | teaching materials

Programme

1. Machine learning. Types of learning. Loss functions. Empirical risk minimization. Generalization and overfitting.
2. Model optimization. Convex functions. Gradient descent. Stochastic gradient descent.
3. Regression. Linear regression. Basis functions. Feature selection. Regularization.
4. Classification. Generative models. Nearest neighbor. Logistic regression. Support vector machines. Neural networks.
5. Ensemble methods. Decision trees. Boosting. Bagging.
6. Unsupervised learning. K-means clustering. Hierarchical clustering. Principal component analysis.
7. Application of the methods using the Python language. Examples using the NumPy, Pandas, SciKit-Learn, and TensorFlow libraries.


Core Documentation

J. Watt, R. Borhani, A. Katsaggelos. Machine Learning Refined. Cambridge University Press, 2nd edition, 2020.


Reference Bibliography

A. Géron. Hands-On Machine Learning with SciKit-Learn, Keras, and Tensorflow. O'Reilly, 3rd edition, 2022. M. Mohri, A. Rostamizadeh, A. Talwalkar. Foundations of Machine Learning. MIT Press, 2nd edition, 2018. S. Shalev-Shwartz, S. Ben-David. Understanding Machine Learning. Cambridge University Press, 2014. G. James, D. Witten, T. Hastie, R. Tibshirani. An Introduction to Statistical Learning. Springer, 2nd edition, 2013. K.P. Murphy. Probabilistic Machine Learning. MIT Press, 2022. T. Hastie, R. Tibshirani, J. Friedman. The Elements of Statistical Learning. Springer, 2nd edition, 2008. C.M. Bishop. Pattern Recognition and Machine Learning. Springer, 2006.

Type of delivery of the course

Frontal theoretical lectures and programming labs based on the Python programming language. For the class diary see the teacher's webpage: http://ricerca.mat.uniroma3.it/users/vbonifaci/in550.html The lectures will be in presence, and at the same time they will be streamed and recorded.

Type of evaluation

The exam consists of two parts: a software project and an oral exam. For the software project, the students will identify and analyze a dataset using the methodologies discussed in class, preparing an interactive Python notebook (Jupyter) and a presentation. The oral exam will consist in the discussion of the project and in questions spanning the entire syllabus of the class.

teacher profile | teaching materials

Programme

1. Machine learning. Types of learning. Loss functions. Empirical risk minimization. Generalization and overfitting.
2. Model optimization. Convex functions. Gradient descent. Stochastic gradient descent.
3. Regression. Linear regression. Basis functions. Feature selection. Regularization.
4. Classification. Generative models. Nearest neighbor. Logistic regression. Support vector machines. Neural networks.
5. Ensemble methods. Decision trees. Boosting. Bagging.
6. Unsupervised learning. K-means clustering. Hierarchical clustering. Principal component analysis.
7. Application of the methods using the Python language. Examples using the NumPy, Pandas, SciKit-Learn, and TensorFlow libraries.


Core Documentation

J. Watt, R. Borhani, A. Katsaggelos. Machine Learning Refined. Cambridge University Press, 2nd edition, 2020.


Reference Bibliography

A. Géron. Hands-On Machine Learning with SciKit-Learn, Keras, and Tensorflow. O'Reilly, 3rd edition, 2022. M. Mohri, A. Rostamizadeh, A. Talwalkar. Foundations of Machine Learning. MIT Press, 2nd edition, 2018. S. Shalev-Shwartz, S. Ben-David. Understanding Machine Learning. Cambridge University Press, 2014. G. James, D. Witten, T. Hastie, R. Tibshirani. An Introduction to Statistical Learning. Springer, 2nd edition, 2013. K.P. Murphy. Probabilistic Machine Learning. MIT Press, 2022. T. Hastie, R. Tibshirani, J. Friedman. The Elements of Statistical Learning. Springer, 2nd edition, 2008. C.M. Bishop. Pattern Recognition and Machine Learning. Springer, 2006.

Type of delivery of the course

Frontal theoretical lectures and programming labs based on the Python programming language. For the class diary see the teacher's webpage: http://ricerca.mat.uniroma3.it/users/vbonifaci/in550.html The lectures will be in presence, and at the same time they will be streamed and recorded.

Type of evaluation

The exam consists of two parts: a software project and an oral exam. For the software project, the students will identify and analyze a dataset using the methodologies discussed in class, preparing an interactive Python notebook (Jupyter) and a presentation. The oral exam will consist in the discussion of the project and in questions spanning the entire syllabus of the class.

teacher profile | teaching materials

Programme

1. Machine learning. Types of learning. Loss functions. Empirical risk minimization. Generalization and overfitting.
2. Model optimization. Convex functions. Gradient descent. Stochastic gradient descent.
3. Regression. Linear regression. Basis functions. Feature selection. Regularization.
4. Classification. Generative models. Nearest neighbor. Logistic regression. Support vector machines. Neural networks.
5. Ensemble methods. Decision trees. Boosting. Bagging.
6. Unsupervised learning. K-means clustering. Hierarchical clustering. Principal component analysis.
7. Application of the methods using the Python language. Examples using the NumPy, Pandas, SciKit-Learn, and TensorFlow libraries.


Core Documentation

J. Watt, R. Borhani, A. Katsaggelos. Machine Learning Refined. Cambridge University Press, 2nd edition, 2020.


Reference Bibliography

A. Géron. Hands-On Machine Learning with SciKit-Learn, Keras, and Tensorflow. O'Reilly, 3rd edition, 2022. M. Mohri, A. Rostamizadeh, A. Talwalkar. Foundations of Machine Learning. MIT Press, 2nd edition, 2018. S. Shalev-Shwartz, S. Ben-David. Understanding Machine Learning. Cambridge University Press, 2014. G. James, D. Witten, T. Hastie, R. Tibshirani. An Introduction to Statistical Learning. Springer, 2nd edition, 2013. K.P. Murphy. Probabilistic Machine Learning. MIT Press, 2022. T. Hastie, R. Tibshirani, J. Friedman. The Elements of Statistical Learning. Springer, 2nd edition, 2008. C.M. Bishop. Pattern Recognition and Machine Learning. Springer, 2006.

Type of delivery of the course

Frontal theoretical lectures and programming labs based on the Python programming language. For the class diary see the teacher's webpage: http://ricerca.mat.uniroma3.it/users/vbonifaci/in550.html The lectures will be in presence, and at the same time they will be streamed and recorded.

Type of evaluation

The exam consists of two parts: a software project and an oral exam. For the software project, the students will identify and analyze a dataset using the methodologies discussed in class, preparing an interactive Python notebook (Jupyter) and a presentation. The oral exam will consist in the discussion of the project and in questions spanning the entire syllabus of the class.