My Journey on Learning Machine Learning
Nowadays, Machine Learning is a buzzword. Oh, you’ve got a problem? Just add machine learning. Easy.
Machine learning isn’t the savior to all your problems, but it does present an amazing tool to solve problems where you want to make predictions or teach a computer how to do something, without programming exactly the rules on how to do it. It can solve many problems more efficiently and more intuitively.
Disclaimer: I’m still learning, so if I say anything that is incorrect, let me know so I can fix it! I’m not an expert by any means, but my experience learning taught me a lot.
So Let’s Get Started! Just copy this code…
Hold on there! Many videos and articles end up guiding you through a simple machine learning problem (MNIST handwritten digits is a favorite), and then tell you to go out into the world and solve your own problems. However, you end up learning very little about how to apply it, and more on how to copy some code from someone else. Learning what machine learning is, is fundamentally different from learning how to use it effectively.
Machine learning is based in math and statistics. There are libraries that can get you so far, but you need to understand how to pre-process your data into a state that your model can learn it, and how to choose and train the best model. That is mainly intuition, and a few tricks.
What you need to know
You don’t necessarily need to be able to make your own regressors or optimizers. You don’t even need to know the math behind it. Does it help to know what’s working behind the hood? Definately. But you don’t really need to know it. You’re not pursuing a degree in machine learning; you just want to use it in your code.
But to use it effectively, you need to know what tool to use for what job, and how to train that tool for your data. This applies not just to making a model, but to processing your data into a usable state. You can’t just take in a string and expect it to train a model with that.
How I Tried to Learn
Obviously, everyone is going to learn differently. Me personally, I don’t like video lectures that much. I end up zoning out and not hearing a word that was said. It’s also harder to skip back if I need to refresh my memory on something that I just learned.
In the beginning, I tried Andrew Ng’s Machine Learning course. Now, this is the defacto machine learning course. Whenever someone asks how to learn machine learning, they point to this course. So I tried it. I could tell that it wasn’t for me. I never did much in the course, and it was a long time ago, but as I remember it, it was more focused on the math and how you would study it at a university, than learning enough to apply it yourself. It is 53 hours long, and uses Octave/Matlab.
Now, I’m not saying the course is bad by any stretch. It’s an amazing course. But if you’re someone like me who just wants to learn the basics and apply it, it was a bit too much.
So I jumped around from article to article, reading about it and looking at how people solved the famous handwritten digits problem. But as I said before, these were just intros, without any backing. I wanted something that was a course and actually taught what you needed to know, but didn’t overteach.
How I Learned
I started out with Google’s Machine Learning Crash Course. It provides a very nice explanation of all of the basics that you need. It doesn’t focus on the math behind it, but does have drop downs with more advanced explanations if you’re curious. It also includes interactive playground exercises, which you can use to get a feel for tuning, without having to actually write code and retrain.
But what was important for me about that was that every segment started with a short 4–5 min intro about what you would be learning. Then, it would have 2–4 articles with pictures that reiterated what was said in the video. Then, it would end with a quiz, playground, or programming exercise (online, thanks to Google CoLab). It lets you read some articles, and play around to get an intuition, while still being relatively fast paced. Google recommends 15 hours for the course, but I was able to get it done in more like 10 hours.
That provided an excellent foundation onto which you can build more advanced concepts onto. I’m just finishing up Google’s Deep Learning Course, which was recommended at the end of the crash course. It’s a bit more videos than I would like, but they’re short and to the point. And the programming exercises are very good at teaching you how it all works.
Next, I’m eyeing an unsupervised machine learning course, such as Georgia Tech’s Unsupervised Machine Learning, but I have yet to try it out.
Practicing
By far the most important part is independent practice. It’s all fine to know the concepts, but you don’t truly know something unless you’ve done it yourself. Kaggle is an amazing platform where you can enter competitions, try stuff out on datasets, or share knowledge. I recommend trying one of the recurring competitions like the Titanic competition. Try stuff out on your own, see how far you can get, and then look at other people’s kernels to see know they did it.
Conclusion
Take everything I said with a grain of salt. Everybody is different, and there’s a wide variety of courses to choose from. But if you’re passionate about learning machine learning, take some courses, do your own projects, and have fun. It’s an excellent tool to add to your toolbelt, but it just takes some work to learn it.