最近两周在拜读吴军的《数学之美》,对NLP中的一些“道”了解了一下,感受到了数学的强大,其中有一些名词很有代表性,特此记录,以免遗忘。
注:本文中大部分内容都摘自《数学之美》,特此说明!

一、隐含马尔可夫模型

实际应用:语音识别

1、马尔可夫链

马尔科夫提出了一种假设:随机过程中各个状态St的概率分布,只与它的前一个状态St-1有关。比如天气预报,硬性假定今天的气温只跟昨天有关而与前天无关。这个假设被命名为马尔科夫假设,符合这个假设的随机过程则被称为马尔科夫过程,也称为马尔可夫链。

2、转移概率

从一种状态变换为另一种状态的概率,就是转移概率。
举例: 比如今天天气很潮湿,明天下雨的概率为90%,不下雨的概率为10%,则从“天气潮湿”——>“明天下雨”的转移概率就是90%。

3、隐含马尔可夫模型

隐含马尔可夫模型是马尔可夫链的一个扩展:任一时刻t的状态St是不可见的。所以观察者没法通过观察到一个状态序列S1,S2,S3,…Sr来推测转移概率等参数。但是,隐含马尔可夫模型在每个时刻t会输出一个符号Ot,而且Ot跟St相关且仅跟St相关。这个被称为独立输出假设。隐含马尔可夫模型的结构如下:其中隐含的状态S1,S2, S3,…是一个典型的马尔可夫链。
个人理解: 现实生活中,很多事物会有正反两面,我们能看到的往往只是正面(表面),但是真正能说明事物的其实是反面(里面),但是我们只能得到正面无法得到反面,所以假设每一个反面对应的正面也是符合马尔可夫链的。

二、信息的度量和作用

实际应用:NLP(自然语言处理)

1、信息熵

信息熵,也就是将信息的量(或价值)统计出来。
H(x) = E[I(xi)] = E[ log(2,1/P(xi)) ] = -∑P(xi)log(2,P(xi)) (i=1,2,…n)
举例: 比如世界杯结束了,我一场都没看过,我要从32支队伍中猜测哪只队伍获胜了,那对我来说“最后谁得了冠军”这条信息的价值就是-A队获胜的概率log(A队获胜的概率)-B队获胜的概率log(B队获胜的概率)…
如果对我来说32支队伍的获胜概率都是一样的,也就是1/32,那么信息熵就是-32*(1/32)*log(1/32)=5

2、互信息(Mutual Information)


互信息,指的是两个随机事件的“相关性”的量化度量,就是在了解了其中一个Y的前提下,对消除另一个X不确定性所提供的信息量。
举例: 假设年龄和有无孩子总共有4个样本,分别是10岁:无孩子,30岁:有孩子,30岁:无孩子,40岁:有孩子。
那年龄和是否有孩子的互信息就是:
p(10岁,有孩子)*log(p(10岁,有孩子)/p(有孩子)*p(10岁))+ ==>计算结果为0
p(10岁,无孩子)*log(p(10岁,无孩子)/p(无孩子)*p(10岁))+ ==>计算结果为0.25
p(30岁,有孩子)*log(p(30岁,有孩子)/p(有孩子)*p(30岁))+ ==>计算结果为0
p(30岁,无孩子)*log(p(30岁,无孩子)/p(无孩子)*p(30岁))+ ==>计算结果为0
p(40岁,有孩子)*log(p(40岁,有孩子)/p(有孩子)*p(40岁))+ ==>计算结果为0.25
p(40岁,无孩子)*log(p(40岁,无孩子)/p(无孩子)*p(40岁)) ==>计算结果为0
加起来就是0.5
互信息的作用,主要运用在NLP(自然语言处理)的词义上,比如同样一个名词,在A条件下的意思和B条件下的意思是完全不一样的,只有通过计算上下文中其它词语的个数,再结合这些词语和该名词之间的互信息,才能确定这个名词到底是什么含义。

三、图论和网络爬虫

实际应用:NLP(自然语言处理)

1、图论

简单来说,图论就是把物与物之间的关系用图和线条结合并展示出来。
里面有2种遍历算法:
1)、广度优先搜索(Breadth-First Search,简称BFS)
是指把与其直接相连的节点先走一遍,然后再依次再子节点中再遍历一次。比如很多卖保险的,都会先从身边人开始销售,等身边人销售完了,再通过某个好友发展下线继续来一遍。
2)、深度优先搜索(Depth-First Search,简称DFS)
一条路走到黑,走得通最好,走不通就换条路继续走。

