Live data from Hacker News

Neural Networks for Machine Learning

coursera.org

41–50 of 58 posts

Re: Neural Networks for Machine Learning

#41
post #23

> Neural Networks are gradually taking over from simpler Machine Learning methods And haven't SVMs and such gradually taken over from Neural Networks?

I am not an expert in SVMs, but I consider myself fairly experienced in machine learning. In my professional experience the answer to your question is 'not quite'. SVMs have solved some problems very well, but I've had issues with them:

1. They are only for classification, not every problem is classification. The other big category is regression, for example predicting the sale price of a home rather than predicting a binary "will it sell"

2. They don't have a natural probabilistic interpretation for classification. Neural networks for classification (with a logistic activation function) are trained to predict a probability, not make a simple binary decision. In practice this probability is usually very useful, although I believe SVMs have been modified to give some kind of probability.

3. I have had a tough time getting them to run quickly. Linear kernel SVMs are fast, but aren't powerful. More complex kernels are more powerful but can be very slow on moderately large datasets.

Re: Neural Networks for Machine Learning

#42

Earlier quoted context omitted.

> My one complaint is that the programming assignments weren't interesting at all. The results were interesting, but the setups were mostly given to us, and we just had to code an algorithm that was in our notes. For someone who understands the basics of linear algebra and programming, it was just a syntax challenge, and that got irritating after a bit so I stopped doing them. I agree with this. The programming assig…

