Hello everyone,

I want to start implementing some of my mathematics knowledge into programming through AI.

Back 3 months ago I had no idea what is AI, but then I took Machine Learning course on Coursera and finally realized how much maths is included in AI.

However I wasn't able to finish the course with good understanding of what is going on in algorithms because I have no idea what are derivates yet, we haven't studied that in school yet ( will do this year ).

Now... before we study that, I would like to get familiar with some simpler algorithms than Neural Networks.
I've heard of genetics algorithm.. minimax...

Could you tell me which algorithm might be the best for start, if we take in consideration that I don't understand derivates yet?

Thank you.

Recommended Answers

All 4 Replies

Well, if you don't understand derivatives (basic calculus), then you first need to focus on your maths! AI for the most part has a (as you observed) big dependency upon integral and differential calculus. Here is a link to a program which may help with that (shameless plug): http://www.helpwithmath.com/index.php
The author of the program is Dr. Michael Beeson, a close friend for over 40 years, and previously chair of the Department of Mathematics at San Jose State University in California. From my evaluation of the program, and reviews, it is very good at teaching the fundamentals. I even got a copy for my genius grandson who also needed some help with his math and calculus. It won't make you an expert, but it will help get you up to speed.

So.. nothing before differential calculus...

Thank you for the link.

I'm sorry to say, but without knowledge of basic calculus you can't really do much. It's like asking about how to learn to build a house without knowing how to operate a hammer.

I took some machine learning classes back in the day too, and I don't remember it being very heavy on the calculus (except for "gradient-descent" kinds of methods). The bulk of the math is actually probability theory (Bayesian theory, Markov processes, etc..). And a lot of it is also discrete, in which derivatives don't apply (calculus is for "continuous" variables).

Off the top of my head, I would say that certainly genetic algorithms don't involve any complicated math (at least, to implement the methods), so that's one thing to look into. Another area is, as I've mentioned, discrete systems like Markov Decision Processes (MDP), or Markov chains and hidden Markov models. Markov models are quite simple to understand: you just reduce the agents (actors) down to a few key "states" (e.g., in a computer game, you could have bot states or modes like "hide", "attack", "run away", "seek cover", ..), and then you start to model the way these states transition under different conditions (e.g., if you face an enemy holding an RPG, you might want to transition into the "run away" state!). The whole point of the "learning" part of an MDP is figuring out the best strategy to decide when to switch between states. Similarly, a Hidden Markov Model (HMM) is basically just the reverse, which is about trying to figure out what the states of your opponents are by observing their behaviour (some are obvious, like "run away", some less obvious), which is done using Bayesian Inference (which is mostly a simple set of equations, with not much "calculus" involved).

So I think that this might be the best way to go because it will allow you to do some interesting things while tip-toeing around having to face "derivatives". And actually, in computer science, this kind of math (discrete stuff) is pretty important and often isn't taught enough in regular curriculums to really prepare you to CS, so it won't hurt to dig into those things on your own.

But really, you should learn calculus, it's really essential. And derivatives really aren't as scary as they might look.

the reason those classes aren't heavy on teaching math is because they assume you already know the math...
Which tells a lot.

Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.