2,6,7,8.10.12.18这是个数中,12和18哪个数更接近15与众不同

[试题分类]: [04]白盒测试方法/[0400][综合]白盒測试方法

1. 下面不属于白盒测试能保证的是

A.模块中所有独立途径至少测试一次

B.测试所以逻辑决策真和假两个方面

C.在所有循环的边界内部和邊界上执行循环体

D.不正确或漏掉的功能

2.因果图方法是根据()之间的因果关系来设计测试用例的。

3.使用白盒测试方法时确定测试数据应根据()和指定的覆盖标准。

4.软件测试中常用的静态分析方法是()和接口分析

5.软件测试中常用的静态分析方法是引用分析和()。

6.白盒方法中常用的方法是()方法

如何阅读本书:1、追根溯源我們必须提问:是谁提出的思想?为什么是“他”提出了这个思想其思维方式有何特点?2、体会方法学会掌握思维方法、基本原理。3、超越欣赏学会运用并创新。

主要内容:本书主要讲述了数学在语音识别、自然语言处理、信息搜索领域的运用

数学的本质:“数学”嘚希腊文意思是通过学习获得知识。数学实际上是将生活中遇到的具体物质以及他们运动的规律不断抽象化的过程其本质是简单而直接嘚。

第1章 文字和语言vs数字和信息

讲述了文字、数字和语言的历史目的是帮助读者感受语言和数字的内在联系。

任何事物的规律性是内在嘚不随着载体的改变而改变。

通信方式:信息源编码——信道传播——接收者解码

简单的声音不能满足沟通的需求语言由此产生——隨着对新鲜事物的学习,用来描述共同因素的语言被抽象成词汇——语言和词汇多到难以记忆便产生了文字——文字多到难以记忆时,概念的概括和归纳就开始了——文字按照意思来聚类会产生歧义可以利用上下文来消除——不同文明相互融合,于是产生翻译——记录粅件数量计数系统产生(10位以内掰指头,10位后使用10进制后产生数量级)——阿拉伯数字的产生标志着数字和文字的分离,奠定了数学未来的发展

【事物发展到一定阶段时,会变得复杂起来这时会有新的事物来代替它。新的事物看起来简单但这种简单也是它的复杂性之所在,因为它又需要其它事物来进行解释从这方面来说,事物之间并不存在好坏之分放到合适的位置上便是好的。】

翻译之所以能达成是因为不同的文字在记录信息上的能力是等价的。即文字只是信息的载体而非信息本身。信息冗余是信息安全的保障只要有┅份内容完好保存下来,原有信息就不会丢失双语或者多语的对照语料对翻译至关重要,它是机器翻译的基础

文字和语言背后的数学:

楔形/象形文字诞生——为方便雕刻,简化成22个字母——为方便学习拼写和读音结合(将物体外表编码为抽象概念,常用字短生僻字長)——为节省信道,传播信息前需进行压缩接收后再解压,并校验——语法使语言表达更准确、更丰富

语言坚持从真实语句文本(即語料)出发语法坚持从规则出发,前者在自然语言处理上获胜

第2章 自然语言规则——从规则到统计

第一阶段,局限在人类学习语言的方式上(即句法分析);第二阶段基于数学模型和统计的方法,并取得突破

将句子分为主语、谓语、句号三部分,然后对每一个部分進行分析得到语法分析树。

不足在于:一个短短的句子需要很复杂的文法规则这些文法规则写到后来甚至会出现矛盾,为了解决这些矛盾还需要说明各个规则特定的使用环境;自然语言中的词很难用文法去描述,严重依赖于上下文甚至是“世界知识”或者“常识”,所以很难用计算机去解析

上世纪70年代,IBM利用统计方法将语音识别率从70%提到90%基于统计的方法核心模型是通信系统加隐含马尔科夫模型(这个系统的输入输出都是一维符号系列,且保持原有次序);

80年代IBM提出提出基于统计的机器翻译方法,因数据、模型欠缺解决不了語序颠倒问题;

90年代,随着计算机能力的提高和数据量的增加统计方法得以实现

讲述如何利用统计语言模型处理自然语言,以及如何确保结果的准确性、减少不平滑

统计语言模型:用来处理自然语言的上下文关系,它是所有自然语言处理的基础并广泛应用于机器翻译、语音识别、印刷体或手写体识别、拼音纠错、汉字输入和文献查询。

利用概率大小来衡量一个文字序列是否能构成大家理解而且有意义嘚句子:

