About this course#
This course grew out of two university courses I took — Introduction to Machine Learning at INSA Rouen Normandie (France) and Deep Learning at UFRN (Brazil) — and the deep learning I use in my research on autonomous drones and boats. I rewrote all of it as one path, in English, moved the deep learning to PyTorch, re-ran every experiment, and fixed the mistakes I made the first time. The mistakes are still there, in red boxes: un-normalised inputs that cost 50 points of accuracy, a model tuned on its own test set, an optimiser comparison where the optimiser never changed. They teach more than the parts that worked.
Each lesson follows the same rhythm:
- The idea — the problem, and the maths behind it, kept short.
- From scratch — an implementation you can read line by line: k-NN, gradient descent, an SVM dual, CART, AdaBoost, k-means, PCA, backpropagation, non-maximum suppression, ArcFace, a diffusion model…
- The library way — the scikit-learn, PyTorch or Ultralytics call you would use in a real project, and a check that both agree.
- Run it — every lesson is a single script. Run it, change a hyper-parameter, run it again.
- Pitfalls — the bugs I actually hit, so you don't have to.
Who it is for#
Students and engineers who know Python and some linear algebra and want to understand machine learning instead of copying model.fit(). Parts I–III need high-school calculus (a derivative, the chain rule). Part IV builds neural networks from the ground up, and Part V applies them to vision. If you are new to images, the Computer Vision course is the natural companion: it covers the classical side — filters, features, geometry — that this course builds on in lessons 13–16.
How to follow it#
Start with lesson 00 to install the environment and download the code. Parts I–III can be read in order or picked à la carte; lesson 06 (model selection) is the one not to skip. Part IV builds up in order (11 → 12 → 13 → 14), and each lesson of Part V stands on its own once Part IV is done.
Where this leads
Lessons 13–16 are the toolbox behind my projects: boat perception with a custom YOLOv11 detector for an autonomous surface vessel, drone target tracking with a custom YOLOv8 model, and monocular depth on a drone with pretrained networks.