Now, as far as the difference between PCA and eg an autoencoder (which is similar to an RBM, but different--both RBMs and autoencoders are "deep neural networks")--well, PCA just learns a linear mapping. You can stack PCAs on top of each other I guess, but it is functionally equivalent to a single layer. So it makes certain assumptions about the behavior of the data--specifically, that it's linear.
A neural network layer calculation looks like this: nonlin(Wx + b) A deep neural network forward pass looks something like this:
W3 .* nonlin(W2 .* nonlin(W1 .* INPUT+b1)+ b2) + b3)
Nonlin can mean a variety of things. Usually tanh, sigmoid, or max(0,x). If you remove those nonlinearities, it basically becomes like PCA, like a model that learns a linear mapping. When you have those nonlinearities, you get a non-linear mapping which, theoretically, lets you address a wider variety of problems.
But yeah, if you want to learn about deep learning, just learn about neural networks. It's the same thing.
Also, re: your point on local minima--on the upper end of experiments that have been done, you've got over a billion parameters. 10 million parameters would be on the relatively small side. I think it's reasonable for there to be a variety of possible solutions to any given problem, and the whole idea is that we're using models that are very flexible due to their high capacity. The problem historically has been using the capacity effectively. However, regularization methods like dropout help a lot, and I've found it's easier to think of neural networks as "feature learners". Each one of those neurons is theoretically a feature its learning. And even still, if you look at the features that are learned by convolutional nets (which are easier to visualize due to their being used on vision problems), they tend to arrive at similar features even though it starts from fairly different initializations.
Hi, could you explain this further? From my limited understanding, couldn't deep learning be achieved without neural networks? If we define deep learning as something like automatic feature extraction on one level of hierarchy in order to aid classification at a different level. I understand that you are saying that neural networks are the most common tool used, however what is the reason for this -- couldn't one also stack the results of other algorithms (decision trees, SVM, etc.) into a hierarchy of features?
Re: stacking SVMs and decision trees for feature hierarchies: I guess you could (maybe), but you'd get worse results than if you used neural nets. And definitionally it wouldn't be deep learning.
This is only interesting if you want to analyze the model. Not if you just want a function f(x) that tells you whether x is a cat or a dog.