Blog 7 | 数学之美 折服于隐马尔可夫模型

数学之美读书笔记(未完待续)

                                 ——算法的魅力 数学模型

一、数学概率统计模型|应用中文分词

已知:一句话S,有多种分词形式
    A1 A2 A3
    B1 B2 B3 B4
例如:
        在北京大学
        在 北京 大学
        在北京 大学
        在 北京大学
提问:如何从这些分词形式中选一种最自然的分词方式?
策略:假设 语料库(Corpus)作为训练样本
      计算出“每种分词方式”组合后句子出现的概率,概率越大 说明这种分词方式使用最广泛。
      因此套用数学概率计算模型:
      P(A1,A2,A3)>P(B1,B2,B3,B4)
 
二、数学概率统计模型|应用语音识别:隐马尔可夫模型
基本概念:
      隐马尔可夫模型 (Hidden Markov Model,HMM) :
                            一种统计模型,用来描述一个含有隐含未知参数的马尔可夫过程。

       通过观察到的参数(马尔可夫链)推测隐含过程的参数(状态转移序列),同时隐含参数之间也有关系(转换概率)。

       马尔可夫假设

              一个状态的转移只依赖于之前的n个状态,当n取1时就是马尔可夫假设。

           
 

            独立性假设:假设任意时刻的观测只依赖于该时刻的马尔可夫链的状态,与其它观测状态无关。

                   

 

例如1:

    通过不同面数骰子摇出来的一系列数字,推测到底用了哪些骰子。

    前提(输出概率):已知每个骰子和每个数字的概率。

例如2:

        通过某天活动的类型,推测当天的天气。

        前提(输出概率):已知 在每个天气下每个活动发生的概率。

 

 

语音识别:

        通过语音o1,o2,o3 推测语音想表达的文字意思s1,s2,s3(并不只是单纯的文字翻译,更是识别用户对计算机的发出的指令)。

 

在已知 o1,o2,o3,...的情况下, 求使得条件概率 P (s1,s2,s3,...|o1,o2,o3....)
                                         = P (o1,o2,o3,...|s1,s2,s3....) * P(s1,s2,s3,...) 达到最大值的那个句子。
P(o1,o2,o3,...|s1,s2,s3....) 表示某句话 s1,s2,s3...被读成 o1,o2,o3,...的可能性, 而根据独立性假设, 即 P(o1,o2,o3,...|s1,s2,s3....) =P(o1|s1) * P(o2|s2)* P(o3|s3)...

 

算法对于软件的作用:以上只是近期短时间内学习的短小总结,路漫漫其修远兮,还有关于前向后向以及具体矩阵、函数等等的运用还需要再理解。关于这次模型的学习,可以总结,数学知识的高度决定了思维的高度,思维的高度正是算法能够实现的基础,任何一个软件的算法的卓越必然需要扎实的基本功来实现。此次学习我总结了对于难懂晦涩的知识的学习步骤:先看网上优秀总结的博客,他们运用简单(骰子、天气活动)等例子解释知识,方便入门;接着是看优秀论文,高难度的算法思维需要慢慢啃。

留下的疑问:为什么语音识别要转化为P(o1...|s1...)?即在语音识别中,P(o1...|s1...)或P (s1,s2,s3,...|o1,o2,o3....)如何计算的?

 

 

此次学习参考:

http://www.52nlp.cn/hmm-learn-best-practices-four-hidden-markov-models

https://www.cnblogs.com/bigmonkey/p/7230668.html  (重点推荐入门点击!!!)

https://wiki.mbalib.com/wiki/%E9%9A%90%E9%A9%AC%E5%B0%94%E6%9F%AF%E5%A4%AB

https://www.cnblogs.com/skyme/p/4651331.html

 

关于代码规范:

《高质量C++/C编程指南》作者: 林锐

https://wenku.baidu.com/view/07631b604a73f242336c1eb91a37f111f1850d37.html

 

展望:本学期想利用自己学到的知识做一个应用数学模型的“预判”小程序。

你可能感兴趣的:(Blog 7 | 数学之美 折服于隐马尔可夫模型)