I have created a Hidden Markov Process with an initial probability vector, emission and transmission matrices.

hmm = HiddenMarkovProcess[Table[1/21, {i, 1, 21}], tm, em]

popup question: What sort of an object is my hmm now? Its Head[] gives HiddenMarkovProcess. And in the documentation I have seen many functions like LogLikelihood[] that take as a parameter a process or proc. I'm not sure I understand what "type" proc is. Is it atomic structure in Mathematica like String and such?

Anyway, I now have a large annotated data that I want my HMM to classify them into 2 classes. Having the list of annotated emission strings, basically I want to minimize the log-likelihood function using gradient descent or the Baum-Welch E-M algorithm. I saw a high-level function called EstimatedProcess to which I can give a process and say estimate by Baum-Welch. Will this update my transmission and emission matrices?
Also can I pass the functions like LogLikelihood to the function Minimize and just then use the option GradientDescent or anything of the sort?

Note: I don't want to use the Classify function since I want to have my custom made HMM.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.