读《数学之美》

数学,起源希腊,原意是学习知识之意,获取知识通过对世界万物的了解外,还通过人与人之间的沟通和交流来获取(信息交换),

而沟通交流的方式就是通信,比如电报、电话和互联网,而这些都是建立在信息论之上,而信息论的基础就是数学。

通信,信,即信息存储、传输、处理和理解。

语言有很多种,但处理其的数学模型和工具却是相似的。

数学工具来处理信息。

信息的产生、传播、接收和反馈

因为要表达的东西(信息)越来越多,所以需要语言,信息越来越多了,没有一个人能记住,所以产生了文字(文字其实是一种信息的编码)。

文字发展到一定的数量之后就停止了,因为没有人能无止境的记住越来越多的文字,于是概念聚类(类似)出现了。

比如“日”表示太阳,也表示时间周期

文字聚类往往会带来歧义,通过上下文来消除歧义,但不是100%的,所以对相同的文字表达,有着不一样的理解。

不同文字,导致了翻译的需求;翻译的前提在于文字不同但记录和表达的信息能力确实相当的。

说到底,其实文字只是信息的载体,文字不是信息本身,所有通过“文字以外”的东西来承载信息是可行的,那么“数字”也是可行的。这是现代通信的基础。

信息的载体,不一定会成为通信的工具,比如象形文字,虽然记录了信息,但后来没有流行使用了,也就没能成为通信的工具。

语言的数据,我们称之为语料

人类财产的计数,导致了数字的出现。计数系统...(有十进制,二进制,十二进制)

从象形文字到拼音文字(简单少量的字母可以组成复杂和多数的文字),编码越来越合理巧妙

文字设计其实是一种编码方式

古时候、特别是纸张未被发明之前,文字书写到竹简上或刻到石头上都是比较吃力的事情,所以文字被压缩,变成简单的“文言文”,这点类似信息的压缩。

字、词是封闭的集合(有完备的编码和解码规则),而语言却是开放(无完备的编码和解码规则)的;这暗示了基于规则的语言处理落败,而基于统计的语言处理胜出的结果。

语音识别就是听话的人去猜测说话人要表达的意思。

--基于规则的自然语言处理--

基础层:句法分析,语义分析

认知层:自然语言理解

应用层:语音识别,机器翻译,自动问答,自动摘要

二元模型,N-1元模型, 常用的有3、4(google)元模型

训练一个二元模型,假设词汇量有3个,A,B,C,

那么二元模型下组合的可能性有3^2=9个:AB,AC,BC,BA,CA,CB,AA,BB,CC,

计算每个组合出现在真实的文本(比如通过网络爬虫得到的网页)中的概率,如果概率高的,证明其更“自然”。

中文词汇量有20万个,训练一个三元模型,则组合有200000^3=8*10^15,80000000亿,

而即使在互联网抓取100亿个网页,每个网页1000个字,那训练集也只有100000亿,

组合的数量远远超过的训练集的数量,导致无法全面覆盖(出现组合在训练集中出现概率为0的情况)

信息如何衡量?

信息量=不确定性

假设我没有看2018年的足球世界杯比赛,那我想知道谁是冠军,这个时候我可以去问一个看过的人,他让我猜,每猜错一次给他1块钱。

一共有32个球队,编号1~32,

假设我从1到32一个个的猜,那成本最高的情况,得付31块钱;

假设我对半的猜,先猜是不是在1-16区间...,这样log2(32)=5,最多只需要5次就猜对,付5块钱

综合以上,用最好的方法,在最坏的情况下,5块钱就能将“我不知道冠军”这个问题解答,那么在解答过程中获取到的信息值5块钱,那信息量的度量就是5块钱。

更实际的情况是,每个队伍得到冠军的概率是不一样的,像巴西、德国、西班牙、法国...这些球队,概率会高点,所以可以按热门与冷门分组,先猜测热门的,很大概率3、4次就能猜出来。

这样的话,信息量就不值5块钱了。

信息量的数学表达:H = -(p1*logp1 + p2*logp2 + ... + p32*logp32),香农把“信息量”称之为信息熵(entropy)

信息是消除不确定性的唯一办法

不确定性U,引入信息I,新的不确定性U'=U-I,只有当I>U时候,不确定性才能被消除,信息量才足够。

比如搜索,搜索引擎根据用户输入的几个关键词,从亿级网页中找到与之相关性高的几个网页,这里的亿级网页量,几十亿个可能性,当然是个非常大的不确定性。

如何让U'<

相邻的信息有助于提供更大的信息熵,消除更多的不确定性

I(X;Y) = H(X)-H(X|Y)

随机事件X,Y相关性(互信息度量) =  事件X的不确定性 - 事件Y出现时X的不确定性

即Y的出现会影响到X被猜出来的概率,Y在消除X不确定性的贡献值

相当于Y出现了之后,事件X不确定性减少的量,即互信息,取值0表示Y出现了,对X一点帮助都没有,X、Y不相关;1表示Y出现了,X的不确定性都被消除了,X,Y相关性最强

难题:词的二义性,歧义性

相对熵,衡量两个函数的差异,0表示完全相同,比如分析两段文字是否相似等

在介绍贾里尼克的时候,一开头就抨击了中国的教育 - -!反对少年班,鼓励享受孩童时光。

我们一般很难在短的时间内知道什么是对的,但我们可以更多的认识到什么是不对的,而不去做。

数学的发展是不断抽象和概括的过程,越抽象看似离生活就越遥远,其实不然,它最终会在现实生活中到到应用的场景,并发光发热。比如信息论的数学基础,离散数学。

产品经理应该具备这样的能力,把复杂的概念或者事物,用普通寻常的例子进行解释。譬如如何向老奶奶介绍“搜索引擎”?

布尔运算->搜索关键字是否与文本匹配上,搜索关键字(a,b,c,d)在文档(1,2,3,4)的出现情况,0代表未出现,1代表出现

要找出与搜索关键字a,b匹配的文档,只要运算a(1,0,0,1) & b(1,1,1,1)=1,0,0,1,即文档(1)和文档(4)匹配上。

-文档

-(1) (2) (3) (4)

------------------------------------------------------------

搜 a - 1   0 0 1

索 -

关 b - 1 1 1 1

键 -

词 c - 0 0 1 1

-

d - 1 1 1 0

-

图论->网络爬虫(广度/深度优先遍历,主要用的是广度的方式,邻近的网站对当前网站而言作者更加会把自己认为重要的网站做为直接链接)

科学理论基础,算法能力和工程素养(科学理论基础、编码算法能力,软件工程素养)

在有限!的时间里抓取更多重要!的内容,是爬虫的使命。

看到这里,明显感觉到作为搞学术研究出身的作者,对搞工程的人有看不起的成分。

如何排序搜索结果(成千上万的结果,如何排序以便得到用户想要的结果):

两个维度:网页质量+网页相关性

网页质量:PageRank算法

网页相关性:TF-IDF 单文本关键字频率和逆文档评率

地图和本地搜索!!!(有限状态机和动态规划)

智能手机的定位和导航功能。三个关键技术:1、卫星定位;2、地址识别;3、路线规划

有哪些看似简单,实际上却很麻烦的事情;违反直觉之事情。自然语言识别,比如写得乱七八糟的收件人地址,快递员都能收的到,而写程序识别就没那么容易了。

有限状态机其实就是一个特殊的有向图,早起应用于程序语言编译器的设计中。

利用识别中国地址有限状态机,从用户的检索词中获取到地址信息,进而搜索;比如珠海市唐家湾附件的酒店;会解析出珠海市唐家湾/酒店这两关键词

加权图(考虑了连接弧的长度/权重),中国公路图(每个城市间的长度/时间/收费金额等---某个维度的权重)

------》寻找两点见最优的连接方案(最快/最短/最省钱)

最笨的方法:把所有可能的连接方案都算一下,找到最优的。

采用有向加权图的来做语音识别,有很多转移的状态点,取概率高的点,按顺序连接起来就是语音识别的结果。

很多现实的问题,都转变为一个分类的问题,比如找到一个分类器能识别出搜索作弊、运维风险等。

许多失败并不是因为人不优秀,而是做事情的方法不对,一开始追求大而全的解决方案,之后长时间不能完成,最后不了了之。

做事情的哲学往往是这样的,先帮助用户解决80%的问题,再慢慢解决剩下的20%问题,它是工业界成功的秘诀之一。

分析反例,有时候比直接分析正例要好

余弦定理

(两个文本相似程度取决于它们的特征向量相像的程度,而计算特征向量相像程度则可使用余弦定理)

词有64000个,那每个新闻(文本)都能理解为是一个64000项的二维向量(词,TF-IDF值)组成,文本中没有出现的词,TF-IDF值为0。

因为词都是一样的64000个,所以词这一维度可以去掉,一个文档可以被描述为一个有64000维的向量:(0.0013,0,0.0001,0.0021,....,0.0011)

全部文档的词,太多了,这里可以先采取关键字提取-》特征向量建立-》余弦计算

中学的余弦定理,却可以在新闻分类中发挥作用,初中的时候肯定想不到啊!!!

自然语言处理中,有个“分类”问题,分类有两个大的方法,

其一是根据“主题”:比如把报道奥运会的新闻归类到体育板块;

