Early last fall, I read about a course on artificial intelligence that Sebastian Thrun and Peter Norvig were teaching online (from nytimes.com), ai-class. Thrun and Norvig are two of the top names in AI today. If you haven’t heard of them, Thrun is behind Google’s driverless car, and I’d first heard of Norvig from reading his very excellent post How to Write a Spelling Corrector. Norvig is also one of the early Google employees who helped with their translation and search optimization.
I have been interested in big data and statistics for a while, and just last spring and summer I had just been doing some side work developing a prototype system for optimizing websites. The long run goal is to use AI to determine which variations will most improve the site. I had been doing research on various techniques that would be most useful. The methods that I had been researching were random forests, decision trees, and artificial neural networks. As I was learning more about these techniques, a huge field of potential applications opened up before me. That’s right when I saw the announcement for Norvig and Thrun’s Introduction to Artificial Intelligence. So, I put the optimization project and my self learning on hold and signed up for their course. Then, I also heard of two other courses also being taught by Stanford professors. One was db-class and the other was ml-class taught by Andrew Ng. (You may have seen videos of the autonomous helicopters for which Ng is known.) There were some potential applications for topics in the machine learning class, so I signed up for that one as well. The intention was to start with the two courses, but then just stick with the more interesting one, dropping to the basic track for the other just to follow the lectures. However, both Thrun and Norvig’s ai-class and Ng’s ml-class were so engaging, that I kept up with both in the advanced track. Below are my brief impressions of the class after some reflection.
Introduction to Artificial Intelligence offered a nice introduction to the field of artificial intelligence. The topics were pretty elementary and didn’t require any previous knowledge. Some units were better than others. I generally enjoyed Thrun’s lectures more than Norvig’s. I found his lectures more clear and his lecturing style more filled with energy and excitement which helped to transmit the same feeling to me. Overall, I give the class a solid B as a result of some of the problems:
- The site went down almost every week when the homeworks were being submitted/grades being checked
- The site forums never went live, instead we used reddit/r/aiclass and aiqus.com, which became the official forum
- Some questions each week were vague (Though the complaints on the forums make them sound worse than they actually were)
- Not as challenging as I would have liked
I can’t say enough about how great this class was. Ng is an excellent lecturer with a fantastic ability at explaining difficult concepts. Having actual programming assignments really helped to solidify my understand of the new concepts. The level of this class was difficult enough to be challenging, but light enough that I was able to complete all of the exercises without impacting my family and work life too much. Though, as a warning to others, I have had previous experience with MatLab, both in University and last summer I was porting some MatLab code to ActionScript. Without that experience, I may not have had time to keep up with this course. However, that being said MatLab/Octave is a great language for this topic as it simplifies much of the code needed to complete the assignments.
In summary, ml-class had none of the technical issues of ai-class, and some additional added benefits:
- You could watch the more elementary material at 1.25X or 1.5X
- There were actual coding exercises
- The material was the right level of challenge for me.
- Ng was such a good lecturer who made difficult material easy to understand
Ng’s ml-class is being offered again this semester. He made me want to go back to school, but only at Stanford and only if I could get Ng as an adviser. Therefore, I highly recommend it for anyone interested in the subject. I also found a great video of a presentation he gave about Machine Learning to the Bay Area Vision Meeting. Machine learning is an exciting field right now. My only wish would have been to also be assigned a final project: See the CS229 Final Project Page.
I wasn’t the only one who took these classes. Tens of thousands of students worldwide started, and finished, each course. After this immense success, Coursera, the the platform for ml-class, listed a dozen more classes that would be offered in the Spring. Most of their classes have been delayed due to legal issues. I think that Stanford is having second thoughts now that their economic model is being threatened. It also inspired two other new platforms for offering free, online university level classes:
- MITx from open courseware pioneer MIT is offering one class: Circuits and Electronics 6.002x
- Udacity from ai-class’s Thrun is offering two courses CS101 and CS373
In December, I signed up for a few of the Coursera classes, and in January I signed up for CS373 from Udacity. I was going to stop there, but then I saw this video about CS101. They’re having a contest at the end of the class, and even though I may not be the target audience, I couldn’t resist. Plus, it shouldn’t take much time as I’m already a proficient programmer familiar with python.
This time, I have decided to post weekly updates on the classes as they progress. I hope that you enjoy.