- Docente: Stefano Pagliarani
- Credits: 6
- SSD: MAT/06
- Language: English
- Moduli: Stefano Pagliarani (Modulo 1) Giovanni Paolini (Modulo 2)
- Teaching Mode: Traditional lectures (Modulo 1) Traditional lectures (Modulo 2)
- Campus: Bologna
-
Corso:
First cycle degree programme (L) in
Mathematics (cod. 8010)
Also valid for Second cycle degree programme (LM) in Mathematics (cod. 5827)
Second cycle degree programme (LM) in Mathematics (cod. 6730)
Learning outcomes
At the end of the course, students will have gained a comprehensive understanding of key machine learning techniques. They will have the skills to effectively apply and adapt these methods across diverse situations. Additionally, students will be equipped with fundamental knowledge of the probabilistic concepts underpinning these methods.
Course contents
- Introduction to machine learning. Regression and classification problems. Supervised, unsupervised and reinforcement learning. Overfitting and regularization.
- Foundations of mathematical information theory.
- Linear models for supervised learning.
- Neural networks, backpropagation, stochastic gradient descent.
- Deep learning, convolutional networks, transformer.
- Elements of stochastic processes and Markov processes.
- Language models.
- Basic reinforcement learning algorithms. Deep Q-learning. Reinforcement learning from human feedback.
- Diffusion models.
Prerequisites: fundamental notions of linear algebra, differential calculus in multiple variables, integral calculus, probability theory, Python coding, and group theory.
Recommended prerequisite exams: Analisi Matematica I e II, Geometria I, Probabilità e statistica matematica, Informatica, Aritmetica e gruppi.
Readings/Bibliography
- Christopher Bishop, Pattern Recognition and Machine Learning
- Aston Zhang, Zack C. Lipton, Mu Li, Alex J. Smola, Dive into Deep Learning
- Christopher Bishop, Deep Learning
- Richard S. Sutton and Andrew G. Barto, Reinforcement Learning: An Introduction
- Dan Jurafsky and James H. Martin, Speech and Language Processing
Teaching methods
- Frontal lectures on the board and/or with slides.
- Coding and simulation activities in the laboratory.
Assessment methods
Submission of a final group project in Python, followed by an oral interview aimed at verifying the individual contributions of each student.
Teaching tools
- Office hours and tutoring.
- PDF lecture notes covering some parts of the program.
- Coding sessions supervised by a tutor.Office hours
See the website of Stefano Pagliarani
See the website of Giovanni Paolini