How to become very good at Machine Learning
How I taught myself complex ideas in Data Science, Machine Learning, and Computer Science
Medium has a list of the people they consider their top writers. These lists are tracked by topic. I’ve been on their official top writers' list for AI, Technology, Business, and Education for a while. Yesterday, I cracked their top 5 writers for AI. I’m also ranked number 6 when it comes to articles on Technology and number 10 for education. My content has seen explosive growth over the last 2–3 months, and a large part has been all of you. All the feedback you’ve shared has helped me improve my content.
To celebrate this, I have a special post for you. I’m going to talk about the approach that I used to master difficult Machine Learning ideas and concepts on my own, without a Master’s Degree or without paying for expensive boot camps/courses. I did it using the free resources available on the internet. Even if you’re someone who hates ML with every fiber of their being, read on. This system for learning things will be useful to you to master your chosen domain.
And no I’m not going to tell you to go Kaggle/or do some generic personal projects. I have something that will help you build a much more comprehensive insight into the topics behind Machine Learning.
Are you ready to get into it? This is an approach that a lot of the people that have reached out to me for mentorship have benefitted from.
Key Highlights
- The current standard advice for beginners in ML- When it comes to telling beginners in ML how they should learn ML, the standard advice is to do a project. Often accompanied by a list of standard projects that every wannabe ML person has on their resume. Some even throw the ‘do a course’.
- Why this advice is bad- Projects and courses can be great because of the structure they provide. However, relying on them exclusively will turn this strength into a weakness. Projects will teach you how to do things. They will not teach you what to do. Many times, tutorials and courses do a lot of the legwork for you. Thus you will not be equipped for the messiness of real-world challenges.
- What you should do instead- Read. Yes, I say this a lot. It’s because this works. Specifically, start reading actual Machine Learning Research papers. Yes, even if you’re a beginner who knows very little. I’ll go over an overview of what to do in this article. A more in-depth piece on how to interact with very technical documents/talks will be covered on another Saturday.
- For best results- Once you come across ideas, now is when you can try mini-projects for learning how to actually implement these ideas. This will expose you to the coding and the various frameworks available to you. Best of both worlds.
If you’re not an ML person, replace ML papers with deep technical blogs/talks in your area. The internet has free resources for every important domain. Use them. I’ll use ML papers for the rest of this email/article because that is what I’m most familiar with. And because ML papers were what I used to get better.
The Advice for Learning ML and why it’s incomplete
As an educator in the Machine Learning space, I often see lots of people give out advice on how beginners can break into Machine Learning and do well there. Typically this advice follows something along these lines:
- Take a combination of Math Classes. Typically involving Probability and Statistics, Calculus, Linear Algebra, and Logic.
- Find one or two personal projects that interest you. Really good advice will suggest building an end-to-end pipeline starting from Data Collection all the way to analysis and report generation.
- Look at some tutorials/documentation online for learning the implementations.
- Enjoy your ML expertise.
Some might recommend ML courses online. But this is the gist of what they suggest. Now none of this is strictly bad per se. It is however incomplete. Such advice will work for you, BUT it will be a grind to get to an advanced level. If you’re someone who is trying to transition into ML from other fields (or has any other time obligations) you don’t have the time for this kind of bottom-up approach. So how can someone like that compete with people who work ML full-time? Or people who spend hours learning the ins and outs of these systems in classes. It took 3 years of Math for me to get to Convolutions, Laplace Transformations, and Multivariate Optimisation. I’m still learning a lot more. You don’t have three years. So what should you do? How can you break into higher ranks of Machine Learning? What can you add to the training that gurus recommend?
One thing I noticed was that there was a big difference between the Machine Learning taught to Master’s Students and the Machine Learning research that was happening.
— Yannic Kilcher, ML YouTuber. Even getting a master’s degree will not be sufficient to keep up with Deep Learning (to be fair though, the foundations you learn will be helpful). Learn more between the conversation between Yannic and I here
Simple. Read Research in ML. Take papers that seem interesting and read them. Follow YouTubers such as myself, Yannich Kilcher, Two Minute Papers that break down research in ways that people can understand. Go to Twitter and LinkedIn and start following people that share interesting ML papers and blogs. For a bigger list of the people that I rely on extensively, check out this LinkedIn post on this topic.
But I don’t have much expertise. Won’t papers be too complex?
Yes and no. By itself, reading papers (or watching someone explain them) won’t be immediately useful. They will have lots of keywords that you don’t know. You won’t know half the techniques they use. But it will get you in the habit of searching up and learning new things. It will teach you to get familiar with complex problems. And that is huge. And as time builds up, you will find yourself understanding the papers better. You will start to see why the authors did a particular thing. You might question why they chose a particular data augmentation technique over another. Paper by paper, you will find your knowledge improving. And this will help you address the problem you would get by focusing on projects. It takes care of the flaw of that approach.
What flaws?
The project-heavy approach is exceptional for learning the technical aspects. It will teach you the hows of the experience very well. And there is no better way to learn than through first-hand experience. In terms of the how of machine learning, there is no better way. But it overlooks one thing. In ML, the what is often as important as the how. You need to learn how to identify different aspects of the problem. You need to be able to understand different steps in the pipeline. Tutorials and courses are very structured. They provide guidance, but will often not give you an idea of all the ways your solution could have been built. Reading about different teams and research that tackle similar problems will not have this flaw. You will be exposed to different ideas and perspectives. For example, reading about all the Computer Vision Research (and research into using Machine Learning in Malware Detection) birthed my Deepfakes Detection Idea (which I covered here).
It will also give you access to other people involved in the community. You can discuss the research with experienced professionals. They will share their experiences, adding to the discourse. You can see an example, where I discuss SimCLR (a visual learning architecture) with a reader of my work. They told me about the potential problems it has with imbalanced datasets. This was new to me. This is an overlooked advantage of getting involved in research communities. You can learn from experts. This is something I do extensively. I ask my readers for their input on different topics and learn from their interactions. This helped me gain a much deeper understanding of various ideas. Because tutorials/courses will be streamlined towards the best paths, you will not have the opportunity to go through the messy exploration phase.
In a nutshell
Exposing yourself to research will open up your world to how many ways there are to solve a problem. It will expose you to different ideas and concepts. You might even come across novel implementations (such as how you can Classify Malware by turning the binaries into images). In simple words, it’s a hack. It will allow you to get involved in ML the way people involved in it full-time are involved. It will help you learn the same way people learn about ML on the job (coming across and testing new ideas) without spending all those hours of trial and error yourself.
How to Proceed
I will go into detail about how to read research papers on your own (for varying levels of Math Comfort) on another Saturday (don’t want to make this too long). So if you’re into that, be sure to follow my work on different platforms. However for a quick overview. I would suggest something like this. Spend about 2–4 hours a week coming across new research in ML (through one of the channels, or just following publications). Make sure you understand the papers to the point where you can explain what they do at a high level. Even at a low end, 2 papers/week is 8 papers/month. This will add up exponentially(compounding returns do amazing things). Interact with people using the internet. It’s a great thing, and you can maximize it.
As stated, you will spend a lot of time googling things and terms. There’s no shame in that (I did that a lot). But soon enough, you will be comfortable enough to be able to read a paper and give a very high-level overview of the ideas discussed. As you reach this stage, now is when I want you to get to the next steps. Start critiquing the paper. Look at the steps of the research paper. What would you do differently? Or at least like to try to add to what they’ve shared. Have you read another paper that used a technique that might be useful? That new idea you’ve been obsessed with? How could that be integrated here? Thinking in this way will activate a higher level of learning, allowing you to gain a much deeper appreciation for the paper and its ideas. And from here, your learning will be turbo-boosted.
For the technical side, build a simple version of the cool project. This is just to get you familiar with the tech stack and the implementation. Make sure you learn the technologies well. And use the learnings from your research to play around with new additions to this project. As you continue to come across more and more ideas, you will start linking them all together and start seeing patterns. This is where your expertise will start to become truly valuable and unique. Your individual skills, expertise, and interests will lead to you combining ideas in novel ways. And suddenly the sky is the limit. And just like that, I’ll see you at the top.
If you liked this write-up, you would like my daily email newsletter Technology Made Simple. It covers topics in Algorithm Design, Math, AI, Data Science, Recent Events in Tech, Software Engineering, and much more to make you a better developer. I am currently running a 20% discount for a WHOLE YEAR, so make sure to check it out. Using this discount will drop the prices-
800 INR (10 USD) → 533 INR (8 USD) per Month
8000 INR (100 USD) → 6400INR (80 USD) per year
You can learn more about the newsletter here
Reach out to me
Use the links below to check out my other content, learn more about tutoring, or just to say hi. Also, check out the free Robinhood referral link. We both get a free stock (you don’t have to put any money), and there is no risk to you. So not using it is just losing free money.
To help me understand you fill out this survey (anonymous)
Check out my other articles on Medium. : https://rb.gy/zn1aiu
My YouTube: https://rb.gy/88iwdd
Reach out to me on LinkedIn. Let’s connect: https://rb.gy/m5ok2y
My Instagram: https://rb.gy/gmvuy9
My Twitter: https://twitter.com/Machine01776819
If you’re looking to build a career in tech: https://codinginterviewsmadesimple.substack.com/
Get a free stock on Robinhood: https://join.robinhood.com/fnud75