Do you need math to get started with machine learning?

My slightly ranty opinion plus some tips for growth

ยท

9 min read

A little story

(If you don't like personal anecdotes, skip to Tips ๐Ÿ˜‰)

Okay so you're interested in machine learning and you ask Google "what do I need to know to start machine learning?"

"Learn calculus, probability, statistics, linear algebra, learn to code, and then you can start learning machine learning," Google tells you.

Your heart sinks.

Maybe you haven't touched math since high school. Being told you need to learn that amount of math just to get started might be enough to send you away in discouragement, never to revisit the idea of machine learning.

It did me at first.

"Stick to learning web dev. Everyone says it is where people without a tech background should go," I told myself again and again.

The thing is, the more I tried to learn web development, the less interested in it I became. While the more I thought about machine learning, the more I just wanted to find out what it was all about.

Several false starts at learning algebra so I could learn precalculus so I could learn calculus so I could learn linear algebra later, I realized it would be months and months before I could start actually playing around with machine learning models.

After one more lackluster attempt at building an ecommerce site with React, I finally just started over. "What's the worst that could happen? I only know a little about matrices, I have no exposure to calculus yet, but it's not going to hurt anything to just see what it's like." So I started studying machine learning, developing intuitions for the math concepts machine learning is built on as I needed them.

We all like Tips

Okay, with that personal anecdote out of the way...

Here are some practical tips for studying the math you need for machine learning:

  • Do not start by learning probability, statistics, linear algebra, and multivariate calculus. Machine learning is built on that mathematical foundation - so it absolutely is important (don't let anyone tell you otherwise) - but you don't need to start there. That is to say, they may be prerequisites in a course catalog, and topics that will help you understand machine learning algorithms more quickly, but if you are learning on your own and start there, you may never get to the point where you feel ready to begin with machine learning.
  • Begin with an introduction to machine learning and when you come to a term you don't understand - for example vector, tensor, function, mean - look it up!
  • Understand what is the motivation for using that particular element of math. For example, before learning what a derivative does - before looking at the mathematical formulas - find out why they are used in the first place.
  • If you don't understand a mathematical formula break it down into the smallest components that you do understand.
  • Alternately, if you aren't able to break down the formula into smaller components, find a different representation of the concept - Look for a:
    • Code snippet
    • Picture
    • Video explanation
    • Worked out algebraic example
    • All of the above!
  • The internet is your friend. If you don't understand one explanation that does not mean you are "not a math person." Instead it may mean you need to learn the concept from a different angle. There is no shame in seeking out another resource if the first one isn't serving you. Don't just keep smashing your head into a brick wall and hope you'll somehow get through it.

And now it's gonna get a little deep

I also want to address the fact that many people consciously or subconsciously feel their self worth is tied to being good or not so good at mathematics. Or, at least, I suspect I'm not the only one.

When I can't remember how to do something in algebra, it still shatters my self esteem. This is probably for a variety of reasons - one of them is probably because I spent a lot of time (4 years?) thinking that if I couldn't solve algebra problems, I wouldn't do well on the SAT, and wouldn't be able to prove to people that I have good logical reasoning skills.

This could be you, if you've ever thought of yourself as "being bad at math" or "not a math person" or "more of a creative person" (or any other euphemisms for bad at math). If maybe you've heard the phrase "you should be able to figure this out with basic high school algebra," and you couldn't. Or in a math explanation someone said "it clearly follows," and it didn't.

You need to start shedding those identities right away. Start thinking of yourself as someone who is learning math. Someone who doesn't know everything yet, but is building their intuitions and is curious to discover more.

You are not unintelligent because you don't understand math. Math isn't obvious. It isn't something we intrinsically know. (Just ask any 5 or 6 year old!)

Math is a learned skill, and as such I believe anyone can learn it. I don't think there are people who are good at math and people who are bad at math. I think that the idea of "a math person" probably has more to do with how well that person learned math the way it was taught to them.

If your brain did well with how math was taught in your school, then you probably excelled in math subjects. But maybe you weren't so lucky. Maybe you've always felt some underlying inferiority because you didn't succeed at math in the classroom. Maybe you've been avoiding math for the rest of your life.

Well I'm here to tell you math is nothing to be afraid of. It is beautiful, it is a useful tool, and you can learn it too.

I got a D in precalculus because I was intimidated by my teacher, never went to office hours, and was so thoroughly confused I didn't even know what questions to ask. And I'm learning how to use partial derivatives in gradient descent from the internet. Will I ever be a calculus expert? Probably not, but that isn't preventing me from learning what I can.

Start with what you know, and build up to what you don't know one step at a time.


What are your thoughts about math? Share them with me in the comments! I'd love to have a conversation with you.