Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Support Vector Machine or Artificial Neural Network for text processing? [closed]

We need to decide between Support Vector Machines and Fast Artificial Neural Network for some text processing project.

It includes Contextual Spelling Correction and then tagging the text to certain phrases and their synonyms.

Which will be the right approach? Or is there an alternate to both of these... Something more appropriate than FANN as well as SVM?

like image 616
Arc Avatar asked Mar 12 '10 17:03

Arc


People also ask

Which is better SVM or neural network?

What's more important, though, is that they both perform with comparable accuracy against the same dataset, if given comparable training. If given as much training and computational power as possible, however, NNs tend to outperform SVMs.

Is SVM faster than neural network?

We also noted that prediction time for neural networks is generally faster than that of SVMs. If you have a few years of experience in Computer Science or research, and you're interested in sharing that experience with the community, have a look at our Contribution Guidelines.

Why is SVM better than MLP?

SVMs based on the minimization of the structural risk, whereas MLP classifiers implement empirical risk minimization. So, SVMs are efficient and generate near the best classification as they obtain the optimum separating surface which has good performance on previously unseen data points.

Is SVM an artificial neural network?

An SVM is a non-parametric classifier that finds a linear vector (if a linear kernel is used) to separate classes. Actually, in terms of the model performance, SVMs are sometimes equivalent to a shallow neural network architecture.


2 Answers

I think you'll get a competitive results from both of the algorithms, so you should aggregate the results... think about ensemble learning.

Update:
I don't know if this is specific enough: use Bayes Optimal Classifier to combine the prediction from each algorithm. You have to train both of your algorithms, then you have to train the Bayes Optimal Classifier to use your algorithms and make optimal predictions based on the input of the algorithms.

Separate your training data in 3:

  • 1st data set will be used to train the (Artificial) Neural Network and the Support Vector Machines.
  • 2nd data set will be used to train the Bayes Optimal Classifier by taking the raw predictions from the ANN and SVM.
  • 3rd data set will be your qualification data set where you will test your trained Bayes Optimal Classifier.

Update 2.0:
Another way to create an ensemble of the algorithms is to use 10-fold (or more generally, k-fold) cross-validation:

  • Break data into 10 sets of size n/10.
  • Train on 9 datasets and test on 1.
  • Repeat 10 times and take a mean accuracy.

Remember that you can generally combine many the classifiers and validation methods in order to produce better results. It's just a matter of finding what works best for your domain.

like image 68
Kiril Avatar answered Oct 14 '22 03:10

Kiril


You might want to also take a look at maxent classifiers (/log linear models).

They're really popular for NLP problems. Modern implementations, which use quasi-newton methods for optimization rather than the slower iterative scaling algorithms, train more quickly than SVMs. They also seem to be less sensitive to the exact value of the regularization hyperparameter. You should probably only prefer SVMs over maxent, if you'd like to use a kernel to get feature conjunctions for free.

As for SVMs vs. neural networks, using SVMs would probably be better than using ANNs. Like maxent models, training SVMs is a convex optimization problem. This means, given a data set and a particular classifier configuration, SVMs will consistently find the same solution. When training multilayer neural networks, the system can converge to various local minima. So, you'll get better or worse solutions depending on what weights you use to initialize the model. With ANNs, you'll need to perform multiple training runs in order to evaluate how good or bad a given model configuration is.

like image 43
dmcer Avatar answered Oct 14 '22 04:10

dmcer