You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I am confused wrt lines 26 and 27 of the viterbi implementation: trellis[:, t] = (trellis[:, t-1, None].dot(self.Obs(obs[t]).T) * self.transProb).max(0) backpt[:, t] = (np.tile(trellis[:, t-1, None], [1, self.N]) * self.transProb).argmax(0)
I am not able to understand why there is no dot product happening in the second line. Why multiply only with transProb without taking obs into account?
Please help.
The text was updated successfully, but these errors were encountered:
@tarunrkk: backpt is the backtrace to keep track the maximum decoding path. At timestep t, the backpt array keeps track of the best path so far up to timestep t-1. The observation probabilities obs at time t is taken into account in trellis at timestep t, which is taken into account in backpt at timestep t+1.
If it is still confusing, here is the algorithm for your reference: https://phvuresearch.files.wordpress.com/2013/12/viterbi_algo.png?w=1024&h=704
Hi,
I am confused wrt lines 26 and 27 of the viterbi implementation:
trellis[:, t] = (trellis[:, t-1, None].dot(self.Obs(obs[t]).T) * self.transProb).max(0) backpt[:, t] = (np.tile(trellis[:, t-1, None], [1, self.N]) * self.transProb).argmax(0)
I am not able to understand why there is no dot product happening in the second line. Why multiply only with
transProb
without takingobs
into account?Please help.
The text was updated successfully, but these errors were encountered: