数学之美
数学的发展实际上是不断的抽象和概括的过程
目录
数学之美
第一章
第二章(从规则到统计)
第三章 统计语言模型
第四章 分词
第五章 隐马尔科夫模型
第六章 信息的度量和作用
第七章 贾里尼克和和现代语言处理
第八章 简单之美——布尔代数和搜索引擎
布尔代数:
第九章 图论和网络爬虫
图论
网络爬虫
构建网络爬虫的工程要点(考察基础素养)
第十章 PageRank——google民主表决式网页排名技术
PageRank原理
第十一章如何确定网页和查询的相关性
第十二章 有限状态机和动态规划(地图与文本搜索的核心技术)
地址分析和有限状态机
全球导航和动态规划
第十三章:略过
第十四章 余弦定理和新闻分类
新闻的特征向量
向量距离的度量
第十五章 矩阵运算、奇异值分解:略过
第十六章 信息指纹及其应用
第十七章 谈谈密码学
第十八章 谈搜索引擎反作弊问题、搜索结果权威性:略过
第十九章 谈谈数学模型的重要性
第二十章 最大熵模型:略过
第二十一章 拼音输入法的数学原理 略过
第二十二章 自然语言处理教父马库斯
第二十三章 布隆过滤器
第二十四章 贝叶斯网络
第二十五章 条件随机场:略过
第二十六章 维特比、维特比算法
第二十七章、二十八章 上帝算法(期望最大化算法)、逻辑回归和搜索广告-点击率预估采用了逻辑回归函数
第二十九章 分值算法和Google云计算基础:略过
第三十章 GOOGle大脑和人工神经网络
第三十一章 区块链数学基础——椭圆曲线加密原理
第三十二章 大数据的威力:谈谈数据的重要性
第三十三章 量子密钥分发的数学原理
第三十四章 数学的极限
第一章
- 香农提出新信息论,数学和信息联系起来
- 语言的本质就是通信,信息通过信道进行编码、解码的过程
- 一词多义需要通过上下文来消除歧义
- 信息的冗余是信息安全的保障,一份信息多种语言备份
- 语言的数据——语料,对翻译至关重要
- 进位制的发明,就是对数量进行编码,不同的数字代表不同的量(罗马数字解码规则是加减法,小数字在大数字左边为减,右边为加;)
- 文字规则:常用字短,生僻字长;暗含信息论中的最短编码原理,窄带压缩,宽带不压缩;校验码的产生
第二章(从规则到统计)
- 任何一种语言都是一种编码方式,语法规则就是编解码的算法。语言的数学本质:信息交流其实就是用同一个语法规则对信息进行编解码过程
机器能否懂得自然语言?1、机器能否处理自然语言?如果能处理方法是否和人一样?答案:yes
- 图灵测试:判断机器是否智能的标准。人和机器进行交流,如果人无法判断自己交流的对象是人还是机器,就说明机器有智能了。
- 基于规则的研究方向坚持了15年后终于过渡到基于统计的自然语言处理:机器翻译、语音识别、数据挖掘、深度学习
- “老科学家”:钱钟书的围城解释到含义一:老的科学家;含义二:老科学的家。如果是后者,必须耐心等待他们退休让出位子,毕竟不是所有人都乐意改变自己的观点,无论对错。
第三章 统计语言模型
- 一个有意义的句子S是否合理:可以通过判断可能性大小思路来研究——概率来计算:概率越大该语句越有意义、越合理;
- S取决于其中每个词出现的概率P(s)=P(w1,w2,w3...wn)——,条件概率公式变换——马尔科夫假设(只跟前一个单词出现概率有关)——简化为二元模型——统计次数计算比值近似等于概率(大数定律支撑)
- N元模型、模型的训练(模型中的所有条件概率称之为模型的参数),通过对语料的统计,得到这些参数的过程称之为模型的训练——大数定理:要求有足够多的观测值
- 0概率问题、统计量不足问题、统计的可靠性如何解决。
- 古德-图灵估计:对于没有看见的事情,不能认为发生的概率为零,因此从概率总量中,分配一个很小的比例给这些没有看见的事情。看见的事情的总概率和小于1,也即将所有看见事情概率调小一点,调小多少,根据“越是不可信的统计折扣越多”方法进行
第四章 分词
- 最简单的方法:查字典,从左到右依次依次扫描字典,无法解决分词二义性
- 统计语言模型可以解决分词二义性:最好的分词对应的词串,一定能保证分完词后这个句子出现的概率最大。利用第三章出现的模型计算概率最大的词串就可以找到最好的分词方法
-
动态规划+维特比算法快速找到最佳分词
同样的一个词语,在不同的应用中,会有一种颗粒度比另外一种颗粒度更好的情况:比如“清华大学”如果作为一个词网页分词后用户查询“清华”时,找不到清华大学,这是有问题的;也就是说清华大学既要被看成一个整体,又要可以被切分开;
正常思维处理:针对不同的应用构造不同的分词器。缺点是浪费,存在重复
高级处理方式:让一个分词器支持不同层次的词的切分。
实现方式:1、需要一个基本词表和一个复合词表。基本词表包含“清华”、“大学”无法再分的词;复合词包含复合词已经它们有哪些基本词构成,比如“清华大学:清华-大学”“搜索引擎:搜索-引擎”.\
2、针对基本词表和复合词表各建立一个语言模型,分别为L1和L2.
3、根据基本词表和语言模型L1对句子进行分词,得到小颗粒度分词结果;(基本词比较稳定+分词方法已经解决,偶尔添加个别新词,不需要额外工作量):输入字串S1,输出基本词串R1;
4、再用复合词和语言模型L2进行二次分词,这是输入是R1,输出是复合词串,词表和语言模型改变了,但是分词的核心程序同第三步一样,可以进行复用。(复合词是近年来中文分词的主要工作重点,不断的进行完善,尽可能找到各种复合词)
-
分词的准确性问题:
错误和颗粒度不一致:错误主要是越界型错误:比如“北京大学生”翻译成“北京大学-生”;另一类是覆盖型错误“北京大学”翻译成“北-京-大-学”
第五章 隐马尔科夫模型
- 自然语言处理转化为——通信系统的解码问题:如何根据接收端接收到的信号o1,o2,o3...来推测发送端发送的信号s1,s2,s3?从所有的源信息中找到最可能产生出观测信号的那个一个:从概率来说就是已知接收端信号o1,o2,o3...求条件概率最大的s1,s2,s3
- 贝叶斯公式变形转化
- 随机变量(静态)的研究——随机过程(动态的:随机变量的时间序列);随机过程更复杂
- 马尔科夫假设:随机过程中各个状态st的分布只与他的前一个状态有st-1有关;符合马尔科夫假设的随机过程称为马尔科夫过程或者马尔科夫链:马尔科夫链有向图、状态转移概率
- 隐马尔科夫模型:任一时刻t的的状态st是不可见的。无法观察到一个状态序列s1,s2,s3。。。st来推测转移概率等参数。但是每个时刻t会输出一个符号ot,这个ot跟st相关,且紧跟st相关。——独立输出假设
- 基于独立输出假设,可以计算出某个特定转态序列s1,s2,s3。。。st产生出符号o1,o2,o3...的概率
第六章 信息的度量和作用
- 香农——信息熵:信息的信息量和不确定性有关,香农公式。类似热力学熵
- 一本50万字的书,常用汉字大约7000个,每个汉字等概率,一个汉字需要13比特表示。实际上前10%汉字占据书中95%以上,大约8-9比特。因此一本50w字书信息量大学250w比特。压缩算法进行压缩,可以压缩到320kB。两字节的国标码存储需要1M大小,两个数量的差距称之为冗余度。一本书的重复内容越多,信息量越小,冗余度就越大。
- 信息的作用:消除不确定性,自然语言的处理的大量问题就是寻找相关信息。二元模型不确定性<一元模型不确定,三元模型不确定小于二元模型不确定。也即三元比二元好,二元比一元好;
- 互信息:两个随机事件相关性的量化度量。
- 互信息的作用:机器翻译中的二义性(歧义性)?如何正确的翻译二义词:利用互信息,从大量文本中找出和二义词的某一个意义一起出现的互信息量最大的一些词;同样 方式找出和二义词的另外一个意义一起出现的互信息量最大的一些词;有了这两组词,在翻译二义词时看看上下文中哪类相关词多就可以了。
第七章 贾里尼克和和现代语言处理
当今社会:学术界浮躁,年轻人焦虑,少数有着梦想和远大志向的年轻人是非常孤独的;
给我的启发点:
- 不赞成中小学只会上学考试的教育方式,吴军和贾里尼克花在中小学课本上时间不到现在学生一半;
- 中小学生没必要花那么多时间读书,反而应该多注意培养社会经验、生活能力以及建立志向,这些将会帮助他们一生;
- 中学阶段话很多时间比同伴多读的课程,在大学时用很多时间就能读完,大学阶段,人力的理解力要强得多;
- 学习是持续一辈子的过程,很多中学成绩优异进入名校后不如出于兴趣而读书的同伴,因为前者持续学习的动力不足;
- 书本中的内容可以早学,也可以晚学,但是错过了成长阶段是无法补回来的(不支持少年班的做法)
一个人要想在自己的领域做到世界一流或者很优秀,他的周围必须要有非常多一流的人物。贾里尼克的幸运就是年轻时得到了很多大师的指点,站在巨人肩上,从而比同龄人高出了一筹。
约翰霍普金斯大学——语音识别和自然语言处理实验室CLSP 1、用经费招募俞银河语言处理领域顶级科学家和有潜力的年轻学者 2、利用自己的影响力,将学生派到世界上最好的公司去实习,通过学生的优异表现,树立起CLSP培养人才的声誉 3、治学极为严谨,对学生要求严格,淘汰比例高、毕业时间长,但同时利用自己影响力为学生学习和事业提供便利,提供生活费、学费等。成为自己的学生的精神领袖 4、最大的帮助是告诉你什么不好。和股神巴菲特异曲同工,只告诉你不要去做什么,至于什么更好,相信你自己能找到。 |
第八章 简单之美——布尔代数和搜索引擎
技术分为“术”和“道”两种:具体的做事方式是“术”,做事的原理和原则是“道;
追求“术”的人一辈子工作都很辛苦;只有掌握了本质和精才能永远游刃有余;
追求“术”的人是想走捷径,但是真正最好一件事没有捷径,离不开1w小时专业的训练和努力;
- 搜索引擎的“道”:下载、索引、排序三种基本服务组成
- 升级搜索引擎,主要是改进索引
布尔代数:
- 0、1两个元素,与、或、非三种基本运算。
- 香农硕士论文指出用布尔代数来实现开关电路,成为数字电路的基础。所有数学和逻辑运算均能转成二值的布尔运算——人们据此“搭出”了计算机;
- 布尔代数对数学的意义等同于量子力学对于物理学的意义。他们将我们对世界的认识从连续状态扩展到离散状态。
- 布尔代数里:万物都可以量子化,从连续变成分离,与、或、非运算不同于代数运算。
- 现代物理研究成果表明:我们的物理世界实实在在是量子化的而不是连续的。宇宙的基本粒子是有限的,比古高尔要小得多;
- 索引结构:用一个很长二进制数表示是否出现某个关键字;有多少篇文献就有多少位数,0表示没,1表示出现;多个词对应多个二进制结果数,最后进行AND运算或者OR运算等;
- 互联网2.0时代根据网页重要性、质量、访问频率建立常用索引、非常用等不同级别索引;常用访问快,更新快,附加信息量大;非常用相反
第九章 图论和网络爬虫
图论
如何自动下载网上所有的网页——图论中的遍历算法
大数学家欧拉、BFS\DFS;无论哪一种算法,都需要一个小本本记录已经访问的路径;以免多次访问或者漏掉节点
网络爬虫
- 从任何一个网页出发,先下载这个网页然后分析这个网页,找到当前网页文字背后的超链接,接下来访问、下载、分析超链接对应的网页;
- 不停的做下去,就能下载整个互联网;如何记住哪个网页下载过了?
- 是通过哈希表(散列表)判断
构建网络爬虫的工程要点(考察基础素养)
实现细节非常多,但大的方面有以下几点:(“道”)
-
首先用DFS还是BFS?
1、搜索引擎的爬虫问题精确的是“如何在有限时间内最多的爬下最重要的网页?”:各个网站最重要的是首页。其次是首页直连接的网页。基于这个前提:BFS优于DFS,实际上的原理基本符合BFS
2、是否不需要DFS?分布式结构和通信建立的过程是昂贵的,实际爬虫都是分布式系统,某个网站几台服务器专门下载,下完一个继续下另一个,有点类似DFS
3、网页爬虫不是简单的BFS或者DFS,是一个更复杂的下载优先级排序方法。管理这个优先级的系统成为调度系统-决定当前网页下完后下载哪个,优先级队列里面存储已经发现尚未下载的网页URL
总的来说,爬虫中BFS成分多一点
- 页面分析和URL提取
- 记录哪些网页已经下载过的小本本——URL表
一台服务器建立、维护一个哈希表不难,如何在同时又成千上万台服务器一起下载的情况下,维护一张统一的哈希表?
首先这个哈希表大到一台服务器无法存储,其次每个服务器下载前、完成后都要访问和更新这张表,避免其他服务器重复下载,如何解决存储哈希表的服务器通信瓶颈问题?主要两个技术:
1、明确每台下载服务器分工,根据URL就知道要交给哪台服务器,消除很多台服务器都要重复判断某个URL是否要下载
2、明确分工后,判断URL是否可以下就可以进行批处理,每次发送一大批询问,或者更新一大批内容
第十章 PageRank——google民主表决式网页排名技术
PageRank原理
搜索结果的排名取决于两组信息:网页质量信息、这个查询与每个网页的相关性信息。数学模型如何建立?
1、google创始人拉里佩奇和谢尔盖布林找到了完美的数学模型:核心思想民主表决——如果要搜索某个内容,那么谁是真的或者最好的?大家都投票给最多的那个;如果一个网页被其他很多网页锁链接说明收到普遍的承认和信赖,那么他的排名就高。 2、Y的网页排名pagerank = x1+x2+x3+...+xk(所有指向Y网页的其他网页的权重之和) 3、权重如何度量?——“鸡生蛋蛋生鸡”问题——二维矩阵相乘:假定所有网页排名相同,根据该初始值,算出各个网页的第一次迭代排名,然后根据第一次迭代排名算出二次迭代排名……两人从理论证明了无论初始值如何选取,算法都能保证网页排名的估算值收敛到排名的真实值。算法不需要任何人工干预。 4、理论解决了,但实际矩阵相乘的计算量巨大。——佩奇和布林利用稀疏矩阵计算技巧,大大简化了计算量,并实现了改算法 5、随着网页数量增长,pager计算多台服务器才能完成——催生了map-reduce并行计算工具。将并行计算自动化,缩短计算时间,缩短网页排名更新周期 6、算法的高明之处在于把整个互联网当做了一个整体、系统来处理。以前打的思考和出发点都只注意到了网页和查寻内容之间相关性,而忽略了网页之间的相关性,当成独立的个体来看待 7、今天的商业搜索引擎中决定搜索质量的最有用的信息是用户的点击数据,而一项新技术为搜索带来的提升已经非常有限,用户基本感觉不到。这也是微软等后来者很难有所作为的原因 8、如今,对搜索相关性贡献最大的是根据用户对常见搜索点击网页结果得到的概率模型 |
第十一章如何确定网页和查询的相关性
- 完备的索引
- 网页质量的度量如PageRank算法
- 用户偏好
- 确定网页和某个查询相关性的方法
搜索关键词权重的关键度量 TF-IDF
- 汉语为例,每个词的权重必须满足2个条件:
1、一个词预测主题能力越强,权重越大,反之越小;
2、停止词的权重为0;停止词(的,是,地,得,和,中,等几十个。占据数量大,对网页主题没什么用)
第十二章 有限状态机和动态规划(地图与文本搜索的核心技术)
地址分析和有限状态机
- 地图服务——垂直搜索,本地生活服务越来越重要,查看地点、地图、路线等等等是基础
- 地址分析和有限状态机:开始状态、结束状态。如果能从开始经过——中间状态——终止状态;即为有效。否则无效。核心实现2点:建立状态机、给定有限状态机后,地址字符串匹配算法。缺点:输入错误和不标准错别字,就无法查找
- 解决方法:模糊匹配,并给出一个字符串为正确地址的可能性。——提出了基于概率的有限状态机,等效于离散的马尔科夫链。
- 建议直接采用开源代码程序
全球导航和动态规划
- 图论中的动态规划DP算法
- 加权图——中国公路网,过路费,时间,金额等为加权值,从而找最短路径
第十三章:略过
第十四章 余弦定理和新闻分类
新闻的特征向量
- 一篇新闻中每一个词对这篇新闻的贡献可以建模为一个向量:单词表 (64000个词)中某个词在新闻中没有出现对应的值为0;
- 每一篇新闻对应一个特征向量——新闻建模成为数字后,计算机就可以“算一算”新闻之间是否相似了
向量距离的度量
- 通过计算两个新闻的特征向量对应的夹角,就可以计算两个新闻的主题的接近程度——余弦定理:计算新闻相似性公式
- 新闻的特征向量建立:自底向上不断合并:计算所有新闻之间的相似性,设定一个阈值把相似性大于该阈值的合并为一个小类,N篇新闻被合并成N1个小类。N1<N
- 将小类作为一个整体,计算小类的特征向量,再计算小类之间的余弦相似性。合并成一个大一点的小类N2;
- 不断作息去,类别越来越少,每个类越来越大。当某一个类太大时,就要停止迭代了。至此,自动分类完成。
第十五章 矩阵运算、奇异值分解:略过
第十六章 信息指纹及其应用
所谓信息指纹:简练理解为将一段信息随机的映射到一个多维二进制空间中的一个点。只要随机函数做得足够好,不同信息对应的这些点就不会重合。也就具有了独一无二的指纹
- 两个集合相同的判定:1、循环比较N的平方复杂度;2、两个集合分别排序然后进行顺序比较,NlogN;3、将集合1放入哈希表中,第二个集合中元素一一和集合中的元素进行对比,复杂度N; 3、计算两个集合的指纹,直接进行比较,不需要额外的空间
- 爬虫过程中判断一个网页是否已经被下载过
第十七章 谈谈密码学
密码学:数学+信息论
- 世界上没有永远破解不了的密码,关键看能有多长时间的有效期。一种加密只要保证50年内无法破解就很了不起;
- 破解公开密钥的加密方式,至今的方式还是对大数M进行因数分解。利用计算机把所有数字都试一遍;
- 椭圆加密算法
第十八章 谈搜索引擎反作弊问题、搜索结果权威性:略过
第十九章 谈谈数学模型的重要性
- 一个正确的数学模型应当在形式上是简单的
- 一个正确的模型一开始还不如一个精雕细琢的错误模型来的准确。但是如果认定大方向上对的,就应该坚持下去
- 大量准确的数据对研发很重要
- 正确的模型也可能收到噪声干扰而显得不准确,这时候不应用一种凑合的修正方法去弥补。而是要找到噪声的根源,这也许能通往重大的发现。
第二十章 最大熵模型:略过
第二十一章 拼音输入法的数学原理 略过
第二十二章 自然语言处理教父马库斯
基于规则的研究转到基于统计研究方法上,有两个贡献人物:贾里尼克、马库斯
马库斯的贡献是宾夕法尼亚大学LDC语料库以及众多优秀弟子,这些弟子都身居要职一流大学担任科学家和研究员;
第二十三章 布隆过滤器
- 哈希表存储效率只有50%,布隆过滤器的好处是快速、省空间;
- 布隆过滤器是一个很长的二进制向量和一系列随机映射函数;
- 布隆过滤器绝不会漏掉黑名单中的任何一个地址,但是会有极小可能将不在黑名单中的数据判定为在黑名单中;解决的办法是再维护一个小的白名单,存储那些可能被误判的邮件地址;
第二十四章 贝叶斯网络
马尔科夫链是贝叶斯网络的特例,贝叶斯网络是马尔科夫链的推广
第二十五章 条件随机场:略过
第二十六章 维特比、维特比算法
- 数字通信中最常用算法、自然语言处理最常采用的解码算法。基于CDMA的3G移动通信标准就是维特比和雅各布创办的高通公司制定的
- 维特比算法针是一种特殊的动态规划算法,针对篱笆网络有向图最短路径问题,凡是使用隐马尔可夫模型描述的问题都可以用它解码。
第二十七章、二十八章 上帝算法(期望最大化算法)、逻辑回归和搜索广告-点击率预估采用了逻辑回归函数
第二十九章 分值算法和Google云计算基础:略过
第三十章 GOOGle大脑和人工神经网络
- 大多数“智能问题”:多维空间进行模式分类问题
- 跟脑子、神经没有半毛钱关系,只是借用了生物学的名词,进行了比喻;
- 人工神经网络:分层的有向图,第一层输入节点接收输入信息,每个节点计算好值向后传递,一层层执行,最后一层是输出层。那个节点的数值最大,输入的模式就被分在那一类。
- 训练人工神经网络
第三十一章 区块链数学基础——椭圆曲线加密原理
- 不对称,不透明之美
- 椭圆曲线加密原理:,关于x轴对称,一次次求交点,发明了加密算法
第三十二章 大数据的威力:谈谈数据的重要性
- 产品经理们遵从的一个规则:在没有数据之前,不要给出任何结论。因为日常的很多感觉与数据给出的结论是相反的。要用数据说话,否则很容易走弯路;
- 炒股——个别成功案例的影响在人们心中会被放大,而风险则会被缩小。对自己过于自信;
- 养成让数据成为生活中一些时候做决策的依据
- 契比雪夫不等式(样本数足够多的,大数据量)
- 大数据的要求:一、数据量必须足够多;二、采样的数据具有代表性,后者更重要,多维度和完备性的数据;有了这才能将原本看似无关的事情联系起来,恢复出对事物完整全方位的描述。
- 搜索引擎:网页本身数据、用户点击数据;前者可以烧钱加服务器就可以,而后者是一个长期积累的过程,用户点击模型的训练不可能短期烧钱完成,用户点击数据越少,训练出来的点击模型越差,搜索结果越不准确,这是为啥后进搜索引擎公司干不过百度,Google的原因——马太效应
- 后进公司的改进策略:一、通过收购流量,拿到用户点击数据,来完善训练点击模型,提高搜索质量;二通过搜索条、浏览器、甚至是输入法来收集用户的点击行为、数据,从而改进长尾搜索质量;最终导致搜索质量的竞争转变成了浏览器或者其他客户端软件市场占有率的竞争;
- 大数据可能是解决IT行业以外(比如医疗)一些难题的钥匙
第三十三章 量子密钥分发的数学原理
(光量子的偏振特性承载信息、数学、信息来论保密)
第三十四章 数学的极限
两条不可逾越的边界:图灵和希尔伯特划定
- 图灵划定计算机可以计算问题的边界
- 希尔伯特划定有解数学问题的边界
- 今天的困惑:不应该是担心人工智能、计算机有多么强大,而是不知道将一些应用场景转化为计算机能够解决的数学问题