几个月来一直在找既可以当手册又可以循序渐进概览式学习的“机器学习数学基础”教程。
/*闲话部分
像[1]评论里提到的Murphy的Machine Learning A Probabilistic Perspective,这种书去年找到过不少,类似地还有Machine learning : an algorithmic perspective / Stephen Marsland 、A first course in machine learning / Simon Rogers, Mark Girolami 、The elements of statistical learning 「这本书跟Donald Knuth的“名著”一样」、Neural networks : a comprehensive foundation / Simon Haykin 。。。
这些书无一例外保罗万象、以“幽默诙谐”的“don't worry,跟我来”的风格开头,然而主题和分支划分不明,短短几页便数十个陌生符号涌现,而且探讨的理论坚深晦涩,完全不是“让人理解”的目的。它们适合已经对相关数学有全面掌握,并完成了代码实现,那这种书作为参考和复习的人用。
实际上Marvin Minsky的Perceptrons就是这样的一本书,据他的学生说他教学幽默风趣深入浅出,擅长用最基本的代码表达复杂的内容,给人指导也是恰到好处,然而这种祖师为什么偏偏写这种东西呢?
个人认为原因很简单,这些作者/背后的人把知识精华(而不是连篇的抽象符合)当作需要密传的内容,但又不希望由于过于保密而失传,于是要以比较隐晦的方式包裹于极度复杂的数学符号,正如葛洪的炼丹书充满隐晦的比喻。
*/
最近在搜Euler's Method时候无意间发现了一个资源:Jeffrey R. Chasnov http://www.math.ust.hk/machas/, MOOCs下面的网课和对应的讲义「尤其是讲义」。他现在在中国任教。
Matrix Algebra for Engineers、Differential Equations for Engineers、Vector Calculus for Engineers这三个的内容设计我觉得都非常精巧,每节只引入一两个核心概念,然后是几个短小的练习,而且有答案「不自觉看答案的人本身也不能自觉思考」。
——这样非常适合时间有限且想渐进入门的同学。
随着近几年AI热,线性代数、(一元变量之后的)微积分火了,机器学习的数学基础到底是什么实际上还无定论。去年我一度觉得可以从归入“数值分析”的一些东西入手,比如牛顿法什么的,但这些更多是计算方法,很遗憾的以往由于种种原因重要的计算原理(比如梯度下降)被归入具体计算方法/“应用数学”的范畴,而现在的一些新教程慢慢地把这些内容释放了出来。
/*闲话继续
有兴趣的同学可以了解一下引发“第一次AI寒冬”的理论问题——XOR问题,我认为Marvin Minsky完全知道这个问题的症结和解决方案(增加神经网络的层数只是具体方法)但他顾弄玄虚,用多页数学符号把问题神秘化。
目前来看,线性代数和向量(多元)微积分应该作为机器学习理论基础的重点,数论、抽象代数、拓扑学、图论(以及“概率图模型”之类的Probabilistic graphical models : principles and techniques / Daphne Koller )这些东西要有,而且还要有很多,但问题在于他们要基于线性代数「一般人/计算机能掌握/实现的系统构造法」和微积分「研究变化的学问」,并以这两者为基础生发。
前一阵子我看了几章Introduction to topology / pure and applied Colin Adams, 这是少数用顺带一般人能理解的语言讲一些拓扑学的具体应用的书,其实它举例有些问题比如通过Levenshtein距离看信号的准确传递程度,我写的此时回想的第一反应是——这是个矩阵计算模型,一查果然是(https://en.wikipedia.org/wiki/Levenshtein_distance#Recursive ),但这种书把问题用正常人理解的语言表达清楚就已经是非常难得了,不能指望他们再交更深的底。
对于我们这样的普通学习者,要经过鱼龙混杂的学习资料提炼出自己一套融通的知识体系,这很难,也要迎难而上。
好书少,教人思考的好书需要时时寻找。
*/
参考
[1] 学好机器学习需要哪些数学知识?https://zhuanlan.zhihu.com/p/36357540
[2] http://www.math.ust.hk/machas/differential-equations-for-engineers.pdf
[3] http://www.math.ust.hk/machas/vector-calculus-for-engineers.pdf