隐含马尔科夫模型(数学之美)

背景

在自然语言的处理或者语音识别方面,我们可以跟编码解码进行类比,比如说从汉语到英语的翻译,说话者讲的是汉语,从汉语到英语的翻译过程可以理解为编码。翻译成英文的效果根据上文中统计语言模型提到的概率来评价,概率越大,翻译的效果越好。所以只要找到条件概率最大即为翻译后的结果。公式表示如下:

s1,s2,s3,...=Maxall s1,s2,s3...P(s1,s2,s3...|o1,o2,o3...)

利用贝叶斯公式:
Maxall s1,s2,s3...P(s1,s2,s3...|o1,o2,o3...)=Maxall s1,s2,s3...P(o1,o2,o3,...|s1,s2,s3,...)P(s1,s2,s3,...)P(o1,o2,o3,...)

其中 P(o1,o2,o3,...|s1,s2,s3,...) 表示信息 s1,s2,s3,... 在翻译前是 o1,o2,o3,... 的可能性。 P(s1,s2,s3,...) 表示 s1,s2,s3,... 是一个合乎情理的句子的可能性。而 P(o1,o2,o3,...) 表示要翻译 o1,o2,o3,... 的可能性。
因为一般来说 P(o1,o2,o3,...) 的可能性是固定的,所以上面的式子可以简化为:
Maxall s1,s2,s3...P(o1,o2,o3,...|s1,s2,s3,...)P(s1,s2,s3,...)

隐含马尔科夫模型

针对上面提出的公式,其实可以使用隐含马尔科夫模型来估计。

马尔科夫链

举个例子来说,长江水面高度的监控其实是一件很重要的事情,长江水面的高度可能跟前些天的水面高度以及是否下雨等天气相关。所以要预测长江水面高度是一件很复杂的事情。马尔科夫为了简化问题,提出了一种假设—-假设当前的状态只与它的前一个状态相关,即 P(st|s1,s2,s3,...st1)=P(st|st1) .
这个假设就是马尔科夫假设。而符合这个假设的随机过程称为马尔科夫过程,也称为马尔科夫链

举例

这里写图片描述
如上图所示,表示一个简单的离散马尔科夫链。其中四个长方形表示四个状态,每条边表示状态转换,边上的权值表示转换概率。从上图可知从p1到p2的转换概率为1,即 P(st+1=p2|st=p1)=1 。p2到p3的概率为0.7,即 P(st+1=p3|st=p2)=0.7

综述(计算转移概率)

因为马尔科夫链中每个状态只与前一个状态相关,所以我们在看到一个马尔科夫链时,可以根据统计的方式来计算概率,比如说 P(st+1|st) ,如果计算这个概率我们只需要统计 st 出现的次数 nt ,以及从 st 转换到 st+1 的次数 nt,t+1 ,最终的结果为

P(st+1|st)=ntnt,t+1

隐含马尔科夫模型

隐含马尔科夫模型是马尔科夫模型的拓展,即任意时刻的状态是不可观测的。所以我们无法直接观测一个马尔科夫链,以及根据根据马尔科夫链计算后续的转移概率。但是隐含马尔科夫模型在任意时刻会输出一个状态 ot ,且这个状态只与 st 相关,这个被称为独立输出假设。具体如下图所示:
这里写图片描述
基于马尔科夫假设和独立输出假设,可以计算出某个特定的状态序列 s1,s2,s3... 产生输出状态 o1,o2,o3... 的概率:

P(s1,s2,s3...,o1,o2,o3...)=tP(st|st1)P(ot|st)

最后

在一开始提出的式子 Maxall s1,s2,s3...P(o1,o2,o3,...|s1,s2,s3,...)P(s1,s2,s3,...) 中,根据上面的介绍可得:

P(o1,o2,o3,...|s1,s2,s3,...)=tP(ot|st)

P(s1,s2,s3,...)=tP(st|st1)

最后至于最大值的求解可以使用维特比算法。

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值