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.