2、散列表(Hash Table,也叫哈希表)

是根据关键码值(Key value)而直接进行访问的数据结构。也就是说,它通过把关键码值映射到表中一个位置来访问记录,以加快查找的速度。只要做好散列表,那么查找的时间就只有O(1)

四、PageRank

实际应用:搜索引擎网页排名

PageRank是Google所有引擎中网页排名的算法。
当你在使用搜索引擎时,什么内容会放在前面,什么内容会放在后面呢?排除广告不说,只有把用户想要的东西放在前面,这样用户才会喜欢上这个搜索引擎。PageRank的做法就是民主表决,比如有100个人搜索“数学之美”,有1000个网站与之有关,其中80个人认为A网站符合自己的需求,那么A的排名就最高。

五、如何确定网页和查询的相关性

实际应用:搜索引擎网页查找
PageRank是用来对相关的网页进行排名的算法,而TF-IDF则用来把相关联的网页给找出来。

1、TF(Term Frequency,词频)

比如一段文字有100个字,其中大数据出现3次,那么它的tf就是0.03

2、IDF(Inverse Documnet Frequency,逆文本频率指数)

当一个词在很多网页中都出现过,说明这个词“不值钱”,比如“我”、“和”这种停用词(stopwords),越专业的词才会在越少的词中出现。
假设一个关键词w在Dw个网页中出现过,那么Dw越大,w的权重越小,IDF就是来计算w的权重的。
公式为log(D/Dw),其中D是全部网页数
比如假定中文网页数为D=10亿,其中包含专用词“大数据”的网页数为200万,即Dw=200万,
则它的权重IDF=log(100000/200)=log(500)=8.96

3、TF-IDF

知道了TF和IDF,就可以计算出该网页和搜索内容的相关性了。
比如我要搜“大数据和云计算”,则TF-IDF的计算结果就是:
TF(大数据)*IDF(大数据)+TF(云计算)*IDF(云计算)

六、有限状态机和动态规划

1、有限状态机(Finite State Machine)

实际应用:地址快速匹配(如快递)
有限状态机是一个特殊的有向图,包括一些状态(节点)和连接这些状态的有向弧。
每一个有限状态机都有一个开始状态和一个终止状态,以及若干中间状态。每一条弧上带有从一个状态进入下一个状态的条件。当其获得一个输入字符时,将从当前状态转换到另一个状态,或者仍然保持在当前状态。
比如:一串地址“上海市浦东新区春晓路100号”,当进行到“市”后,自动进入下一步“区”进行匹配,这样就可以把地址进行快速的分解和匹配。

2、动态规划(Dynamic Programming)

实际应用:地图最短路径
比如要找从北京到广州的最短路线,假设北京到广州之间有20个城市,那么最傻瓜的做法就是把所有可能的线路看一遍,然后找到最优的,这样的计算量是指数级的增长,明显不可取。
动态规划的方法,就是把北京和广州之间横切几刀(比如3刀),从北往南数第一刀之上,假设有3个城市,分别是A、B、C,因为要找到北京和广州之间的最短路径,不论如何总会经过A、B、C三个城市中间的一个(乘飞机的滚开!),那么北京到A、B、C三个城市的最短路径肯定也是包含在北京和广州之间的最短路径里的。比如找到了北京和A的距离是最短的,然后在找城市A和第2刀之间的几个城市中的最短路径,以此类推,一直到广州为止,这样的计算量大概是傻瓜办法的万亿被之一。

七、余弦定理和新闻的分类

实际应用:新闻分类
越是相似的文章,两者之间的余弦相似度就会越大,1是完全一样,0是完全无关。余弦相似度就是用来把文章之间的关系进行量化,进而做分类等动作。

让我们先回到初中,回顾下余弦定理(我知道你肯定不记得了!)

如果将三角形的两边b和c看成是两个以A为起点的向量,那么上述公式等价于
cosA = <b, c> / |b| * |C|
其中,分母表示两个向量b和c的长度,分子表示两个向量的内积。

八、矩阵运算和文本处理中的两个分类问题

实际应用:大数据处理

1、奇异值分解(Singular Value Decomposition,简称SVD)

