This repository contains a collection of Jupyter Notebooks on key Machine Learning and Deep Learning algorithms, as well as some notebooks dedicated to mathematical topics that form the basis of many of these algorithms.
These notebooks stem from a summarizing process of personal study and are therefore aimed at any data scientist or scientist (physicist or chemist) who wants to delve into machine learning and understand some of the mathematical details underlying known algorithms. The goal is not to provide a mathematically rigorous treatment of every algorithm and/or concept, but rather to discuss at least the fundamentals to be able to apply them in a more informed manner and not as a black box. Some of the topics treated here are:
- classification problems
- anomaly detection
- clustering problems
For some algorithms, a from-scratch implementation in Python is also provided, for purely educational purposes. Additionally, some notebooks feature interactive visualizations to play with and observe certain explained concepts in action.
In part, some notebooks can also be seen as brief tutorials on using popular Python packages for data science and scientific computing, such as numpy
, scipy
, pytorch
or scikit-learn
. Enjoy!