最近,第二届「阿里巴巴全球数学竞赛」正在紧锣密鼓地开展,仅预选赛题目的公布就引来了大量围观。这种数学竞赛的举办似乎透露出一个信号:科技互联网公司越来越重视数学了。为什么会出现这种现象?数学好的人才对这些企业有多重要?在知乎的一个问题讨论中,阿里巴巴技术副总裁贾扬清、达摩院语音实验室负责人鄢志杰等业内大牛给出了自己的看法。

 

为什么科技互联网公司越来越重视数学?贾扬清等大牛如是说_人工智能

 

原贴链接:https://www.zhihu.com/question/376741737/answer/1059438493

贾扬清认为,在做工程的过程中,基础数学方法的创新可以形成降维打击,如大幅度减少计算量。同时,数学也是一种思维方式的锻炼,可以帮助我们提升认知水平。

鄢志杰认为,互联网公司所看重的是数学中蕴含的「源动力」。对于互联网科技公司而言,用好数学就意味着更高的效率、更好的服务,同时也支撑了上层应用的突破。

两位研究者的观点得到了上千人的赞同。以下是回答原文:

贾扬清:数学方法的创新可以形成降维打击

从帮助实际应用的角度来说,懂基础数学,同时愿意上手尝试的人,是最好的综合性人才。具体来说有两点:

  • 基础数学可以提供可以证明的方法突破。
  • 基础数学和工程实践是一个乘法关系,可以相互放大它们的影响。

在最近人工智能的科研和实践当中,很不为大家所知的一点是计算的加速,因此我就举一个计算加速的例子。

在卷积神经网络当中,最花时间的一个计算就是卷积计算:它耗费的时间是如此之多,以至于在一个图像识别模型当中,绝大多数(超过 90%)的计算量,都是花在卷积上面的。非常多的框架软件,硬件芯片设计,等等,都在解决这样一个问题:我要算一堆乘法和加法,我怎么让每个乘法和每个加法算得更快?更直白点讲,就像用算盘拨算珠,我怎么把我手指头弄得更快?

但是从数学的角度来说。。。我为什么不能索性少算一点呢?

「我可以证明我能少算一点」

这个正是在 2015 年的时候,Andrew Lavin 和 Scott Gray 做的一件事情:他们通过一个称作 Winograd 的数学方法证明说,对于 3*3 的卷积(这是绝大多数当时模型当中的卷积参数),他们可以将卷积当中的乘法计算量降低到之前的九分之四:也就是说,可以在理论上将计算速度提高 2.25 倍。

我们辛辛苦苦调了那么多程序,用 SIMD、cache locality 等等,都是在挤牙膏,一下子提升 2.25 倍理论性能是不是很诱人?

因为 Winograd 的具体解释比较琐碎,所以我用一个它的前身——Strassen 的快速矩阵算法——来解释一下。

我们都知道,如果我们需要计算两个矩阵的乘积,我们需要计算一系列乘法和加法:

为什么科技互联网公司越来越重视数学?贾扬清等大牛如是说_人工智能_02

 

最简单的情形,如果我们需要计算两个 2*2 的矩阵的乘积,那么通过矩阵乘法的定义,可以这样计算:

 

为什么科技互联网公司越来越重视数学?贾扬清等大牛如是说_人工智能_03

 

因此我们需要做 8 次乘法和 4 次加法(每一个 C 矩阵当中的值需要两个乘法和一个加法)。用更加数学的方式来说的话,对于两个 n*n 的矩阵乘法,最简单的算法应该会涉及到 n^3 次乘法和 n^2(n-1) 次加法。也即 O(n^3) 复杂度。也许你会觉得这是个不可思议的事情:这都已经是定义了,那我肯定得把这八个乘法都给算一遍,怎么能省下来呢?

Strassen 在他 1969 年的文章中提到,我们在数学上其实可以做得更好。拿上面的 2*2 矩阵为例子,我们可以构造一系列很有意思的中间数:

 

为什么科技互联网公司越来越重视数学?贾扬清等大牛如是说_人工智能_04

 

 

一共用到 7 次乘法以及 10 次加法。

这样,我们的 C 矩阵就可以这样来算:

为什么科技互联网公司越来越重视数学?贾扬清等大牛如是说_人工智能_05

 

 

最终,我们用到了 7 次乘法和 18 次加法。通过数学的变换方式,我们将乘法的数量成功降低了八分之一:这个是理论上可以证明的。

当然,一个显然的问题就是,为什么我们要关注乘法,而不是关注加法数量?这个和实际应用有关系:一般而言,我们认为乘法比加法所需要的计算更加复杂,所以我们会关注乘法的数量;另外,上面的所有计算当中,小写的 a/b/c/m 都可以从简单的数字变成子矩阵:而子矩阵的乘法(O(n^3) 复杂度)比子矩阵的加法(O(n^2) 复杂度)要复杂很多,所以减少乘法的数量是对于运算更加有效的。

我觉得这就是基础数学(或者说,也许这个还不是基础,还有点偏向应用)的好处:在我们埋头做工程的时候,有时候抬起头来一看,哇,数学方法的创新可以形成降维打击。这是最让人兴奋的地方。

基础数学和工程实践是一个乘法关系。

如果你觉得今天所有的矩阵计算都在用 Strassen 算法,那你就错了:在实际应用当中,Strassen 算法还面临着很多其他的挑战:

  • 实际的浮点数是有比特数限制的,Strassen 算法因为使用多次加法,数值的稳定性会差。也就是说,「算不准」。
  • 理论上的加速,还需要和硬件关联起来。现在的硬件因为乘法和加法在指令集层面的结合(fused multiplication and addition, FMA)以及指令流水线的缘故,最底层的乘法和加法如果不平衡,反而会造成减速
  • 在通过 Strassen 算法做矩阵的乘积的时候,还需要考虑具体实现当中的 cache locality 的问题