I've noticed this to be the case too with other courses. So for this one I've decided to implement everything in Scala (I'm currently taking the functional programming course as well. This will work well since this machine learning course requires no code submission and just questions about the results

I thought about doing it in scala too but I thought there might be issues with grading, do you know if there's an auto-grader for this course?

Re: Neural Networks for Machine Learning

#43

I'm in the middle of the machine learning coursera course, and registered for this one as well due to interest in the material. My one complaint is that the programming assignments weren't interesting at all. The results were interesting, but the setups were mostly given to us, and we just had to code an algorithm that was in our notes. For someone who understands the basics of linear algebra and programming, it was…

Try the Learning From Data course : http://work.caltech.edu/telecourse.html A Fall run has just started (on the 2nd of oct.).

It's the same version as the course given at CalTech and is more in-depth than Andrew Ng's. There is no skeleton code for the programming assignments, answers are made through quizzes. I took the summer session and learned a lot from it.

Re: Neural Networks for Machine Learning

#44
post #26

I tried to do a couple coursera courses and found the video lectures highly inefficient; very needlessly time consuming, even watching them sped up. All I really want is a glorified text book with quiz grading and a final.

this. No offense to these professors, but what are they presenting in their video lectures that I can't garner from their writing?

Humanity. Which, believe it or not, makes a huge difference in learning subjects.

Re: Neural Networks for Machine Learning

#45
post #41
post #23

> Neural Networks are gradually taking over from simpler Machine Learning methods And haven't SVMs and such gradually taken over from Neural Networks?

I am not an expert in SVMs, but I consider myself fairly experienced in machine learning. In my professional experience the answer to your question is 'not quite'. SVMs have solved some problems very well, but I've had issues with them: 1. They are only for classification, not every problem is classification. The other big category is regression, for example predicting the sale price of a home rather than predicting…

for 1. you can definitely modify an SVM to be used for regression, as far as I know most standard SVM libraries have support for regression, and I have personally used them very successfully for this task. [0]

2. There are actually ways you can modify the output of an SVM to give a probabilistic interpretation[1]. But I'll agree with the not having a 'natural' probabilistic interpretation.

3. Is definitely correct, but I'm not sure NNs are that much better.

[0] http://www.svms.org/regression/

[1] http://www.cs.colorado.edu/~mozer/Teaching/syllabi/6622/pape...

Re: Neural Networks for Machine Learning

#46

I'm in the middle of the machine learning coursera course, and registered for this one as well due to interest in the material. My one complaint is that the programming assignments weren't interesting at all. The results were interesting, but the setups were mostly given to us, and we just had to code an algorithm that was in our notes. For someone who understands the basics of linear algebra and programming, it was…

I took CS229 here at Stanford and I was also one of the TAs for the online version last year (I was one of 2.5 people involved with making the programming assignments).

First, the Stanford CS229 version is definitely much more difficult than what you guys had online. The focus in the actual class was on the math, derivations and proofs. The homeworks sometimes got quite tricky and took a group of us PhD students usually about 2 days to complete. There was some programming in the class but it was not auto-graded so usually we produced plots, printed them out, attached the code and had it all graded by TAs for correctness. The code we wrote was largely written without starter code and I do believe you learn more this way.

An online version of the class comes with several challenges. First, you have to largely resort to quizzes to test students (instead of marking proofs, derivations, math). There is also no trivial way to autograde resulting plots, so everything has to be more controlled, standardized and therefore include more skeleton code. But even having said all that, Andrew was tightly involved with the entire course design and he had a specific level of difficulty in mind. He wanted us to babysit the students a little and he explicitly approved every assignment before we pushed it out. In short, the intent was to reach as many people as possible (after all, scaling up education is the goal here) while giving a good flavor of applied Machine Learning.

I guess what I mean is that you have more experience than the target audience that the class was intended for and I hope they can put up more advanced classes once some basics are covered (Daphne Koller's PGM class is a step in this direction). But there are still challenges with the online classes model. Do you have ideas on how one can go beyond quizzes, or how one can scale down on the skeleton code while retaining (or indeed, increasing) the scale at which the course is taught?

Re: Neural Networks for Machine Learning

#47
post #23

> Neural Networks are gradually taking over from simpler Machine Learning methods And haven't SVMs and such gradually taken over from Neural Networks?

Here's the problem: There is no silver bullet in Machine Learning and many of these approaches (SVMs, Neural Nets, Random Forests, PGMs, etc.) have their pros and cons that depend on many variables, for example:

- How much data do you have wrt dimensionality?

- How "easy" do you suspect your problem to be? Is it likely linearly separable? Equivalently, how good are your features?

- Do you have many mixed data? Missing data? Categorical/Binary data mixed in? (Better use Forest, perhaps!)

- Do you need training to be very fast?

- Do you need testing to be very fast on new out of sample data?

- Do you need a space-efficient implementation?

- Would you prefer a fixed-size (parametric) model?

- Do you want to train the algorithm online as the data "streams" in?

- Do you want confidences or probabilities about your final predictions?

- How interpretable do you want your final model to be?

etc. etc. etc. Therefore, it doesn't make any sense to talk about one method being better than another.

One thing I will say is that, as far as I am aware, Neural Nets have a fair amount of success in academia (which should be taken with a grain of salt!), but I haven't seen them win too many Kaggle competitions, or other similar real-world problems. SVMs or Random Forests have largely become the weapon of choice here.

Neural Nets do happen to be very good when you have a LOT of data in relatively low-dimensional spaces. Many tasks, such as word recognition in audio or aspects of vision fall into this category and Google/Microsoft and others have incorporated them into their pipelines (which is much more revealing than a few papers showing higher bars for Neural Networks). In these scenarios, Neural nets will parametrically "memorize" the right answers for all inputs, so you don't have to keep the original data around, only the weighted connections.

Anyway, I wrote a smaller (and related) rant on this topic on G+: https://plus.google.com/100209651993563042175/posts/4FtyNBN5...

Re: Neural Networks for Machine Learning

#48

I'm in the middle of the machine learning coursera course, and registered for this one as well due to interest in the material. My one complaint is that the programming assignments weren't interesting at all. The results were interesting, but the setups were mostly given to us, and we just had to code an algorithm that was in our notes. For someone who understands the basics of linear algebra and programming, it was…

I took CS229 here at Stanford and I was also one of the TAs for the online version last year (I was one of 2.5 people involved with making the programming assignments). First, the Stanford CS229 version is definitely much more difficult than what you guys had online. The focus in the actual class was on the math, derivations and proofs. The homeworks sometimes got quite tricky and took a group of us PhD students usua…

I think peer-graded assignments might do the job. I am taking Gamification course on Coursera right now, and I liked peer-graded assignments a lot.

If there would be peer-graded assignments in machine learning course, I would definitely have tried them out.

Re: Neural Networks for Machine Learning

#49
post #23

> Neural Networks are gradually taking over from simpler Machine Learning methods And haven't SVMs and such gradually taken over from Neural Networks?

Well not quite. While SVMs gained a lot of popularity for having nice properties e.g.

1) a convex problem which means a unique solution and a lot of already existing technology can be used

2) the "kernel trick" which enables us to learn in complicated spaces without computing the transformations

3) can be trained online, which makes them great for huge datasets (here the point 2) might not apply - but there exist ways - if someone's interested I can point out some papers)

There is an ongoing craze about deep belief networks developed by Hinton et al. (who is teaching this course) who came up with an algorithm that can train them reasonably well (there exist local optima and such, so it's far from ideal). Some of the reasons they're popular

1) they seem to be winning algorithm for many competitions / datasets, ranging from classification in computer vision to speech recognition and if I'm not mistaken even parsing. They are for example used in the newer Androids.

2) DBNs can be used in an unsupervised mode to _automatically_ learn different representations (features) of the data, which can be then used in subsequent stages of the classification pipeline. This makes them very interesting because while labelled data might be hard to get by, we have a lot of unlabelled datasets thanks to the Internet. As what they can do - see the work by Andrew Ng when they automatically learned a cat detector.

3) DBS are "similar" to biological neural networks, so one might think they have the necessary richness for many interesting AI applications.

Post reply on HN