loading...
Cover image for How I'm learning Machine Learning (without being a math genius)

How I'm learning Machine Learning (without being a math genius)

diegoisco profile image Diego Isco ・5 min read

I remember a few months ago seeing projects with the incredible things that Machine learning is achieving.

I fell in love. I said that I wanted to learn that. It doesn't matter if it's difficult. I want to learn, and I'm gonna learn it.

And let's be honest. We have all heard of Machine Learning Engineers salaries. Look at this.

Machine Learning Engineer Salary

Machine Learning Engineer Salary 2

Great right? Well, first you need to learn ML, and that's when things get weird.

Excited I started reading papers, and you know what? Boom! Math everywhere! Fancy equations, linear algebra, vectors, and weird symbols.

That same night, I started to cry like a baby, but after cry, as a good techie, I decided to learn self-taught.

Yes, I'm just another nerd trying to learn Machine Learning.

But I realized that sometimes learn difficult topics is boring. Specially in quarantine. So I'll try something different. Document my entire learning process.

Well, I'll try.

The Learning Path

Machine Learning learning path

When you look for learning paths to Machine Learning in Youtube, you find 3 main videos. The Siral Raval video, the Jabrils video and the Daniel Bourke video.

All of them are pure gold. So I decided to take the best of the 3 videos.

Math

There's a lot of controversy on how much math you need to learn ML. But it's definitely needed.
Maybe some of you are damn genius with math and just need to remember a few things. But most mortals like me, need to relearn from scratch.

Ok, but what kind of math do I need to learn?. Easy. Linear Algebra and Calculus.

Here's the first point. I'm not a math genius. I'm bad at math. I'm really bad at math. My grades were terrible at university on Calculus I II and III.

The thing is, can you learn Machine Learning without being a math genius?.

Of course that you can.

But with a little detail. Probably if you suck with numbers, is because you doesn't understand the essence of it.
Do you remember that word? The essence of Linear Algebra and Calculus. 3Blue1Brown with Grant Sanderson.

He should've a Nobel Prize for education. Basically take the math and explains it with awesome geometry. As if you were a child. It's beautiful.

So for me, that's the first step. Understand the meaning and the essence of Linear Algebra and Calculus. Believe me, after that the things get easier.

3Blue1Brown

After completing and understands that videos, it's time to put it on practice with a course of one of the best university math teachers in the world. Gilber Strang in MIT 18.06 Linear Algebra.

Think, you're receiving the same education as students who paid thousands of dollars to be in front of that class. You don't have the diploma of one of the best universities of the world, but you can have the knowledge. And that's what matter at the end of the day.

After digest and practice that long course, it's calculus time. Khan Academy have an awesome course that'll teach you all the you need to feel comfortable with the weird equations that you are gonna deal with later.

Statistics

Many people are confused with how similar ML is to Statistics. Actually they're closely related, and it's a key topic to understand ML well.

So make sure to pay attention and learn.

And of course, to makes the things easier, MIT have a free course: Probability - The Science of Uncertainty and Data.

If you read the curriculum, it may seem like a basic course, but it's not. It cover the enough topics to have the foundations to understand probability. But perhaps and because we love learn, we can take this other course. Statistics and probability of Khan Academy. It's like a complement. So take it easy.

Programming

If you're Software Engineer like me, this is the fun part.

The programming language to learn is Python. The king for Machine Learning. Its simplicity makes it very easy to learn, at least the basics.

Here I'm gonna assume that you know programming, so I don't want to tell you one single course. There're many courses to learn Python. Even great books. So is your decision where to learn.

Maybe you feel comfortable reading documentation, maybe you have a favorite Udemy teacher, or you have a subscription to an online learning platform. It doesn't matter. Only remember practice algorithms to have a better understanding of what's going on when writing ML.

Ok maybe you don't know programming and this will be your first line of code. In that case, I'd choose Datacamp. Feel free to make your research and watch their Python course.

Machine Learning

We've come too far. We have learned mathematics, statistics, algorithms, we have cried a few nights. Everything for this moment.

