Machine Learning is a Coursera class that aims to provide students with basic understanding of the field.
What's interesting about it is that it's the course - one of the three courses that started the whole MOOC movement.
You'll have the opportunity to learn and play around with a wide array of different ML techniques that are used in real life world even now.
On the course page programming is listed as a pre-requisite, but I'd say that's a bit off.
Sure there are programming assignments, but you can get away with very basic knowledge like var assignments, loops and if statements.
Now, what's not stated on the website are math & statistics requirements, which actually threw me off quite a bit, because
at the time of taking this course I had maybe pre-calculus level of understanding math and a lot of concepts just whooshed past me.
I'm now in the middle of Calculus One course and constantly get the "Oh, that's why X is like that" moments.
So I would say that in order to get the most out of this course, you need at least some calculus + basic statistics knowledge.
I've taken the October 2013 version, which might differ slightly from future offerings, but I doubt there will be any drastic changes.
Well, Machine Learning is a field that I was passionate about even before learning how to program.
Something about the idea of creating an artificial mind that can, with minimal supervision, learn about the world on it's own and potentially
even surpass it's creators in intelligence some day, gives me the chills of excitement.
I wonder if that's how Skynet will be born?...
Passing specifically this course was also a personal goal of mine: I've actually taken it back when it all began, but couldn't keep up with the
material and dropped out. So this class was a sort of a benchmark for me. To know that my general knowledge and ability to manage time
improved enough that I can do it now.
What I expected to gain from this class was first and foremost demystification of common terms of the field like NN, KNN, SVM and so on.
Ideally, I would like to gain enough knowledge to be able to apply it in my pet projects or maybe even everyday work.
This course has a very weird pace to it.
It starts off rather slow, having no programming assignment for first week and reasonably hard one for second week.
Then it gets really steep really fast, so by the end of week 4 I was ready to give up once again. But then suddenly after that
the difficulty drops significantly and never really goes back up.
So let me re-iterate this for any future students: you just have to push hard through first 3-4 weeks and then you're golden.
Homework was based on Octave programming language, which I guess is to Matlab what R is to S-Plus - a powerful OS alternative.
But as I mentioned in the intro, it's not really so much programming as understanding math & then translating it into code.
And actually this was kind of my biggest "Aha!" moment of the course - I realized that ML is not about computers, programming or even AI,
it's actually a framework for extracting a matrix of data by issuing a bunch of matrix to matrix operations.
I'm obviously greatly over-simplifying the complexity of the field, but this realisation really helped me in understanding how think about it.
My favorite moment was at assignment #3, where the task was to implement an NN that recognized hand-written digits.
Even though my hand was held the entire time, seeing a program that I personally coded correctly identify numbers was probably one of the coolest moments in my programming journey.
What I liked
The content: it was easy enough to follow without background, even though it came at a cost of missing out on in-depth understanding.
Oh and Andrew Ng always showed real life applications for every topic he covered. For me this eventually turned into a game:
to guess what techniques a major tech company might be applying here and there.
What I disliked
I think difficulty curve could use some tweaking. First few weeks were too hard, but later were too easy even.
But a bigger problem I see is that content age starts to show.
Course was recorded in 2009-ish and so newer trends in ML like deep learning aren't even mentioned.
Here's the breakdown of effort I had to put into this course.*
Lectures*: 19 hours
Review: 5 hours
Homework: 20 hours
Total: 44 hours
Homework average was ~ 2.5 hours.
The longest was assignment #1, which took 4 hours, almost 20% of overall time! While the last few homeworks only took around 1.5 hours.
*Listed are actual hours I've put into working through the course, so 1 hour literally means 60 minutes of work, not 20 min homework, 20 min twitter, 20 min homework
*To save time, I've usually watched videos at 1.2-1.5 speed. This may or may not work for you, for me it was a necessity and thankfully it did.
Overall I think this course is a solid option for anybody looking to broaden their CS knowledge.
I think it was completely worth my time and the goals I set up were achieved.
I wish the content was updated with latest trends in the industry, but it's not a show stopper by any means.
Final Score*: 7/10
*based on arbitrary set of rules that are decided upon by running 1,000,000 Monte-Carlo simulations of rolling an uneven dice.