You are here

Spectral Learning

A collection of three method of moments based algorithms for learning stochastic languages, developed by by Borja Balle, William L. Hamilton, and Joelle Pineau.

The learning algorithms produce weighted finite automata that can be used to make predictions over string.

This code in Python includes:

  • Spectral learning algorithm (using both string and substring estimates).
  • Convex optimization learning algorithm.
  • Tensor decomposition based learning algorithm.

It can be downloaded here.

Notice also that a general toolbox compatible with the well-known scikit-learn framework as been released as the Scikit-SpLearn. It contains several variants of the well-known spectral learning algorithm and an optimized python class for weighted automata that includes a bunch of useful methods (like numerically stable minimization).