← Teaching

Geometry and Topology in Machine Learning

Master's course  /  Swiss Joint Master of Science in Computer Science  /  2026

Tuesdays 9:15–12:00  /  PER 21, UniFR, Room F207

This page is dedicated to the course Geometry and Topology in Machine Learning, which will be taught during the fall term of 2026 at the University of Fribourg.

The course will provide an overview of geometric and topological methods in machine learning, with a particular focus on deep learning, that is, learning methods based on neural networks. The goal of the course is to introduce some of the most well-known geometric and topological perspectives on data, such as graph theory, spectral methods, persistent homology, magnitude or discrete curvatures; and to explore their use within deep learning systems.

The introduction of geometry and topology in deep learning has typically taken one of two complemetary approaches: either observational or interventional. The former seeks to leverage geometry and topology to better understand how deep learning systems behave, whereas the latter aims to incorporate geometry and topology within neural networks, either to allow them to learn from geometric and topological domains (graphs, simplicial complexes, cell complexes, hypergraphs, etc.) or to guide their learning injecting geometric or topological inductive biases. We will cover plenty of examples of both cases throughout the course.

This couse will be taught in English, with a theoretical and a practical component. In the theory sessions, different geometric and topological tools for data analysis will be introduced, and their use in deep learning will be explored through examples drawn from current research. In the practical sessions, we will explore, through concrete examples again, how to implement these geometric and topological tools using Python and will cover problem sheets about the theory session. Please bring your laptops to the lectures if you want to run the notebooks on your own.

Assessment will take the form of a collaborative project developed during the second half of the course, and an individual oral exam at the end of it.

I will be uploading and updating the lecture materials as the course progresses in this webpage.

Running the jupyter notebooks

In the code-based practice sessions, I will upload a jupyter notebook with sections for you to complete, and we will run through the notebook together in the session. I recommend running the notebooks in Google Colab, for minimal setup and because we have acces to GPUs there. However, at the beginning of each notebook I will point out the dependencies of said notebook, in case you prefer to run them locally, so that you know what libraries you need. To run the notebooks in Google Colab press File ▸ Upload notebook, then Runtime ▸ Change runtime type ▸ GPU if you need access to GPUs.

Lecture materials

Lecutre 1 Introduction to deep learning