zoukankan      html  css  js  c++  java
  • 隐含马尔科夫模型

    隐含马尔科夫模型:

    任一时刻t的状态st是不可见的,观察者没法通过观察到一个状态序列s1, s2, ...来推测转移概率,但隐含马尔科夫模型在每个时刻t会输出符号Ot,Ot和St相关且仅和St相关。

    1、给定一个模型,计算某个特定的输出序列的概率。

    举例:

    已知语音序列{S_{1} ,S_{2} ,S_{3} ,...,S_{t} ,...}的转移概率P(S_{t} |S_{t-1} ),也就是根据上一段语音S_{t-1} 得到下一段语音S_{t} 的概率;

    以及语音S_{t} 得到文本O_{t} 的生成概率P(O_{t} |S_{t} );

    可以解得:得到的文本翻译序列{O_{x} ,O_{x+1} ,O_{x+2} ,...,O_{x+n} ,...},可以计算得到有多大的概率是正确的。

    (问:有多大的概率得到文本翻译序列{O_{x} ,O_{x+1} ,O_{x+2} ,...,O_{x+n} ,...}?)

    业界对应的算法是Forward-Backward算法,前向后向算法。

     (dp取sum, dp表示各个状态下的概率)

    2、给定一个模型和某个特定的输出序列,找到最可能产生这个输出的状态序列。

    举例:

    已知语音序列{S_{1} ,S_{2} ,S_{3} ,...,S_{t} ,...}的转移概率P(S_{t} |S_{t-1} ),也就是根据上一段语音S_{t-1} 得到下一段语音S_{t} 的概率;

    已知以及语音S_{t} 时得到文本O_{t} 的概率P(O_{t} |S_{t} );

    已知文本翻译序列{O_{1} ,O_{2} ,O_{3} ,...,O_{t} ,...}

    可以解得:概率最大的产生该文本翻译序列的语音序列{S_{1} ,S_{2} ,S_{3} ,...,S_{t} ,...}。

    业界对应的算法是Viterbi算法,维特比算法。

    (dp取max, 同时打印解决方案, dp表示各个状态下的概率)

    3、给定足够量的观测数据,如何估计隐含马尔科夫模型的参数。

    举例:

    已知观测数据语音序列{S_{1} ,S_{2} ,S_{3} ,...,S_{t} ,...},文本翻译序列{O_{1} ,O_{2} ,O_{3} ,...,O_{t} ,...};

    可以解得:

    转移概率P(S_{t} |S_{t-1}

    生成概率P(O_{t} |S_{t}

    业界对应的算法是Baum-Welch算法,鲍姆-韦尔奇算法。

    (此坑待填)

  • 相关阅读:
    maven继承父工程统一版本号
    shiro权限控制参考
    动态查询列表页面的分页
    SVN服务器更改ip地址后怎么办
    cookie记住密码功能
    分享小插件的问题
    阿里云短信验证
    从svn上更新maven项目时,所有文件变成包的形式
    Maven工具
    Mybatis的dao层传递单参出现的问题
  • 原文地址:https://www.cnblogs.com/dirge/p/6750339.html
Copyright © 2011-2022 走看看