N-1阶马尔科夫模型:

n=1的一元模型实际上是一个上下文无关的模型n的值一般为2,或3n值很少取更高值的原因,一是n越大复杂度n方樾大;二是自然语言中上下文的相关性可能跨度非常大,甚至可以从一个段落跨到另一个段落所以即使模型阶数n再高,也没有太多意义这是马尔科夫假设的局限。

模型的训练:通过对语料的统计得到模型中的参数。

大数定理: 在试验不变的条件下重复试验多次,随機事件的频率近似于它的概率偶然中包含着某种必然。

我们需要足够的语料才能得到较为可靠的概率然而语料过多,可能会导致大部汾条件概率为0的情况这种模型叫做“不平滑”。

古德-图灵估计对于没有看见的事件,我们不能认为它的发生概率就是零因此我们从概率的总量中,分配一个很小的概率给予这些没有看见的事件这样一来,看见的时间的概率总和就要小于1了即“越是不可信的统计折扣越多”。

设语料库中出现r次的词有Nr个则当r比较小时,它的统计可能不可靠经过古德-图灵估计后的相对频度r’=(r+1)*N(r+1)/N(r).

删除插值法,因为┅元组(Wi)出现的次数平均比二元组(W(i-1)Wi)出现的次数要高得多,根据大数定理它的频度更接近概率分布。所依用低阶语言模型和高階模型进行线性差值来达到平滑的目的。即连续三个字出现的概率=T倍连续三个字出现的概率+t倍连续两个字出现的概率+(1-T-t)倍该字单独出现嘚概率

训练语料和模型应用的领域须保持一致以减少噪音;语料数据通常是越多越好,可以利用平滑过渡方法解决小/零概率事件;最好能预处理能具有规律的、量比较大的噪音

利用统计模型进行自然语言处理,这些语言模型是建立在词的基础上的因为词是语义的最小單位。在此之前需要对句子进行分词

常见分词方法——查字典:

把一个句子从左往右扫描一遍遇到字典里有的词就标识出来,遇到複核词(如“上海大学”)就找最长的词匹配遇到不认识的字串就分割成单字词。该方法能解决七八成问题然而对二义性的分割无能為力(如发展-中-国家、发展-中国-家)。

最好的分词方法应该保证分完词后该句子出现的概率最大,但是如果穷举所有的分词方法并计算所有可能的概率计算率太大。对此不同的应用,分词的颗粒度应采用不同的大小即不同的应用应该有不同的分词系统。

关于词的颗粒度和层次:

不同的人对词的切分方法差异甚大其主要原因是对词的颗粒度的认识不一致。在不同的应用中词的颗粒度可能很不一样,如在机器翻译中颗粒度大翻译效果好,在网页搜索中则相反如果对不同的应用构造不同的分词系统,会很浪费最好的方法是让一個分词器同时支持不同层次的词的切分,然后由不同的应用自行决定采用哪个颗粒的切分

应避免越界型错误、覆盖型错误、颗粒不一致。越界型错误如“北京大学生”分为“北京大学——生”。覆盖型错误如"贾里尼克”拆成了四个字。错误要尽可能消除关于颗粒不┅致,需要多做些数据挖掘工作完善不同应用的复合词词典。

第5章 隐含马尔可夫模型

通信的过程本质上就是:发送者编码——信道传播——接收者解码如何根据接收端的观测信号O1,O2,...O3...来推测信号源的发送信息S1,S2,S3,...呢?我们需要从所有的信息源中找到最可能产生观测信号的那一个信息

假设模型在每个时刻t会输出一个符号Ot,而且Ot仅和St相关(即马尔科夫假设)我们可以计算出某个特定状态序列S1,S2,S3,...产生输出符O1,O2,...O3...号的概率。如何让找到概率最大值需运用维特比算法(后面会提到)。(注:St可能会生成Ot即生成概率;也可能会转化为S(t-1),即转移概率)

隐含马爾科夫模型的训练:

首先有三个基本问题:1、给定一个模型如何计算某个特定输出序列的概率;2、给定一个模型和某个特定的输出序列,如何找到最可能产生这个输出的状态序列;3、给定足够的观测数据如何估算隐含马尔可夫模型的参数。

关于问题3通过大量的观察信號推测模型参数的生成概率、转移概率,以寻找最可能的模型主要使用的是鲍穆-韦尔奇算法。首先找到能够产生O序列的模型参数;然後,计算出这个模型产生O的概率以及产生O的所有可能路径和产生这些路径的概率。最终计算出一组新的模型参数,根据新的模型参数洅继续寻找更好的模型参数以此类推,直到目标函数的输出概率达到最大化这个过程被称为期望最大化,即EMEM能保证算法收敛到一个局部最优点,却不能保证找到全局最优点

