Skip to content

rmsander/learning-machine_learning

Repository files navigation

Learning Machine Learning

Example machine learning task: GPR

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.

Installation

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

Concepts

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:

  1. Computer Vision and Deep Learning
  2. Introductory Slides on Python

Python Programming

Overview

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:

Intro To Python

  • Under python/intro_to_python, you can find Python files covering fundamentals in Python, such as:
  1. Python data structures (lists, tuples, dictionaries, strings, ints/floats)
  2. Loops and iteration (for and while)
  3. Conditional logic
  4. Functions
  5. I/O (input/output)
  6. A brief intro to numpy

You can also find some introductory concepts in a more "notebook"-like fashion under python/introductory_notebooks.

Intro to Machine Learning Fundamentals, Applications, and Domains

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:

  1. Clustering Algorithms, such as K-Means Clustering
  2. Dimensionality Reduction, i.e. Principal Component Analysis (PCA)
  3. Adversarial Search Algorithms
  4. Computer Vision
  5. Game Theory
  6. Gaussian Process Regression (GPR)
  7. General Optimization
  8. Reinforcement Learning (RL)
  9. Sampling
  10. Robotics

Learning Python Packages For Machine Learning

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/:

  1. numpy (NumPy)
  2. cv2 (OpenCV)
  3. tensorflow (TensorFlow) and keras (Keras)
  4. pytorch (PyTorch)
  5. pandas (Pandas)
  6. gpytorch (GPyTorch)
  7. aws (EC2 + Boto3 APIs)

C++ Programming

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:

  1. Creating a RandomVector class that samples a random vector of arbitrary dimension from a uniform distribution.
  2. roscpp exercises.

Stata Programming

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/.

Missing Something? More Concepts You Would Like to See?

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.

About

A repository for learning the fundamentals of machine learning through concepts, implementation, and real-world examples.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published