Teaching

During my PhD at University of Lille, I taught 21 hours of machine learning (half lectures and half labs work) to master students in computer science. The syllabus, included both theory and practical applications with some python programming in lab works. I covered the following topics :

  • Markov Chains : existence and convergence to the stationary distribution with application to PageRank; learning (maximum likelihood principle); prediction. Lab works : learning n-th order markov models from a text corpus for sentence completion.
  • Clustering : K-means; Fuzzy K-means; Spectral / Graph clustering. Lab works : community detection in Facebook friends.
  • Mixture Models : non linearity through mixture of linear models; Expectation-Maximization (maximization in closed form or with gradient ascent on the likelihood); mixtures of Gaussian for clustering; mixtures of logits for classifications. Lab works : implementation of EM for the mixtures of logits, evaluation on synthetic data.
  • Dimensionality reduction : principal component analysis; linear discriminant analysis; k-nearest neighboors. Lab works : face recognition with PCA + k-NN
  • Support Vector Machine : derivation of primal and dual form with Lagrangian; introduction to slack variables; Lab works : introduction to kernel for SVM on synthetic data.
  • Multi-class classification : one-vs-all, one-vs-one.
  • Kernel methods : kernel definition; scalar product in feature space; kernel as a way to introduce non linearity; SVM with kernel; PCA with kernel and linear regression with kernel. Kernel PCA for face recognition.
  • Boosting : combine weak linear models to get non linearity. Lab works : AdaBoost for face detection.