转【数学之美系列】
1870年,俄国有机化学家Vladimir V. Markovnikov第一次提出马尔科夫模型。
P(S) = P(w1)P(w2|w1)P(w3|w1 w2)…P(wn|w1 w2…wn-1)
其中 P (w1) 表示第一个词w1 出现的概率;P (w2|w1) 是在已知第一个词的前提下,第二个词出现的概率;以次类推。不难看出,到了词wn,它的出现概率取决于它前面所有词。从计算上来看,各种可能性太多,无法实现。因此我们假定任意一个词wi 的出现概率只同它前面的词 wi-1 有关(即马尔可夫假设),于是问题就变得很简单了。现在,S 出现的概率就变为:
P(S) = P(w1)P(w2|w1)P(w3|w2)…P(wi|wi-1) ...
如何估计 P (wi|wi-1),现在有了大量机读文本后,这个问题变得很简单,只要数一数这对词(wi-1,wi) 在统计的文本中出现了多少次,以及 wi-1 本身在同样的文本中前后相邻出现了多少次,然后用两个数一除就可以了,P(wi|wi-1) = P(wi-1,wi)/ P (wi-1) 。
“隐含马尔可夫模型”根据接收到的信息来推测说话者想表达的意思:
其中P(o1,o2,o3,...|s1,s2,s3....) 表示某句话 s1,s2,s3... 被读成 o1,o2,o3,...的可能性, 而
p(s1,s2,s3,...) 表示字串 s1,s2,s3,... 本身能够成为一个合乎情理的句子的可能性,所以这个公式的意义是用发送信号为 s1,s2,s3... 这个数列的可能性乘以 s1,s2,s3... 本身可以一个句子的可能性,得出概率。
我们在这里做两个假设:
第一,s1,s2,s3,... 是一个马尔可夫链,也就是说,si 只由 si-1 决定;
第二,第 i 时刻的接收信号 oi 只由发送信号 si 决定(又称为独立输出假设, 即
P(o1,o2,o3,...|s1,s2,s3....) = P(o1|s1) * P(o2|s2)*P(o3|s3)... 。那么我们就可以很容易利用算法Viterbi 找出上面式子的最大值,进而找出要识别的句子s1,s2,s3,... 。
满足上述两个假设的模型就叫隐含马尔可夫模型。我们之所以用“隐含”这个词,是因为状态s1,s2,s3,... 是无法直接观测到的。
在利用隐含马尔可夫模型解决语言处理问题前,先要进行模型的训练。常用的训练方法由伯姆(Baum)在60 年代提出的,并以他的名字命名。隐含马尔可夫模型在处理语言问题早期的成功应用是语音识别。