The Machine Learning course of Andrew Ng. Probably one of the best introductions to Machine Learning. It's not a basic course, so keep your notes close. Finally you'll learn how all the things works like a puzzle to create beautiful ML Algorithms.

Another great resource is Introduction to Machine Learning for Coders. Nice course with in-depth explanations of ML Algorithms.

My advice is to take both to have different points of view, and you can choose the one you understand the most.

I cannot leave out another course that I have heard that is excellent, but it's paid. The Udacity Introduction to Machine Learning.

Maybe you've some money saved, and you want to invest in yourself, I think it's a good time for invest it. It's your decision.

Real world projects

After having come this far, you know ML, but it's not enough. You need to put it more in practice. And I think this is the right book.

Hands-On Machine Learning with Scikit-Learn, Keras, and TensorFlow.

Again, real world projects, but this time with some of the best ML libraries. But don't worry. If you're like me and don't like to rely on libraries without know what's going on. You already know. That's why this book it's at the end.

Final words

Before let you out, there're some tips that I want to give you.

  1. Feel free to change the order of some points. Maybe you first want to learn Python, then Linear Algebra and then Statistics. It's ok.

  2. Practice a lot after learn something.

  3. Play with ML algorithms at any phase before know what's going on. Tweak settings to see what happens. Curiosity must be your weapon.

  4. Be patient. I know, all of this take time and probably hurts. But at the end, it's worth it.

  5. Kaggle. A lot.

  6. Enjoy the process, not the end.

Posted on by:

diegoisco profile

Diego Isco

@diegoisco

Just a Software Developer having fun

Discussion

pic
Editor guide
 

Thank you for sharing! I'm currently using a Top-to-bottom learning approach. I think it's more engaging. machinelearningmastery.com/youre-w...

Have you really enjoy the process?

 

That's also a very good strategy!
I think it depends on the person, but personally, I'm enjoying it 🤓
It would be great if you share with the community your results with that approach. Best of lucks!

 

A great way to keep yourself accountable in the learning process, thanks for sharing!

My team just completed an open-sourced Content Moderation Service built Node.js, TensorFlowJS, and ReactJS that we have been working over the past weeks. We have now released the first part of a series of three tutorials - How to create an NSFW Image Classification REST API and we would love to hear your feedback(no ML experience needed to get it working). Any comments & suggestions are more than welcome. Thanks in advance!
(Fork it on GitHub or click🌟star to support us and stay connected🙌)

 

This is very useful! Thank you for sharing it this way! I've been in this learning path for a while and now I really want to put all of this knowledge in solving real world projects. I'm a little bit afraid of Kaggle, do you have any word to someone that is starting in this kind of competitions?

 

It took me time to realize that the more I made a mistake, the more I learned. Kaggle projects have a certain level of complexity that will make you go wrong, but that will make you an expert

 

Hello Diego!
My name is Tatiana, I’m a Brand Manager representing Plarium, an international game development company specializing in mobile and browser games (company.plarium.com).

We would like to translate this article and post it in our blog on Habr.com - habr.com/ru/company/plarium/.

We appreciate your consideration of our permission request. Link to the specific original content will surely be provided in the translated version. Looking forward to hearing from you soon!

Regards, Tatiana

 
 

I like your approach to learning the math fundamentals that are used in machine learning. While some concepts can be difficult to wrap your head around, there are so many approaches to learning them, which is why I'm glad you mentioned Khan Academy for their lessons.

Working in web development now, I haven't had to use my Math degree much, but I'm interested in other tech fields were I can still code and also apply linear algebra and calculus. I'll definitely check out machine learning.

 

Great! Best of lucks!

 

Great article, very useful. Thanks for sharing.

 

Thanks for sharing Diego. You really nailed your point well. Funny how i'm in this exact situation as well, and I went from maths to python then statistics and now diving into ML

 

That's great! Best of lucks in your learning process!

 

Great Article! Keep it up :)

 

Sounds about right. The difference behind self-taught and educated that there is more structure to classical eduction, which is built upon many studies, and continuously developing, where as self-taught is more chaotic and may lead you nowhere at the end of the day.