I'm really excited by all of this free university level material flooding the web as I never even started college due to financial concerns (aka I didn't want to get any loans).
We are still in the honeymoon phase of free, online university courses, so I think there's been relatively little criticism of what's available now, but I'll go for it: I was disappointed by the Coursera/Stanford ML class. It was obviously watered down, the homeworks were very (very) easy, and I retained little or nothing of significance.
In contrast, the Caltech class was clearly not watered down, and, as the material was much more focused (with a strong theme of generalization, an idea almost entirely absent from the Stanford class, as I recall) I feel I learned far more.
Another big difference: the Caltech class had traditional hour-long lectures, a simple web form for submitting answers to the multiple-choice* homeworks, and a plain vBulletin forum. The lectures were live on ustream, but otherwise, no fancy infrastructure.
So I think that some interesting questions will come up. Do we need complex (new) platforms to deliver good classes? For me, the answer right now is no -- what clearly matters is the quality and thoughtfulness of the material and how well it is delivered. Can a topic like machine learning be taught effectively to someone who doesn't have a lot of time, or who doesn't have the appropriate background (in CS, math)? Can/should it be faked? I don't think so, but I think there are certainly nuances here.
* Despite being multiple-choice, the homeworks were not easy -- they typically required a lot of thought, and many required writing a lot of code from scratch.
Daphne Koller's Probabilistic Graphical Models was their first graduate class and it was definitely tougher than other Coursera offerings have been.
I guess it was partially watered down in that the programming part of the class was optional.
That being said, several of my peers who didn't go to the school really appreciated it for its accessibility.
I think the expectation of that class is to render ML education accessible and palatable, not to train everyone at an elite level. As this field grows, I'm sure the needs of various parties would be filled to an extent.
However, I'm glad you pointed it out, because I'm eager to learn about ML & hope to use this (CalTech) material to augment the foundation I get from the coursera class.
I found some courses(I don't know if there are more):
Andrew Ng Stanford CS229: http://cs229.stanford.edu/info.html
Caltech(the one from the OP link): http://work.caltech.edu/telecourse.html
Tom Mitchell Carnegie Mellon: http://www.cs.cmu.edu/~tom/10701_sp11/
I'm considering following the Tom Mitchell course as it seems to go deeper into the details, also because it uses a pretty cool bibliography.
What do you think, am I making the right choice?
Fortunately I can find videos and whitepapers on all those subjects, but seems the libraries are all very much in 'the past'. Maybe I don't know about some, but is there a library/toolbox like Weka which implement all modern & old algorithms and allow you to play on datasets mixing and matching them? Maybe I just couldn't find that, but Weka seems to be too primitive for that?
Disclaimer: I majored in AI a long time ago and I understand most of these concepts, but I have never touched it after I finished, so I'm not up to date/aware of everything, so sorry if I missed a famous tool or something.
Now I am learning Stats by Prof.Thrun at Udacity I assume I will be able to grasp it in much better way.
p.s: anyone is trying to learn ML basics and wish to learn? Why not learn together and solve the interesting problems together? contact me via email given in profile
If you define machine learning algorithms as those that learn from data, then okay. In that case, EAs are reinforcement learning algorithms and other methods like Q-learning are also not ML algorithms.
However, I use the canonical definition by Mitchell: A computer program is said to learn from experience E with respect to some class of tasks T and performance measure P, if its performance at tasks in T, as measured by P, improves with experience E.[1] In this case, it's clear that in fact EAs are very much so an ML method. One could even go so far as to say they are more appropriately ML than things like SVMs as they are truly learning from experience rather than just data being handed to them.
[1] http://en.wikipedia.org/wiki/Machine_learning#Definition
The process of creating that kind of algorithm is also very different: it is based heavily on mathematical/statistical/probabilistic methods and hence the resulting algorithm can be proven that it works with some kind of certainty. On contrary, creating an EA is mostly some kind of "art" (as one UCL professor put it).
All in all, I can't help but feel that even though they are both approaches to the same problem ("how can a computer program learn?"), data-driven methods and EA algorithms don't share much more. And since the results produced by the former are what most people expect of an ML algorithm to accomplish, I tend to think of those when using the phrase "machine learning".
But it's all about semantics in the end.
// I noticed that you are an ML PhD student. So you know exactly what I'm talking about.