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.
Learn Python here: Lectures by Sentdex
You can also refer: W3Schools Python Tutorial
To implement the machine learning algorithms in Python, learn to use the following python modules:
NumPy and Pandas: Used for advanced matrix manipulation and linear algebra. Course | NumPy Tutorial | Pandas Tutorial
Matplotlib: Used for visualization, plotting and drawing stuff. Introductory course | Reference | Tutorial
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.
mlcourse.ai: An open self-paced machine learning course covering topics from classical ML.
SVM: Article
Neural Networks: Article
k-Means Clustering: Article
KNN (K-Nearest Neighbours): Article
Decision Trees: Article
Naive Bayes: Article
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 websitePyTorch
: 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 | DocumentationOpenCV
: 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.
Kaggle: #1 platform for competitive data science.
HackerEarth: Frequently hosts hackathons related to machine learning.
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.
A very good Book on neural networks.
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.
A few more useful resources
Easy-to-follow blogs on machine learning:
Last updated