数学之美--隐含马尔科夫模型
来源:互联网 发布:算法公倍数怎么求 编辑:程序博客网 时间:2024/06/15 02:36
保留初心,砥砺前行
这是令人兴奋的一个章节。
因为科研中总是充满了马尔科夫。
隐含马尔科夫模型也是机器学习的主要工具之一。
引用这句话的目的也是为了证明这一章节的重要性。
引例:
在通信模型中,信息源发出信号s1,s2,s3,…,接收器收到o1,02,03,…。解码操作就是通过收到的o1,02,03,…还原回s1,s2,s3,…。
如何根据o1,02,03,…得到s1,s2,s3,…,可以把这项工作理解成由o1,02,03,…,最有可能产生哪一种s1,s2,s3,…。解释成概率论的语言就是在o1,02,03,…已知的情况下,求P(s1,s2,s3,…|o1,02,03,…)达到最大时的那一串s1,s2,s3,…。也就是如下公式:
![](http://www.forkosh.com/mathtex.cgi? S_{1},S_{2},S_{3},S_{4},\ldots =ArgMaxP\left( S_{1},S_{2},S_{3},\ldots |O_{1},O_{2},O_{3},\ldots \right))
利用贝叶斯公式,可以把上式等价变成
![](http://www.forkosh.com/mathtex.cgi? \dfrac {P\left(O_{1},O_{2},O_{3} ,O_{4} ,\ldots |S_{1},S_{2},S_{3},\ldots \right)\cdot P\left( S_{1},S_{2},S_{3}\right)} {P\left( O_{1},O_{2},O_{3}\right)})
其中,分子的左边的P代表在信息s1,s2,s3,…经过传输后变成o1,02,03,…的可能性;右边的P代表是一个正常信号的概率;分母代表接发送端产生信息o1,02,03,…的可能性。
o1,02,03,…一旦产生,就不会再发生变化,因此P(o1,02,03,…)可以看作一个常数,上面公式就可以等价成
![](http://www.forkosh.com/mathtex.cgi?{P\left(O_{1},O_{2},O_{3} ,\ldots |S_{1},S_{2},S_{3},\ldots \right)\cdot P\left( S_{1},S_{2},S_{3}\right)} )
这个公式可以用隐含马尔科夫模型来估计。
隐含马尔科夫模型
马尔科夫假设在随机过程中每个状态st的概率分布,只与它的前一个状态st-1有关,即!
符合这个假设的随机过程成为马尔科夫过程,也称为马尔科夫链。
这一段是重点内容:
可以把这个马尔科夫链想象成一台机器,它随机的选择一个状态作为初始状态开始运行,并且按照马尔科夫链的规则持续选择后续状态。这样在运行了一段时间T后,就会产生一个状态序列:s1,s2,s3,… ,sT。根据这个序列,很容易得到某个状态si出现的次数#(si),也很容易得到si转换到sj的次数#(si,sj)。从而得到si转移到sj的概率:#(si,sj) / #(si)。
隐含马尔科夫模型是上述马尔科夫链的一个扩展。
隐含马尔科夫模型中任意时刻t的状态st是不可见的。因此上述的根据观察序列得到概率的方式都不再working。幸好隐含马尔科夫模型在每个t都会输出一个符号ot,这个ot与st相关并且只与st相关,这个被称为独立输出假设。
上图中下边一层的4个状态s不可见,这些s是典型的马尔科夫链,而它们输出的符号o是可见的。
根据上述的独立输出假设,我们可以得到如下公式:
![](http://www.forkosh.com/mathtex.cgi?{P\left(O_{1},O_{2},O_{3} ,\ldots |S_{1},S_{2},S_{3},\ldots \right)=\prod {t}P\left( o{t}|s_{t}\right)} )
根据上述的马尔科夫假设,我们可以得到如下公式:
![](http://www.forkosh.com/mathtex.cgi?{P\left( S_{1},S_{2},S_{3},\ldots\right)=\prod {t}P\left( s{t}|s_{t-1}\right)} )
使用以上两个公式与之前的通信问题中的最终推导式
![](http://www.forkosh.com/mathtex.cgi?{P\left(O_{1},O_{2},O_{3} ,\ldots |S_{1},S_{2},S_{3},\ldots \right)\cdot P\left( S_{1},S_{2},S_{3}\right)} )
相比较,可以容易地看出这些公式在形态上相似。把独立输出和马尔科夫假设的两个公式相乘,可以正好得到之前在通信问题中我们所要求的内容。因此通信的解码问题完全可以使用隐含马尔科夫模型来解决。
就像前文所说的那样,我们要找到的是那个公式的所有参数情况下,概率最大的那一组s1,s2,s3,…。至于如何找到最大的概率进而找到这组状态串,可以利用维特比算法,在后边的章节会介绍。
- 数学之美--隐含马尔科夫模型
- 隐含马尔科夫模型(数学之美)
- 数学之美——隐含马尔科夫模型
- 数学之美笔录(3):隐含马尔可夫模型(详解)
- 数学之美系列之三:隐含马尔可夫模型在语言处理中的应用
- 数学之美(系列三) 之 隐含马尔可夫模型在语言处理中的应用
- 数学之美系列之三:隐含马尔可夫模型在语言处理中的应用
- 数学之美 系列三 -- 隐含马尔可夫模型在语言处理中的应用
- 数学之美 系列三 -- 隐含马尔可夫模型在语言处理中的应用
- 数学之美 系列三 -- 隐含马尔可夫模型在语言处理中的应用
- 数学之美 系列三 -- 隐含马尔可夫模型在语言处理中的应用
- 数学之美 系列三 -- 隐含马尔可夫模型在语言处理中的应用
- 数学之美 系列三 -- 隐含马尔可夫模型在语言处理中的应用
- 数学之美 系列三 -- 隐含马尔可夫模型在语言处理中的应用
- 数学之美 系列三 隐含马尔可夫模型在语言处理中的应用
- 数学之美 系列三 -- 隐含马尔可夫模型在语言处理中的应用
- 数学之美 系列三 -- 隐含马尔可夫模型在语言处理中的应用
- 数学之美 系列三 -- 隐含马尔可夫模型在语言处理中的应用
- 数学之美--信息的度量和作用--信息熵,条件熵和交叉熵
- 【Tomcat】一分钟教你eclipse如何配置tomcat(二)
- Java动态代理机制详解(JDK 和CGLIB,Javassist,ASM)
- JAVA学习之Builder模式
- Linux设置主机名和配置主机名跟IP地址映射
- 数学之美--隐含马尔科夫模型
- C++输入cout与输出cin(详细用法)
- 字节流文件复制
- C++如何实现伪反射!
- LintCode:M-背包问题 II
- Python学习笔记(七)-- Python元组
- [Note]位置属性
- 扩大VMware虚拟机中CentOS7的硬盘空间过程记录
- Mac 下Android apk 的反编译