美文网首页
隐马尔科夫模型

隐马尔科夫模型

作者: DeepMine | 来源:发表于2022-01-12 23:12 被阅读0次

    隐含马尔科夫模型
    通信的本质就是编解码和传输的过程
    观测信号:o_1, o_2, ...
    发送源的信息:s_1, s_2, ...
    已知o_1, o_2, ...的情况下,求得令条件概率P(s_1,s_2,...|o_1,o_2,...)达到最大值得那个信息串s_1, s_2, ...,即(解码)
    s_1,s_2,... =\mathop{\arg\max}\limits_{all\ s_1,s_2,...} P(s_1,s_2,...|o_1,o_2,...)

    通过贝叶斯公式,上述公式等价变换为
    \frac{P(o_1,o_2,...|s_1,s_2,...)\cdot P(s_1,s_2,...)}{P(o_1,o_2,...)}
    P(o_1,o_2,...)发送端产生信息o_1,o_2,...的可能性(比如说话的人),可忽略的常数
    P(s_1,s_2,...)表示s_1,s_2,...在接收端是合符情理的信号
    P(o_1,o_2,...|s_1,s_2,...)表示信息s_1,s_2,...在传输后变成接收的信号o_1,o_2,...的可能性

    P(o_1,o_2,...|s_1,s_2,...)\cdot P(s_1,s_2,...)可以用Hidden Markov Model来估计

    只与它的前一个状态有关,即P(s_t|s_1,s_2,...,s_{t-1})=P(s_t|s_{t-1})的随机过程,称为马尔科夫过程,也称为马尔科夫链

    图中表示P(S_{t+1}=m_3|S_t=m_2)=0.6P(S_{t+1}=m_4|S_t=m_2)=0.4

    隐含马尔科夫模型是马尔科夫链的一个扩展:任一时刻t的状态s_t是不可见的,但输出o_ts_t相关而且仅跟s_t相关,即独立输出假设

    基于马尔科夫假设和独立输出假设,某个特定的状态序列s_1,s_2,...产出输出符号o_1,o_2,...的概率:
    P(s_1,s_2,...,o_1,o_2,...)=\prod_{t}P(s_t|s_{t-1})\cdot P(o_t|s_t)

    P(o_1,o_2,...|s_1,s_2,...)=\prod_{t}P(o_t|s_t)P(s_1,s_2,...)=\prod_{t}P(s_t|s_{t-1})可以得到上式,说明了通信的解码问题可以用隐含马尔科夫模型来解决。同时,找出上式的最大值进而找出要识别的句子s_1,s_2,...,可以用维特比算法(Viterbi Algorithm)

    P(s_1,s_2,...)是语言模型
    P(o_1,o_2,...|s_1,s_2,...)在语音识别叫“声学模型”,在机器翻译叫“翻译模型”

    P(s_t|s_{t-1})表示从前一个状态s_{t-1}进入当前状态s_t的概率,称为转移概率
    P(o_t|s_t)表示每个状态s_t产生相应输出符号o_t的概率,称为生成概率

    训练隐含马尔科夫模型的过程,即估算转移概率和生成概率(称为模型参数),直接估算上述参数需要大量的人工标注数据,成本非常高。
    更实用的方式是仅仅通过大量观测到的信号o_1,o_2,...就能推算出模型参数的P(s_t|s_{t-1})P(o_t|s_t),即无监督学习的训练方法,主要使用的鲍姆-韦尔奇算法。

    鲍姆-韦尔奇算法的思想:
    1、首先找到一组能够产出输出序列o_1,o_2,...的模型参数(比如转移概率P和输出概率Q为均匀分布时,是可以产出任意输出序列的),记为M_{\theta_0}
    2、根据这个模型M_{\theta_0},计算出某个特定的输出序列的概率P(O|M_{\theta_0});以及最有可能产出这个输出的状态序列P(S|M_{\theta_0}),获得产生O的所有可能路径以及这些路径的概率,和每个状态经历了多少次,到达了哪些状态,输出了哪些符号(看作标注的训练数据),再根据:
    P(s_t|s_{t-1})=\frac{P(s_t,s_{t-1})}{P(s_{t-1})}P(o_t|s_t)=\frac{P(o_t, s_t)}{P(s_t)}
    计算出新的模型参数\theta_1,即得到M_{\theta_1},可以证明P(O|M_{\theta_1}) > P(O|M_{\theta_0})
    3、重复2直至没有找到更好的模型M_{\theta}

    上述过程也就是EM过程(Expectation-Maximization)

    总结
    通信模型可以用隐含马尔科夫模型来解决,自然语言处理、语音识别跟通信原理相通,当然也可以用它
    解码算法:维特比算法
    训练算法:鲍姆-韦尔奇算法

    相关文章

      网友评论

          本文标题:隐马尔科夫模型

          本文链接:https://www.haomeiwen.com/subject/pkqgcrtx.html