前言
2008年7月25日,美国卡内基·梅隆大学计算机系教授兰迪·波许(Randy Pausch),因胰腺癌晚期及并发症去世,享年47岁。波许教授生前曾是人机界面领域的知名专家,国际计算机协会会士(ACM Fellow)。但更令其广为人知的是他于2007年9月(即去世前10个月)所做的一场题为《最后一课》(The Last Lecture)的著名演说。这篇演说反响极大,数以百万计的观众在线收看了演讲视频,美国广播电视网将他选为“2007年度人物”之一,《时代》杂志将他列入了“世界上影响最大的100人”,同名书籍长期位列“纽约时报畅销书(建议类)”榜首。
在这篇演说中,波许教授回顾了自己人生中的若干重要片段,而“墙”这个意象也多次出现。例如在开篇部分,波许教授谈到自己童年的梦想是体验失重状态,但苦于无法实现。直到当上了教授之后,机会似乎终于出现了。美国宇航局(NASA)组织了一次大学生竞赛,优胜团队的奖励便是可以被送到高空,体验25秒的失重状态。波许教授指导的队伍,获得了比赛的第一名。但NASA却告诉他,只有学生才能飞上天空,指导老师不行。这样一个奇怪的规则就是挡在波许教授面前,令其无法实现儿时梦想的一堵墙。当然,就像人生中面对过的无数面墙一样,波许教授还是锲而不舍地找到了逾越它的办法。
在最后,波许教授语重心长地总结道:“你总会遇到挫折。但是记住,它们的出现并不是没有原因的。砖墙并不是为了挡住我们。它在那里,只是为了测试,我们的决心到底有多迫切。它在那里挡住了那些没有强烈决心的人。它不让那些人通过。记住,砖墙的存在是为了显示我们自己付出的决心。它使得我们,同那些并不真的想实现梦想的人得以区分。”
这不禁让我想到了很多希望涉足人工智能与数据科学的初学者在面对数学时的感受。自从深度学习火爆起来之后,深度学习算法工程师、人工智能研究员,以及数据科学家等新兴职位迅速成为大家争相讨论的薪资高地。特别是在谷歌公司的人工智能程序AlphaGo,于曾经一度被认为是人类智慧最后堡垒的围棋领域,大败世界冠军李世石后,各大IT名企纷纷成立所谓的人工智能研究院、深度学习实验室。像Geoffrey Hinton、Yann LeCun、Ian Goodfellow、李飞飞和吴恩达等国际知名学者也纷纷被谷歌、Face book这样的IT巨头高薪延揽。
很多曾经的传统IT从业人员也不免心动,个个摩拳擦掌、跃跃欲试,希望趁早转行赶上AI这趟急速狂奔的列车。毕竟,人往高处走,水往低处流。然而,尽管人工智能和传统IT都是从计算机科学领域发展出来的,但二者之间却有着一堵明显的高墙,这堵高墙便是数学。传统的IT领域更加重视编程,而对数学的要求却相对较弱。但在人工智能学习的各个阶段,数学都是主要的攻坚对象,任何胸怀大志的人工智能学习者都不要幻想绕过数学。
有的人会认为人工智能工具化的趋势已经越发明显。借助现成的各种深度学习框架、函数库、软件包(例如TensorFlow,SciKit-learn等),即使不太了解算法背后的具体原理,更无须深究其中的数学细节,一个程序员稍加培训,也能很快训练出一个用于图像识别的深度神经网络。那是不是说明,借助工具化的方法就可以绕过数学这堵高墙了呢?
在一篇题为《放弃幻想,搞AI必须过数学关》的网文中,作者提出了这样的观点:“数学不过关的人在AI这个圈子里是无法参与交流的,或者说得直白一点,是被人瞧不起的,根本无法被接纳成为AI圈子里的人。其次,数学不过关而只能调参数的人,并不能胜任实际工作。最后,即便是调参这件事情本身,懂不懂数学也是有很大差别的。”
作为补充,我想回到波许教授有关墙的理论框架。注意,在他眼里,墙的意义总体上是偏向积极的。他认为:砖墙的存在是为了彰显我们的决心,更将我们与那些并不真的想实现梦想之人区分开来。所以,如果说人工智能相关领域的职位薪资普遍更高,那也无疑是因为墙的存在,导致物以稀为贵的结果。
打个比方,在中华人民共和国建立初期,我国还不能自行生产抗生素。那时,像青霉素这种进口药都奇货可居,贵得离谱。后来,中国可以大规模自行生产青霉素之后,这种药自然就变得非常廉价了。同理,最开始能够从事人工智能相关工作的人少,所以薪资才高。毕竟在中国最开始的时候就能够熟练使用TensorFlow的程序员肯定不多,那么少数几个还能把这种框架用起来的人薪资高也说得过去。但如果大部分程序员,甚至相关专业本科毕业生都能熟练使用有关框架进行深度学习应用开发,可想而知,同样职位的薪资最后就必然会被统一拉低。这时就更能凸显拥有非对称优势者的价值。就拿调参数这种基本工作来说,“如果你数学不过关,对参数的意义和相关关系理解不深,方向感不强,只能半随机地刷参数,那么工作的单调性和烦琐性会大大上升,很难坚持到做出好的模型”。何况现实中的很多具体问题都要具体分析,本来就没有放之四海而皆准的模型或算法。于是真的到了需要对算法进行改进,甚至针对具体应用开发新算法的时候,那些不懂原理的调包侠就只能望洋兴叹了。
墙的存在使得真心实现梦想的践行者与其他只会空谈的人得以区别。对于前者,遇到困难和付出努力是难免的。正如荀子所言,无冥冥之志者,无昭昭之明;无惛惛之事者,无赫赫之功。真正的人生难道不就是应该在翻过一面面墙的同时,使得自己更加强大的过程吗?或许也只有这样,当你回首往事时,才不会因虚度年华而悔恨,也不会因碌碌无为而羞耻。因为,在这样的过程中,不是你成全了梦想,而是追梦本身成全了你的人生。
数学是机器学习和数据科学的基础,任何期望涉足相关领域并切实领悟具体技术与方法的人都无法绕过数学这一关。本书系统地整理并介绍了机器学习中所涉及的必备数学基础,这些都是笔者从浩如烟海的数学知识中精心选取的,在学习和研究机器学习技术时所必需的内容。具体包括概率论与数理统计、微积分(主要是与最优化内容相关的部分)、凸优化及拉格朗日乘数法、数值计算、泛函分析基础(例如核方法赖以建立的希尔伯特空间理论)以及蒙特卡洛采样(拒绝采样、自适应拒绝采样、重要性采样、吉布斯采样和马尔可夫链蒙特卡洛)等内容。此外,为了帮助读者强化所学,本书还从上述数学基础出发,介绍了回归(线性回归、多项式回归、非线性回归、岭回归,以及LASSO等)、分类(感知机、逻辑回归、朴素贝叶斯、决策树、支持向量机、人工神经网络等)、聚类(k均值、EM算法、密度聚类等)、降维与流形学习(SVD、PCA和MDS等)、集成学习(Bootstrap、Bagging、Boosting、AdaBoost与随机森林)以及概率图模型(贝叶斯网络、隐马尔可夫模型)等机器学习中的重要话题。本书可作为机器学习及相关课程的教学参考书,适合高等院校人工智能、机器学习或数据挖掘等相关专业的师生研习之用,也可供从事计算机应用(特别是数据科学相关专业)的研发人员参考。
自知论道须思量,几度无眠一文章。由于时间和能力有限,书中纰漏在所难免,真诚地希望各位读者和专家不吝批评、斧正。如果读者在阅读本书过程中遇到问题,或者有关于本书的各种意见和建议,可以通过在CSDN博客(博客名:白马负金羁)上留言的方式与我交流。本博客主要关注机器学习、数据挖掘、深度学习及数据科学等话题,提供的很多技术文章都可以作为本书的补充资料,供广大读者自学时参考。
编者
2020年1月