加入极市专业CV交流群,与 10000+来自港科大、北大、清华、中科院、CMU、腾讯、百度 等名校名企视觉开发者互动交流!
同时提供每月大咖直播分享、真实项目需求对接、干货资讯汇总,行业技术交流。关注 极市平台 公众号 ,回复 加群,立刻申请入群~
深度学习话题优秀回答者,阿里巴巴集团副总裁 https://www.zhihu.com/question/376741737/answer/1059438493 本文来自知乎问答,仅供学习参考,著作权归作者所有。
应邀来答。各位前辈已经讲了非常多大方向上的深入见解了,我来从更偏细节的角度分享个例子。
先说我的观点:从帮助实际应用的角度来说,懂基础数学,同时愿意上手尝试的人,是最好的综合性人才。具体的说有两点:
基础数学可以提供可以证明的方法突破。
基础数学和工程实践是一个乘法关系,可以相互放大它们的影响。
在最近人工智能的科研和实践当中,很不为大家所知的一点是计算的加速,因此我就举一个计算加速的例子。在卷积神经网络当中,最花时间的一个计算就是卷积计算:它耗费的时间是如此之多,以至于在一个图像识别模型当中,绝大多数(超过90%)的计算量,都是花在卷积上面的。非常多的框架软件,硬件芯片设计,等等,都在解决这样一个问题:我要算一堆乘法和加法,我怎么让每个乘法和每个加法算得更快?更直白点讲,就像用算盘拨算珠,我怎么把我手指头弄得更快?
但是从数学的角度来说。。。我为什么不能索性少算一点呢?
1. ”我可以证明我能少算一点“
这个正是在2015年的时候,Andrew Lavin和Scott Gray做的一件事情:他们通过一个称作Winograd的数学方法,证明说,对于3*3的卷积(这是绝大多数当时模型当中的卷积参数),他们可以将卷积当中的乘法计算量降低到之前的九分之四:也就是说,可以在理论上将计算速度提高2.25倍。
我们辛辛苦苦调了那么多程序,用SIMD,cache locality,等等,都是在挤牙膏,一下子提升2.25倍理论性能,是不是很诱人?
因为Winograd的具体解释相对比较琐碎,所以我用一个它的前身,Strassen的快速矩阵算法,来解释一下。我们都知道,如果我们需要计算两个矩阵的乘积,我们需要计算一系列乘法和加法:
因此我们需要做8次乘法和4次加法(每一个C矩阵当中的值需要两个乘法和一个加法)。用更加数学的方式来说的话,对于两个n*n的矩阵乘,最简单的算法应该会涉及到n^3次乘法和n^2(n-1)次加法。也即O(n^3)复杂度。也许你会觉得这是个不可思议的事情:这都已经是定义了,那我肯定得把这八个乘法都给算一遍,怎么能省下来呢?
Strassen在他1969年的文章中提到,我们在数学上其实可以做得更好。拿上面的2*2矩阵为例子,我们可以构造一系列很有意思的中间数:
一共用到7次乘法以及10次加法。
这样,我们的C矩阵就可以这样来算:
最终,我们用到了7次乘法和18次加法。通过数学的变换方式,我们将乘法的数量成功降低了八分之一:这个是理论上可以证明的。
(当然,一个显然的问题就是,为什么我们要关注乘法,而不是关注加法数量?这个和实际应用有关系:一般而言,我们认为乘法比加法所需要的计算更加复杂,所以我们会关注乘法的数量;另外,上面的所有计算当中,小写的a/b/c/m都可以从简单的数字变成子矩阵:而子矩阵的乘法(O(n^3)复杂度)比子矩阵的加法(O(n^2)复杂度)要复杂很多,所以减少乘法的数量是对于运算更加有效的。)
我觉得这就是基础数学(或者说,也许这个还不是基础,还有点偏向应用)的好处:在我们埋头做工程的时候,有时候抬起头来一看,哇,数学方法的创新可以形成降维打击。这是最让人兴奋的地方。
2. 基础数学和工程实践是一个乘法关系。
如果你觉得今天所有的矩阵计算都在用Strassen算法,那你就错了:在实际应用当中,Strassen算法还面临着很多其他的挑战:
实际的浮点数是有比特数限制的,Strassen算法因为使用多次加法,数值的稳定性会差。也就是说,“算不准”。
理论上的加速,还需要和硬件关联起来。现在的硬件因为乘法和加法在指令集层面的结合(fused multiplication and addition, FMA)以及指令流水线的缘故,最底层的乘法和加法如果不平衡,反而会造成减速
在通过Strassen算法做矩阵的乘积的时候,还需要考虑具体实现当中的cache locality的问题
如此种种。Winograd也是类似:今天,Winograd出来以后,在现有的深度学习加速库Winograd在许多新的应用当中,因为越来越多地使用到separable convolution,depthwise convoluiton等等,因此,也不一定是任何的convolution都能用上。
应该说,工程实践经常是一个很”脏“的事情:环境不同,需求不同,不一定每一个很空灵的数学成果都能够实际落地下去。这个时候就特别需要”有手感“ - 一方面需要懂数学,一方面要能够懂需求。
不过,最后话说回来,这个问题兴许除了目标导向,“什么有用”之外,还有另一层更长线的原因:数学本身就是一个非常锻炼思维的场景,如果我们需要提升自己的认知水平和技能,那就需要在数学化、逻辑化思维上面多做训练。数学也许没有直接的用处,但是懂数学,触类旁通,这个肯定是有用处的。
数学、高等数学、几何学等4个话题优秀回答者 https://www.zhihu.com/question/376741737/answer/1057521906 本文来自知乎问答,回答已获作者授权,禁止二次转载。
有些互联网企业宣传自己重视“基础”数学是因为他们根本不知道什么是基础数学。。
他们真正需要的,是工业数学,典型的比如数值PDE,统计,运筹,优化,控制论,信息论等等。我之所以不说应用数学是因为应用数学的含义太模糊了。我感觉应数的每一个子学科都有人说“这不是应数”。比如,计算数学不是应用数学;运筹学有自己独立的协会;信息论自认为是工科或者CS下的学科,等等等等。不知道为啥大家这么排斥应数这个称号(斜眼)可能是觉得数学太穷了所以都不想跟数学这个穷亲戚沾上关系吧~
说到底是企业界对数学的认识不足。以前可能是模仿为主,不怎么需要研发;那现在需要自主研发了,理所当然会用到应用数学,欧美的科技企业也是这么走过来的。但是国内一提起数学就是数学研究,就想起陈景润,很多人脑子里数学=基础数学,所以宣传的时候就自然而然这么说了。应数在国内太没存在感。即使是香农,维纳这种大师,非业内人士也没怎么听说过,知名度远不及哥德巴赫(滑稽)。其实应数与产业界结合,这并不是什么新玩意,欧美几十年前就是这么做的而且非常富有成效。国内技术企业是近几年才意识到应数在技术研发中的重要性,观念的转变还需要一段时间。
机器学习话题优秀回答者 https://www.zhihu.com/question/376741737/answer/1070223689 本文来自知乎问答,回答已获作者授权,禁止二次转载。
我来浇点冷水就走。
听本宝宝一句劝,萌新们不要被这个题目误导了。这里的科技互联网公司,可能指代的是:
Google Deepmind
Facebook FAIR
Microsoft MSR
Baidu Research
Alibaba Damo
Tencent AI lab
....
而不是大家眼里的科技互联网公司。数学是研究利器,对搬砖来说没太大意义。进入工业界以来,我只有在做纯Research的那段时间里才能勉强维持数学能力不退化,换句话说,能在科技互联网感受到数学的存在和价值。
其余场合,恕我直言,你在白板上自认为用优雅干净又严谨的数学语言把逻辑交代清楚后,别人心里大概率就俩字:MMP,ZZ,ZB。
如果你觉得你数学是优点,还怀抱着对数学的信念扎根互联网公司底层希望借此发光,那么大概率等到福报来临都无法如愿。重视是好事,但是在当今的大环境下,那些因这道题目而变得狂热的萌新们淡定一些吧。。不要成了新一茬韭菜。
溜了溜了,睡觉去了,不要打我。
阿里巴巴达摩院语音实验室负责人 https://www.zhihu.com/question/376741737/answer/1059332460 本文来自知乎问答,仅供学习参考,著作权归作者所有。
曾经看过一个漫画,说的是化学、物理与数学的区别。时间有些久了,但意思还大概记得:
第一格漫画里画的是两个化学家,其中一个惊呼:“完了!药品的配方算错了!”,结果“砰”的一声,做实验的大楼爆炸了;第二格漫画里画的是两个物理学家,其中一个惊呼:“完了!小行星的轨道算错了!”,结果“砰“的一声,小行星撞上地球,人类灭亡了;第三格漫画里画的是两个数学家,其中一个惊呼:“完了!费马大定理证错了!”,结果呢,什么都没有发生。
这就是数学,它有时是如此重要,而有时却是“无用之美”。当今的科技互联网公司,越来越重视基础数学,正是看中了它所蕴含的最最基础的“源动力”。可以说,数学在很多方面乃是互联网的灵魂。
你若不信,试举几例。
互联网是一个典型的分布式系统,无数的计算机通过网络连接和通讯。那么问题来了:在一个分布式系统中,由于各台计算机自身的时钟是无法做到精确一致的。当计算机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也能够去表征万物。
推荐阅读:
极市平台视觉算法季度赛,提供真实应用场景数据和免费算力,特殊时期,一起在家打比赛吧!
△长按添加极市小助手
△长按关注极市平台,获取最新CV干货
觉得有用麻烦给个在看啦~