《数学之美》读后感

一本不错的信息处理数学原理科普书。一些复杂的信息问题、工程问题,经作者之手,把背后的数学原理通过简单的形式展示出来,让普通读者明白到了数学解决问题的能力,体会到了数学的美。
这本书,背后也道出了一个道理,那就是基础数学理论研究对计算机科学的发展能起到非常重要的作用。
例如,书中提到,布尔代数,在19世纪布尔提出的80多年时间里,一直默默无闻,在实际生活中也没有起到任何作用。直到1938年香农提出在电路开关中应用布尔代数来处理之后,才开始在数字电路方面得到了广泛应用。

布尔(George Boole) 是十九世纪英国一位小学数学老师。他生前没有人认为他是数学家。布尔在工作之余,喜欢阅读数学论著、思考数学问题。1854 年“思维规律” (An Investigation of the Laws of Thought, on which are founded the Mathematical Theories of Logic and Probabilities)一书,第一次向人们展示了如何用数学的方法解决逻辑问题。

读者也许会问这么简单的理论能解决什么实际问题。布尔同时代的数学家们也有同样的问题。事实上在布尔代数提出后80 多年里,它确实没有什么像样的应用,直到 1938 年香农在他的硕士论文中指出用布尔代数来实现开关电路,才使得布尔代数成为数字电路的基础。所有的数学和逻辑运算,加、减、乘、除、乘方、开方等等,全部 能转换成二值的布尔运算。

不管索引如何复杂,查找的基本操作仍然是布尔运算。布尔运算把逻辑和数学联系起来了。它的最大好处是容易实现,速度快,这对于海量的信息查找是至关重要的。它的不足是只能给出是与否的判断,而不能给出量化的度量。因此,所有搜索引擎在内部检索完毕后,都要对符合要求的网页根据相关性排序,然后才返回给用户。

像作者说的,布尔代数对于数学的意义,等同于量子力学对于物理学的意义,他们将我们对世界的认识从连续状态扩展到了离散的状态。
因为作者是搜索方面的专家,所以,作者对搜索涉及的数学建模、有向图、矩阵、统计、概率、迭代等方面进入了深入浅出的描述。
印象最深刻的是,作者在讨论到比较两个集合的是否一样的时候,提到了各种算法的优劣性。最基本的算法是采用逐个元素的比较,好一点的是排序后再比较。但是作者提出,其实最优的方案的是,采集每个词的信息指纹----数字,然后对这些数字求和比较,就能马上知道两个集合是否有差异了。因为采用的信息指纹是伪随机数,不同信息指纹加减乘除之后相同的概率非常小。信息指纹在判断网页相似性、论文抄袭等方面发挥了重要的作用。
另外说的一点是,因为密码学不是作者的专业,感觉本书在密码学方面讲得不够透。密码方面的知识建议参考(知乎)关于老和尚小和尚讨论密码的问题