如此种种。Winograd 也是类似:今天,Winograd 出来以后,在现有的深度学习加速库 Winograd 在许多新的应用当中,因为越来越多地使用到 separable convolution,depthwise convoluiton 等等,因此,也不一定是任何的 convolution 都能用上。

应该说,工程实践经常是一个很「脏」的事情:环境不同,需求不同,不一定每一个很空灵的数学成果都能够实际落地下去。这个时候就特别需要「有手感」——一方面需要懂数学,一方面要能够懂需求。

不过,最后话说回来,这个问题兴许除了目标导向,「什么有用」之外,还有另一层更长线的原因:数学本身就是一个非常锻炼思维的场景,如果我们需要提升自己的认知水平和技能,那就需要在数学化、逻辑化思维上面多做训练。数学也许没有直接的用处,但是懂数学,触类旁通,这个肯定是有用处的。

鄢志杰:数学在很多方面乃是互联网的灵魂

曾经看过一个漫画,说的是化学、物理与数学的区别。时间有些久了,但意思还大概记得:

第一格漫画里画的是两个化学家,其中一个惊呼:「完了!药品的配方算错了!」,结果「砰」的一声,做实验的大楼爆炸了;第二格漫画里画的是两个物理学家,其中一个惊呼:「完了!小行星的轨道算错了!」,结果「砰「的一声,小行星撞上地球,人类灭亡了;第三格漫画里画的是两个数学家,其中一个惊呼:「完了!费马大定理证错了!」,结果呢,什么都没有发生。

这就是数学,它有时是如此重要,而有时却是「无用之美」。当今的科技互联网公司,越来越重视基础数学,正是看中了它所蕴含的最最基础的「源动力」。可以说,数学在很多方面乃是互联网的灵魂。

你若不信,试举几例。

互联网是一个典型的分布式系统,无数的计算机通过网络连接和通讯。那么问题来了:在一个分布式系统中,由于各台计算机自身的时钟是无法做到精确一致的。当计算机 A 和 B 分别通过网络向计算机 C 发送了事件 a 和 b,在 C 接收到这两个事件后,怎么能知道是 a 事件先发生、还是 b 事件先发生呢?这个问题是如此简单,但又是如此重要。如果这个问题无法确定,分布式系统的时间先后次序将会乱作一团。

好在有数学前来帮助。Lamport 在 1978 年的一篇论文《Time, clocks, and the ordering of events in a distributed system》中,用数学的方法证明了一个 bound。使用 logical clock 的概念,使事件的相对时间关系变得有序。这项工作构成了分布式系统中时间这一基本概念的基础,Lamport 也因为这一贡献(以及其它一系列贡献)获得了 2013 年图灵奖。没有数学的贡献,互联网不会是今天的样子。

再拿大家都在使用的淘宝来说。今天,打开淘宝搜索,每一个 query 背后的分布式处理都需要用到数学;如果您使用语音搜索、拍立淘等等 AI 搜索,背后的深度学习算法无不是数学;当你下单完毕,网购的包裹如何最高效的装箱、并且预测您的快递在何时到达某地,也都需要数学;打开淘宝直播,高清的视频编解码还是需要用到数学。可以说,数学的应用已经超越了普通大众难以理解的分布式系统时钟同步,悄然的融入了我们生活的方方面面。对于互联网科技公司而言,用好数学就意味着更高的效率、更好的服务。

在互联网金融领域,同样的事情也已经发生。在电影《21》(中文名《决胜 21 点》)中,MIT 的天才数学家团队,以记忆、心算及团队合作,借由数学的计算横扫拉斯维加斯,也让「大吉大利,今晚吃鸡」(Winner Winner Chicken Dinner」)的俗语火了起来。今天,已经有不少金融科技公司通过高频交易等手段去操作转瞬即逝的套利机会。区块链技术及其之上的数字货币,发展方兴未艾。数学背后隐藏着巨大的商业机会,今天的互联网科技公司具备将数学与商业链接起来的先天优势,这也正是它们越来越重视基础数学的源动力。

在 AI 方面,数学模型同样作为基石,支撑了上层应用的突破。拿笔者所从事的语音技术研发来说,从 GMM-HMM 及其背后的 maximal likelihood estimation,到 deep neural networks 及其背后的 stochastic gradient descent,数学模型在语音识别领域的应用不断推动准确率提升,让很多此前难以想象的语音识别应用成为现实。

不难看出,数学仍然是、且必将继续是当代和未来诸多应用技术的基础。在错综复杂、瞬息万变的当下,数学之美带给这个世界更多的确定性。它是如此简单,可以在喧嚣之下让人类洞见本质。它又是无比复杂,即便用 0 和 1 也能够去表征万物。

丘成桐:数学理论缺乏突破是 AI 领域存在诸多瓶颈的本源

除了以上两位业内研究者,部分数学家也发表过对类似问题的看法。

在去年 10 月份的中关村论坛上,菲尔兹奖首位华人获得者、美国国家科学院院士、哈佛大学教授丘成桐曾呼吁,国家应该更加重视基础科学和数学的发展。

在人工智能领域,算法、数据、算力的突破推动了这一领域的蓬勃发展,但数学领域却没有多少突破。丘成桐认为,这正是当前人工智能发展面临诸多瓶颈的本源。

去年 11 月,科技部办公厅 、教育部办公厅 、中科院办公厅、自然科学基金委办公室四部门联合印发《关于加强数学科学研究工作方案》。此外,部分高校人工智能专业也非常重视数学基础的培养。正如丘成桐教授所说,没有基础科学的发展,应用科学发展不来,这也是科技公司越发重视数学的原因所在。