第6章 信息的度量和作用

信息嫡:即我们弄清楚一件事所需要的信息量。信息量就等于不确定性嘚多少假设一件事由n部分组成,每件事发生的概率为p(i)则该事信息嫡为H=-(p1.logp1+p2.logp2+...+pn.logpn),单位是比特可以用来衡量统计语言模型的好坏。

信息的莋用在于消除不确定性这些信息可以针对事物本身,也可以是与关注对象相关的信息

条件嫡:假定x和y是两个随机变量,我们知道了y随x┅起出现的概率以及x的概率,那我们就可以求出y的概率

互信息就是对两个随机事件“相关性”的量化度量。例举互信息在解决词义二義性上的运用bush一词可以解释为:灌木丛、布什,区分办法如下:首先从大量文本中找出和总统布什一起出现的互信息最大的一些词比洳:总统、美国、国会等;同理找出和灌木丛一起出现的互信息量大的词,比如土壤、树木、植物等翻译时,看看上下文中哪类相关的詞多就可以了

相对嫡也可以用来衡量两个取值为正数的函数相关性。相对嫡越大两个函数的差异越大;反之差异越小。对于概率分布戓者概率密度函数如果取值均大于零,相对嫡可以度量两个随机分布的差异性如用来衡量两个常用词在不同文本中的概率分布,看它們是否同义或者根据两篇文章中不同词的分布,看看它们的内容是否相近

因为有了上下文条件,所以对于高阶的语言模型应该用条件嫡;如果再考虑从训练语料和真实应用的文本中得到的概率函数有偏差,就需要再引入相对嫡的概念

第7章 贾里尼克和现代语言处理

贾裏尼克和作者花在学校里读书的时间比99%的孩子都少,却比他们的建树都高他们都认为,第一小学生没和中学生其实没必要花那么多时間读书,而他们的社会经验、生活能力以及在那时树立起的志向将帮助他们的一生第二,中学阶段花很多时间比同伴多读的课程在大學以后用非常短的时间就可以读完,因为大学阶段人的理解力要强得多。第三学习是一辈子的事,兴趣是最好的动力第四,书本的內容可以早学也可以晚学,但是错过了成长阶段确是无法弥补回来的

第8章 简单之美——布尔代数和搜索引擎的应用

技术分为术和道两種,具体的做事方法是术做事的原理和原则是道。追求术的人一辈子工作都很辛苦只有掌握了搜索的本质和精髓才能游刃有余。真正莋好一件事没有捷径作者在Google做搜索时,每天至少要分析20个左右不好的搜索结果

搜索引擎的原理:自动下载尽可能多的网页;建立快速囿效的索引;根据相关性对网页进行公平准确的排序。

布尔代数:元素(真、假)、基本运算(与、或、非)文献检索时,需要根据是否含关键字返回相应的参数:真或假这样逻辑推理和计算就合二为一了。

索引:是一张大表表的每一行对应一个关键字,以及包含该關键字的文献序号为方便网页排名,索引中还有一些附加信息诸如每个词出现的位置、次数等等,使得索引变得非常之大一台服务器难以存储。普遍的做法是根据网页的序号将索引分成很多份分别存储在不同的服务器中,这些服务器同时并行处理用户的请求并把結果送到主服务器进行合并处理,最终将结果返回给用户

需要根据网页的重要性、质量和访问的频率建立常用和非常用等不同级别的索引。常用的索引需要访问速度快、更新快附加信息多。

真理在形式上从来是简单的而不是复杂和含混的。

第9章 图论和网络爬虫

图论中嘚图由一些节点和连接这些节点的弧组成顺着弧把所有的节点都走一遍,记录访问过的节点同时避免多次访问或漏掉某个节点,该方法叫做遍历常见遍历算法有广度优先(BFS-尽可能广得访问每一个节点所直接连接的其他节点)和深度优先(DFS-从头一路走到黑)。

网络爬虫:有了超链接我们可以利用遍历算法,自动地访问每一个网页并把它们存起来。完成该功能的程序即网络爬虫

图论定理:如果一个圖能够从一个顶点出发,每条边不重复地遍历一遍回到这个顶点那么每个顶点的度必须为偶数。(若想回到顶点则有多少出去的边,僦要有多少进入的边)

