隐马尔可夫模型或称作隐性马尔可夫模型, 是统计模型, 它用来描述一个含有隐含未知参数的马尔可夫过程. 其难点是从可观察的参数中确定该过程的隐含参数. 然后利用这些参数来作进一步的分析, 例如模式识别. 在正常的马尔可夫模型中, 状态对于观察者来说是直接可见的. 这样状态的转换概率便是全部的参数.
维特比算法
维特比算法是一种动态规划算法. 它用于寻找最有可能产生观测事件序列的维特比路径 -- 隐含状态序列, 特别是在马尔可夫信息源上下文和隐马尔可夫模型中. 术语 "维特比路径" 和 "维特比算法" 也被用于寻找观察结果最有可能解释相关的动态规划算法.
图
我们来个狠的, 分析 6 六天 Bob 的心情, 通过 6 天来 Bob 的心情来猜测 Bob 的那边的天气.
图
上图中列出了 Bob 可能那三天红脸在交付项目吧, 管他呢, 先分析一下.
图
老办法似乎有点行不通, 我们人类是善于观察和总结的. 我们的排列组合是随着天数的增加成级数的增加的.
维特比算法
我们从周六
我们从结果考虑, 通过找最佳路径
图
根据之前方式, 我们有很多可能(阴天和晴天的排序), 在周六之前, 这里假定周六是晴天. 如何我们考虑每一种可能, 这样计算量非常大.
图
我们就可以用维特比方法来计算概率排序, 最后一天可能是晴天也可能阴天. 在这之前已经是我们的最优选择啦. 有的时候我们需要假设, 宇宙是无限的, 未知, 我们的研究必须在一定条件下进行. 好了, 不扯远啦
图
我们一层一层向前追溯, 假设在当前的位置前我们已经做出了最优选择.
图
我们回到周一, 我们知道 (3 天 2 天可能是晴天) 所以晴天的概率是 0.67 阴天的概率是 0.33
图
如何是晴天, bob 高兴可能性概率是 0.8
图
计算出今天是晴天并且 Bob 因为晴天所以心情不错的概率为 0.67 * 0.8 = 0.533
图
同样方式我们来考虑一下阴天 Bob 高兴的情况, 计算出的结果为 0.33 * 0.4 为 0.133
图
对比一下, 我们以晴天 wei
图
如果以周二为基准, 如果前一天为阴天这种情况概率是多少呢.
图
输入为晴天和阴天值分别为 0.533 * 0.8 * 0.8 = 0.34112 , 如果周一是阴天, 今天是晴天并且 Bob 高兴的概率为 0.133 * 0.4 * 0.8 = 0.042 对比一下我们留下 0.34 的大概率做为晴天的值. 解释一句中间 0.8 (晴天) 和 0.4(阴天)的概率是天气转换的概率. 想必大家再清楚不过了吧.
图
对于阴天我们采用相同方法, 取大概率数值作为阴天的值.
图
以此类推, 我们得到周三的是晴天 (根据周二是阴天或晴天进行计算) 然后取大概率的值.
图
好经过一番计算, 我们得出上图中这些值.
图
然后我们概率值, 取每天阴天或晴天的最大的概率值的情况作为当天的推测当天为阴天或是晴天值.
图
最后我们根据最佳路径来推测结果.
图
应用范围很广, 可以用于分析语意, 为不同词进行分类, 打标签, 那些词是动词那些词是名词. 也可以根据实现机器人定位.
来源: http://www.jianshu.com/p/f7fb8722e125