之前有提到过根据余弦定理来计算文章和词之间的关联性,但实际操作中,往往是成千上万篇文章和几十上百万个词的关联性计算,这样的话数据量会非常非常大。在这个矩阵中,每一行对应一篇文章,每一列对应一个词,如果有N个词,M篇文章,则得到一个M X N的矩阵。其中,第i行、第j列的元素aij,是字典中第j个词在第i篇文章中出现的加权词频(比如用词的TF-IDF值),比如M=1000000,N=500000,100万乘50万,即5000亿个元素。
奇异值分解,就是把上面这样一个大矩阵,分解成三个小矩阵相乘。
第一个矩阵X是对词进行分类的一个结果。它的每一行表示一个词,每一列表示一个语义相近的此类,或者简称语义类。这一行的每个非零元素表示这个词在每个语义类中的重要性(或者说相关性),数值越大越相关。
第三个矩阵Y是对文本的分类结果。它的每一列对应一篇文章,每一行对应一个主题。这一列中的每个元素表示这篇文本在不同主题中的相关性。
中间的矩阵则表示词的类和文章的类之间的相关性。
只要对关联矩阵A进行一次奇异值分解,就可以同时完成近义词分类和文章的分类。另外,还能得到每个主题和每个词的语义类之间的相关性!

九、信息指纹及其应用

实际应用:唯一性判断(识别盗版)

1、信息指纹

任何一段信息(包括文字、语音、视频、图片等),都可以对应一个不太长的随机数,作为区别这段信息和其他信息的指纹。只要算法设计得好,任意两端信息的指纹都很难重复,就如同人类的指纹一样。信息指纹在加密、信息压缩和处理中有着广泛的应用。
信息指纹的一个特征是其不可逆性,即无法根据信息指纹推出原有信息。

2、伪随机数产生器算法(Pseudo-Random Number Generator,简称PRNG)

通过该算法可以将任意很长的整数转换成特定长度的伪随机数。

3、基于加密的伪随机数产生器(Cryptographically Secure Pseudo-Random Number Generator,简称CSPRNG)

常用的算法有MD5(很熟悉,有没有!)或者SHA-1等标准。

十、最大熵模型

实际应用:NLP、金融等
论及投资,人们常说不要把所有的鸡蛋放在一个篮子里,这样可以降低风险。在数学上,这个原理称为最大熵原理(The Maximum Entropy Principle)。

1、最大熵原理和最大熵模型

最大熵模型,就是要保留全部的不确定性,将风险降到最小。
最大熵原理指出,对一个随机事件的概率分布进行预测时,我们的预测应当满足全部已知的条件,而对未知的情况不要做任何主观假设。

2、香农第一定理

对于一个信息,任何编码的长度都不小于它的信息熵。

十一、布隆过滤器

实际应用:名单过滤(如垃圾邮件识别)
布隆过滤器(Bloom Filter)是一个很长的二进制向量和一系列随机映射函数。
假定存储一亿个电子邮件地址,先建立一个16亿个比特位即两亿字节的向量,然后将这16亿个比特位全部清零。对于每一个电子邮件地址X,用8个不同的随机数产生器(F1,F2,…,F8)产生8个信息指纹(f1,f2,…,f8)。再用一个随机数产生器G把这8个信息指纹映射到1-16亿中的8个自然数g1,g2,…,g8。现在把这8个位置的比特位全部设置为1。对这一亿个电子邮件地址都进行这样的处理后,一个针对这些电子邮件地址的布隆过滤器就建成了,见下图。

现在,让我们看看如何用布隆过滤器来检测一个可疑的电子邮件地址Y是否在黑名单中。用相同的8个随机数产生器(F1,F2…,F8)对这个地址产生8个信息指纹S1,S2,…,S8,然后将这8个指纹对应到布隆过滤器的8个比特位,分别是t1,t2…,t8。如果Y在黑名单中,显然,t1,t2,…,t8对应的8个比特值一定是1。这样,再遇到任何在黑名单中的电子邮件地址,都能准确地发现。

十二、贝叶斯网络

实际应用:词分类
每一个状态只跟与其直接相连的状态有关,而跟与它间接相连的状态没有直接关系,就是贝叶斯网络。

十三、条件随机场、文法分析及其他

实际应用:句法分析

1、文法分析

自然语言的句法分析(Sentence Parsing)一般是指根据文法对一个句子进行分析,建立这个句子的语法树,即文法分析(Syntactic Parsing)。

2、条件随机场

条件随机场是隐含马尔科夫模型的一种扩展,它保留了隐含马尔科夫模型的特性(每个状态的序列还是一个马尔科夫链)。但条件随机场是一种特殊的概率图模型,这个图中顶点代表随机变量,顶点之间的弧代表相互的依赖关系,通常用概率来表述,比如:P(x1,y1)。它的特殊性在于,变量间遵循马尔科夫假设,即每个状态的转移概率只取决于相邻的状态。这一点与贝叶斯网络相同。不同在于条件随机场是无向图,贝叶斯网络是有向图。
大部分应用中,条件随机场的节点分为状态节点的集合Y和观察变量节点的集合X。整个条件随机场的量化模型就是这两个集合的联合概率分布P(X,Y)=P(x1,x2……xn,y1,y2……yn)

