隐含马尔科夫模型(数学之美)
背景在自然语言的处理或者语音识别方面,我们可以跟编码解码进行类比,比如说从汉语到英语的翻译,说话者讲的是汉语,从汉语到英语的翻译过程可以理解为编码。翻译成英文的效果根据上文中统计语言模型提到的概率来评价,概率越大,翻译的效果越好。所以只要找到条件概率最大即为翻译后的结果。公式表示如下:s1,s2,s3,...=Maxall s1,s2,s3...P(s1,s2,s3...|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,...) 的可能性是固定的,所以上面的式子可以简化为:
隐含马尔科夫模型
针对上面提出的公式,其实可以使用隐含马尔科夫模型来估计。
马尔科夫链
举个例子来说,长江水面高度的监控其实是一件很重要的事情,长江水面的高度可能跟前些天的水面高度以及是否下雨等天气相关。所以要预测长江水面高度是一件很复杂的事情。马尔科夫为了简化问题,提出了一种假设—-假设当前的状态只与它的前一个状态相关,即
P(st|s1,s2,s3,...st−1)=P(st|st−1)
.
这个假设就是马尔科夫假设。而符合这个假设的随机过程称为马尔科夫过程,也称为马尔科夫链。
举例
如上图所示,表示一个简单的离散马尔科夫链。其中四个长方形表示四个状态,每条边表示状态转换,边上的权值表示转换概率。从上图可知从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
,最终的结果为
隐含马尔科夫模型
隐含马尔科夫模型是马尔科夫模型的拓展,即任意时刻的状态是不可观测的。所以我们无法直接观测一个马尔科夫链,以及根据根据马尔科夫链计算后续的转移概率。但是隐含马尔科夫模型在任意时刻会输出一个状态
ot
,且这个状态只与
st
相关,这个被称为独立输出假设。具体如下图所示:
基于马尔科夫假设和独立输出假设,可以计算出某个特定的状态序列
s1,s2,s3...
产生输出状态
o1,o2,o3...
的概率:
最后
在一开始提出的式子
Maxall s1,s2,s3...P(o1,o2,o3,...|s1,s2,s3,...)P(s1,s2,s3,...)
中,根据上面的介绍可得:
最后至于最大值的求解可以使用维特比算法。
更多推荐
所有评论(0)