DEES is a is a _Multiplicity Automata_ (MA) inference algorithm.
This C++ program is about 7,500 lines (10,000 with comments).
The theory behind this algorithm can be found in the following papers:
- [Learning rational stochastic languages (COLT 2006)](http://yann.esposito.free.fr/pub/colt2006.pdf)
A Multiplicity Automaton can be seen as a generalisation of Hidden Markov Models (HMM). See this [paper for more details](http://yann.esposito.free.fr/pub/Links_PA_HMM.pdf).
So mainly DEES is an algorithm that learn both the parameters and the structure of HMM.
And for that it doesn't use an euristic but properties proven to converge.
In fact DEES can generate HMM but also more generic models.
These models are the Multiplicity Automata (mainly, imagine an HMM with some parameter being able to be negative).
It takes a sample of many sequences (or words) generated by a target probability distribution and return a model (a multiplicity automaton) generating a probability distribution as close as possible of the target distribution.
We can restric the learned model to be:
- a Multiplicity Automaton
- a Probabilistic Automaton (PA) (another name for Hidden Markov Models - HMM) ; in this case the identified class is the set of Probabilistic Residual Automata (PRA)
- a Probabilistic Deterministic Automaton (PDA)
## Features
The main features of DEES are:
- Multiplicity automata (MA) inference from a sample of sequences.