其二是根据“词义”:比如把提到各种运动项目名称的新闻都归为体育板块。

大矩阵的运算,可以通过奇异值的方法拆分为3个矩阵进行运算。

大矩阵A={M,N},M是行,N是列,M=1000000篇文章,词汇量N=500000,矩阵的元素个数为5000亿

拆分三个矩阵相乘:A=X·B·Y,其中X={M,100},B={100,100},Y={100,N}

这个拆分的过程称之为奇异值分解,到了2007年才有google完成了奇异值分解的并行算法。

信息指纹

对信息进行无损压缩编码,信息熵不变。如果仅仅只是用来区分不同的信息,那只需要不太长的编码即可,如果算法设计的好,能实现唯一编码。

这样信息就被大幅度压缩。这里常用的有MD5码用来区别是否是同一个视频、文件或图片,而不需要其全部的信息熵进行比较。

google采用相似哈希的方式来实现信息指纹,找出抄袭的文字,copycat。

从成千上万的视频中,找出抄袭的视频实属不易啊,如果靠比较每个视频(每帧的大小),那对于大容量的视频而言那是不可能的。所以没有人会采用直接对比视频来计算是否抄袭。

解决方法,两个核心:关键帧提取和特征提取

密码学(信息论时代的密码学)

好的密码必须做到不能根据已知的密文和明文,来推断出新的密文的内容。即

M = f(m),通过已知的m和M,确定一个f,如果f很容易就被发现确定了,那这个f不是很好的密码。

在信息论的前提下,就是说即使密文被获取到了,但得到的信息量没有增加

密码的表述是这样的,在增加了信息之后无法减少事件的不确定性,这个增加的信息是无效的,因为被密码了。

作者多次提到“道和术”的辩证关系和工作中的指导意义。

反网页排序作弊,的“道”,解决通信过程中的信息干扰(作弊的一些处理手段就是干扰源,干扰网页排序算法)。

两种术:增强排序算法的抗噪能力;还原网页本来的排名。

数学模型的重要性,建模思维很重要,而模型也应该是简单的,不宜复杂的。我们的造物者应该是这个思维。

最大熵模型,不要把所有的鸡蛋都放在一个篮子里,以此来降低风险。

回答一个问题,或者做一次投资,都是想得到好的结果,

那么一般好的做法就是采用安全保守(在满足已知的客观事实内,不做任何主观臆断)的方法,保留最大的不确定性,即最大熵原理。

不要把所有的鸡蛋都放在一个篮子里,背后的含义是说当我们遇到不确定性的时候,要保留多种可能性。

个性化的语言模型,每个人的文化水平、工作领域、生活圈等都会觉得你的语言模型,这样就可以有针对性的给出特点的语言模型,这样更加精准了。

不是某项成果的第一个人、第二个人、第三个人...但可能是最后一个人,因为他做的已经抵达极限,再也无人可以超越了。前有古人但后无来者。

你要做一个“务于精纯”的精深专才,还是做一个“观其大略”的通才?

布尔过滤器

贝叶斯网络(信念网络,加权有向图),事物间的关系往往不会呈现简单的链式关系(马尔科夫链),而是网络状的关系,每个事物有多个其他事物与之相邻,成为影响的直接因数。

一个典型的贝叶斯网络:文章全文-关键字-主题,三者的关系组成了贝叶斯网络,它们之间存在直接与间接关系

《程序员的数学》,NP完备问题不可计算,why?

对数函数的现实意义,科普含义?

条件随机场

维特比算法,输入拼音转汉字的例子说明

3G技术,CMDA(码分地址),跟信道的频率无关,大家都可以用,不用切分,而是用密码的方式加密,能解密成功的就是自己能接受的信息。

自然语言 与 形式语言(化学公式、编程语言和其他的运算符号)

形式语言的缺陷:

1、对于像汉语,英语这样的大型自然语言系统,难以构造精确的文法

2、不符合人类学习语言的习惯

3、有些句子语法正确,但在语义上却不可能,形式语言无法排出这些句子

4、解决方向:基于大量语料,采用统计学手段建立模型 ? ?

预测用户点击候选广告的概率?

云服务包括:存储、计算、资源调度和权限管理

一个问题的解,如果存在一个多项式函数复杂度的算法,我们称之为P(polynomial)问题,如果不存在则称之为NP问题;

如果一个问题虽然是NP,但算法可以在多项式的函数复杂度的时间里证明方法正确与否,称之为NP-complete问题

让工程的年轻人看到IT行业正确做事情的方法。

刷完《数学之美》,有两个感受,其一,我想我被统计学洗脑了;其二,我真的很想向大学离散和线代的老师提提建议。

你可能感兴趣的:(读《数学之美》)