Welcome! This repository is built for anyone interested in learning more about
different facets of machine learning, a subfield of artificial intelligence.
Whether you want to learn more about native Python, C++, or the advanced tutorials
or algorithms driving state-of-the-art in machine learning and artificial intelligence today,
my goal is for this repository to be a resource for your learning in these fields.
I'm also working on an open-source guide for machine learning and AI. You can find it here as a set of google docs, as well as here as part of my personal website. Both of these are continuously evolving and will have more content added to them in time.
For full use of all Jupyter notebooks and libraries, please install requirements
using either conda
or pip
:
conda
:conda env create -f requirements.txt -n learning_ml python=3.7
pip
:pip install -r requirements.txt
For learning about concepts in machine learning, computer vision, operating systems, and programming, please visit the concepts/
directory to view the different pdf files for these concepts. Concepts currently covered include:
- Computer Vision and Deep Learning
- Introductory Slides on Python
Python is a powerful, high-level, interpreted programming language widely used for
machine learning, probability, statistics, and scientific computing. Many state-of-the-art frameworks for
machine learning, such as TensorFlow, PyTorch, NumPy, Scikit-Learn, and Keras all have open-source implementations in Python. You can find exercises for Python under the python
directory. See contents below:
- Under
python/intro_to_python
, you can find Python files covering fundamentals in Python, such as:
- Python data structures (lists, tuples, dictionaries, strings, ints/floats)
- Loops and iteration (for and while)
- Conditional logic
- Functions
- I/O (input/output)
- A brief intro to
numpy
You can also find some introductory concepts in a more "notebook"-like fashion under python/introductory_notebooks
.
Want to start learning machine learning ab initio-style, from first principles? Or
looking for examples of different applications and domains for this field? If so, I invite
you to check out python/machine_learning_in_python/
. In this directory, I have
tutorials for:
- Clustering Algorithms, such as K-Means Clustering
- Dimensionality Reduction, i.e. Principal Component Analysis (PCA)
- Adversarial Search Algorithms
- Computer Vision
- Game Theory
- Gaussian Process Regression (GPR)
- General Optimization
- Reinforcement Learning (RL)
- Sampling
- Robotics
The Python programming language contains numerous packages with functions and modules
implemented to get your machine learning projects and pipelines off the ground quickly,
reliably, and in a scalable way. You can find tutorials, in the form of .ipynb
Jupyter
notebooks, for the following Python packages under python/python_package_tutorials/
:
numpy
(NumPy)cv2
(OpenCV)tensorflow
(TensorFlow) andkeras
(Keras)pytorch
(PyTorch)pandas
(Pandas)gpytorch
(GPyTorch)aws
(EC2 + Boto3 APIs)
Exercises and examples for programming in C++ can be found in ./c++/
. These examples are mainly derived from exercises with programming drones for autonomous racing in MIT's 16.485: Visual Navigation for Autonomous Vehicles course. Some examples of code include:
- Creating a
RandomVector
class that samples a random vector of arbitrary dimension from a uniform distribution. roscpp
exercises.
Stata, a statistical programming language, is also useful for data science, machine learning, and econometrics. You can find content and examples for stata in ./stata/
.
If you have questions or would like content to be added for a specific topic, please feel free to let me know via this google form. I'm always looking for ways to improve this website and my documentation. If you're interested in learning more about machine learning through online articles, please check out my Medium blog here.