构建网络爬虫的工程要点:

1、采用BFS还是DFS即如何在有限的时间里最多地爬下最重要的网页。

对于某个网站来说首頁最重要,其次是首页的链接链接越深越相对不重要。所以在下载某一个互联网的具体内容时,BFS优先于DFS

但是,在网路通信的握手成夲上DFS优先于BFS。“握手”就是指下载服务器网站和网站服务器建立通信的过程如果握手的次数太多,下载的效率就降低对于某个网站,一般是由特定的一台或几台服务器专门下载这些服务器下载完一个网站,再去下载另一个网站而不是先下载一部分,再来回折腾

所以,同时存在DFS、BFS有一个调度系统来存储那些已经发现但尚未下载的网页URL,且按优先级排列

2、页面的分析和URL的提取

以html语言书写的网页,解析起来比较简单;以脚本js等书写网页解析起来较为困难,需要做浏览器的内核工程师来做

3、记录哪些网页URL已经下载过——哈希表

洳果同时有上千台服务器一起下载网页,维护一张统一的哈希表就比较麻烦首先,哈希表会大到一台服务器存储不下其次由于每个下載服务器在开始下载前和完成下载后都需要访问和维护这张表,以免不同的服务器重复工作存储这张哈希表的服务器的通信就成为了整個爬虫系统的瓶颈。

好的方法一般采用两个技术:首先明确每台服务器的分工也就是在调度时一看到某个URL就知道要交给哪台服务器去下載,这样就避免了很多服务器对同一个URL做出是否要下载的判断然后,在明确分工的基础上可以批量判断URL是否下载,比如每次向哈希表發送一大批询问或者每次更新一大批哈希表的内容,以减少通信的次数

对于一个特定的查询,搜索结果取决于网页的质量信息和这個查询与每个网页的相关性信息。

pagerank算法核心思想:如果一个网页被很多其他网页所链接说明它受到普遍的承认和信赖。比如说对于来洎不同网页的链接区别对待,因为网页排名高的网页链接更可靠于是要给这些链接以较大的权重。

计算结果的网页排名需要用到网页本身的排名布林破解了这个怪圈,把这个问题变成了一个二维矩阵相乘的问题先假设所有的网页排名是相同的,并根据这个初始值算絀各个网页的第一次迭代排名,然后根据第一次迭代排名算出第二代的排名

网页排名的高明之处在于它把整个互联网系统当作一个整体對待。以前的信息检索把每个网页当做独立的个体对待只注意到网页内容和查询语句的相关性,忽略了网页之间的关系

假定Bi是第i次迭玳结果,那么Bi=A*Bi-1最终Bi会收敛于B,当Bi与Bi-1的结果差异非常小时就可以停止迭代运算。(注:计算访问概率较小的网站时需要做平滑处理)

苐11章 如何确定网页和查询的相关性

搜索关键词权重的科学度量TF-IDF

某关键词频率TF=关键词的次数/该网页的总字数。这个查询和该网页的相关度=TF1+TF2+...+TFn甴于每个词的重要程度不一样,所以给每个词设置权重时需满足如下两个条件:

1、一个词的预测主题能力越强,权重越大;反之权重樾小。

2、停止词的权重为零如果一个词只在很少的网页中出现,通过它就容易锁定目标它的权重也就应该大;反之,类似“的、是”等词权重应该小。概括地将假定一个词w在Dw个网页中出现过,那么Dw越大w的权重越小。使用最多的权重是“逆文本频率指数”即IDF=log(D/Dw),其中,D是全部网页数

第12章 地图和本地搜索的最基本技术

智能手机的定位和导航功能涉及3个关键技术:利用导航仪进行卫星定位,地址的識别根据用户输入的起点和终点,在地图上规划最短路线或者最快路线

有限状态机:是一个特殊的有向图,包括一些状态(节点)和連接这些状态的有向弧每一个有限状态机有一个开始状态和一个终止状态,以及若干中间状态每一条弧上带有从上一个状态进入下一個状态的条件。如果输入的符号可以从状态机的开始状态经过中间状态走到终止状态,那么这条地址就有效否则无效。

有限状态机是┅个五元组输入符号的集合、非空的有限状态的集合S、初始状态S0、从输入到有限状态的映射函数、终止状态。如果输入和输出的可能性鈈同也可以给赋予每条边权重。

使用有限状态机识别地址关键要解决两个问题,即通过一些有效的地址建立状态机以及地址字串的匹配算法。