十四、期望最大化算法

实际应用:各种模型的核心
在一般性的问题中,如果有非常多的观测数据(点),让计算机不断迭代来学习一个模型。首先,根据现有的模型,计算各个观测数据输入到模型中的计算结果,这个过程称为期望值计算过程(Expectation),或E过程;接下来,重新计算模型参数,以最大化期望值。这个过程为最大化的过程(Maximization),或M过程。这一类算法就称为EM算法。
之前介绍的很多算法,其实都是EM算法,比如隐含马尔科夫模型的训练方法Baum-Welch算法,以及最大熵模型的训练方法GIS算法。

十五、人工神经网络(Artificial Neural Network)

实际应用:现在的AI大多就是是ANN

1、人工神经网络的基本原理

人工神经网络是一个分层的有向图,第一层(一般图中会展示为最下方或最左方)用来接受输入的信息,也称为输入层。来自这些点的数值按照它们输出的弧的权重,根据G=w0+X1W1+X2W2+…XnWn进行线性加权得到G,然后再做一次函数变化f(G),赋给第二层的节点Y。
第二层的节点照此将数值向后面传递,直到第三层节点,如此一层层传递,直到最后一层,最后一层又被称为输出层。
在模式分类时,一个模型(图像、语音、文字等)的特征值(比如坐标),从输入层开始,按照上面的规则和公式一层层向后传递。最后在输出层,哪个节点的数值最大,输入的模式就被分在哪一类。
在人工神经网络中,需要设计的部分只有两个,一个是它的结构,即网络分几层、每层几个节点、节点之间如何连接,等等;第二就是非线性函数f(
)的设计,常用的函数是指数函数,即
f(G)=e(G次方)

2、成本函数的原则

成本函数需要遵循这样一个原则:既然人工神经网络解决的是分类问题,那么我们希望分完类之后,同一类样本(训练数据)应该相互比较靠近,而不同类的样本应该尽可能地原理。

3、Google大脑

Google大脑,说穿了是一种大规模并行处理的人工神经网络。
Google大脑采用人工神经网络而不是其他机器学习的技术原因:通用性、稳定性和易并行化。
Google大脑采用了随机梯度下降法(Stochastic Gradient Descent),这种算法在计算成本函数时不需要像梯度下降法那样对所有的样本都计算一遍,而只需要随机抽取少量的数据来计算成本函数,这样可以大大降低计算量,当然会牺牲一点准确性。
在现实生活中,真正能够通用的工具在形式上必定是简单的!

十六、大数据的威力

实际应用:Everywhere

1、切比雪夫不等式

19世纪俄国数学家切比雪夫研究统计规律中,论证并用标准差表达了一个不等式,这个不等式具有普遍的意义,被称作切比雪夫定理,其大意是:
任意一个数据集中,位于其平均数m个标准差范围内的比例(或部分)总是至少为1-1/m2,其中m为大于1的任意正数。对于m=2,m=3和m=5有如下结果:
所有数据中,至少有3/4(或75%)的数据位于平均数2个标准差范围内。
所有数据中,至少有8/9(或88.9%)的数据位于平均数3个标准差范围内。
所有数据中,至少有24/25(或96%)的数据位于平均数5个标准差范围内

2、大数据的重要性

首先,只有当一些随机事件的组合一同出现了很多次以后,才能得到有意义的统计规律吗;其次,大数据的采集过程是一个自然的过程,有利于消除主观性的偏差;当然,更重要的是,只有多维度的大数据才能让那些原本有联系,但似乎又联系不太紧密的事件反复出现,然后发现新的规律。

