This is a very broad question. In general, neural networks with one hidden layer, a nonlinear activation function, and a sufficient number of hidden neurons are able to approximate any function with arbitrary accuracy. However, the error function is not convex, and therefore the learning outcome depends on the initialization.
SVMs can also approximate any function. They are very popular because the optimization problem has a unique solution, and there may be other reasons. But recent studies have shown that neural networks, such as multilayer perceptrons, convolutional neural networks, deep neural networks, deep neural networks with many columns, etc., are more efficient and provide better results for complex applications with a huge amount of data. So this is always a compromise, as LiKao stated (no free dining theorem), and no classifier is "ideal."
Here is a document that describes the advantages of deep networks over “shallow networks” that include auxiliary vector machines: http://yann.lecun.com/exdb/publis/pdf/bengio-lecun-07.pdf
Here is a standard test and comparison of various learning algorithms: http://yann.lecun.com/exdb/mnist/
Here is a document that describes a new kind of neural network, which is especially good at solving some problems with vision (recognition of a road sign, ocr): http://arxiv.org/abs/1202.2745
source share