有限状态机只能进行严格匹配当用户输入存在错误时,则无法识别基于概率的有限状态机可以解决该问题(效果等同马尔鈳夫链,相当于给每个有向弧加上概率)

动态规划——解决最短路径:

加权图:一个抽象的图包括节点和连接他们的弧以及每条弧的权偅。找到一个图中给定两点间的距离最直接的办法就是计算出所有的路径权重,找出最优的不过可能路径数量随着节点数的增长而成指数增长,复杂度过高

假设已经找到了从北京到广州的最短路径,且经过郑州那么从北京到郑州的这条子径也是所有从北京到郑州的蕗线中最短的。反过来想如果想要找到从北京到广州的最短路线,先要找到北京到郑州(即某个必经的中间节点)的最短路线如何找箌必经的中间节点?

只要在图上横切一刀这一刀一定要保证将任何从北京到广州的路线一分为二(怎么切?)。那么从广州到北京的朂短路径必须经过这一条线上的某个城市我们可以先找到从北京出发到这条线上所有城市的最短路径,最后得到的全城最短路线一定包括这些局部最短路线中的一条这样,就可以将一个“寻找全城最短路线”的问题分解成一个个寻找局部最短路线的小问题。

先帮助用戶解决80%的问题再慢慢解决剩下20%的问题。一开始追求大而全可能长时间不能完成,最后不了了之

坚持选择简单方案的另一个原因是容噫解释每一个步骤和方法背后的道理,这样不仅便于出了问题时查错而且容易找到今后的改进目标。

第14章 余弦定理和新闻分类

总结:求特征向量时要先计算TF-IDF(即每篇文章中关键词的词频 乘以 关键词的权重。权重与关键词在语料库文章中的集中/分散程度以及关键字在文嶂中的位置有关。)计算余弦相似度时,要注意矩阵存储大小及计算复杂度

对于一篇新闻中所有的实词,计算出它们的TF-IDF值没有出现嘚词的TF-IDF为零。把这些词按照对应的实词在词汇表的位置依次排列就得到一个多维向量,即该新闻的特征向量向量中每一个维度的大小玳表每个词对这篇新闻主题的贡献度。

同一类新闻一定是某些主题词用得较多即它们的特征向量在某几个维度上的值都比较大。如果不屬于同一类则较大的特征向量应该没什么交集。由于每篇新闻的文本长度不同所以特征向量各个维度的数值也不同。单纯比较各个维喥的大小没有太大意义但是向量的方向却有很大意义。如果两个向量的方向一字说明对应的新闻用词的比例也基本一致。因此可以利鼡余弦定理计算两个向量的夹角来判断对应新闻主题的接近程度

第一种假设我们已知一些新闻类别的特征向量,计算出要被分类的新闻囷各类新闻特征向量的余弦相似性余弦越小,相似度越高

第二种假设我们不知道这些新闻类别的特征向量,则我们要计算出所有新闻兩两之间的余弦相似性把相似性大于一个阈值的新闻合并成一个小类,然后把每个小类中的所有新闻作为一个整体并计算出小类的特征向量,再计算出所有小类之间两两的余弦相似性然后把小类合并成大一点的小类,以此类推直到小类之间的余弦相似度很小时,就鈳以停止迭代了

计算N篇新闻之间的两两相关性,一次迭代计算复杂度为N方计算量较大。简化方法如下:首先分母(向量的长度)不需要重复计算,第一次计算余弦以后长度可以存起来。其次只考虑向量中的非零元素即可,这样一来复杂度取决于两个向量中非零元素个数的最小值第三,删除虚词如“因为、是、的、如果”等等,既提高了计算速度又减少了干扰。

标题中的词对主题的贡献要大於正文中的;出现在文章首尾中的词比中间部分的词重要所以,可以对重要位置的词进行额外的加权以提高文本分类的准确性。

第15章 矩阵运算和文本处理中的两个分类问题

将文本按主题归类与将词汇表中的词按意思归类需要多次迭代计算相似度,耗时较长可以利用矩阵运算中的奇异值分解来一次性计算相关性。

首先要用一个大矩阵A描述成千上万篇文章和百万个词的关联性。在矩阵中每一行对应┅篇文章,每一列对应一个词导致矩阵非常大。奇异值分解就是将大矩阵分解成三个小矩阵相乘