读书分享:《数学之美》中的一些关键名词相关推荐

  1. 读书笔记——数学之美

    读完数学之美,收获很多,在这里我对我的收获进行简要的总结,这些总结中不包括对具体算法和模型的详解,详解请参考其他资料,这里只进行简要的总结. 1 文字和语言 vs 数字和信息 文字.数字.语言和数学是 ...

  2. 吴军《数学之美》-读书笔记

    <数学之美>读书笔记 前言 第一章-文字和语言 vs 数字和信息 第二章-自然语言处理(从规则到统计) 第三章-统计语言模型 前言 本来想把题目写作读后有感或者叫什么心得体会,但是斟酌之后 ...

  3. 【读书笔记】《数学之美》——一个好方法在形式上总是简单的

    数学之美 作者简介 内容简介 摘抄语录 收获感悟 牛顿曾说"(人们)发觉真理在形式上从来是简单的,而不是复杂和含混的."数学的美妙之处在于它对自然界史诗的总结和归纳,也是抽象思考的 ...

  4. 文津读书沙龙:吴军杨早数学之美-文明之光

    第一次认识吴军.杨早两位老师,是在Openparty上,当时两位老师的谈吐.见识.见解给了我很大启发,因此当我得知这两位老师又一次聚首,在文津读书沙龙来分享的时候,我带上吴军老师刚出版不久<浪潮 ...

  5. 丘成桐现身合肥分享发现数学之美 点赞中国科大年轻学子

    一提到数学,可能很多人会紧张.就在上周末,来自国内外的数学家们聚集合肥,在2020年世界华人数学家联合会(ICCM)年会上探索并传递"数学之美".12月27日,国际著名数学家.菲尔 ...

  6. 《数学之美》-吴军 读书笔记

    从吴军的<数学之美>找到了伽莫夫的<从一到无穷大>,前段时间先整理了<从一到无穷大>的笔记.现在整理下<数学之美>以巩固下. 近段时间AlfaGo 与人 ...

  7. 《数学之美》——吴军#读书笔记

    <数学之美> 吴军 第一章:文字和语言vs数字和信息 主要内容概述:"语言和数学的产生都是为了同一个目的--记录和传播信息".科技是伴随着人类的不断进化而发展进步的.信 ...

  8. 数学之美-读书笔记6-10章

    文章目录 数学之美 第六章 信息的度量和作用 1信息熵 2信息的作用 3互信息 4延伸阅读 第7章 贾里尼克和现代语言处理 1早年生活 2 从水门事件到莫妮卡·莱文斯基 3一位老人的奇迹 第八章 简单 ...

  9. 数学之美:数学究竟是如何被运用到生活中的?

    文末有这本书的思维导图 不鸽大家,终于把这本书读完,来分享一下读后感.<数学之美>这本书是2012年出版,作者吴军,他的书籍还有<浪潮之巅>.<格局>等也非常有名, ...

最新文章

  1. Python 之父谈 Python
  2. powershell获取linux文件,powershell如何读取文件名并赋值到变量?
  3. C#重点知识详解(一) 选择自 masterall 的 Blog
  4. Microsoft Power BI 学习笔记
  5. Bjarne Stroustrup语录[C++经验]
  6. 决策树的选择,哪个放在第一个需要决策的环节
  7. 暑假周进度总结报告1
  8. 游戏服务端引擎(kbengine完整代码+demo源码)
  9. java zip_Java压缩技术(二) ZIP压缩——Java原生实现
  10. python指令查询_Python命令行实现—查全国7天天气
  11. Linux下类似美图秀秀的软件,美图秀秀在Deepin下能用到Linux版、网页版及Wine版
  12. python实现爬虫收集图片 花瓣网_Python爬虫日记七:批量抓取花瓣网高清美图并保存...
  13. ArcGIS土地利用转移矩阵(附土地利用数据下载)
  14. 通信系列2: 深入浅出SIP协议
  15. “用户体验不是把每个环节做到极致,而是在关键环节打动用户“这句话对吗?...
  16. 考试用计算机反思800字,期中考试反思800字(5篇)
  17. MySQL8.0 - 新特性 - Descending Index
  18. MPC5607B串口接收中断程序
  19. 技术经理成长复盘-要懂一些项目管理的知识
  20. 【时序异常检测翻译】1.DeepAnT: A Deep Learning Approach for Unsupervised Anomaly Detection in Time Series

热门文章

  1. 连载《国培计划》骨干教师的研修日志之七:N个老师的日志
  2. ​保时捷拟IPO:估值或超800亿美元 与大众有多年恩怨情仇
  3. 保时捷卡宴Cayenne升级原厂360全景影像系统,行车更安全
  4. Loongson2f_灵珑9S2A_debian5(lenny)更改国内archive软件源并使用源码编译安装bochs-2.6.9
  5. [云开发3]-将问卷调查Demo应用快速部署到SAP云平台
  6. Windows直接拖拽文件复制到虚拟机Ubuntu
  7. R语言多层桑基图_R语言可视化(二十三):桑基图绘制
  8. 篮球图片html页面代码,教你用PS制作一个非常逼真的篮球图片
  9. 《C++大学教程》学习笔记(九)
  10. 模拟电子技术基础------单管共射放大电路