Machine Learning

One of the fastest growing technologies of 21st century, machine learning finds applications in almost all of the areas of science. Machine Learning provides the computers with ability to perform various tasks on their own without implicitly programming them. This opens up a plethora of possibilities that can transform the way we interact with machines. Interested already? Read on to get started in the field.

Start here

  • Start with Machine Learning Specialization on Coursera by DeepLearning.AI and Stanford University.

    Instructed by Andrew Ng, this 3-course specialization covers all the basics you need to get off in the field.

Learn Python for Machine Learning

Python is the preferred language in the real world applications of Machine Learning. Now that you have sufficient knowledge about machine learning, get down to implementing the ML algorithms and do some toy projects using Python.

To implement the machine learning algorithms in Python, learn to use the following python modules:

Common ML Algorithms

Having learned python, learn and implement various ML algorithms from scratch in Python to get used to the modules mentioned above. Given below are brief overviews of most common ML algorithms.

Learn high-level frameworks

Once you have mastered the basics, there's no need to reinvent the wheel and spend hours implementing a simple algorithm. There are dedicated libraries for quickly prototyping commonly used machine learning algorithms and techniques.

  • scikit-learn: Contains implementations for almost all of the widely used algorithms in machine learning. Tutorials on ScikitLearn's official website

  • PyTorch: Currently the most widely used libraries in the field of Deep Learning (a subset of machine learning that deals specifically with neural networks with more than one hidden layers and also with some advanced models derived from neural networks). PyTorch speeds up computation manifolds for neural networks and makes it easy to implement them. Also, it is more flexible than its counterparts Tutorials on the official PyTorch site | Documentation

  • OpenCV: This one is used for another field of AI, Computer Vision (deals with working on image data) Contains implementations for various common computer vision tasks like edge detection, object detection, and tracking and much more. Short Tutorials and Recipes

Practice

Following are some great sites to practice your skills and try your hand at real-world problems.

The path ahead

Once you have mastered the basics, you can further specialize in one of the many subfields of AI. Deep learning is a vast field and is used exclusively in other fields too. Therefore, though being one of the subfields, it is highly recommended to master deep learning before moving on any further.

Deep Learning

Almost a requirement for any subfield of AI. Master it first.

Coursework

  • Deep Learning Specialization by Andrew Ng: Start here. Taught in Python, this specialization covers chief aspects of deep learning in an easy-to-follow manner, typical of Andrew Ng. Enroll here: deeplearning.ai

Further resources

  • Convolutional Neural Networks Course: Stanford Course 231n is a quite popular course, and has a lot of useful content. You will chiefly learn convolutional neural networks (as the course name suggests), but the course covers sequence models and generative models as well.

  • 3Blue1Brown has a YouTube playlist which will help with intuitive understanding and visualization.

  • Fast.ai's Deep Learning for Coders course gets you down to implementing deep learning applications using TensorFlow and their own fast.ai library. This course is instructed by Jeremy Howard, a Kaggle grandmaster and past Kaggle #1). You will get hands-on experience by implementing many deep learning challenges on Kaggle in the course.

Natural Language Processing

The field of AI specializing in understanding text and voice data. Used in chatbots, personal assistants, is one of the fastest growing fields of AI. Resources:

  • Fifth course of Deep Learning specialization: Sequence Models. Like the rest of the courses in the specialization, this one's a good course for getting started with NLP.

  • Deep Learning for NLP: Stanford CS224N. A Stanford course on Natural Language Processing. Lectures

  • Blog by Jay Alammar.

  • Hugging Face Library: Widely used library for NLP applications.

Reinforcement Learning

Reinforcement Learning is a rapidly growing field of AI, that allows a system to learn by itself, without the need of a labeled training dataset. The algorithms used in RL are quite different from those in classical machine learning. The field holds a lot of promises and large amount research is underway in this field. Resources:

  • RL course by David Silver. The basic course for getting started with reinforcement learning. Widely acknowledged by the community.

  • CS229 Machine Learning by Stanford University (Lectures 16-20): The lectures 16-20 of CS229 cover reinforcement learning, instructed by Andrew Ng.

  • Deep RL Course by Hugging Face. The course contains theory part, hands-on experience and challenges.

  • Reinforcement Learning: An Introduction (1st Edition, 1998), book by Richard Sutton and Andrew Barto: Book. This is the bible of reinforcement learning literature. Contains extensive information of various RL algorithms. Source code for the book is available here.

A few more useful resources

Easy-to-follow blogs on machine learning:

Last updated