One(state)-to-Many(emissions) Hidden Markov Model in Python

158 views Asked by At

Is there a way to implement a Hidden Markov Model wherein a single state can emit multiple emission symbols (one[state]-to-many[emissions])?

enter image description here

For instance, suppose I have two states states = {S1, S2} and four emission symbols symbols = {A, B, C, D}. The Viterbi algorithm can be invoked to find the most likely path that generates an example emission 'ABCD' - where it assumes that each state emitted exactly one symbol (ie. S1 -> A, S2 -> B, S1 -> C, S1 -> D .

What I would like to do is to expand the dimension of emissions symbols such that each state can emit multiple symbols symbols = {A, B, C, D, AA, AB, AC, AD, BA, BB, BC, BD ...}. In this way, the state path length may be different from the emission path length: (ie. S1 -> AB, S2 -> C, S3 -> D // 3 states, 4 emitted symbols). I know this one-to-many model is possible with LSTMs, is this possible with a classical HMM architecture?

0

There are 0 answers