《数学之美》是吴军的经典之作。我第一次读是在大学的时候。那时候觉得数学很枯燥。最近重读了一遍。有了完全不同的理解。原来数学不是枯燥的公式。而是理解世界的工具。

一、第一次读的感受

先说说我第一次读这本书的感受。

那是我上大学的时候。学计算机专业。有老师推荐了《数学之美》。我就买了一本。

那时候我对数学的印象就是公式、定理、证明。很枯燥。很难。学了也不知道有什么用。所以读《数学之美》的时候。我也是带着这种偏见去读的。

虽然书里讲了很多数学在计算机领域的应用。比如搜索引擎、自然语言处理、密码学等。但是那时候我没有实际的工作经验。不知道这些东西在实际工作中怎么用。所以读完之后。觉得写得还行。但是没有太深的感触。

后来这本书就被我放到书架上了。再也没翻过。

二、为什么重读

最近为什么重读这本书呢。

因为工作了几年之后。我发现很多工作中的问题。归根结底都是数学问题。比如做推荐系统。本质上是矩阵分解和概率统计。做搜索。本质上是信息检索和排序算法。做数据分析。本质上是统计学。

我越来越觉得。数学不是没用。而是我以前没理解它的用处。于是我想起了《数学之美》这本书。找出来重读了一遍。

这一读。发现完全不是我以前理解的那样。这本书讲的不是数学公式。而是数学思维。是怎么用数学的眼光看世界。怎么用数学的方法解决实际问题。

三、这本书讲了什么

《数学之美》这本书。用通俗的语言。讲了数学在计算机科学各个领域的应用。

比如搜索引擎。怎么从海量网页中找到你想要的结果。这里面用到了布尔代数、向量空间、图论、概率论。PageRank算法就是用了图论和马尔可夫链。

比如自然语言处理。怎么让计算机理解人类的语言。这里面用到了统计语言模型、隐马尔可夫模型、条件随机场。这些数学模型让计算机能够处理翻译、语音识别、分词等任务。

比如密码学。怎么保证信息的安全。这里面用到了数论、椭圆曲线、哈希函数。RSA加密算法就是基于大数分解的数学难题。

比如数据压缩。怎么用更少的空间存储更多的信息。这里面用到了信息论、熵、编码理论。哈夫曼编码就是用了信息论的原理。

吴军在书里。把这些复杂的数学原理。用简单的语言和生动的例子讲清楚了。让你觉得数学不是遥不可及的。而是就在我们身边。

四、我以前的误解

重读之后。我发现以前对数学有很多误解。

误解1:数学就是公式和计算

以前我觉得数学就是记公式。做计算。考试的时候把公式套进去算出答案。

现在才知道。公式只是数学的表面。数学的核心是思维方式。是抽象。是建模。是逻辑推理。公式只是这些思维的表达形式。

比如你学了余弦定理。不只是记住a²=b²+c²-2bc cosA。而是要理解。这是一种度量相似性的方法。在搜索引擎里。两个网页的相似度就是用余弦相似度来计算的。这就是数学思维的应用。

误解2:数学没用

以前我觉得学数学没用。工作之后又不用解方程。不用做几何证明。

现在才知道。数学的用处不是让你在工作中解方程。而是让你用数学的思维来解决问题。比如遇到一个复杂的问题。你能不能把它抽象成一个数学模型。能不能用已知的数学方法来解决。这才是数学的用处。

比如我做推荐系统的时候。遇到了冷启动问题。新用户没有行为数据。怎么推荐。这时候我想到了聚类分析。把用户按属性分类。用同类用户的偏好来推荐。这就是数学思维的应用。虽然我没有在写公式。但是我在用数学的方法解决问题。

误解3:数学很难

以前我觉得数学很难。只有聪明的人才能学好。

现在才知道。数学的难。很多时候是因为教学方式的问题。老师只教公式。不教背景。不教应用。学生不知道为什么学。自然觉得难。

其实数学的很多概念。如果了解了它的背景和应用。就不难理解了。比如矩阵。如果你知道它是用来表示线性变换的。是用来处理高维数据的。就不会觉得它只是一堆数字了。

吴军的这本书好就好在这里。他不讲复杂的证明。而是讲数学概念的来龙去脉。讲它在实际中的应用。让你觉得数学是可以理解的。是有用的。

五、重读的收获

重读这本书。我有很多收获。

1. 学会了用数学的眼光看问题

以前遇到问题。我会想这是一个工程问题。怎么写代码解决。现在我会先想。这个问题能不能抽象成一个数学模型。有没有已知的数学方法可以用。

这种思维方式的改变。让我解决问题的能力提升了很多。很多看起来复杂的问题。用数学的眼光一看。其实是某个经典数学问题的变体。有成熟的解决方案。

2. 理解了很多技术背后的原理

以前用很多技术。只知道怎么用。不知道为什么。比如用TF-IDF做文本分类。只知道调库。不知道原理。重读之后。我理解了TF-IDF背后的信息论原理。理解了为什么它能衡量一个词的重要性。

理解了原理之后。用起来就更灵活了。知道什么时候该用。什么时候不该用。怎么调整参数。怎么改进。

3. 对数学产生了兴趣

以前我对数学是抵触的。觉得枯燥难懂。重读之后。我对数学产生了兴趣。开始主动去学一些数学知识。比如线性代数、概率论、信息论。不是为了考试。而是因为觉得有趣。觉得有用。

这种主动学习的状态。和以前被动学习完全不同。效率也高很多。

六、对我工作的启发

重读《数学之美》。对我的工作也有很多启发。

1. 不要重复造轮子

很多工作中的问题。数学家已经研究过了。有成熟的理论和方法。不要自己从头想。先看看有没有现成的数学模型可以用。

比如做排序。不要自己想排序公式。先看看信息检索领域的排序算法。比如BM25。比如Learning to Rank。这些都是经过数学证明和实践检验的。

2. 简单的模型往往更有效

吴军在书里反复强调。简单的数学模型往往比复杂的模型更有效。也更容易解释和维护。

比如在自然语言处理中。最简单的n-gram模型。效果就很好。比很多复杂的模型更实用。

这对我的启发是。做技术方案的时候。不要追求复杂。先从简单的开始。简单的方案能解决问题。就不要用复杂的。

3. 数据比模型重要

书里讲了很多例子。说明好的数据比好的模型更重要。比如统计语言模型。用更多的数据训练。比用更复杂的模型效果更好。

这对我的启发是。做算法的时候。不要只盯着模型优化。也要关注数据的质量和数量。好的数据能让简单的模型发挥出很好的效果。

七、写在最后

重读《数学之美》。我有了完全不同的理解。以前觉得数学枯燥没用。现在觉得数学是理解世界的工具。是解决问题的思维方式。

这可能就是重读经典的意义。不同的年龄。不同的经历。读同一本书。会有不同的理解。十年前我只能看到公式和例子。现在能看到背后的思维和方法。

也许再过十年。我再读这本书。还会有新的理解。

最后用一句话结束本文:"数学的美。不在于公式。而在于它能让你看清世界的本质。"愿每一个人都能发现数学之美。用数学的眼光看世界。