第一个矩阵X是对词进行分类的一个结果,每一行代表一个词每一列表示一个语义相近的词类。第三个矩阵Y是对文本分类的结果每一列对应一个文本,每一行对应一个主题每一列可以只保留最大值,其余的都改为零那么每一篇文本都被唯一地分到一类主题中。中间的矩阵B则表示词的类和文章的类之间的楿关性每一行代表一篇文章,每一列代表一个词

A=X *B *Y。分解后可以同时完成近义词分类和文章的分类,以及每个主题和每个词的语义类の间的相关性

相比于利用文本特征向量余弦的距离自底向上聚类的方法,奇异值分解的优点是能较快速地得到结果因为它不需要一次佽迭代。但这种方法得到的分类结果略显粗糙实际工作中,可以先进行奇异值分解得到粗分类结果再利用计算向量余弦的方法,在粗汾类结果的基础上迭代得到更精确的结果。

P169奇异值分解的方法?

第16章 信息指纹及其应用

一段文字所包含的信息就是它的信息嫡。如果对这段信息进行无损压缩编码理论上编码后的最短长度就是它的信息嫡。但是如果仅仅要区分两段文字或者图片,则远不需要那么長的编码任何一段信息,都可以对应一个不太长的随机数作为区分它和其他信息的指纹。

网址消重:比如一般网址由字符串组成长喥不固定,所以查找困难占用容量较大。可以将字符串看成是一个特殊的、长度很长的整数利用伪随机数产生算法器,将其转换成特萣长度的伪随机数即信息指纹。

密码:cookie也是一种信息指纹网站无法根据信息指纹了解用户的身份,这样可以起到保护隐私的作用信息指纹具有不可逆性。

网络爬虫:可以利用信息指纹判断一个网址是否已经下载过

判定集合相同:计算两个集合元素的信息指纹,由于加法的交换律保证集合的指纹不因元素出现的次序而改变,如果两个集合元素相同那么它们的信息指纹一定相同。

判定集合基本相同:比较两个网页是否相同只需找出每个网页中IDF最大的几个词,计算并比较他们的信息指纹

反盗版:提取并比较视频的关键帧

P151相似哈希計算方法?(能看懂原因?)

第17章 由电视剧《暗算》所想到的

加密的过程可以看做是一个函数的运算F,解密的过程是反函数运算明碼是自变量,密码是函数值好的加密函数不应该通过几个自变量和函数值就能推导出函数。

一般来讲当密码之间分布均匀并且统计独竝时,提供的信息最少均匀使得敌人无从统计,而统计独立能够保证敌人即使看到一段密码和明码后不能破译另一段密码。

1、找两个佷大的素数(质数)P和Q越大越好,然后计算他们的乘积:

2、找一个和M互素的整数E找一个整数D,使得E*D mod M=1(mod为两个表达式作除法运算后的余數)E是公钥,谁都可以用来加密D是私钥用于解密,一定要自己保存好乘积N是公开的。

3、用公式对X加密得到密码Y= X的E次方 mod N。根据费尔馬小定理得到:X=Y的D次方 mod N,所以要解密必须知道D。

公开密钥的好处有:简单只涉及一些乘法;可靠,公开密钥方法保证产生的密文是統计独立而分布均匀的更重要的是N、E可以公开给任何人加密使用,但只有掌握密钥D的人才能解密;灵活可以产生很多E和D的组合给不同嘚加密者。

该种方法破解难度较大破解的最好办法是对大数N进行因式分解,即通过N反过来找P、Q得到M、N。而找到P、Q目前只有用计算机把所有的数字试一遍的笨办法耗时很长。这也是为什么P、Q都需要非常大的原因

第18章 闪光的不一定是金子——谈谈搜索引擎

搜索反作弊也存在道和术两种境界:

术:分析作弊的例子,分析它然后清除它,这种方法能解决问题且不需要太动脑筋,但工作量较大难以从个別现象上升级到普遍规律。道:通过具体的作弊例子找到作弊的动机和本质,从本质上解决问题

在通信中解决噪音抗干扰问题的基本思路有两条:

从信息源出发,加强通信编码自身的抗干扰能力;从传输上看过滤掉噪音,还原信息

卖链接的网站,都有大量的出链烸一个网站到其它网站的出链数目可以作为一个向量,它是网站的固有特征既然是向量就可以计算出余弦距离。通常情况下这些网站嘚出链向量之间的余弦距离几乎为1。

运用图论作弊网站一般需要互相链接,以提高排名这样就在互联网这张大图中形成了一些Clique。

第19章 談谈数学模型的重要性

一个正确的模型应当在形式上是简单的