文章摘录

  • 了解了罗塞塔石碑的历史,对于今天很多翻译软件和服务都叫做“Rosetta”就不会觉得奇怪了,这其中包括Google的机器翻译和世界上销量最大的PC机上的翻译软件。
  • 阿拉伯数字或者说印度数字的革命性不仅在于它的简洁有效,而且标志着数字和文字的分离。
  • 当司马迁用近53万字记载了中国上千年历史的同时,远在中东的犹太人也用类似的篇幅记载了自创世纪以来,主要是摩西以来他们祖先的历史,这就是《圣经》中的《旧约》部分。
  • 如果说从字母到此的构词法(Morphology)是词的编码规则,那么语法则是语言的编码和解码规则。不过,相比较而言,词可以被认为是有限而且闭合的集合,而语言则是无限和开放的集合。
    因此,任何语言都有语法规则覆盖不到的地方,这些例外或者说不准确性,让我们的语言丰富多彩。
  • 当然,香浓不必要得什么图灵奖,作为信息论的发明人,他在科学史上的地位和图灵是相当的,而且通信领域最高奖就是以他的名字命名的。
  • 对于人类来讲,一个能把英语翻译成汉语的人,必定能很好理解这两种语言。这就是直觉的作用。在人工智能领域,包括自然语言处理领域,后来把这样的方法论称作“鸟飞派”,也就是看看鸟是怎么飞的,就能模仿鸟造出飞机,而不需要了解空气动力学。事实上我们知道,怀特兄弟发明飞机靠的是空气动力学而不是仿生学。
  • 自然语言的处理从基于规则方法的传统,现在转入了统计的语言处理方法。
  • 在数理统计中,我们之所以敢对采样数据进行观察的结果来预测概率,是因为有大数定理(Law of Large Numbers)在背后做支持,他的要求是有足够的观测值。
  • 这里有一个很好的例子,来自于腾讯搜索部门。最早的语言模型是使用《人民日报》的语料训练的,因为开发者认为这些语料干净、无噪音。但是实际的效果就比较差,经常出现搜索串和网页不匹配的例子。后来改用网页的数据,尽管他们有很多的噪音,但是因为训练数据和应用一致,搜索质量反而好。
  • 但是对于能找到模式(Pattern)的、量比较大的噪音还是有必要过滤的,而且他们也比较容易处理,比如网页文本中存在的大量的制表符。因此,在成本不高的情况下,有必要对训练数据进行过滤。
  • 分词的二义性是语言歧义性的一部分,1990年前后,当时清华大学电子工程系工作的郭进博士用统计语言模型成功解决了分词二义性的问题,将汉语分词的错误率降低了一个数量级。
  • 化学里分子是保持化学性质的最小单位,再往下分到原子,化学性质就变了。
  • 很多自然语言的处理问题是和通信的解码问题等价的,因此它们完全可以由隐马尔可夫模型来解决。
  • 隐马尔可夫模型最初应用于通信领域,继而推广到语音和语言处理中,成为连接自然语言处理和通信的桥梁。同时,隐马尔可夫模型也是机器学习的主要工具之一。和几乎所有机器学习的模型工具一样,它需要一个训练方法(鲍姆-韦尔奇算法)和使用的解码算法(维特比算法),掌握了这两类算法,就基本可以使用隐马尔可夫模型这个工具了
  • “信息熵(读Shang)”的概念,可以认为,信息量就等于不确定性的多少。
  • 几乎所有的自然语言处理、信息与信号处理的应用都是一个消除不确定性的过程。
  • 信息的作用就在于消除不确定性,自然语言处理的大量问题就是寻找相关的信息。
  • 信息熵的物理含义是对一个信息系统不确定性的度量,在这一点上,它和热力学熵中的概念有相似之处,因为后者就是一个系统无序的度量,从另一个角度讲也是对一种不确定性的度量。
  • 罗曼•罗兰为那些追求灵魂高尚而非物质富裕的年轻人写下了《巨人三传》,让大家呼吸到巨人的气息。
  • 贾里尼克教授在学术上给我最大的帮助就是提高了我在学术上的境界。他告诉我最多的是:什么方法不好。在这一点上和股神巴菲特给和他吃饭的投资人的建议有异曲同工之处。巴菲特和那些投资人讲,你们都非常聪明,不需要我告诉你们做什么,我只需要告诉你们不要去做什么(这样可以少犯很多错误),这些不要做的事情,是巴菲特从一生的经验教训中得到的。
  • 具体的做事方法是术,做事的原理和原则是道。真正做好一件事没有捷径,离不开一万小时的专业训练和努力。
  • 布尔代数对于数学的意义等同于量子力学对于物理学的意义,他们将我们对世界的认识从连续的状态扩展到离散状态。
  • 早期的搜索引擎(比如AltaVista以前的所有搜索引擎),由于受计算机速度和容量的限制,只能对重要、关键的主题词建立索引。至今很多学术杂志还要求作者提供3-5个关键词。这样,所有不常见的词和太常见的虚词就找不到了。现在,为了保证对任何搜索都能提供相关的网页,常见的搜索引擎都会对素有的词进行索引。但是,这在工程上却极具挑战性。
    因此,整个索引就变得非常之大,显然,这不是一台服务器的内存能够存下来的。所以,这些索引需要通过分布式的方式存储到不同的服务器上。普通的做法就是根据网页的序号将索引分成很多份(Shards),分别存储在不同的服务器中。每当接受一个查询时,这个查询就被分发到许许多多的服务器中,这些服务器同事能并行处理用户的请求,并把结果送到主服务器进行合并处理,最后将结果返回给用户。
    因此,需要根据网页的重要性、质量和访问的频率建立常用和非常用等不同级别的搜索。常用的索引需要访问速度快,附加信息多,更新也要快。
  • 布尔代数非常简单,但是对数学和计算机发展的意义重大,它不仅把逻辑和数学合二为一,而且给了我们一个看待世界的全新视角,开创了今天的数字化的时代。
  • 比如Google在2013年时整个索引大约有10,000亿个网页,即使更新最频繁的基础索引也有100亿个网页,加入下载一个网页需要一秒钟,那么下载这100亿个网页则需要317年,如果下载10.000亿个网页则需要32,000年左右,是我们人类有文字记载历史的六倍时间。因此,一个商业的网络爬虫需要有成千上万个服务器,并且通过高速网络连接起来。
  • 显然各个网站最重要的网页应该是它的首页。在最极端的情况下,如果爬虫非常小,只能下载非常有限的网页,那么应该下载的是所有网站的首页,如果把爬虫再扩大些,应该爬下首页直接链接的网页,因为这些网页是网站设计者自认为相当重要的网页。在这个前提下,显示BFS明显优于DFS。事实上在搜索引擎的爬虫黎,虽然不是简单地采用BFS,但是先爬哪个网页,后爬哪个网页的调度程序,原理上基本上是BFS。
  • 对于某个网站,一般是由特定的一台或者几台服务器专门下载。这些服务器下载完一个网站,然后再进入下一个网站,而不是每个网站先轮流下载5%,然后回过头来下载第二批。这样可以避免握手的次数太多。要是下载完第一个网站再下载第二个,那么这又有点像DFS,虽然下载同一个网站(或者子网站)时,还是需要BFS的。
  • 在互联网上,如果一个网页被很多其它的网页所链接,说明它收到普遍的承认和信赖,那么它的排名就高。这就是PageRank的核心思想。当然,Google的PageRank算法实际上要复杂得多。比如说,对来自不同网页的链接区别对待,因为那些排名高的网页的链接更可靠,于是要给这些链接比较大的权重。
    破解这个怪圈的应该是布林。他把这个问题变成了一个二维矩阵相乘的问题,并用迭代的方法解决了这个问题。他们先假定所有网页的排名是相同的,并且根据这个初始值,算出各个网页的第一次迭代排名,然后,再根据第一次迭代排名算出第二次排名。他们两人从理论上证明了无论初始化值如何选取,这种算法都能保证网页排名的估计值能收敛到排名的真实值。值得一提的是,这种算法不需要任何人工干预。
  • 网页排名算法的高明之处在于它把整个互联网当做一个整体来看待。这无意中符合了系统论的观点。相比之下,以前的信息检索大多把每一个网页当做独立的个体对待,大部分人当初只注意了网页内容和查询语句的相关性,忽略了网页之间的关系。
  • 而且决定搜索质量最有用的信息是用户的点击数据。
    网页排名的计算主要是矩阵相乘,这种计算很容易分解成许多小任务,在多台计算机上并行处理。矩阵相乘的并行化方法会在第29章介绍Google并行计算工具MapReduce时再做讨论。
  • 今天,Google搜索引擎比最初复杂、完善了许多。但是PageRank在Google所有算法中依然是至关重要的。在学术界,这个算法被工人为是文献检索中最大的贡献之一,并且被很多大学列为信息检索科学(Information Retrieval)的内容。佩奇也因为这个算法在30岁时当选为美国工程院院士,是继乔布斯和盖茨之后又一位当选院士的辍学生。由于PageRank算法收到专利保护,它带来了两个结果。首先,其他搜索引擎开始时都比较遵守游戏规则,不去侵犯它,这对当时还很弱小的Google是一个很好的保护。第二,它使得斯坦福大学拥有了超过1%的Google股票,收益超过10亿美元。
  • 在信息检索中,使用最多的权重是“逆文本频率指数”(Inverse Document Frequency,缩写为IDF)。
  • 有限状态机是一个特殊的有向图,它包括一些状态(节点)和连接这些状态的有向弧。
  • 全球导航的关键算法是计算机科学图论中的动态规划(Dynamic Programming)的算法。
    在图论中,一个抽象的图包括一些节点和连接他们的弧。如果再考虑每条弧的长度,或者说权重,那么这个图就是加权图(Weighted Graph)。
    图中的弧的权重对应地图上的距离或者行车时间、过路费等。
    正确的数学模型可以将一个计算量看似很大的问题的计算复杂度大大降低。
  • 辛格这种做事情的哲学,即先帮助用户解决80%的问题,再慢慢解决剩下的20%的问题,是在工业界成功的秘诀之一。
    在Google,辛格一致坚持寻找简单有效的解决方法,因为他奉行简单的哲学。
    辛格认为,计算机不必学习人的做法,就如同飞机不必要像鸟一样飞行。
    其次,辛格坚持每天要分析一些搜索结果不好的例子,以掌握第一手的资料,即使在他成为Google Fellow以后,依然如此。这一点,非常值得从事搜索研究的年轻工程师学习。事实上,我发现中国大部分做搜索的工程师在分析不好的结果上花的时间远比功成名就的辛格要少。
    辛格非常顾虑年轻人要不怕失败,大胆尝试。有一次,一位刚毕业不久的工程师因为把带有错误的程序推到Google的服务器上而惶惶不可终日。辛格安慰她说,你知道,我在Google犯的一次错误是曾经将所有的网页的相关性得分全部变成了零,于是所有搜索的结果全部都是随机的了。后来,这位出过错的工程师为Google开发出了很多好产品。
  • 幸福的家庭都是相似的,不幸的家庭各有各的不幸。
  • 需要特别之处的是,删除虚词,不仅可以提高计算速度,对新闻分类的准确性也大有好处,因为虚词的权重其实是一种噪音,干扰分类的正常进行。这一点与通信中过滤掉低频噪音是同样的原理。通过这件事,我们也可以看出自然语言处理和通信的很多道理是相通的。
  • 在中学学习语文和大学学习英语文学时,老师都会强调这一点,阅读时要特别关注第一段和最后一段,以及每个段落的第一个句子。
  • 我们希望有一个方法,异常就能把所有新闻相关性计算出来,这个一步到位的方法就是利用矩阵计算中的奇异值分解(Singular Value Decomposition,简称SVD)
  • 虽然Google早就有了MapReduce等并行计算的工具,但是由于奇异值分解很难拆成不相关子运算,即使在Google内部以前也无法利用并行计算的优势来分解矩阵。直到2007年,Google中国的张智威博士带领几个中国的工程师及实习生实现了奇异值分解的并行算法,这是Google中国对世界的一个贡献。
  • 双对角矩阵:除了两行对角线元素非零,剩下的都是零。
  • 奇异值分解的另一个大问题是存储量较大,因为整个举证都需要存在内存里,而利用余弦原理的聚类则不需要。
  • 任何一段信息(包括文字、语音、视频、图片等),都可以对应一个不太长的随机数,作为区别这段信息和其他信息的指纹(Fingerprint)。只要算法设计得好,任意两段信息的指纹都很难重复,就如同人类的指纹一样。信息指纹在加密、信息压缩和处理中有广泛的应用。
  • 从加密的角度来讲,梅森旋转算法还不够好,因为它产生的随机数还有一定的相关性,破解了一个就等于破解了一大批。
  • 在网页搜索中,有时需要判断两个查询用词完全相关(但是次序可能不同),比如“北京 中关村 星巴克” 和 “星巴克 北京 中关村”用词完全相同,更普遍的讲法是判断两个集合是否相关。判断两个集合是否相同,而完美的计算方法是计算两个集合的指纹,然后进行比较。计算和比较这些特征值的信息指纹即可。
    我们知道IDF大的词鉴别能力强,因此只需找出每个网页中IDF最大的几个词,并且算出他们的信息指纹即可。如果两个网页这么计算出来的信息指纹相同,则他们基本上是相同的网页。为了允许有一定的容错能力,Google采用了一种特定的信息指纹——相似哈希(Simhash)。上面的算法稍作改进后还可以判断一篇文章是否抄袭了另一篇文章。具体的做法是,将每一篇文章切成小的片段,然后用上述方法挑选这些片段的特征词集合,并计算它们的指纹。只要比较这些指纹,就能找出打断相同的文字,最后根据时间先后,找到原创的和抄袭的。Google实验室利用这个原理做了一个名为CopyCat的项目,可以准确找出原文和转载(拷贝)的文章。
  • Google制定了一个很有意思的广告分成策略:虽然所有的视频都可以插入广告,但是广告的收益全部提供给原创的视频,即使广告是插入到拷贝的视频中。这样一来,所有拷贝和上传别人视频的网站就不能获得收入。没有了经济利益,也就少了很多盗版和拷贝。
  • 相似哈希的特点是,如果两个网页的相似哈希相差越小,这连个网页的相似性就越高。如果两个网页相同,他们的相似哈希必定相同。如果他们只有少数权重的词不相同,其余的都相同,几乎可以肯定他们的相似哈希也会相同。用64为的相似哈希做对比时,如果只相差一两位,那么对应网页内容重复的可能性大于80%。这样,通过记录每个网页的相似哈希,然后判断一个新网页的相似哈希是否已经出现过,可以找到内容重复的网页,就不必重复索引浪费计算机资源了。
  • 所谓信息指纹,可以简单理解为将一段信息(文字、图片、视频、音频等)随机地映射到一个多维二进制空间中的一个点(一个二进制数字)。只要这个随机函数做得好,那么不同信息对应的这些点就不会重合,因此,这些二进制的数字就成了原来的信息所具有的独一无二的指纹。
  • 在中途岛海战前,美军截取的日军密电经常出现AF这样一个地名,应该是太平洋的某个岛屿,但是美军无从知道是哪个。于是,美军就逐个发布与自己控制的岛屿有关的假新闻。当发出“中途岛供水系统坏了”这条假新闻之后,美军从截获的日军情报中又看到了含有AF的电文(日军情报内容是AF供水除了问题),于是断定中途岛就是AF。事实证明判断正确,美军在那里成功的伏击了日本联合舰队。
  • 日军和重庆间谍约定的密码本就是美国著名作家赛珍珠获得1938年诺贝尔文学奖的《大地》(The Good Earth)一书。这本书很容易找到,解密时接到密码电报的人只要拿着这本书就能解开密码。密码所在的页数就是一个非常简单的公式:发报日期的月数加上天数,再加上10,比如3月11日发报,密码就是3+11+10=24页。这样的密码设计违背了我们前面介绍的“加密函数不应该通过几个自变量和函数值就能推出函数本身”的这个原则,对于这样的密码,破译一篇密文就可可能破译以后的全部密文。
  • 密码机机密时,每次应该自动转一轮,以防同一密码重复使用,因此即使是同一电文,两次发送的密文也应该是不一样。
  • 搜索引擎的排名:最早期的常见作弊方法是重复关键词。
    有了网页排名(PageRank)之后,作弊者发现一个网页被引用的链接越多,排名就可能越靠前,于是就有了专门买卖链接的生意。比如,有人自己创建成千上百个网站,这些网站上没有实质的内容,只有链接到其客户的网站链接。
  • 而在“道”这个层面解决反作弊的问题,就要透过具体的作弊例子,找到作弊的动机和本质。进而从本质上解决问题。
  • 学过信息论和有信号处理经验的读者可能知道这么一个事实:如果在发动机很吵的汽车里用手机打电话,对方可能听不清;但是如果知道了汽车发动机的频率,可以加上一个与发动机噪音频率相同、振幅相反的信号,很容易消除发动机的噪音,这样,接听人就可以完全听不到汽车的噪音。
    事实上,完全随机不相关的高斯白噪音是很难消除的。
  • SEO:Search Engine Optimizer 搜索引擎优化者(帮助别人作弊的人)。
  • 今天的搜索引擎对几乎所有的查询都能给出非常多的信息,但问题是这些信息是否完全可信,尤其是当用户问的是一些需要专业人士认真作答的问题,比如医疗方面的问题。随着互联网的规模越来越大,各种不准确的信息也在不断的增加,那么如何才能从众多的信息源中找到最权威的信息,就成了今年来搜索引擎公司面对的难题。
    那么权威性是如何度量的呢?为了说明这一点,我们先要引入一个概念------ 提及(Mention)。如果在各种新闻、学术论文或者其他的网络信息页中,讨论到“吸烟危害”的主题时,某两个组织作为信息源被多次提及,那么我们就有理由相信这两个组织是谈论“吸烟危害”这个主题的权威机构。
    计算网站或网页权威性的另外一个难点在于,权威度与一般网页质量(比如PageRank)不同,它要和搜索主题相关。
  • 作为数学家和天文学家的托勒密,他有很多发明和贡献,其中任何一项都足以让他在科学史上占有重要的一席之地。托勒密发明了球坐标(我们今天还在用),定义了包括赤道和零度经线在内的经纬线(今天地图就是这么划的),他提出了黄道,还发明了弧度制。其实,托勒密在天文学上的地位堪比欧几里得之于几何学,牛顿之于物理学。
    托勒密集成了毕达哥拉斯的一些思想,他也认为圆是最完美的几何图形,因此他用圆来描述行星运行的规律。
    根据托勒密的计算,制定了儒略历,即每年365天,每4年增加一个闰年,多一天。1500年来,人们根据他的计算决定农时。但是,经过1500年,托勒密对太阳运动的累计误差,还是多出了10天。1582年,教皇格里高利十三世在儒略历的基础上删除了10天,然后将每一个实际最后一年的闰年改成平年,然后每400年再回插回一个闰年,这就是我们今天用的日历,这个日历几乎没有误差。为了纪念格里高利十三世,现在的日历也叫格里高利日历。
  • 波兰天文学家哥白尼发现,如果以太阳为中心来描述行星的运行,只需要8-10个圆,就能计算出一个行星的运行轨迹,他因此提出了日心说。很遗憾的是,哥白尼正确的假设并没有得到比托勒密更好的结果,相比托勒密的模型,他的模型误差要大得多。
    而哥白尼日心说的不准确性,也是教会和当时的人们认为哥白尼的学说是邪说的一个重要的原因,所以日心说要想让人心服口服地接受,就要更准确的描述行星的运动。
    开普勒很幸运地发现了行星围绕太阳运转的轨道实际上是椭圆形的,这样不需要用多个小圆套大圆,而只要用一个椭圆就能将星体运动规律描述清楚了。

  • 一个正确的数学模型应当在形式上是简单的
    一个正确的模型一开始可能还不如一个精雕细琢的错误模型来的准确,但是,如果我们认定大的方向是对的,就应该坚持下去(日心说一开始并没有地心说准确)
    正确的模型也可能受噪音的干扰,而显得不准确;这是不应该用一种凑合的修正方法加以弥补,而是要找到噪音的根源,这也许能通往重大的发现。
  • 在过去20年里,在机器学习和自然语言处理领域,80%的成果来自于数据量的增加。
  • 马库斯的主张一贯是建立几个世界上最好的专业,而不是专业最齐全的系。我觉得,当今中国的大学,最需要的就是马库斯这样卓有远见的管理者。
  • 马尔可夫链(Markov chain),他描述了一种状态序列,其每个状态值取决于前面有限个状态。
  • 所有这些(因果)关系,都可以有一个量化的可信度(Belief),即用一个概率描述。也就是说,贝叶斯网络的弧上可以有附加的权重。马尔可夫假设保证了贝叶斯网络便于计算。我们可以通过这样一张网络估算出一个人患心血管疾病的可能性。
    可以讲,马尔可夫链是贝叶斯网络的特例,而贝叶斯网络是马尔可夫链的推广。
    使用贝叶斯网络必须先确定这个网络的拓扑结构,然后还要知道各个状态之间的概率,得到拓扑结构和这些参数的过程分别就叫做结构训练和参数训练,统称训练。
    一个防止陷入局部最优的方法,就是采用蒙特卡洛(Monte Carlo)的方法,用许多随机数在贝叶斯网络中试一试,看看是否陷入局部最优。这个方法的计算量比较大。最近,新的方法是利用信息论,计算节点之间两两的互信息,只保留互信息较大的节点直接的连接,然后再对简化了的网络进行完备的搜索,找到全局优化的结构。
  • 它的特殊性在于,变量之间要遵守马尔可夫假设,即每个状态的转移概率只取决于相邻的状态,这一点,它和我们前面介绍的另一种概率图模型 —— 贝叶斯网络相同。而它们的不同之处在于,条件场是无向图,而贝叶斯网络是有向图。
  • 维特比算法是一个特殊但应用最广的动态规划算法。
    汉语中每个无声调的拼音对应13个左右的国标汉字。
  • 移动通信使用过两种技术:频分多址(FDMA)和时分多址(TDMA)
    CDMA:码分多址。由于这种方法是根据不同的密码区分别发送的,因此称为码分多址。
  • 这样同一类中各个点到中心的平均距离d较近,而不同类中心之间的平均距离D较远。我们希望的迭代过程是每一次迭代时,d比以前变小,而D变大。
  • 首先,根据现有的模型,计算各个观测数据输入到模型中的计算结果,这个过程称为期望值计算过程(Expectation),或E过程;接下来,重新计算模型参数,以最大化期望值。在上面的例子中,我们最大化D和-d,这个过程称为最大化的过程(Maximization),或M过程。这一类的算法都称为EM算法。
    EM算法只需要有一些训练数据,定义一个最大化函数,剩下的事情就交给计算机了。经过若干次的迭代,我们需要的模型就训练好了。这实在是太美妙了,这也许是造物主可以安排的。所以我们把它称为上帝的算法。
  • 单位搜索量带来的收入一般以千次搜索量带来的收入来衡量,称为RPM。
  • 广告的点击量与展示的位置有关,放在第一条的广告的点击率理所当然比第二条的点击率要搞很多。因此,在预估点击率时,必须消除这个噪音。
  • 云计算技术设计的面很广,从存储、计算、资源的调度到权限的管理等。云计算的关键之一是,如何把一个非常大的计算问题,自动分解到许多计算能力不是很强的计算机上,共同完成。
    这就是MapReduce的根本原理,将一个大任务拆分成小的子任务,并且完成子任务的计算,这个过程叫做Map,将中间结果合并成最终的结果,这个过程叫做Reduce。
    我们现在发现,Google颇为神秘的云计算中最重要的MapReduce工具,其实原理就是计算机算法中常用的“各个击破”法,它的原理原来这么简单 —— 将复杂的大问题分解成很多小问题分别求解,然后再把小问题的解合并成原始问题的解。
  • 而人工神经网络也具有节点,只是它使用了一个新的名词 —— 神经元。而它的有向弧则被看成是连接神经元的神经。
  • 我们有了训练数据,定义了一个成本函数C,然后按照梯度下降法找到让成本达到最小值的那组参数。这样,人工神经网络的训练就完成了。不过,在实际应用中,我们常常无法获得大量标注好的数据,因此大多数时候,我们不得不通过无监督的训练得到人工神经网络的参数。
  • 设计这样一个成本函数,本身又是一个难题,使用人工神经网络的研究人员需要根据具体的应用来寻找合适的函数。不过总体来讲,成本函数总要遵循这样一个原则:既然人工神经网络解决的是分类的问题,那么我们希望分完类之后,同一类样本(训练数据)应该相互比较靠近,而不同类的样本应该尽可能的远离。比如前面提到的多维空间里的模式分类问题,就可以把每一个样本点到训练出来的聚类中心(Centroid)的欧几里得距离的均值作为成本函数。对已估计语言模型的条件概率,就可以用熵作为成本函数。定义了成本函数后,就可以用梯度下降法进行无监督的参数训练了。
  • 贝叶斯网络更容易考虑(上下文)前后的相关性,因此可以解码一个输入的序列,比如将一段语音识别成文字,或者将一个英语句子翻译成中文。而人工神经网络的输出相对孤立,它可以识别一个个字,但是很难处理一个序列,因此它主要的应用常常是估计一个概率模型的参数,比如语音识别中的声学模型参数的训练、机器翻译中语言模型的训练,等等,而不是作为解码器。
  • 而从20世纪90年代至今,计算能力的提升一半是靠处理器性能的提升,另一半则是靠很多处理器并行工作体现出来的,因此过去训练人工神经网络的方法就必须改变,以适应云计算的要求。Google大脑就是在这样的前提下诞生的,期创新之处也在于利用了云计算的并行处理技术。
  • 人工神经网络是一个形式上非常简单但分类功能强大的机器学习工具,从中可以再次体会到数学中的简单之美。在现实生活中,真正能够通用的工具在形式上必定是简单的。
  • 与模型一样,数据也十分重要,但是人们在很长时间里却低估了数据的作用。
    在中国的远古传说中,有伏羲演八卦的故事,伏羲是中国上古的三皇之一,比炎、黄二帝还要早得多。
  • 而做实验的目的就是采集数据,因为科学发明需要通过这些数据来推导或者证实。
    因此,如果一个散户投资人能真正做到“用数据说话”,只需奉行一条投资决策,那就是买指数基金。这当然不是我的发明,而是投资领域注明的经济学家威廉•夏普(William F.Sharpe)和伯顿•麦基尔(Burton G.Malkiel)等人一直倡导的。
    即统计样本数量不充分,则统计数字毫无意义。至于需要多少数据来统计结果才是准确的,这就需要进行定量分析了。
  • 让我们先看看有关网页搜索领域的竞争。在大多数人看来,Google的搜索比微软的Bing(在质量上)做得略好一点,是因为Google的算法好。这种看法在2010年以前当然是对的,因为那时Bing搜索在技术和工程方面确实明显落后于Google。但是今天这两家公司在技术上已经相差无几了,Google还能稍稍占优,除了产品设计略微好一些外,很多程度上靠的是数据的力量。
  • 在搜索用到的诸多种数据中,最重要的数据有两类,即网页本身的数据和用户点击的数据。点击模型贡献了今天搜索排序至少60%--80%的权重。
    因此,一些公司就想出更激进的办法,如通过搜索条(Toolbar)、浏览器甚至是输入法来手机用户的点击行为。这些做法的好处在于不仅可以手机到用户使用该公司的搜索引擎本身的点击数据,而且还可能手机用户使用其它搜索引擎的数据。比如微软通过IE浏览器,手机用户使用Google搜索是的点击情况。这样一来,如果一家公司能够在浏览器市场占很大的份额,即使它的搜索量很小,也能收集大量的数据。有了这些数据,尤其是有了用户在更好的搜索引擎上的点击数据,一个搜索引擎公司便可以快速改进长尾搜索的质量。当然,有人诟病Bing的这种做法是“抄”Google的搜索结果,其实并没有直接抄,而是借用Google的结果改进自己的点击模型。这在中国市场上也是一样,因此,搜索质量的竞争就转换成了浏览器或者其它客户端软件市场占有率的竞争。
  • 大数据的好处远不只是成本和准确的问题,它的优势还在于多维度(或叫全方位)。
    我之所以举医疗行业的例子,是因为除了IT行业,医疗保健是对大数据最热衷的行业。
  • 高德纳的贡献在于找到了一种方法,使得一个算法好坏的度量和问题的大小不再相关。