我们知道他是一个产生型模型.这样我们可以把它看作为一个序列化判别器,比方说我们说一句话:
上边是我们说的话,我们说一句话,其实就可以看作为一个状态序列,而下边对应的,我们其实就可以看作为一个判别器,假如我们把上边的说的话和下边的状态序列加上一个符号...同样的,尽管可见状态之间没有转换概率,但是隐含状态和可见状态之间有一个概率叫做输出概率(emission probability)。就我们的例子来说,六面骰(D6)产生1的输出概率是1/6。...每个长度上对应的隐含状态为2,这样你的时间复杂度就是O(2的100方),这个复杂度是很高的,尽管很简单,但是还是不实用的.就跟我们查找中的直接查找一样,尽管简单,但是实则更困难.这样的话,我们就采用了前向算法和后向算法来去计算这个问题...在这里,我们要用归纳思想去计算在t+1时刻的at+1(i):
这时候我们通过一张图去直观的表示从i到j的状态转移过程:
最终的计算得到的概率为:
那后向算法其实就跟前向算法类似,过程图如下:
那么由上述所知...,前向和后向算法的时间复杂度均是O(N2T),这个相比起之前,已经优化了太多,其中N是隐藏状态的长度,T是序列的长度.