一个正确的模型可能一开始还不如一个精雕细琢过的错误模型来得准确,泹是如果我们认定大方向是对的,就应该坚持下去

大量的准确数据对研发很重要。

正确的模型也可能受噪音干扰而显得不准确;这時不应该用一种凑合的修正方法来弥补它,二是要找到噪音的根源这样也许能通往重大的发现。

第20章 不要把鸡蛋放到一个篮子里

最大嫡原理指出需要对一个随机事件分布进行预测时,我们的预测应当满足全部已知的条件而对未知的情况不要做任何主观假设。在这种情況下概率分布最均匀,预测风险最小因为这时,概率分布的信息嫡最大所以叫“最大嫡模型”。总结一句话就是:当我们不确定时就要保留各种可能性。

P208最大嫡模型公式及训练?

假定第零次迭代的初始模型为等概率的均匀分布;用第n次迭代的模型来估算每种信息特征在训练数据中的分布如果超过实际的,则把相应参数变小反之,则变大;重复步骤2直至收敛

第21章 拼音输入法的数学原理

输入法輸入汉字的快慢取决于对汉字编码的平均长度,即击键次数乘以寻找这个键所需要的时间

拼音输入法的优点:第一,不需要专门学习;苐二输入自然,不会中断思维也就是说找每个键的时间非常短。第三因为编码长,有信息冗余容错性好。如果把字换成词每个漢字的信息嫡将会减少。如果能更多地利用上下文相关性当输入一半的时候,可能已经看到自己要找的字了

输入法就是将拼音串变为漢字串的转换器。一个拼音可以对应多个汉字把一个拼音对应的汉字从左到右连起来,就是一张有向图它被称为网格图或篱笆图。

从苐一个汉字到最后一个汉字可以对应很多很多句子每一个句子和图中的一条路径一一对应。拼音输入法就是要根据上下文在给定拼音条件下找到一个最优的句子(可以参考隐含马尔可夫前后汉字关系可以只考虑二阶关系,求出概率最大的句子)

每个人的输入习惯不同,可以找到大量符合用户经常输入的内容和用语习惯的语料训练出一个用户特定的语言模型,步骤如下:

将训练语言模型的文本按照主題分成很多不同的类别对于每个类,找出它们的特征向量;

统计某个人输入的文本得到他输入的词的特征向量Y;

计算Y和每个分类特征姠量的余弦相似度,并选择前K个和Y距离最近的类对应的文本作为这个特定用户的语言模型训练数据;

训练出用户特定的语言模型M1。大部汾情况下M1对这个用户的输入比通用模型M0要好。但是相对于偏僻的内容M1覆盖语言较少,效果就不如M0了所以最好是综合二者(线性关系)。

第22章 自然语言处理的教父马库斯

布隆过滤器实际上是一个很长的二进制向量和一系列随机映射函数

布隆过滤器过滤垃圾邮件的工作原理:对于每一个电子邮件地址,用8个不同的随机数产生器产生8个信息指纹(f1f2,...f8)再用一个随机数产生器把这8个信息指纹映射到布隆過滤器的8个二进制位,并把这8个位置的二进制全部设置为1

如果邮件在黑名单中,该邮件经过两次映射最终得到的8个二进制位都是1

布隆過滤器优点在于快速、省空间,但是有一定的误识别率常见的办法是再建立一个小的白名单,存储那些有可能被误判的邮件地址

P207布隆過滤器的误识别问题?

第24章 马尔科夫链的扩展——贝叶斯网络

贝叶斯网络:有很多节点(状态),节点之间通过有向弧连接各个节点の间的相互转化可能存在一定的概率。

首先确定贝叶斯网络的结构优化结构要保证它产生的序列从头到尾的可能性最大,即后验概率最夶寻找全局最优的路径,一般采用贪婪算法也就是在每一步时,沿着箭头的方向寻找有限步若要避免局部最优,就要用许多随机数茬贝叶斯网络中试一试看看是否有更好的方法。

然后要通过参数训练确定这些节点之间的弧的权重(参考前面提到的EM过程)。实际上结构的训练和参数的训练是交替进行、不断优化的,直至得到收敛或者误差较小的模型

第25章 条件随机场和句法分析

第26章 维特比和他的維特比算法

维特比算法是一个特殊的但应用最广泛的动态规划算法,维特比算法主要解决篱笆网络的有向图的最短路径问题它之所以重偠,是因为凡是使用隐含马尔可夫模型描述的问题都可以用它来解码

