I wonder if taking both ai-class.org and ml-class.org is going to be too much load for a person who is working full-time and if they are going to cover a lot of the same topics or not? Does anyone have an insight?
I don't know if the online classes will cover the same, less, or more material than the equivalent classes at Stanford. However, if they cover the same material, both classes combined are about half of a full-time student's workload in terms of academic units, but SUBSTANTIALLY more than half of a full-time's student's workload in terms of effort/hours. The material is difficult and the assignments are challenging. Expect to spend 10-20 hours of intensive work per week on each class.
I took the ML class in Autumn quarter and the AI class in Winter quarter of last year, there is definitely a lot of overlap - although to that extent, it might make it easier since you won't have two disjoint topic sets to study.
ML definitely goes into more mathematical rigor, while AI tends to cover a wide range of topics in enough depth to know when to apply them and how to interpret results.
for what it's worth, if you take the ML class, you will learn most of the things you would learn in the AI class and more - although it does get a bit rigorous, and will take more time than the AI class would. from personal experience, I feel like Ng's class gave me a more thorough foundation in the math behind the concepts, and was more challenging to boot - so I'd recommend it if you're feeling up for it.
I was just informed that Stanford's online ML course is based on CS229A rather than CS 229.
From the CS229A home page
"This class' emphasis is on Applied Machine Learning. Concretely, we want to give you the practical skills needed to get learning algorithms to work. Compared to CS229 (Machine Learning), we cover fewer learning algorithms, and also spend less time on the math and theory of machine learning, but spend much more time on the pratical, hands-on skills (and "dirty tricks") for getting this stuff to work well on an application. More of the homeworks will also focus on giving you practice implementing, modifying and debugging learning algorithms, and less on the mathematical underpinnings of machine learning"
the core idea seems to be that this is a simplified and less rigorous version of CS 229. I am not sure of the tradeoffs between acquiring the "dirty tricks" vs getting a solid grasp of the underlying math (which would presumably result from taking CS229)
Can anyone at Stanford tell me about how much difference is there in the perceived relative toughness of CS229 vs CS 229A? Do CS students take 229A or is it more people from the industry and other (non CS/Math) branches?
I can relay some of the things Prof. Ng said in the first meeting of the CS229A class:
229A is definitely meant to be much less mathematically rigorous - he said that he expects some people who don't feel like they're necessarily up to 229 to take 229A first to gain more familiarity with the material. From the people that actually showed up to the lecture, it was mostly CS people - although it's hard to say what the online enrollment is like. It is definitely meant to be useful to anyone who wants to be able to get machine learning algorithms to work, not necessarily understand their finer points.
Thanks a lot. I am fluent in the pre req math and proving theorems and build ML based real world systems for a living. I just wanted to take a classic class and see what it felt like. I think I'll wait for the online version of 229 then (if there is one in the future).
Thanks again. You saved me a lot of time. Much obliged. HN rocks.
For what it's worth, most of the programming in the ML class when I took it last year was MATLAB based - since it mostly involved lots of linear algebra, and using MATLAB meant you got matrix operations for free. AI class, on the other hand, involved coding an increasingly more intelligent Pacman agent in Python as we learned new approaches to optimizing reward.
Having said that, taking ML definitely made my theory stronger - but this was mostly due to the amount of proofs in the class, and not so much the programming :)
http://www.ai-class.com/overview says: "Programming is not required, however we believe it will be very helpful for some of the homework assignments. You may write code in any language you would like to (we recommend Python if you are new to programming) and your code will not be graded. For example, a question might ask for 6 answers to the same problem but with varied inputs or parameters. You are welcome to work each one out by hand, however writing a program might be both faster and give you a better understanding of how the algorithm works."
So there will be at least some programming, they got me confused - how is it possible to teach AI without programming? :) But we'll see.
The idea is that they won't set problems where the answer to be supplied is a program, but they will set problems which would be tedious or impractical to answer without writing code to help you arrive at the answer.
Perhaps this is the place and occasion to ask this question:
What's the advantage of taking this class over reading a good (text)book incl. exercises contained therein?
I realize people have different learning styles and I'm just not the type who learns well from listening. Still, even though I hated going to classes in school and university, I'm tempted by these offerings (AI, ML, DB). Perhaps I'm just looking for an excuse.
So, anyone here who can give some good reasons for why taking this course is better than (or adds to) a "mere" book?
I, too, am of the the type that learns better by reading, rather than listening but this format provides some additional "incentives" for the hardcore procrastinator who plans to read that AI textbook "later". Most important of all, if you want to complete the course, you're forced to follow a schedule and there are no excuses. Then there is the "reward" factor - you'll be getting a certificate and also all students are ranked based on their exam scores = you'll be motivated to work harder.
Last but not least, the instructors will answer student questions about the course material. That's not something you can get from a book.
I can't think of many hard benefits, but several soft benefits. Being able to ask questions is the only hard benefit I can think of.
Deadlines and expectations might help motivate rather than that book siting on the shelf. You get a fancy piece of paper that lists your "grade" when you are done(achievement might motivate some). I have to admit the main draw (over a book) for me is curiosity about one of the nation's best CS programs and how it compares to the mid-west commuter college I went to.
Am I likely to learn anything of immediate practical benefit on this course? I'm not a computer scientist, just someone who writes lots of scripts to work with Unix/Excel/RDBMS/XML for a finance company.
(not that this would discourage me from taking the course, I'm just curious whether it will give me some new tools on my swiss-army-knife of programming knowledge, for my day job)
For a quick overview of some machine learning fundamentals, you could check out Hilary Mason's "An Introduction to Machine Learning with Web Data" (http://shop.oreilly.com/product/0636920017493.do) videos. They cover classification & clustering, with theory and a quick intro to some relevant Python libraries.
For your purposes, one potential use could be combing through lots of financial data for transactions that look unusual. (Another very common use for classification is spam filtering.)
I'd also recommend Programming Collective Intelligence (http://shop.oreilly.com/product/9780596529321.do) which is filled with lots of python code showing how different algorithms and techniques can be used.
I thought about suggesting that, but when I started working through it, I kept running into errors in the code and formulas. He explains the concepts well, though.
_Artificial Intelligence: A Modern Approach_ by Russell & Norvig ("AIMA") is also quite good, though a bit more demanding of the reader.
However pretty early in the lectures they jump right into taking partial derivatives of matrices for calculating gradient descent. I think by 'no particular math background' they mean 'assuming nothing more than single and basic multivariable calculus plus linear algebra'. If your linear algebra and/or multi-variable calculus are weak/fuzzy (as they are for me) I think those sections will take quite a while to really understand.
The reference course on Stanford is CS229A instead of CS229, which is much lighter on Math. I have watched the videos on Linear and Logistic regression and the hardest derivations are elided, while the emphasis is put on intuitions.
I have a business background and I taught myself to code after getting involved in startups. I'm in the middle of deciding whether it is worth it to go back to school and get a master's degree in computer science. I hope this course will help me make that decision.
Any ideas what the actual schedule will be? Like specific times when new videos go online, how much time will there be to hand in each exercise? I'd like to plan my time... Same questions for AI-Class.
Somewhat disappointed after realizing that the videos are all in Flash. So I can't watch this on my iPad. Does anyone know if these exact videos are also available on iTunes U?
There is a work around to do this (am not sure how ethical this is). Since it works am sharing the same.
1. Disable Flash in your browser (preferably use FF)
2. View video in HTML 5 mode (ex. http://www.ml-class.org/course/video/html5embed?videoid=1)
3. Right click on the video frame and select "Show only this frame"
4. Right click on the frame and select "Download with DownThemAll" ...
There are 120+ HNers on there so you might find folks nearby you'd like to get in touch with.
Edit: Obviously, if you're doing any of the courses feel free to add your details too