I have to tackle this problem: I have some strings that are my training set. These strings belong to a regular language corresponding to a deterministic finite automata (hidden namely I don't now it, neither the language nor the automata). A string is labeled like positive if belong to hidden language and negative otherwise. The strings of training set are correctly labeled. I have to build a statistical classifier from training set that predicts the label of strings not seen (generalization) in the best way (better accuracy, respect to actual labeling of hidden language/automa). I have to choose between Support Vector Machine (SVM), Recurrent Neural Network and Convolutional Neural Network.

What could be the best choice and why?

  • $\begingroup$ If you hadn't restricted the set of methods that can be used, I would have answered "any of the offline methods for automaton learning that libalf has implemented": libalf.informatik.rwth-aachen.de/index.php?page=about - These are specialized to your application case. $\endgroup$
    – DCTLib
    Sep 10, 2018 at 20:01
  • $\begingroup$ @DCTLib I'm experimenting active learning. In a real context I have not a Oracle that can answer equivalences query and then I must approximate the Oracle with a classifier. My goal isn't simply find the minimal dfa from strings in training set (but build a classifier that I can use like a Oracle). $\endgroup$
    – Nick
    Sep 11, 2018 at 21:05

1 Answer 1


My bet would go to a Recurrent Neural Network, as it closely models some (fuzzy, non-discrete) state machine as each character is output. A decent start to read up on RNNs for this purpose is to read the article The Unreasonable Effectiveness of Recurrent Neural Networks which describes character-level RNNs used to predict text.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.