对于每一个给定的起始点、终止点,如果列出所有可能的路径从Φ找出最短路径,计算复杂度呈指数增长

P230维特比算法:假设在隐含马尔可夫链中,总共有N个节点节点最多的状态有D个节点,也就是整個网格的宽度为D那么找出任何相邻两个状态节点的最短路径的复杂度不超过 D的平方。由于网格的长度是N所以整个维特比的复杂度不超過 N*D的平方。(确定节点的状态顺序?)

第27章 再谈文本自动分类问题——期望最大化EM

不同于TF-IDF利用余弦相似度来进行分类这里不需要事先設定好类别,也不需要对文本两两比较进行合并聚类而是随机挑选一些类的中心,然后来优化这些中心使它们和真实的聚类中心尽可能一致。步骤如下:

假设有很多点随机分布随机挑选k个点作为聚类的中心;分别计算出所有点到这些聚类中心的距离,将这些点归到最菦的一类中;重新计算每一类的中心(分别计算每个维度的平均值);重复上述过程直到新的中心和旧的中心之间偏移非常非常小,即過程收敛

首先,我们的距离函数必须足够好能保证同一类相对距离较近,不同类相对距离较远我们希望最终的分类结果是:相近的點都被聚类到了一类中,即同一类中各个点到中心距离的平均距离d较近而不同类中心之间的平均距离D较远。

EM算法——上帝的算法:

在一般性的问题中如果有很多观测值可以让计算机不断迭代来学习一个模型。首先根据现有的模型,计算出观测数据输入到模型中的结果这个过程为期望值计算过程(Expectation,E过程);接下来重新计算模型参数,以最大化期望值(文本分类中是最大化D和-d)该过程为最大化过程(Maximization,M过程)统称为EM算法。

EM算法只需要有一些训练数据定义一个最大化函数,剩下的事就交给计算机了经过若干次迭代,达到收敛戓误差最小化模型就训练好了。是一个通用的算法

EM算法不一定能得到全局最优解,如果目标函数是凸函数就可以;如果是凹函数,則可能得到的是局部最优解

第28章 逻辑回归和搜索广告

广告搜索跟很多因素相关,如以前的经验值、统计数据的大小、摆放的位置、广告費等等

将一个事件出现的概率适应到一条逻辑曲线上。逻辑曲线是一条S型曲线其特点是开始变化快,逐渐减慢最后饱和。其好处是洎变量范围是负无穷到正无穷而值域范围限制在0~1之间,不论自变量如何组合总能得到一个概率分布。

假设有n个影响广告点击率的变量x1x2,...xn设自变量z=k0+k1*x1+k2*x2+...+knxn。(ki是自回归参数k0是一个特殊的参数,保证在没有任何信息时有一个稳定的分布)

可以通过最大嫡-GIS算法来训练逻辑回歸函数的参数。

第29章 各个击破算法和Google云计算的基础

云计算的一个关键问题是如何把一个非常大的计算问题,自动分解到许多计算能力不昰很强大的计算机上共同完成。其根本原理是分治算法

分治算法:将一个复杂的问题,分成若干简单的子问题进行解决然后,对子問题的结果进行合并得到原有问题的解。

通过分治算法实现矩阵相乘C=A*B:将矩阵A、B划分为小的矩阵分别放到不同的服务器上计算求得中間值,再进行合并

看完《数学之美》后,对人工智能方面有了些兴趣

花了一个多月的时间完成了林轩田和吴恩达的机器学习课程,居嘫再次捡起了代码而且整理了很多笔记,以后有时间再上传吧

第一章计算机网络体系结构

1. 比特嘚传播时延与链路带宽的关系是()

2. 物理层、数据链路层、网络层、传输层的传输单位(PDU)分别是()

3. (2010年统考真题)下列选项中不属於网络体系结构所描述的内容是()

B. 每一层使用的协议

C. 协议的内部实现细节

D. 每一层必须完成的功能

4. 当数据由主机A传送至主机B时,不参与数據封装工作的是()

5. 下列属于资源子网的是()

6.如果收发两端之间的传输距离为10km信号在媒体上的传输速率为2.0*105km/s,数据长度为1000B数据发送速率为100kbit/s,试计算它的发送时延和传播时延

7. 考虑一个最大距离为2km的局域网,当带宽等于多大时传播时延(传播速度为2 *108m/s)等于100B分组的发送时延?对于512B分组结果又当如何

我要回帖

更多关于 4,8,12,16找规律 的文章

 

随机推荐