Thursday, May 17, 2012

Machine learning in Perl

Well, my ability to keep up with the Caltech ML course seems to have been roughly equivalent to keep up with any other course - worked great for two weeks and then ground to an ignominious halt.  However, I have to say that I truly love the format of the class.  The homework is really only loosely based on the lecture, so to do the programming required to answer the homework questions, you have to think about it all.  It's a great way to learn.

Which brings me to my next project idea: write a book roughly along the order of presentation of the (practical parts of the) Caltech lecture, leaving references to most of the math and providing code samples.  Yes, I mean write my homework problems at my leisure over the next few months, and then some explanatory text around them, and call it all a book.

But this would be a little more refined than just that.  I'd like to keep the notion of making you work for it, if you're so inclined, so first, each chapter would break down into a presentation, then a set of questions for you to answer (the homework, in other words), then code samples answering the questions and a walk-through of why they do so.

And then it would be just a short step to an interactive course - courselet? - that would allow you to force yourself to answer the homework before going on.  Seriously, if these Ivy Leaguers can do it, so can I.  The key is that the Caltech homework is multiple-choice, but designed in such a way that you have to do extensive experimentation (read: write a bunch of code and run it to get some measurements) to answer the questions.  Some questions on the Coursera quizzes are organized in the same way, but I thought Caltech took this to a rather nice extreme - which I really liked, because it allowed me to work in Perl as God intended, rather than having to submit to their language choice.  Why?  Because I was running the code on my own machine, not on their server.  The key is basing your questions on measurements, not on actually running the code.

The answer evaluation part could even be in Javascript - no server-side needed at all.  The idea is to "unlock" further portions of the book, like a game almost.

Just a thought.

No comments:

Post a Comment