If you are interested in machine learning then you might be wondering whether or not it would be possible for you to self-teach yourself machine learning.
In this post, I will show you that it is possible for you to do it and how I would recommend that you go about self-teaching yourself machine learning.
So, can machine learning be self-taught? Even though there are many different skills to learn in machine learning it is possible for you to self-teach yourself machine learning. There are many courses available now that will take you from having no knowledge of machine learning to being able to understand and implement the ml algorithms yourself.
There are actually so many machine learning courses available now that choosing the right path for you can be quite daunting. The rest of this post will lay out a roadmap for you to take if you want to self-tech yourself machine learning.
Here is the path that I would recommend:
- Take the machine learning course taught by Andrew Ng that has no prerequisites
- Learn Python programming with this course on edX
- Learn Data analysis in Python with this Youtube series and these lecture notes
- Take the deep learning course taught by Andrew Ng
- Read this book or watch this YouTube series on how to implement machine learning in Python
- Start applying your knowledge of machine learning on Kaggle competitions
- Learn calculus, linear algebra and probability on edX
- Take this more mathematical course on machine learning offered by MIT
The reason that I recommend that you start out with Andrew Ng’s course is that it will give you the chance to see if machine learning is something that you are actually interested in. This way you won’t have to invest a lot of time in learning other skills that machine learning is based on.
If you already know calculus, linear algebra, probability and how to program in Python then I would recommend that you skip to step 8 and take the course offered by MIT. It will go over all that you need to know in the field right now and you will be able to do machine learning in Python after only having taken that course. With that being said, I am a big fan of how Andrew Ng teaches so you could supplement the MIT course with Andrew Ng’s videos as you go.
What you will need to learn for machine learning
Machine learning is based on getting statistical algorithms to learn from data and to make predictions with the data or to cluster the data in ways that a human wouldn’t be able to.
The machine learning algorithms make use of calculus, probability, linear algebra and it is necessary for you to know how to program in order to be able to implement the machine learning algorithms.
With that being said, there are some courses available that will teach you machine learning that do not assume that you have any prior knowledge. These courses will often be a good place to start since they will get you up to speed quickly and will give you a chance to see if machine learning is something that you are actually interested in. Many of them are paid but there are some that are free such as the course taught by Andrew Ng.
Start with an introductory machine learning course
If you are looking to self-teach yourself machine learning then my advice would be to start out with an introductory machine learning course.
It is true that it is necessary to know calculus, linear algebra and probability to be able to fully understand the mathematics of the machine learning algorithms. However, it is only really linear algebra that you need to have familiarity with in order to understand how the algorithms work.
In the course taught by Andrew Ng, he teaches you the linear algebra that you need to know and he explains the algorithms in a way such that you do not need to know calculus to understand how they work.
Self-teach yourself how to program
If you don’t already know how to program then it will be necessary for you to self-teach yourself how.
This is because it is necessary to use programming to apply the machine learning algorithms to data. It is also necessary to use programming to modify the datasets so that they work well with the machine learning algorithms.
The programming language that I would recommend that you teach yourself would be Python. This is because it is the most popular machine learning language, it is one of the easier languages to learn and it has many built-in libraries that allow you to apply the ml algorithms more easily.
I would recommend that you use this edX course to learn Python that is taught by MIT.
Once you have learned how to program in Python I would recommend that you learn how to do data analysis in Python since you will make use of it a lot in machine learning. I would recommend that you learn data analysis with this YouTube series and this pdf.
Learn deep learning
After having learned how to code in Python it would be worthwhile for you to learn deep learning specifically.
Deep learning is a subset of machine learning where the algorithms work well when they are given large amounts of data and computational power. They have become very popular in recent years due to the sharp increase in data and computational power that has become available to us.
The course that I would recommend that you take to learn deep learning would be this one taught by Andrew Ng from Stanford. It does not have any prerequisite knowledge except for Python and taking his machine learning course beforehand would be recommended.
Learn how to implement the machine learning algorithms
Once you know how the machine learning algorithms work it would be worthwhile for you to take the time to learn how to implement them in Python.
I would recommend that you read this book to do that. It is the second edition of a practical machine learning book that was extremely popular and is one that I have personally made use of many times. If you do not want to pay for a book then this YouTube series is also good.
Implement the machine learning algorithms in your own datasets and create your own projects
Once you know how to implement the machine learning algorithms you’ll be ready to apply machine learning on your own datasets.
You can find datasets that you can use on the website Kaggle and you can compete in machine learning competitions on there as well.
You’ll likely find that you will identify a number of gaps in your knowledge when you start implementing the algorithms yourself but this is ok since it will help you to learn much more effectively.
If you are looking to get a job in machine learning then creating your own machine learning projects can be very beneficial since it shows to employers that you know how to implement machine learning. I have written more about how you can create your own machine learning projects and get a machine learning job here.
Learn the mathematics that the algorithms make use of
To learn how the machine learning algorithms work properly and how to implement them in a more statistically sound way it would be helpful to take the time to learn the necessary mathematics for machine learning.
The courses that I would recommend would be:
After having learned the required mathematics you could either read a more mathematical machine learning book or you could take a more mathematical machine learning course. The book that I would recommend would be this one and the course that I would recommend would be this one that is taught by MIT on edX.
Consider taking a paid course
There are paid machine learning courses that you can take that will teach you everything that you need to know in order to learn machine learning in one place.
The advantage of taking a course like this is that you will be able to learn machine learning in a more structured way which should help to make it easier and faster. However, these courses can be expensive, they are usually membership based and the free material available is often taught by some of the worlds top universities.
The paid course that I would recommend the most would be this one on Dataquest. You can watch a review of Dataquest in the video below.
Consider what you intend to do in machine learning
Before you set out learning machine learning it would help to consider what you intend to do in machine learning.
If you want to be a machine learning researcher then you’ll need an undergraduate degree in a field such as stats, math or computer science. It would also be better for you to learn the programming and mathematics first then to take the course offered by MIT since it will be necessary for you to understand the mathematics that goes into the algorithms. You can supplement your studies by watching Andrew Ng’s videos as well.
If you intend to build ai-based applications then it would be worthwhile for you to focus on getting to a point where you are able to build machine learning programs as quickly as possible. To do that I would recommend that you follow steps one through six as shown above.
If you intend to get a job in machine learning then I would recommend that you do all of the steps, 1-8, since you will need to be able to explain the algorithms mathematically and you will need to be proficient in implementing them. It will also be necessary for you to learn SQL, data structures and computational complexity. I have talked about getting a job in machine learning in the past here.