隐含马尔科夫模型
通信的本质就是编解码和传输的过程
观测信号:
发送源的信息:
已知的情况下,求得令条件概率达到最大值得那个信息串,即(解码)
通过贝叶斯公式,上述公式等价变换为
发送端产生信息的可能性(比如说话的人),可忽略的常数
表示在接收端是合符情理的信号
表示信息在传输后变成接收的信号的可能性
可以用Hidden Markov Model来估计
只与它的前一个状态有关,即的随机过程,称为马尔科夫过程,也称为马尔科夫链
图中表示,
隐含马尔科夫模型是马尔科夫链的一个扩展:任一时刻t的状态是不可见的,但输出跟相关而且仅跟相关,即独立输出假设
基于马尔科夫假设和独立输出假设,某个特定的状态序列产出输出符号的概率:
由和可以得到上式,说明了通信的解码问题可以用隐含马尔科夫模型来解决。同时,找出上式的最大值进而找出要识别的句子,可以用维特比算法(Viterbi Algorithm)
是语言模型
在语音识别叫“声学模型”,在机器翻译叫“翻译模型”
表示从前一个状态进入当前状态的概率,称为转移概率
表示每个状态产生相应输出符号的概率,称为生成概率
训练隐含马尔科夫模型的过程,即估算转移概率和生成概率(称为模型参数),直接估算上述参数需要大量的人工标注数据,成本非常高。
更实用的方式是仅仅通过大量观测到的信号就能推算出模型参数的和,即无监督学习的训练方法,主要使用的鲍姆-韦尔奇算法。
鲍姆-韦尔奇算法的思想:
1、首先找到一组能够产出输出序列的模型参数(比如转移概率P和输出概率Q为均匀分布时,是可以产出任意输出序列的),记为
2、根据这个模型,计算出某个特定的输出序列的概率;以及最有可能产出这个输出的状态序列,获得产生的所有可能路径以及这些路径的概率,和每个状态经历了多少次,到达了哪些状态,输出了哪些符号(看作标注的训练数据),再根据:
和
计算出新的模型参数,即得到,可以证明
3、重复2直至没有找到更好的模型
上述过程也就是EM过程(Expectation-Maximization)
总结
通信模型可以用隐含马尔科夫模型来解决,自然语言处理、语音识别跟通信原理相通,当然也可以用它
解码算法:维特比算法
训练算法:鲍姆-韦尔奇算法